:root{color-scheme:dark;--mint:#b53035;--ink:#442b22;--muted:#b53035;--amber:#f0c875}*{box-sizing:border-box}body{margin:0;background:#f7d769;color:var(--ink);font-family:Arial,sans-serif}button{font:inherit;cursor:pointer;border:1px solid #d4ac48;border-radius:9px;background:#fff2c1;color:var(--ink);padding:12px 18px;touch-action:manipulation}button:disabled{opacity:.45;cursor:default}button:focus-visible,canvas:focus-visible{outline:3px solid var(--amber);outline-offset:2px}button:hover{border-color:var(--mint)}[hidden]{display:none!important}main{max-width:1200px;margin:auto;padding:0 25px}header{height:80px;display:flex;align-items:center;justify-content:space-between}.brand{display:flex;align-items:center;gap:13px}.brand img{object-fit:contain}small,.eyebrow{font-size:9px;font-weight:700;letter-spacing:1.8px;color:var(--muted)}h1{font-size:26px;letter-spacing:-1px;margin:4px 0 0}h1 span{color:var(--mint)}.game-shell{position:relative;border:1px solid #d4ac48;border-radius:14px;overflow:hidden;background:#fff2c1}.dashboard{display:flex;justify-content:space-between;gap:20px;padding:17px 22px;border-bottom:1px solid #d4ac48}.dashboard h2{margin:5px 0 0;font-size:21px;letter-spacing:-.6px}.dashboard-stats{display:flex;gap:30px;text-align:right;align-items:center}.dashboard-stats b{display:block;font-size:23px;margin-top:5px}.game-layout{display:grid;grid-template-columns:minmax(0,1fr) 290px}.stage{position:relative;min-width:0;background:#b53035;aspect-ratio:1;max-height:680px}canvas{display:block;width:100%;height:100%;touch-action:none}.district-caption{position:absolute;bottom:12px;left:15px;color:#b53035;font-size:8px;font-weight:700;letter-spacing:2px;pointer-events:none}.traffic-panel{padding:23px 19px;background:#fff2c1}.panel-heading{display:flex;align-items:center;justify-content:space-between;gap:5px}.panel-heading h3{font-size:18px;letter-spacing:-.4px;margin:6px 0 0}#flow{font-size:9px;color:var(--mint);white-space:nowrap}#instruction{font-size:11px;color:#b53035;line-height:1.5;margin:15px 0}.road-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.road{padding:11px 9px;text-align:left;position:relative;overflow:hidden;min-height:63px;user-select:none;-webkit-user-select:none;touch-action:none}.road .road-top{display:flex;justify-content:space-between;align-items:center;gap:5px}.road .number{font-size:11px;color:#b53035;font-weight:700}.road strong{font-size:17px}.road .name{display:block;font-size:9px;margin-top:5px;letter-spacing:.7px;text-transform:uppercase}.road .wait{position:absolute;left:0;bottom:0;height:3px;width:100%;background:var(--mint);transform-origin:left}.road.urgent{border-color:#e7b15d}.road.urgent .wait{background:var(--amber)}.legend{display:flex;gap:15px;margin:15px 0;font-size:8px;color:#b53035}.legend i{display:inline-block;width:6px;height:6px;border-radius:50%;margin-right:4px}.mint{background:var(--mint)}.amber{background:var(--amber)}.shift-info{border-top:1px solid #d4ac48;margin-top:22px;padding-top:18px}.shift-info>span{font-size:9px;color:#b53035;letter-spacing:1px}.shift-info>div{height:4px;background:#d4ac48;margin:12px 0}.shift-info i{display:block;height:100%;width:0;background:var(--mint)}.shift-info p,.note{font-size:10px;line-height:1.6;color:#b53035}.note{border-top:1px solid #d4ac48;padding-top:18px;margin-top:20px}.toast{position:absolute;left:10%;right:10%;top:40%;pointer-events:none;text-align:center;font-weight:900;font-size:clamp(16px,2.5vw,26px);color:#442b22;text-shadow:0 2px 8px #fff2c1;opacity:0;transform:translateY(6px);transition:opacity .15s,transform .15s}.toast.visible{opacity:1;transform:translateY(0)}.overlay{position:absolute;inset:0;display:flex;align-items:center;background:#f7d769ed;z-index:5;overflow:auto}.menu{padding:35px 6%;width:100%;display:grid;grid-template-columns:1.05fr 1fr;gap:6%;align-items:center}.menu h2{font-size:clamp(42px,6vw,78px);line-height:.97;letter-spacing:-3px;margin:21px 0}.menu h2 em{font-style:normal;color:var(--mint)}.menu p{font-size:13px;line-height:1.65;color:#b53035}.difficulties{display:flex;gap:7px;margin:20px 0 14px}.difficulties button{flex:1;padding:13px 5px;font-size:12px}.difficulties small{display:block;font-size:7px;letter-spacing:1px;margin-top:5px}.difficulties [aria-pressed=true]{background:var(--mint);color:#b53035;border-color:var(--mint)}.difficulties [aria-pressed=true] small{color:#d4ac48}.primary{background:var(--mint);color:#b53035;border-color:var(--mint);font-weight:700;display:flex;justify-content:space-between;width:100%}.secondary{margin-top:10px}.menu .howto{font-size:10px;margin-top:16px}.menu .record{font-size:9px;color:#b53035;letter-spacing:1px}.menu-art img{width:100%;border-radius:12px}.menu-art span{display:block;font-size:9px;letter-spacing:2px;color:#b53035;margin-top:15px}footer{display:flex;justify-content:space-between;font-size:10px;color:#7c582a;padding:16px 0}.loading{position:fixed;inset:0;z-index:20;display:flex;flex-direction:column;gap:25px;align-items:center;justify-content:center;background:#f7d769}.loading img{object-fit:contain}.loading>span{font-size:11px;letter-spacing:5px}.loading>div{width:100px;height:2px;background:var(--mint);animation:load 1s ease-in-out infinite}.loading small{position:absolute;bottom:28px;font-size:10px;letter-spacing:.5px}@keyframes load{50%{transform:scaleX(.3);opacity:.4}}@media(max-width:700px){main{padding:0 9px}header{height:59px}.brand{gap:9px}.brand img{width:25px;height:31px}.brand small{font-size:7px;letter-spacing:1.5px}h1{font-size:22px}header button{padding:10px 14px;font-size:12px}.game-shell{border-radius:10px}.dashboard{padding:10px 12px;gap:6px}.dashboard h2{font-size:15px;margin-top:5px}.dashboard small{font-size:7px;letter-spacing:1px}.dashboard-stats{gap:14px}.dashboard-stats b{font-size:17px}.game-layout{display:block}.stage{width:100%;aspect-ratio:1}.traffic-panel{padding:12px}.panel-heading h3{font-size:13px;margin:0}.panel-heading small{display:none}#instruction{font-size:10px;margin:6px 0 10px}.road-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:6px}.road{padding:8px 7px;min-height:53px}.road .name{font-size:7px;letter-spacing:.3px}.road .number{font-size:9px}.road strong{font-size:15px}.legend{margin:10px 0 0;font-size:7px;gap:12px}.shift-info,.note{display:none}.menu{display:block;padding:25px}.menu-art{display:none}.menu h2{font-size:49px;margin:14px 0}.menu p{font-size:12px}.difficulties{margin:14px 0}.menu .howto{font-size:10px}footer{font-size:8px;padding:12px 0}footer span:last-child{display:none}.district-caption{font-size:6px;bottom:6px;left:8px}.toast{font-size:16px}}@media(max-width:360px){.dashboard{padding:9px}.dashboard-stats{gap:9px}.dashboard h2{font-size:13px}.dashboard-stats b{font-size:15px}.road{padding:8px 5px}.road .name{font-size:6px}.menu{padding:20px}.menu h2{font-size:42px}}@media(prefers-reduced-motion:reduce){.loading>div{animation:none}.toast{transition:none}}
.stage{width:100%}
.traffic-status{font-size:10px;letter-spacing:1px;color:#b53035;border:1px solid #d4ac48;border-radius:5px;padding:8px 10px;margin:0 0 10px}.traffic-status.surge{color:#b53035;border-color:#e0b66b;background:#4b4531}.road.priority{border-color:#b53035;background:#fff2c1}.road.priority .name,.road.priority .number{color:#b53035}.road.priority .wait{background:#b53035}@media(max-width:700px){header{height:56px}.dashboard{padding:8px 12px}.traffic-panel{padding:10px}.road{min-height:50px}.legend{margin-top:6px}.traffic-status{padding:6px 8px;font-size:9px;margin-bottom:8px}}

/* rush-hour: independent visual identity, shared studio only. */
:root{color-scheme:light;--bg:#f7d769;--panel:#fff2c1;--line:#d4ac48;--muted:#7c582a;--text:#442b22;--mint:#b53035;--gold:#b53035;--peach:#b53035;--cyan:#b53035;--accent:#b53035;--light:#fff2c1;--dark:#d4ac48}
body{background:#f7d769;color:#442b22;font-family:"Trebuchet MS", sans-serif}
h1,h2,h3{font-family:"Trebuchet MS", sans-serif}
button{border-radius:14px}
.overlay,.veil{background:#f7d769ed;color:#442b22;backdrop-filter:none}
.menu,.menu-card,.card,.panel{color:#442b22}
.primary,.primary-button,.launch{background:#b53035;color:#b53035;border-color:#b53035}
.primary:hover,.primary-button:hover,.launch:hover{background:#b53035;filter:brightness(1.1)}
button[aria-pressed=true]{border-color:#b53035}

:root{--honey:#b53035;--amber:#b53035}
h2 em,h2>span,.chapter-select button strong,.control-button strong{color:#b53035}

:root{--honey:#b53035;--amber:#b53035}
h2 em,h2>span,.chapter-select button strong,.control-button strong{color:#b53035}
.primary,.primary-button,.launch{color:#ffffff!important}
