/* Standalone game styles. The shared site stylesheet is intentionally not loaded. */
@font-face{font-family:"IBM Plex Sans";font-style:normal;font-weight:100 700;font-display:swap;src:url("/assets/fonts/ibm-plex-sans-cyrillic.woff2") format("woff2");unicode-range:U+0400-052F,U+2DE0-2DFF,U+A640-A69F}
@font-face{font-family:"IBM Plex Sans";font-style:normal;font-weight:100 700;font-display:swap;src:url("/assets/fonts/ibm-plex-sans-latin.woff2") format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:"IBM Plex Mono";font-style:normal;font-weight:400;font-display:swap;src:url("/assets/fonts/ibm-plex-mono-400-cyrillic.woff2") format("woff2");unicode-range:U+0400-052F,U+2DE0-2DFF,U+A640-A69F}
@font-face{font-family:"IBM Plex Mono";font-style:normal;font-weight:400;font-display:swap;src:url("/assets/fonts/ibm-plex-mono-400-latin.woff2") format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
:root{
  --bg:#E6EDF7; --ink:#13213A; --muted:#4B5B79; --panel:#FFFFFF; --line:#C3D0E5;
  --blue:#1E4FA3; --button-blue:#1E4FA3; --on-blue:#FFFFFF; --gold:#F2C230;
  color-scheme:light; box-sizing:border-box;
  padding-top:env(safe-area-inset-top,0px); padding-bottom:env(safe-area-inset-bottom,0px);
}
@media (prefers-color-scheme:dark){
  :root:not([data-theme="light"]){ --bg:#0D1526; --ink:#E5ECF8; --muted:#9BA9C5; --panel:#16223A; --line:#2B3B5E; --blue:#5B8EE8; color-scheme:dark; }
}
:root[data-theme="dark"]{ --bg:#0D1526; --ink:#E5ECF8; --muted:#9BA9C5; --panel:#16223A; --line:#2B3B5E; --blue:#5B8EE8; color-scheme:dark; }
html{scroll-padding-top:env(safe-area-inset-top,0px)}
*,*::before,*::after{box-sizing:inherit}
body{margin:0;background:var(--bg);color:var(--ink);font-family:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;line-height:1.45}
.wrap{max-width:min(820px, max(600px, calc((100vh - 390px) * 1.4545 + 28px)));margin:0 auto;padding:16px 14px 28px}
h1{font-family:"Courier New",ui-monospace,monospace;font-weight:400;font-size:clamp(18px,5vw,30px);line-height:1.3;margin:6px 0 8px;color:var(--blue)}
.lead{margin:0 0 14px;color:var(--muted);max-width:64ch;font-size:15px}
.hud{display:flex;flex-wrap:wrap;align-items:center;gap:6px 16px;margin:0 0 8px;padding:9px 12px;background:#10151F;border:3px solid #2B3240;border-radius:6px;color:#9FB0CC;font-family:'Courier New',ui-monospace,monospace;font-size:9px;line-height:1.6}
.hud b{font-weight:400;color:#FFD84A;text-shadow:0 0 6px rgba(255,200,60,.55)}
.hud .mini{font-family:system-ui,sans-serif;color:#DDE6F3;border-color:#3A4560;background:#1A2232}
.hud .tools{margin-left:auto;display:flex;flex-wrap:wrap;gap:6px}
.mini{font:inherit;font-size:13px;background:transparent;color:var(--ink);border:2px solid var(--line);border-radius:4px;padding:3px 8px;cursor:pointer}
.stage{position:relative;border:4px solid var(--blue);border-radius:6px;overflow:hidden;background:#0F1C33}
canvas{display:block;width:100%;height:auto;aspect-ratio:256/176;image-rendering:pixelated;image-rendering:crisp-edges}
#game:focus-visible{outline:3px solid var(--gold);outline-offset:-3px}
.place{position:absolute;left:8px;top:8px;font-family:"Courier New",ui-monospace,monospace;font-size:9px;line-height:1.4;color:#fff;background:rgba(10,20,40,.72);padding:6px 8px;border-radius:3px;pointer-events:none;max-width:70%}
.toast{position:absolute;left:50%;top:44px;transform:translateX(-50%);background:var(--gold);color:#1B1B1B;font-weight:700;font-size:14px;padding:6px 12px;border-radius:4px;opacity:0;transition:opacity .2s;pointer-events:none;white-space:normal;text-align:center;line-height:1.3;width:max-content;max-width:min(92%,520px)}
.toast.show{opacity:1}
.ovl{position:absolute;pointer-events:none;font-weight:700;display:none;font-family:system-ui,sans-serif}
#ovComm{left:50%;bottom:8px;transform:translateX(-50%);width:max-content;max-width:92%;background:rgba(10,15,26,.9);color:#fff;border-left:4px solid #C8102E;padding:5px 10px;font-size:14px;line-height:1.3;border-radius:3px;text-align:left}
#ovVar{left:50%;top:54%;transform:translate(-50%,-50%);background:#1C2333;color:#fff;border:2px solid #0A0F1A;padding:8px 14px;font-size:17px;border-radius:4px;letter-spacing:.02em}
#ovVar.verdict{color:#F2C230}
#ovTimer{right:8px;top:8px;background:rgba(10,15,26,.85);color:#F2C230;padding:5px 8px;font-size:13px;border-radius:3px}
#ovTimer.late{color:#FF7A6B}
#ovPenTop{left:50%;top:6px;transform:translateX(-50%);width:max-content;max-width:94%;color:#fff;font-size:13px;background:rgba(10,15,26,.6);padding:3px 8px;border-radius:3px}
#ovPenMsg{left:50%;top:66%;transform:translate(-50%,-50%);width:max-content;max-width:92%;text-align:center;font-size:18px;color:#F2C230;background:rgba(10,15,26,.82);padding:6px 12px;border-radius:4px}
#ovPenMsg.hint{font-size:13px;color:#fff;font-weight:400}
@media (max-width:600px){#ovComm{font-size:12px}#ovVar{font-size:15px}#ovPenMsg{font-size:15px}.place{max-width:55%;font-size:8px}}
@media (hover:none),(max-width:600px){#chantBtnD,#photoBtnD{display:none}}
.screen{position:absolute;inset:0;background:rgba(10,22,46,.94);color:#fff;display:flex;flex-direction:column;align-items:center;justify-content:safe center;text-align:center;padding:14px;gap:9px;overflow-y:auto;overflow-x:hidden;overscroll-behavior:contain}
.screen>*{flex-shrink:0;max-width:100%}
.screen[hidden]{display:none}
.screen.big{position:fixed;inset:0;z-index:80;justify-content:flex-start;padding:max(24px,env(safe-area-inset-top,0px)) max(14px,env(safe-area-inset-right,0px)) max(32px,env(safe-area-inset-bottom,0px)) max(14px,env(safe-area-inset-left,0px));max-height:100dvh;background:rgba(10,22,46,.97)}
.screen.big img{max-height:52vh;width:auto !important;max-width:min(440px,92%)}
.ach-wrap summary{cursor:pointer;font-family:"Courier New",ui-monospace,monospace;font-size:13px;line-height:1.5;margin:22px 0 10px;color:var(--blue);list-style-position:outside}
.ach-wrap summary:focus-visible{outline:3px solid var(--blue);outline-offset:3px}
.screen h2{font-family:"Courier New",ui-monospace,monospace;font-weight:400;font-size:clamp(13px,3.6vw,20px);line-height:1.4;margin:0;color:var(--gold)}
.screen p{margin:0;max-width:52ch;font-size:clamp(13px,3.2vw,15px)}
.screen .keys{color:#B9C7E3;font-size:13px}
.screen .row{display:flex;flex-wrap:wrap;gap:8px;justify-content:center}
.screen .result{display:flex;align-items:center;gap:14px;text-align:left;max-width:540px}
.screen .result p{max-width:none}
.screen svg{flex:none;width:clamp(84px,22vw,120px);height:auto}
.screen a{color:var(--gold);font-weight:700}
@media (max-width:480px){.screen .result{flex-direction:column;text-align:center}}
.btn{font:inherit;font-weight:700;font-size:15px;background:var(--gold);color:#1B1B1B;border:0;border-radius:4px;min-height:44px;padding:9px 16px;cursor:pointer;box-shadow:0 3px 0 #9C7A10}
.btn.alt{background:#2F4D86;color:#fff;box-shadow:0 3px 0 #14284F}
.btn:active{transform:translateY(2px)}
.btn:focus-visible,.mini:focus-visible,.pad button:focus-visible,.opts button:focus-visible,.card:focus-visible,.fansel select:focus-visible{outline:3px solid var(--blue);outline-offset:3px}
.screen button:focus-visible,.screen a:focus-visible{outline:3px solid #fff;outline-offset:3px}
.screen:focus-visible{outline:3px solid #fff;outline-offset:-6px}
.talk{margin-top:10px;background:var(--panel);border:2px solid var(--line);border-left:6px solid var(--blue);border-radius:4px;padding:10px 12px;min-height:76px}
.talk{display:flex;gap:12px;align-items:flex-start}
.portrait-frame{width:96px;height:96px;flex:none;overflow:hidden;border-radius:4px;background:var(--panel);outline:2px solid var(--line);outline-offset:-2px}
#portrait,#portraitPhoto{display:block;width:100%;height:100%;aspect-ratio:1}
#portrait{image-rendering:pixelated}
#portraitPhoto{object-fit:contain;object-position:center bottom;image-rendering:auto}
#portraitFrame[hidden],#portrait[hidden],#portraitPhoto[hidden]{display:none}
@media (max-width:600px){.portrait-frame{width:64px;height:64px}}
.talkbody{flex:1;min-width:0}
.who{font-weight:700;color:var(--blue);margin-bottom:2px}
.text{font-size:15px}
.opts{display:flex;flex-direction:column;gap:6px;margin-top:8px}
.opts button{font:inherit;font-size:14px;text-align:left;background:transparent;color:var(--ink);border:2px solid var(--line);border-radius:4px;min-height:44px;padding:8px 10px;cursor:pointer}
.opts button:hover{border-color:var(--blue)}
.opts.single{flex-direction:row}
.ticker{display:flex;align-items:center;gap:8px;margin:0 0 8px;font-size:13px;background:var(--panel);border:1px solid var(--line);border-radius:4px;overflow:hidden}
.ticker b{background:#C8102E;color:#fff;padding:3px 8px;font-size:12px;flex:none}
.tickwrap{overflow:hidden;flex:1;white-space:nowrap}
.tickwrap span{display:inline-block;padding-left:100%;animation:tick 45s linear infinite}
@keyframes tick{to{transform:translateX(-100%)}}
@media (prefers-reduced-motion:reduce){.tickwrap span{animation:none;padding-left:0}}
.journal{font-size:13px;margin:0 0 8px;color:var(--ink);display:flex;flex-wrap:wrap;gap:4px 8px}
.journal span{background:var(--panel);border:1px solid var(--line);border-radius:4px;padding:2px 7px}
.journal span.go{border-color:var(--blue);font-weight:700}
.qhint{margin:2px 0 0;font-size:13px;color:var(--muted)}
.opts.single button{background:var(--button-blue);color:var(--on-blue);border-color:var(--button-blue);font-weight:700}
.pad{display:none;margin-top:12px;grid-template-columns:176px minmax(88px,176px);grid-template-areas:"dpad act" "dpad extras";gap:8px 12px;justify-content:space-between;align-items:center;user-select:none;-webkit-user-select:none;touch-action:none}
.pad[hidden]{display:none}
.dpad{grid-area:dpad;display:grid;grid-template-columns:repeat(3,56px);grid-template-rows:repeat(3,56px);gap:4px}
.pad button{font:inherit;font-size:20px;background:var(--panel);color:var(--ink);border:2px solid var(--line);border-radius:8px;min-width:44px;min-height:44px;cursor:pointer;touch-action:none;-webkit-tap-highlight-color:transparent}
.pad button:active{background:var(--button-blue);color:var(--on-blue)}
.xbtns{grid-area:extras;display:flex;flex-direction:column;gap:8px;align-self:start}
.xb{font-size:14px !important;padding:10px 12px;font-weight:700}
.ach{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:8px}
.ach div{background:var(--panel);border:2px solid var(--line);border-radius:6px;padding:7px 9px;font-size:13px;line-height:1.3}
.ach div.on{border-color:var(--gold)}
.ach div.off{opacity:.55}
.ach b{display:block;font-size:14px}
.act{grid-area:act;width:100%;height:64px;align-self:end;background:var(--button-blue) !important;color:var(--on-blue) !important;font-size:15px !important;font-weight:700}
@media (hover:none),(max-width:600px){.pad{display:grid}.mini,.fansel select{min-height:44px}}
.menu[hidden]{display:none}
.menu h2{font-family:"Courier New",ui-monospace,monospace;font-weight:400;font-size:13px;line-height:1.5;margin:22px 0 10px;color:var(--blue)}
.menu .progress{margin:14px 0 0;color:var(--muted);font-size:14px}
.cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:10px}
.card{font:inherit;text-align:left;display:flex;gap:10px;align-items:center;min-width:0;background:var(--panel);color:var(--ink);border:2px solid var(--line);border-radius:6px;padding:8px;cursor:pointer}
.road-audio-help{font-size:13px;line-height:1.45;padding:8px 12px;margin:4px 0 10px;background:var(--panel);color:var(--ink);border:1px solid var(--line);border-radius:5px}
.card:hover:not(:disabled){border-color:var(--blue)}
.card-next{border-color:var(--blue);box-shadow:0 0 0 2px rgba(30,79,163,.17)}
.journey-next{font-weight:700;color:var(--blue)!important}
.card:disabled{cursor:default;opacity:.6}
.card svg{width:58px;height:58px;flex:none}
.card>div{flex:1;min-width:0;max-width:100%;overflow-wrap:anywhere}
.card b{display:block;font-size:14px;line-height:1.25}
.card span{display:block;font-size:12px;color:var(--muted);margin-top:2px}
@media (max-width:420px){.cards{grid-template-columns:repeat(2,minmax(0,1fr))}.card{flex-direction:column;align-items:flex-start;gap:6px}.card svg{width:48px;height:48px}.card>div{width:100%}}
.fanrow{display:flex;flex-wrap:wrap;align-items:center;gap:8px}
.fansel{display:flex;flex-direction:column;gap:2px;font-size:12px;color:var(--muted)}
.fansel select{font:inherit;font-size:13px;color:var(--ink);background:var(--panel);border:1px solid var(--line);border-radius:4px;padding:4px 6px}
.fanprev{width:60px;height:72px;image-rendering:pixelated;background:var(--panel);border:2px solid var(--line);border-radius:4px}
.note{margin-top:18px;font-size:13px;color:var(--muted)}
.note a{color:inherit;text-underline-offset:.15em}
.note a:focus-visible{outline:3px solid var(--blue);outline-offset:3px}
@media (prefers-reduced-motion:reduce){.toast{transition:none}}
@media (max-width:600px){.screen{position:fixed;inset:0;z-index:80;justify-content:safe center;padding:max(20px,env(safe-area-inset-top,0px)) max(16px,env(safe-area-inset-right,0px)) max(20px,env(safe-area-inset-bottom,0px)) max(16px,env(safe-area-inset-left,0px));max-height:100dvh;background:#0A162E}.screen.big{justify-content:flex-start}}


/* Public page shell. Prefixes keep the page presentation separate from game UI. */
:root {
  --road-navy: #0b2144;
  --road-deep: #07172f;
  --road-amber: #f2c230;
  --road-copy: "IBM Plex Sans", system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}
.road-app {font-family:var(--road-copy);background:var(--bg)}
.road-container {width:min(1180px,calc(100% - 40px));margin-inline:auto}
.road-app main:focus {outline:none}
.road-skip {position:absolute;left:20px;top:12px;z-index:100;transform:translateY(-180%);padding:12px 18px;border-radius:6px;background:var(--road-amber);color:var(--road-deep);font-weight:800;text-decoration:none}
.road-skip:focus {transform:translateY(0)}
.road-topbar {background:var(--road-navy);color:#fff;border-bottom:1px solid #ffffff20}
.road-topbar-inner {min-height:76px;display:flex;justify-content:space-between;align-items:center;gap:24px}
.road-brand {display:inline-flex;align-items:center;gap:12px;flex:none;color:inherit;text-decoration:none}
.road-brand-mark {display:grid;place-items:center;width:46px;height:46px;background:#fff;color:var(--road-navy);font-size:18px;letter-spacing:-.08em;font-weight:950;border-radius:6px}
.road-brand-name {font-size:12px;line-height:1.2;letter-spacing:.055em;text-transform:uppercase;font-weight:850}
.road-nav {display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.road-nav a {display:flex;align-items:center;justify-content:center;min-height:44px;padding:8px 14px;border:1px solid transparent;border-radius:6px;color:#d6e2f6;text-decoration:none;font-size:14px;font-weight:650}
.road-nav a:last-child {border-color:#ffffff35;color:#fff}
.road-nav a:hover {background:#ffffff10;color:#fff}
.road-brand:focus-visible,.road-nav a:focus-visible,.road-footer-back:focus-visible {outline:3px solid var(--road-amber);outline-offset:5px;border-radius:4px}
.road-hero {color:#fff;background:radial-gradient(ellipse at 90% 0%,#1b4d88 0%,transparent 55%),linear-gradient(130deg,#0b2144 10%,#143968 100%);border-bottom:4px solid var(--road-amber)}
.road-hero-inner {display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:72px;align-items:center;padding-block:52px}
.road-eyebrow {margin:0;font-size:11px;line-height:1.5;font-weight:850;letter-spacing:.12em;text-transform:uppercase;color:var(--blue)}
.road-hero .road-eyebrow {display:flex;align-items:center;gap:9px;color:#c9d9f2}
.road-hero .road-eyebrow>span {width:7px;height:7px;background:var(--road-amber);flex:none}
.road-hero h1 {margin:15px 0 20px;font-family:var(--road-copy);font-size:clamp(38px,5.6vw,76px);line-height:1.04;letter-spacing:-.055em;font-weight:900;color:#fff}
.road-hero-lead {max-width:640px;margin:0;color:#d4e1f3;font-size:18px;line-height:1.65}
.road-hero-actions {display:flex;align-items:center;flex-wrap:wrap;gap:12px;margin-top:28px}
.road-button {min-height:50px;display:inline-flex;align-items:center;justify-content:center;padding:12px 22px;border:2px solid transparent;border-radius:6px;font:inherit;font-size:15px;font-weight:800;line-height:1.3;cursor:pointer;text-decoration:none;transition:background-color .15s ease,transform .15s ease}
.road-button-primary {background:var(--road-amber);color:var(--road-deep);box-shadow:0 3px 0 #a98211}
.road-button-primary:hover {background:#ffcf43}
.road-button-secondary {background:#ffffff08;border-color:#ffffff52;color:#fff}
.road-button-secondary:hover {background:#ffffff15}
.road-button:active {transform:translateY(2px)}
.road-button:focus-visible {outline:3px solid #fff;outline-offset:4px}
.road-hero-note {margin:17px 0 0;color:#aebfda;font-size:12px;line-height:1.5}
.road-first-route {padding:23px 23px 19px;background:#f6f8fc;color:#142d50;border:1px solid #ffffff65;border-radius:9px;box-shadow:0 12px 30px #0412273d;transform:rotate(1deg)}
.road-ticket-top {display:flex;align-items:center;justify-content:space-between;gap:10px;padding-bottom:18px;border-bottom:1px dashed #b4c5dd;font-size:10px;line-height:1.3;text-transform:uppercase;letter-spacing:.08em;font-weight:850}
.road-ticket-tag {padding:5px 7px;color:#164a93;background:#dce8fa;border-radius:3px}
.road-ticket-city {font-size:26px;line-height:1.2;font-weight:850;letter-spacing:-.045em;margin:18px 0 5px}
.road-ticket-destination {margin:0;color:#58708f;font-size:14px}
.road-ticket-destination>span {margin-right:5px;color:#1e4fa3;font-weight:850}
.road-itinerary {list-style:none;margin:21px 0 0;padding:0;display:grid;gap:11px}
.road-itinerary li {display:flex;align-items:center;gap:11px;font-size:13px;font-weight:650}
.road-itinerary li>span {font-size:10px;font-weight:900;letter-spacing:.03em;display:grid;place-items:center;width:24px;height:24px;flex:none;background:#e3eaf5;color:#436185;border-radius:4px}
.road-ticket-bottom {margin:21px 0 0;padding-top:15px;border-top:1px dashed #b4c5dd;font-size:12px;line-height:1.5;color:#58708f}
.road-game-section {padding:33px 0 48px;background:linear-gradient(180deg,transparent,#839fc40b);scroll-margin-top:16px}
.road-game-heading {width:min(792px,calc(100% - 28px));margin:0 auto 17px;display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:6px 20px}
.road-game-heading>p:last-child {margin:0;color:var(--muted);font-size:12px}
.road-game-section .wrap {padding-top:0;padding-bottom:0}
.road-game-section .stage {box-shadow:0 12px 25px #081a3515}
.road-game-section .hud {font-family:"IBM Plex Mono",ui-monospace,"Courier New",monospace;font-size:11px;line-height:1.6}
.road-game-section .hud b {font-weight:700}
.road-game-section .talk {box-shadow:0 3px 10px #081a3505}
.road-noscript {width:min(792px,calc(100% - 28px));margin:0 auto 20px;padding:14px 18px;border:2px solid var(--blue);border-radius:6px;background:var(--panel);font-weight:650}
.road-routes {padding-block:44px 12px;border-top:1px solid var(--line);scroll-margin-top:24px}
.road-section-heading {display:flex;justify-content:space-between;align-items:flex-end;gap:26px;margin-bottom:27px}
.road-section-heading h2 {font-family:var(--road-copy);font-size:clamp(26px,3.2vw,38px);line-height:1.15;letter-spacing:-.045em;font-weight:850;margin:9px 0 0}
.road-section-heading>p {max-width:450px;margin:0;color:var(--muted);font-size:14px;line-height:1.7}
.road-route-families {display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin-bottom:24px}
.road-family {position:relative;padding:23px 22px 21px;background:var(--panel);border:1px solid var(--line);border-radius:9px}
.road-family-number {display:block;font:700 11px ui-monospace,monospace;color:var(--blue);letter-spacing:.08em;margin-bottom:12px}
.road-family h3 {margin:0 0 9px;font-size:16px;line-height:1.3;font-weight:800;letter-spacing:-.025em}
.road-family p {margin:0;color:var(--muted);font-size:13px;line-height:1.7}
.road-catalog-panel {padding:26px 28px 28px;border:1px solid var(--line);border-radius:10px;background:var(--panel)}
.road-catalog-panel:has(>.menu[hidden]) {padding:0;border:0;background:transparent}
.road-catalog-panel:has(>.menu:not([hidden])) #roadCatalogOpen {display:none}
#roadCatalogOpen:focus-visible {outline-color:var(--blue)}
.road-routes .menu>.progress:first-child {padding:14px 16px;margin:0 0 26px;border:1px solid var(--line);border-left:4px solid var(--blue);border-radius:5px;color:var(--ink);background:var(--bg);font-size:14px;line-height:1.6}
.road-routes .menu h2 {font-family:var(--road-copy);font-size:20px;line-height:1.35;font-weight:800;letter-spacing:-.025em;margin:29px 0 13px}
.road-routes .cards {grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:12px}
.road-routes .card {padding:12px;border-radius:6px;background:var(--bg)}
.road-routes .card:hover:not(:disabled) {background:var(--panel)}
.road-routes .card b {font-size:15px;line-height:1.35}
.road-routes .card span {font-size:12px;line-height:1.5}
.road-routes .fanrow {gap:12px}
.road-routes .fansel select {min-height:44px;background:var(--bg);padding:7px 8px}
.road-routes .ach-wrap summary {font-family:var(--road-copy);font-size:17px;line-height:1.5;font-weight:800;letter-spacing:-.02em;margin-top:30px}
.road-routes .ach div {background:var(--bg)}
.road-guide {padding-block:56px 64px;scroll-margin-top:24px}
.road-guide:focus-visible {outline:3px solid var(--blue);outline-offset:8px;border-radius:6px}
.road-guide-grid {display:grid;grid-template-columns:minmax(0,1fr) minmax(310px,.85fr);gap:52px;align-items:start}
.road-steps {list-style:none;padding:0;margin:0;display:grid;gap:26px}
.road-steps li {display:flex;gap:17px;align-items:flex-start}
.road-step-number {display:grid;place-items:center;width:36px;height:36px;flex:none;border:1px solid var(--line);background:var(--panel);color:var(--blue);font-size:14px;font-weight:850;border-radius:6px}
.road-steps h3 {margin:3px 0 7px;font-size:17px;line-height:1.3;letter-spacing:-.025em;font-weight:800}
.road-steps p {margin:0;font-size:14px;line-height:1.75;color:var(--muted)}
.road-controls-panel {border:1px solid var(--line);border-radius:9px;background:var(--panel);padding:23px 24px}
.road-controls-panel h3 {margin:0 0 19px;font-size:17px;line-height:1.3;font-weight:800;letter-spacing:-.02em}
.road-key-list {margin:0}
.road-key-list>div {display:flex;justify-content:space-between;gap:15px;align-items:center;min-height:45px;padding:8px 0;border-bottom:1px solid var(--line)}
.road-key-list>div:first-child {padding-top:0}
.road-key-list dt {font-size:13px;color:var(--muted);line-height:1.45}
.road-key-list dd {margin:0;display:flex;flex-wrap:wrap;gap:5px;justify-content:flex-end;align-items:center;flex:none}
.road-key-list dd>span {color:var(--muted);font-size:10px}
.road-key-list kbd {display:inline-grid;place-items:center;min-width:28px;min-height:27px;padding:3px 6px;border:1px solid var(--line);border-bottom-width:3px;background:var(--bg);border-radius:4px;font:700 11px ui-monospace,"Courier New",monospace;color:var(--ink)}
.road-touch-note {margin:19px 0 0;font-size:12px;color:var(--muted);line-height:1.75}
.road-touch-note strong {font-weight:750;color:var(--ink)}
.road-save-note {display:flex;align-items:flex-start;gap:17px;margin-top:34px;padding:22px 24px;border:1px solid var(--line);border-radius:8px;background:var(--panel)}
.road-save-mark {display:grid;place-items:center;width:38px;height:38px;flex:none;background:var(--road-amber);color:var(--road-deep);font-size:22px;line-height:1;border-radius:6px}
.road-save-note h3 {margin:0 0 5px;font-size:15px;font-weight:800;letter-spacing:-.02em}
.road-save-note p {margin:0;font-size:13px;color:var(--muted);line-height:1.7}
.road-footer {background:var(--road-deep);color:#e5edfa;padding:32px 0 28px}
.road-footer-top {display:flex;flex-wrap:wrap;justify-content:space-between;gap:22px;align-items:center}
.road-footer-top>p {margin:0;font-size:13px;color:#bac9de}
.road-footer-back {display:inline-flex;gap:14px;min-height:44px;align-items:center;color:#e5edfa;font-size:13px;font-weight:700;text-decoration:none}
.road-footer-back:hover {text-decoration:underline;text-underline-offset:4px}
.road-footer .note {padding-top:20px;margin-top:24px;border-top:1px solid #ffffff1f;color:#9cacc4;font-size:11px;line-height:1.75}
.road-footer .note a:focus-visible {outline-color:var(--road-amber)}
@media (min-width:701px) and (max-width:1020px) {
  .road-hero-inner {grid-template-columns:minmax(0,1fr) 270px;gap:32px}
  .road-hero h1 {font-size:clamp(42px,6vw,60px)}
  .road-hero-lead {font-size:16px}
  .road-hero-actions {gap:10px}
  .road-button {font-size:14px;padding-inline:16px}
  .road-guide-grid {gap:30px}
}
@media (max-width:850px) {
  .road-section-heading {align-items:flex-start;flex-direction:column;gap:14px}
  .road-section-heading>p {max-width:650px}
  .road-route-families {gap:12px}
  .road-family {padding:19px 17px}
  .road-guide-grid {grid-template-columns:1fr;gap:29px}
  .road-key-list>div {min-height:44px}
  .road-key-list dd {max-width:65%;flex-shrink:1}
}
@media (max-width:700px) {
  .road-hero-inner {grid-template-columns:1fr;gap:0;padding-block:34px}
  .road-hero h1 {font-size:clamp(37px,8.5vw,59px);margin-block:12px 16px}
  .road-hero-lead {font-size:16px;line-height:1.7}
  .road-hero-actions {margin-top:23px}
  .road-first-route {display:none}
  .road-route-families {grid-template-columns:1fr;gap:10px}
  .road-family {display:grid;grid-template-columns:28px minmax(0,1fr);column-gap:13px;padding:17px 18px}
  .road-family-number {grid-column:1;grid-row:1/3;margin:4px 0 0}
  .road-family h3 {grid-column:2;margin-bottom:5px;font-size:15px}
  .road-family p {grid-column:2;font-size:12px;line-height:1.65}
  .road-catalog-panel {padding:20px}
  .road-footer-top>p {display:none}
}
@media (max-width:600px) {
  .road-container {width:calc(100% - 28px)}
  .road-topbar-inner {min-height:66px;gap:12px}
  .road-brand-mark {width:40px;height:40px;font-size:16px}
  .road-brand-name {font-size:10px}
  .road-nav {gap:2px}
  .road-nav a {font-size:12px;padding:8px 9px}
  .road-game-section {padding-block:25px 33px}
  .road-game-heading {margin-bottom:12px;gap:4px}
  .road-game-heading .road-eyebrow {font-size:10px}
  .road-game-heading>p:last-child {font-size:10px}
  .road-routes {padding-top:30px}
  .road-section-heading {margin-bottom:20px}
  .road-section-heading .road-eyebrow {font-size:10px}
  .road-section-heading>p {font-size:13px}
  .road-routes .menu>.progress:first-child {font-size:12px;padding:12px 13px;margin-bottom:21px}
  .road-routes .menu h2 {font-size:18px;margin-top:25px}
  .road-routes .fansel select {min-height:44px}
  .road-guide {padding-block:39px 43px}
  .road-steps {gap:21px}
  .road-steps li {gap:13px}
  .road-steps h3 {font-size:16px}
  .road-steps p {font-size:13px}
  .road-controls-panel {padding:20px}
  .road-save-note {padding:18px;margin-top:26px;gap:13px}
  .road-save-note p {font-size:12px}
  .road-footer {padding-block:25px}
}
@media (max-width:420px) {
  .road-topbar-inner {flex-wrap:wrap;justify-content:space-between;gap:0;padding-block:11px 7px}
  .road-brand-name {font-size:10px}
  .road-nav {width:100%;justify-content:space-between;margin-top:7px}
  .road-nav a {min-height:44px;padding-inline:11px}
  .road-nav a:last-child {border-color:transparent}
  .road-hero-inner {padding-block:28px}
  .road-hero h1 {font-size:37px;letter-spacing:-.055em}
  .road-hero-lead {font-size:14px;line-height:1.75}
  .road-hero-actions {display:grid;grid-template-columns:1fr;gap:11px}
  .road-button {width:100%;font-size:14px;min-height:48px}
  .road-hero-note {font-size:11px}
  .road-catalog-panel {padding:16px 12px}
  .road-routes .cards {grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}
  .road-routes .card {padding:10px;gap:7px}
  .road-routes .card b {font-size:13px;line-height:1.35}
  .road-routes .card span {font-size:11px;line-height:1.45}
  .road-routes .menu h2 {font-size:17px}
  .road-routes .ach {grid-template-columns:1fr}
  .road-controls-panel {padding:18px 15px}
  .road-key-list>div {gap:8px}
  .road-key-list dt {font-size:12px}
  .road-key-list dd {gap:4px}
  .road-key-list kbd {font-size:10px;padding-inline:5px;min-width:26px}
  .road-key-list dd>span {font-size:9px}
  .road-footer-top {gap:14px}
  .road-footer-back {font-size:12px;gap:8px}
}
@media (prefers-reduced-motion:reduce) {
  .road-button {transition:none}
  .road-first-route {transform:none}
}
