@font-face { font-family:Geist; font-weight:400; font-style:normal; font-display:fallback; src:url("../assets/fonts/Geist-Regular.woff2") format("woff2"); }
@font-face { font-family:Geist; font-weight:500; font-style:normal; font-display:fallback; src:url("../assets/fonts/Geist-Medium.woff2") format("woff2"); }
@font-face { font-family:"Geist Mono"; font-weight:400; font-style:normal; font-display:fallback; src:url("../assets/fonts/GeistMono-Regular.woff2") format("woff2"); }
@font-face { font-family:Newsreader; font-weight:200 800; font-style:normal; font-display:fallback; src:url("../assets/fonts/Newsreader-opsz.woff2") format("woff2"); }
@font-face { font-family:Newsreader; font-weight:200 800; font-style:italic; font-display:fallback; src:url("../assets/fonts/Newsreader-opsz-italic.woff2") format("woff2"); }

:root {
  --color-bg-page:#FFFFFF; --color-bg-surface:#F2F6FB; --color-bg-note:#FFF6D6; --color-bg-cover-1:#E4EEFA; --color-bg-cover-2:#BDD4EF; --color-border-subtle:#D3E2F4;
  --color-fg-primary:#143A5E; --color-fg-secondary:#47678A; --color-fg-accent:#2B69C8;
  --color-bg-wash:rgba(20,58,94,.09); --color-border-divider:rgba(20,58,94,.16);
  --shader-0:#FFFFFF; --shader-1:#EEF5FF; --shader-2:#A9CDF7; --shader-3:#2F6FD0; --shader-4:#FFFFFF; --shader-5:#EEF5FF; --shader-fold:0.70;
  --glass-tint:38%; --glass-edge:rgba(255,255,255,.70); --glass-edge-low:rgba(20,58,94,.08); --glass-border:rgba(255,255,255,.55); --glass-shadow:rgba(20,58,94,.28); --glass-glint:rgba(255,255,255,.60);
  --mark-ink:#143A5E; --mark-lit:#6FA6EE; --mark-shade:#2B69C8; --mark-deep:#1B4A8F; --mark-spec:#F4F9FF;
  --draft-bg:#FFE58A; --draft-fg:#3A2E00;
  --ease-out:cubic-bezier(0.23, 1, 0.32, 1);
  --margin:clamp(20px, 8.33vw, 120px);
  --page-max:1200px; --gutter:max(var(--margin), (100% - var(--page-max)) / 2);
}
@media (max-width:720px) { :root { --margin:20px; } }
:root[data-theme="dark"] {
  --color-bg-page:#0A1524; --color-bg-surface:#101F35; --color-bg-note:#2E2710; --color-bg-cover-1:#13253F; --color-bg-cover-2:#1B3557; --color-border-subtle:#1E3350;
  --color-fg-primary:#EAF1FA; --color-fg-secondary:#9FB4CE; --color-fg-accent:#8DBBFF;
  --color-bg-wash:rgba(234,241,250,.10); --color-border-divider:rgba(234,241,250,.18);
  --shader-0:#0A1524; --shader-1:#1D4A8C; --shader-2:#0F2442; --shader-3:#060E1B; --shader-4:#A9D0FF; --shader-5:#0D1D35; --shader-fold:0.55;
  --glass-tint:30%; --glass-edge:rgba(255,255,255,.18); --glass-edge-low:rgba(0,0,0,.30); --glass-border:rgba(255,255,255,.14); --glass-shadow:rgba(0,0,0,.55); --glass-glint:rgba(169,208,255,.28);
  --mark-ink:#EAF1FA; --mark-lit:#CFE4FF; --mark-shade:#6FA3E8; --mark-deep:#2A5CA8; --mark-spec:#FFFFFF;
}
* { box-sizing:border-box; margin:0; }
html { color-scheme: light dark; }
body { background:var(--color-bg-page); color:var(--color-fg-primary); font:16px/1.62 Geist, system-ui, sans-serif; -webkit-font-smoothing:antialiased; }
a { color:inherit; text-underline-offset:3px; }
a:focus-visible, button:focus-visible, summary:focus-visible { outline:2px solid var(--color-fg-accent); outline-offset:3px; }
.mono { font:12px/1.33 "Geist Mono", ui-monospace, monospace; letter-spacing:.06em; text-transform:uppercase; }
.link { font-weight:500; font-size:15px; line-height:1.33; text-decoration:underline; text-decoration-thickness:1px; text-decoration-color:color-mix(in srgb, currentColor 35%, transparent); white-space:nowrap; }
.link:hover { color:var(--color-fg-accent); text-decoration-color:currentColor; }

.glass, .tabbar { position:relative; isolation:isolate; border-radius:999px; border:1px solid var(--glass-border);
         background:color-mix(in srgb, var(--color-bg-page) var(--glass-tint), transparent);
         -webkit-backdrop-filter:blur(18px) saturate(180%); backdrop-filter:blur(18px) saturate(180%);
         box-shadow: inset 0 1px 0 var(--glass-edge), inset 0 -1px 0 var(--glass-edge-low), 0 12px 32px -12px var(--glass-shadow); }
.glass::before, .tabbar::before { content:""; position:absolute; inset:0; border-radius:inherit; pointer-events:none; z-index:-1;
         background:radial-gradient(160px 56px at var(--gx, 28%) 0%, var(--glass-glint), transparent 72%); }
@supports not ((backdrop-filter:blur(1px)) or (-webkit-backdrop-filter:blur(1px))) { .glass, .tabbar { background:color-mix(in srgb, var(--color-bg-page) 94%, transparent); } }

.nav { position:fixed; z-index:10; top:20px; left:50%; transform:translateX(-50%); width:min(1200px, calc(100% - 48px)); display:flex; gap:8px; align-items:center; font-weight:500; font-size:15px; }
.tabbar { flex:1; min-width:0; display:flex; align-items:center; justify-content:space-between; gap:24px; padding:6px; white-space:nowrap; }
.tabbar a, .actions a, .mode { display:inline-flex; align-items:center; justify-content:center; min-height:44px; padding:0 16px; border-radius:999px; text-decoration:none; color:inherit; font:inherit; transition:background-color .18s ease; }
.tabbar a:hover, .tabbar a[aria-current="page"], .actions a:hover { background:var(--color-bg-wash); }
.tabbar .links a { color:var(--color-fg-secondary); transition:background-color .18s ease, color .18s ease; }
.tabbar .links a:hover, .tabbar .links a[aria-current="page"] { color:var(--color-fg-primary); }
.tabbar .brand { gap:8px; padding:0 16px 0 8px; }
.tabbar .brand .hx-mark { width:32px; height:32px; flex:none; margin:-3px 0; }
.tabbar .brand .bar { width:1px; height:16px; margin:0 2px; background:var(--color-border-divider); }
.tabbar .brand .place { color:var(--color-fg-secondary); }
.tabbar .links { display:flex; gap:2px; }
.dock { display:contents; }
.actions { flex:none; display:flex; align-items:center; gap:2px; padding:6px; white-space:nowrap; }
.actions a { gap:8px; padding:0 16px 0 13px; }
.actions svg { width:18px; height:18px; flex:none; }
@media (max-width:900px) { .tabbar .brand .bar, .tabbar .brand .place { display:none; } }
.mode { width:58px; height:58px; padding:0; flex:none; cursor:pointer; }
.mode svg { width:20px; height:20px; transition:transform .35s var(--ease-out); } .mode:hover svg { transform:rotate(18deg); }
.mode .moon { display:none; } :root[data-theme="dark"] .mode .moon { display:block; } :root[data-theme="dark"] .mode .sun { display:none; }
@media (max-width:720px) {
  .nav { position:static; transform:none; width:auto; display:contents; }
  .dock { display:flex; gap:8px; position:fixed; z-index:10; left:50%; transform:translateX(-50%); bottom:max(16px, env(safe-area-inset-bottom)); max-width:calc(100vw - 24px); font-size:14px; }
  .tabbar { flex:none; } .tabbar .brand { display:none; } .tabbar .links a { padding:0 14px; }
  .actions a { padding:0 13px; } .actions a[data-contact] span { position:absolute; width:1px; height:1px; overflow:hidden; clip-path:inset(50%); white-space:nowrap; }
  .mode { position:fixed; z-index:10; top:16px; right:16px; width:48px; height:48px; }
}
@media (max-width:340px) { .dock { font-size:13px; } .tabbar .links a { padding:0 10px; } .actions a span { position:absolute; width:1px; height:1px; overflow:hidden; clip-path:inset(50%); white-space:nowrap; } }
@media (prefers-reduced-motion: reduce) { .mode svg { transition:none; } }

.hx-mark { display:inline-block; aspect-ratio:1; line-height:0; }
.hx-mark:empty { background:currentColor; -webkit-mask:url("../assets/logo/hx-mark-ink.svg") center/contain no-repeat; mask:url("../assets/logo/hx-mark-ink.svg") center/contain no-repeat; }
.hx-mark > svg, .hx-mark > canvas { display:block; width:100%; height:100%; overflow:visible; }
@keyframes hx-on { to { opacity:1; } }
.hx-drawing .hx-seg { opacity:0; animation:hx-on 1ms linear both; }
@media (prefers-reduced-motion: reduce) { .hx-drawing .hx-seg { opacity:1; animation:none; } }

.site-foot { margin:0 var(--gutter); padding:96px 0 40px; border-top:1px solid var(--color-border-subtle); display:grid; gap:64px; }
.site-foot .cta { display:flex; justify-content:space-between; align-items:flex-end; gap:48px; }
.site-foot h2 { font:300 clamp(36px, 4.45vw, 64px)/1.04 Newsreader, Georgia, serif; letter-spacing:-.03em; }
.site-foot ul { list-style:none; padding:0; display:grid; gap:12px; flex:none; }
.site-foot .fine { display:flex; justify-content:space-between; gap:16px; color:var(--color-fg-secondary); }
@media (max-width:720px) { .site-foot { padding:64px 0 104px; gap:48px; } .site-foot .cta { flex-direction:column; align-items:flex-start; gap:32px; } .site-foot .fine { flex-direction:column; } }

.site-foot .cta.has-fold { align-items:flex-end; min-width:0; }
.cta.has-fold .say { flex:1 1 0; min-width:0; container-type:inline-size; }
.cta.has-fold h2 { font-size:clamp(36px, 3.4vw, 52px); font-size:clamp(36px, min(4.45vw, 10.9cqw), 64px); }
.cta.has-fold .fold-slot { flex:none; width:512px; }
@media (max-width:1079px) {
  .site-foot .cta.has-fold { flex-direction:column; align-items:stretch; gap:40px; }
  .cta.has-fold h2 { font-size:clamp(36px, 4.45vw, 64px); }
  .cta.has-fold .fold-slot { width:100%; }
}

.toast { position:fixed; z-index:20; left:50%; bottom:32px; transform:translate(-50%, 12px); opacity:0; pointer-events:none; max-width:calc(100vw - 32px);
         padding:12px 18px; border-radius:14px; font-size:14px; line-height:1.4; color:var(--color-bg-page); background:var(--color-fg-primary); box-shadow:0 16px 40px -16px var(--glass-shadow);
         transition:opacity .2s ease, transform .25s var(--ease-out); }
.toast[data-show] { opacity:1; transform:translate(-50%, 0); }
.toast b { font-weight:500; }
@media (max-width:720px) { .toast { bottom:88px; } }
@media (prefers-reduced-motion: reduce) { .toast { transition:opacity .2s ease; transform:translate(-50%, 0); } }

[data-slots="show"] .draft { background:var(--draft-bg); color:var(--draft-fg); border-radius:3px; box-shadow:0 0 0 3px var(--draft-bg); -webkit-box-decoration-break:clone; box-decoration-break:clone; }
[data-slots="show"] .draft::before { content:"DRAFT · to confirm"; display:inline-block; white-space:nowrap; font:600 10px/1 "Geist Mono", ui-monospace, monospace; letter-spacing:.06em; color:#fff; background:#B45309; padding:3px 6px; border-radius:3px; margin-right:6px; vertical-align:2px; }
[data-slots="show"] .draft[data-tag]::before { content:attr(data-tag); }
html:not([data-slots]) [data-draft-only] { display:none; }

.pt-out body > :not(.nav):not(.cursor-moon):not(.toast):not(.skip):not(.sb) { opacity:0; transform:translateY(-7vh); transition:opacity .15s ease-in, transform .19s cubic-bezier(.5, 0, .8, .2); pointer-events:none; }
.pt-in body > :not(.nav):not(.cursor-moon):not(.toast):not(.skip):not(.sb) { animation:pt-in .5s var(--ease-out) both; }
@keyframes pt-in { from { opacity:0; transform:translateY(11vh); } }
.pt-hold body > :not(.nav):not(.cursor-moon):not(.toast):not(.skip):not(.sb) { animation:pt-hold 1.2s step-end both; }
@keyframes pt-hold { from { opacity:0; } }
@media (prefers-reduced-motion: reduce) { .pt-in body > *, .pt-hold body > * { animation:none !important; } .pt-out body > * { opacity:1 !important; transform:none !important; transition:none !important; } }

:root { --moon:#FFF15C; --moon-ink:#3A2E00; --moon-edge:drop-shadow(0 1px 3px rgba(122,96,0,.32)); }
:root[data-theme="dark"] { --moon-edge:drop-shadow(0 0 10px rgba(255,241,92,.30)); }
.cursor-moon { position:fixed; z-index:40; left:0; top:0; width:0; height:0; pointer-events:none; opacity:0; transition:opacity .25s ease; filter:var(--moon-edge); will-change:transform; }
.cursor-moon.is-on { opacity:1; }
.cursor-moon-disc { position:absolute; left:-44px; top:-44px; width:88px; height:88px; transform:translate(var(--ox, 15px), var(--oy, 15px)) scale(var(--s, .16)); transition:transform .45s var(--ease-out); }
.cursor-moon-disc svg { display:block; width:100%; height:100%; overflow:visible; }
.cursor-moon-cut { transition:transform .5s var(--ease-out); } .cursor-moon.is-full .cursor-moon-cut { transform:translateX(-11.5px); }
.cursor-moon-label { position:absolute; inset:0; display:grid; place-items:center; padding:12px; text-align:center; font:500 11px/1.3 Geist, system-ui, sans-serif; letter-spacing:.06em; text-transform:uppercase; color:var(--moon-ink); opacity:0; transition:opacity .12s ease; }
.cursor-moon.is-link { --s:.23; } .cursor-moon.is-label { --s:1; --ox:0px; --oy:0px; } .cursor-moon.is-label .cursor-moon-label { opacity:1; transition:opacity .25s ease .12s; }
.cursor-moon.is-grab, .cursor-moon.is-grab.is-down { --s:.4; --ox:0px; --oy:0px; } .cursor-moon.is-grab .cursor-moon-cut { transform:translateX(-11.5px); }
.cursor-moon.is-down { --s:.135; } .cursor-moon.is-link.is-down { --s:.195; } .cursor-moon.is-label.is-down { --s:.93; } .cursor-moon.is-down .cursor-moon-disc { transition-duration:.14s; }
.has-moon [data-cursor]:not([data-cursor=""]), .has-moon [data-cursor]:not([data-cursor=""]) * { cursor:none; }
@media (prefers-reduced-motion: reduce) { .cursor-moon { display:none; } }

.theme-wipe::view-transition-old(root), .theme-wipe::view-transition-new(root) { animation:none; mix-blend-mode:normal; }
.theme-wipe::view-transition-old(root) { z-index:0; } .theme-wipe::view-transition-new(root) { z-index:1; }

.sb { display:none; }
@media (hover:hover) and (pointer:fine) and (forced-colors:none) {
  html { scrollbar-width:none; } html::-webkit-scrollbar { display:none; }
  .sb { display:block; position:fixed; z-index:30; top:0; right:0; bottom:0; width:14px; pointer-events:none; opacity:0; transition:opacity .3s ease; }
  .sb.is-on { opacity:1; }
  .sb-thumb { position:absolute; top:0; right:0; width:14px; pointer-events:auto; touch-action:none; cursor:default; }
  .sb-thumb::before { content:""; position:absolute; top:3px; bottom:3px; right:3px; width:6px; border-radius:99px; background:color-mix(in srgb, var(--color-fg-primary) 26%, transparent); transition:background-color .18s ease, width .18s ease; }
  .sb-thumb:hover::before, .sb.is-drag .sb-thumb::before { width:8px; background:color-mix(in srgb, var(--color-fg-primary) 48%, transparent); }
}
@media print { .sb { display:none !important; } }
