.error-page main,.legal-page main{min-height:58vh}
.error-shell{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(330px,.9fr);gap:clamp(28px,6vw,84px);align-items:center;padding-top:clamp(42px,8vw,92px);padding-bottom:clamp(58px,9vw,110px)}
.error-copy{min-width:0}.error-code{margin:14px 0 -13px;color:var(--bg-subtle);font:700 clamp(86px,18vw,210px)/.78 var(--cond);letter-spacing:-.08em;user-select:none}.error-copy h1{position:relative;margin-top:0;max-width:12ch}.status-dot{display:inline-block;width:7px;height:7px;margin-right:7px;background:var(--red);border-radius:50%}.server-error .status-dot{background:var(--amber)}
.error-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:30px}.primary-action,.secondary-action{min-height:44px;display:inline-flex;align-items:center;justify-content:center;gap:10px;padding:11px 15px;text-decoration:none;font:600 11px var(--mono);cursor:pointer}.primary-action{border:1px solid var(--color-primary);background:var(--color-primary);color:var(--on-primary)}.secondary-action{border:1px solid var(--line);background:var(--panel);color:var(--text)}.primary-action:hover,.secondary-action:hover{border-color:var(--color-accent);filter:brightness(1.08)}.primary-action:focus-visible,.secondary-action:focus-visible,.route-links a:focus-visible,.legal-index a:focus-visible{outline:3px solid var(--color-accent);outline-offset:3px}
.signal-panel{border:1px solid var(--line);background:var(--panel);padding:clamp(18px,3vw,28px);box-shadow:inset 0 3px 0 var(--color-primary)}.signal-head{display:grid;grid-template-columns:auto 1fr auto;gap:12px;color:var(--dim);font:10px var(--mono);letter-spacing:.08em}.signal-head strong{color:var(--red)}.server-error .signal-head strong{color:var(--amber)}.signal-scope{position:relative;height:128px;margin:22px 0;border-top:1px solid var(--soft);border-bottom:1px solid var(--soft);overflow:hidden;background:repeating-linear-gradient(90deg,transparent 0,transparent 39px,var(--soft) 40px),repeating-linear-gradient(0deg,transparent 0,transparent 31px,var(--soft) 32px)}.signal-scope span{position:absolute;bottom:16px;width:5px;background:var(--color-primary);transform-origin:bottom;animation:signal-in .55s cubic-bezier(.2,.8,.2,1) both}.signal-scope span:nth-child(1){left:18%;height:28px}.signal-scope span:nth-child(2){left:50%;height:63px;animation-delay:.06s}.signal-scope span:nth-child(3){right:18%;height:18px;animation-delay:.12s}.signal-scope i{position:absolute;left:0;right:0;top:50%;border-top:1px dashed var(--faint)}.signal-scope.interrupted span:nth-child(2){height:17px;background:var(--red)}
.error-diagnostics{display:grid;grid-template-columns:repeat(3,1fr);margin:0;border:1px solid var(--soft)}.error-diagnostics div{padding:12px;border-right:1px solid var(--soft)}.error-diagnostics div:last-child{border-right:0}.error-diagnostics dt{color:var(--faint);font:9px var(--mono);text-transform:uppercase}.error-diagnostics dd{margin:4px 0 0;color:var(--text);font:600 11px var(--mono)}.signal-panel>p{margin:22px 0 10px;color:var(--dim);font-size:13px}.route-links{display:flex;gap:8px;flex-wrap:wrap}.route-links a{padding:6px 0;color:var(--accent-text);font:11px var(--mono);text-underline-offset:4px}
.legal-hero{padding-top:clamp(44px,7vw,80px);padding-bottom:26px;border-bottom:1px solid var(--soft)}.legal-hero h1{max-width:16ch}.legal-meta{display:flex;gap:9px;flex-wrap:wrap;margin-top:22px}.legal-meta span{padding:5px 8px;border:1px solid var(--soft);color:var(--dim);font:10px var(--mono)}.legal-layout{display:grid;grid-template-columns:230px minmax(0,760px);gap:clamp(30px,7vw,86px);align-items:start;padding-top:34px;padding-bottom:84px}.legal-index{position:sticky;top:96px;border-top:3px solid var(--color-primary);background:var(--panel);padding:18px}.legal-index strong{display:block;margin-bottom:12px;font:600 12px var(--mono);text-transform:uppercase;letter-spacing:.08em}.legal-index a{display:block;padding:7px 0;color:var(--dim);font-size:13px;text-decoration:none;border-bottom:1px solid var(--soft)}.legal-index a:hover{color:var(--accent-text)}.legal-content{min-width:0}.legal-summary{margin-bottom:32px;padding:20px;border-left:3px solid var(--color-accent);background:var(--panel);color:var(--text)}.legal-section{padding:0 0 28px;margin:0 0 28px;border-bottom:1px solid var(--soft);scroll-margin-top:92px}.legal-section h2{margin:0 0 12px;font:600 clamp(21px,3vw,27px) var(--cond)}.legal-section h3{margin:20px 0 7px;font:600 16px var(--cond)}.legal-section p,.legal-section li{color:var(--dim)}.legal-section ul{padding-left:20px}.legal-section li+li{margin-top:8px}.legal-section a{color:var(--accent-text);text-underline-offset:3px}.legal-table{display:grid;grid-template-columns:minmax(130px,.34fr) 1fr;border:1px solid var(--soft)}.legal-table dt,.legal-table dd{margin:0;padding:12px;border-bottom:1px solid var(--soft)}.legal-table dt{font:600 11px var(--mono);color:var(--text);background:var(--panel2)}.legal-table dd{color:var(--dim)}.legal-table>*:nth-last-child(-n+2){border-bottom:0}.legal-contact{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:18px;border:1px solid var(--line);background:var(--panel)}.legal-contact a{white-space:nowrap}.legal-note{font-size:12px;color:var(--faint)}
@keyframes signal-in{from{transform:scaleY(0);opacity:0}to{transform:scaleY(1);opacity:1}}
@media(max-width:820px){.error-shell,.legal-layout{grid-template-columns:1fr}.signal-panel{max-width:620px}.legal-index{position:static;display:grid;grid-template-columns:repeat(2,1fr);gap:0 18px}.legal-index strong{grid-column:1/-1}.legal-hero{padding-top:38px}.legal-layout{padding-top:24px}}
@media(max-width:520px){.error-shell{padding-top:36px}.error-code{font-size:104px}.error-diagnostics{grid-template-columns:1fr}.error-diagnostics div{border-right:0;border-bottom:1px solid var(--soft)}.error-diagnostics div:last-child{border-bottom:0}.legal-index{grid-template-columns:1fr}.legal-table{grid-template-columns:1fr}.legal-table dt{border-bottom:0}.legal-table dd{padding-top:4px}.legal-table>*:nth-last-child(2){border-bottom:0}.legal-contact{align-items:flex-start;flex-direction:column}}
@media(prefers-reduced-motion:reduce){.signal-scope span{animation:none}}
