:root { color-scheme: light; --paper:#fff; --ink:#050505; --muted:#737373; --line:#dedede; }
:root[data-theme="dark"] { color-scheme: dark; --paper:#050505; --ink:#fff; --muted:#969696; --line:#2b2b2b; }
* { box-sizing:border-box; }
html,body { min-height:100%; }
html { background:var(--paper); }
body { min-width:320px; min-height:100svh; margin:0; overflow-x:hidden; overflow-y:auto; background:var(--paper); color:var(--ink); font-family:"Courier New",Courier,monospace; -webkit-font-smoothing:antialiased; }
a { color:inherit; text-decoration:none; }
a:focus-visible,button:focus-visible { outline:1px solid var(--ink); outline-offset:4px; }
::selection { background:var(--ink); color:var(--paper); }
.site-frame { min-height:100svh; padding:clamp(18px,3.5vw,30px) clamp(18px,4vw,42px) clamp(18px,3vw,24px); display:flex; flex-direction:column; position:relative; }
.site-header { display:flex; align-items:center; justify-content:space-between; position:relative; z-index:3; }
.brand { display:block; width:44px; height:44px; }
.brand img { display:block; width:44px; height:44px; object-fit:contain; transition:filter 260ms ease; }
:root[data-theme="dark"] .brand img { filter:invert(1); }
.menu-toggle,.menu-close { padding:0; border:0; background:transparent; color:var(--ink); font:inherit; cursor:pointer; }
.menu-toggle { font-size:12px; letter-spacing:.08em; text-transform:uppercase; }
.menu-toggle:hover,.menu-close:hover { color:var(--muted); }
.site-menu { position:fixed; inset:0 0 0 auto; width:min(390px,100%); padding:30px 42px; background:var(--paper); border-left:1px solid var(--line); transform:translateX(100%); transition:transform 280ms cubic-bezier(.2,.75,.25,1); z-index:5; display:flex; flex-direction:column; }
.site-menu.open { transform:translateX(0); }
.menu-head { display:flex; align-items:center; justify-content:space-between; color:var(--muted); font-size:11px; letter-spacing:.12em; text-transform:uppercase; }
.menu-close { font-size:11px; letter-spacing:.08em; text-transform:uppercase; }
.site-menu nav { display:flex; flex-direction:column; margin-top:112px; }
.site-menu nav a { width:max-content; padding:8px 0; font-size:clamp(20px,3vw,30px); letter-spacing:-.04em; line-height:1.15; }
.site-menu nav a::before { content:""; display:inline-block; width:0; height:1px; margin-right:0; vertical-align:middle; background:var(--ink); transition:width 180ms ease,margin-right 180ms ease; }
.site-menu nav a:hover::before,.site-menu nav a.active::before { width:22px; margin-right:10px; }
.menu-note { margin-top:auto; color:var(--muted); font-size:12px; }
.menu-scrim { position:fixed; inset:0; z-index:4; background:rgba(0,0,0,.16); opacity:0; pointer-events:none; transition:opacity 280ms ease; }
.menu-scrim.open { opacity:1; pointer-events:auto; }
.page-content { flex:1; position:relative; }
.page-index { margin:0; position:absolute; top:11%; left:0; color:var(--muted); font-size:11px; letter-spacing:.12em; }
.page-index span { margin:0 5px; color:var(--line); }
.home-lockup { position:absolute; left:18%; top:50%; transform:translateY(-50%); }
.kicker,.section-label { margin:0 0 22px; color:var(--muted); font-size:11px; letter-spacing:.16em; text-transform:uppercase; }
h1 { max-width:100%; margin:0; font-size:clamp(11px,calc((100vw - 44px) / 24),26px); font-weight:500; letter-spacing:-.04em; line-height:1.15; white-space:nowrap; }
.lede { margin:24px 0 0; color:var(--muted); font-size:13px; letter-spacing:-.01em; }
.home-footer { position:absolute; left:18%; bottom:9%; display:flex; gap:35px; color:var(--muted); font-size:11px; letter-spacing:.08em; text-transform:uppercase; }
.single-page { padding-bottom:110px; }
.single-page .page-index { position:static; margin-top:clamp(38px,8vh,90px); }
.single-page .home-lockup { position:static; transform:none; margin:clamp(110px,18vh,220px) 0 0 18%; }
.interior-section { display:grid; grid-template-columns:minmax(130px,1fr) minmax(300px,2fr); gap:7%; max-width:980px; margin:clamp(150px,24vh,290px) 0 0 18%; scroll-margin-top:30px; }
.interior-section .section-label { padding-top:11px; }
.single-page .home-footer { position:static; margin:clamp(150px,24vh,290px) 0 0 18%; }
.interior-page { padding-top:10%; }
.interior-grid { display:grid; grid-template-columns:minmax(130px,1fr) minmax(300px,2fr); gap:7%; max-width:980px; margin-left:18%; }
.interior-grid .section-label { padding-top:11px; }
.copy-block { max-width:610px; }
.copy-block h1 { font-size:clamp(11px,calc((100vw - 44px) / 24),26px); }
.copy-block p { max-width:500px; margin:28px 0 0; color:var(--muted); font-size:13px; line-height:1.7; }
.copy-block p + p { margin-top:15px; }
.contact-link { display:inline-block; margin-top:30px; border-bottom:1px solid var(--ink); padding-bottom:5px; font-size:14px; }
.contact-link:hover { color:var(--muted); border-color:var(--muted); }
.theme-toggle { position:fixed; left:42px; bottom:24px; width:34px; height:34px; padding:7px; border:0; border-radius:50%; background:transparent; color:var(--ink); cursor:pointer; z-index:2; }
.theme-toggle:hover { background:transparent; }
.theme-icon { position:absolute; inset:7px; width:20px; height:20px; fill:none; stroke:currentColor; stroke-linecap:round; stroke-linejoin:round; stroke-width:1.7; transition:opacity 260ms ease,transform 360ms ease; }
.theme-icon--moon { opacity:0; transform:rotate(-80deg) scale(.4); }
:root[data-theme="dark"] .theme-icon--sun { opacity:0; transform:rotate(80deg) scale(.4); }
:root[data-theme="dark"] .theme-icon--moon { opacity:1; transform:rotate(0) scale(1); }
.site-footer { position:fixed; right:clamp(18px,4vw,42px); bottom:clamp(22px,3.5vw,31px); display:flex; flex-wrap:wrap; justify-content:flex-end; gap:clamp(10px,2vw,20px); max-width:calc(100% - 74px); color:var(--muted); font-size:clamp(9px,1vw,11px); letter-spacing:.04em; }
.site-footer a:hover { color:var(--ink); }
@media (max-width:700px) { .site-frame { padding:clamp(16px,5vw,22px) clamp(16px,5vw,22px) clamp(18px,5vw,24px); } .site-menu { padding:clamp(18px,5vw,22px); } .brand,.brand img { width:clamp(34px,9vw,38px); height:clamp(34px,9vw,38px); } .page-index { top:8%; } .home-lockup,.home-footer { left:0; } .home-lockup { top:48%; max-width:100%; } h1,.copy-block h1 { font-size:clamp(11px,calc((100vw - 44px) / 24),22px); } .home-footer { bottom:9%; gap:clamp(10px,5vw,20px); font-size:10px; } .interior-page { padding-top:23%; } .interior-grid { display:block; margin-left:0; } .interior-grid .section-label { padding-top:0; margin-bottom:64px; } .copy-block h1 { font-size:clamp(11px,calc((100vw - 44px) / 24),22px); } .copy-block p { font-size:13px; margin-top:24px; } .single-page .page-index { margin-top:38px; } .single-page .home-lockup { margin:110px 0 0; } .interior-section { display:block; margin:150px 0 0; } .interior-section .section-label { padding-top:0; margin-bottom:64px; } .single-page .home-footer { margin:150px 0 40px; } .theme-toggle { left:clamp(16px,5vw,22px); bottom:clamp(18px,5vw,23px); } }
@media (max-height:650px) and (min-width:701px) { .site-frame { padding-top:20px; } .home-lockup { top:47%; } .site-footer { bottom:21px; } }
@media (prefers-reduced-motion:reduce) { *,*::before,*::after { transition-duration:.01ms!important; } }
