:root{--black:#111111;--paper:#f3efe4;--lime:#c8f000;--muted:#b6b0a2}*{box-sizing:border-box}html{scroll-behavior:smooth;scrollbar-width:thin;scrollbar-color:#6b6b40 #111}body{margin:0;background:#111;color:var(--paper);font-family:Arial,sans-serif}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit;cursor:pointer}a{color:inherit;text-decoration:none}button:focus-visible,a:focus-visible{outline:2px solid var(--lime);outline-offset:6px}.skip{position:fixed;z-index:20;top:-100px;background:var(--lime);color:#111;padding:14px}.skip:focus{top:8px}#scene{position:fixed;inset:0;background:radial-gradient(ellipse at 70% 50%,#3e2d13,#111 70%);transition:opacity .5s}#scene canvas{width:100%;height:100%;display:block;touch-action:pan-y}.vignette{position:fixed;inset:0;pointer-events:none;background:linear-gradient(90deg,rgba(10,10,9,.92),rgba(10,10,9,.68) 26%,transparent 58%),linear-gradient(0deg,rgba(10,10,9,.8),transparent 25%);transition:opacity .7s}.topbar{position:fixed;z-index:10;left:3.5%;right:3.5%;top:24px;display:flex;justify-content:space-between;align-items:center;height:72px;padding:0 24px;background:rgba(17,17,17,.8);border:1px solid #ffffff26;backdrop-filter:blur(16px);border-radius:5px}.brand{display:flex;align-items:center;gap:8px}.brand img{width:103px;height:44px;object-fit:contain}.brand span{font:12px 'Courier New',monospace;align-self:flex-end;padding-bottom:8px;color:var(--muted)}nav{display:flex;align-items:center;gap:34px;font-size:14px}nav a{transition:color .2s}nav a:hover,nav a[aria-current=page]{color:var(--lime)}.nav-contact{border-left:1px solid #ffffff30;padding-left:32px}.nav-contact span{margin-left:24px;color:var(--lime)}#menu-toggle{display:none}.hero-copy{position:fixed;top:24%;left:6%;z-index:2;transition:opacity .45s,transform .6s;pointer-events:none}.hero-copy a{pointer-events:auto}.eyebrow{font:12px 'Courier New',monospace;letter-spacing:.14em}.live-dot{display:inline-block;width:6px;height:6px;border-radius:50%;background:var(--lime);margin-right:8px;box-shadow:0 0 12px #c8f00099}h1{font:normal clamp(52px,5.9vw,100px)/.99 'Times New Roman',serif;letter-spacing:-.055em;margin:28px 0 25px}h1 em{font-weight:normal;color:var(--lime)}.intro{color:#c6c0b2;font-size:17px;line-height:1.6;margin-bottom:28px}.cta{display:inline-flex;align-items:center;gap:32px;background:var(--lime);border:1px solid var(--lime);color:#111;font-size:14px;font-weight:bold;padding:16px 20px;transition:background .2s,transform .2s}.cta:hover{background:#e1ff43;transform:translateY(-2px)}.cta span{font-size:22px}.signature{margin-top:35px;font:12px 'Courier New',monospace;color:#aaa79b}.scribble{display:block;font:italic 17px 'Times New Roman',serif;transform:rotate(-4deg);margin-top:18px;color:#827966}.terminal{position:fixed;z-index:4;right:5.5%;bottom:17%;width:266px;border:1px solid #ddd6bf9c;transform:rotate(-6deg);background:#10110ef0;box-shadow:8px 10px 0 #00000035;transition:transform .6s,bottom .6s}.terminal-bar{display:flex;justify-content:space-between;border-bottom:1px solid #ddd6bf80;padding:9px 12px;font:12px 'Courier New',monospace}.terminal-body{padding:12px 15px}.terminal p{margin:0 0 12px;font:14px 'Courier New',monospace}.lime{color:var(--lime)}.cursor{animation:blink 1s steps(1) infinite}.progress-row{display:flex;align-items:center;gap:12px;font:12px 'Courier New',monospace}.progress-track{height:13px;border:1px solid #ddd6bf80;flex:1;padding:2px}#progress-fill{height:100%;width:0;background:repeating-linear-gradient(120deg,var(--lime) 0 2px,transparent 2px 4px)}#terminal-hint{font-size:12px;color:#aba99a;margin-top:12px;line-height:1.4}.chapter-links{display:flex;justify-content:space-between;border-top:1px solid #ffffff20;padding-top:8px}.chapter-links button{background:none;border:0;font:12px 'Courier New',monospace;color:#aaa;padding:6px}.chapter-links button[aria-current=step]{background:var(--lime);color:#111}.scene-note{position:fixed;right:9%;top:20%;font:italic 15px 'Courier New',monospace;transform:rotate(6deg);color:#e1d4b1a6;pointer-events:none;transition:opacity .4s}.scene-note span{font-size:40px;display:block;margin-top:8px}.controls{position:fixed;bottom:74px;left:6%;display:flex;gap:10px;z-index:5}.controls button{border:1px solid #ffffff30;background:#111b;color:#c7c2b6;backdrop-filter:blur(12px);padding:10px 13px;font:12px 'Courier New',monospace}.controls button[aria-pressed=true]{border-color:#c8f00060;color:var(--lime)}.bottom-bar{position:fixed;bottom:0;left:3.5%;right:3.5%;height:55px;border-top:1px solid #ffffff26;display:flex;justify-content:space-between;align-items:center;font:11px 'Courier New',monospace;letter-spacing:.09em;z-index:5;color:#a4a194}.down{margin-left:16px;display:inline-block;color:var(--lime);animation:down 1.6s infinite}.scroll-route>div{height:100vh}.scroll-route{pointer-events:none}.screen-caption{position:fixed;z-index:3;left:6%;bottom:145px;width:300px}.screen-caption h2{font:normal 42px/1 'Times New Roman',serif;letter-spacing:-.03em;margin:15px 0}.screen-caption p{font-size:15px;line-height:1.55;color:#bdb7a8}.screen-caption .cta{margin-top:12px;padding:12px 16px}.immersed .hero-copy{opacity:0;transform:translateY(-24px);visibility:hidden}.immersed .hero-copy a{pointer-events:none}.immersed .vignette{opacity:.2}.immersed .scene-note{opacity:0}.immersed .terminal{transform:rotate(0);bottom:17%}.exploring #scene canvas{touch-action:none;cursor:grab}.exploring #scene canvas:active{cursor:grabbing}.exploring .hero-copy,.exploring .scene-note{opacity:0;visibility:hidden}dialog{max-width:580px;width:calc(100% - 36px);color:var(--paper);background:#171813;border:1px solid #a1a784;padding:42px}dialog::backdrop{background:#000a;backdrop-filter:blur(8px)}dialog h2{font:48px 'Times New Roman',serif;margin:22px 0}dialog p,dialog li{line-height:1.6;font-size:16px}dialog li{margin:12px 0}dialog ul{padding-left:18px}.concept-note{color:#999;border-top:1px solid #ffffff30;padding-top:18px;font-size:13px!important}.close-dialog{position:absolute;right:12px;top:10px;color:var(--paper);border:0;background:none;font-size:30px}#fallback{position:fixed;inset:115px 6% auto;z-index:6;background:#25271c;padding:12px 20px;max-width:600px;font-size:14px;line-height:1.5}.no-webgl #scene{opacity:.3}.no-webgl .screen-caption{top:32%;bottom:auto;width:min(600px,85%)}.no-webgl .terminal{bottom:18%}.no-js{position:fixed;inset:100px 0 0;padding:50px;background:#111;z-index:9}@keyframes blink{50%{opacity:0}}@keyframes down{50%{transform:translateY(5px)}}
@media(min-width:1600px){.hero-copy{left:7%}.terminal{right:7%;bottom:19%}.screen-caption{left:5%;width:330px}}
@media(max-width:1100px){.screen-caption{bottom:150px;width:240px}.screen-caption h2{font-size:32px}.terminal{right:4%;width:235px}.hero-copy{top:23%}h1{font-size:66px}nav{gap:20px}.scene-note{right:5%;top:18%}.signature{margin-top:25px}}
@media(max-width:760px){.topbar{top:14px;height:60px;padding:0 14px;left:4%;right:4%}.brand img{width:88px}#menu-toggle{display:block;background:none;border:1px solid #ffffff30;color:var(--paper);font-size:20px;padding:4px 10px}nav{display:none;position:absolute;left:0;right:0;top:68px;flex-direction:column;align-items:stretch;background:#111f;border:1px solid #ffffff30;padding:20px;gap:0}nav.open{display:flex}nav a{padding:15px}.nav-contact{border:0}.hero-copy{top:15%;left:7%}h1{font-size:clamp(42px,10vw,68px);margin:18px 0 15px}.eyebrow{font-size:10px}.intro{font-size:14px;margin:0 0 18px}.hero-copy .cta{font-size:12px;padding:12px 15px}.signature{display:none}.scene-note{display:none}.vignette{background:linear-gradient(180deg,#1117,transparent 70%),linear-gradient(90deg,#111b,transparent 90%)}.terminal{right:5%;bottom:15%;width:200px;transform:rotate(-4deg)}.terminal-bar{font-size:10px}.terminal-body{padding:10px}.terminal p{font-size:12px}.chapter-links button{font-size:11px;padding:5px}.terminal #terminal-hint{font-size:10px}.controls{left:5%;bottom:63px;gap:5px}.controls button{font-size:10px;padding:9px}.bottom-bar{font-size:9px;height:46px}.bottom-bar>span:first-child{display:none}.bottom-bar{left:5%;right:5%}.immersed .terminal{bottom:14%;width:190px}.screen-caption{left:6%;right:6%;bottom:auto;top:14%;width:auto}.screen-caption h2{font-size:30px;margin:8px 0}.screen-caption p{font-size:13px;max-width:310px;margin:6px 0}.screen-caption .cta{font-size:12px;padding:8px 12px;margin-top:7px}.no-webgl .screen-caption{top:34%}#fallback{inset:88px 5% auto;font-size:12px}}
@media(max-height:700px) and (min-width:761px){.hero-copy{top:21%}h1{font-size:60px;margin:16px 0}.intro{margin-bottom:16px}.signature{display:none}.screen-caption{bottom:130px}.terminal{bottom:21%}}
@media(min-width:761px) and (max-width:1100px){.screen-caption{top:15%;bottom:auto;width:440px}.screen-caption h2{font-size:32px}.screen-caption p{font-size:14px;margin:5px 0}.screen-caption .cta{padding:8px 12px;margin-top:6px}.immersed .terminal{bottom:13%;width:220px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation:none!important;transition:none!important}}
[hidden]{display:none!important}
@media(pointer:fine){html,body,a,button,dialog{cursor:url('./assets/cursor-bjon.svg') 3 2,auto}.exploring #scene canvas{cursor:grab}.exploring #scene canvas:active{cursor:grabbing}}
@media(max-width:760px) and (max-height:620px){.immersed .terminal{bottom:22%}}

.project-actions{display:flex;align-items:flex-start;flex-wrap:wrap;gap:8px}.project-actions #project-details:not(:only-child){background:#111d;color:var(--paper);border-color:#ffffff40}.project-actions #project-details:hover{border-color:var(--lime);color:var(--lime)}.screen-caption #chapter-kind{display:block;line-height:1.6}.screen-caption .project-actions .cta{gap:12px}.screen-caption:has(#project-visit:not([hidden])) h2{font-size:38px}@media(max-width:760px){.screen-caption:has(#project-visit:not([hidden])) h2{font-size:30px}.screen-caption:has(#project-visit:not([hidden])) #chapter-description{font-size:12px}.project-actions{gap:6px}}

.featured-project{display:block;width:fit-content;margin-top:15px;font-size:13px;color:var(--muted)}.featured-project strong,.featured-project span{color:var(--lime)}.featured-project:hover{text-decoration:underline}dialog.has-gallery{width:calc(100% - 36px);max-width:960px;max-height:88vh;overflow:auto}.project-gallery{display:grid;gap:20px;margin:26px 0}.project-gallery figure{margin:0;border:1px solid #ffffff30;background:#111}.project-gallery img{display:block;width:100%;height:auto}.project-gallery figcaption{font:12px/1.5 Courier New,monospace;color:var(--muted);padding:12px 16px}@media(max-width:760px){.featured-project{margin-top:12px;font-size:12px}dialog.has-gallery{padding:32px 20px}.project-gallery figcaption{font-size:11px;padding:10px}}

.chapter-links{flex-wrap:wrap;gap:2px}.chapter-links button{min-width:20px;padding:6px 3px}.project-gallery img[src*="disruptive-erp-login"]{width:min(100%,560px);margin:auto;object-fit:contain}.project-gallery figure:has(img[src*="disruptive-erp-login"]){background:#181818}.screen-caption #detail-privacy{line-height:1.6}@media(max-width:760px){.chapter-links button{min-width:15px;font-size:10px;padding:5px 2px}}
