:root{--abyss: #020d18;--midnight: #0a2a4a;--biolume: #0e6ba8;--cyan: #00d4ff;--aqua: #7fffd4;--foam: #f0f8ff;--accent: #00d4ff;--ink-hero: #f0f8ff;--font-display: "Syne", "Inter", sans-serif;--font-body: "Inter", system-ui, sans-serif;--font-mono: "Space Mono", ui-monospace, monospace}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth;overflow-x:clip}html.lenis,html.lenis body{height:auto}.lenis.lenis-smooth{scroll-behavior:auto!important}.lenis.lenis-stopped{overflow:hidden}body{background:var(--abyss);color:var(--foam);font-family:var(--font-body);font-weight:300;line-height:1.6;overflow-x:hidden;-webkit-font-smoothing:antialiased}::selection{background:var(--cyan);color:var(--abyss)}:focus-visible{outline:2px solid var(--aqua);outline-offset:3px;border-radius:2px}#ocean{position:fixed;inset:0;width:100%;height:100%;display:block;z-index:0}html.no-webgl #ocean{display:none}html.no-webgl body{background:linear-gradient(180deg,#0b2f52 0%,var(--midnight) 22%,#06203a 48%,var(--abyss) 78%,#01070d 100%);background-attachment:fixed}#dive-veil{position:fixed;inset:0;background:radial-gradient(ellipse at 50% 45%,rgba(240,248,255,.9),rgba(160,220,255,.55) 60%,transparent 100%);opacity:0;pointer-events:none;z-index:4}.skip-link{position:fixed;top:-4rem;left:1rem;z-index:40;background:var(--abyss);color:var(--foam);font-family:var(--font-mono);font-size:.75rem;padding:.6rem 1rem;border:1px solid var(--cyan);border-radius:4px;transition:top .2s ease}.skip-link:focus-visible{top:1rem}.site-header{position:fixed;top:0;left:0;right:0;z-index:20;display:flex;align-items:center;justify-content:space-between;gap:1.5rem;padding:1.4rem clamp(1.2rem,4vw,3rem);pointer-events:none}.site-header>*{pointer-events:auto}.brand{font-family:var(--font-display);font-weight:800;font-size:1.15rem;letter-spacing:.06em;color:var(--foam);text-decoration:none;text-shadow:0 1px 12px rgba(2,13,24,.8)}.brand-dot{color:var(--accent)}.site-nav{display:flex;gap:clamp(1rem,3vw,2.2rem)}.site-nav a{font-family:var(--font-mono);font-size:.72rem;letter-spacing:.28em;text-transform:uppercase;color:var(--foam);text-decoration:none;opacity:.85;text-shadow:0 1px 10px rgba(2,13,24,.9);transition:opacity .25s ease,color .25s ease}.site-nav a:hover{opacity:1;color:var(--accent)}.time-chip{font-family:var(--font-mono);font-size:.7rem;letter-spacing:.2em;text-transform:uppercase;color:var(--foam);background:#020d1873;border:1px solid rgba(0,212,255,.25);border-radius:999px;padding:.4rem .9rem;backdrop-filter:blur(8px);white-space:nowrap}main{position:relative;z-index:5;pointer-events:none}main a,main button,main p,main li,main h1,main h2,main h3{pointer-events:auto}.section{display:flex;align-items:center;padding:4rem clamp(1.2rem,5vw,4rem)}.section-inner{position:relative;width:100%;max-width:1100px;margin:0 auto}.section-inner:before{content:"";position:absolute;inset:-12% -8%;background:radial-gradient(85% 90% at 50% 50%,rgba(2,13,24,.55) 0%,rgba(2,13,24,.3) 55%,transparent 78%);pointer-events:none;z-index:-1}.hero-inner:before{background:radial-gradient(80% 85% at 50% 50%,rgba(2,13,24,.28) 0%,rgba(2,13,24,.12) 55%,transparent 78%)}.section-hero{min-height:100vh;position:relative}.section-about{min-height:130vh;margin-top:50vh}.section-projects{min-height:220vh;margin-top:40vh;align-items:flex-start;padding-top:20vh}.section-skills{min-height:110vh;margin-top:20vh}.section-contact{min-height:90vh;padding-bottom:8rem}.eyebrow{font-family:var(--font-mono);font-size:.72rem;letter-spacing:.38em;text-transform:uppercase;color:var(--accent);margin-bottom:1.4rem;text-shadow:0 1px 10px rgba(2,13,24,.9)}.section-title{font-family:var(--font-display);font-weight:800;font-size:clamp(2.2rem,5.4vw,4rem);line-height:1.02;letter-spacing:-.02em;color:var(--foam);margin-bottom:2.2rem}.hero-inner{text-align:center;max-width:1400px}.hero-title{font-family:var(--font-display);font-weight:800;font-size:clamp(2.2rem,11.5vw,11.25rem);line-height:.92;letter-spacing:-.045em;max-width:100%;color:var(--ink-hero);text-shadow:0 2px 30px rgba(2,13,24,.35)}.hero-role{font-family:var(--font-mono);font-size:clamp(.72rem,1.6vw,.95rem);letter-spacing:.32em;text-transform:uppercase;color:var(--ink-hero);opacity:.9;margin-top:1.6rem}.hero-tagline{max-width:34rem;margin:1.6rem auto 0;font-size:clamp(.95rem,2vw,1.1rem);color:var(--ink-hero);opacity:.85}.hero-actions{display:flex;justify-content:center;flex-wrap:wrap;gap:1rem;margin-top:2.6rem}.scroll-hint{position:absolute;left:50%;bottom:2.2rem;transform:translate(-50%);display:flex;flex-direction:column;align-items:center;gap:.8rem;font-family:var(--font-mono);font-size:.65rem;letter-spacing:.34em;text-transform:uppercase;color:var(--ink-hero);opacity:.75}.scroll-hint-line{width:1px;height:3.4rem;background:linear-gradient(to bottom,currentColor,transparent);overflow:hidden;position:relative}.scroll-hint-line:after{content:"";position:absolute;left:0;top:-40%;width:100%;height:40%;background:var(--accent);animation:dive-hint 2.2s cubic-bezier(.65,0,.35,1) infinite}@keyframes dive-hint{0%{top:-40%}to{top:110%}}.btn{display:inline-block;font-family:var(--font-mono);font-size:.74rem;letter-spacing:.26em;text-transform:uppercase;text-decoration:none;padding:.95rem 1.9rem;border-radius:999px;border:1px solid transparent;transition:transform .3s cubic-bezier(.22,1,.36,1),box-shadow .3s ease,background-color .3s ease,color .3s ease,border-color .3s ease}.btn:hover{transform:translateY(-3px)}.btn-solid{background:var(--cyan);color:var(--abyss);font-weight:700;box-shadow:0 0 #00d4ff00}.btn-solid:hover{box-shadow:0 8px 34px #00d4ff73}.btn-ghost{color:var(--foam);border-color:#f0f8ff73;background:#020d1840;backdrop-filter:blur(6px)}.btn-ghost:hover{border-color:var(--aqua);color:var(--aqua);box-shadow:0 8px 30px #7fffd433}.btn-big{font-size:clamp(.8rem,2vw,1rem);padding:1.2rem 2.6rem}.about-cols{display:grid;grid-template-columns:1fr 1fr;gap:2.4rem;max-width:58rem;font-size:1.05rem}.about-facts{display:flex;flex-wrap:wrap;gap:.8rem;margin-top:2.4rem;list-style:none}.about-facts li{font-family:var(--font-mono);font-size:.68rem;letter-spacing:.22em;text-transform:uppercase;color:var(--aqua);border:1px solid rgba(127,255,212,.3);background:#020d1866;border-radius:999px;padding:.55rem 1.1rem;backdrop-filter:blur(6px)}.card-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:clamp(1.2rem,3vw,2rem)}.card{position:relative;padding:clamp(1.6rem,3vw,2.4rem);border-radius:18px;background:linear-gradient(160deg,#0a2a4a80,#020d18b8);border:1px solid rgba(0,212,255,.16);backdrop-filter:blur(12px);transition:transform .45s cubic-bezier(.22,1,.36,1),border-color .45s ease,box-shadow .45s ease}.card:hover{transform:translateY(-6px);border-color:#00d4ff80;box-shadow:0 18px 50px #001e3c8c,0 0 40px #00d4ff14}.card-tag{font-family:var(--font-mono);font-size:.62rem;letter-spacing:.3em;text-transform:uppercase;color:var(--accent);margin-bottom:.9rem}.card-title{font-family:var(--font-display);font-weight:700;font-size:clamp(1.4rem,2.6vw,1.9rem);letter-spacing:-.01em;margin-bottom:.8rem}.card-body{font-size:.98rem;color:#f0f8ffdb;margin-bottom:1.4rem}.card-stack{display:flex;flex-wrap:wrap;gap:.45rem;list-style:none}.card-stack li{font-family:var(--font-mono);font-size:.62rem;letter-spacing:.12em;color:#f0f8ffbf;border:1px solid rgba(240,248,255,.18);border-radius:6px;padding:.3rem .6rem;white-space:nowrap}.skills-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:clamp(1.2rem,3vw,2rem)}.skill-group h3{font-family:var(--font-mono);font-size:.7rem;letter-spacing:.3em;text-transform:uppercase;color:var(--accent);margin-bottom:1.1rem;padding-bottom:.7rem;border-bottom:1px solid rgba(0,212,255,.25)}.skill-group ul{list-style:none}.skill-group li{font-size:.98rem;color:#f0f8ffe0;padding:.32rem 0;display:flex;align-items:center;gap:.6rem}.skill-group li:before{content:"";width:4px;height:4px;border-radius:50%;background:var(--aqua);opacity:.7;flex-shrink:0}.contact-inner{text-align:center}.contact-lead{max-width:32rem;margin:0 auto 2.6rem;font-size:clamp(1rem,2.2vw,1.15rem);color:#f0f8ffe0}.contact-links{display:flex;justify-content:center;gap:2.4rem;margin-top:2.2rem;list-style:none}.contact-links a{font-family:var(--font-mono);font-size:.74rem;letter-spacing:.28em;text-transform:uppercase;color:var(--foam);text-decoration:none;opacity:.8;border-bottom:1px solid rgba(240,248,255,.3);padding-bottom:.25rem;transition:color .25s ease,opacity .25s ease,border-color .25s ease}.contact-links a:hover{opacity:1;color:var(--aqua);border-color:var(--aqua)}.site-footer{margin-top:6rem}.site-footer p{font-family:var(--font-mono);font-size:.62rem;letter-spacing:.14em;text-transform:uppercase;color:#f0f8ff73}.depth-hud{position:fixed;left:clamp(1.2rem,4vw,3rem);bottom:1.6rem;z-index:20;font-family:var(--font-mono);font-size:.68rem;letter-spacing:.3em;color:var(--foam);opacity:.6;pointer-events:none}.cursor{display:none}html.has-cursor,html.has-cursor a,html.has-cursor button{cursor:none}html.has-cursor .cursor{display:block;position:fixed;top:0;left:0;z-index:100;pointer-events:none}.cursor-dot{position:fixed;top:0;left:0;width:7px;height:7px;margin:-3.5px 0 0 -3.5px;border-radius:50%;background:var(--aqua);box-shadow:0 0 12px #7fffd4e6,0 0 30px #00d4ff80;will-change:transform}.cursor-ring{position:fixed;top:0;left:0;width:38px;height:38px;margin:-19px 0 0 -19px;border-radius:50%;border:1px solid rgba(0,212,255,.65);will-change:transform;transition:width .3s ease,height .3s ease,margin .3s ease,border-color .3s ease}.cursor-ring.is-active{width:58px;height:58px;margin:-29px 0 0 -29px;border-color:var(--aqua)}html.js [data-reveal]{opacity:0}@media(max-width:880px){.card-grid{grid-template-columns:1fr}.skills-grid{grid-template-columns:repeat(2,1fr);gap:2rem 1.4rem}.about-cols{grid-template-columns:1fr;gap:1.4rem}.section-about{margin-top:30vh}.section-projects{margin-top:25vh;min-height:240vh}}@media(max-width:560px){.site-nav{display:none}.skills-grid{grid-template-columns:1fr}.depth-hud{bottom:1rem}.time-chip{font-size:.6rem;padding:.35rem .7rem}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.scroll-hint-line:after{animation:none;top:0;height:100%;opacity:.5}.btn,.card,.site-nav a,.contact-links a{transition:none}.btn:hover,.card:hover{transform:none}}
