:root{--bg:#080a0f;--panel:#141923;--panel2:#0f141d;--line:#2b3443;--text:#f5f2e8;--muted:#98a3b3;--gold:#d7ad58;--red:#a8454b;--green:#45cb89}
*{box-sizing:border-box}html,body{margin:0;min-height:100%;background:radial-gradient(circle at 30% -10%,#202b3b 0,#090b10 42%);color:var(--text);font-family:Inter,system-ui,-apple-system,"Segoe UI",sans-serif}button,input,select{font:inherit}button{border:1px solid var(--line);background:#222b39;color:var(--text);border-radius:12px;padding:12px 16px;font-weight:800;cursor:pointer}button:disabled{opacity:.35;cursor:not-allowed}.primary{background:linear-gradient(135deg,#e0b85f,#9f762d);color:#161007;border-color:#e9cb86}.danger{background:#913b42;border-color:#bd6267}.ghost{background:transparent}.big{width:100%;padding:15px}.huge{width:100%;min-height:58px;font-size:1.05rem}.topbar{display:flex;justify-content:space-between;align-items:center;padding:18px 26px;border-bottom:1px solid var(--line);background:rgba(8,10,15,.86);position:sticky;top:0;z-index:5;backdrop-filter:blur(12px)}.topbar h1{margin:0;font-family:Georgia,serif}.topbar p{margin:4px 0 0;color:var(--muted)}.badge{padding:8px 10px;border-radius:999px;font-size:.72rem;font-weight:900}.online{color:#79e4ae;background:#133326}.offline{color:#e48990;background:#35181b}.container{max-width:1200px;margin:auto;padding:28px 18px 60px}.panel,.phone-card{background:linear-gradient(180deg,rgba(20,25,35,.98),rgba(13,17,24,.98));border:1px solid var(--line);border-radius:20px;padding:24px}.hidden{display:none!important}.setup-grid{display:grid;grid-template-columns:1fr 1fr;gap:24px}.setup-card{padding:14px}.role-icon{font-size:2.2rem}.muted{color:var(--muted)}.small{font-size:.86rem}.tiny{font-size:.75rem}label{display:block;margin:16px 0 8px;color:#c8d0dc}input,select{width:100%;margin-top:7px;padding:13px;border-radius:11px;border:1px solid #354154;background:#0c1118;color:var(--text);font-size:16px}.eyebrow{font-size:.68rem;letter-spacing:.18em;font-weight:900;color:var(--gold)}.hero-room{text-align:center;max-width:760px;margin:auto}.room-code{font-size:3.4rem;font-weight:1000;letter-spacing:.16em;color:#f3d58c}.small-code{font-size:2rem}.invite-row{display:flex;gap:10px;align-items:end}.invite-row input{margin:0}.lobby-columns{display:grid;grid-template-columns:1.3fr .7fr;gap:30px;margin-top:28px}.host-actions{align-self:start}.host-actions button{margin-bottom:10px}.status-line{color:var(--muted);margin-bottom:10px}.players{list-style:none;margin:0;padding:0}.players li{display:flex;justify-content:space-between;gap:10px;padding:11px 8px;border-bottom:1px solid var(--line)}.players.compact li{padding:8px 4px}.online-dot{color:var(--green)}.phone-shell{max-width:620px;margin:auto}.center{text-align:center}.mini-players{display:flex;flex-wrap:wrap;gap:8px;justify-content:center;margin:20px 0}.mini-players span{padding:8px 10px;border:1px solid var(--line);border-radius:999px}.host-game-layout{display:grid;grid-template-columns:280px 1fr;gap:18px}.side-panel{align-self:start;position:sticky;top:100px}.turn-sub{padding:12px;background:#0e131b;border-left:4px solid var(--gold);border-radius:8px;margin-bottom:20px}.winner-box{padding:14px;background:#203821;border:1px solid #3d6741;border-radius:12px;margin-top:15px}.board-head,.controller-top{display:flex;justify-content:space-between;align-items:center;gap:12px}.host-room-pill,.location-badge{padding:9px 12px;border:1px solid rgba(215,173,88,.35);background:rgba(215,173,88,.1);border-radius:999px;color:#edd08c;font-weight:800}.board{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin:18px 0}.room{min-height:125px;padding:13px;border:1px solid #344052;border-radius:14px;background:linear-gradient(145deg,#171e29,#0e131b)}.tokens{display:flex;gap:6px;flex-wrap:wrap;margin-top:24px}.token{width:36px;height:36px;display:flex;align-items:center;justify-content:center;border-radius:50%;background:#344153;border:1px solid #71809b;font-size:.72rem;font-weight:900}.dead{opacity:.4}.log{height:280px;overflow:auto;border:1px solid var(--line);background:#090d13;border-radius:12px;padding:10px}.log p{padding:7px;margin:0;border-bottom:1px dashed #222b38}.turnbox{margin:18px 0;padding:17px;border-radius:13px;border-left:5px solid var(--gold);background:#0d1219;font-size:1rem}.controller-actions{display:grid;gap:10px}.controller-tools{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:12px 0 20px}.private-notice{padding:14px;border:1px solid rgba(215,173,88,.4);background:rgba(215,173,88,.1);border-radius:12px;margin-bottom:12px;color:#f1d797}.card-list{display:flex;flex-wrap:wrap;gap:8px;margin:15px 0}.card-chip{padding:9px 11px;border-radius:10px;background:#232c39;border:1px solid #46546b}.note-row{display:grid;grid-template-columns:minmax(130px,1fr) 42px 42px 42px;align-items:center;padding:7px 0;border-bottom:1px solid var(--line)}.note-row input{width:18px;height:18px;margin:0}.note-head{color:var(--gold)}dialog{border:1px solid #394558;border-radius:18px;background:#141923;color:var(--text);padding:0;max-width:min(92vw,560px)}dialog::backdrop{background:rgba(0,0,0,.72)}.dialog-card{padding:22px;min-width:min(86vw,400px)}.dialog-card.wide{min-width:min(90vw,620px)}.dialog-actions{display:flex;justify-content:flex-end;gap:9px;margin-top:18px}.warning{padding:10px;border-left:4px solid var(--red);background:#2f171a}
@media(max-width:800px){.topbar{padding:13px 14px}.topbar p{display:none}.container{padding:16px 10px 36px}.setup-grid,.lobby-columns,.host-game-layout{grid-template-columns:1fr}.side-panel{position:static}.board{grid-template-columns:repeat(2,1fr)}.room-code{font-size:2.3rem}.invite-row{flex-direction:column;align-items:stretch}.controller-top{align-items:flex-start;flex-direction:column}.phone-card{padding:18px 14px}}
/* Menu host: aggiunta isolata, senza modifiche al tabellone. */
.host-settings{position:relative;flex-shrink:0}.host-settings summary{cursor:pointer;border:1px solid var(--line);border-radius:12px;padding:10px 13px;font-size:.85rem;list-style:none}.host-settings summary::-webkit-details-marker{display:none}.host-settings summary:focus-visible{outline:3px solid var(--gold);outline-offset:3px}.settings-dropdown{position:absolute;right:0;top:calc(100% + 10px);width:min(320px,calc(100vw - 24px));padding:18px;background:#1d2c23;border:1px solid #8b7953;border-radius:14px;box-shadow:0 16px 40px #0008;z-index:20}.settings-dropdown p{font-size:.85rem;margin:0 0 14px}.settings-dropdown small{display:block;color:var(--muted);font-size:.72rem;margin-top:10px}@media(max-width:600px){.topbar{flex-wrap:wrap}.host-settings summary{font-size:.72rem;padding:8px}.settings-dropdown{position:fixed;top:110px;right:12px}}
/* Mystery Mansion — edizione Villa Notturna */
:root{--bg:#101b18;--panel:#18251f;--panel2:#17221e;--line:#34453b;--text:#f3eddd;--muted:#b0baac;--gold:#d6b574}
html,body{background:radial-gradient(ellipse at 15% 0,#2b4033 0,transparent 55%),#101b18}body{line-height:1.5}button{background:#2b3e32;border-color:#4a5b48;font-weight:650;transition:background .18s,transform .18s,box-shadow .18s}button:not(:disabled):hover{background:#3d5340;box-shadow:0 4px 18px #0003;transform:translateY(-1px)}button.primary{background:linear-gradient(120deg,#edcf8b,#c4a261);color:#20271c}button.primary:hover{background:#efd69d}button.danger{background:#743e3e;border-color:#975555}button:focus-visible,input:focus-visible,select:focus-visible,.map-target:focus-visible{outline:3px solid #eed18d;outline-offset:3px}input,select{background:#101c16;border-color:#485343}h1,h2,h3{font-family:Georgia,'Times New Roman',serif;font-weight:500}h2{font-size:1.65rem;margin:.35em 0 .6em}h3{font-size:1.1rem}.topbar{background:#111d18e8;border-color:#394535;padding:14px 32px;gap:15px}.topbar>div:first-child{margin-right:auto}.topbar h1{font-size:1.5rem;letter-spacing:.03em}.topbar p{font-size:.78rem}.container{max-width:1480px;padding:30px 32px 50px}.intro{padding:25px 12px 38px;position:relative}.intro h2{font-size:clamp(2.6rem,5vw,4.6rem);line-height:1.04;margin:15px 0;color:#f0e4c7}.intro p{color:#bcc7b9;margin-bottom:14px}.intro>span{font-size:.8rem;color:#d6b574;letter-spacing:.045em}.panel,.phone-card{background:linear-gradient(130deg,#213127ee,#17231fee);border-color:#43503c;border-radius:16px;box-shadow:0 16px 45px #0002}.setup-grid{max-width:1000px;padding:0;overflow:hidden;gap:0}.setup-card{padding:32px 36px}.host-card{border-right:1px solid #46503d;background:linear-gradient(150deg,#3a483127,transparent)}.role-icon{filter:saturate(.6);font-size:1.9rem}.host-game-layout{grid-template-columns:270px minmax(0,1fr);align-items:start}.board-panel{padding:22px;max-width:960px}.board-head h2{font-size:2.1rem;margin:2px 0}.board{display:block;width:100%;margin:16px 0 9px;aspect-ratio:1;filter:drop-shadow(0 8px 12px #0004)}.board svg{display:block;width:100%;height:100%}.board-key{display:flex;gap:18px;flex-wrap:wrap;font-size:.68rem;color:#bfc6b2;margin-top:12px}.board-caption{font-size:.8rem;text-align:center;color:#c7cbb9;margin-bottom:20px}.side-panel{top:99px;padding:20px}.turn-sub{background:#111e17;border-color:#d6b574;font-size:.85rem}.player-label{display:flex;align-items:center;gap:10px;min-width:0}.player-label i{display:grid;place-items:center;background:var(--pawn);color:#16231a;flex:none;width:26px;height:26px;font-style:normal;border-radius:50%;font-size:.75rem;font-weight:bold;box-shadow:0 2px 4px #0005}.player-label small{display:block;font-size:.65rem;color:var(--muted)}.players li{align-items:center;font-size:.88rem;border-color:#394736}.players .active-player{background:#d6b57412;border-radius:8px;padding:10px 7px}.log{height:180px;background:#101b16;border-color:#3b4a39;font-size:.83rem}.log p{border-color:#344331;padding:9px 6px}.dice-panel{text-align:center;padding:18px 0 12px;overflow:hidden}.dice-panel p{color:#bdc7b5;font-size:.8rem;margin:12px 0 0}.dice-panel b{color:#ebd090;font-size:1.2rem}.dice-pair{display:flex;justify-content:center;gap:17px;perspective:600px;padding:8px}.die{width:60px;height:60px;display:grid;grid-template-columns:repeat(3,1fr);grid-template-rows:repeat(3,1fr);gap:5px;padding:10px;border-radius:13px;background:linear-gradient(130deg,#fff4d8,#cdbb90);border:1px solid #f8eace;box-shadow:3px 5px 0 #907e57,6px 12px 14px #0005;transform:rotate(-7deg)}.die:nth-child(2){transform:rotate(9deg)}.die i{border-radius:50%;display:block}.die .pip{background:#263a2d;box-shadow:inset 1px 1px 2px #0008}.rolling .die{animation:tumble 1s cubic-bezier(.2,.6,.4,1)}.rolling .die:nth-child(2){animation-delay:60ms}@keyframes tumble{0%{transform:translateY(-22px) rotateX(0) rotateZ(0)}25%{transform:translateY(5px) rotateX(180deg) rotateZ(80deg)}55%{transform:translateY(-15px) rotateX(360deg) rotateZ(180deg)}80%{transform:translateY(0) rotateX(360deg) rotateZ(330deg)}100%{transform:translateY(0) rotateX(360deg) rotateZ(353deg)}}.map-target{cursor:pointer;transition:filter .15s}.map-target:hover{filter:brightness(1.3);stroke:#fff1b5;stroke-width:3}.pawn-layer{pointer-events:none}.destination-list{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-bottom:18px}.destination-list button{font-size:.85rem;padding:10px}.destination-list small{display:block;color:#d2c69e;font-size:.68rem}.mini-board{max-width:550px;margin:12px auto}.turnbox{background:#102119}.phone-card{padding:24px}.controller-top h2{margin-bottom:0}.location-badge{font-size:.8rem}.controller-actions{grid-template-columns:1fr 1fr}.controller-actions .huge{font-size:.9rem;padding:13px 8px}.controller-actions #moveBtn{grid-column:1/-1}.controller-actions #accuseBtn{grid-column:1/-1;background:transparent;color:#e3a2a2}.controller-tools button{font-size:.82rem}.private-notice{background:#57492344}.card-chip{background:#d8c59c;color:#26372d;border-color:#eed9ac;padding:17px 14px;box-shadow:0 4px 9px #0003;font-family:Georgia,serif}.full{width:100%;margin:5px 0}dialog{max-height:90dvh;max-width:min(94vw,690px);background:#1d2c23;border-color:#8b7953;box-shadow:0 30px 100px #0008}dialog::backdrop{background:#060e0be0;backdrop-filter:blur(5px)}.dialog-card{max-width:100%;min-width:min(86vw,400px)}.dialog-card.wide{min-width:min(86vw,590px)}.rules-card{padding:32px 36px;max-width:670px}.rules-card h2{font-size:2.2rem}.rules-card ol{padding-left:21px}.rules-card li{padding-left:8px;margin:14px 0;font-size:.9rem;color:#ccd3c5}.rules-card li b{color:#efdfb6}.note-row input{accent-color:#d6b574}.note-row{font-size:.85rem}.note-head{position:sticky;top:-22px;background:#1d2c23;padding:13px 0}.room-code{font-family:monospace}.status-line{margin:18px 0}.winner-box{background:#425334;border-color:#a49b5a}.badge.offline{color:#d4c5a5;background:#403927}.badge.online{background:#2c5138;color:#aee3b8}#toast{position:fixed;bottom:20px;left:50%;transform:translateX(-50%);background:#e8d49e;color:#162319;padding:14px 20px;z-index:99;border-radius:12px}
@media(min-width:1100px){.board-panel .board{max-height:calc(100vh - 220px);width:auto;max-width:100%;margin-left:auto;margin-right:auto}.board-panel .board svg{max-height:calc(100vh - 220px)}}
@media(max-width:800px){.container{padding:18px 12px 35px}.topbar{padding:12px;gap:8px}.topbar h1{font-size:1.15rem}.topbar button{padding:8px 10px;font-size:.75rem}.badge{font-size:.6rem;padding:7px}.intro{padding:18px 8px 28px}.setup-card{padding:24px}.host-card{border-right:0;border-bottom:1px solid #46503d}.host-game-layout{grid-template-columns:1fr}.side-panel{position:static}.board-panel{padding:12px}.board-key{gap:9px;font-size:.6rem}.board-head h2{font-size:1.5rem}.host-room-pill{font-size:.65rem}.rules-card{padding:24px 20px}.rules-card h2{font-size:1.8rem}.phone-card{padding:18px 14px}.controller-top{flex-direction:row;align-items:center}.controller-top h2{font-size:1.4rem}.location-badge{max-width:48%;font-size:.7rem}.side-panel .dice-panel{padding:5px 0}.dialog-card.wide{min-width:0;width:86vw}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}

/* Scene illustrate: vettoriali, leggere e indipendenti dal movimento di gioco. */
.cinema-dialog{width:min(900px,94vw);max-width:900px;border-radius:22px;padding:0;overflow:auto;background:#14251f;box-shadow:0 40px 120px #000b}.cinema-visual{aspect-ratio:5/2;overflow:hidden;background:#172e29;position:relative;border-bottom:1px solid #897549}.cinema-visual:after{content:"";position:absolute;inset:0;box-shadow:inset 0 -35px 50px #14251f66;pointer-events:none}.cinema-visual svg,.action-art svg{width:100%;height:100%;display:block}.cinema-copy{padding:27px 34px 28px}.cinema-copy h2{font-size:clamp(1.7rem,3.7vw,2.8rem);line-height:1.15;margin:10px 0 15px}.cinema-copy>p{max-width:710px;font-size:1rem;line-height:1.7;color:#d4dbcd}.cinema-clues{display:flex;flex-wrap:wrap;gap:9px;margin-top:18px}.cinema-clues span{padding:8px 13px;background:#b79a5915;border:1px solid #bba46b66;border-radius:8px;color:#ead8a4;font-size:.82rem}.cinema-controls{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:24px;border-top:1px solid #67775444;padding-top:20px}.cinema-controls>span{font-size:.75rem;color:#adbaa6;white-space:nowrap}.cinema-controls button{font-size:.85rem}.action-scene{display:grid;grid-template-columns:300px 1fr;background:linear-gradient(120deg,#243e31,#152820);border:1px solid #677551;border-radius:16px;overflow:hidden;margin-bottom:20px;min-height:164px;animation:scene-enter .45s ease-out}.action-art{overflow:hidden;min-height:170px}.action-art svg{object-fit:cover;width:425px;max-width:none;position:relative;left:50%;transform:translateX(-50%)}.action-copy{padding:18px 22px;align-self:center}.action-copy h3{font-size:1.45rem;line-height:1.2;margin:6px 0 9px}.action-copy p{margin:0 0 9px;line-height:1.5;color:#e1e0ce;font-size:.86rem}.action-copy small{display:block;font-size:.76rem;color:#b2c4ad}.action-copy .cinema-clues{margin-top:10px}.replay-finale{margin-top:12px;font-size:.75rem;padding:8px 12px}.phone-scene{grid-template-columns:88px 1fr;min-height:100px;margin-bottom:12px}.phone-scene .action-art{min-height:100%;position:relative}.phone-scene .action-art svg{height:160px;width:400px;position:absolute;top:50%;left:15%;transform:translate(-28%,-50%)}.phone-scene .action-copy{padding:12px}.phone-scene h3{font-size:1rem}.phone-scene p{font-size:.72rem}.phone-scene small{font-size:.66rem}.phone-scene .eyebrow{font-size:.55rem}.scene-actor,.actor-body,.actor-arm,.leg,.floating-cards,.case-stamp{transform-box:fill-box;transform-origin:center}.walking{animation:actor-travel 4s ease-in-out infinite alternate}.walking .actor-body{animation:actor-bob .6s ease-in-out infinite alternate}.walking .leg-one{transform-origin:top;animation:actor-stride .6s ease-in-out infinite alternate}.walking .leg-two{transform-origin:top;animation:actor-stride .6s ease-in-out infinite alternate-reverse}.examining .actor-arm{transform-origin:20% 85%;animation:inspect-clue 3s ease-in-out infinite}.witness{animation:actor-bob 3s ease-in-out infinite alternate;transform-box:fill-box;transform-origin:center}.floating-cards{animation:clues-float 4s ease-in-out infinite}.case-stamp{animation:case-stamp .9s cubic-bezier(.2,.7,.2,1) both}.confetti{animation:gold-fall 4s linear infinite;transform-box:fill-box;transform-origin:center}.escaping{animation:escape-night 6s ease-in-out infinite}.mist{animation:mist-drift 9s ease-in-out infinite alternate}.villa-window{animation:window-glow 5s ease-in-out infinite alternate}.scene-wrong .actor-body{animation:wrong-shake .7s ease-in-out 2}.scene-win .actor-arm{animation:victory-arm 1.7s ease-in-out 3;transform-origin:20% 90%}.scene-arrival .villa-door{animation:window-glow 3s ease-in-out infinite alternate}
.film-dice{transform-box:fill-box;transform-origin:center;animation:film-dice-drop 1s ease-out both}@keyframes film-dice-drop{0%{transform:translateY(-65px) rotate(70deg);opacity:0}55%{transform:translateY(12px) rotate(-9deg);opacity:1}80%{transform:translateY(-8px) rotate(4deg)}100%{transform:translateY(0) rotate(0);opacity:1}}
@keyframes scene-enter{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}
@keyframes actor-travel{from{transform:translateX(-35px)}to{transform:translateX(105px)}}
@keyframes actor-bob{from{transform:translateY(0)}to{transform:translateY(-4px)}}
@keyframes actor-stride{from{transform:rotate(-10deg)}to{transform:rotate(10deg)}}
@keyframes inspect-clue{0%,100%{transform:rotate(0)}50%{transform:rotate(-14deg)}}
@keyframes clues-float{0%,100%{transform:translateY(0)}50%{transform:translateY(-10px)}}
@keyframes case-stamp{from{opacity:0;transform:scale(1.7) rotate(-15deg)}to{opacity:1;transform:scale(1) rotate(-5deg)}}
@keyframes gold-fall{from{transform:translateY(-70px) rotate(0);opacity:0}15%{opacity:1}to{transform:translateY(350px) rotate(210deg);opacity:0}}
@keyframes escape-night{0%{transform:translateX(-70px);opacity:1}85%,100%{transform:translateX(150px);opacity:0}}
@keyframes mist-drift{from{transform:translateX(-50px)}to{transform:translateX(80px)}}
@keyframes window-glow{from{opacity:.55}to{opacity:1}}
@keyframes wrong-shake{0%,100%{transform:translateX(0)}25%{transform:translateX(-7px)}75%{transform:translateX(7px)}}
@keyframes victory-arm{0%,100%{transform:rotate(-10deg)}50%{transform:rotate(-35deg)}}
@media(max-width:800px){.topbar{flex-wrap:wrap}#cinemaGuideBtn{font-size:.72rem;padding:8px 10px}.action-scene:not(.phone-scene){grid-template-columns:160px 1fr}.action-copy{padding:14px}.action-copy h3{font-size:1.15rem}.cinema-copy{padding:20px}.cinema-copy>p{font-size:.9rem}.cinema-controls{flex-wrap:wrap}.cinema-controls button{padding:10px}.cinema-visual{aspect-ratio:2/1}.cinema-visual svg{width:125%;max-width:none;margin-left:-12.5%}}
@media(max-width:480px){.action-scene:not(.phone-scene){grid-template-columns:1fr}.action-scene:not(.phone-scene) .action-art{height:140px;min-height:0}.cinema-clues span{font-size:.72rem;padding:7px 10px}}
@media(prefers-reduced-motion:reduce){.cinema-dialog *,.action-scene *{animation:none!important;transition:none!important}}

/* Le illustrazioni coprono solo il campo; la cronaca resta leggibile sotto. */
.board-stage{position:relative;isolation:isolate;margin:16px auto 10px;aspect-ratio:1;width:100%;overflow:hidden;border-radius:12px}
.board-panel .board-stage .board{width:100%;height:100%;max-height:none;margin:0;filter:none}.board-panel .board-stage .board svg{max-height:none}
.board-scene-overlay{position:absolute;inset:0;z-index:3;display:flex;align-items:center;justify-content:center;overflow:hidden;border-radius:12px;background:radial-gradient(ellipse at center,#355741e8,#0c211ced);backdrop-filter:blur(3px);pointer-events:none;opacity:1;animation:board-scene-in .35s ease-out both;transition:opacity .45s ease}
.board-scene-overlay svg{display:block;width:100%;height:auto;max-height:100%;filter:drop-shadow(0 12px 25px #0005)}
.board-scene-overlay.scene-fading{opacity:0;animation:none}
.action-scene.field-story,.action-scene.phone-scene{display:block;min-height:0;margin:0 0 12px;border-radius:10px;animation:none;background:#192e25;border-color:#536744}
.field-story .action-copy{padding:12px 16px}.field-story .action-copy h3{font-size:1.15rem;margin:4px 0 6px}.field-story .action-copy p{font-size:.85rem}.field-story .action-copy small{font-size:.73rem}
.route-traveller{animation:route-cross 3.65s cubic-bezier(.3,.05,.65,1) both}.route-traveller .actor-body{animation:actor-bob .45s ease-in-out infinite alternate}.route-traveller .leg-one,.route-traveller .leg-two{transform-origin:top}.route-traveller .leg-one{animation:actor-stride .45s ease-in-out infinite alternate}.route-traveller .leg-two{animation:actor-stride .45s ease-in-out infinite alternate-reverse}.route-stationary{animation:actor-bob 1s ease-in-out infinite alternate}.destination-glow{animation:destination-arrive 3.65s ease both}
@keyframes route-cross{0%,10%{transform:translateX(0)}88%,100%{transform:translateX(440px)}}
@keyframes destination-arrive{0%,70%{opacity:0}100%{opacity:1}}
@keyframes board-scene-in{from{opacity:0}to{opacity:1}}
@media(min-width:1100px){.board-stage{max-width:calc(100vh - 220px)}}
@media(prefers-reduced-motion:reduce){.board-scene-overlay,.board-scene-overlay *{animation:none!important;transition:none!important}.route-traveller{transform:translateX(440px)}}
