:root{--bg: #000000;--text: rgba(255, 255, 255, .75);--accent: #ffffff;--accent-red: #c0392b;--font-mono: "Space Mono", "IBM Plex Mono", "Courier New", monospace;--font-display: "Cinzel Decorative", "Cinzel", serif;--font-nav: "Raleway", "Space Mono", sans-serif;--ui-padding: 32px;--ui-padding-mobile: 20px}*,*:before,*:after{margin:0;padding:0;box-sizing:border-box}html{scroll-behavior:auto}body{background:var(--bg);color:var(--text);font-family:var(--font-mono);height:2200vh;overflow-x:hidden;visibility:hidden}body.scene-ready{visibility:visible}#webgl{position:fixed;top:0;left:0;width:100%;height:100%;z-index:0;display:block}.ui-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:10;pointer-events:none}.ui-label{font-family:var(--font-nav);font-size:11px;font-weight:600;letter-spacing:.25em;text-transform:uppercase;color:var(--text);text-decoration:none}.ui-corner{position:absolute;display:flex;align-items:center}.ui-top-left{top:22px;left:var(--ui-padding);flex-direction:column;align-items:flex-start;gap:8px}.ui-top-right{top:22px;right:var(--ui-padding)}.ui-bottom-left{bottom:calc(22px + env(safe-area-inset-bottom,0px));left:var(--ui-padding)}.ui-bottom-right{bottom:calc(22px + env(safe-area-inset-bottom,0px));right:var(--ui-padding);gap:16px}.ui-name{font-family:var(--font-nav);font-size:clamp(12px,1.5vw,15px);font-weight:700;letter-spacing:.32em;text-indent:.32em;color:var(--accent);text-transform:uppercase;white-space:nowrap;text-shadow:0 0 8px rgba(255,255,255,.55),0 0 22px rgba(255,255,255,.25)}.btn-talk{border:1px solid rgba(255,255,255,.6);border-radius:0;padding:clamp(9px,1.2vw,11px) clamp(18px,2.6vw,30px);font-family:var(--font-nav);font-size:clamp(9px,1.1vw,11px);font-weight:700;letter-spacing:clamp(.2em,.35vw,.35em);text-transform:uppercase;cursor:pointer;pointer-events:all;background:transparent;color:#fffffff2;display:inline-flex;align-items:center;justify-content:center;line-height:1;vertical-align:middle;text-shadow:0 0 10px rgba(255,255,255,.5),0 0 26px rgba(255,255,255,.25);box-shadow:0 0 18px #ffffff14,inset 0 0 14px #ffffff0a;transition:background .3s ease,color .3s ease,border-color .3s ease,box-shadow .3s ease,text-shadow .3s ease;outline:none;position:relative}.btn-talk:before,.btn-talk:after{content:"◆";position:absolute;top:50%;transform:translateY(-50%);font-size:6px;color:#fff6;transition:color .3s ease}.btn-talk:before{left:8px}.btn-talk:after{right:8px}.btn-talk:hover{background:#ffffff1a;color:#fff;border-color:#fff;text-shadow:0 0 14px rgba(255,255,255,.85),0 0 40px rgba(255,255,255,.4);box-shadow:0 0 28px #ffffff38,inset 0 0 20px #ffffff1a}.btn-talk:hover:before,.btn-talk:hover:after{color:var(--accent-red)}.btn-talk:focus-visible{outline:1px solid rgba(255,255,255,.8);outline-offset:3px}#scroll-hint{position:absolute;top:55%;left:50%;transform:translate(-50%,-50%);font-family:var(--font-nav);font-size:clamp(16px,2vw,28px);font-weight:500;letter-spacing:.5em;color:#fff;text-shadow:0 2px 6px rgba(0,0,0,.92),0 0 3px rgba(0,0,0,.96),0 0 12px rgba(255,255,255,1),0 0 30px rgba(255,255,255,.65),0 0 70px rgba(255,255,255,.35),0 0 130px rgba(255,255,255,.18);opacity:1;white-space:nowrap}@keyframes pulse{0%,to{opacity:.65}50%{opacity:1}}.ui-phase-text{position:absolute;opacity:0}#phase1-text{bottom:30%;left:50%;transform:translate(-50%);font-family:var(--font-nav);font-size:clamp(16px,2.2vw,30px);font-weight:600;letter-spacing:.4em;color:#fff;text-shadow:0 2px 6px rgba(0,0,0,.92),0 0 3px rgba(0,0,0,.96),0 0 12px rgba(255,255,255,.85),0 0 30px rgba(255,255,255,.5),0 0 70px rgba(255,255,255,.25)}#step-text{left:var(--ui-padding);bottom:30%;font-family:var(--font-mono);font-size:clamp(11px,1.2vw,14px);font-weight:400;letter-spacing:.04em;color:#fff;text-shadow:0 0 8px rgba(255,168,48,.85),0 0 22px rgba(255,130,10,.45),0 0 50px rgba(255,100,0,.2)}#lockin-text{position:absolute;top:28%;left:65%;transform:translate(-50%,-50%);width:min(80vw,760px);text-align:center;font-family:var(--font-mono);font-size:clamp(11px,1.2vw,14px);font-weight:400;letter-spacing:.04em;line-height:1.7;color:#fff;text-shadow:0 0 8px rgba(255,168,48,.85),0 0 22px rgba(255,130,10,.45),0 0 50px rgba(255,100,0,.2);opacity:0;pointer-events:none;-webkit-user-select:none;user-select:none}#craft-text{position:absolute;right:7%;top:22%;font-size:clamp(38px,5vw,74px);font-family:var(--font-display);font-weight:900;letter-spacing:.08em;opacity:0;transform-origin:right center;color:#fff;text-shadow:0 2px 6px rgba(0,0,0,.9),0 0 3px rgba(0,0,0,.95),0 0 6px rgba(255,255,255,.95),0 0 16px rgba(255,255,255,.75),0 0 42px rgba(255,255,255,.5),0 0 90px rgba(255,255,255,.3),0 0 160px rgba(200,60,40,.18);pointer-events:none;-webkit-user-select:none;user-select:none;line-height:1}#award-text{position:absolute;right:var(--ui-padding);top:40%;display:flex;flex-direction:column;align-items:flex-end;text-align:right;gap:12px;opacity:0;pointer-events:none}.award-line{display:block;font-family:var(--font-mono);font-size:clamp(11px,1.2vw,14px);font-weight:400;letter-spacing:.04em;color:#fff;text-shadow:0 0 8px rgba(255,168,48,.85),0 0 22px rgba(255,130,10,.45),0 0 50px rgba(255,100,0,.2);opacity:0;transform:translateY(8px)}#brands-sky{position:absolute;top:0;right:0;bottom:0;left:0;opacity:0;pointer-events:none}.brand-star{position:absolute;font-family:var(--font-mono);font-size:clamp(11px,1.2vw,14px);font-weight:400;letter-spacing:.04em;line-height:1.7;max-width:44vw;color:#fff;background:none;white-space:nowrap;transform:translate(-50%,-50%);text-shadow:0 0 8px rgba(255,168,48,.85),0 0 22px rgba(255,130,10,.45),0 0 50px rgba(255,100,0,.2)}#brands-sky .char{animation:none!important;filter:none!important;transform:none!important;text-shadow:0 0 8px rgba(255,168,48,.85),0 0 22px rgba(255,130,10,.45)!important}.brand-statement{position:absolute;right:8%;bottom:16%;margin:0;font-family:var(--font-mono);font-size:clamp(12px,1.2vw,16px);font-weight:400;line-height:1.7;letter-spacing:.04em;color:#fff;text-shadow:0 0 8px rgba(255,168,48,.85),0 0 22px rgba(255,130,10,.45),0 0 50px rgba(255,100,0,.2)}#cards{position:absolute;top:0;right:0;bottom:0;left:0;opacity:0;pointer-events:none}.project-card{position:absolute;top:50%;left:50%;width:clamp(220px,26vw,290px);aspect-ratio:9 / 16;text-align:left;opacity:0;perspective:1200px;color:var(--card-accent, #ffffff);pointer-events:none}.card-inner{position:relative;width:100%;height:100%;padding:0;overflow:visible;transform-style:preserve-3d;transform:rotateY(calc(var(--mx, 0) * 14deg)) rotateX(calc(var(--my, 0) * -14deg)) translateZ(var(--lift, 0px)) scale(var(--scale, 1));transition:transform .45s cubic-bezier(.2,.8,.2,1),box-shadow .45s ease,border-color .45s ease;will-change:transform;pointer-events:none;cursor:pointer;background:radial-gradient(120% 80% at 50% 0%,rgba(255,255,255,.05),transparent 60%),#0e0e126b;border:1px solid rgba(255,255,255,.12);border-radius:14px;backdrop-filter:blur(14px) saturate(125%);-webkit-backdrop-filter:blur(14px) saturate(125%);box-shadow:0 30px 80px #00000080,0 0 0 1px #ffffff08,inset 0 1px #ffffff14}.card-inner:hover{--lift: 24px;--scale: 1.035;border-color:color-mix(in srgb,var(--card-accent) 55%,rgba(255,255,255,.15));box-shadow:0 50px 120px #000000b3,0 0 80px color-mix(in srgb,var(--card-accent) 30%,transparent),0 0 0 1px color-mix(in srgb,var(--card-accent) 35%,transparent),inset 0 1px #ffffff24}.card-inner:hover .tech-badge{transform:translateZ(64px)}.card-inner:hover .sat-metric{transform:translateZ(86px)}.card-inner:hover .card-hero{transform:translateZ(38px)}.card-inner:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;border-radius:inherit;background-image:radial-gradient(rgba(255,255,255,.06) 1px,transparent 1px);background-size:14px 14px;pointer-events:none;opacity:.55}.card-tag{position:absolute;top:-16px;right:-16px;width:max-content;max-width:128px;min-height:72px;padding:9px 11px;display:flex;flex-direction:column;justify-content:space-between;text-align:left;border-radius:12px;font-family:var(--font-nav);font-size:11px;font-weight:800;letter-spacing:.16em;line-height:1.25;text-transform:uppercase;color:#fff;text-shadow:0 1px 3px rgba(0,0,0,.9),0 0 8px color-mix(in srgb,var(--card-accent) 30%,transparent);background:linear-gradient(160deg,color-mix(in srgb,var(--card-accent) 22%,rgba(28,28,34,.92)),#0e0e12eb);border:1px solid color-mix(in srgb,var(--card-accent) 38%,rgba(255,255,255,.14));backdrop-filter:blur(16px) saturate(140%);-webkit-backdrop-filter:blur(16px) saturate(140%);box-shadow:0 18px 40px #0009,0 0 26px color-mix(in srgb,var(--card-accent) 22%,transparent),inset 0 1px #ffffff1a;transform:translateZ(48px);z-index:4}.card-tag .tag-icon{width:20px;height:20px;color:var(--card-accent);filter:drop-shadow(0 0 8px color-mix(in srgb,var(--card-accent) 70%,transparent));flex-shrink:0}.card-tag .tag-label{display:block;line-height:1.2}.card-tag:after{content:"";align-self:flex-end;width:7px;height:7px;border-radius:50%;background:var(--card-accent);box-shadow:0 0 10px var(--card-accent);animation:dotPulse 1.6s ease-in-out infinite}.card-hero{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;border-radius:inherit;overflow:hidden;background:radial-gradient(70% 60% at 50% 40%,color-mix(in srgb,var(--card-accent) 14%,transparent),transparent 70%),linear-gradient(180deg,#16161cb3,#08080cb3);color:var(--card-accent);transform:translateZ(0);box-shadow:inset 0 0 0 1px #ffffff0a,inset 0 -40px 80px color-mix(in srgb,var(--card-accent) 8%,transparent)}.hero-video{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;object-fit:cover;display:block;background:transparent}.card-hero:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;background:linear-gradient(180deg,rgba(0,0,0,.25) 0%,transparent 18%,transparent 78%,rgba(0,0,0,.45) 100%)}.title-card{position:absolute;bottom:-22px;left:-22px;min-width:130px;max-width:200px;padding:10px 12px 11px;display:flex;flex-direction:column;gap:3px;border-radius:12px;font-family:var(--font-nav);background:linear-gradient(160deg,#282830eb,#121218eb);border:1px solid rgba(255,255,255,.16);backdrop-filter:blur(16px) saturate(140%);-webkit-backdrop-filter:blur(16px) saturate(140%);box-shadow:0 20px 44px #000000a6,inset 0 1px #ffffff1a;z-index:4;transform:translateZ(72px)}.card-index{display:block;font-family:var(--font-mono);font-size:9px;font-weight:700;letter-spacing:.3em;color:color-mix(in srgb,var(--card-accent) 80%,#ffffff);margin:0;text-shadow:0 0 8px color-mix(in srgb,var(--card-accent) 50%,transparent)}.card-title{font-family:var(--font-display);font-size:15px;font-weight:700;letter-spacing:.04em;line-height:1.15;color:#fff;margin:0;text-shadow:0 1px 3px rgba(0,0,0,.9),0 0 10px color-mix(in srgb,var(--card-accent) 30%,transparent);word-break:keep-all;overflow-wrap:normal;-webkit-hyphens:none;hyphens:none}.card-desc{font-family:var(--font-nav);font-size:11px;font-weight:500;line-height:1.4;letter-spacing:.02em;color:#ffffffe0;margin:0;text-shadow:0 1px 2px rgba(0,0,0,.85);word-break:keep-all;overflow-wrap:normal;-webkit-hyphens:none;hyphens:none}@keyframes dotPulse{0%,to{opacity:.45;transform:scale(.85)}50%{opacity:1;transform:scale(1.1)}}.tech-badge{position:absolute;display:inline-flex;align-items:center;gap:7px;padding:6px 11px;font-family:var(--font-nav);background:linear-gradient(160deg,#22222aeb,#0e0e12eb);border:1px solid rgba(255,255,255,.16);border-radius:999px;backdrop-filter:blur(14px) saturate(140%);-webkit-backdrop-filter:blur(14px) saturate(140%);box-shadow:0 14px 32px #0009,inset 0 1px #ffffff14;z-index:3;white-space:nowrap;transform:translateZ(40px)}.tech-badge .dot{width:6px;height:6px;border-radius:50%;background:var(--card-accent);box-shadow:0 0 8px var(--card-accent);animation:dotPulse 1.6s ease-in-out infinite}.tech-badge b{font-size:10px;font-weight:800;letter-spacing:.16em;text-transform:uppercase;color:#fff;font-style:normal;text-shadow:0 1px 2px rgba(0,0,0,.85),0 0 6px color-mix(in srgb,var(--card-accent) 35%,transparent)}.tech-badge i{font-size:9px;font-weight:600;font-style:normal;letter-spacing:.08em;text-transform:lowercase;color:#ffffffc7;text-shadow:0 1px 2px rgba(0,0,0,.8)}.tech-badge.tb-1{top:-14px;left:10%}.tech-badge.tb-2{top:30%;right:-34px}.tech-badge.tb-3{bottom:22%;left:-34px}.tech-badge.tb-4{top:62%;right:-34px}.tech-badge .badge-icon{width:11px;height:11px;color:var(--card-accent);filter:drop-shadow(0 0 4px color-mix(in srgb,var(--card-accent) 70%,transparent));flex-shrink:0}.sat-metric{position:absolute;bottom:-22px;right:-26px;padding:10px 12px;min-width:120px;display:flex;flex-direction:column;gap:6px;border-radius:12px;font-family:var(--font-nav);background:linear-gradient(160deg,color-mix(in srgb,var(--card-accent) 22%,rgba(28,28,34,.9)),#121218e6);border:1px solid color-mix(in srgb,var(--card-accent) 35%,transparent);backdrop-filter:blur(18px) saturate(140%);-webkit-backdrop-filter:blur(18px) saturate(140%);box-shadow:0 18px 40px #0009,inset 0 1px #ffffff14;z-index:3;transform:translateZ(60px)}.sat-label{font-size:9px;font-weight:700;letter-spacing:.22em;text-transform:uppercase;color:#fffffff2;display:flex;justify-content:space-between;align-items:center}.sat-label em{font-style:normal;color:#ffffff80}.sat-foot{font-size:10px;font-weight:400;letter-spacing:.06em;color:#ffffffc7}.sat-glyph{font-size:24px;line-height:1;font-weight:700;color:var(--card-accent);text-shadow:0 0 18px color-mix(in srgb,var(--card-accent) 60%,transparent)}.hero-svg [stroke],.hero-svg path,.hero-svg line,.hero-svg rect,.hero-svg circle{vector-effect:non-scaling-stroke}[data-project=rag] .hero-doc{fill:none;stroke:currentColor;stroke-width:1.3;opacity:.85}[data-project=rag] .hero-doc-fold{fill:currentColor;opacity:.25}[data-project=rag] .hero-line{stroke:currentColor;stroke-width:1.5;opacity:.5;stroke-linecap:round;animation:ragLine 2.8s ease-in-out infinite}[data-project=rag] .hero-line.l2{animation-delay:-.4s}[data-project=rag] .hero-line.l3{animation-delay:-.8s}[data-project=rag] .hero-line.l4{animation-delay:-1.2s}@keyframes ragLine{0%,to{opacity:.25}50%{opacity:.9}}[data-project=rag] .hero-beam{fill:none;stroke:currentColor;stroke-width:1.4;stroke-dasharray:6 6;animation:ragBeam 1.6s linear infinite;filter:drop-shadow(0 0 6px currentColor)}@keyframes ragBeam{to{stroke-dashoffset:-24}}[data-project=rag] .chk{fill:none;stroke:currentColor;stroke-width:1.2;opacity:.6}[data-project=rag] .tick{fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:24;stroke-dashoffset:24;animation:ragTick 3s ease-in-out infinite;filter:drop-shadow(0 0 4px currentColor)}[data-project=rag] .tick.t2{animation-delay:.4s}[data-project=rag] .tick.t3{animation-delay:.8s}@keyframes ragTick{0%,30%{stroke-dashoffset:24}55%,90%{stroke-dashoffset:0}to{stroke-dashoffset:24}}[data-project=ptrack] .vf-corners path{fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:square}[data-project=ptrack] .vf-box{fill:none;stroke:currentColor;stroke-width:1;opacity:.25;stroke-dasharray:4 4;animation:vfBox 4s linear infinite}@keyframes vfBox{to{stroke-dashoffset:-32}}[data-project=ptrack] .person{fill:currentColor;opacity:.85}[data-project=ptrack] .cross-h,[data-project=ptrack] .cross-v{stroke:currentColor;stroke-width:.8;opacity:.5;animation:crossSweep 2.4s ease-in-out infinite}[data-project=ptrack] .cross-v{animation-delay:-1.2s}@keyframes crossSweep{0%,to{opacity:.2}50%{opacity:.7}}[data-project=ptrack] .net-nodes circle{fill:currentColor;animation:nodePulse 1.8s ease-in-out infinite;filter:drop-shadow(0 0 6px currentColor)}[data-project=ptrack] .n2{animation-delay:-.3s}[data-project=ptrack] .n3{animation-delay:-.6s}[data-project=ptrack] .n4{animation-delay:-.9s}@keyframes nodePulse{0%,to{transform:scale(.7);opacity:.4}50%{transform:scale(1.2);opacity:1}}[data-project=ptrack] .net-nodes circle{transform-box:fill-box;transform-origin:center}[data-project=ptrack] .net-links line{stroke:currentColor;stroke-width:1;opacity:.5;stroke-dasharray:3 3;animation:netLink 1.5s linear infinite}@keyframes netLink{to{stroke-dashoffset:-12}}[data-project=gold] .grid line{stroke:currentColor;stroke-width:.5;opacity:.12}[data-project=gold] .axis{stroke:currentColor;stroke-width:1;opacity:.45}[data-project=gold] .line-area{fill:currentColor;opacity:.12}[data-project=gold] .line-chart{fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:260;stroke-dashoffset:260;animation:chartDraw 4s ease-in-out infinite;filter:drop-shadow(0 0 8px currentColor)}@keyframes chartDraw{0%{stroke-dashoffset:260}60%,90%{stroke-dashoffset:0}to{stroke-dashoffset:260}}[data-project=gold] .line-dot{fill:currentColor;filter:drop-shadow(0 0 8px currentColor);animation:dotPulse 1.4s ease-in-out infinite;transform-box:fill-box;transform-origin:center}[data-project=gold] .up-arrow{fill:currentColor;font-family:var(--font-mono);font-size:14px;font-weight:700;filter:drop-shadow(0 0 4px currentColor);opacity:.85}[data-project=phish] .shield{fill:none;stroke:currentColor;stroke-width:1.6;opacity:.85;filter:drop-shadow(0 0 8px currentColor)}[data-project=phish] .radar-ring{fill:none;stroke:currentColor;stroke-width:.8;opacity:.35}[data-project=phish] .radar-sweep{transform-origin:0 0;animation:radarSpin 2.4s linear infinite;color:var(--card-accent);opacity:.9}@keyframes radarSpin{to{transform:rotate(360deg)}}[data-project=phish] .chain-link{fill:none;stroke:currentColor;stroke-width:1.4;opacity:.7;animation:chainPulse 1.8s ease-in-out infinite}[data-project=phish] .chain-link:nth-child(2){animation-delay:-.4s}[data-project=phish] .chain-link:nth-child(3){animation-delay:-.8s}[data-project=phish] .chain-link:nth-child(4){animation-delay:-1.2s}@keyframes chainPulse{0%,to{opacity:.35}50%{opacity:1;filter:drop-shadow(0 0 6px currentColor)}}[data-project=vault] .vault-body{fill:none;stroke:currentColor;stroke-width:1.4;opacity:.6}[data-project=vault] .vault-dial-outer,[data-project=vault] .vault-dial-inner{fill:none;stroke:currentColor;stroke-width:1.4;opacity:.85;filter:drop-shadow(0 0 6px currentColor)}[data-project=vault] .vault-dial-outer{stroke-dasharray:30 14;transform-origin:120px 80px;animation:dialSpin 6s linear infinite}@keyframes dialSpin{to{transform:rotate(360deg)}}[data-project=vault] .vault-spokes line{stroke:currentColor;stroke-width:1.2;opacity:.6}[data-project=vault] .fp path{fill:none;stroke:currentColor;stroke-width:1.2;opacity:.85;filter:drop-shadow(0 0 3px currentColor)}[data-project=vault] .scan-line{stroke:currentColor;stroke-width:1.6;stroke-linecap:round;filter:drop-shadow(0 0 10px currentColor);animation:scanY 2.4s ease-in-out infinite}@keyframes scanY{0%,to{transform:translateY(-10px);opacity:.3}50%{transform:translateY(10px);opacity:1}}.project-card .char{text-shadow:0 1px 4px rgba(0,0,0,.95),0 0 2px rgba(0,0,0,.98)!important;animation:none!important;filter:none!important}.project-card .card-title{text-shadow:0 1px 3px rgba(0,0,0,.95),0 0 2px rgba(0,0,0,.95),0 0 12px color-mix(in srgb,var(--card-accent) 32%,transparent)!important;animation:none!important;filter:none!important}.project-card .card-desc{text-shadow:0 1px 3px rgba(0,0,0,.95),0 0 2px rgba(0,0,0,.95)!important;animation:none!important;filter:none!important}#final-text{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:max-content;max-width:96vw;font-size:clamp(22px,4.2vw,64px);font-family:var(--font-display);font-weight:900;letter-spacing:.08em;line-height:1.25;text-align:center;white-space:nowrap;text-transform:uppercase;opacity:0;color:#fff;text-shadow:0 0 8px rgba(255,255,255,.9),0 0 22px rgba(255,255,255,.5),0 0 50px rgba(255,255,255,.25);pointer-events:none;-webkit-user-select:none;user-select:none}.social-links{display:flex;align-items:center;gap:24px}.social-link{font-size:11px;font-weight:700;letter-spacing:.22em;color:#ffffffc7;text-decoration:none;pointer-events:all;touch-action:manipulation;transition:color .25s ease,text-shadow .25s ease;position:relative;text-shadow:0 0 8px rgba(255,255,255,.4),0 0 22px rgba(255,255,255,.18)}.social-link:after{content:"";position:absolute;bottom:-2px;left:0;width:0;height:1px;background:#fff9;transition:width .25s ease}.social-link:hover{color:#fff;text-shadow:0 0 10px rgba(255,255,255,.8),0 0 28px rgba(255,255,255,.45),0 0 60px rgba(255,255,255,.25)}.social-link:hover:after{width:100%}#scroll-progress{width:clamp(60px,10vw,110px);height:1px;background:#ffffff24;position:relative;overflow:hidden;border-radius:2px}#scroll-progress-fill{position:absolute;top:0;left:0;height:100%;width:0%;background:#ffffffd9;box-shadow:0 0 8px #ffffffb3,0 0 18px #ffffff59}.btn-autoscroll{background:#ffffff08;border:1px solid rgba(255,255,255,.5);border-radius:50%;cursor:pointer;pointer-events:all;display:flex;align-items:center;justify-content:center;width:30px;height:30px;padding:0;color:#ffffffd9;font-size:10px;line-height:1;letter-spacing:0;outline:none;transition:background .3s ease,border-color .3s ease,box-shadow .3s ease,color .3s ease}#autoscroll-icon{display:block;line-height:1;letter-spacing:0;text-indent:0;text-align:center;font-size:11px;color:var(--accent-red);text-shadow:0 0 8px rgba(192,57,43,.9),0 0 20px rgba(192,57,43,.55),0 0 40px rgba(192,57,43,.28);transform:translate(1px)}.btn-autoscroll.is-playing #autoscroll-icon{font-size:15px;color:var(--accent-red);text-shadow:0 0 8px rgba(192,57,43,.9),0 0 20px rgba(192,57,43,.55),0 0 40px rgba(192,57,43,.28);transform:translate(0)}.btn-autoscroll:hover{color:#fff;border-color:#fff;background:#ffffff1a;box-shadow:0 0 30px #ffffff8c,inset 0 0 18px #ffffff24}.btn-autoscroll:focus-visible{outline:1px solid rgba(255,255,255,.5);outline-offset:3px}.btn-autoscroll.is-playing{border-color:#ffffffe6;animation:autoScrollPulse 2s ease-in-out infinite}@keyframes autoScrollPulse{0%,to{box-shadow:0 0 10px #fff3,inset 0 0 8px #ffffff0d;border-color:#ffffff8c}50%{box-shadow:0 0 28px #ffffff8c,inset 0 0 16px #ffffff1f;border-color:#fff}}.btn-mute{background:#ffffff08;border:1px solid rgba(255,255,255,.5);border-radius:0;cursor:pointer;pointer-events:all;display:flex;align-items:center;justify-content:center;width:30px;height:30px;padding:0;color:#ffffffd9;font-size:16px;line-height:1;letter-spacing:0;outline:none;animation:mutePulse 1.9s ease-in-out infinite}.btn-mute:hover{animation:none;color:#fff;border-color:#fff;background:#ffffff1a;box-shadow:0 0 30px #ffffff8c,inset 0 0 18px #ffffff24;text-shadow:0 0 18px rgba(255,255,255,.95),0 0 36px rgba(255,255,255,.5)}#mute-icon{display:block;line-height:1;text-align:center;letter-spacing:0}@keyframes mutePulse{0%,to{border-color:#ffffff8c;color:#ffffffd9;box-shadow:0 0 10px #ffffff24,inset 0 0 10px #ffffff0d;text-shadow:0 0 8px rgba(255,255,255,.5)}50%{border-color:#fff;color:#fff;box-shadow:0 0 28px #fff9,inset 0 0 18px #ffffff24;text-shadow:0 0 18px rgba(255,255,255,.95),0 0 38px rgba(255,255,255,.55)}}.btn-mute:focus-visible{outline:1px solid rgba(255,255,255,.5);outline-offset:3px}.btn-mute.is-muted{color:#fff3}.first-letter{color:var(--accent-red);text-shadow:0 0 20px rgba(192,57,43,.6),0 0 40px rgba(192,57,43,.3)}#loading-screen{position:fixed;top:0;right:0;bottom:0;left:0;background:#050505;z-index:200;visibility:visible;display:flex;align-items:center;justify-content:center;pointer-events:all;transition:opacity 1.2s ease}#loading-screen.fade-out{opacity:0;pointer-events:none}.enter-layout{display:flex;align-items:center;width:min(68vw,620px)}.enter-line{flex:1;height:1px;background:#ffffff2e}.enter-btn{font-family:var(--font-nav);font-size:10px;font-weight:600;letter-spacing:.6em;text-transform:uppercase;color:#ffffff8c;background:transparent;border:none;cursor:pointer;padding:0 38px;white-space:nowrap;pointer-events:all;transition:color .35s ease,text-shadow .35s ease;outline:none}.enter-btn--loading{color:#ffffff40;pointer-events:none;cursor:default;animation:loadPulse 1.8s ease-in-out infinite}@keyframes loadPulse{0%,to{opacity:.4}50%{opacity:.85}}.enter-btn:hover{color:#fff;text-shadow:0 0 16px rgba(255,255,255,.65),0 0 48px rgba(192,57,43,.45)}.enter-btn:focus-visible{color:#ffffffe6}@media (max-width: 768px){:root{--ui-padding: var(--ui-padding-mobile)}.ui-bottom-right{bottom:22px}#craft-text{font-size:clamp(40px,12vw,80px);right:5%;top:25%;letter-spacing:.2em}.social-links{gap:16px}#final-text{font-size:clamp(13px,4.2vw,30px);white-space:normal;width:90vw;max-width:98vw;text-align:center}#scroll-hint{font-size:10px;letter-spacing:.3em}#lockin-text{left:50%;width:min(92vw,760px)}.project-card{width:clamp(180px,50vw,240px)}.card-inner{padding:12px 12px 16px}.card-tag{width:78px;height:78px;top:-12px;right:-12px;font-size:9px}.tech-badge{padding:5px 9px}.tech-badge b{font-size:8px;letter-spacing:.14em}.tech-badge i{font-size:7px}.tech-badge.tb-1{top:-12px;left:6%}.tech-badge.tb-2{top:28%;right:-18px}.tech-badge.tb-3{bottom:22%;left:-18px}.tech-badge.tb-4{top:60%;right:-18px}.sat-metric{top:auto;bottom:-34px;right:-38px;min-width:80px;padding:6px 8px;gap:4px;border-radius:9px;transform:translateZ(60px) scale(.8);transform-origin:bottom right}.sat-label{font-size:8px;letter-spacing:.16em}.sat-foot{font-size:8px}.sat-glyph{font-size:16px}.card-title{font-size:13px}.card-desc{font-size:9px}.title-card{min-width:110px;bottom:-28px;left:-16px;padding:8px 10px}.brand-star{font-size:clamp(11px,3vw,15px)!important;max-width:80vw}.brand-statement{right:50%;bottom:10%;transform:translate(50%);width:88vw;text-align:center;font-size:clamp(12px,3.6vw,17px)}}@media (max-width: 480px){:root{--ui-padding: 14px}.project-card{width:clamp(200px,68vw,260px)}.card-tag{top:-8px;right:-8px}.title-card{bottom:-22px;left:-10px}.tech-badge.tb-2{right:-12px}.tech-badge.tb-3{left:-12px}.tech-badge.tb-4{right:-12px}.sat-metric{bottom:-28px;right:-18px;transform:translateZ(60px) scale(.72)}.social-links{gap:10px}.social-link{font-size:10px;letter-spacing:.14em}#scroll-hint{font-size:9px;letter-spacing:.22em}.enter-layout{width:min(90vw,620px)}.enter-btn{padding:0 24px;font-size:9px;letter-spacing:.5em}#craft-text{font-size:clamp(32px,10vw,52px);right:3%}.award-line{font-size:clamp(10px,2.8vw,13px)}.brand-statement{width:92vw;font-size:clamp(10px,3.2vw,14px)}#final-text{font-size:clamp(11px,3.8vw,22px);white-space:normal;width:88vw}}body{cursor:crosshair}.btn-talk,.btn-mute,.social-link{cursor:pointer}body.has-custom-cursor,body.has-custom-cursor *{cursor:none!important}#cursor-dot,#cursor-ring{position:fixed;top:0;left:0;z-index:1000;pointer-events:none;border-radius:50%;opacity:0;will-change:transform}body.has-custom-cursor #cursor-dot,body.has-custom-cursor #cursor-ring{opacity:1}#cursor-dot{width:6px;height:6px;background:#fff;box-shadow:0 0 8px #fffffff2,0 0 18px #fff9,0 0 40px #ffffff59;transition:width .2s ease,height .2s ease}#cursor-ring{width:30px;height:30px;border:1px solid rgba(255,255,255,.45);box-shadow:0 0 12px #ffffff40,inset 0 0 12px #ffffff1f;transition:width .25s ease,height .25s ease,border-color .25s ease,background .25s ease}body.cursor-hover #cursor-ring{width:56px;height:56px;border-color:#ffffffe6;background:#ffffff0f;box-shadow:0 0 22px #fff6,inset 0 0 18px #ffffff2e}body.cursor-hover #cursor-dot{width:4px;height:4px}.is-hovered{color:#fff!important}::selection{background:#ffffff26;color:#fff}.cursor-comet{position:fixed;top:0;left:0;border-radius:50%;pointer-events:none;z-index:9998;width:var(--comet-size, 2px);height:var(--comet-size, 2px);background:#bee1ffd9;box-shadow:0 0 8px #a0d7ff99,0 0 18px #78c3ff4d,0 0 34px #5aafff26;opacity:var(--comet-opacity, .3);will-change:transform}.type-target{font-family:var(--font-mono)!important}.type-target .char,.char{display:inline-block;text-shadow:0 0 10px rgba(255,255,255,.85),0 0 28px rgba(255,255,255,.5),0 0 60px rgba(255,255,255,.25);animation:charFlux 3.4s ease-in-out infinite;will-change:filter,transform}#lockin-text .char,#step-text .char,.award-line .char,#final-text .char,#craft-text .char{animation:none!important;filter:none!important;transform:none!important}#craft-text .char{color:#e8c84a!important;text-shadow:0 0 6px rgba(232,185,35,1),0 0 18px rgba(220,160,20,.85),0 0 45px rgba(200,130,10,.55),0 0 90px rgba(180,100,0,.3),0 2px 6px rgba(0,0,0,.9)!important}#step-text .char,.award-line .char{text-shadow:0 0 8px rgba(255,168,48,.85),0 0 22px rgba(255,130,10,.45),0 0 50px rgba(255,100,0,.2)!important}#lockin-text .char,#final-text .char{color:#fff;text-shadow:0 0 8px rgba(255,255,255,.9),0 0 22px rgba(255,255,255,.5),0 0 50px rgba(255,255,255,.25)!important}#final-text .word:last-of-type .char:not(:nth-last-child(1)){color:#e8b923;text-shadow:0 0 8px rgba(232,185,35,.95),0 0 22px rgba(212,160,20,.6),0 0 55px rgba(190,130,10,.32)!important}#phase1-text .char{animation:none!important;filter:none!important;transform:none!important;text-shadow:0 2px 6px rgba(0,0,0,.92),0 0 3px rgba(0,0,0,.96),0 0 12px rgba(255,255,255,.82),0 0 30px rgba(255,255,255,.46),0 0 70px rgba(255,255,255,.24)}.char:nth-child(3n){animation-delay:-.7s}.char:nth-child(3n+1){animation-delay:-1.5s}.char:nth-child(5n){animation-delay:-2.3s}@keyframes charFlux{0%,to{filter:blur(.25px);transform:translate(0);text-shadow:0 1px 3px rgba(0,0,0,.95),0 0 2px rgba(0,0,0,.98),0 0 9px rgba(255,255,255,.85),0 0 26px rgba(180,220,255,.5),0 0 60px rgba(150,205,255,.25)}48%{filter:blur(1px);text-shadow:0 1px 3px rgba(0,0,0,.95),0 0 2px rgba(0,0,0,.98),0 0 13px rgba(255,255,255,1),0 0 36px rgba(165,215,255,.65),0 0 84px rgba(140,200,255,.34)}91%{transform:translate(0);filter:blur(.4px)}92%{transform:translate(-1.3px,.4px)}94%{transform:translate(1.1px,-.3px)}96%{transform:translate(-.6px,.2px)}97%{transform:translate(0)}}#craft-text{animation:craftBlink 1.5s ease-in-out infinite;will-change:text-shadow}@keyframes craftBlink{0%,to{color:#ffffffe0;text-shadow:0 2px 6px rgba(0,0,0,.9),0 0 3px rgba(0,0,0,.95),0 0 6px rgba(255,255,255,.4),0 0 16px rgba(255,255,255,.22)}50%{color:#fff;text-shadow:0 2px 6px rgba(0,0,0,.9),0 0 3px rgba(0,0,0,.95),0 0 12px rgba(255,255,255,1),0 0 30px rgba(255,255,255,.7),0 0 70px rgba(255,255,255,.4),0 0 140px rgba(200,60,40,.22)}}.film-grain{position:fixed;top:-50%;right:-50%;bottom:-50%;left:-50%;width:200%;height:200%;pointer-events:none;z-index:60;opacity:.08;mix-blend-mode:overlay;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");animation:grainShift .6s steps(3) infinite}@keyframes grainShift{0%{transform:translate(0)}33%{transform:translate(-6px,4px)}66%{transform:translate(5px,-3px)}to{transform:translate(0)}}
