/* m9871.info — Win 9871: Bangkok motorbike-taxi rank as a design system.
   Orange mesh vest + reflective tape, rider number patch, queue board of hanging number tags, asphalt bay. */
:root{
  --paper:#F2EFE9;--paper-2:#E8E3DA;--card:#FCFBF8;--rule:#D3CCC0;
  --ink:#1C1B20;--ink-2:#3F3D45;--muted:#5C5961;
  --vest:#E8590C;--vest-deep:#B4410A;--vest-soft:#FBE2D2;--vest-dot:rgba(74,24,0,.2);
  --asphalt:#222327;--asphalt-2:#2D2E34;--asphalt-3:#3A3B42;--on-dark:#EAE7E1;--on-dark-2:#BDB9B2;
  --tape-a:#B3B8BF;--tape-b:#EDEFF1;--tape-c:#C6CAD0;
  --sign:#1E4C99;--road:#F2C230;
  --f-display:"Kanit","Sarabun",system-ui,sans-serif;
  --f-body:"Sarabun","Kanit",system-ui,sans-serif;
  --f-num:"Oswald","Kanit",system-ui,sans-serif;
  --wrap:1280px;--gut:16px;
  --tape:repeating-linear-gradient(0deg,rgba(255,255,255,.22) 0 1px,rgba(255,255,255,0) 1px 3px),linear-gradient(100deg,var(--tape-a) 0%,var(--tape-b) 20%,var(--tape-c) 36%,#F7F8F9 50%,var(--tape-a) 68%,#DDE0E4 84%,var(--tape-c) 100%);
  --mesh:radial-gradient(var(--vest-dot) 1px,transparent 1.6px) 0 0/5px 5px,var(--vest);
  --asph:radial-gradient(rgba(255,255,255,.05) 1px,transparent 1.5px) 0 0/7px 7px,radial-gradient(rgba(0,0,0,.25) 1px,transparent 1.5px) 3px 4px/9px 9px,var(--asphalt);
}
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;text-size-adjust:100%;scroll-behavior:smooth;scroll-padding-top:16px}
body{margin:0;background:var(--paper);color:var(--ink);font:400 17px/1.8 var(--f-body);-webkit-font-smoothing:antialiased;overflow-x:clip}
:lang(en) body,body:lang(en){line-height:1.65}
img,svg,canvas{max-width:100%}
a{color:var(--sign);text-decoration-thickness:1px;text-underline-offset:3px}
a:hover{text-decoration-thickness:2px}
:focus-visible{outline:3px solid var(--sign);outline-offset:3px;border-radius:4px}
.foot :focus-visible,.board :focus-visible,.lane :focus-visible,.bay :focus-visible,.vest-top :focus-visible{outline-color:var(--road)}
.vest-top :focus-visible{outline-color:var(--ink)}
.sr{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap}
.wrap{width:100%;max-width:var(--wrap);margin:0 auto;padding:0 var(--gut)}
@media (min-width:700px){:root{--gut:28px}}
@media (min-width:1200px){:root{--gut:40px}}
.skip{position:absolute;left:12px;top:-80px;z-index:50;background:var(--ink);color:#fff;padding:12px 18px;border-radius:10px;font:600 16px/1.2 var(--f-display);text-decoration:none}
.skip:focus{top:12px}
.mesh{background:var(--mesh)}

/* ---------- buttons ---------- */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:52px;padding:10px 22px;border-radius:14px;border:2px solid var(--ink);font:600 17px/1.3 var(--f-display);text-decoration:none;text-align:center;cursor:pointer;transition:transform .15s ease,box-shadow .15s ease,background-color .15s}
.btn-go{background:var(--vest);color:var(--ink);box-shadow:4px 4px 0 var(--ink)}
.btn-go:hover{transform:translate(-1px,-1px);box-shadow:6px 6px 0 var(--ink)}
.btn-go:active{transform:translate(2px,2px);box-shadow:1px 1px 0 var(--ink)}
.btn-line{background:transparent;color:var(--ink)}
.btn-line:hover{background:var(--ink);color:#fff}
.btn-ink{background:var(--ink);color:#fff;border-color:var(--ink);min-height:46px;padding:8px 18px;font-size:16px}
.btn-ink:hover{background:#000}

/* ---------- header: vest + reflective tape ---------- */
.vest{position:relative;z-index:10}
.vest-top{position:relative;padding:10px 0}
.vest-top::after{content:"";position:absolute;left:0;right:0;bottom:4px;border-top:1.5px dashed rgba(28,27,32,.28)}
.vest-row{display:flex;align-items:center;gap:14px;min-height:56px}
.patch{display:inline-flex;align-items:center;gap:10px;min-height:52px;padding:4px 14px 4px 12px;background:var(--card);color:var(--ink);text-decoration:none;border-radius:10px;box-shadow:0 2px 0 rgba(28,27,32,.3);outline:1.5px dashed rgba(28,27,32,.35);outline-offset:-5px;flex:0 0 auto}
.patch-num{display:inline-flex;align-items:baseline;font-family:var(--f-num);font-weight:700;line-height:1}
.patch-a{font-size:22px;font-weight:500;color:var(--vest-deep);margin-right:1px}
.patch-n{font-size:31px;letter-spacing:.01em}
.patch-tag{display:none;font:500 14px/1.2 var(--f-display);color:var(--ink-2);padding-left:10px;border-left:2px solid var(--rule)}
@media (min-width:420px){.patch-tag{display:inline}}
.vest-note{display:none;margin:0;font:500 15px/1.4 var(--f-display);color:var(--ink);max-width:28ch}
.vest-tools{margin-left:auto;display:flex;align-items:center;gap:8px}
.lsw{display:inline-flex;border:2px solid var(--ink);border-radius:999px;padding:2px;background:rgba(252,251,248,.35)}
.lsw a{display:inline-grid;place-items:center;min-width:44px;min-height:40px;padding:0 8px;border-radius:999px;color:var(--ink);text-decoration:none;font:700 15px/1 var(--f-num);letter-spacing:.06em}
.lsw a[aria-current]{background:var(--ink);color:#fff}
.lsw a:hover:not([aria-current]){background:rgba(28,27,32,.12)}
.hd-cta{display:none}
.menu-btn{display:inline-grid;place-items:center;width:48px;height:48px;border:0;border-radius:12px;background:var(--ink);color:#fff;cursor:pointer;padding:0}
.bars{display:grid;gap:5px;width:22px}
.bars i{display:block;height:2.5px;border-radius:2px;background:#fff;transition:transform .12s,opacity .12s}
.vest.is-open .bars i:nth-child(1){transform:translateY(7.5px) rotate(45deg)}
.vest.is-open .bars i:nth-child(2){opacity:0}
.vest.is-open .bars i:nth-child(3){transform:translateY(-7.5px) rotate(-45deg)}

.tape{position:relative;background:var(--tape);border-top:2px solid var(--ink);border-bottom:2px solid var(--ink);min-height:16px;overflow:hidden}
.tape-plain{height:16px}
.tape .wrap{display:none}
.vest.is-open .tape .wrap{display:block;padding-top:8px;padding-bottom:16px}
.tape ul{list-style:none;margin:0;padding:0;display:grid}
.tape li a{display:flex;align-items:center;min-height:52px;padding:6px 4px;border-bottom:1.5px solid rgba(28,27,32,.2);color:var(--ink);text-decoration:none;font:500 18px/1.35 var(--f-display)}
.tape li a[aria-current]{font-weight:700}
.tape li a[aria-current]::before{content:"";width:12px;height:12px;border-radius:50%;background:var(--vest);border:2px solid var(--ink);margin-right:10px;flex:0 0 auto}
.nav-cta{margin-top:14px;width:100%}
@media (min-width:980px){
  .menu-btn,.nav-cta{display:none}
  .hd-cta{display:inline-flex}
  .tape{min-height:0}
  .tape .wrap,.vest.is-open .tape .wrap{display:block;padding-top:0;padding-bottom:0}
  .tape ul{display:flex;flex-wrap:wrap}
  .tape li a{min-height:48px;padding:4px 18px;border-bottom:0;border-right:1.5px solid rgba(28,27,32,.22);font-size:16px}
  .tape li:first-child a{border-left:1.5px solid rgba(28,27,32,.22)}
  .tape li a:hover{background:rgba(255,255,255,.55)}
  .tape li a[aria-current]{background:var(--ink);color:#fff}
  .tape li a[aria-current]::before{border-color:#fff;width:10px;height:10px}
}
@media (min-width:1180px){.vest-note{display:block}}
@media (prefers-reduced-motion:no-preference){
  .tape::after,.back-tape::after,.foot-tape::after{content:"";position:absolute;top:0;bottom:0;left:0;width:22%;background:linear-gradient(100deg,rgba(255,255,255,0),rgba(255,255,255,.85),rgba(255,255,255,0));transform:translateX(-120%);animation:sheen 2.6s .5s cubic-bezier(.4,.1,.2,1) 1 both;pointer-events:none}
  .tape:hover::after{animation:sheen 1.4s ease 1}
}
@keyframes sheen{to{transform:translateX(560%)}}

/* ---------- home hero ---------- */
.home-hero{padding:22px 0 44px}
.hh-grid{display:grid;gap:34px}
.back{position:relative;display:block;overflow:hidden;border-radius:30px 30px 12px 12px;padding:24px 22px 0;color:#fff;box-shadow:inset 0 -2px 0 rgba(28,27,32,.2)}
.back::before{content:"";position:absolute;left:50%;top:0;width:34%;height:18px;transform:translateX(-50%);background:var(--vest-deep);border-radius:0 0 50% 50%/0 0 100% 100%;box-shadow:0 2px 0 rgba(28,27,32,.18),inset 0 -5px 0 -3px rgba(255,255,255,.28)}
.back-a{display:block;font:500 clamp(28px,6vw,40px)/1 var(--f-num);color:var(--ink);opacity:.85}
.back-n{display:block;font:700 clamp(76px,21vw,188px)/.92 var(--f-num);letter-spacing:.01em;text-shadow:4px 4px 0 rgba(28,27,32,.16);margin-top:4px}
.back-tape{position:relative;display:block;height:26px;margin:18px -22px 0;background:var(--tape);border-top:2px solid var(--ink);border-bottom:2px solid var(--ink);overflow:hidden}
.back-dom{display:block;padding:10px 0 14px;font:500 15px/1.2 var(--f-num);letter-spacing:.14em;color:var(--ink);text-align:right}
.kicker{display:inline-flex;align-items:center;gap:10px;margin:26px 0 0;padding:6px 14px 6px 10px;border-radius:999px;background:var(--ink);color:#fff;font:500 14.5px/1.4 var(--f-display)}
.kicker::before{content:"";width:10px;height:10px;border-radius:50%;background:var(--vest);box-shadow:0 0 0 3px rgba(232,89,12,.3)}
.home-hero h1,.page-hero h1{font:700 clamp(1.9rem,1.25rem + 2.5vw,3.05rem)/1.32 var(--f-display);margin:.45em 0 .4em;color:var(--ink);text-wrap:balance}
:lang(en) .home-hero h1,:lang(en) .page-hero h1{line-height:1.12;letter-spacing:-.015em}
.lead p{margin:0 0 .8em;font-size:18.5px;color:var(--ink-2)}
.actions{display:flex;flex-wrap:wrap;gap:14px;margin:24px 0 22px}
.stickers{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:8px}
.stickers li{position:relative;padding:5px 14px;border-radius:8px;background:var(--tape);border:1.5px solid rgba(28,27,32,.55);font:500 15px/1.45 var(--f-display);color:var(--ink)}
@media (min-width:600px) and (max-width:1099px){.back{max-width:440px}}
@media (min-width:1100px){
  .hh-grid{grid-template-columns:minmax(0,.92fr) minmax(0,1.25fr);align-items:start;gap:44px}
  .home-hero{padding-top:30px}
}

/* ---------- the bay (game) ---------- */
.bay{position:relative;scroll-margin-top:12px;border-radius:20px;padding:22px 12px 12px;background:var(--asph);color:var(--on-dark);box-shadow:0 0 0 2px var(--ink),8px 8px 0 rgba(28,27,32,.14);container-type:inline-size}
.bay::before{content:"";position:absolute;left:18px;right:18px;top:9px;height:4px;background:repeating-linear-gradient(90deg,var(--road) 0 26px,transparent 26px 42px);border-radius:2px;opacity:.9}
.bay-head{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:4px 14px;padding:6px 6px 12px}
.bay-t{font:700 19px/1.3 var(--f-display);color:#fff}
.bay-s{font:400 15px/1.4 var(--f-body);color:var(--on-dark-2)}
@media (max-width:399px){.bay{padding:22px 6px 6px;border-radius:16px}.bay #game-root{padding:10px}}
@media (min-width:400px){.bay{padding:24px 16px 16px}}

/* ---------- inner page hero ---------- */
.ph-band{position:relative;height:104px;overflow:hidden;border-bottom:2px solid var(--ink)}
.ph-band::after{content:"";position:absolute;left:0;right:0;bottom:0;height:14px;background:var(--tape);border-top:2px solid var(--ink)}
.ph-band .wrap{position:relative;height:100%}
.ph-num{position:absolute;right:var(--gut);top:10px;font:700 92px/.82 var(--f-num);color:#fff;text-shadow:4px 4px 0 rgba(28,27,32,.16);letter-spacing:.01em}
@media (min-width:900px){.ph-band{height:132px}.ph-num{font-size:124px;top:10px}}
.ph-in{padding-top:18px;padding-bottom:34px}
.route ol{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;align-items:center;gap:0}
.route li{display:flex;align-items:center;font:500 15.5px/1.3 var(--f-display);color:var(--ink-2)}
.route li+li::before{content:"";width:34px;height:0;border-top:2.5px dashed var(--ink);opacity:.55;margin:0 8px}
.route a,.route span{display:inline-flex;align-items:center;gap:8px;min-height:44px;color:var(--ink)}
.route a::before,.route span::before{content:"";width:12px;height:12px;border-radius:50%;border:2.5px solid var(--ink);background:var(--paper);flex:0 0 auto}
.route span::before{background:var(--vest)}
.route span{font-weight:700}
.page-hero .lead{max-width:62ch}

/* ---------- ride: article + queue board ---------- */
.ride{padding:10px 0 56px}
.ride-grid{display:grid;gap:26px}
.side{display:contents}
.board{order:-1;min-width:0;background:var(--asph);border-radius:16px;padding:14px 0 10px 14px;color:var(--on-dark);box-shadow:0 0 0 2px var(--ink)}
.board-h{margin:0 14px 8px 0;font:700 16px/1.4 var(--f-display);color:#fff;display:flex;align-items:center;gap:10px}
.board-h::after{content:"";flex:1;height:8px;background:var(--tape);border-radius:2px;opacity:.9}
.board ol{list-style:none;margin:0;padding:6px 14px 8px 0;display:flex;gap:10px;overflow-x:auto;scroll-snap-type:x proximity;scrollbar-width:thin;scrollbar-color:var(--asphalt-3) transparent}
.board li{flex:0 0 auto;scroll-snap-align:start}
.board a{display:grid;grid-template-columns:auto minmax(0,1fr);gap:10px;align-items:center;width:min(236px,64vw);min-height:56px;padding:8px 12px 8px 8px;border-radius:12px;background:var(--asphalt-2);color:var(--on-dark);text-decoration:none;font:400 15.5px/1.45 var(--f-body)}
.board a span{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.board b{position:relative;display:inline-grid;place-items:center;width:40px;height:46px;padding-top:9px;border-radius:6px 6px 8px 8px;background:radial-gradient(circle at 50% 7px,var(--asphalt-2) 0 3px,rgba(0,0,0,0) 3.5px),var(--card);color:var(--ink);font:700 16px/1 var(--f-num);transform:rotate(-3deg)}
.board li:nth-child(even) b{transform:rotate(2.5deg)}
.board a:hover{background:var(--asphalt-3)}
.board a.on{background:var(--asphalt-3);color:#fff;box-shadow:inset 3px 0 0 var(--vest)}
.board a.on b{background:radial-gradient(circle at 50% 7px,var(--asphalt-3) 0 3px,rgba(0,0,0,0) 3.5px),var(--vest)}
.spare{order:2;position:relative;background:var(--card);border:2px solid var(--ink);border-radius:16px;padding:26px 20px 20px;box-shadow:6px 6px 0 var(--vest)}
.spare::before{content:"";position:absolute;left:20px;top:-2px;width:64px;height:10px;background:var(--mesh);border:2px solid var(--ink);border-top:0;border-radius:0 0 6px 6px}
.spare-t{margin:0 0 6px;font:700 20px/1.35 var(--f-display)}
.spare p{margin:0 0 16px;color:var(--ink-2);font-size:16.5px}
.spare .btn{width:100%}
@media (min-width:1060px){
  .ride{padding-top:18px}
  .ride-grid{grid-template-columns:minmax(0,1fr) 316px;gap:56px;align-items:start}
  .side{display:flex;flex-direction:column;gap:22px;position:sticky;top:18px;max-height:calc(100vh - 36px);overflow:auto;padding:4px 10px 10px 4px;scrollbar-width:thin}
  .board{order:0;padding:16px 10px 12px}
  .board-h{margin:0 4px 10px}
  .board ol{display:grid;gap:6px;overflow:visible;padding:0}
  .board a{width:auto}
  .spare{order:0}
}

/* ---------- prose ---------- */
.prose{min-width:0;max-width:74ch;counter-reset:sec}
.prose>*:first-child,.intro>*:first-child{margin-top:0}
.prose p,.prose li{font-size:17.5px}
.prose p{margin:0 0 1.05em}
.prose h2{counter-increment:sec;display:grid;grid-template-columns:auto minmax(0,1fr);gap:.55em;align-items:start;margin:2.3em 0 .75em;padding-top:1.15em;font:700 clamp(1.42rem,1.12rem + 1.15vw,1.95rem)/1.42 var(--f-display);color:var(--ink);scroll-margin-top:18px;background:linear-gradient(90deg,var(--ink) 0 30px,transparent 30px) 0 0/48px 3px repeat-x}
:lang(en) .prose h2{line-height:1.22;letter-spacing:-.01em}
.prose h2::before{content:counter(sec,decimal-leading-zero);display:inline-grid;place-items:center;min-width:2.3em;margin-top:.12em;padding:.2em .4em .2em .75em;border-radius:6px;background:radial-gradient(circle at .38em 50%,var(--paper) 0 .13em,rgba(0,0,0,0) .16em),var(--vest);color:var(--ink);font:700 .62em/1.3 var(--f-num);letter-spacing:.03em;border:2px solid var(--ink)}
.prose h3{font:700 1.2rem/1.5 var(--f-display);margin:1.7em 0 .45em;color:var(--vest-deep)}
.prose ul,.prose ol{margin:0 0 1.2em;padding:0}
.prose ul{list-style:none}
.prose ul>li{position:relative;padding-left:1.6em;margin:0 0 .5em}
.prose ul>li::before{content:"";position:absolute;left:.15em;top:.62em;width:.62em;height:.62em;border-radius:50%;background:var(--vest);box-shadow:0 0 0 2px var(--ink)}
.prose ol{list-style:none;counter-reset:li}
.prose ol>li{counter-increment:li;position:relative;padding-left:2.4em;margin:0 0 .65em}
.prose ol>li::before{content:counter(li);position:absolute;left:0;top:.15em;display:grid;place-items:center;width:1.65em;height:1.65em;border-radius:50%;border:2px solid var(--ink);background:var(--card);font:700 .85em/1 var(--f-num)}
.prose strong{font-weight:700;color:var(--ink)}
.intro p:first-child{font-size:18.5px}
.tbl{overflow-x:auto;margin:0 0 1.4em;border:2px solid var(--ink);border-radius:12px;background:var(--card)}
.tbl table{width:100%;border-collapse:collapse;min-width:460px;font-size:16px}
.tbl th,.tbl td{padding:10px 14px;text-align:left;vertical-align:top;border-bottom:1px solid var(--rule)}
.tbl th{background:var(--ink);color:#fff;font:600 15.5px/1.4 var(--f-display)}
.tbl tr:last-child td{border-bottom:0}

/* FAQ as fold-out tags */
.faq{margin-top:1em}
.faq details{border-top:2px solid var(--ink)}
.faq details:last-child{border-bottom:2px solid var(--ink)}
.faq summary{display:flex;align-items:center;justify-content:space-between;gap:16px;min-height:60px;padding:12px 2px;cursor:pointer;list-style:none;font:500 18.5px/1.5 var(--f-display)}
.faq summary::-webkit-details-marker{display:none}
.faq summary i{position:relative;flex:0 0 36px;height:36px;border-radius:50%;background:var(--vest);border:2px solid var(--ink);transition:transform .2s}
.faq summary i::before,.faq summary i::after{content:"";position:absolute;left:50%;top:50%;width:14px;height:2.5px;margin:-1.25px 0 0 -7px;background:var(--ink);border-radius:2px}
.faq summary i::after{transform:rotate(90deg)}
.faq details[open] summary i{transform:rotate(45deg)}
.faq summary:hover span{text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:4px}
.faq .ans{padding:0 0 10px;max-width:66ch}

/* ---------- lane CTA ---------- */
.lane{position:relative;background:var(--asph);color:var(--on-dark);padding:40px 0}
.lane::before,.lane::after{content:"";position:absolute;left:0;right:0;height:4px;background:repeating-linear-gradient(90deg,var(--road) 0 34px,transparent 34px 56px)}
.lane::before{top:12px}.lane::after{bottom:12px}
.lane-in{display:grid;gap:20px;align-items:center}
.lane p{margin:0;font:500 clamp(1.15rem,1rem + .6vw,1.45rem)/1.55 var(--f-display);color:#fff;max-width:48ch}
@media (min-width:800px){.lane-in{grid-template-columns:minmax(0,1fr) auto;gap:40px}}

/* ---------- related: hanging number tags ---------- */
.related{padding:52px 0 60px;background:var(--paper-2);border-top:2px solid var(--ink)}
.related .wrap{container-type:inline-size}
.rel-h{margin:0 0 26px;font:700 clamp(1.4rem,1.15rem + 1vw,1.9rem)/1.35 var(--f-display)}
.hangs{list-style:none;margin:0;padding:0;display:grid;gap:22px 18px}
.hang{position:relative;display:grid;gap:4px;height:100%;padding:30px 18px 20px;background:var(--card);border:2px solid var(--ink);border-radius:12px 12px 14px 14px;color:var(--ink);text-decoration:none;transform-origin:50% 0;transition:transform .25s ease,box-shadow .2s}
.hang::before{content:"";position:absolute;left:50%;top:9px;width:14px;height:14px;margin-left:-7px;border-radius:50%;background:var(--paper-2);border:2px solid var(--ink)}
.hang-no{font:700 26px/1 var(--f-num);color:var(--vest-deep)}
.hang strong{font:700 19px/1.45 var(--f-display)}
.hang-d{font-size:16px;line-height:1.6;color:var(--muted)}
.hang:hover{box-shadow:5px 5px 0 var(--vest)}
.hang:hover strong{text-decoration:underline;text-decoration-thickness:1.5px;text-underline-offset:4px}
@container (min-width:560px){.hangs{grid-template-columns:repeat(2,minmax(0,1fr))}}
@container (min-width:900px){.hangs{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media (prefers-reduced-motion:no-preference){.hang:hover{transform:rotate(-1.2deg)}}

/* ---------- footer ---------- */
.foot{background:var(--asph);color:var(--on-dark)}
.foot-tape{position:relative;height:16px;background:var(--tape);border-top:2px solid var(--ink);border-bottom:2px solid var(--ink);overflow:hidden}
.foot-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:30px 20px;padding-top:40px;padding-bottom:30px}
.foot-brand{grid-column:1/-1}
.foot-brand p{margin:16px 0 0;font-size:16px;line-height:1.7;color:var(--on-dark-2);max-width:52ch}
.foot h2{margin:0 0 8px;font:700 17px/1.4 var(--f-display);color:#FF9A5C}
.foot ul{list-style:none;margin:0;padding:0}
.foot-col a{display:flex;align-items:center;min-height:44px;color:var(--on-dark);text-decoration:none;font-size:16.5px;line-height:1.4}
.foot-col a:hover{color:#fff;text-decoration:underline}
.foot-bottom{display:flex;flex-wrap:wrap;align-items:center;gap:12px 18px;padding:18px 0 28px;border-top:1px solid rgba(234,231,225,.16);font:400 15.5px/1.4 var(--f-body);color:var(--on-dark-2)}
.disc18{display:inline-grid;place-items:center;width:46px;height:46px;border-radius:50%;background:var(--vest);color:var(--ink);font:700 16px/1 var(--f-num);box-shadow:0 0 0 3px var(--asphalt),0 0 0 5px var(--tape-b)}
.to-top{margin-left:auto;display:inline-flex;align-items:center;min-height:44px;color:var(--on-dark)}
@media (min-width:860px){.foot-grid{grid-template-columns:minmax(0,1.5fr) minmax(0,1fr) minmax(0,1fr);gap:48px}.foot-brand{grid-column:auto}}

/* ---------- 404 ---------- */
.nf{padding-top:40px;padding-bottom:80px}
.nf-code{margin:0;font:700 clamp(96px,30vw,200px)/1 var(--f-num);color:var(--vest)}
.nf h1{font:700 clamp(1.8rem,1.3rem + 2vw,2.6rem)/1.35 var(--f-display);margin:.2em 0 .3em}

@media (prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
@media print{.vest,.side,.lane,.related,.foot-tape{display:none}}
