:root{--ease-out: cubic-bezier(.23, 1, .32, 1);--split: 97%;--pro-bg: #0b0b0c;--pro-fg: #ecebe8;--pro-muted: #9a9a9f;--pro-accent: #4d8dff;--g-bg: #05060a;--g-fg: #e9f6ff;--g-magenta: #ff2bd6;--g-cyan: #2de2ff;--g-yellow: #f5ff3d;--fg: var(--pro-fg);--accent: var(--pro-accent)}[data-mode=gaming]{--fg: var(--g-fg);--accent: var(--g-cyan)}*{box-sizing:border-box;margin:0}body{background:var(--pro-bg);color:var(--fg);font:400 1rem/1.5 Geist,system-ui,sans-serif;-webkit-font-smoothing:antialiased}html{scroll-behavior:smooth;scrollbar-width:thin;scrollbar-color:rgb(255 255 255 / .15) transparent}#cloud,#cloud-fallback{position:fixed;top:0;right:0;bottom:0;left:0;width:100%;height:100%;object-fit:cover}.nav{position:fixed;inset:0 0 auto 0;z-index:10;display:flex;justify-content:space-between;align-items:center;padding:20px clamp(16px,4vw,48px);background:linear-gradient(rgb(0 0 0 / .6),transparent)}.wordmark{color:var(--fg);text-decoration:none;font-weight:600;letter-spacing:.02em;text-transform:uppercase;transition:color .3s ease}.mode-switch{position:relative;display:flex;padding:4px;border-radius:999px;background:#ffffff0f;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border:1px solid rgb(255 255 255 / .1)}.mode-switch a{position:relative;z-index:1;width:84px;padding:6px 0;text-align:center;color:var(--pro-muted);text-decoration:none;font-size:.875rem;transition:color .2s ease,transform .16s var(--ease-out)}.mode-switch a:active{transform:scale(.97)}.mode-pill{position:absolute;top:4px;left:4px;width:84px;bottom:4px;border-radius:999px;background:var(--pro-fg);transition:transform .4s var(--ease-out),background-color .3s ease}[data-mode=pro] .mode-switch a[data-target=pro]{color:var(--pro-bg)}[data-mode=gaming] .mode-switch a[data-target=gaming]{color:var(--g-bg)}[data-mode=gaming] .mode-pill{transform:translate(84px);background:var(--g-cyan)}.layer{position:fixed;top:0;right:0;bottom:0;left:0;overflow:hidden;--gutter: clamp(16px, 6vw, 96px)}[data-flow=pro] .layer-pro,[data-flow=gaming] .layer-gaming{position:relative;inset:auto;overflow:visible}.layer-pro{clip-path:inset(0 calc(100% - var(--split)) 0 0);--bg: var(--pro-bg)}.layer-gaming{clip-path:inset(0 0 0 var(--split));color:var(--g-fg);--bg: var(--g-bg)}.hero{position:relative;min-height:100svh;overflow:clip;display:flex;align-items:flex-end;padding:0 var(--gutter) clamp(48px,12vh,120px)}.hero-inner{position:relative;max-width:60rem}.page{position:relative;padding:0 var(--gutter);background:linear-gradient(transparent,var(--bg) 40vh)}.eyebrow{color:var(--pro-muted);font-size:.875rem;margin-bottom:20px}h1{font-weight:300;font-size:clamp(2.5rem,7vw,6rem);line-height:1.02;letter-spacing:-.035em;text-wrap:balance}.lede{max-width:34rem;margin-top:24px;color:var(--pro-muted);font-size:1.125rem}.cta{display:inline-block;margin-top:36px;padding:12px 22px;border-radius:999px;background:var(--pro-fg);color:var(--pro-bg);text-decoration:none;font-weight:600;transition:transform .16s var(--ease-out)}.cta:active{transform:scale(.97)}.manifesto{padding:30vh 0 20vh}.words{max-width:22ch;font-size:clamp(2rem,5vw,4.25rem);font-weight:300;line-height:1.1;letter-spacing:-.03em;view-timeline:--manifesto}.section-head{padding-bottom:12vh}h2{font-weight:300;font-size:clamp(2.25rem,5vw,4rem);letter-spacing:-.03em;line-height:1.05}.project{display:grid;gap:40px;padding:10vh 0 18vh;border-top:1px solid rgb(255 255 255 / .08)}.project-head{display:grid;grid-template-columns:auto 1fr;column-gap:24px;align-items:baseline}.project-index{font:400 .875rem JetBrains Mono,monospace;color:var(--accent)}.project h3{font-weight:400;font-size:clamp(2.5rem,8vw,7rem);letter-spacing:-.045em;line-height:1}.project-tagline{grid-column:2;max-width:36rem;margin-top:16px;font-size:clamp(1.125rem,2vw,1.5rem);color:var(--pro-muted);text-wrap:pretty}.shot{margin:0}.shot img{display:block;width:100%;height:auto}.shot-browser{border-radius:14px;overflow:hidden;background:#1a1a1d;border:1px solid rgb(255 255 255 / .1);box-shadow:0 40px 120px -40px #4d8dff59}.shot-browser:before{content:"●  ●  ●     " attr(data-url);display:block;padding:10px 16px;font:400 .75rem JetBrains Mono,monospace;color:#6b6b72;white-space:pre}.shot-phones{display:flex;justify-content:center;gap:clamp(12px,3vw,40px)}.shot-phones img{width:min(30%,280px);border-radius:28px;border:6px solid #1a1a1d;box-shadow:0 40px 100px -40px #4d8dff66}.shot-phones img:nth-child(2){translate:0 40px}.project-facts{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:24px 48px}.project-facts dt{font:400 .75rem JetBrains Mono,monospace;text-transform:uppercase;letter-spacing:.1em;color:var(--accent);margin-bottom:8px}.project-facts dd{margin:0;color:var(--pro-fg);text-wrap:pretty}.project-link{justify-self:start;color:var(--pro-fg);text-decoration:none;border-bottom:1px solid rgb(255 255 255 / .3);padding-bottom:2px;transition:border-color .2s ease}@media (hover: hover) and (pointer: fine){.project-link:hover{border-color:var(--accent)}}.contact{padding:20vh 0 16vh;border-top:1px solid rgb(255 255 255 / .08)}@supports (animation-timeline: view()){@media (prefers-reduced-motion: no-preference){.words span{opacity:.15;animation:word-on linear both;animation-timeline:--manifesto;animation-range:cover calc(20% + var(--i) * 1.6%) cover calc(24% + var(--i) * 1.6%)}.shot,.bp-gallery figure{animation:reveal linear both;animation-timeline:view();animation-range:entry 0% entry 80%}.stamp{animation:stamp linear both;animation-timeline:view();animation-range:entry 60% cover 45%}}}@keyframes word-on{to{opacity:1}}@keyframes reveal{0%{clip-path:inset(0 0 100% 0 round 14px);transform:translateY(60px)}to{clip-path:inset(0 0 0 0 round 14px);transform:none}}@keyframes stamp{0%,60%{opacity:0;scale:1.8}80%{opacity:1;scale:.95}to{opacity:1;scale:1}}.layer-gaming{background:repeating-linear-gradient(0deg,rgb(0 0 0 / .18) 0 1px,transparent 1px 3px),radial-gradient(120% 80% at 50% 110%,rgb(255 43 214 / .18),transparent 60%)}.layer-gaming .eyebrow{font-family:JetBrains Mono,monospace;color:var(--g-yellow)}.layer-gaming h1{font-family:Chakra Petch,sans-serif;font-weight:700;text-transform:uppercase;letter-spacing:-.01em;line-height:.95;text-shadow:0 0 24px rgb(45 226 255 / .35)}.layer-gaming .lede{font-family:JetBrains Mono,monospace;font-size:.95rem;color:#e9f6ffb3}.layer-gaming .cta{border-radius:0;background:var(--g-yellow);color:var(--g-bg);font-family:Chakra Petch,sans-serif;text-transform:uppercase;letter-spacing:.08em;clip-path:polygon(0 0,100% 0,100% 70%,calc(100% - 12px) 100%,0 100%)}.grid-floor{position:absolute;left:-50%;right:-50%;bottom:0;height:45vh;background:linear-gradient(rgb(45 226 255 / .35) 1px,transparent 1px) 0 0 / 100% 48px,linear-gradient(90deg,rgb(255 43 214 / .35) 1px,transparent 1px) 0 0 / 48px 100%;transform:perspective(300px) rotateX(60deg);transform-origin:bottom;-webkit-mask-image:linear-gradient(transparent,#000 70%);mask-image:linear-gradient(transparent,#000 70%);animation:grid-run 1.2s linear infinite}@keyframes grid-run{to{background-position:0 48px,0 0}}.glitch{position:relative}.glitch:before,.glitch:after{content:attr(data-text);position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;opacity:0}.glitch:before{color:var(--g-magenta);animation:glitch 4s steps(1) infinite}.glitch:after{color:var(--g-cyan);animation:glitch 4s steps(1) infinite reverse}@keyframes glitch{0%,92%,to{opacity:0;transform:none;clip-path:none}93%{opacity:.8;transform:translate(-3px,1px);clip-path:inset(10% 0 60% 0)}95%{opacity:.8;transform:translate(3px,-2px);clip-path:inset(55% 0 20% 0)}97%{opacity:.8;transform:translate(-2px);clip-path:inset(30% 0 45% 0)}}.is-glitching .glitch:before,.is-glitching .glitch:after{animation-duration:.3s}.layer-gaming h2,.layer-gaming h3{font-family:Chakra Petch,sans-serif;font-weight:700;text-transform:uppercase;letter-spacing:0}.layer-gaming .contact{border-color:#2de2ff26}.bp{padding:24vh 0 10vh}.ticket{display:grid;grid-template-columns:1fr minmax(200px,26%);max-width:1100px;margin-top:8px;filter:drop-shadow(0 0 40px rgb(255 43 214 / .25))}.ticket-main{padding:clamp(24px,4vw,48px);background:linear-gradient(90deg,#05060af0 35%,#05060a4d),url(/projects/bp-orage.webp) center / cover;border:1px solid var(--g-cyan);border-right:0;border-radius:16px 0 0 16px}.ticket-stub{position:relative;display:flex;flex-direction:column;justify-content:space-between;align-items:flex-start;gap:28px;padding:clamp(24px,3vw,40px) 28px;background:#0a0c14;border:1px solid var(--g-cyan);border-left:2px dashed rgb(45 226 255 / .5);border-radius:0 16px 16px 0}.ticket-stub:before,.ticket-stub:after{content:"";position:absolute;left:-14px;width:26px;height:26px;border-radius:50%;background:var(--g-bg);border:1px solid var(--g-cyan)}.ticket-stub:before{top:-14px}.ticket-stub:after{bottom:-14px}.ticket-top{display:flex;justify-content:space-between;font:400 .75rem JetBrains Mono,monospace;letter-spacing:.2em;text-transform:uppercase;color:var(--g-yellow)}.ticket h2{margin-top:32px;font-size:clamp(2.5rem,7vw,5.5rem);line-height:.95;text-shadow:0 0 30px rgb(45 226 255 / .4)}.ticket-pitch{margin-top:16px;max-width:30rem;font:400 1rem JetBrains Mono,monospace;color:#e9f6ffcc}.ticket-fields{display:grid;grid-template-columns:repeat(auto-fit,minmax(110px,1fr));gap:20px 32px;margin-top:40px}.ticket-stub .ticket-fields{margin-top:0;width:100%}.ticket-fields dt{font:400 .7rem JetBrains Mono,monospace;text-transform:uppercase;letter-spacing:.15em;color:var(--g-cyan)}.ticket-fields dd{margin:4px 0 0;font:700 1.25rem Chakra Petch,sans-serif;text-transform:uppercase}.stamp{display:inline-block;padding:6px 14px;border:3px solid var(--g-yellow);border-radius:6px;font:700 1.75rem Chakra Petch,sans-serif;text-transform:uppercase;letter-spacing:.08em;color:var(--g-yellow);text-shadow:0 0 18px rgb(245 255 61 / .6);rotate:-10deg}.barcode{width:100%;height:56px;background:repeating-linear-gradient(90deg,var(--g-fg) 0 2px,transparent 2px 5px,var(--g-fg) 5px 6px,transparent 6px 9px,var(--g-fg) 9px 13px,transparent 13px 15px,var(--g-fg) 15px 16px,transparent 16px 21px);opacity:.85}.bp-pitch{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:40px;max-width:1100px;margin-top:14vh}.bp-pitch h3{font-size:1.25rem;color:var(--g-cyan);margin-bottom:12px}.bp-pitch p{font:400 .95rem/1.6 JetBrains Mono,monospace;color:#e9f6ffb3}.bp-gallery{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:16px;margin-top:14vh}.bp-gallery figure{margin:0}.bp-gallery img{display:block;width:100%;height:auto;aspect-ratio:4 / 3;object-fit:cover;border:1px solid rgb(45 226 255 / .3);border-radius:14px}.bp-gallery figcaption{margin-top:10px;font:400 .75rem JetBrains Mono,monospace;color:var(--g-yellow)}@media (max-width: 720px){.ticket{grid-template-columns:1fr}.ticket-main{border-right:1px solid var(--g-cyan);border-radius:16px 16px 0 0}.ticket-stub{border-left:1px solid var(--g-cyan);border-top:2px dashed rgb(45 226 255 / .5);border-radius:0 0 16px 16px}.ticket-stub:before,.ticket-stub:after{display:none}}.handle-line{position:fixed;top:0;bottom:0;z-index:5;left:var(--split);width:1px;pointer-events:none;background:linear-gradient(transparent,var(--g-cyan) 30%,var(--g-magenta) 70%,transparent);box-shadow:0 0 12px var(--g-cyan)}.handle{position:fixed;top:50%;left:var(--split);z-index:6;border:0;padding:0;background:none;cursor:ew-resize;touch-action:none;transform:translate(-50%,-50%) rotate(-90deg)}.handle:before{content:"";position:absolute;top:-14px;right:-4px;bottom:-14px;left:-4px}.handle-tab{display:block;padding:6px 14px;white-space:nowrap;font:700 .75rem Chakra Petch,sans-serif;letter-spacing:.2em;text-transform:uppercase;color:var(--g-bg);background:var(--g-cyan);transition:transform .16s var(--ease-out)}.handle:active .handle-tab{transform:scale(.97)}.handle:focus-visible .handle-tab{outline:2px solid var(--g-yellow);outline-offset:3px}[data-mode=pro] .to-pro,[data-mode=gaming] .to-gaming{display:none}@media (max-width: 767px){.handle,.handle-line{transition:opacity .2s ease}.is-scrolled .handle,.is-scrolled .handle-line{opacity:0;pointer-events:none}}[data-mode=gaming] .handle-tab{background:var(--pro-fg)}body:after{content:"";position:fixed;top:0;right:0;bottom:0;left:0;z-index:20;pointer-events:none;background:#dff8ff;opacity:0}.is-glitching body:after{animation:flash .35s ease-out}@keyframes flash{0%{opacity:.55}20%{opacity:.1}35%{opacity:.35}to{opacity:0}}@media (prefers-reduced-motion: reduce){.grid-floor,.glitch:before,.glitch:after{animation:none}.is-glitching body:after{animation:none}}
