:root{--void: #000000;--surface: #0a0a0b;--raise: #141416;--line: #1f1f22;--line-2: #2e2e33;--text: #fafafa;--text-2: #9c9ca3;--text-3: #5e5e66;--amber: #e8b44a;--amber-soft: rgba(232, 180, 74, .22)}*{margin:0;padding:0;box-sizing:border-box}html,body,#root{height:100%;width:100%;overflow:hidden}body{background:var(--void);color:var(--text);font-family:Inter,system-ui,sans-serif;font-size:15px;line-height:1.6;-webkit-font-smoothing:antialiased}h1,h2,h3,h4{font-family:Outfit,system-ui,sans-serif;font-weight:400;letter-spacing:-.03em;line-height:1.05}code,pre,.mono{font-family:JetBrains Mono,ui-monospace,Menlo,monospace}::selection{background:var(--amber);color:#000}.deck{position:relative;height:100vh;width:100vw;overflow:hidden;background:var(--void)}.deck-art{position:absolute;top:0;right:0;bottom:0;left:0;z-index:0;background:radial-gradient(72% 92% at 68% 20%,rgba(232,180,74,.13) 0%,transparent 55%),radial-gradient(56% 64% at 8% 92%,rgba(232,180,74,.05) 0%,transparent 60%),radial-gradient(110% 120% at 22% 74%,#16130d,#050505 58%),linear-gradient(190deg,#0d0b08,#000 82%)}.deck-art:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:repeating-linear-gradient(108deg,rgba(255,255,255,.014) 0 1px,transparent 1px 7px)}.deck-vig{position:absolute;top:0;right:0;bottom:0;left:0;z-index:0;pointer-events:none;background:linear-gradient(180deg,rgba(0,0,0,.55) 0%,transparent 22%,transparent 60%,rgba(0,0,0,.9) 100%)}.deck-marks{position:absolute;top:26px;right:26px;bottom:26px;left:26px;z-index:0;pointer-events:none;opacity:.22;background:linear-gradient(#fff,#fff) left top / 30px 1px no-repeat,linear-gradient(#fff,#fff) left top / 1px 30px no-repeat,linear-gradient(#fff,#fff) right top / 30px 1px no-repeat,linear-gradient(#fff,#fff) right top / 1px 30px no-repeat,linear-gradient(#fff,#fff) left bottom / 30px 1px no-repeat,linear-gradient(#fff,#fff) left bottom / 1px 30px no-repeat,linear-gradient(#fff,#fff) right bottom / 30px 1px no-repeat,linear-gradient(#fff,#fff) right bottom / 1px 30px no-repeat}.stage{position:relative;z-index:2;height:100%;width:100%;display:grid;place-items:center;padding:72px 60px 86px}.slide{width:min(1180px,100%);max-height:100%}.progress{position:fixed;left:0;right:0;top:0;height:2px;background:var(--line);z-index:40}.progress span{display:block;height:100%;background:var(--amber)}.topnav{position:fixed;top:0;left:0;right:0;z-index:45;display:flex;align-items:center;justify-content:space-between;gap:24px;padding:16px 34px;background:#000000c7;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);border-bottom:1px solid var(--line)}.topnav .brand{font-family:Outfit;font-weight:500;font-size:14px;letter-spacing:.2em;white-space:nowrap}.topnav .brand b{color:var(--amber);font-weight:500}.topnav .src{flex:1;min-width:0;font-family:JetBrains Mono,monospace;font-size:11.5px;letter-spacing:.02em;color:var(--text-2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.topnav .src em{font-style:normal;color:var(--amber);letter-spacing:.16em;text-transform:uppercase;font-size:10px;margin-right:6px}.topnav .meta{font-size:12px;letter-spacing:.16em;text-transform:uppercase;color:var(--text-3);white-space:nowrap}.controls{position:fixed;left:0;right:0;bottom:0;z-index:45;display:flex;align-items:center;justify-content:space-between;gap:18px;padding:14px 34px;background:linear-gradient(0deg,#000000f0,#0000)}.controls .group{display:flex;align-items:center;gap:10px}.btn{display:inline-flex;align-items:center;gap:8px;font-family:Inter;font-size:13px;font-weight:500;letter-spacing:.04em;padding:9px 16px;background:transparent;color:var(--text-2);border:1px solid var(--line-2);cursor:pointer;transition:.22s}.btn:hover{color:var(--text);border-color:var(--text-3);background:#ffffff0d}.btn.solid{background:var(--amber);color:#000;border-color:transparent}.btn.solid:hover{background:#f2c766}.btn svg{width:13px;height:13px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}.counter{font-family:Outfit;font-size:13px;letter-spacing:.2em;color:var(--text-3)}.counter b{color:var(--amber);font-weight:500}.dots{display:flex;align-items:center;gap:6px;max-width:46vw;overflow:hidden}.dot{width:8px;height:8px;flex:none;border-radius:50%;background:var(--line-2);border:0;cursor:pointer;transition:.22s}.dot:hover{background:var(--text-3)}.dot.on{background:var(--amber);width:22px;border-radius:4px}.eyebrow{display:inline-flex;align-items:center;gap:10px;font-family:Outfit;font-size:11px;font-weight:500;letter-spacing:.3em;text-transform:uppercase;color:var(--amber);margin-bottom:18px}.eyebrow:before{content:"";width:26px;height:1px;background:var(--amber)}.section-title{font-size:clamp(30px,3.6vw,52px);font-weight:300;margin-bottom:10px}.section-sub{color:var(--text-2);font-size:15.5px;max-width:720px;margin-bottom:34px;line-height:1.7}.kicker{font-size:13px;color:var(--text-3);letter-spacing:.14em;text-transform:uppercase}.grid-2{display:grid;grid-template-columns:repeat(2,1fr);gap:16px}.grid-3{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.grid-4{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}.card{position:relative;background:linear-gradient(165deg,#e8b44a14,#0d0d0e 62%);border:1px solid var(--line);padding:20px 22px;overflow:hidden}.card:before{content:"";position:absolute;left:0;top:0;bottom:0;width:2px;background:var(--amber);opacity:.65}.card h4{font-size:17px;font-weight:500;margin-bottom:6px;letter-spacing:-.01em}.card p{font-size:13.8px;color:var(--text-2);line-height:1.65}.card .tag{display:inline-block;font-family:Outfit;font-size:10px;letter-spacing:.2em;text-transform:uppercase;color:var(--amber);border:1px solid rgba(232,180,74,.35);padding:2px 8px;margin-bottom:12px}.card .loc{display:block;margin-top:12px;font-size:11.5px;color:var(--text-3);letter-spacing:.04em}.card.amber{background:linear-gradient(165deg,#e8b44a29,#100e0a 70%);border-color:#e8b44a4d}.code{position:relative;background:#08080a;border:1px solid var(--line);padding:30px 18px 16px;overflow-x:auto}.code:before{content:"▸ " attr(data-src);position:absolute;top:8px;left:12px;font-family:JetBrains Mono;font-size:10px;letter-spacing:.06em;color:var(--text-2);max-width:calc(100% - 100px);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.code:not([data-src]):before{content:none}.code:after{content:attr(data-lang);position:absolute;top:8px;right:12px;font-family:JetBrains Mono;font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:var(--amber);opacity:.75}.code pre{font-size:12.5px;line-height:1.75;color:#cfcfd6;white-space:pre}.code .k{color:#c98fdc}.code .s{color:#9ecb7a}.code .f{color:var(--amber)}.code .c{color:var(--text-3);font-style:italic}.code .v{color:#7fb6e0}.code .n{color:#e08a7f}.list{display:grid;gap:11px}.list .item{display:grid;grid-template-columns:26px 1fr;gap:14px;align-items:start}.list .idx{font-family:Outfit;font-size:12px;color:var(--amber);border:1px solid rgba(232,180,74,.3);height:24px;display:grid;place-items:center}.list .body strong{color:var(--text);font-weight:500}.list .body p{font-size:13.5px;color:var(--text-2);line-height:1.6}.list.tight .item{grid-template-columns:22px 1fr;gap:12px}.list .body .fn{font-family:JetBrains Mono;font-size:12.5px;color:var(--amber)}.tbl{width:100%;border-collapse:collapse;font-size:13.5px}.tbl th{text-align:left;font-family:Outfit;font-size:10.5px;font-weight:500;letter-spacing:.2em;text-transform:uppercase;color:var(--text-3);padding:10px 14px;border-bottom:1px solid var(--line-2)}.tbl td{padding:11px 14px;border-bottom:1px solid var(--line);color:var(--text-2);vertical-align:top}.tbl td:first-child{color:var(--text);font-family:JetBrains Mono;font-size:12.5px;white-space:nowrap}.tbl tr:hover td{background:#ffffff06}.flow{display:flex;align-items:stretch;gap:10px;flex-wrap:wrap}.flow .node{flex:1;min-width:130px;background:var(--raise);border:1px solid var(--line);padding:14px 16px;position:relative}.flow .node b{display:block;font-family:Outfit;font-size:14px;font-weight:500;color:var(--text);margin-bottom:4px}.flow .node span{font-size:12px;color:var(--text-3);line-height:1.5}.flow .node.amber{border-color:#e8b44a73;background:linear-gradient(160deg,#e8b44a24,#0d0d0e)}.flow .arrow{align-self:center;color:var(--text-3);font-size:16px;flex:none}.tree{font-family:JetBrains Mono;font-size:12.8px;line-height:2;color:var(--text-2);background:#08080a;border:1px solid var(--line);padding:18px 22px}.tree .dir{color:var(--amber)}.tree .fil{color:var(--text)}.tree .note{color:var(--text-3)}.stats{display:flex;gap:40px;flex-wrap:wrap;margin-top:26px;padding-top:22px;border-top:1px solid var(--line)}.stats .st dt{font-family:Outfit;font-size:10px;letter-spacing:.26em;text-transform:uppercase;color:var(--text-3);margin-bottom:6px}.stats .st dd{font-family:Outfit;font-size:30px;font-weight:300}.stats .st dd b{color:var(--amber);font-weight:400}.title-slide h1{font-size:clamp(42px,6.6vw,92px);font-weight:300;letter-spacing:-.045em;line-height:.96;margin:20px 0 18px}.title-slide h1 em{font-style:normal;color:var(--amber)}.title-slide p{color:var(--text-2);font-size:16.5px;max-width:620px;line-height:1.7}.split{display:grid;grid-template-columns:.95fr 1.05fr;gap:30px;align-items:start}.scroll-y{max-height:64vh;overflow-y:auto;padding-right:8px}.scroll-y::-webkit-scrollbar{width:5px}.scroll-y::-webkit-scrollbar-thumb{background:var(--line-2)}.closing-slide{display:grid;place-items:center;text-align:center}.closing-frame{display:grid;justify-items:center;max-width:880px}.closing-title{font-size:clamp(40px,6vw,82px);font-weight:300;letter-spacing:-.045em;line-height:.98;margin:18px 0 20px}.closing-title em{font-style:normal;color:var(--amber)}.closing-sub{color:var(--text-2);font-size:16px;max-width:620px;line-height:1.75}.closing-team{display:grid;justify-items:center;gap:16px;padding-top:26px;border-top:1px solid var(--line);width:100%}.closing-team .team-label{font-family:Outfit;font-size:10.5px;letter-spacing:.28em;text-transform:uppercase;color:var(--text-3)}.closing-team .team-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:44px;width:100%}.closing-team .credit{display:grid;gap:3px}.closing-team .credit .no{font-family:Outfit;font-size:10px;letter-spacing:.22em;text-transform:uppercase;color:var(--amber)}.closing-team .credit strong{font-family:Outfit;font-size:19px;font-weight:400;letter-spacing:-.01em;color:var(--text)}.closing-team .credit span:last-child{font-size:12px;color:var(--text-3)}.closing-team .team-note{font-size:12px;color:var(--text-3);letter-spacing:.05em}.credits{display:flex;align-items:center;gap:22px;flex-wrap:wrap;margin-top:20px;padding-top:18px;border-top:1px solid var(--line)}.credits .credit{display:grid;gap:2px}.credits .credit .no{font-family:Outfit;font-size:10px;letter-spacing:.22em;text-transform:uppercase;color:var(--amber)}.credits .credit strong{font-family:Outfit;font-size:17px;font-weight:400;letter-spacing:-.01em;color:var(--text)}.credits .credit span:last-child{font-size:11.5px;color:var(--text-3);letter-spacing:.04em}.credits .amp{font-family:Outfit;font-size:22px;color:var(--text-3)}.scene3d{position:relative;width:100%;height:100%}.scene3d canvas{display:block;width:100%!important;height:100%!important}.scene-loading{display:grid;place-items:center;align-content:center;gap:12px}.scene-spinner{width:26px;height:26px;border:1px solid var(--line-2);border-top-color:var(--amber);border-radius:50%;animation:spin .85s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.scene-loading-text{font-family:Outfit;font-size:10px;letter-spacing:.24em;text-transform:uppercase;color:var(--text-3)}.title-grid{display:grid;grid-template-columns:1.12fr .88fr;gap:48px;align-items:center}.title-copy{min-width:0}.title-stage{position:relative;height:min(66vh,580px)}.closing-3d{width:min(560px,100%);height:330px;margin:4px 0 16px}@media (max-width: 1100px){.title-grid{grid-template-columns:1fr;gap:24px}.title-stage{height:380px}.closing-3d{height:250px}}.fade-up{animation:fadeUp .6s cubic-bezier(.2,.8,.2,1) both}@keyframes fadeUp{0%{opacity:0;transform:translateY(18px)}to{opacity:1;transform:none}}@media (max-width: 1100px){.grid-4,.grid-3{grid-template-columns:repeat(2,1fr)}}@media (max-width: 860px){.grid-2,.split{grid-template-columns:1fr}.stage{padding:68px 22px 84px}}
