/* Portfolio landing: hero video, city loader and project pages, in the pause-menu copper style. */
#landing{
  --land-bg:#0d0906;--land-ink:#fff1b1;--land-muted:#c9ab86;--land-gold:#ffda7e;--land-line:#6b3d17;
  position:fixed;inset:0;z-index:8;overflow-x:hidden;overflow-y:auto;scroll-behavior:smooth;overscroll-behavior:contain;
  background:var(--land-bg);color:var(--land-ink);font:14px/1.6 'Segoe UI',sans-serif;scrollbar-width:thin;scrollbar-color:#8a4b17 #140b06;
  transition:opacity .45s ease;
}
#landing.leaving{opacity:0;pointer-events:none}
#landing a{color:inherit}
#landing :focus-visible{outline:2px solid #fff1a5;outline-offset:3px}

/* Navigation */
.landing-nav{
  position:fixed;z-index:3;top:0;left:0;right:0;display:flex;align-items:center;justify-content:space-between;gap:16px;
  padding:calc(14px + env(safe-area-inset-top,0px)) clamp(16px,4vw,48px) 14px;transition:background .25s,box-shadow .25s;
}
#landing.scrolled .landing-nav{background:#140b07f2;box-shadow:0 3px 0 #4a2208,0 5px 0 #0a0503}
.landing-brand{display:flex;align-items:center;gap:12px;text-decoration:none;color:#ffda7e!important;font:400 15px/1 NeuralPixel,monospace;text-transform:uppercase;text-shadow:1px 2px #6a2b04;white-space:nowrap}
.landing-brand svg{width:34px;height:22px;color:#e9a035;filter:drop-shadow(1px 2px #703005)}
.landing-nav nav{display:flex;gap:clamp(4px,1.5vw,14px)}
.landing-nav nav a{
  padding:9px 14px 11px;text-decoration:none;color:#ffad24!important;font:400 14px/1 NeuralPixel,monospace;text-transform:uppercase;
  text-shadow:1px 2px #6a2b04,1px 3px #1b0901;background:url('../assets/ui/pause-button-idle.svg') center/100% 100% no-repeat;transition:transform .1s;
}
.landing-nav nav a:hover,.landing-nav nav a[aria-current]{background-image:url('../assets/ui/pause-button-active.svg');color:#fff49e!important}
.landing-nav nav a:hover{transform:translateY(-1px)}

/* Hero */
#hero{position:relative;display:grid;place-items:center;min-height:100dvh;padding:96px 16px 88px;overflow:hidden;isolation:isolate}
#hero-video{position:absolute;inset:0;z-index:-2;width:100%;height:100%;object-fit:cover;background:#1c1530 url('../assets/landing/hero-plaza-poster.jpg') center/cover}
.hero-shade{position:absolute;inset:0;z-index:-1;pointer-events:none;
  background:radial-gradient(ellipse 50% 42% at 50% 50%,#0d090688,transparent 75%),linear-gradient(#0d0906aa,transparent 22%,transparent 62%,var(--land-bg))}
#landing #loading{position:relative;inset:auto;z-index:auto;display:flex;flex-direction:column;align-items:center;width:min(560px,100%);padding:0;background:none;overflow:visible;text-align:center}
#landing[data-state='loading'] .when-ready,#landing[data-state='ready'] .when-loading{display:none}
.hero-copy .game-kicker{color:#f1c27a;text-shadow:0 1px 3px #000}
.hero-title{margin:22px 0 0;color:var(--land-gold);font:400 clamp(44px,8.5vw,96px)/1.02 NeuralPixel,monospace;text-transform:uppercase;letter-spacing:0;text-shadow:3px 4px #8d410a,4px 8px #140802,0 0 40px #000a}
.hero-tagline{max-width:420px;margin:18px 0 0;color:#f3dcb6;font-size:15px;text-shadow:0 1px 4px #000,0 0 18px #000}
/* One control: a copper bar that fills while the city loads, then becomes the entry button. */
#landing button.hero-enter{position:relative;isolation:isolate;width:min(380px,100%);min-height:70px;margin:30px 0 0;padding:14px 9% 18px;
  background:url('../assets/ui/pause-button-idle.svg') center/100% 100% no-repeat;color:var(--game-orange);font:400 clamp(19px,3vw,24px)/1.2 NeuralPixel,monospace;overflow:hidden}
#landing button.hero-enter:disabled{opacity:1;cursor:progress;transform:none}
#landing button.hero-enter:not(:disabled):is(.ns-highlighted,:hover){background-image:url('../assets/ui/pause-button-active.svg');color:#fff49e}
#landing #loading .hero-enter .progress{position:absolute;z-index:-1;top:14.5%;bottom:21%;left:5.4%;right:5.4%;height:auto;margin:0;border:0;background:none;box-shadow:none;overflow:hidden}
#landing #loading .hero-enter .progress::after{background:repeating-linear-gradient(90deg,transparent 0 15px,#2a1305aa 15px 18px)}
#landing #loading .hero-enter #progress-fill{height:100%;border:0;background:linear-gradient(#b8620f,#7c3505);box-shadow:inset 0 2px #e38d2a;transition:width .25s linear}
#landing[data-state='ready'] .hero-enter .progress{display:none}
.hero-enter-label{position:relative;white-space:nowrap;text-shadow:1px 2px #6a2b04,1px 4px #1b0901}
#loading-percent{display:inline-block;min-width:3.4em;margin-left:.3em;text-align:left;color:#ffe08a;font:inherit}
#landing #loading-message.hero-status{min-height:1.5em;margin:12px 0 0;color:#e6cc9f;font:12px/1.5 'Segoe UI',sans-serif;text-shadow:0 1px 3px #000}
.hero-keys{display:flex;flex-wrap:wrap;justify-content:center;gap:8px 16px;margin-top:16px;color:#e8cfa6;font-size:11px;text-shadow:0 1px 3px #000}
.hero-keys kbd{margin-right:5px}
.hero-hd{margin:14px 0 0;color:#c9ab86;font-size:11px;letter-spacing:.5px;text-shadow:0 1px 3px #000}
.hero-hd::before{content:'';display:inline-block;width:7px;height:7px;margin-right:8px;background:#ffad24;vertical-align:1px;animation:gpt-blink 1s steps(1) infinite}
.hero-hd.complete::before{background:#6fe08a;animation:none}
#landing[data-state='ready'] .hero-enter{animation:land-ready .45s ease-out}
@keyframes land-ready{from{transform:scale(.94)}60%{transform:scale(1.03)}to{transform:none}}
.hero-scroll{position:absolute;left:50%;bottom:calc(22px + env(safe-area-inset-bottom,0px));transform:translateX(-50%);display:grid;justify-items:center;gap:8px;
  color:#e6c38c!important;text-decoration:none;font:400 12px/1 NeuralPixel,monospace;text-transform:uppercase;text-shadow:1px 2px #000}
.hero-scroll span{width:12px;height:12px;border:solid #ffad24;border-width:0 4px 4px 0;transform:rotate(45deg);animation:land-bob 1.6s steps(4) infinite}
@keyframes land-bob{50%{translate:0 4px}}

/* Sections */
.landing-section{max-width:1120px;margin:0 auto;padding:clamp(72px,11vw,120px) clamp(16px,4vw,32px) 0;scroll-margin-top:40px}
.section-head{margin-bottom:36px}
.section-head .game-kicker{display:block;margin-bottom:14px}
.section-head h2{margin:0;color:var(--land-gold);font:400 clamp(30px,5vw,48px)/1.15 NeuralPixel,monospace;text-transform:uppercase;letter-spacing:0;text-shadow:2px 3px #8d410a,3px 6px #140802}
.section-head p{max-width:560px;margin:18px 0 0;color:var(--land-muted);font-size:15px}
/* About: profile card + question terminal */
.about-grid{display:grid;grid-template-columns:minmax(0,340px) minmax(0,1fr);gap:22px;align-items:stretch}
.about-card{display:flex;flex-direction:column;align-items:flex-start;padding:28px 26px 24px}
.about-card h3{margin:10px 0 2px;color:#ffc359;font:400 clamp(26px,3vw,32px)/1.15 NeuralPixel,monospace;text-transform:uppercase;text-shadow:2px 3px #160901}
.about-role{margin:0 0 16px;color:#ffe3a6;font-weight:600}
.about-facts{display:grid;gap:8px;width:100%;margin:0 0 20px;padding:14px 0 16px;border-block:1px solid #6b3d17}
.about-facts div{display:grid;grid-template-columns:56px 1fr;gap:10px}
.about-facts dt{color:#cf8e44;font-size:10px;font-weight:600;letter-spacing:1.4px;text-transform:uppercase;padding-top:2px}
.about-facts dd{margin:0;color:#e9d2b0;font-size:13px}
.about-domains{display:grid;gap:9px;margin:10px 0 20px;padding:0;list-style:none}
.about-domains li{position:relative;padding-left:17px;font-size:12.5px;line-height:1.45}
.about-domains li::before{content:'';position:absolute;left:0;top:.45em;width:7px;height:7px;background:#ffad24;box-shadow:1px 1px #6a2b04}
.about-domains strong{display:block;color:#ffd276}
.about-domains span{color:#cdb293}
.about-stack{margin:10px 0 0}
.about-stack li{font-size:10.5px;padding:3px 7px}

.gpt{display:flex;flex-direction:column;min-height:560px;padding:18px 18px 16px;min-width:0}
.gpt-top{display:flex;align-items:center;gap:12px;padding:4px 6px 14px}
.gpt-mark{width:34px;height:34px;flex:none;background:#ffad24;box-shadow:inset -4px -4px #b8620f,inset 4px 4px #ffd875,0 3px #5a2507;
  clip-path:polygon(0 25%,25% 25%,25% 0,75% 0,75% 25%,100% 25%,100% 75%,75% 75%,75% 100%,25% 100%,25% 75%,0 75%)}
.gpt-top>div{flex:1;min-width:0}
.gpt-top strong{display:block;color:#ffd276;font:400 20px/1.1 NeuralPixel,monospace;text-transform:uppercase;text-shadow:1px 2px #532409}
.gpt-status{display:flex;align-items:center;gap:7px;color:#b99a76;font-size:11px}
.gpt-status::before{content:'';width:7px;height:7px;background:#6fe08a;box-shadow:0 0 6px #6fe08a}
.gpt-clear{padding:7px 11px;border:2px solid #8d4b1b;border-radius:0;background:#321a10;color:#ffba45;font:400 11px/1 NeuralPixel,monospace;text-transform:uppercase;cursor:pointer;box-shadow:inset 1px 1px #c48233,0 2px #0b0705}
#landing .gpt-clear:hover{color:#fff0ad;background:#643212}
.gpt-log{flex:1 1 0;min-height:320px;overflow-y:auto;padding:16px 18px;border:2px solid #6e3c16;background:#0e0805;box-shadow:inset 0 3px #050302,inset 0 0 40px #000a;
  scrollbar-width:thin;scrollbar-color:#8a4b17 #0e0805;font:13.5px/1.6 'Segoe UI',sans-serif;
  background-image:repeating-linear-gradient(#0000 0 3px,#ffffff05 3px 4px)}
.gpt-line{display:grid;gap:3px;margin-bottom:14px}
.gpt-who{color:#cf8e44;font:400 11px/1 NeuralPixel,monospace;text-transform:uppercase;letter-spacing:.5px}
.gpt-user .gpt-who{color:#ffad24}
.gpt-user .gpt-text{color:#fff1cf}
.gpt-ai .gpt-text{color:#ecd6b4}
.gpt-sys .gpt-text{color:#a88a68;font-size:12.5px}
.gpt-boot .gpt-text::before{content:'◆ ';color:#b8620f;font-size:9px;vertical-align:1px}
.gpt-text strong{color:#ffd276}
.gpt-text em{color:#fff1cf;font-style:normal}
.gpt-text a{color:#ffc052!important;text-underline-offset:3px}
.gpt-text kbd{display:inline-block;padding:0 5px;border:1px solid #966033;background:#281a13;color:#f0cd8f;font:11px/1.5 'Segoe UI',sans-serif}
.gpt-bullet{position:relative;display:inline-block;padding-left:15px}
.gpt-bullet::before{content:'';position:absolute;left:1px;top:.6em;width:6px;height:6px;background:#ffad24}
.gpt-inline{margin-left:6px;padding:1px 7px;border:1px solid #a65d1c;border-radius:0;background:#2a160d;color:#ffd07b;font:400 10px/1.6 NeuralPixel,monospace;cursor:pointer}
#landing .gpt-inline:hover{background:#6e3910;color:#fff8c4}
.gpt-error{color:#ff9d6e}
.gpt-cursor{display:inline-block;width:.6em;height:1.05em;margin-left:2px;vertical-align:-2px;background:#ffad24;animation:gpt-blink 1s steps(1) infinite}
@keyframes gpt-blink{50%{opacity:0}}
.gpt-form{display:flex;align-items:center;gap:10px;margin-top:12px;padding:6px 6px 6px 14px;border:2px solid #a65d1c;background:#140b07;box-shadow:inset 0 2px #070401,0 2px #4c230b}
.gpt-form:focus-within{border-color:#ffcd50}
.gpt-prompt{color:#ffad24;font:400 22px/1 NeuralPixel,monospace}
.gpt-form input{flex:1;min-width:0;padding:10px 0;border:0;background:none;color:#fff1cf;font:14px/1.4 'Segoe UI',sans-serif;outline:0}
.gpt-form input::placeholder{color:#8b6d4e}
#landing .gpt-form input:focus-visible{outline:0}
.gpt-send{flex:none;padding:11px 16px;border:2px solid #ffcd50;border-radius:0;background:linear-gradient(#ee940b,#b64902);box-shadow:inset 1px 1px #fff29a,inset -1px -2px #854105,0 3px #351804;color:#fff4b7;font:400 13px/1 NeuralPixel,monospace;text-transform:uppercase;cursor:pointer}
#landing .gpt-send:hover:not(:disabled){background:linear-gradient(#ffac2a,#cf5d06)}
.gpt-send:disabled{opacity:.5;cursor:progress}
.gpt-suggestions{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}
.gpt-suggestions button{padding:7px 11px;border:1px solid #8a5424;border-radius:0;background:#1a0f09;color:#e6c38c;font:12px/1.3 'Segoe UI',sans-serif;cursor:pointer}
#landing .gpt-suggestions button:hover,.gpt-suggestions button.ns-highlighted{background:#3a1f0e;border-color:#ffbb42;color:#fff1cf}
.gpt-form.busy+.gpt-suggestions button{opacity:.45;pointer-events:none}

/* Projects */
.project-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:22px}
.project{display:flex;flex-direction:column;padding:28px 28px 26px}
.project-top{display:flex;align-items:center;gap:16px}
.project-icon{flex:none;width:46px;height:46px;color:#ffad23}
.project-icon svg{width:100%;height:100%;filter:drop-shadow(2px 1px 0 #ffd461) drop-shadow(0 3px 0 #7c3106)}
.project-logo{flex:none;display:grid;place-items:center;width:52px;height:52px;padding:9px;background:var(--logo-bg);border:2px solid #b96820;box-shadow:inset 0 0 0 2px #0006,0 3px #0f0805}
.project-logo img{display:block;width:100%;height:100%;object-fit:contain}
.project-logo:not(.mono){padding:2px}
.project-logo.mono img{filter:brightness(0) invert(1)}
.sheet-head .project-logo{width:60px;height:60px;margin-top:6px}
.project-sign{margin-left:auto;padding:6px 10px;border:2px solid #3f8f9a;background:#0c1d2a;color:#bff4ff;font:600 9px/1.2 'Segoe UI',sans-serif;letter-spacing:1.6px;text-transform:uppercase;box-shadow:0 0 12px #3fb8c955,inset 0 0 8px #3fb8c933;white-space:nowrap}
.project h3{margin:20px 0 4px;color:#ffc359;font:400 clamp(26px,3.4vw,34px)/1.2 NeuralPixel,monospace;text-transform:uppercase;text-shadow:2px 3px #160901}
.project-lede{margin:0 0 12px;color:#ffe3a6;font-weight:600}
.project p.project-text{margin:0;color:#dcc1a1;font-size:13.5px}
.project-tags{display:flex;flex-wrap:wrap;gap:7px;margin:18px 0 22px;padding:0;list-style:none}
.project-tags li{padding:4px 8px;border:1px solid #8a5424;background:#1a0f09;color:#f0cd8f;font-size:11px;line-height:1.3}
.project-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:auto}
#landing .project-actions button.game-button{width:auto;flex:1 1 200px;min-height:56px;padding:12px 22px 15px;font-size:16px}
a.project-demo{display:inline-flex;align-items:center;justify-content:center;flex:0 1 auto;min-height:56px;padding:0 18px;border:2px solid #a65d1c;background:linear-gradient(#523014,#2a160d);box-shadow:inset 1px 1px #e7a344,inset -1px -2px #321402,0 3px #0f0805;color:#ffd07b;font:400 13px/1.2 NeuralPixel,monospace;text-transform:uppercase;text-decoration:none}
a.project-demo:hover{color:#fff8c4;border-color:#fff09b}
.project-queued{margin:12px 0 0;min-height:1.6em;color:#ffbe66;font-size:12px}

.project-visit{display:inline-flex;align-items:center;justify-content:center;gap:9px;min-height:56px;padding:0 18px;border:2px solid #a65d1c;border-radius:0;background:linear-gradient(#523014,#2a160d);box-shadow:inset 1px 1px #e7a344,inset -1px -2px #321402,0 3px #0f0805;color:#ffd07b;font:400 13px/1.2 NeuralPixel,monospace;text-transform:uppercase;cursor:pointer;transition:transform .1s}
.project-visit svg{width:15px;height:15px;fill:currentColor}
.project-visit:hover,.project-visit.ns-highlighted{color:#fff8c4;border-color:#fff09b;transform:translateY(-1px)}

/* Project sheet: the pause-menu sub-page frame, sized for reading. */
dialog.project-sheet{width:min(880px,calc(100vw - 24px));max-width:none;max-height:calc(100dvh - 24px);margin:auto;padding:0;overflow:auto;overscroll-behavior:contain;
  background:#1d100ef7;color:var(--land-ink,#fff1b1);border:3px solid #c87520;border-radius:0;box-shadow:inset 0 0 0 3px #683210,0 5px 0 #522308,0 8px 0 #130b08;
  font:14px/1.6 'Segoe UI',sans-serif;color-scheme:dark;scrollbar-width:thin;scrollbar-color:#8a4b17 #140b06}
dialog.project-sheet::backdrop{background:#050405cc}
dialog.project-sheet[open]{animation:sheet-in .22s ease-out}
@keyframes sheet-in{from{opacity:0;transform:translateY(10px)}}
.sheet-shell{padding:clamp(20px,4vw,36px)}
.sheet-head{display:flex;align-items:flex-start;gap:18px;padding-bottom:22px;border-bottom:1px solid #72421f}
.sheet-head .project-icon{width:52px;height:52px;margin-top:6px}
.sheet-head>div{flex:1;min-width:0}
.sheet-head h2{margin:8px 0 2px;color:#ffc359;font:400 clamp(30px,5vw,44px)/1.15 NeuralPixel,monospace;text-transform:uppercase;text-shadow:2px 3px #160901}
.sheet-head .project-lede{margin:0}
.sheet-close{flex:none;width:36px;height:36px;padding:0;display:grid;place-items:center;border:2px solid #8d4b1b;border-radius:0;background:#321a10;color:#ffba45;font:26px/1 monospace;box-shadow:inset 1px 1px #c48233,0 2px #0b0705;cursor:pointer}
.sheet-close:hover{color:#fff0ad;background:#643212}
.sheet-intro{margin:22px 0 0;color:#f0dcc0;font-size:15.5px}
.sheet-highlights{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px 22px;margin:20px 0 0;padding:0;list-style:none}
.sheet-highlights li,.sheet-chapter li{position:relative;padding-left:18px;color:#dcc1a1;font-size:13px}
.sheet-highlights li::before,.sheet-chapter li::before{content:'';position:absolute;left:0;top:.55em;width:7px;height:7px;background:#ffad24;box-shadow:1px 1px #6a2b04}
.sheet-shell .project-tags{margin:22px 0 0}
.sheet-demo{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:14px 20px;align-items:center;margin:24px 0 0;padding:18px 20px;border:2px solid #a65d1c;background:linear-gradient(120deg,#352012,#211209);box-shadow:inset 1px 1px #c3802b}
.sheet-demo-head{grid-column:1/-1}
.sheet-demo h3{margin:6px 0 0;color:#ffd276;font:400 19px/1.3 NeuralPixel,monospace;text-transform:uppercase}
.sheet-demo dl{display:grid;gap:8px;margin:0}
.sheet-demo dl>div{display:grid;grid-template-columns:110px minmax(0,1fr);align-items:center;gap:10px}
.sheet-demo dt{color:#cf8e44;font-size:11px;font-weight:600;letter-spacing:1px;text-transform:uppercase}
.sheet-demo dd{display:flex;align-items:center;gap:10px;margin:0;min-width:0}
.sheet-demo code{flex:1;min-width:0;overflow-wrap:anywhere;padding:8px 10px;border:1px solid #6e3c16;background:#120a06;color:#fff1cf;font:14px/1.3 ui-monospace,Consolas,monospace}
.sheet-demo .project-visit{min-height:36px;padding:0 12px;font-size:11px}
.sheet-demo a.project-demo{align-self:stretch;min-height:0}
.sheet-demo-status{grid-column:1/-1;min-height:1.2em;margin:0;color:#9fe0a8;font-size:12px}
@media(max-width:600px){.sheet-demo{grid-template-columns:1fr}.sheet-demo dl>div{grid-template-columns:1fr;gap:4px}.sheet-demo a.project-demo{min-height:48px}}
.sheet-gallery{display:grid;grid-template-columns:repeat(auto-fill,minmax(138px,1fr));gap:14px;margin:26px 0 0}
.sheet-gallery figure{margin:0}
.sheet-gallery button{display:block;width:100%;padding:0;border:2px solid #7b4418;border-radius:0;background:#120a06;box-shadow:0 3px #0b0503;cursor:zoom-in;transition:transform .1s}
#landing .sheet-gallery button:hover{border-color:#ffbb42;background:#120a06;transform:translateY(-2px)}
.sheet-gallery img{display:block;width:100%;aspect-ratio:16/10;object-fit:cover}
.sheet-gallery figure.portrait img{object-fit:contain;background:#0b0604}
.sheet-gallery figcaption{margin-top:6px;color:#b9a085;font-size:11px}
.sheet-chapters{display:grid;gap:14px;margin:28px 0 0}
.sheet-chapter{display:flex;gap:18px;padding:18px 20px;border:2px solid #6e3c16;background:linear-gradient(120deg,#2d1a0f,#1c0f08);box-shadow:inset 1px 1px #9b5f25}
.sheet-number{flex:none;color:#ffad24;font:400 26px/1 NeuralPixel,monospace;text-shadow:1px 2px #6a2b04}
.sheet-chapter>div{min-width:0}
.sheet-chapter h3{margin:6px 0 6px;color:#ffd276;font:400 19px/1.3 NeuralPixel,monospace;text-transform:uppercase}
.sheet-chapter p{margin:0;color:#d8bf9f;font-size:13.5px}
.sheet-chapter ul{display:grid;gap:4px;margin:12px 0 0;padding:0;list-style:none}
.sheet-actions{display:flex;flex-wrap:wrap;align-items:center;gap:12px;margin-top:28px;padding-top:22px;border-top:1px solid #72421f}
#landing .sheet-actions button.game-button{width:auto;flex:1 1 240px;min-height:60px;padding:12px 24px 16px;font-size:18px}
.sheet-actions button.game-button svg{width:18px;height:18px}
.sheet-shell .project-queued{margin-top:10px}
.sheet-lightbox{position:fixed;inset:0;z-index:5;display:grid;place-items:center;padding:clamp(56px,7vw,80px) clamp(16px,7vw,90px);background:#070403f2;cursor:zoom-out}
.sheet-lightbox[hidden]{display:none}
.sheet-lightbox figure{display:grid;justify-items:center;gap:12px;max-width:100%;max-height:100%;margin:0;cursor:default}
.sheet-lightbox img{display:block;max-width:min(1200px,100%);max-height:calc(100dvh - 170px);object-fit:contain;border:3px solid #c87520;background:#0b0604;box-shadow:inset 0 0 0 2px #683210,0 5px 0 #522308,0 8px 0 #130b08}
.sheet-lightbox figcaption{color:#e6cc9f;font-size:13px}
.lightbox-close{position:absolute;top:18px;right:18px}
.lightbox-nav{position:absolute;top:50%;left:clamp(8px,2vw,24px);transform:translateY(-50%);width:44px;height:64px;padding:0;border:2px solid #a65d1c;border-radius:0;background:linear-gradient(#523014,#2a160d);box-shadow:inset 1px 1px #e7a344,0 3px #0f0805;color:#ffd07b;font:30px/1 NeuralPixel,monospace;cursor:pointer}
.lightbox-nav.next{left:auto;right:clamp(8px,2vw,24px)}
#landing .lightbox-nav:hover{color:#fff8c4;border-color:#fff09b;background:linear-gradient(#6e3910,#3a1a08)}

/* Contact */
.contact-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px}
.contact-card{display:flex;flex-direction:column;align-items:flex-start;gap:6px;padding:28px 30px 24px;min-width:0}
.contact-icon{width:40px;height:40px;margin-bottom:12px;color:#ffad23}
.contact-icon svg{width:100%;height:100%;filter:drop-shadow(2px 1px 0 #ffd461) drop-shadow(0 3px 0 #7c3106)}
.contact-card strong{max-width:100%;overflow-wrap:break-word;color:#ffd276;font:400 clamp(18px,2.4vw,24px)/1.35 NeuralPixel,monospace;text-shadow:1px 2px #532409}
.contact-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:16px}
.contact-link{padding:10px 16px;border:2px solid #a65d1c;border-radius:0;background:linear-gradient(#523014,#2a160d);box-shadow:inset 1px 1px #e7a344,inset -1px -2px #321402,0 3px #0f0805;color:#ffd07b!important;font:400 13px/1.3 NeuralPixel,monospace;text-transform:uppercase;text-decoration:none;cursor:pointer}
.contact-link:hover{color:#fff8c4!important;border-color:#fff09b;transform:translateY(-1px)}
.contact-status{min-height:1.4em;margin:8px 0 0;color:#ffbe66;font-size:12px}

.landing-footer{display:flex;flex-wrap:wrap;justify-content:space-between;gap:12px;max-width:1120px;margin:clamp(72px,10vw,110px) auto 0;padding:22px clamp(16px,4vw,32px) calc(26px + env(safe-area-inset-bottom,0px));border-top:1px solid var(--land-line);color:#9d7f5c;font-size:12px}
.landing-footer a{color:#e2b667!important;text-decoration:none}

@media(max-width:1000px){.contact-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:900px){.about-grid{grid-template-columns:1fr}.gpt{min-height:0}.gpt-log{flex:none;height:min(420px,60dvh);min-height:0}}
@media(max-width:820px){
  .project-list,.contact-grid{grid-template-columns:1fr}
  .sheet-highlights{grid-template-columns:1fr}
}
@media(max-width:600px){
  .landing-brand span{display:none}
  .landing-nav nav a{padding:8px 10px 10px;font-size:12px}
  .project,.contact-card{padding:22px 20px}
  .project-sign{font-size:8px;letter-spacing:1px}
  .hero-scroll{display:none}
  .sheet-head :is(.project-icon,.project-logo){display:none}
  .sheet-chapter{flex-direction:column;gap:8px;padding:16px}
}
@media(max-height:620px){#hero{padding-top:78px;padding-bottom:40px}}
@media(prefers-reduced-motion:reduce){.gpt-cursor{animation:none}#landing{scroll-behavior:auto;transition:none}.hero-scroll span,#landing[data-state='ready'] .hero-enter{animation:none}}
#landing :is(.project-visit,.contact-link):hover{background:linear-gradient(#6e3910,#3a1a08)}
