/* paperwork.css — shared styles for the rental paperwork hub (/rental-paperwork)
   and the focused setup wizard (/rental-account).

   Extracted so the two pages stay lean and can't drift apart visually. Tokens
   mirror the storm theme the rest of the site uses; the build injects
   storm-theme.css over the top, which supplies the video background. */

*,*::before,*::after { box-sizing:border-box; margin:0; padding:0; }
  :root{
    --bg:#04060c; --bg-pure:#000; --panel:#0e141c; --panel-2:#121a24; --line:#1f2a38; --line-bright:#33485f;
    --text:#f4f8ff; --muted:#9fb4ce; --dim:#6b7681; --yellow:#9fc4ee; --gold:#f4c24a;
    --ok:#7fd6a0; --bad:#ff8b8b;
  }
  html{ scroll-behavior:smooth; }
  body{ background:var(--bg); color:var(--text); font-family:'Inter',system-ui,sans-serif; line-height:1.55; overflow-x:hidden; }
  a{ color:inherit; text-decoration:none; }

  /* NAV */
  .nav{ position:sticky; top:0; z-index:50; display:flex; align-items:center; justify-content:space-between;
    padding:0.85rem clamp(1.2rem,4vw,3rem); background:rgba(6,8,11,0.9); backdrop-filter:blur(10px); border-bottom:1px solid var(--line); }
  .nav .brand{ font-family:'Saira Condensed',sans-serif; font-weight:700; font-style:italic; text-transform:uppercase; font-size:1.35rem; letter-spacing:0.06em; }
  .nav .links { display:flex; align-items:center; gap:1.25rem; flex-wrap:nowrap; }
  .nav .links a { font-size:0.78rem; letter-spacing:0.04em; text-transform:uppercase; color:#c7d0da; transition:color 0.2s; white-space:nowrap; }
  .nav .links a:hover{ color:#fff; }
  .nav .links a.current{ color:var(--yellow); }
  @media (max-width: 960px){ .nav .links a:not(.cart-trigger){ display:none; } }
  .cart-trigger{ display:inline-flex; align-items:center; gap:0.55rem; background:var(--panel); border:1px solid var(--line);
    padding:0.5rem 0.9rem; font-family:'Saira Condensed',sans-serif; font-size:0.85rem; text-transform:uppercase; letter-spacing:0.1em; color:var(--text); transition:border-color 0.15s,color 0.15s; }
  .cart-trigger:hover{ border-color:var(--yellow); color:var(--yellow); }
  .cart-trigger .count{ background:var(--yellow); color:#0a0a0a; padding:0.1rem 0.5rem; font-size:0.8rem; min-width:1.5rem; text-align:center; }
  .cart-trigger .count.zero{ background:var(--line); color:var(--muted); }

  /* HERO */
  .rhero{ position:relative; overflow:hidden; border-bottom:1px solid var(--line); isolation:isolate; }
  /* NB: url()s here resolve against this file's location (assets/), not the page —
     hence the ../ prefixes. They were page-relative while this CSS was inline. */
  .rhero .bg{ position:absolute; inset:0; z-index:0; background:url("../assets/hero-plate-lit.webp") center 40%/cover no-repeat; filter:saturate(0.7) brightness(0.4); }
  .rhero::after{ content:""; position:absolute; inset:0; z-index:1; pointer-events:none;
    background:linear-gradient(180deg, rgba(5,6,8,0.45) 0%, rgba(5,6,8,0.8) 70%, var(--bg) 100%); }
  .rhero .inner{ position:relative; z-index:2; padding:clamp(3rem,7vw,5rem) clamp(1.2rem,4vw,3rem) clamp(2.2rem,4vw,3rem); max-width:1200px; margin:0 auto; }
  .breadcrumb{ font-family:'JetBrains Mono',monospace; font-size:0.7rem; letter-spacing:0.2em; text-transform:uppercase; color:var(--muted); margin-bottom:1.1rem; }
  .breadcrumb a:hover{ color:var(--yellow); }
  .breadcrumb .sep{ color:var(--line-bright); margin:0 0.5rem; }
  .rhero h1{ font-family:'Saira Condensed',sans-serif; font-weight:700; font-style:italic; font-size:clamp(2.4rem,6.5vw,4.5rem); line-height:0.9; text-transform:uppercase; max-width:15ch; }
  .rhero h1 .y{ color:var(--yellow); }
  .rhero .lede{ margin-top:1.2rem; font-size:1.02rem; line-height:1.6; color:#cdd6df; max-width:62ch; }

  main{ max-width:1200px; margin:0 auto; padding:clamp(2.2rem,4vw,3.4rem) clamp(1.2rem,4vw,3rem) clamp(3rem,6vw,5rem); }
  .eyebrow{ font-family:'JetBrains Mono',monospace; font-size:0.72rem; letter-spacing:0.3em; text-transform:uppercase; color:var(--yellow); margin-bottom:0.9rem; }
  h2.sec{ font-family:'Saira Condensed',sans-serif; font-weight:700; font-size:clamp(1.6rem,3vw,2.1rem); text-transform:uppercase; margin-bottom:1.2rem; }
  h2.sec .y{ color:var(--yellow); }
  .section{ margin-bottom:clamp(3rem,6vw,4.5rem); scroll-margin-top:80px; }
  p.body{ color:var(--muted); max-width:66ch; }

  /* HOW IT WORKS */
  .steps{ display:grid; grid-template-columns:repeat(5,1fr); gap:1rem; counter-reset:s; }
  @media (max-width:980px){ .steps{ grid-template-columns:repeat(2,1fr); } }
  @media (max-width:520px){ .steps{ grid-template-columns:1fr; } }
  .step{ background:var(--panel); border:1px solid var(--line); border-radius:8px; padding:1.2rem 1.1rem 1.3rem; position:relative; }
  .step .n{ font-family:'JetBrains Mono',monospace; font-size:0.7rem; letter-spacing:0.18em; color:var(--yellow); display:block; margin-bottom:0.6rem; }
  .step h3{ font-family:'Saira Condensed',sans-serif; font-weight:700; font-size:1.05rem; text-transform:uppercase; letter-spacing:0.02em; margin-bottom:0.4rem; }
  .step p{ color:var(--muted); font-size:0.86rem; line-height:1.5; }

  /* WIZARD */
  .wiz{ background:var(--panel); border:1px solid var(--line); border-radius:10px; overflow:hidden; }
  .wiz-rail{ display:flex; gap:0; border-bottom:1px solid var(--line); background:#0a0f16; overflow-x:auto; scrollbar-width:none; }
  .wiz-rail::-webkit-scrollbar{ display:none; }
  .wiz-rail button{ flex:1 0 auto; min-width:112px; background:transparent; border:none; border-bottom:2px solid transparent; cursor:pointer;
    color:var(--dim); font-family:'JetBrains Mono',monospace; font-size:0.64rem; letter-spacing:0.14em; text-transform:uppercase;
    padding:0.9rem 0.6rem; transition:color .15s,border-color .15s; white-space:nowrap; }
  .wiz-rail button .dot{ display:inline-block; width:16px; height:16px; line-height:16px; border-radius:50%; background:var(--line); color:var(--muted);
    font-size:0.6rem; margin-right:0.4rem; text-align:center; }
  .wiz-rail button[aria-current="true"]{ color:var(--text); border-bottom-color:var(--yellow); }
  .wiz-rail button[aria-current="true"] .dot{ background:var(--yellow); color:#04060c; }
  .wiz-rail button.done .dot{ background:var(--ok); color:#04060c; }
  .wiz-rail button:disabled{ opacity:0.45; cursor:not-allowed; }

  /* Narrow screens: four labelled steps don't fit, and a rail you have to scroll
     sideways defeats its own purpose — you can't see how far the process runs.
     Collapse to numbered dots and label only the step you're on, so the whole
     journey stays on screen and the current position is still named. */
  @media (max-width: 640px){
    .wiz-rail{ overflow-x:visible; }
    .wiz-rail button{ flex:0 1 auto; min-width:0; padding:0.9rem 0.5rem; }
    .wiz-rail button .lbl{ display:none; }
    .wiz-rail button[aria-current="true"]{ flex:1 1 auto; }
    .wiz-rail button[aria-current="true"] .lbl{ display:inline; }
    .wiz-rail button .dot{ margin-right:0; }
    .wiz-rail button[aria-current="true"] .dot{ margin-right:0.45rem; }
  }
  .wiz-body{ padding:clamp(1.4rem,3.5vw,2.4rem); }
  .panel{ display:none; }
  .panel.active{ display:block; animation:fade .25s ease; }
  @keyframes fade{ from{ opacity:0; transform:translateY(4px);} to{ opacity:1; transform:none;} }
  .panel .ph{ font-family:'Saira Condensed',sans-serif; font-weight:700; font-size:1.5rem; text-transform:uppercase; margin-bottom:0.4rem; }
  .panel .psub{ color:var(--muted); font-size:0.92rem; margin-bottom:1.6rem; max-width:64ch; }

  .field{ margin-bottom:1.05rem; }
  .field label{ display:block; font-family:'JetBrains Mono',monospace; font-size:0.66rem; letter-spacing:0.16em; text-transform:uppercase; color:var(--muted); margin-bottom:0.45rem; }
  .field .req{ color:var(--yellow); }
  .field input, .field select, .field textarea{ width:100%; background:#0a0d11; border:1px solid var(--line); color:var(--text);
    font-family:'Inter',sans-serif; font-size:0.95rem; padding:0.8rem 0.9rem; border-radius:4px; }
  .field textarea{ min-height:90px; resize:vertical; }
  .field input:focus, .field select:focus, .field textarea:focus{ outline:none; border-color:var(--yellow); }
  .field input[aria-invalid="true"], .field select[aria-invalid="true"]{ border-color:var(--bad); }
  .field .fe{ color:var(--bad); font-size:0.76rem; margin-top:0.35rem; display:none; }
  .field input[aria-invalid="true"] ~ .fe, .field select[aria-invalid="true"] ~ .fe{ display:block; }
  .field .hint{ color:var(--dim); font-size:0.76rem; margin-top:0.35rem; }
  .grid2{ display:grid; grid-template-columns:1fr 1fr; gap:1rem; }
  .grid3{ display:grid; grid-template-columns:2fr 1fr 1fr; gap:1rem; }
  @media (max-width:620px){ .grid2,.grid3{ grid-template-columns:1fr; } }
  fieldset{ border:none; margin-bottom:1.6rem; }
  fieldset legend{ font-family:'Saira Condensed',sans-serif; font-weight:700; font-size:1rem; text-transform:uppercase; letter-spacing:0.06em;
    color:var(--yellow); margin-bottom:0.9rem; padding-bottom:0.5rem; border-bottom:1px solid var(--line); width:100%; }

  .wiz-nav{ display:flex; justify-content:space-between; gap:1rem; margin-top:1.8rem; padding-top:1.4rem; border-top:1px solid var(--line); }
  .btn{ cursor:pointer; font-family:'Saira Condensed',sans-serif; font-weight:700; font-size:0.95rem; letter-spacing:0.12em; text-transform:uppercase;
    padding:0.85rem 1.5rem; border-radius:4px; border:1px solid var(--line); background:transparent; color:var(--text); transition:border-color .15s,color .15s,filter .15s; }
  .btn:hover:not(:disabled){ border-color:var(--yellow); color:var(--yellow); }
  .btn.primary{ border:none; background:linear-gradient(180deg,#ffffff,#cdddf0 45%,#9fb4ce 55%,#eaf2fb); color:#0a0f16;
    box-shadow:0 0 18px rgba(150,190,255,.25), inset 0 1px 0 rgba(255,255,255,.85); }
  .btn.primary:hover:not(:disabled){ filter:brightness(1.05); color:#0a0f16; }
  .btn:disabled{ opacity:0.45; cursor:not-allowed; }
  .btn.gold{ border-color:color-mix(in srgb,var(--gold) 50%,var(--line)); color:var(--gold); }
  .btn.gold:hover:not(:disabled){ background:var(--gold); color:#04060c; border-color:var(--gold); }

  /* AGREEMENT READER */
  /* min-height is the floor that matters: if vh resolves to 0 (some embedded
     webviews report a zero-height viewport) a pure min(52vh,…) collapses the
     reader to a few pixels, which both looks broken and makes the read-through
     gate satisfiable in one flick. min-height wins over max-height in CSS. */
  .doc-scroll{ height:460px; max-height:52vh; min-height:300px; overflow-y:auto; background:#080b10; border:1px solid var(--line); border-radius:6px;
    padding:1.4rem clamp(1rem,2.5vw,1.8rem); font-size:0.88rem; line-height:1.65; color:#c8d3e0; }
  .doc-scroll h3{ font-family:'Saira Condensed',sans-serif; font-weight:700; font-size:0.95rem; letter-spacing:0.05em; text-transform:uppercase;
    color:var(--text); margin:1.5rem 0 0.5rem; }
  .doc-scroll h3:first-child{ margin-top:0; }
  .doc-scroll p{ margin-bottom:0.9rem; }
  .mergefield{ background:color-mix(in srgb,var(--gold) 22%,transparent); border-bottom:1px solid var(--gold);
    color:var(--gold); padding:0 0.25rem; font-weight:600; font-style:normal; }
  .mergefield.empty{ color:var(--dim); background:transparent; border-bottom:1px dashed var(--line-bright); }
  .scroll-gate{ display:flex; align-items:center; gap:0.6rem; margin-top:0.8rem; font-family:'JetBrains Mono',monospace;
    font-size:0.7rem; letter-spacing:0.1em; text-transform:uppercase; color:var(--dim); }
  .scroll-gate.met{ color:var(--ok); }

  /* SIGNATURE */
  .sig-modes{ display:flex; gap:0.5rem; margin-bottom:0.9rem; }
  .sig-modes button{ flex:1; cursor:pointer; background:#0a0d11; border:1px solid var(--line); color:var(--muted); border-radius:4px;
    font-family:'JetBrains Mono',monospace; font-size:0.66rem; letter-spacing:0.14em; text-transform:uppercase; padding:0.7rem 0.5rem; transition:.15s; }
  .sig-modes button[aria-pressed="true"]{ border-color:var(--yellow); color:var(--yellow); background:#0d141d; }
  .sig-pad{ position:relative; background:#fbfcfe; border:1px solid var(--line); border-radius:6px; height:150px; touch-action:none; overflow:hidden; }
  .sig-pad canvas{ width:100%; height:100%; display:block; cursor:crosshair; }
  .sig-pad .baseline{ position:absolute; left:6%; right:6%; bottom:34px; border-bottom:1px solid #c3ccd8; pointer-events:none; }
  .sig-pad .ph{ position:absolute; left:6%; bottom:40px; color:#aab4c2; font-size:0.8rem; pointer-events:none;
    font-family:'JetBrains Mono',monospace; letter-spacing:0.1em; text-transform:uppercase; }
  .sig-pad.has-ink .ph{ display:none; }
  .sig-typed{ display:none; }
  .sig-typed.active{ display:block; }
  .sig-preview{ background:#fbfcfe; border:1px solid var(--line); border-radius:6px; height:110px; display:flex; align-items:center;
    padding:0 1.4rem; font-family:'Dancing Script',cursive; font-size:2.6rem; color:#0c1a3a; overflow:hidden; white-space:nowrap; }
  .sig-actions{ display:flex; justify-content:space-between; align-items:center; margin-top:0.6rem; }
  .sig-actions .clear{ background:none; border:none; color:var(--dim); cursor:pointer; font-family:'JetBrains Mono',monospace;
    font-size:0.66rem; letter-spacing:0.12em; text-transform:uppercase; }
  .sig-actions .clear:hover{ color:var(--bad); }
  .initials-row{ display:grid; grid-template-columns:auto 1fr; gap:1rem; align-items:center; margin-top:1.2rem;
    background:#0a0d11; border:1px solid var(--line); border-radius:6px; padding:1rem 1.1rem; }
  .initials-box{ width:96px; height:52px; background:#fbfcfe; border:1px solid var(--line); border-radius:4px;
    display:flex; align-items:center; justify-content:center; font-family:'Dancing Script',cursive; font-size:1.5rem; color:#0c1a3a; }
  .initials-row .txt{ font-size:0.84rem; color:var(--muted); }

  /* Explicit either/or. Used where the honest answer is often "not yet" and an
     optional-looking field would read as a blocker (the COI upload). */
  .choice{ display:grid; gap:0.6rem; margin-bottom:1.1rem; }
  .choice .opt{ display:flex; gap:0.75rem; align-items:flex-start; background:#0a0d11;
    border:1px solid var(--line); border-radius:6px; padding:0.9rem 1rem; cursor:pointer;
    transition:border-color .15s, background .15s; }
  .choice .opt:hover{ border-color:var(--line-bright); }
  .choice .opt input{ margin-top:0.25rem; accent-color:var(--yellow); width:16px; height:16px; flex:none; cursor:pointer; }
  .choice .opt strong{ display:block; font-size:0.92rem; font-weight:600; color:var(--text); }
  .choice .opt em{ display:block; font-style:normal; font-size:0.82rem; color:var(--muted);
    margin-top:0.2rem; line-height:1.5; }
  .choice .opt.sel{ border-color:color-mix(in srgb,var(--yellow) 45%,var(--line)); background:#0d141d; }

  .consent{ display:flex; gap:0.75rem; align-items:flex-start; background:#0a0d11; border:1px solid var(--line);
    border-radius:6px; padding:1rem 1.1rem; margin-top:1.2rem; }
  .consent input{ margin-top:0.25rem; accent-color:var(--yellow); flex:none; width:16px; height:16px; cursor:pointer; }
  .consent label{ font-size:0.85rem; color:var(--muted); line-height:1.55; cursor:pointer; }
  .consent.checked{ border-color:color-mix(in srgb,var(--ok) 45%,var(--line)); }

  /* CALLOUTS */
  .callout{ border-left:2px solid var(--yellow); background:#0a0f16; padding:1rem 1.2rem; border-radius:0 6px 6px 0; margin:1.2rem 0; }
  .callout.gold{ border-left-color:var(--gold); }
  .callout h3{ font-family:'Saira Condensed',sans-serif; font-weight:700; font-size:0.95rem; text-transform:uppercase; letter-spacing:0.04em; margin-bottom:0.4rem; }
  .callout p{ font-size:0.86rem; color:var(--muted); line-height:1.55; }
  .callout p + p{ margin-top:0.6rem; }

  /* COPY BLOCK */
  .copyblock{ background:#080b10; border:1px solid var(--line); border-radius:6px; padding:1rem 1.1rem; position:relative; margin:0.8rem 0 0; }
  .copyblock pre{ font-family:'JetBrains Mono',monospace; font-size:0.78rem; line-height:1.6; color:#c8d3e0; white-space:pre-wrap; word-break:break-word; }
  .copybtn{ position:absolute; top:0.7rem; right:0.7rem; background:var(--panel-2); border:1px solid var(--line); color:var(--muted);
    cursor:pointer; border-radius:4px; font-family:'JetBrains Mono',monospace; font-size:0.62rem; letter-spacing:0.12em;
    text-transform:uppercase; padding:0.4rem 0.7rem; transition:.15s; }
  .copybtn:hover{ border-color:var(--yellow); color:var(--yellow); }
  .copybtn.ok{ border-color:var(--ok); color:var(--ok); }

  /* DOC LIBRARY */
  .docs{ display:grid; grid-template-columns:repeat(auto-fit,minmax(268px,1fr)); gap:1rem; }
  .doc{ background:var(--panel); border:1px solid var(--line); border-radius:8px; padding:1.3rem 1.3rem 1.4rem; display:flex; flex-direction:column; }
  .doc .tag{ font-family:'JetBrains Mono',monospace; font-size:0.6rem; letter-spacing:0.16em; text-transform:uppercase;
    color:var(--dim); border:1px solid var(--line); border-radius:3px; padding:0.2rem 0.45rem; align-self:flex-start; margin-bottom:0.8rem; }
  .doc .tag.req{ color:var(--yellow); border-color:color-mix(in srgb,var(--yellow) 40%,var(--line)); }
  .doc .tag.cond{ color:var(--gold); border-color:color-mix(in srgb,var(--gold) 40%,var(--line)); }
  .doc h3{ font-family:'Saira Condensed',sans-serif; font-weight:700; font-size:1.1rem; text-transform:uppercase; letter-spacing:0.02em; margin-bottom:0.5rem; }
  .doc p{ color:var(--muted); font-size:0.85rem; line-height:1.55; flex:1; }
  .doc .dl{ display:inline-flex; align-items:center; gap:0.5rem; margin-top:1.1rem; font-family:'Saira Condensed',sans-serif; font-weight:700;
    font-size:0.85rem; letter-spacing:0.1em; text-transform:uppercase; color:var(--yellow);
    border:1px solid color-mix(in srgb,var(--yellow) 40%,var(--line)); padding:0.6rem 1rem; border-radius:4px; align-self:flex-start; transition:.15s; }
  .doc .dl:hover{ background:var(--yellow); color:#0a0f16; }
  .doc .meta{ font-family:'JetBrains Mono',monospace; font-size:0.62rem; letter-spacing:0.1em; color:var(--dim); margin-top:0.7rem; }

  /* INSURANCE */
  .ins-grid{ display:grid; grid-template-columns:1.15fr 0.85fr; gap:clamp(1.5rem,4vw,2.6rem); align-items:start; }
  @media (max-width:900px){ .ins-grid{ grid-template-columns:1fr; } }
  .limits{ width:100%; border-collapse:collapse; font-size:0.86rem; }
  .limits th, .limits td{ text-align:left; padding:0.65rem 0.7rem; border-bottom:1px solid var(--line); vertical-align:top; }
  .limits th{ font-family:'JetBrains Mono',monospace; font-size:0.62rem; letter-spacing:0.14em; text-transform:uppercase; color:var(--muted); font-weight:400; }
  .limits td.amt{ font-family:'JetBrains Mono',monospace; color:var(--yellow); white-space:nowrap; }
  .limits tr.cond td:first-child::after{ content:" (if applicable)"; color:var(--dim); font-size:0.78rem; }
  .certholder{ background:var(--panel); border:1px solid var(--line); border-radius:8px; padding:1.3rem; }
  .certholder h3{ font-family:'Saira Condensed',sans-serif; font-weight:700; font-size:1rem; text-transform:uppercase; margin-bottom:0.8rem; }
  .certholder address{ font-style:normal; color:var(--muted); font-size:0.9rem; line-height:1.7; }

  /* FAQ */
  .faq details{ border-bottom:1px solid var(--line); padding:1rem 0; }
  .faq summary{ cursor:pointer; font-family:'Saira Condensed',sans-serif; font-weight:700; font-size:1.05rem;
    text-transform:uppercase; letter-spacing:0.02em; list-style:none; display:flex; justify-content:space-between; gap:1rem; align-items:center; }
  .faq summary::-webkit-details-marker{ display:none; }
  .faq summary::after{ content:"+"; color:var(--yellow); font-size:1.3rem; line-height:1; flex:none; }
  .faq details[open] summary::after{ content:"−"; }
  .faq p{ color:var(--muted); font-size:0.9rem; margin-top:0.8rem; max-width:70ch; }

  /* REVIEW + STATUS */
  .review{ background:#0a0d11; border:1px solid var(--line); border-radius:8px; padding:1.3rem; margin-bottom:1.2rem; }
  .review h3{ font-family:'Saira Condensed',sans-serif; font-weight:700; font-size:1rem; text-transform:uppercase; margin-bottom:0.9rem; }
  .review dl{ display:grid; grid-template-columns:auto 1fr; gap:0.5rem 1.2rem; font-size:0.87rem; }
  .review dt{ font-family:'JetBrains Mono',monospace; font-size:0.64rem; letter-spacing:0.12em; text-transform:uppercase; color:var(--dim); padding-top:0.15rem; }
  .review dd{ color:var(--text); word-break:break-word; }
  .status{ display:flex; align-items:center; gap:0.6rem; font-size:0.86rem; color:var(--muted); margin:0.5rem 0; }
  .status .ic{ width:18px; height:18px; border-radius:50%; flex:none; display:flex; align-items:center; justify-content:center;
    font-size:0.68rem; background:var(--line); color:var(--muted); }
  .status.done .ic{ background:var(--ok); color:#04060c; }
  .status.done{ color:var(--text); }
  .status.skip .ic{ background:var(--line); }

  .savebar{ display:flex; align-items:center; justify-content:space-between; gap:1rem; flex-wrap:wrap;
    font-family:'JetBrains Mono',monospace; font-size:0.66rem; letter-spacing:0.1em; text-transform:uppercase;
    color:var(--dim); padding:0.8rem clamp(1.4rem,3.5vw,2.4rem); border-top:1px solid var(--line); background:#080b10; }
  .savebar button{ background:none; border:none; color:var(--dim); cursor:pointer; font:inherit; text-decoration:underline; }
  .savebar button:hover{ color:var(--bad); }
  .savebar .saved{ color:var(--ok); }

  .thanks{ display:none; background:var(--panel); border:1px solid color-mix(in srgb,var(--yellow) 40%,var(--line)); border-radius:10px; padding:clamp(1.6rem,4vw,2.6rem); }
  .thanks h2{ font-family:'Saira Condensed',sans-serif; font-weight:700; font-size:1.6rem; text-transform:uppercase; margin-bottom:0.7rem; }
  .thanks h2 .y{ color:var(--yellow); }
  .thanks p{ color:var(--muted); margin-bottom:1rem; max-width:62ch; }
  .dl-list{ display:flex; flex-wrap:wrap; gap:0.7rem; margin-top:1.2rem; }
  .err{ color:var(--bad); font-size:0.86rem; margin-top:0.8rem; }
  .sr-only{ position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }

  /* FOOTER */
  footer { background:#04060a; border-top:1px solid var(--line); padding: clamp(2.6rem,5vw,3.6rem) clamp(1.2rem,4vw,3rem) 1.6rem; }
  .foot-grid { max-width:1200px; margin:0 auto; display:grid; grid-template-columns:1.7fr 1fr 1fr 1.3fr; gap:clamp(1.6rem,4vw,3rem); }
  @media (max-width:820px){ .foot-grid{ grid-template-columns:1fr 1fr; gap:2rem; } .foot-brand{ grid-column:1 / -1; } }
  .foot-logo { position:relative; display:inline-flex; align-items:center; height:1.7rem; line-height:1; }
  .ts-text{ font-family:'Saira Condensed',sans-serif; font-weight:700; font-style:italic; text-transform:uppercase; font-size:1.3rem; letter-spacing:0.06em; }
  .ts-mark{ width:1.15rem; height:1.7rem; margin-right:0.45rem; background:var(--yellow);
    -webkit-mask:url("../media/bolt-vector.png") center/contain no-repeat; mask:url("../media/bolt-vector.png") center/contain no-repeat; }
  .foot-tag{ color:var(--muted); font-size:0.88rem; margin-top:0.9rem; max-width:38ch; line-height:1.6; }
  .foot-cta{ display:inline-block; margin-top:1.1rem; font-family:'Saira Condensed',sans-serif; font-weight:700; font-size:0.85rem;
    letter-spacing:0.12em; text-transform:uppercase; color:var(--yellow); }
  .foot-cta:hover{ text-decoration:underline; }
  .foot-col h4{ font-family:'JetBrains Mono',monospace; font-size:0.66rem; letter-spacing:0.2em; text-transform:uppercase; color:var(--dim); margin-bottom:0.9rem; font-weight:400; }
  .foot-col a{ display:block; color:var(--muted); font-size:0.9rem; margin-bottom:0.55rem; transition:color .15s; }
  .foot-col a:hover{ color:var(--yellow); }
  .foot-loc{ display:block; color:var(--dim); font-size:0.82rem; margin-top:0.4rem; }
  .foot-base{ max-width:1200px; margin:clamp(2rem,4vw,2.8rem) auto 0; padding-top:1.4rem; border-top:1px solid var(--line);
    display:flex; justify-content:space-between; gap:1rem; flex-wrap:wrap; color:var(--dim); font-size:0.78rem;
    font-family:'JetBrains Mono',monospace; letter-spacing:0.04em; }
  .foot-tagline{ color:var(--muted); font-style:italic; }

  @media (prefers-reduced-motion: reduce){ *{ animation:none !important; transition:none !important; } html{ scroll-behavior:auto; } }
