:root{color-scheme:dark;--header:rgba(21,22,22,.94);--copy:#bbc1bb;--button-ink:#181a18}
:root[data-theme="light"]{color-scheme:light;--bg:#f2f3ef;--panel:#e6e9e3;--ink:#202820;--muted:#586358;--accent:#b74721;--line:#c9d0c5;--header:rgba(242,243,239,.95);--copy:#455145;--button-ink:#fff}
.reading-progress{position:fixed;top:0;left:0;right:0;height:3px;z-index:80;pointer-events:none}.reading-progress span{display:block;width:100%;height:100%;background:var(--accent);transform:scaleX(0);transform-origin:left center}
.site-header{position:sticky;top:0;height:84px;background:var(--header);backdrop-filter:blur(16px);box-shadow:0 -10px 0 10px var(--bg);gap:24px}.site-nav{margin-left:auto;order:1;gap:28px}.site-nav a,.site-nav a:last-child{position:relative;color:var(--muted);padding-block:12px}.site-nav a::after{content:'';position:absolute;bottom:5px;left:0;right:0;height:2px;background:var(--accent);transform:scaleX(0);transform-origin:left;transition:transform .2s}.site-nav a:hover,.site-nav a[aria-current="location"]{color:var(--accent)}.site-nav a[aria-current="location"]::after{transform:scaleX(1)}
.theme-toggle{order:2;display:flex;align-items:center;gap:8px;min-height:40px;padding:8px 12px;border:1px solid var(--line);border-radius:4px;color:var(--ink);background:var(--panel);font:12px var(--mono);cursor:pointer;white-space:nowrap}.theme-icon{font-size:20px;line-height:1;color:var(--accent)}.menu-button{order:3}
.hero-lead,.about-copy>p{color:var(--copy)}.button-primary{color:var(--button-ink)}.button-primary:hover{color:#181a18}.button-secondary{border-color:var(--muted)}.facts strong,.contact-links strong{color:var(--ink)}.tool-row span{color:var(--copy);border-color:var(--line)}.tags span,.dialog-tags span{color:var(--muted);border-color:var(--line)}.details-link{color:var(--ink)}
.project-card{border:1px solid var(--line);background:var(--bg);transition:border-color .25s,box-shadow .25s;overflow:hidden}.project-open{height:100%}.project-card:hover,.project-card:focus-within{border-color:var(--accent);box-shadow:0 8px 28px #0000000d}.project-media{border:0;border-bottom:1px solid var(--line);aspect-ratio:1.9}.project-body{padding:24px 26px 26px}.project-number{position:static;display:block;font:12px var(--mono);letter-spacing:.1em;color:var(--muted);margin-bottom:20px;padding-bottom:14px;border-bottom:1px solid var(--line)}.project-number::before{content:'PROJECT FILE / '}.project-body h3{margin-bottom:16px}.project-type{font-size:12px}.project-body>p:not(.project-type){font-size:15px}.tags span{font-size:12px}.project-open:hover .project-media img{transform:scale(1.035)}.project-open.spider-inspecting .project-media{box-shadow:inset 0 -2px #7ee2cf}.project-open.spider-inspecting .details-link{color:var(--accent)}
.project-modal-open{overflow:hidden}.project-dialog{padding:0;width:min(1080px,calc(100% - 48px));max-height:90dvh;background:var(--bg);border:1px solid var(--line);overflow:auto;overscroll-behavior:contain}.dialog-layout{display:grid;grid-template-columns:1fr 1fr;min-height:520px}.dialog-visual{position:relative;background:#0b1419;display:flex;flex-direction:column;justify-content:center;padding:55px 20px;border-right:1px solid #354047;min-width:0}.dialog-visual img{width:100%;height:auto;aspect-ratio:1.5;object-fit:contain}.dialog-file,.dialog-caption{font:11px/1.5 var(--mono);letter-spacing:.08em;color:#aab7ba;position:absolute;left:24px;right:24px}.dialog-file{top:24px;color:#ff9d78}.dialog-caption{bottom:24px}.dialog-content{padding:60px 40px 40px;display:flex;flex-direction:column;align-items:flex-start;min-width:0}.dialog-content .dialog-type{font-size:12px;margin:0}.dialog-content h2{font:500 48px/1.05 var(--display);margin:16px 0 22px}.dialog-content #dialog-description{color:var(--copy);font-size:16px;line-height:1.8;margin:0}.dialog-tools-label{font:11px var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--muted);margin:30px 0 10px}.dialog-content .dialog-tags{margin:0 0 30px;gap:8px}.dialog-content .button{margin-top:auto}.dialog-close{position:absolute;right:12px;top:12px;z-index:2;display:grid;place-items:center;width:36px;height:36px;padding:0;border:1px solid var(--line);background:var(--bg);color:var(--ink);font-size:26px;line-height:1;border-radius:50%}
[data-theme="light"] .site-nav{color:var(--ink)}[data-theme="light"] .portrait-frame{background:#dbe1d6;border-color:#afbba8}[data-theme="light"] .portrait-frame img{opacity:1}[data-theme="light"] .robot-motion{background:#f2f3eff2;color:var(--ink);border-color:var(--line)}[data-theme="light"] .site-nav.open{background:var(--bg);border-color:var(--line)}[data-theme="light"] .project-media img{filter:none;opacity:.96}[data-theme="light"] .project-dialog::backdrop{background:#15201599}[data-theme="light"] .project-body .tags span{background:var(--panel)}
@media(prefers-reduced-motion:no-preference){.reveal-pending{opacity:0;transform:translateY(20px)}.revealed{animation:section-arrival .65s cubic-bezier(.2,.7,.2,1) both}.project-card:nth-child(even).revealed{animation-delay:.08s}.section-heading>p.revealed,.about-copy.revealed{animation-delay:.08s}@keyframes section-arrival{from{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.reveal-pending:focus-within{opacity:1;transform:none}
@media(max-width:850px){.site-header{gap:16px}.site-nav{gap:18px}.theme-toggle{padding:8px}.dialog-layout{grid-template-columns:.85fr 1fr}.dialog-content{padding:58px 26px 30px}.dialog-content h2{font-size:40px}.project-body{padding:22px}.project-body h3{font-size:31px}}
@media(max-width:620px){.site-header{height:74px;gap:12px}.theme-toggle{margin-left:auto;min-height:40px}.theme-label{display:none}.theme-icon{font-size:22px}.site-nav{top:64px;gap:12px}.site-nav a{padding-block:8px}.project-body{padding:22px}.project-number{margin-bottom:18px}.project-dialog{width:calc(100% - 24px);max-height:90dvh}.dialog-layout{display:block;min-height:0}.dialog-visual{height:240px;padding:34px 30px;border-right:0;border-bottom:1px solid #354047}.dialog-visual img{height:100%;object-fit:contain}.dialog-file{top:14px;font-size:10px}.dialog-caption{bottom:12px;font-size:9px}.dialog-content{padding:28px 24px 30px}.dialog-content h2{font-size:38px}.dialog-content #dialog-description{font-size:15px}.dialog-close{position:sticky;float:right;top:10px;margin:10px 10px -46px 0;background:var(--bg)}.dialog-tools-label{margin-top:24px}}
[data-theme="light"] .project-media::after{color:#efeee8}[data-theme="light"] .project-open:hover .project-media::after{color:white}
@media(max-width:620px){.dialog-close{position:absolute;float:none;top:10px;right:10px;margin:0}}
@media print{.reveal-pending{opacity:1!important;transform:none!important}.robot-motion,.theme-toggle,.reading-progress,#robot-canvas{display:none!important}.site-header{position:static}}
