.page{position:fixed;inset:0;z-index:10;display:block;font-family:var(--font-body);color:#b3d0e3}.page-ghost{pointer-events:none}.page-ghost .section{background:none}.scroller{position:absolute;inset:0;overflow-y:auto;overflow-x:hidden;overscroll-behavior:none;scrollbar-width:none}.scroller::-webkit-scrollbar{display:none}.content{position:relative;min-height:100%;display:flex;flex-direction:column}.next-page{display:flex;flex-direction:column;gap:10px;max-width:1440px;margin:0 auto;box-sizing:border-box;padding:clamp(48px,10vh,120px) clamp(20px,5vw,96px) clamp(56px,10vh,110px);text-decoration:none;border-top:1px solid rgba(0,170,230,.4)}.next-page .next-label{font-family:var(--font-mono);font-weight:400;font-size:.8125rem;letter-spacing:.2em;text-transform:uppercase;color:#8ec8e8}.next-page .next-title{display:flex;align-items:baseline;gap:18px;font-family:var(--font-display);font-weight:900;line-height:1;letter-spacing:-.01em;font-size:clamp(1.875rem,.95rem + 3.94vw,4.5rem);color:#d0eeff;transition:color .3s,transform .4s cubic-bezier(.22,1,.36,1)}.next-page:hover .next-title{color:#00d4ff;transform:translate(12px)}.hero{position:relative;min-height:100vh;min-height:100dvh;display:flex;flex-direction:column;justify-content:center}.hero-inner{width:100%;max-width:1440px;margin:0 auto;padding:clamp(96px,14vh,128px) clamp(20px,5vw,96px) clamp(32px,6vh,64px);box-sizing:border-box}.eyebrow{display:flex;align-items:center;gap:10px;margin:clamp(12px,1.8vh,20px) 0 0;font-family:var(--font-mono);font-weight:400;font-size:.8125rem;letter-spacing:.2em;text-transform:uppercase;color:#0f8;font-size:clamp(.875rem,.853rem + .09vw,.9375rem)}.pulse{width:8px;height:8px;border-radius:50%;background:#0f8;box-shadow:0 0 10px #0f8;animation:pulse 2s ease-in-out infinite}@keyframes pulse{50%{opacity:.35;transform:scale(.7)}}.name{margin:0;width:fit-content;font-family:var(--font-display);font-weight:900;line-height:.95;font-size:clamp(32px,5vw + 18px,104px);letter-spacing:-.02em;color:#f2fbff;text-shadow:0 2px 40px rgba(0,0,0,.55),0 0 80px rgba(0,212,255,.18);white-space:nowrap}.name .line{display:block}.name .accent{color:#00d4ff}.name .mask{display:inline-block;overflow:hidden;vertical-align:top;padding-bottom:.06em}.name .ch{display:inline-block;will-change:transform}.role{margin:clamp(12px,1.8vh,20px) 0 0;font-family:var(--font-display);font-weight:800;width:fit-content;white-space:nowrap;font-size:clamp(.8125rem,.72rem + .38vw,1.0625rem);letter-spacing:.22em;color:#d0eeff}.hero-col{width:fit-content;max-width:100%}.intro{width:0;min-width:100%;font-size:clamp(1.125rem,1.04rem + .38vw,1.375rem);margin-top:clamp(26px,5vh,52px)}.greeting{margin:0;font-family:var(--font-body);font-weight:500;font-size:1em;line-height:1.5;color:#d0eeff;text-shadow:0 2px 24px rgba(0,0,0,.6)}.stack{margin-top:clamp(20px,3.6vh,36px)}.stack-label{margin:0 0 14px;font-family:var(--font-mono);font-weight:400;font-size:.8125rem;letter-spacing:.2em;text-transform:uppercase;color:#8ec8e8}.hero-ctas{display:flex;flex-wrap:wrap;gap:10px;margin-top:clamp(26px,5vh,52px)}@media (max-width: 480px){.hero-ctas{flex-wrap:nowrap}.hero-ctas .btn{padding:13px 18px;font-size:.8125rem;letter-spacing:.04em}}.btn-atom{display:inline-flex}.btn{display:inline-flex;align-items:center;gap:10px;padding:16px 26px;border-radius:999px;font-family:var(--font-mono);font-size:clamp(.875rem,.853rem + .09vw,.9375rem);letter-spacing:.06em;text-decoration:none;transition:transform .25s cubic-bezier(.22,1,.36,1),box-shadow .25s,background .25s,color .25s}.btn.primary{background:#00d4ff;color:#04121f;font-weight:700}.btn.primary:hover{transform:translateY(-2px);box-shadow:0 10px 30px #00d4ff59}.btn.ghost{color:#d0eeff;border:1px solid rgba(0,170,230,.4);background:#020c1ab8}.btn.ghost:hover{border-color:#00d4ff;color:#00d4ff}.rail{overflow:hidden;-webkit-mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent);mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent)}.rail-track{display:flex;width:max-content;will-change:transform}.rail-item{display:flex;align-items:center;gap:10px;flex:none;padding-right:36px}.rail-icon{display:grid;place-items:center;flex:none;width:clamp(32px,2.6vw,40px);height:clamp(32px,2.6vw,40px);border-radius:28%;background:linear-gradient(145deg,#fffffff5,#d6ecf8eb);box-shadow:0 10px 24px -12px #0009,0 0 0 1px #fff6 inset}.rail-icon img{width:54%;height:54%;object-fit:contain}.rail-label{font-family:var(--font-mono);font-weight:400;font-size:.8125rem;letter-spacing:.2em;text-transform:uppercase;color:#d0eeff;white-space:nowrap}@media (max-width: 700px){.hero-inner{padding-top:84px}}@media (max-width: 700px) and (max-height: 600px){.stack{display:none}}.section{display:block;padding:clamp(72px,12vh,140px) 0 0;background:linear-gradient(90deg,#020814c7,#0208148c 55%,#02081426)}@media (max-width: 900px){.section{background:#02081499}}.inner{padding:0 clamp(20px,5vw,96px);max-width:1440px;margin:0 auto;box-sizing:border-box}.section:first-child{padding-top:clamp(110px,18vh,180px)}.section:last-of-type{flex-grow:1;padding-bottom:clamp(72px,12vh,140px)}.two-col{display:grid;grid-template-columns:1fr 1fr;gap:clamp(18px,2.4vw,26px) clamp(32px,5vw,80px)}@media (max-width: 900px){.two-col{grid-template-columns:1fr}}.kicker{margin:0 0 clamp(36px,6vh,64px);font-family:var(--font-display);font-weight:900;letter-spacing:-.01em;line-height:1;font-size:clamp(1.875rem,.95rem + 3.94vw,4.5rem);color:#d0eeff}.sub-h{margin:0 0 14px;font-family:var(--font-mono);font-weight:400;font-size:.8125rem;letter-spacing:.2em;text-transform:uppercase;color:#8ec8e8}.body{margin:0;font-size:clamp(1rem,.956rem + .19vw,1.125rem);line-height:1.65;max-width:60ch}.chips{display:flex;flex-wrap:wrap;gap:10px}.chip{padding:8px 16px;border-radius:999px;border:1px solid rgba(0,170,230,.4);background:#00a0dc14;color:#d0eeff;font-family:var(--font-mono);font-size:clamp(.875rem,.853rem + .09vw,.9375rem);letter-spacing:.06em}.skills{margin-top:clamp(36px,6vh,64px);display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:clamp(36px,6vh,64px) clamp(32px,5vw,80px)}.skill-group h3{margin:0 0 14px;font-family:var(--font-mono);font-weight:400;font-size:.8125rem;letter-spacing:.2em;text-transform:uppercase;color:#8ec8e8}.cf-title,.project h3,.work-title,.company{margin:0;font-family:var(--font-display);font-weight:700;font-size:clamp(1.25rem,1.03rem + .94vw,1.875rem);line-height:1.15;color:#d0eeff}.project,.work,.job{padding:clamp(20px,3vw,40px);border-radius:28px;border:1px solid rgba(0,170,230,.4);background:linear-gradient(160deg,#00a0dc1a,#00a0dc08)}.jobs{display:grid;gap:clamp(16px,2vw,24px)}.job{display:grid;grid-template-columns:minmax(220px,1fr) 2fr;gap:clamp(18px,2.4vw,26px) clamp(32px,5vw,80px)}.job-head{display:flex;flex-direction:column;align-items:flex-start;gap:10px}.company{margin-top:4px}.job-role{margin:0;font-family:var(--font-mono);font-size:clamp(.875rem,.853rem + .09vw,.9375rem);letter-spacing:.06em;color:#00d4ff}.period{font-family:var(--font-mono);font-size:.8125rem;letter-spacing:.06em;color:#8ec8e8;padding:6px 14px;border:1px solid rgba(0,170,230,.4);border-radius:999px}.job ul{max-width:68ch}@media (max-width: 900px){.job{grid-template-columns:1fr}}.job ul{margin:0;padding-left:20px;display:grid;gap:10px;line-height:1.65;font-size:clamp(1rem,.956rem + .19vw,1.125rem)}.job li::marker{color:#00d4ff}.works{display:grid;gap:clamp(16px,2vw,24px)}.work{display:grid;column-gap:clamp(32px,5vw,80px);grid-template-columns:1fr 1.3fr;grid-template-rows:1fr auto auto auto 1fr;grid-template-areas:". frame" "co frame" "title frame" "desc frame" ". frame"}.work-co{grid-area:co}.work-frame{grid-area:frame}.work-title{grid-area:title}.work-desc{grid-area:desc}.work-frame{position:relative;overflow:hidden;border-radius:18px;aspect-ratio:16/10;background:#00a0dc14;border:1px solid rgba(0,170,230,.4);box-shadow:0 30px 60px -30px #000c}.work-img{position:absolute;inset:-10% 0;width:100%;height:120%;object-fit:cover;will-change:transform;transition:opacity .5s ease}.work-frame.loading .work-img{opacity:0}.work-frame.loading:after{content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(100deg,transparent 20%,rgba(0,212,255,.1) 45%,rgba(208,238,255,.14) 50%,rgba(0,212,255,.1) 55%,transparent 80%);transform:translate(-100%);animation:skeleton-sweep 1.4s ease-in-out infinite}@keyframes skeleton-sweep{to{transform:translate(100%)}}.work-frame.failed .work-img{visibility:hidden}.work-co{font-family:var(--font-mono);font-weight:400;font-size:.8125rem;letter-spacing:.2em;text-transform:uppercase;color:#00d4ff}.work-title{margin:10px 0 14px;overflow-wrap:anywhere}.work-desc{margin:0;font-size:clamp(1rem,.956rem + .19vw,1.125rem);line-height:1.65}@media (max-width: 900px){.work{grid-template-columns:1fr;grid-template-rows:none;grid-template-areas:"co" "title" "frame" "desc"}.work-title{margin:10px 0 clamp(18px,2.4vw,26px)}.work-desc{margin-top:clamp(18px,2.4vw,26px)}}.section-head{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:14px clamp(18px,2.4vw,26px);margin:0 0 clamp(36px,6vh,64px)}.section-head .kicker{margin:0}.gh-link{display:inline-flex;align-items:center;gap:10px;padding:12px 20px;border-radius:999px;font-family:var(--font-mono);font-size:clamp(.875rem,.853rem + .09vw,.9375rem);letter-spacing:.06em;text-decoration:none;color:#d0eeff;border:1px solid rgba(0,170,230,.4);background:#020e1e99;transition:border-color .25s,color .25s,background .25s}.gh-link:hover,.gh-link:focus-visible{border-color:#00d4ff;color:#00d4ff;background:#00a0dc1f}.gh-icon{width:20px;height:20px;flex:none;background-color:currentColor;-webkit-mask-position:center;-webkit-mask-size:contain;-webkit-mask-repeat:no-repeat;mask-position:center;mask-size:contain;mask-repeat:no-repeat}.projects{display:grid;gap:clamp(16px,2vw,24px)}.project{display:grid;column-gap:clamp(32px,5vw,80px);align-items:center;grid-template-columns:minmax(0,1fr) minmax(0,1.3fr)}.project>*{min-width:0}.project .p-text{display:flex;flex-direction:column;align-items:flex-start;gap:14px}.project .p-num{font-family:var(--font-mono);font-weight:400;font-size:.8125rem;letter-spacing:.2em;text-transform:uppercase;color:#00d4ff}.project .p-tag{margin:0;font-family:var(--font-mono);font-size:clamp(.875rem,.853rem + .09vw,.9375rem);letter-spacing:.06em;color:#8ec8e8}.project .p-stack{color:#d0eeff}.project .p-desc{margin:0;font-size:clamp(1rem,.956rem + .19vw,1.125rem);line-height:1.65}.project .live{color:#00d4ff;font-family:var(--font-mono);font-size:clamp(.875rem,.853rem + .09vw,.9375rem);letter-spacing:.06em;text-decoration:none;border-bottom:1px solid rgba(0,170,230,.4);padding-bottom:2px}.p-shots{display:flex;gap:14px;align-items:flex-start}.p-shots img{flex:1 1 0;min-width:0;height:auto;aspect-ratio:9/16;object-fit:cover;border-radius:18px;border:1px solid rgba(0,170,230,.4);background:#00a0dc14;box-shadow:0 20px 40px -24px #000c}@media (max-width: 900px){.project{grid-template-columns:minmax(0,1fr)}.project>.p-shots{overflow-x:auto;scroll-snap-type:x mandatory;margin-top:14px;padding-bottom:10px;scrollbar-width:none}.project>.p-shots img{flex:none;width:min(62%,240px);scroll-snap-align:start}}.edu{display:flex;align-items:baseline;gap:clamp(18px,2.4vw,26px);padding:clamp(18px,2.4vw,26px) 0;border-bottom:1px solid rgba(0,170,230,.4)}.edu:first-of-type{border-top:1px solid rgba(0,170,230,.4)}.edu .year{flex:none;font-family:var(--font-mono);font-weight:400;font-size:.8125rem;letter-spacing:.2em;text-transform:uppercase;color:#00d4ff;min-width:52px}.edu strong{display:block;font-size:clamp(1.125rem,1.04rem + .38vw,1.375rem);line-height:1.3;letter-spacing:-.01em;color:#d0eeff;font-weight:600;margin-bottom:6px}.edu small{display:block;color:#8ec8e8;font-size:clamp(.875rem,.853rem + .09vw,.9375rem);line-height:1.5}.kicker:has(+.contact-intro){margin-bottom:14px}.contact-intro{margin:0 0 clamp(18px,2.4vw,26px);font-size:clamp(1.125rem,1.04rem + .38vw,1.375rem);line-height:1.5;color:#d0eeff}.contact-list{display:grid;gap:10px;max-width:760px}.c-card{display:flex;align-items:center;gap:clamp(18px,2.4vw,26px);padding:clamp(18px,2.4vw,26px) clamp(18px,2.4vw,28px);border-radius:18px;text-decoration:none;border:1px solid rgba(0,170,230,.4);background:#020e1e99;transition:border-color .25s,background .25s,box-shadow .25s}.c-card:hover,.c-card:focus-visible{border-color:#00d4ff;background:#00a0dc1f;box-shadow:0 16px 40px -20px #00d4ff59}.c-card:hover .c-arrow,.c-card:focus-visible .c-arrow{transform:translate(4px,-4px);color:#00d4ff}.c-icon{flex:none;width:28px;height:28px;background-color:#00d4ff;-webkit-mask:center/contain no-repeat;mask:center/contain no-repeat}.c-text{display:flex;flex-direction:column;gap:4px;min-width:0}.c-label{font-family:var(--font-mono);font-weight:400;font-size:.8125rem;letter-spacing:.2em;text-transform:uppercase;color:#8ec8e8;white-space:nowrap}.c-value{font-family:var(--font-mono);font-size:clamp(1.125rem,1.04rem + .38vw,1.375rem);color:#d0eeff;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.c-arrow{margin-left:auto;color:#8ec8e8;transition:transform .25s cubic-bezier(.22,1,.36,1),color .25s}dialog.confirm{width:min(440px,100vw - 32px);box-sizing:border-box;margin:auto;padding:clamp(20px,3vw,40px);border-radius:28px;border:1px solid rgba(0,170,230,.4);background:#041020f0;color:#b3d0e3;font-family:var(--font-body);box-shadow:0 30px 80px -20px #000c,0 0 0 1px #00d4ff0f inset}dialog.confirm[open]{animation:cf-in .28s cubic-bezier(.22,1,.36,1)}dialog.confirm::backdrop{background:#00040c99;backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);animation:cf-fade .28s ease-out}@keyframes cf-in{0%{opacity:0;transform:translateY(14px) scale(.97)}}@keyframes cf-fade{0%{opacity:0}}.cf-msg{margin:14px 0 0;font-size:clamp(1rem,.956rem + .19vw,1.125rem);line-height:1.65}.cf-actions{display:flex;justify-content:flex-end;flex-wrap:wrap;gap:10px;margin-top:clamp(18px,2.4vw,26px)}:root{--font-display: "Orbitron", monospace;--font-mono: "Share Tech Mono", monospace;--font-body: "Inter", sans-serif}html,body{width:100%;height:100%;margin:0;padding:0;overflow:hidden;overscroll-behavior:none;-webkit-tap-highlight-color:transparent;background:#00040c;color-scheme:dark}body{position:fixed;inset:0;box-sizing:border-box}:focus-visible{outline:2px solid #00d4ff;outline-offset:2px}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important;scroll-behavior:auto!important}}
