@charset "UTF-8";
html { scroll-behavior: smooth; background: var(--bg); }
body {
font-family: var(--font-body);
line-height: 1.6;
color: var(--fg);
background: var(--bg);
background-image: radial-gradient(130% 90% at 50% -10%, var(--bg-2) 0%, var(--bg) 60%);
-webkit-font-smoothing: antialiased;
min-height: 100vh;
overflow-x: clip;
transition: background-color .3s, color .3s;
}
body { font-size: var(--step-0); }
p, li, dd, dt, blockquote, figcaption, address, td, th { font-size: var(--step-0); }
a, span, strong, b, em, i, u, mark, time, label, sub, sup, abbr, cite, q { font-size: inherit; }
small, .small { font-size: var(--step--1); }
h1, h2, h3, h4, h5, h6 { font-family: var(--font-display); font-weight: 600; line-height: 1.12; letter-spacing: .04em; }
h1 { font-size: var(--step-2); }
h2 { font-size: var(--step-2); }
h3 { font-size: var(--step-1); }
h4, h5, h6 { font-size: var(--step-1); }
button, input, textarea, select { font-family: var(--font-body); font-size: var(--step-0); line-height: 1.4; }
.eyebrow {
font-size: var(--step--1);
letter-spacing: .34em;
text-transform: uppercase;
color: var(--label-ink);
font-weight: 600;
}
.wrap { max-width: var(--container); margin: 0 auto; padding: 0 var(--pad-x); }
.section { padding: 78px 0; border-top: 1px solid var(--hair); }
.section .head { display: flex; flex-direction: column; align-items: flex-start; gap: 12px; margin-bottom: 38px; }
a { color: inherit; text-decoration: none; }
a:hover { color: var(--accent-ink); }
.btn {
display: inline-block;
font-weight: 700; letter-spacing: .03em; font-size: 1.1875rem;
padding: 12px 26px;
border: 1.5px solid var(--ember); border-radius: var(--radius);
cursor: pointer;
transition: background .15s, color .15s, box-shadow .15s, border-color .15s;
}
.btn.solid { background: var(--ember); color: #fff; }
.btn.solid:hover { background: var(--ember-deep); color: #fff; box-shadow: 0 0 28px rgba(210,85,42,.45); }
.btn.ghost { background: transparent; color: var(--fg); border-color: var(--line); }
.btn.ghost:hover { border-color: var(--ember); color: var(--accent-ink); }
.torch {
display: inline-block;
-webkit-mask: url(/assets/logo.svg) no-repeat center / contain;
mask: url(/assets/logo.svg) no-repeat center / contain;
background: var(--molten);
filter: drop-shadow(var(--torch-glow));
}
.torch.lg { width: 72px; height: 156px; }
.torch.sm { width: 20px; height: 44px; vertical-align: -8px; }
@keyframes torch-flicker {
0%, 100% { filter: drop-shadow(0 0 3px rgba(210, 85, 42, .40)); }
50%      { filter: drop-shadow(0 0 6px rgba(210, 85, 42, .72)); }
}
.foot {
border-top: 1px solid var(--hair);
padding: 28px 0 40px;
color: var(--muted); font-size: var(--step--1);
}
.foot a:hover { color: var(--accent-ink); }
.foot-nav {
display: flex; flex-wrap: wrap; gap: 12px 22px; align-items: center;
padding-bottom: 20px; margin-bottom: 20px; border-bottom: 1px solid var(--hair);
}
.foot-nav a { color: var(--muted); font-size: var(--step--1); }
.foot-link-btn { background: none; border: 0; cursor: pointer; font-family: var(--font-body); padding: 0; color: var(--muted); font-size: var(--step--1); }
.foot-link-btn:hover { color: var(--accent-ink); }
.foot-base { display: flex; justify-content: space-between; gap: 14px 22px; flex-wrap: wrap; align-items: center; }
.foot-base > span { font-size: var(--step--1); }
.foot-aside { display: flex; gap: 16px; align-items: center; }
.share { background: none; border: 0; cursor: pointer; font-family: var(--font-body); letter-spacing: .03em; padding: 0; color: var(--muted); font-size: var(--step--1); }
.share:hover { color: var(--accent-ink); }
@media (max-width: 600px) {
.foot { text-align: center; }
.foot-nav { justify-content: center; gap: 11px 18px; }
.foot-base { flex-direction: column; align-items: center; gap: 14px; }
.foot-aside { justify-content: center; }
}
@media (pointer: coarse) {
.foot-nav a, .foot-link-btn, .share { display: inline-flex; align-items: center; min-height: 44px; }
}
[hidden] { display: none !important; }
.page-hero { padding: 56px 0 6px; }
.page-hero .eyebrow { margin-bottom: 14px; }
.page-lede { max-width: 54ch; margin: 14px 0 0; color: var(--muted); font-size: var(--step-1); }
.cms-empty { color: var(--muted); font-size: var(--step-1); max-width: 46ch; }
.prose { font-size: var(--step-0); max-width: var(--measure); }
.prose h2 { margin: 40px 0 12px; }
.prose h3 { margin: 28px 0 10px; }
.prose p { margin: 0 0 16px; }
.prose ul, .prose ol { margin: 0 0 16px; padding-left: 1.2em; }
.prose li { margin: 0 0 8px; }
.prose strong { font-weight: 600; }
.prose a { color: var(--accent-ink); text-decoration: underline; text-underline-offset: 3px; }
.prose a:hover { text-decoration-thickness: 2px; }
.legal h2 { font-size: var(--step-1); }
.maxim { text-align: center; padding: 14px 0 6px; }
.maxim .gk {
font-family: var(--font-maxim);             
font-weight: 700; font-size: var(--step-2); letter-spacing: .04em; color: var(--fg); margin: 0;
}
.maxim .tr {
font-family: var(--font-display); font-style: normal; font-size: var(--step-1);
color: var(--accent-ink); margin: 6px 0 0; letter-spacing: .08em;
}
.maxim p { max-width: var(--measure); margin: 22px auto 0; color: var(--muted); font-size: var(--step-0); }
.consent {
position: fixed; z-index: 70; margin: 0;
inset: auto 0 env(safe-area-inset-bottom, 0px) 0;
width: 100%; max-width: 100%; color: var(--fg);
background: var(--bg-2); border: 0; border-top: 1px solid var(--ember); padding: 0;
}
.consent:not([open]) { display: none; }
.consent-in { max-width: var(--container); margin: 0 auto; padding: 18px var(--pad-x); }
.consent-title { font-size: var(--step-1); margin: 0 0 6px; }
.consent-body { color: var(--muted); margin: 0 0 6px; max-width: 70ch; font-size: var(--step--1); }
.consent-learn { margin: 0 0 13px; font-size: var(--step--1); }
.consent-learn a { color: var(--accent-ink); text-decoration: underline; text-underline-offset: 3px; }
.consent-acts { display: flex; gap: 12px; flex-wrap: wrap; }
@media (min-width: 900px) {
.consent {
inset: auto 20px 20px auto; width: min(520px, calc(100vw - 40px));
border: 1px solid var(--ember); border-radius: var(--radius);
}
}
.install {
position: fixed; z-index: 70; margin: 0;
inset: auto 0 env(safe-area-inset-bottom, 0px) 0;
width: 100%; max-width: 100%; color: var(--fg);
background: var(--bg-2); border: 0; border-top: 1px solid var(--ember); padding: 0;
}
.install:not([open]) { display: none; }
.install[open] { animation: install-rise .32s ease-out; }
.install-in {
max-width: var(--container); margin: 0 auto; padding: 15px var(--pad-x);
display: flex; align-items: center; gap: 16px; flex-wrap: wrap;
}
.install-fire { position: relative; flex: 0 0 auto; align-self: stretch; width: 26px; display: flex; align-items: center; justify-content: center; }
.install-fire .torch { width: 18px; height: 40px; }
.install[open] .install-fire .torch { animation: torch-flicker 2.6s ease-in-out infinite; }
.install-copy { flex: 1 1 240px; min-width: 0; }
.install-title { font-size: var(--step-0); margin: 0 0 3px; }
.install-body { color: var(--muted); margin: 0; max-width: 64ch; font-size: var(--step--1); }
.install-manual { color: var(--accent-ink); margin: 4px 0 0; max-width: 64ch; font-size: var(--step--1); }
.install-acts { display: flex; gap: 8px; align-items: center; flex: 0 0 auto; flex-wrap: wrap; }
.install-dismiss {
background: none; border: 0; cursor: pointer; font-family: var(--font-body);
color: var(--muted); font-size: var(--step--1); padding: 8px 6px; letter-spacing: .02em;
}
.install-dismiss:hover { color: var(--accent-ink); }
.install [data-install-manual] { display: none; }
.install[data-mode="manual"] [data-install-manual] { display: block; }
.install[data-mode="manual"] .install-accept { display: none; }
.install .i-embers { position: absolute; inset: 0; overflow: visible; pointer-events: none; }
.install .i-spark {
position: absolute; bottom: 6px; left: 50%; width: 4px; height: 4px; border-radius: 50%;
background: radial-gradient(circle at 50% 50%, var(--gold), var(--ember) 60%, transparent 72%);
box-shadow: 0 0 6px 1px var(--ember); opacity: 0;
animation: i-spark-rise var(--dur, 4s) ease-out var(--delay, 0s) infinite;
}
.install .i-spark:nth-child(1) { --dur: 3.6s; --delay: 0s;    --x: -6px; }
.install .i-spark:nth-child(2) { --dur: 4.4s; --delay: -1.4s; --x: 5px;  width: 3px; height: 3px; }
.install .i-spark:nth-child(3) { --dur: 5s;   --delay: -2.6s; --x: -2px; width: 3px; height: 3px; }
@keyframes i-spark-rise {
0%   { opacity: 0; transform: translate(0, 0) scale(1); }
18%  { opacity: .85; }
100% { opacity: 0; transform: translate(var(--x, 0), -32px) scale(.4); }
}
@keyframes install-rise { from { transform: translateY(14px); opacity: .4; } to { transform: translateY(0); opacity: 1; } }
@media (min-width: 900px) {
.install {
inset: auto auto 20px 20px; width: min(520px, calc(100vw - 40px));
border: 1px solid var(--ember); border-radius: var(--radius); box-shadow: var(--glow-rest);
}
.install-in { padding: 16px 20px 18px; }
}
:focus-visible { outline: 2px solid var(--ember); outline-offset: 3px; }
.skip-link {
position: absolute; left: -9999px; top: 0; z-index: 100;
background: var(--bg-2); color: var(--fg);
padding: 10px 16px; font-size: var(--step--1); border: 1px solid var(--ember);
}
.skip-link:focus { left: 8px; top: 8px; }
.error-page { padding: 96px var(--pad-x) 96px; text-align: center; }
.error-code {
font-family: var(--font-display);
font-size: clamp(5rem, 18vw, 9.5rem);
font-weight: 700; line-height: 1; letter-spacing: .05em;
color: var(--carve-ink);
text-shadow: var(--carve-relief);
}
.error-seam {
width: 84px; height: 2px; margin: 20px auto 34px;
border-radius: 1px;
background: linear-gradient(90deg, transparent, var(--ember) 18%, var(--gold) 50%, var(--ember) 82%, transparent);
box-shadow: var(--torch-glow);
}
.page-title { font-family: var(--font-display); font-size: var(--step-2); margin: 8px 0 16px; }
.error-lede { color: var(--muted); margin: 0 auto 28px; max-width: 46ch; }
.error-alt { font-size: var(--step-0); color: var(--muted); margin-top: 22px; }
.error-alt a { color: var(--accent-ink); text-decoration: underline; text-underline-offset: 3px; }
#main:not(:has(.hero)) { transition: transform .45s cubic-bezier(.22, .61, .28, 1); }
@starting-style {
#main:not(:has(.hero)) { transform: translateY(12px); }
}
@media (prefers-reduced-motion: reduce) {
html { scroll-behavior: auto; }
* { animation: none !important; transition: none !important; }
}
