:root{--bg: #000000;--bg-elevated: #0c0c10;--border: rgba(255, 255, 255, .08);--border-strong: rgba(255, 255, 255, .15);--text: #f5f5f7;--text-secondary: #a1a1a6;--text-tertiary: #6e6e73;--accent: #2997ff;--grad-a: #2997ff;--grad-b: #a972ff;--grad-c: #ffb340;--ease: cubic-bezier(.22, 1, .36, 1);--spring: cubic-bezier(.34, 1.4, .44, 1);--nav-h: 52px;--mono: "JetBrains Mono", ui-monospace, "SF Mono", monospace;--display: "Space Grotesk", "Inter", sans-serif}body[data-layer="0"]{--accent: #2997ff}body[data-layer="1"]{--accent: #64d2ff}body[data-layer="2"]{--accent: #a972ff}body[data-layer="3"]{--accent: #ff6482}body[data-layer="4"]{--accent: #ffb340}*{margin:0;padding:0;box-sizing:border-box}html.no-lenis{scroll-behavior:smooth}html.lenis,html.lenis body{height:auto}.lenis.lenis-smooth{scroll-behavior:auto!important}.lenis.lenis-smooth [data-lenis-prevent]{overscroll-behavior:contain}.lenis.lenis-stopped{overflow:hidden}html.cursor-on,html.cursor-on a,html.cursor-on button{cursor:none}body{background:var(--bg);color:var(--text);font-family:Inter,-apple-system,BlinkMacSystemFont,sans-serif;font-size:17px;line-height:1.55;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;overflow-x:hidden}body.boot-lock{overflow:hidden;height:100vh}::selection{background:color-mix(in srgb,var(--accent) 35%,transparent)}a{color:inherit;text-decoration:none}.wrap{max-width:1020px;margin:0 auto;padding:0 24px}#boot{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1000;background:#000;display:flex;align-items:center;justify-content:center;transition:clip-path .8s cubic-bezier(.76,0,.24,1);clip-path:inset(0 0 0 0);animation:bootFailsafe .5s linear 4.5s forwards}#boot.boot-out{clip-path:inset(0 0 100% 0)}@keyframes bootFailsafe{to{opacity:0;visibility:hidden;pointer-events:none}}#boot-log{font-family:var(--mono);font-size:13.5px;line-height:2.1;min-width:340px;min-height:240px}.b-line{animation:bLineIn .18s var(--ease) both}@keyframes bLineIn{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}.b-cmd{color:#f5f5f7}.b-cmd:before{content:""}.b-dim{color:#6e6e73}.b-ok{color:#a1a1a6}.b-ok:first-letter{color:#32d74b}.b-done{color:#32d74b;margin-top:6px}#cur-dot,#cur-ring{position:fixed;top:0;left:0;z-index:999;pointer-events:none;border-radius:50%;opacity:0;display:none}html.cursor-on #cur-dot,html.cursor-on #cur-ring{display:block}#cur-dot{width:6px;height:6px;background:var(--accent);transition:background .4s ease,width .25s var(--ease),height .25s var(--ease),opacity .3s ease}#cur-dot.on{width:3px;height:3px}#cur-ring{width:30px;height:30px;border:1.5px solid color-mix(in srgb,var(--accent) 65%,transparent);transition:border-color .4s ease,width .3s var(--ease),height .3s var(--ease),opacity .3s ease,background .3s ease}#cur-ring.on{width:52px;height:52px;background:color-mix(in srgb,var(--accent) 10%,transparent)}.bg-layer{position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:0;will-change:opacity}#bg-glow{opacity:1}#bg-glow:before{content:"";position:absolute;width:950px;height:950px;left:50%;top:52%;transform:translate(-50%,-50%);background:radial-gradient(closest-side,rgba(41,151,255,.13),rgba(169,114,255,.06) 45%,transparent 70%);filter:blur(40px);animation:breathe 9s ease-in-out infinite}@keyframes breathe{0%,to{transform:translate(-50%,-50%) scale(1);opacity:.85}50%{transform:translate(-50%,-50%) scale(1.1);opacity:1}}#bg-dots{opacity:0;background-image:radial-gradient(rgba(255,255,255,.13) 1px,transparent 1px);background-size:28px 28px;mask-image:radial-gradient(ellipse 90% 80% at 50% 50%,black 30%,transparent 75%);-webkit-mask-image:radial-gradient(ellipse 90% 80% at 50% 50%,black 30%,transparent 75%)}#bg-grid{opacity:0;background-image:linear-gradient(rgba(255,255,255,.05) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.05) 1px,transparent 1px);background-size:64px 64px}#bg-deep{opacity:0;background:radial-gradient(ellipse 80% 55% at 50% 105%,rgba(255,179,64,.13),transparent 65%)}main{position:relative;z-index:1}.gauge{position:fixed;left:26px;top:50%;transform:translateY(-50%);z-index:90;font-family:var(--mono);-webkit-user-select:none;user-select:none}.gauge-readout{font-size:10px;letter-spacing:.1em;color:var(--accent);margin-bottom:14px;transition:color .6s ease;white-space:nowrap}.gauge-stops{display:flex;flex-direction:column}.gauge-stop{display:flex;align-items:center;gap:10px;padding:9px 0;background:none;border:none;text-align:left;font-family:var(--mono);font-size:9.5px;letter-spacing:.14em;color:var(--text-tertiary);transition:color .4s ease;cursor:pointer}.gauge-stop:before{content:"";width:14px;height:1px;background:var(--text-tertiary);transition:width .4s var(--ease),background .4s ease}.gauge-stop:hover{color:var(--text-secondary)}.gauge-stop.active{color:var(--accent)}.gauge-stop.active:before{width:26px;background:var(--accent)}@media (max-width: 1180px){.gauge{display:none}}.depth-bar{position:fixed;top:var(--nav-h);left:0;right:0;height:2px;z-index:95;pointer-events:none}.depth-bar i{display:block;height:100%;width:0%;background:linear-gradient(90deg,var(--grad-a),var(--grad-b),var(--grad-c))}@media (min-width: 1181px){.depth-bar{display:none}}nav{position:fixed;top:0;left:0;right:0;z-index:100;height:var(--nav-h);background:#0000008c;-webkit-backdrop-filter:saturate(180%) blur(20px);backdrop-filter:saturate(180%) blur(20px);border-bottom:1px solid transparent;transition:border-color .4s var(--ease),opacity .6s ease .4s,transform .7s var(--ease) .4s;opacity:0;transform:translateY(-100%)}body.booted nav{opacity:1;transform:none}nav.scrolled{border-bottom-color:var(--border)}.nav-inner{max-width:1280px;margin:0 auto;padding:0 24px;height:100%;display:flex;align-items:center;justify-content:space-between}.nav-logo{font-family:var(--mono);font-size:13px;font-weight:500;letter-spacing:.02em}.nav-logo b{font-weight:600}.nav-logo span{color:var(--text-tertiary)}.nav-links{display:flex;gap:26px}.nav-links a{font-size:13.5px;font-weight:450;color:var(--text-secondary);transition:color .25s ease}.nav-links a:hover,.nav-links a:focus-visible{color:var(--text)}.layer-head{display:flex;align-items:center;gap:16px;font-family:var(--mono);font-size:11px;letter-spacing:.16em;color:var(--text-tertiary);margin-bottom:48px}.layer-head .lh-id{color:var(--accent);transition:color .6s ease;font-weight:500}.layer-head .lh-rule{flex:1;height:1px;background:var(--border);position:relative}.layer-head .lh-rule:before,.layer-head .lh-rule:after{content:"";position:absolute;top:-3px;width:1px;height:7px;background:var(--border-strong)}.layer-head .lh-rule:before{left:0}.layer-head .lh-rule:after{right:0}section{padding:110px 0;position:relative}.section-title{font-family:var(--display);font-size:clamp(32px,5vw,48px);font-weight:700;letter-spacing:-.03em;line-height:1.06;margin-bottom:48px}.section-title em{font-style:normal;color:var(--text-tertiary)}.line{display:block;overflow:hidden;padding-bottom:.08em;margin-bottom:-.08em}.line>span{display:inline-block;transform:translateY(115%);transition:transform 1s var(--spring);transition-delay:var(--ld, 0s);will-change:transform}.reveal-lines.in .line>span{transform:translateY(0)}.hero{min-height:100svh;display:flex;flex-direction:column;justify-content:center;padding:calc(var(--nav-h) + 40px) 0 80px;position:relative}#hero-canvas{position:absolute;top:0;right:0;bottom:0;left:0;z-index:0;pointer-events:none;mask-image:radial-gradient(ellipse 95% 95% at 50% 45%,black 40%,transparent 80%);-webkit-mask-image:radial-gradient(ellipse 95% 95% at 50% 45%,black 40%,transparent 80%)}.hero .wrap{position:relative;z-index:1;will-change:transform,opacity}.h-rise{opacity:0;transform:translateY(34px);filter:blur(8px);transition:opacity .9s var(--ease),transform 1s var(--spring),filter .9s var(--ease);transition-delay:var(--d, 0s)}body.booted .h-rise{opacity:1;transform:none;filter:none}.eyebrow{font-family:var(--mono);font-size:12px;font-weight:500;letter-spacing:.14em;text-transform:uppercase;color:var(--text-tertiary);margin-bottom:26px}.eyebrow b{color:var(--accent);font-weight:500;transition:color .6s ease}.hero h1{font-family:var(--display);font-size:clamp(50px,9vw,104px);font-weight:700;letter-spacing:-.04em;line-height:1.02;margin-bottom:30px;position:relative;width:fit-content}.hero h1 .line>span{transform:translateY(115%);transition:transform 1.1s var(--spring);transition-delay:var(--ld, 0s)}body.booted .hero h1 .line>span{transform:translateY(0)}.hero h1 .grad{background:linear-gradient(100deg,var(--grad-a),var(--grad-b) 55%,var(--grad-c));background-size:200% 200%;-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;animation:gradShift 8s ease-in-out infinite}@keyframes gradShift{0%,to{background-position:0% 50%}50%{background-position:100% 50%}}@media (pointer: fine){.hero h1:before{content:"";position:absolute;top:-10px;right:-14px;bottom:-10px;left:-14px;border:1px dashed color-mix(in srgb,var(--accent) 55%,transparent);border-radius:2px;opacity:0;transition:opacity .3s ease;pointer-events:none}.hero h1:after{content:"h1 · Space Grotesk 700 · clamp(50→104)px · tracking -0.04em";position:absolute;left:-14px;bottom:calc(100% + 14px);font-family:var(--mono);font-size:10.5px;font-weight:400;letter-spacing:.04em;line-height:1.6;color:var(--accent);background:#000000d9;border:1px solid color-mix(in srgb,var(--accent) 40%,transparent);padding:5px 10px;border-radius:4px;opacity:0;transform:translateY(4px);transition:opacity .3s ease,transform .3s var(--ease);pointer-events:none;-webkit-text-fill-color:var(--accent);white-space:nowrap}.hero h1:hover:before{opacity:1}.hero h1:hover:after{opacity:1;transform:translateY(0)}}.hero-sub{font-size:clamp(18px,2.5vw,23px);font-weight:450;color:var(--text-secondary);max-width:640px;letter-spacing:-.015em;line-height:1.45;margin-bottom:40px}.hero-sub strong{color:var(--text);font-weight:550}.hero-cta{display:flex;gap:14px;flex-wrap:wrap;margin-bottom:64px}.btn{display:inline-flex;align-items:center;gap:8px;font-size:15px;font-weight:500;padding:12px 24px;border-radius:980px;transition:transform .45s var(--spring),background .3s ease,border-color .3s ease,color .3s ease;cursor:pointer;border:1px solid transparent;will-change:transform}.btn:active{transform:scale(.96)!important}.btn-primary{background:var(--text);color:#000}.btn-primary:hover{background:#fff}.btn-ghost{border-color:var(--border-strong);color:var(--text)}.btn-ghost:hover{background:#ffffff0f}.btn-sm{font-size:14px;padding:10px 20px}.hero-clients{border-top:1px solid var(--border);padding-top:26px}.hero-clients p{font-family:var(--mono);font-size:11px;font-weight:500;letter-spacing:.14em;text-transform:uppercase;color:var(--text-tertiary);margin-bottom:16px}.client-row{display:flex;gap:12px 36px;flex-wrap:wrap;font-size:17px;font-weight:600;letter-spacing:-.01em;color:var(--text-secondary)}.scroll-hint{position:absolute;bottom:28px;left:50%;transform:translate(-50%);font-family:var(--mono);font-size:10px;letter-spacing:.2em;color:var(--text-tertiary);display:flex;flex-direction:column;align-items:center;gap:10px;animation:hintFloat 2.6s ease-in-out infinite;z-index:1}.scroll-hint:after{content:"";width:1px;height:34px;background:linear-gradient(var(--text-tertiary),transparent)}@keyframes hintFloat{0%,to{opacity:.5;transform:translate(-50%) translateY(0)}50%{opacity:1;transform:translate(-50%) translateY(5px)}}.strip{padding:38px 0;overflow:hidden;-webkit-user-select:none;user-select:none;pointer-events:none}.strip-row{display:flex;gap:0;white-space:nowrap;font-family:var(--display);font-weight:700;font-size:clamp(54px,9vw,120px);letter-spacing:-.02em;line-height:1.1;will-change:transform}.strip-row.outline{color:transparent;-webkit-text-stroke:1px rgba(255,255,255,.22)}.strip-row.solid{color:#ffffff12;margin-top:-.32em}.strip-row span{padding-right:.55em}.highlights{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--border);border:1px solid var(--border);border-radius:18px;overflow:hidden;margin-bottom:96px}.highlight{background:var(--bg-elevated);padding:34px 30px}.highlight .num{font-family:var(--display);font-size:42px;font-weight:700;letter-spacing:-.03em;line-height:1;margin-bottom:10px}.highlight .lbl{font-size:14.5px;color:var(--text-secondary);line-height:1.45}.about-grid{display:grid;grid-template-columns:1fr 1.6fr;gap:64px;align-items:start}.about-statement{font-family:var(--display);font-size:clamp(26px,3.6vw,36px);font-weight:700;letter-spacing:-.025em;line-height:1.12;position:sticky;top:calc(var(--nav-h) + 40px)}.about-statement .grad{background:linear-gradient(100deg,var(--grad-a),var(--grad-b));-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}.about-text p{font-size:17.5px;color:var(--text-secondary);line-height:1.65;letter-spacing:-.01em}.about-text p+p{margin-top:22px}.about-text strong{color:var(--text);font-weight:550}.about-foot{margin-top:30px;padding-top:22px;border-top:1px solid var(--border);font-size:13.5px;color:var(--text-tertiary);font-family:var(--mono)}.card{position:relative;background:var(--bg-elevated);border:1px solid var(--border);overflow:hidden;transition:border-color .4s ease,transform .5s var(--ease);transform-style:preserve-3d}.card:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:radial-gradient(560px circle at var(--mx, 50%) var(--my, 0%),color-mix(in srgb,var(--accent) 9%,transparent),transparent 65%);opacity:0;transition:opacity .45s ease;pointer-events:none}.card:hover{border-color:var(--border-strong)}.card:hover:before{opacity:1}#projects .card{border-radius:14px;padding:36px 38px}#projects .card+.card{margin-top:16px}.xp-top{display:flex;justify-content:space-between;align-items:baseline;gap:16px;flex-wrap:wrap;margin-bottom:6px}.xp-role{font-family:var(--display);font-size:21px;font-weight:600;letter-spacing:-.015em}.xp-period{font-family:var(--mono);font-size:11.5px;color:var(--text-tertiary);white-space:nowrap;letter-spacing:.03em}.xp-company{font-size:15px;font-weight:500;color:var(--accent);margin-bottom:16px;transition:color .6s ease}.xp-company span{color:var(--text-tertiary);font-weight:450}.xp-desc{font-size:15.5px;color:var(--text-secondary);max-width:700px}.xp-tags{display:flex;gap:8px;flex-wrap:wrap;margin-top:20px}.tag{font-family:var(--mono);font-size:11px;letter-spacing:.02em;padding:5px 11px;border-radius:6px;background:#ffffff0d;border:1px solid var(--border);color:var(--text-secondary)}.proj-actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:24px}.proj-media{margin-top:32px}.browser-frame{border:1px solid var(--border-strong);border-radius:12px;overflow:hidden;background:#1a1a1e;box-shadow:0 24px 60px -20px #000000b3}.browser-bar{display:flex;align-items:center;gap:8px;padding:10px 14px;background:#1f1f24;border-bottom:1px solid var(--border)}.browser-bar .dot{width:10px;height:10px;border-radius:50%}.dot-r{background:#ff5f57}.dot-y{background:#febc2e}.dot-g{background:#28c840}.browser-url{margin-left:10px;flex:1;font-family:var(--mono);font-size:11px;color:var(--text-tertiary);background:#ffffff0d;border-radius:6px;padding:4px 12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.browser-frame img{display:block;width:100%;height:auto;opacity:1;transition:opacity .35s ease}.browser-frame img.swapping{opacity:0}.proj-thumbs{display:flex;gap:12px;margin-top:14px}.proj-thumbs button{flex:1;padding:0;border:1px solid var(--border);border-radius:8px;overflow:hidden;background:none;opacity:.55;transition:border-color .3s ease,transform .3s var(--ease),opacity .3s ease;cursor:pointer}.proj-thumbs button:hover{transform:translateY(-2px);opacity:.85}.proj-thumbs button.active{border-color:var(--accent);opacity:1}.proj-thumbs img{display:block;width:100%;height:72px;object-fit:cover;object-position:top}#experience .card,#skills .skill-group{border-radius:4px;border-style:dashed;border-color:#ffffff21}#experience .card{padding:34px 36px}#experience .card+.card{margin-top:14px}#experience .card:hover,#skills .skill-group:hover{border-style:solid}#experience .tag{border-radius:3px}.skills-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.skill-group{background:var(--bg-elevated);border:1px dashed rgba(255,255,255,.13);border-radius:4px;padding:30px;position:relative;overflow:hidden;transition:border-color .4s ease,transform .5s var(--ease);transform-style:preserve-3d}.skill-group:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:radial-gradient(400px circle at var(--mx, 50%) var(--my, 0%),color-mix(in srgb,var(--accent) 8%,transparent),transparent 65%);opacity:0;transition:opacity .45s ease;pointer-events:none}.skill-group:hover:before{opacity:1}.skill-group:hover{border-color:var(--border-strong)}.skill-group h3{font-family:var(--mono);font-size:11px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;margin-bottom:18px}.skill-group:nth-child(1) h3{color:#64d2ff}.skill-group:nth-child(2) h3{color:#a972ff}.skill-group:nth-child(3) h3{color:#ffb340}.skill-group ul{list-style:none;display:flex;flex-direction:column;gap:10px}.skill-group li{font-size:14.5px;color:var(--text-secondary);display:flex;align-items:center;gap:10px}.skill-group li:before{content:"";width:5px;height:5px;background:var(--text-tertiary);flex-shrink:0}.edu-strip{margin-top:72px}.edu-item{display:grid;grid-template-columns:140px 1fr;gap:24px;padding:22px 0;border-bottom:1px dashed rgba(255,255,255,.1)}.edu-item:first-child{border-top:1px dashed rgba(255,255,255,.1)}.edu-period{font-family:var(--mono);font-size:12px;color:var(--text-tertiary);padding-top:3px}.edu-title{font-size:16.5px;font-weight:550;letter-spacing:-.01em;margin-bottom:2px}.edu-school{font-size:14px;color:var(--text-secondary)}#contact{padding:130px 0 90px}.terminal{font-family:var(--mono);background:#0c0c0ed9;border:1px solid rgba(255,179,64,.22);padding:36px 40px;font-size:14.5px;line-height:2.05;box-shadow:0 0 80px -30px #ffb34040}.terminal .ln{display:block}.terminal .prompt{color:#ffb340}.terminal .cmd{color:var(--text)}.terminal .out{color:var(--text-secondary)}.terminal .cursor{display:inline-block;width:8px;height:17px;background:#ffb340;vertical-align:text-bottom;animation:blink 1.1s steps(1) infinite}@keyframes blink{50%{opacity:0}}.contact-links{display:flex;gap:14px;flex-wrap:wrap;margin-top:36px}#contact .btn{border-radius:0;font-family:var(--mono);font-size:13.5px;letter-spacing:.02em}#contact .btn-primary{background:#ffb340;color:#000}#contact .btn-primary:hover{background:#ffc468}#contact .btn-ghost{border-color:#ffb34059}#contact .btn-ghost:hover{background:#ffb34014}footer{border-top:1px solid var(--border);padding:30px 0;position:relative;z-index:1}.footer-inner{display:flex;justify-content:space-between;align-items:center;gap:16px;flex-wrap:wrap;font-family:var(--mono);font-size:11.5px;color:var(--text-tertiary)}.footer-inner a{transition:color .25s ease}.footer-inner a:hover{color:var(--text)}.reveal{opacity:0;transform:translateY(28px);filter:blur(6px);transition:opacity .9s var(--ease),transform .9s var(--ease),filter .9s var(--ease);transition-delay:var(--d, 0s)}.reveal.in{opacity:1;transform:translateY(0);filter:blur(0)}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:1ms!important;transition-duration:1ms!important}html.no-lenis{scroll-behavior:auto}.reveal,.h-rise{opacity:1;transform:none;filter:none}.line>span,.hero h1 .line>span{transform:none!important}#boot,.strip{display:none}nav{opacity:1;transform:none}}@media (max-width: 820px){.nav-links a:not(.nav-contact){display:none}.highlights,.skills-grid{grid-template-columns:1fr}.about-grid{grid-template-columns:1fr;gap:28px}.about-statement{position:static}.edu-item{grid-template-columns:1fr;gap:6px}section{padding:80px 0}#projects .card,#experience .card{padding:28px 24px}.terminal{padding:26px 22px;font-size:12.5px}.proj-thumbs img{height:52px}.scroll-hint{display:none}.hero h1:after,.hero h1:before{display:none}}
