/*! tailwindcss v4.2.1 | MIT License | https://tailwindcss.com */
@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after{--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial}::backdrop{--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial}}}@layer theme{:root,:host{--font-sans:ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--font-mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--spacing:.25rem;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4, 0, .2, 1);--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono)}}@layer base{*,:after,:before{box-sizing:border-box;border:0 solid;margin:0;padding:0}::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab, red, red)){::placeholder{color:color-mix(in oklab, currentcolor 50%, transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){-webkit-appearance:button;appearance:button}::file-selector-button{-webkit-appearance:button;appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.visible{visibility:visible}.static{position:static}.start{inset-inline-start:var(--spacing)}.hidden{display:none}.filter{filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.transition{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}}:root{--ink:#f3f7ff;--muted:#9aa8bd;--line:#bed7ff2e;--cyan:#95e4ff;--violet:#b5a8ff;--panel:#060a1575}*{box-sizing:border-box}html,body{background:#01030a;min-height:100%;margin:0}body{color:var(--ink);font-family:var(--font-geist-sans), Arial, Helvetica, sans-serif;overflow-x:hidden}a{color:inherit;text-decoration:none}button,a{-webkit-tap-highlight-color:transparent}:focus-visible{outline:2px solid var(--cyan);outline-offset:5px}.site-shell{isolation:isolate;background:#01030a;min-height:100svh;position:relative;overflow:hidden}.starfield{z-index:-5;position:fixed;inset:0}.starfield canvas{display:block}.starfield-fallback{background-color:#01030a;background-image:radial-gradient(circle at 24% 31%,#fff 0 1px,#0000 1.5px),radial-gradient(circle at 72% 65%,#b7d8ff 0 1px,#0000 1.5px),radial-gradient(circle at 48% 78%,#ffe8ca 0 1px,#0000 1.5px),none;background-position:0 0,0 0,0 0,0 0;background-repeat:repeat,repeat,repeat,repeat;background-size:137px 137px,193px 193px,251px 251px;background-attachment:scroll,scroll,scroll,scroll;background-origin:padding-box,padding-box,padding-box,padding-box;background-clip:border-box,border-box,border-box,border-box;width:100%;height:100%}.space-haze{z-index:-4;pointer-events:none;mix-blend-mode:screen;background:radial-gradient(circle at 51% 48%,#595ab80b,#0000 28%),radial-gradient(at 13% 82%,#235f801c,#0000 30%),radial-gradient(at 90% 18%,#46347614,#0000 30%);position:fixed;inset:0}.window-frame{z-index:20;pointer-events:none;position:fixed;inset:0;box-shadow:inset 0 0 100px 24px #000106d9,inset 0 0 15px #a0beff0a}.window-frame:before,.window-frame:after{content:"";background:linear-gradient(90deg,#000105e6,#0000);width:clamp(12px,3vw,58px);position:absolute;top:0;bottom:0}.window-frame:before{left:0}.window-frame:after{right:0;transform:scaleX(-1)}.site-header{z-index:10;border-bottom:1px solid #bfd6ff1c;justify-content:space-between;align-items:center;width:min(1240px,100% - 64px);margin:0 auto;padding:30px 0;display:flex;position:relative}.wordmark{font-family:var(--font-geist-mono), monospace;letter-spacing:.15em;align-items:center;gap:9px;font-size:.72rem;font-weight:600;display:flex}.wordmark span:last-child{color:#76869e;font-weight:450}.wordmark-dot{background:var(--cyan);width:5px;height:5px;box-shadow:0 0 14px var(--cyan);border-radius:50%}.nav-list{align-items:center;gap:clamp(20px,3.5vw,52px);margin:0;padding:0;list-style:none;display:flex}.nav-link{color:#8592a6;letter-spacing:.04em;gap:7px;padding:8px 0;font-size:.75rem;transition:color .22s;display:flex;position:relative}.nav-link span{color:#4c596e;font-family:var(--font-geist-mono), monospace;font-size:.56rem;transform:translateY(-3px)}.nav-link:after{content:"";background:linear-gradient(90deg, transparent, var(--cyan), transparent);height:1px;transition:transform .25s;position:absolute;bottom:0;left:0;right:0;transform:scaleX(0)}.nav-link:hover,.nav-link.is-active{color:#edf6ff}.nav-link:hover:after,.nav-link.is-active:after{transform:scaleX(1)}.content-plane{z-index:2;width:min(1120px,100% - 80px);margin:0 auto;position:relative}.hero-plane{grid-template-rows:auto 1fr auto;grid-template-columns:.8fr 3.2fr;min-height:calc(100svh - 186px);padding:clamp(70px,10vh,128px) 0 70px;display:grid}.eyebrow{color:#7f8da2;font-family:var(--font-geist-mono), monospace;letter-spacing:.14em;text-transform:uppercase;writing-mode:vertical-rl;align-self:start;align-items:center;gap:12px;font-size:.61rem;display:flex;transform:rotate(180deg)}.eyebrow-line{background:linear-gradient(transparent, var(--cyan));width:1px;height:42px}.hero-copy{max-width:900px}.hero-kicker{color:var(--cyan);letter-spacing:.19em;text-transform:uppercase;margin:0 0 18px;font-size:clamp(.66rem,1vw,.76rem);font-weight:500}.hero-copy h1{color:#f5f8ff;letter-spacing:-.067em;text-wrap:balance;text-shadow:0 10px 45px #0c1730cc;max-width:960px;margin:0;font-size:clamp(3.5rem,8.2vw,7.6rem);font-weight:390;line-height:.91}.hero-copy h1 span{color:#0000;background:linear-gradient(100deg,#98a9c6 0%,#eef5ff 48%,#aaa2da 100%);-webkit-background-clip:text;background-clip:text;display:block}.hero-intro{color:#9daabd;text-wrap:pretty;max-width:580px;margin:34px 0 0;font-size:clamp(.98rem,1.35vw,1.15rem);font-weight:350;line-height:1.75}.hero-actions{grid-column:2;align-items:center;gap:28px;margin-top:42px;display:flex}.primary-action,.text-action{letter-spacing:.05em;align-items:center;gap:32px;min-height:52px;font-size:.76rem;transition:transform .22s,color .22s,border-color .22s,background-color .22s;display:inline-flex}.primary-action{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#0a142685;border:1px solid #aad8ff47;padding:0 20px;box-shadow:inset 0 0 20px #87d3ff09,0 16px 44px #0003}.primary-action span,.text-action span{color:var(--cyan);font-size:1rem}.text-action{color:#a8b4c6}.primary-action:hover,.text-action:hover{color:#fff;transform:translateY(-2px)}.primary-action:hover{background:#0f1e34ad;border-color:#aad8ff8f}.plane-meta{color:#96a6c080;font-family:var(--font-geist-mono), monospace;letter-spacing:.13em;align-items:center;gap:10px;font-size:.48rem;display:flex;position:absolute;bottom:50%;right:-24px;transform:translateY(50%)rotate(90deg)}.meta-orbit{border:1px solid #92d1ff33;border-radius:50%;place-items:center;width:18px;height:18px;display:grid}.meta-orbit i{background:var(--cyan);width:3px;height:3px;box-shadow:0 0 8px var(--cyan);border-radius:50%}.site-footer{z-index:4;color:#8d9bb194;font-family:var(--font-geist-mono), monospace;letter-spacing:.13em;text-transform:uppercase;justify-content:space-between;font-size:.53rem;display:flex;position:absolute;bottom:22px;left:32px;right:32px}.site-footer p{margin:0}.site-footer p:before{content:"";background:#8bf3c5;border-radius:50%;width:5px;height:5px;margin-right:9px;display:inline-block;box-shadow:0 0 8px #8bf3c5}@media (max-width:760px){.site-header{width:calc(100% - 36px);padding:22px 0}.nav-list{gap:15px}.nav-link{font-size:0}.nav-link span{font-size:.61rem;transform:none}.content-plane{width:calc(100% - 48px)}.hero-plane{min-height:calc(100svh - 104px);padding:clamp(64px,13vh,108px) 0 96px;display:block}.eyebrow,.plane-meta{display:none}.hero-copy h1{font-size:clamp(3.05rem,16vw,5.4rem);line-height:.95}.hero-intro{margin-top:26px;font-size:.96rem;line-height:1.65}.hero-actions{flex-direction:column;align-items:stretch;gap:7px;margin-top:32px;display:flex}.primary-action,.text-action{justify-content:space-between}.text-action{padding:0 20px}.site-footer{bottom:15px;left:24px;right:24px}.site-footer span{display:none}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}.starfield{opacity:.72}}.window-reflection{z-index:-2;pointer-events:none;background:linear-gradient(116deg,#0000 0 18%,#c6deff05 28%,#0000 38% 71%,#c6deff03 80%,#0000 88%);position:fixed;inset:0}.nav-link b{font:inherit}.route-viewport{z-index:2;perspective:1200px;perspective-origin:50% 46%;min-height:calc(100svh - 95px);position:relative}.parallax-plane{min-height:inherit;transform:translate3d(calc(var(--pointer-x,0) * -8px), calc(var(--pointer-y,0) * -6px), 0) rotateX(calc(var(--pointer-y,0) * -.45deg)) rotateY(calc(var(--pointer-x,0) * .5deg));transform-origin:50% 40%;transition:transform .7s cubic-bezier(.16,1,.3,1)}.route-stage{min-height:inherit;transform-style:preserve-3d;will-change:transform, opacity, filter, clip-path;position:relative}.route-stage>main{animation:1.05s cubic-bezier(.16,1,.3,1) both content-arrival;transform:translateZ(0)}.route-stage>main h1:focus{outline:none}.is-transitioning .nav-link,.is-transitioning .content-plane a{pointer-events:none}.route-stage:after{content:"";z-index:30;pointer-events:none;opacity:0;background-image:radial-gradient(circle,#bae2ffad 0 .6px,#0000 1px),linear-gradient(#acd0ff09 1px,#0000 1px),linear-gradient(90deg,#acd0ff09 1px,#0000 1px);background-size:11px 11px,33px 33px,33px 33px;position:absolute;inset:5%;-webkit-mask-image:radial-gradient(circle,#000,#0000 76%);mask-image:radial-gradient(circle,#000,#0000 76%)}.is-transitioning .route-stage:after{animation:.68s cubic-bezier(.7,0,.84,0) both veil-flight}.route-particles{z-index:40;pointer-events:none;position:absolute;inset:0;overflow:hidden}.route-particle{width:var(--particle-size);height:var(--particle-size);opacity:0;animation:particle-arrival 1.12s cubic-bezier(.16, 1, .3, 1) var(--particle-delay) both;background:#d9efff;border-radius:50%;position:absolute;top:50%;left:50%;box-shadow:0 0 7px #97e0ffd1}@keyframes particle-arrival{0%{opacity:0;transform:translateZ(-500px)scale(.1)}16%{opacity:.5}68%{opacity:.75;transform:translate3d(var(--particle-x), var(--particle-y), 0) scale(1)}to{opacity:0;transform:translate3d(var(--particle-x), var(--particle-y), 80px) scale(1.7)}}@keyframes content-arrival{0%{opacity:0;filter:blur(22px);clip-path:circle(4%);transform:translateZ(-600px)scale(.16)}to{opacity:1;filter:blur();clip-path:circle(150%);transform:translate(0,0)scale(1)}}@keyframes veil-flight{0%{opacity:0;filter:blur();transform:scale(.98)translateZ(0)}28%{opacity:.65}to{opacity:0;filter:blur(5px);transform:scale(3.8)translateZ(380px)}}.inner-plane{min-height:calc(100svh - 95px);padding:clamp(72px,9vh,112px) 0 130px}.section-index{color:var(--cyan);font-family:var(--font-geist-mono), monospace;letter-spacing:.17em;text-transform:uppercase;margin:0 0 19px;font-size:.62rem}.page-heading h1{color:#f5f8ff;letter-spacing:-.065em;margin:0;font-size:clamp(3.4rem,7vw,6.65rem);font-weight:390;line-height:.91}.page-heading h1 span{color:#0000;background:linear-gradient(105deg,#9faec5,#f2f7ff 48%,#aaa2da);-webkit-background-clip:text;background-clip:text;display:block}.about-grid{grid-template-columns:minmax(0,1.12fr) minmax(300px,.88fr);gap:clamp(54px,8vw,124px);margin-top:clamp(64px,10vh,106px);display:grid}.about-copy{max-width:660px}.about-copy p{color:#b4bed0;text-wrap:pretty;margin:0 0 25px;font-size:clamp(1.02rem,1.42vw,1.22rem);font-weight:340;line-height:1.78}.about-copy p:first-child:first-letter{float:left;color:#eef7ff;margin:7px 9px 0 0;font-size:3.4rem;font-weight:300;line-height:.72}.about-facts{gap:44px;display:grid}.about-facts h2{color:#77869d;font-family:var(--font-geist-mono), monospace;letter-spacing:.14em;text-transform:uppercase;margin:0 0 18px;font-size:.59rem;font-weight:500}.about-facts ul{margin:0;padding:0;list-style:none}.about-facts section>ul:not(.tech-cloud){border-top:1px solid var(--line)}.about-facts section>ul:not(.tech-cloud) li{color:#d8e0eb;border-bottom:1px solid #bed7ff1a;gap:18px;padding:13px 0;font-size:.86rem;display:flex}.about-facts li span{color:#5d6b80;font-family:var(--font-geist-mono), monospace;font-size:.59rem}.tech-cloud{flex-wrap:wrap;gap:8px;display:flex}.tech-cloud li{color:#9eabbf;font-family:var(--font-geist-mono), monospace;letter-spacing:.04em;background:#080e1b66;border:1px solid #b4d1f821;padding:7px 10px;font-size:.62rem}.inner-plane blockquote{color:#818da1;border-top:1px solid #aed0ff29;border-left:1px solid #aed0ff29;max-width:800px;margin:clamp(72px,11vh,124px) 0 0 auto;padding:26px 0 0 34px;font-size:clamp(1.15rem,2vw,1.55rem);font-weight:320;line-height:1.5}.resume-section{border-top:1px solid var(--line);margin-top:clamp(88px,13vh,148px);padding-top:clamp(42px,6vw,70px)}.resume-heading{grid-template-columns:minmax(180px,.55fr) minmax(0,1.45fr);align-items:end;gap:clamp(35px,7vw,100px);display:grid}.resume-heading .section-index{margin:0 0 7px}.resume-heading h2{color:#e9f1fc;letter-spacing:-.055em;max-width:750px;margin:0;font-size:clamp(2rem,4.5vw,4rem);font-weight:370;line-height:1}.resume-grid{grid-template-columns:1fr 1fr;gap:clamp(60px,9vw,132px);margin-top:clamp(70px,10vh,112px);display:grid}.resume-grid h3,.resume-extras h3{color:#77869d;font-family:var(--font-geist-mono), monospace;letter-spacing:.15em;text-transform:uppercase;margin:0 0 26px;font-size:.6rem;font-weight:500}.timeline-list{gap:0;margin:0;padding:0;list-style:none;display:grid;position:relative}.timeline-list:before{content:"";background:linear-gradient(var(--cyan), #95e4ff0d);width:1px;position:absolute;top:7px;bottom:7px;left:5px}.timeline-list li{grid-template-columns:96px 1fr;gap:25px;padding:0 0 42px 24px;display:grid;position:relative}.timeline-list li:before{content:"";border:1px solid var(--cyan);background:#07101d;border-radius:50%;width:7px;height:7px;position:absolute;top:5px;left:2px;box-shadow:0 0 9px #95e4ff66}.timeline-list li>span{color:#647187;font-family:var(--font-geist-mono), monospace;padding-top:3px;font-size:.55rem;line-height:1.45}.timeline-list h4{color:#e3ebf7;letter-spacing:-.02em;margin:0;font-size:1rem;font-weight:470}.timeline-list p{color:#8794a9;margin:8px 0 0;font-size:.78rem;line-height:1.65}.timeline-list .timeline-organisation{color:var(--cyan);font-family:var(--font-geist-mono), monospace;letter-spacing:.04em;margin-top:3px;font-size:.58rem}.education-list:before{background:linear-gradient(var(--violet), #b5a8ff0d)}.education-list li:before{border-color:var(--violet);box-shadow:0 0 9px #b5a8ff66}.education-list .timeline-organisation{color:#afa7df}.resume-extras{border-top:1px solid #bed7ff1c;grid-template-columns:.75fr 1.25fr;gap:clamp(60px,9vw,132px);margin-top:24px;padding-top:42px;display:grid}.language-list{gap:12px;margin:0;padding:0;list-style:none;display:grid}.language-list li{border-bottom:1px solid #bed7ff14;justify-content:space-between;align-items:baseline;gap:20px;padding-bottom:10px;display:flex}.language-list strong{color:#dce5f2;font-size:.8rem;font-weight:470}.language-list span,.resume-extras>section>p{color:#7f8da2;font-size:.72rem;line-height:1.65}.resume-extras .volunteering-title{color:#e1e9f4;justify-content:space-between;gap:20px;margin:0 0 10px;font-size:.92rem;font-weight:470;display:flex}.volunteering-title span{color:#657288;font-family:var(--font-geist-mono), monospace;font-size:.55rem;font-weight:400}.projects-heading{justify-content:space-between;align-items:end;gap:50px;display:flex}.projects-heading>p{color:#8d9bb0;max-width:350px;margin:0 0 8px;font-size:.9rem;line-height:1.65}.project-list{border-bottom:1px solid var(--line);margin-top:clamp(62px,9vh,96px)}.project-row{border-top:1px solid var(--line);grid-template-columns:42px minmax(175px,.95fr) minmax(260px,1.4fr) 110px 24px;align-items:center;gap:clamp(15px,2.4vw,38px);min-height:142px;padding:20px 14px;transition:background-color .3s,padding .3s;display:grid;position:relative}.project-row:before{content:"";background:var(--project-accent);width:0;height:1px;box-shadow:0 0 14px var(--project-accent);transition:width .4s cubic-bezier(.16,1,.3,1);position:absolute;top:-1px;left:0}.project-row:hover{background:#0b132380;padding-left:20px;padding-right:20px}.project-row:hover:before{width:100%}.project-number{color:#526078;font-family:var(--font-geist-mono), monospace;font-size:.57rem}.project-title p{color:var(--project-accent);font-family:var(--font-geist-mono), monospace;letter-spacing:.11em;text-transform:uppercase;margin:0 0 6px;font-size:.54rem}.project-title h2{color:#ecf3ff;letter-spacing:-.04em;margin:0;font-size:clamp(1.45rem,2.5vw,2.1rem);font-weight:420}.project-summary{color:#8d9bb0;margin:0;font-size:.8rem;line-height:1.62}.project-status{color:#a9b5c7;font-family:var(--font-geist-mono), monospace;gap:6px;font-size:.58rem;display:grid}.project-status i{color:#59667b;font-style:normal}.project-row>b{color:var(--project-accent);font-size:1rem;font-weight:400;transition:transform .25s}.project-row:hover>b{transform:translate(3px,-3px)}.project-detail{padding-top:clamp(48px,6vh,76px)}.back-link{color:#8d9bb0;font-family:var(--font-geist-mono), monospace;letter-spacing:.08em;align-items:center;gap:12px;font-size:.62rem;transition:color .2s,transform .2s;display:inline-flex}.back-link:hover{color:#fff;transform:translate(-3px)}.detail-heading{grid-template-columns:minmax(0,1fr) minmax(280px,.55fr);align-items:end;gap:70px;margin-top:68px;display:grid}.detail-heading .section-index{color:var(--project-accent);grid-column:1/-1;margin-bottom:-42px}.detail-heading h1{color:#f5f8ff;letter-spacing:-.075em;margin:0;font-size:clamp(4.1rem,9vw,8.7rem);font-weight:360;line-height:.82}.detail-heading>p:last-child{color:#a2aec1;margin:0;font-size:1rem;line-height:1.7}.detail-grid{border-top:1px solid var(--line);grid-template-columns:minmax(0,1.2fr) minmax(250px,.55fr);gap:clamp(70px,12vw,170px);margin-top:clamp(85px,13vh,146px);padding-top:42px;display:grid}.detail-story p{color:#aeb9ca;max-width:680px;margin:0 0 24px;font-size:clamp(1rem,1.45vw,1.18rem);line-height:1.78}.detail-aside{align-content:start;gap:34px;display:grid}.detail-aside span,.detail-outcomes span{color:#637188;font-family:var(--font-geist-mono), monospace;letter-spacing:.13em;text-transform:uppercase;font-size:.56rem}.detail-aside p{color:var(--project-accent);margin:8px 0 0;font-size:.81rem}.detail-aside ul{flex-wrap:wrap;gap:7px;margin:10px 0 0;padding:0;list-style:none;display:flex}.detail-aside li{color:#9eabbf;font-family:var(--font-geist-mono), monospace;border:1px solid #b7d2f71f;padding:6px 9px;font-size:.58rem}.detail-outcomes{background:#b7d2f71f;border:1px solid #b7d2f71f;grid-template-columns:1fr 1fr;gap:1px;margin-top:80px;display:grid}.detail-outcomes div{background:#050913e0;padding:clamp(25px,4vw,42px)}.detail-outcomes p{color:#aab6c8;margin:15px 0 0;font-size:.88rem;line-height:1.7}.contact-plane{grid-template-columns:minmax(0,1fr) minmax(330px,.65fr);align-content:center;gap:clamp(60px,10vw,150px);padding-top:65px;display:grid}.contact-heading h1{font-size:clamp(3.5rem,6.5vw,6.2rem)}.contact-heading>p:last-child{color:#9ba8bb;max-width:590px;margin:32px 0 0;font-size:1rem;line-height:1.72}.mail-link{border-top:1px solid var(--line);border-bottom:1px solid var(--line);grid-template-columns:1fr auto;align-self:end;gap:11px;padding:25px 0;display:grid;position:relative}.mail-link span{color:#68758a;font-family:var(--font-geist-mono), monospace;letter-spacing:.13em;text-transform:uppercase;grid-column:1/-1;font-size:.57rem}.mail-link strong{color:#e8f2ff;letter-spacing:-.035em;font-size:clamp(1.2rem,2vw,1.65rem);font-weight:380}.mail-link b{color:var(--cyan);align-self:end;font-size:1.15rem;font-weight:400;transition:transform .2s}.mail-link:hover b{transform:translate(3px,-3px)}.social-links{grid-column:2;grid-template-columns:1fr 1fr;gap:10px;display:grid}.social-links a{color:#c7d1df;background:#080e1b6b;border:1px solid #b7d2f71f;grid-template-columns:1fr auto;gap:13px;padding:16px;font-size:.78rem;transition:border-color .2s,background-color .2s;display:grid}.social-links a:hover{background:#0d182a8c;border-color:#9be0ff59}.social-links span{color:#57657a;font-family:var(--font-geist-mono), monospace;grid-column:1/-1;font-size:.53rem}.social-links b{color:var(--cyan);font-weight:400}.contact-facts{grid-column:2;grid-template-columns:1fr 1fr;gap:10px;display:grid}.contact-facts div{background:#080e1b6b;border:1px solid #b7d2f71f;gap:12px;padding:17px;display:grid}.contact-facts span{color:#57657a;font-family:var(--font-geist-mono), monospace;letter-spacing:.12em;text-transform:uppercase;font-size:.53rem}.contact-facts strong{color:#c7d1df;font-size:.8rem;font-weight:430}.contact-note{color:#657389;font-family:var(--font-geist-mono), monospace;letter-spacing:.06em;grid-column:2;margin:4px 0 0;font-size:.56rem}.contact-note i{background:#8bf3c5;border-radius:50%;width:5px;height:5px;margin-right:8px;display:inline-block;box-shadow:0 0 8px #8bf3c5}@media (max-width:940px){.projects-heading,.detail-heading{display:block}.projects-heading>p,.detail-heading>p:last-child{max-width:560px;margin-top:26px}.project-row{grid-template-columns:30px minmax(140px,.8fr) minmax(230px,1.2fr) 22px}.project-status{display:none}.detail-heading .section-index{margin-bottom:18px}.contact-plane{grid-template-columns:1fr;align-content:start}.mail-link,.social-links,.contact-facts,.contact-note{grid-column:1}}@media (max-width:760px){.route-viewport,.inner-plane{min-height:calc(100svh - 78px)}.site-header{width:calc(100% - 28px)}.wordmark{gap:6px;font-size:.62rem}.nav-list{gap:clamp(7px,2.4vw,12px)}.nav-link{font-size:.6rem}.nav-link span{display:none}.nav-link b{display:block}.inner-plane{width:calc(100% - 48px);padding-top:64px;padding-bottom:110px}.page-heading h1{font-size:clamp(3.1rem,15vw,5.1rem)}.about-grid,.detail-grid{grid-template-columns:1fr;gap:48px;margin-top:58px}.resume-heading,.resume-grid,.resume-extras{grid-template-columns:1fr}.resume-heading{align-items:start}.resume-grid,.resume-extras{gap:52px}.timeline-list li{grid-template-columns:76px 1fr;gap:16px;padding-left:20px}.inner-plane blockquote{margin-top:64px;padding-left:20px}.projects-heading>p{margin-top:24px}.project-list{margin-top:50px}.project-row{grid-template-columns:25px 1fr 20px;min-height:120px;padding:18px 4px}.project-summary,.project-status{display:none}.project-title h2{font-size:1.55rem}.detail-heading{margin-top:48px}.detail-heading h1{font-size:clamp(3.8rem,20vw,6.2rem)}.detail-grid{padding-top:28px}.detail-outcomes{grid-template-columns:1fr}.contact-plane{padding-top:62px;display:block}.contact-heading h1{font-size:clamp(3rem,14vw,4.8rem)}.mail-link{margin-top:55px}.mail-link strong{overflow-wrap:anywhere}.social-links,.contact-facts{margin-top:26px}.contact-note{margin-top:14px}}@media (prefers-reduced-motion:reduce){.parallax-plane{transform:none!important}.route-stage:after,.route-particles{display:none}.route-stage>main{animation:none!important}}.apps-heading{grid-template-columns:minmax(0,1.5fr) minmax(270px,.5fr);align-items:end;gap:clamp(48px,8vw,120px);display:grid}.apps-heading>p{color:#9aa8bd;margin:0 0 8px;font-size:1rem;line-height:1.7}.tracking-promise{border-top:1px solid #8bf3c547;border-bottom:1px solid #8bf3c529;grid-template-columns:minmax(145px,.34fr) minmax(0,1fr);gap:clamp(30px,6vw,88px);margin-top:clamp(48px,7vh,76px);padding:clamp(24px,4vw,38px) 0;display:grid}.tracking-promise>span{color:#8bf3c5;font-family:var(--font-geist-mono), monospace;letter-spacing:.12em;text-transform:uppercase;font-size:.75rem}.tracking-promise h2{color:#eafbf4;letter-spacing:-.055em;margin:0;font-size:clamp(1.8rem,4vw,3.4rem);font-weight:380;line-height:1}.tracking-promise p{color:#9eacbd;max-width:760px;margin:20px 0 0;font-size:1rem;line-height:1.72}.app-card-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;margin-top:clamp(64px,9vh,96px);display:grid}.app-card{background:radial-gradient(circle at 14% 9%, var(--app-accent), transparent 35%), #050a15bd;border:1px solid #b7d2f724;min-height:410px;padding:clamp(24px,3.6vw,38px);position:relative;overflow:hidden}@supports (color:color-mix(in lab, red, red)){.app-card{background:radial-gradient(circle at 14% 9%, color-mix(in srgb, var(--app-accent) 11%, transparent), transparent 35%), #050a15bd}}.app-card{-webkit-backdrop-filter:blur(15px);backdrop-filter:blur(15px);transition:border-color .26s,transform .26s,background-color .26s}.app-card:after{content:"";background:linear-gradient(90deg, transparent, var(--app-accent));opacity:.6;width:42%;height:1px;position:absolute;bottom:0;right:0}.app-card:hover{border-color:var(--app-accent)}@supports (color:color-mix(in lab, red, red)){.app-card:hover{border-color:color-mix(in srgb, var(--app-accent) 46%, transparent)}}.app-card:hover{transform:translateY(-3px)}.app-card-primary{grid-template-columns:104px minmax(0,1fr) auto;align-items:center;gap:24px;display:grid}.app-card-primary img,.app-product-hero>img,.legal-heading>img{aspect-ratio:1;width:100%;height:auto;box-shadow:0 22px 52px #0000005c, 0 0 34px var(--app-accent);border-radius:23%;display:block}@supports (color:color-mix(in lab, red, red)){.app-card-primary img,.app-product-hero>img,.legal-heading>img{box-shadow:0 22px 52px #0000005c, 0 0 34px color-mix(in srgb, var(--app-accent) 16%, transparent)}}.app-card-primary p{color:var(--app-accent);font-family:var(--font-geist-mono), monospace;letter-spacing:.08em;text-transform:uppercase;margin:0 0 8px;font-size:.75rem}.app-card-primary h2{color:#f3f7ff;letter-spacing:-.06em;margin:0;font-size:clamp(2rem,3.3vw,3.1rem);font-weight:390;line-height:.95}.app-card-primary div>span{color:#94a2b7;margin-top:9px;font-size:.9rem;display:block}.app-card-primary>b{color:var(--app-accent);align-self:start;font-size:1.15rem;font-weight:400;transition:transform .22s}.app-card-primary:hover>b{transform:translate(3px,-3px)}.app-card-summary{color:#acb8c9;margin:34px 0 0;font-size:1rem;line-height:1.72}.app-card-meta{flex-wrap:wrap;gap:9px;margin-top:25px;display:flex}.app-card-meta span{color:#7f8da2;border:1px solid #b7d2f721;padding:7px 10px;font-size:.75rem}.app-card nav{border-top:1px solid #b7d2f71a;gap:18px;margin-top:29px;padding-top:20px;display:flex}.app-card nav a{color:#abb7c8;font-size:.86rem;transition:color .18s}.app-card nav a:hover{color:var(--app-accent)}.appstore-note{border-top:1px solid var(--line);border-bottom:1px solid var(--line);grid-template-columns:minmax(150px,.35fr) minmax(0,1fr);gap:35px;margin-top:32px;padding:24px 0;display:grid}.appstore-note span{color:var(--cyan);font-family:var(--font-geist-mono), monospace;letter-spacing:.11em;text-transform:uppercase;font-size:.75rem}.appstore-note p{color:#8e9cb1;max-width:700px;margin:0;font-size:.9rem;line-height:1.65}.app-product-plane,.legal-plane{--app-accent:var(--cyan)}.app-product-hero{grid-template-columns:190px minmax(0,1fr);align-items:center;gap:clamp(36px,6vw,78px);margin-top:clamp(48px,7vh,78px);display:grid}.app-product-hero h1{color:#f5f8ff;letter-spacing:-.08em;margin:0;font-size:clamp(4.4rem,10vw,9.5rem);font-weight:350;line-height:.8}.app-product-hero .section-index,.legal-heading .section-index,.app-feature-section .section-index,.app-requirements .section-index{color:var(--app-accent)}.app-subtitle{color:#b4bfce;margin:22px 0 0;font-size:clamp(1.05rem,1.8vw,1.35rem)}.app-product-meta{flex-wrap:wrap;gap:9px;margin-top:24px;display:flex}.app-product-meta span{color:#8795aa;border:1px solid #b7d2f724;padding:7px 10px;font-size:.78rem}.app-product-meta .privacy-badge{color:#9eeecb;border-color:#8bf3c54d}.app-privacy-promise{border-top:1px solid #8bf3c53d;border-bottom:1px solid #8bf3c521;grid-template-columns:minmax(250px,.55fr) minmax(0,1fr);gap:clamp(32px,7vw,92px);margin-top:clamp(64px,9vh,98px);padding:24px 0;display:grid}.app-privacy-promise strong{color:#e6faf1;font-size:clamp(1.2rem,2vw,1.6rem);font-weight:430}.app-privacy-promise p{color:#96a4b7;margin:0;font-size:1rem;line-height:1.7}.app-privacy-promise+.app-story{margin-top:clamp(54px,8vh,86px)}.app-story{border-top:1px solid var(--line);grid-template-columns:minmax(0,1.35fr) minmax(260px,.45fr);gap:clamp(60px,10vw,150px);margin-top:clamp(90px,13vh,145px);padding-top:42px;display:grid}.app-story>div>p{color:#b0bbcb;max-width:720px;margin:0 0 25px;font-size:clamp(1rem,1.4vw,1.18rem);line-height:1.82}.app-story aside{border-left:1px solid var(--app-accent);background:linear-gradient(90deg, var(--app-accent), transparent);align-self:start;padding:22px}@supports (color:color-mix(in lab, red, red)){.app-story aside{background:linear-gradient(90deg, color-mix(in srgb, var(--app-accent) 7%, transparent), transparent)}}.app-story aside>span{color:#718096;font-family:var(--font-geist-mono), monospace;letter-spacing:.11em;text-transform:uppercase;font-size:.75rem}.app-story aside strong{color:var(--app-accent);margin-top:11px;font-size:1rem;font-weight:500;display:block}.app-story aside p{color:#8492a7;margin:13px 0 0;font-size:.9rem;line-height:1.65}.app-feature-section{grid-template-columns:minmax(270px,.65fr) minmax(0,1.35fr);gap:clamp(55px,9vw,130px);margin-top:clamp(86px,12vh,135px);display:grid}.app-feature-section h2,.app-requirements h2,.support-contact h2{color:#eaf1fb;letter-spacing:-.055em;margin:0;font-size:clamp(2rem,4vw,3.5rem);font-weight:370;line-height:1.03}.app-feature-section ol{border-top:1px solid var(--line);margin:0;padding:0;list-style:none}.app-feature-section li{color:#c8d2df;border-bottom:1px solid #bed7ff1a;grid-template-columns:42px 1fr;gap:16px;padding:16px 0;font-size:1rem;line-height:1.5;display:grid}.app-feature-section li span{color:var(--app-accent);font-family:var(--font-geist-mono), monospace;font-size:.75rem}.app-requirements{border-top:1px solid var(--line);grid-template-columns:minmax(270px,.65fr) minmax(0,1.35fr);gap:clamp(55px,9vw,130px);margin-top:clamp(80px,11vh,125px);padding-top:42px;display:grid}.app-requirements ul{gap:13px;margin:0;padding:0;list-style:none;display:grid}.app-requirements li{color:#aab6c7;padding-left:23px;font-size:1rem;line-height:1.65;position:relative}.app-requirements li:before{content:"";background:var(--app-accent);width:7px;height:1px;position:absolute;top:.72em;left:0}.app-notice{border:1px solid var(--app-accent);margin-top:70px;padding:24px 28px}@supports (color:color-mix(in lab, red, red)){.app-notice{border:1px solid color-mix(in srgb, var(--app-accent) 28%, transparent)}}.app-notice{color:#aeb9c9;background:var(--app-accent);font-size:.95rem;line-height:1.7}@supports (color:color-mix(in lab, red, red)){.app-notice{background:color-mix(in srgb, var(--app-accent) 5%, #040812b3)}}.app-detail-links{background:#b7d2f721;border:1px solid #b7d2f721;grid-template-columns:1fr 1fr;gap:1px;margin-top:72px;display:grid}.app-detail-links a{background:#050913eb;grid-template-columns:1fr auto;gap:10px;padding:clamp(25px,4vw,40px);transition:background-color .2s;display:grid}.app-detail-links a:hover{background:var(--app-accent)}@supports (color:color-mix(in lab, red, red)){.app-detail-links a:hover{background:color-mix(in srgb, var(--app-accent) 8%, #050913eb)}}.app-detail-links span{color:#708096;font-family:var(--font-geist-mono), monospace;letter-spacing:.08em;grid-column:1/-1;font-size:.75rem}.app-detail-links strong{color:#e3ebf6;font-size:1.25rem;font-weight:430}.app-detail-links b{color:var(--app-accent);font-size:1.15rem;font-weight:400}.legal-heading{grid-template-columns:104px minmax(0,1fr);align-items:center;gap:clamp(28px,5vw,55px);max-width:930px;margin-top:clamp(52px,8vh,88px);display:grid}.legal-heading h1{color:#f4f8ff;letter-spacing:-.07em;margin:0;font-size:clamp(3.4rem,7vw,6.8rem);font-weight:360;line-height:.9}.legal-heading>div>p:last-of-type{color:#a7b3c4;max-width:760px;margin:25px 0 0;font-size:1rem;line-height:1.75}.legal-date{color:#708096;font-family:var(--font-geist-mono), monospace;margin-top:16px;font-size:.75rem;display:block}.support-sections,.privacy-sections{border-top:1px solid var(--line);margin-top:clamp(75px,11vh,120px)}.support-sections article,.privacy-sections article{border-bottom:1px solid #bed7ff1c;grid-template-columns:58px minmax(0,1fr);gap:clamp(25px,5vw,64px);padding:clamp(30px,5vw,52px) 0;display:grid}.support-sections article>span,.privacy-sections article>span{color:var(--app-accent);font-family:var(--font-geist-mono), monospace;font-size:.75rem}.support-sections h2,.privacy-sections h2{color:#e5edf8;letter-spacing:-.035em;margin:0 0 18px;font-size:clamp(1.35rem,2.4vw,2rem);font-weight:420}.support-sections p,.privacy-sections p{color:#aab6c7;max-width:820px;margin:0 0 15px;font-size:1rem;line-height:1.8}.support-sections ul,.privacy-sections ul{gap:12px;max-width:830px;margin:0;padding:0;list-style:none;display:grid}.support-sections li,.privacy-sections li{color:#aab6c7;padding-left:23px;font-size:1rem;line-height:1.7;position:relative}.support-sections li:before,.privacy-sections li:before{content:"";background:var(--app-accent);width:7px;height:1px;position:absolute;top:.76em;left:0}.privacy-sections a{color:var(--app-accent);text-underline-offset:4px;text-decoration:underline}.support-contact{grid-template-columns:minmax(0,1fr) minmax(330px,.8fr);align-items:end;gap:clamp(50px,8vw,110px);margin-top:clamp(78px,10vh,115px);display:grid}.support-contact>div>p:last-child{color:#929fb2;max-width:620px;margin:22px 0 0;font-size:1rem;line-height:1.72}.support-contact>a{border-top:1px solid var(--line);border-bottom:1px solid var(--line);grid-template-columns:1fr auto;gap:9px;padding:25px 0;display:grid}.support-contact>a span{color:#718096;font-family:var(--font-geist-mono), monospace;grid-column:1/-1;font-size:.75rem}.support-contact>a strong{color:#e8f2ff;overflow-wrap:anywhere;font-size:1.15rem;font-weight:400}.support-contact>a b{color:var(--app-accent);font-weight:400}.legal-footer-links{border-top:1px solid #bed7ff1c;gap:24px;margin-top:72px;padding-top:24px;display:flex}.legal-footer-links a{color:#9eabbf;font-size:.9rem;transition:color .18s}.legal-footer-links a:hover{color:var(--app-accent)}@media (max-width:940px){.apps-heading,.app-story,.app-feature-section,.app-requirements,.support-contact{grid-template-columns:1fr}.apps-heading>p{max-width:620px}.app-story{gap:38px}}@media (max-width:760px){.tracking-promise,.app-privacy-promise,.app-card-grid{grid-template-columns:1fr}.app-card{min-height:0}.app-card-primary{grid-template-columns:78px minmax(0,1fr) auto;gap:17px}.app-card-primary p{font-size:.7rem}.app-card nav{flex-wrap:wrap}.appstore-note,.app-product-hero,.legal-heading,.app-detail-links{grid-template-columns:1fr}.app-product-hero>img{width:118px}.app-product-hero h1{font-size:clamp(4rem,22vw,6rem)}.app-feature-section,.app-requirements,.app-story{margin-top:70px}.legal-heading>img{width:82px}.legal-heading h1{font-size:clamp(3.1rem,14vw,4.6rem)}.support-sections article,.privacy-sections article{grid-template-columns:34px minmax(0,1fr);gap:12px}.support-contact{gap:36px}}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}
