/* HRA visual release 1.2.0. Application layout, not an image of an interface. */
:root{--ink:#17384b;--muted:#607785;--paper:#fff7e8;--line:#d8d5c8;--nav:#102e40;--teal:#138b86;--gold:#ffc34a;--red:#f25353;--blue:#229fe6;color-scheme:light;font-family:ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif;color:var(--ink);background:#f5f1e5}
body{color:var(--ink);background:#f5f1e5}a{color:#146a83}button,.button{font:inherit;font-weight:750;min-height:48px;border-radius:10px;background:var(--gold);color:#173042;padding:10px 15px;box-shadow:0 2px 0 #c7933026;transition:background .15s,transform .15s}button:hover,.button:hover{filter:brightness(1.04)}button:active,.button:active{transform:translateY(1px)}button:disabled{opacity:.5;filter:grayscale(.25);cursor:not-allowed}button:focus-visible,a:focus-visible,select:focus-visible,input:focus-visible,textarea:focus-visible,[tabindex]:focus-visible{outline:3px solid #ffbc31;outline-offset:3px}input,select,textarea{font:inherit;color:#17384b;background:#fffef9;border:1px solid #b6c3c5;border-radius:9px;min-height:46px;padding:11px 12px;width:100%}input:focus,textarea:focus{border-color:#148b93}label{font-size:14px;font-weight:600;display:grid;gap:7px}h1,h2,h3,p{overflow-wrap:break-word}h1,h2,h3{letter-spacing:-.035em}h1{font-size:28px}h2{font-size:21px}h3{font-size:18px}.eyebrow{color:#a06b22;font-weight:800;letter-spacing:.13em;font-size:10px}.small-note{font-size:12px;line-height:1.5;color:var(--muted)}.hidden{display:none!important}.ghost,.light-button{background:#fff7e8;border:1px solid #c4c8be;color:var(--ink)}.secondary{background:#e5eee5!important;color:#244b48!important}.quiet-button{background:transparent;border:0;box-shadow:none;color:#687782;font-size:12px;padding:6px;min-height:36px}.danger{color:#a23634;border-color:#d7a4a0}.badge{background:#edf0e6;color:#476066;border:1px solid #cad0c3;border-radius:6px}.error{color:#a72b32}.inline-message{background:#ebf4ea;color:#254b41;border-color:#afcbbb}.inline-message.error{background:#fff0ec;color:#912f36;border-color:#e4aaa2}.inline-message.success{background:#e7f5e8;color:#245b35;border-color:#97c39f}
/* The game and its library both use the entire available page. */
.studio-page{height:100vh;height:100dvh;overflow:hidden;margin:0;background:var(--nav)}
.studio-topbar{height:52px;min-height:52px;display:flex;align-items:center;gap:24px;padding:0 16px;background:linear-gradient(110deg,#102b3b,#163f53);color:#fff;border-bottom:1px solid #4a8290;position:relative;z-index:40}
.studio-brand{display:flex;align-items:center;gap:7px;color:#fff;font-size:19px;font-weight:900;letter-spacing:-.03em;text-decoration:none;white-space:nowrap}.studio-brand>span:last-child{color:var(--gold)}.brand-die{font-size:30px;color:var(--gold);line-height:1}.studio-nav{display:flex;align-items:center;gap:22px;min-width:0;overflow-x:auto;scrollbar-width:none}.studio-nav a,.studio-user a{color:#d9e9ed;text-decoration:none;font-size:13px;white-space:nowrap}.studio-nav a:hover,.studio-user a:hover{color:#fff}.studio-user{margin-left:auto;display:flex;align-items:center;gap:14px;white-space:nowrap}.studio-topbar .nav-action{min-height:36px;background:#ffffff0c;color:#fff;border:1px solid #ffffff24;font-size:13px;padding:6px 12px;border-radius:7px;white-space:nowrap}.studio-topbar .icon-button{width:40px;height:40px;min-height:40px;font-size:24px;background:#ffffff0b;color:#fff;border:1px solid #ffffff2a;padding:0;border-radius:8px}.logout-link{font-size:11px!important;color:#a9c2cb!important}.play-title{font-size:15px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}.play-head-actions{gap:9px}.play-head-actions>a{font-size:12px}
.studio-layout{display:grid;grid-template-columns:minmax(0,1fr) 286px;height:calc(100vh - 52px);height:calc(100dvh - 52px);width:100%;gap:0;margin:0;padding:0}.board-area{position:relative;min-width:0;min-height:0;overflow:hidden;background:#3aa8b5}.board-viewport{position:absolute;inset:0;overflow:hidden;isolation:isolate;touch-action:pan-y}.board-viewport::before{content:"";position:absolute;inset:-15px;background-image:var(--board-backdrop);background-size:cover;background-position:center;filter:blur(14px);transform:scale(1.07);opacity:.92;z-index:-1}.board-stage{position:absolute;overflow:visible;transform-origin:center}.board-art,.board-route,.board-labels,.board-tokens{position:absolute;inset:0;width:100%;height:100%;display:block}.board-art{object-fit:fill;opacity:1;filter:none;user-select:none;pointer-events:none}.board-route{overflow:visible}.board-tokens,.board-labels{pointer-events:none}.board-tokens{z-index:4}.board-labels{z-index:3}.board-loading{position:absolute;left:50%;top:45%;transform:translate(-50%,-50%);font-size:18px;color:#fff;background:#113547d9;padding:20px;border-radius:14px}.board-guideline{stroke:#a36c37;stroke-width:4;stroke-dasharray:7 8;stroke-linecap:round;opacity:.6}.board-node{cursor:pointer;outline:none}.stone-shadow{fill:#8f572b;opacity:.55}.stone-face{stroke:#9b6e3c;stroke-width:2.5}.stone-number{font-size:25px;font-weight:900;text-anchor:middle;dominant-baseline:central;fill:#4d361f;pointer-events:none;paint-order:stroke;stroke:none}.node-station .stone-face{fill:#9354cf;stroke:#ffeaaa;stroke-width:5}.node-start .stone-face{fill:#168a67;stroke:#fff4c5;stroke-width:5}.node-finish .stone-face{fill:#ed4b46;stroke:#fff4c5;stroke-width:5}.node-reward .stone-face,.node-clear_slow_or_score .stone-face{fill:#62bd7c;stroke:#fcf1c6}.node-trap .stone-face,.node-penalty .stone-face,.node-wait .stone-face,.node-slow_rolls .stone-face{fill:#f28346;stroke:#fff0bb}.node-task .stone-face,.node-random .stone-face,.node-move .stone-face,.node-move_to .stone-face{fill:#58bfdd;stroke:#e6fcff}.node-station .stone-number,.node-start .stone-number,.node-finish .stone-number{fill:white}.board-node:hover .stone-face,.board-node:focus-visible .stone-face{stroke:#fff;stroke-width:7;filter:drop-shadow(0 0 7px #ffbd50)}
.station-sign{position:absolute;transform:translate(-50%,27px);pointer-events:auto;max-width:156px;min-height:27px;padding:5px 9px;font-size:11px;line-height:1.2;font-weight:850;color:#fff4dc;background:linear-gradient(#305a69,#163746);border:1px solid #e7c480;border-radius:6px;box-shadow:0 3px 7px #1636446b;text-shadow:0 1px 0 #102c37;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.station-sign:hover{transform:translate(-50%,27px)}.start-sign{background:#146b53}.finish-sign{background:#a93336}.board-pawn{position:absolute;width:42px;height:61px;transform:translate(calc(-50% + var(--pawn-offset,0px)),-87%);filter:drop-shadow(1px 4px 2px #1426377a);pointer-events:none}.pawn-head{position:absolute;left:11px;top:0;width:22px;height:22px;border-radius:50%;background:radial-gradient(circle at 32% 23%,#fff9,var(--pawn-color) 52%,#133f4966);border:1px solid #ffffff99;z-index:2}.pawn-body{position:absolute;left:3px;bottom:2px;width:36px;height:41px;border-radius:36% 36% 44% 44%;background:linear-gradient(90deg,#fff7,var(--pawn-color) 48%,#13283b55);background-color:var(--pawn-color);clip-path:polygon(33% 0,67% 0,88% 72%,100% 86%,94% 100%,6% 100%,0 86%,12% 72%);border-bottom:5px solid #0003}.board-pawn b{position:absolute;top:31px;width:100%;text-align:center;font-size:13px;color:white;text-shadow:0 1px 3px #000;font-weight:900}.board-viewport.is-zoomed{touch-action:none;cursor:grab}.board-viewport.is-zoomed:active{cursor:grabbing}
.map-tools{position:absolute;left:14px;bottom:13px;display:flex;gap:4px;padding:4px;background:#15394bde;border:1px solid #d8e9e65c;border-radius:11px;z-index:12;box-shadow:0 4px 12px #163b4940}.map-tool{min-height:40px;padding:7px 12px;background:transparent;color:#fff;font-size:12px;box-shadow:none;border-radius:7px}.map-tool:first-child,.map-tool:last-child{font-size:23px;padding:0;width:40px}.map-tool:hover{background:#ffffff20}.board-message{position:absolute;left:16px;right:16px;top:16px;z-index:20;padding:13px 16px;background:#fff8e8f5;border:1px solid #d4ad67;border-radius:10px;box-shadow:0 5px 16px #1634473b;color:#234459;line-height:1.4;font-size:14px;display:flex;align-items:center;justify-content:space-between;gap:12px}.board-message.error{background:#fff2e9;color:#963c37}.board-message button{min-height:40px;white-space:nowrap}.board-notice{position:absolute;bottom:18px;left:230px;right:18px;max-width:700px;margin:auto;background:#15384bec;border:1px solid #d7c39699;box-shadow:0 3px 13px #0002;color:#fff3d5;z-index:12;padding:10px 16px;border-radius:8px;font-size:13px;pointer-events:none}
/* Compact, useful side dock instead of the previous large dashboard heading. */
.studio-sidebar{background:linear-gradient(120deg,#fff9ed,#efe7d3);border-left:1px solid #e9d8b8;padding:16px;overflow-y:auto;min-width:0;display:flex;flex-direction:column;gap:17px;color:#1d3b4c;scrollbar-width:thin;box-shadow:-8px 0 20px #25434429;z-index:15}.game-switch label{font-size:11px;text-transform:uppercase;letter-spacing:.1em;display:flex;justify-content:space-between;margin-bottom:7px;color:#59747b}.game-switch select{font-size:13px;min-height:43px;padding:9px 10px;background:#fffdf6}.selected-game h1{font-size:24px;line-height:1.09;margin:5px 0 9px;font-weight:850;letter-spacing:-.05em}.sidebar-kicker{font-size:9px;font-weight:900;letter-spacing:.15em;color:#ae7524;margin:0 0 6px}.game-meta{font-size:11px;line-height:1.5;color:#65787a;margin:8px 0 13px}.primary-play{width:100%;background:linear-gradient(#ffc951,#f2ad26);color:#23323b;min-height:52px;border:1px solid #da9b27;border-bottom:3px solid #c88d22;font-size:16px;border-radius:10px;box-shadow:0 4px 10px #cf941e26;justify-content:center;text-decoration:none;display:flex;font-weight:850;align-items:center}.sidebar-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:9px}.sidebar-actions .button,.sidebar-actions button{font-size:12px;min-height:40px;padding:8px}.selected-game .small-note{margin:8px 0 0;font-size:10px}.sidebar-section-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px}.sidebar-section-head h2{font-size:13px;letter-spacing:0;margin:0}.sidebar-section-head>span{font-size:11px;background:#e3dfce;padding:3px 7px;border-radius:5px}.station-nav-list{display:grid;gap:7px}.station-nav-item{width:100%;padding:5px;display:flex;gap:10px;align-items:center;min-height:52px;text-align:left;justify-content:flex-start;background:#fffaf0;border:1px solid #d9d8c9;border-radius:9px;box-shadow:none}.station-nav-item>img{width:57px;height:42px;object-fit:cover;border-radius:6px}.station-nav-item>span:last-child{display:flex;flex-direction:column;gap:3px}.station-nav-item strong{font-size:11px;line-height:1.2}.station-nav-item small{font-size:10px;font-weight:500;color:#768786}.station-nav-icon{display:grid;place-items:center;width:48px;height:40px;color:#9958be;background:#eadcf1;border-radius:6px}.sidebar-bottom{margin-top:auto;padding-top:2px;display:grid;gap:4px;text-align:center}.sidebar-bottom>small{font-size:10px;color:#85928b}.legend{display:flex;flex-wrap:wrap;justify-content:center;gap:10px;font-size:9px;color:#74827e}.legend span::before{content:"";display:inline-block;width:7px;height:7px;border-radius:50%;margin-right:4px;background:#d8b772}.legend .legend-station::before{background:#9859ca}.legend .legend-event::before{background:#ef9754}
/* Two local players and a tactile die, never miniature controls. */
.play-sidebar{gap:12px}.play-setup h1{font-size:28px;line-height:1.15;letter-spacing:-.04em;margin:8px 0 10px}.setup-description{font-size:13px;line-height:1.6;color:#6a7b7c;margin:12px 0 19px}.play-setup form{display:grid;gap:14px}.player-name>span{font-size:12px}.player-a>span{color:#b94c47}.player-b>span{color:#2783b2}.player-name input{font-weight:700}.player-a input{border-left:4px solid var(--red)}.player-b input{border-left:4px solid var(--blue)}.play-setup .small-note{font-size:11px;margin:14px 0}.setup-stations-title{font-size:13px;margin-top:22px}.setup-station{display:flex;align-items:center;gap:9px;font-size:11px;min-height:28px}.setup-station>span{background:#e3dbc3;border-radius:6px;width:22px;height:22px;display:grid;place-items:center;font-weight:800;color:#8c6f43}.active-game{display:flex;flex-direction:column;gap:9px;min-height:100%}.turn-status{font-size:22px;font-weight:850;line-height:1.2;margin-bottom:6px;color:#214c5b}.players-list{display:grid;gap:9px}.adventure-player{display:flex;gap:10px;align-items:center;padding:10px;border:1px solid #d7d9ce;border-left:4px solid var(--player-color);background:#fffaf0;border-radius:10px;opacity:.82;transition:opacity .2s}.adventure-player.is-active{opacity:1;background:#fffdf4;box-shadow:0 3px 12px #183f4814;border-color:var(--player-color)}.player-symbol{width:32px;height:36px;display:grid;place-items:center;flex-shrink:0;color:white;font-size:17px;font-weight:900;border-radius:9px;background:var(--player-color);text-shadow:0 1px 0 #0003;box-shadow:inset 0 -3px 0 #0002}.adventure-player>div{display:grid;gap:3px;min-width:0}.adventure-player strong{font-size:13px}.adventure-player span:not(.player-symbol){font-size:11px}.adventure-player small{font-size:10px;color:#85908a}.player-restriction{font-style:normal;font-size:10px;color:#ba5b35}.player-restriction:empty{display:none}.dice-control{display:grid;justify-items:center;gap:8px;margin-top:3px;padding:12px 0;border-top:1px solid #dcd6c3;border-bottom:1px solid #dcd6c3}.adventure-dice{width:94px;height:94px;min-height:94px;display:grid;grid-template-columns:repeat(3,1fr);grid-template-rows:repeat(3,1fr);gap:6px;padding:15px;border-radius:20px;color:#224354;background:linear-gradient(130deg,#fffefa,#f0e7d3);border:1px solid #fff;border-bottom:7px solid #d3c4a4;box-shadow:0 7px 12px #4b645c2e;touch-action:none;transform:rotate(-5deg);transition:transform .2s}.adventure-dice:hover{transform:rotate(3deg) translateY(-2px)}.adventure-dice.rolling{animation:dice-wobble .3s infinite}.dice-value{grid-column:1/-1;grid-row:1/-1;display:grid;place-items:center;font-size:48px;font-weight:900}.pip{border-radius:50%;background:#244d60;box-shadow:inset 1px 2px 2px #0004}.pip.empty{visibility:hidden}.dice-control .small-note{font-size:10px;margin:0}.live-episode{border:1px solid #c9c3b2;border-radius:9px;overflow:hidden;background:#fffaf0}.live-episode-button{display:flex;gap:8px;padding:7px;width:100%;background:transparent;box-shadow:none;border-radius:0;text-align:left;justify-content:flex-start}.live-episode video{width:65px;height:61px;object-fit:cover;border-radius:6px;flex-shrink:0}.live-episode-button>span{display:flex;flex-direction:column;gap:3px;min-width:0}.live-episode strong{font-size:10px;line-height:1.3}.live-episode small{font-size:9px;color:#70817d}.episode-countdown{font-size:17px;font-variant-numeric:tabular-nums;color:#ba7940}.episode-dock{display:grid;gap:8px;margin:0}.play-controls-bottom{margin-top:auto;text-align:center}.save-status{font-size:10px;color:#568866;margin:7px 0}.finish-box{padding:15px;text-align:center;border-radius:12px;background:#fff6cb;border:1px solid #e6bd66;color:#684820}.finish-box h2{font-size:22px;margin:6px 0}.finish-box p{font-size:12px;line-height:1.7}.finish-star{font-size:44px;color:#d79c22}.finish-box .primary-play{font-size:13px;min-height:44px}.active-game:has(.finish-box:not(.hidden)) .dice-control{display:none}
/* Actual movie surface and one normalized coordinate space for its video/timer/lever. */
.scene-modal{position:fixed;inset:0;display:grid;place-items:center;padding:18px;background:#071d2ff2;z-index:100;overflow:hidden}.scene-card{width:100%;max-width:none;height:100%;max-height:none;border:1px solid #5b7f8a;border-radius:16px;background:#153546;overflow:hidden;display:grid;grid-template-columns:minmax(0,1fr) 272px;grid-template-rows:72px minmax(0,1fr);color:#ebf4f0;box-shadow:0 20px 80px #0009}.scene-toolbar{grid-column:1/-1;display:flex;align-items:center;justify-content:space-between;padding:12px 20px;border-bottom:1px solid #4a6976;background:#102c3b;gap:20px}.scene-toolbar .eyebrow{color:#eebc69;margin:0 0 3px}.scene-toolbar h2{margin:0;font-size:20px;color:#fff}.scene-toolbar .ghost{background:#ffffff0f;border-color:#78929e;color:#fff;font-size:12px;min-height:44px}.scene-media-wrap{position:relative;display:flex;align-items:center;justify-content:center;min-width:0;min-height:0;overflow:hidden;background:radial-gradient(ellipse,#416374,#081b28)}.scene-stage{position:relative;aspect-ratio:auto;max-width:none;max-height:none;background:#07131c;flex-shrink:0;margin:0}.scene-stage>img{display:block;position:absolute;inset:0;width:100%;height:100%;object-fit:fill;opacity:1}.scene-stage.no-bg{min-height:200px;width:100%!important;height:100%!important;background:radial-gradient(ellipse,#315466,#0c2736)}.scene-region{position:absolute}.video-region{border:2px solid #132f32;border-radius:4px;overflow:hidden;background:#071515;box-shadow:inset 0 0 12px #000}.video-region video{display:block;width:100%;height:100%;object-fit:contain;background:#06120f}.video-region .video-fallback{font-size:11px;padding:8px 10px;min-height:40px;width:max-content;max-width:95%;background:#f4c25a;color:#132d3a;border-radius:6px}.video-error{position:absolute;inset:auto 0 0;padding:5px;margin:0;font-size:10px;line-height:1.3;background:#102c3aeb;color:#ffdfac;text-align:center}.timer-region{color:#ffda90;background:#071711;border:1px solid #62726b;box-shadow:inset 0 2px 8px #000;font-size:clamp(14px,2.2vw,34px);font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-weight:800;display:grid;place-items:center}.lever-region{display:block;min-height:0;padding:0;background:transparent;border:0;box-shadow:none;touch-action:none;border-radius:8px;overflow:visible;opacity:.15}.lever-region.lever-ready{opacity:1;filter:drop-shadow(0 0 5px #ffc44e)}.lever-shaft{position:absolute;left:40%;top:32%;height:63%;width:19%;background:linear-gradient(90deg,#556269,#d7e2e3,#4c656e);border:1px solid #1e3745;transform:rotate(6deg);border-radius:4px}.lever-handle{position:absolute;left:21%;top:12%;width:58%;height:27%;background:radial-gradient(circle at 35% 25%,#ffefb7,#e99c31 55%,#773d19);border:2px solid #dfac61;border-radius:50%}.scene-side{background:linear-gradient(#173e51,#102c3d);overflow:auto;padding:22px 18px;display:flex;flex-direction:column;gap:18px}.scene-content{padding:0;font-size:14px;line-height:1.75;color:#d6e4e6}.scene-content h3{font-size:25px;line-height:1.15;color:#fff0ca;margin:0 0 16px}.scene-content .small-note{color:#b4c9ce}.scene-step{font-size:12px;letter-spacing:.12em;color:#eac57e}.scene-actions{display:grid;gap:12px;padding:0;margin-top:auto}.scene-actions>button{min-height:52px;font-size:13px}.scene-actions .ghost{color:#daecee;background:#ffffff0b;border-color:#577783}.choice-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px;margin:0;width:100%}.choice-grid button{min-width:48px;min-height:56px;font-size:24px;color:#3b321d;background:linear-gradient(#ffd77a,#e5ae43);border:1px solid #f2dba2;border-bottom:4px solid #a16b2d;border-radius:9px}.preview-card{min-height:600px}.preview-card .scene-stage{width:100%;aspect-ratio:1648/928;grid-column:1}.preview-card .scene-content,.preview-card .scene-actions{grid-column:2;padding:16px}
/* Dialogs and secondary administration retain every existing action. */
.admin-dialog{background:var(--paper);color:var(--ink);border:1px solid #cbbf9f;border-radius:16px;box-shadow:0 22px 80px #0005;max-height:90dvh;overflow:auto}.admin-dialog::backdrop{background:#09283dc9;backdrop-filter:blur(4px)}.admin-dialog form{padding:24px;gap:17px}.admin-dialog fieldset{border-color:#d1ccba;background:#f6efde}.admin-dialog .radio-row{font-size:13px;font-weight:500;line-height:1.5}.admin-dialog .radio-row input{width:auto;min-height:0;accent-color:#187f8c}.dialog-head h2{font-size:24px}.dialog-head .ghost{width:40px;min-height:40px;font-size:23px;padding:0}.point-dialog{padding:22px;width:min(460px,92vw)}.point-dialog>p{line-height:1.7;font-size:14px}.point-picture{width:100%;height:175px;object-fit:cover;border-radius:10px;margin-top:14px}.point-dialog>.button{width:100%}
.admin-page,.editor-page,.preview-page{background:#f5f1e6;color:var(--ink)}.topbar{height:52px;padding:0 20px;background:var(--nav);color:#fff;border-color:#477482}.topbar a,.topbar .brand{color:#ecf4f5}.topbar nav{gap:18px;font-size:13px}.admin-shell{max-width:none;width:100%;margin:0;padding:22px}.admin-hero{padding:14px 18px;margin-bottom:17px;background:#fffbf0;border-color:#d8d5c6;border-radius:12px;gap:16px}.admin-hero h1{font-size:25px;margin:4px 0}.admin-hero p{margin:6px 0;font-size:13px;color:#657b81}.admin-hero .eyebrow{font-size:9px}.admin-panel,.empty-card,.event-row,.release-row,.point-inspector,.stat-row>div,.media-card,.user-row{background:#fffaf0;border-color:#d8d8c9;color:#203b48}.stat-row span,.release-row small,.user-row small,.user-row code,.media-card small,.media-card code{color:#6c807f}.media-card img,.media-card video{background:#dde9e4}.token-card,.import-preview,.warning-box{background:#fff1cc;border-color:#d6b778;color:#6d552c}.editor-shell{display:grid;grid-template-columns:148px minmax(0,1fr);min-height:calc(100dvh - 52px)}.editor-nav{position:sticky;top:0;height:calc(100dvh - 52px);padding:12px 9px;gap:7px;background:#183b4c;border-color:#365c6b}.editor-nav button{color:#d3e6e9;font-size:12px;min-height:44px;border-radius:8px;padding:10px}.editor-nav button.active{background:#ffc34a;color:#183443;border-color:#d9aa48}.editor-main{min-width:0;padding:18px 20px}.editor-tab{max-width:none;margin:0}.editor-tab .panel-head{margin-bottom:12px}.panel-head h1{font-size:24px}.panel-head .eyebrow{margin:0 0 4px}.map-editor-layout{grid-template-columns:minmax(0,1fr) 240px;gap:14px}.map-editor-stage{border-radius:10px;border-color:#aac0b9;background:#226f7e;min-height:0!important;aspect-ratio:var(--map-aspect,16/9);height:auto;max-height:none}.map-editor-stage>img,.map-editor-stage>svg{object-fit:fill}.point-inspector{padding:14px;top:14px}.point-inspector h3{font-size:15px}.point-inspector label{font-size:12px}.point-inspector code{font-size:10px;color:#6e827e}.map-edit-point text{fill:#153c50;stroke:#fff5cd;stroke-width:3;font-size:25px}.route-line{stroke:#946c37;stroke-width:5;stroke-dasharray:8 7}.route-point{fill:#ffebba;stroke:#90672e;stroke-width:2}.route-point.type-station{fill:#a46cce;stroke:#fff;stroke-width:4}.route-point.type-start{fill:#2baf7a}.route-point.type-finish{fill:#f36a5a}.scene-editor-wrap{grid-template-columns:minmax(0,1fr) 240px}.scene-editor-stage{min-height:0!important;aspect-ratio:var(--scene-aspect,1648/928)}.scene-editor-stage>img{object-fit:fill}.outcome-row{background:#fffaf0;border-color:#d6d7ca}.outcome-num{background:#15928f;color:#fff}.event-head strong{font-size:11px;color:#6d7f7d}.toolbar button{min-height:40px;font-size:12px}.hint{color:#778980;font-size:12px}.map-source-row select{font-size:13px}.editor-title strong{max-width:38vw}.editor-title .badge{background:#315564;border-color:#617e87;color:#e7f1f0}.auth-page{min-height:100dvh;background:linear-gradient(100deg,#10394e99,#152e4488),url('../maps/island-v120.webp') center/cover fixed;display:grid;place-items:center;padding:24px;color:var(--ink)}.auth-card{width:min(430px,100%);background:#fff9ed;border:1px solid #eed9af;border-radius:20px;padding:30px;box-shadow:0 24px 70px #102b4266}.auth-card h1{font-size:30px;color:#183d50;margin:4px 0 15px}.auth-card p{font-size:14px;line-height:1.6;color:#617780}.auth-card form{display:grid;gap:16px}.auth-card label{font-size:13px}.auth-card button{width:100%}.auth-back{position:absolute;top:20px;left:24px;background:#0e304acb;color:#fff;padding:10px 15px;border-radius:9px;text-decoration:none;font-size:13px}.admin-panel pre{background:#12384b;color:#ecf3f4}.diagnostic-list>div{border-color:#d4d8c9}.diagnostic-list code{color:#406170}
@keyframes dice-wobble{0%,100%{transform:rotate(-10deg) translateY(-2px)}50%{transform:rotate(14deg) translateY(-5px)}}
@media(min-width:1800px){.studio-layout{grid-template-columns:minmax(0,1fr) 304px}.studio-sidebar{padding:21px;gap:20px}.station-nav-item{min-height:59px}.station-nav-item>img{width:65px;height:47px}.station-nav-item strong{font-size:12px}.selected-game h1{font-size:28px}}
@media(max-width:1380px){.studio-layout{grid-template-columns:minmax(0,1fr) 250px}.studio-sidebar{padding:13px;gap:12px}.studio-topbar{gap:18px}.studio-nav{gap:15px}.selected-game h1{font-size:23px}.station-sign{max-width:140px;font-size:10px}.studio-user{gap:10px}.scene-card{grid-template-columns:minmax(0,1fr) 240px}.scene-side{padding:16px}.station-nav-item{min-height:49px}.station-nav-item>img{width:49px;height:37px}.sidebar-kicker{font-size:9px}.station-nav-list{gap:6px}.sidebar-bottom .quiet-button{min-height:30px}}
@media(max-height:760px) and (orientation:landscape){.studio-sidebar{gap:10px;padding:11px}.selected-game h1{font-size:21px}.game-meta{margin:5px 0 9px}.sidebar-actions{margin-top:7px}.station-nav-item{min-height:46px}.station-nav-item>img{height:33px;width:43px}.station-nav-list{gap:5px}.game-switch select{min-height:40px}.game-switch label{margin-bottom:4px}.game-meta{font-size:10px}.selected-game .small-note{font-size:9px}.primary-play{min-height:48px;font-size:14px}.adventure-dice{width:79px;height:79px;min-height:79px;border-radius:16px;padding:12px;gap:5px}.dice-control{padding:9px 0}.adventure-player{padding:8px}.turn-status{font-size:20px}.live-episode video{height:48px;width:55px}.live-episode-button{padding:5px}.play-setup h1{font-size:24px}.setup-description{font-size:12px;margin:9px 0 14px}.play-setup form{gap:10px}.setup-stations-title{margin-top:14px}.setup-station{min-height:24px}.setup-station>span{height:19px;width:19px}.play-setup .small-note{font-size:10px}.scene-card{grid-template-rows:62px minmax(0,1fr)}.choice-grid button{min-height:48px;font-size:20px}.scene-content{font-size:13px}.scene-side{gap:10px}.scene-content h3{font-size:21px}.scene-modal{padding:10px}}
@media(max-width:1050px) and (orientation:landscape){.studio-layout{grid-template-columns:minmax(0,1fr) 225px}.studio-topbar{gap:12px;padding:0 10px}.studio-brand{font-size:17px}.studio-nav{gap:12px}.studio-nav a{font-size:11px}.studio-nav .nav-action{font-size:11px;padding:6px 8px}.logout-link{display:none}.studio-user a{font-size:11px}.studio-user{gap:8px}.play-title{max-width:30vw}.station-sign{font-size:9px;max-width:125px}.board-pawn{transform:translate(calc(-50% + var(--pawn-offset,0px)),-87%) scale(.85)}.scene-card{grid-template-columns:minmax(0,1fr) 216px}.scene-toolbar h2{font-size:18px}.scene-content h3{font-size:20px}.scene-side{padding:12px}.choice-grid{gap:7px}.editor-shell{grid-template-columns:115px minmax(0,1fr)}.editor-nav{grid-auto-flow:row;grid-auto-columns:auto}.editor-main{padding:14px}.map-editor-layout,.scene-editor-wrap{grid-template-columns:minmax(0,1fr) 210px}}
@media(orientation:portrait),(max-width:650px),(max-width:1100px) and (orientation:landscape){.studio-topbar{height:50px;min-height:50px;padding:0 10px;gap:12px}.studio-brand{font-size:16px}.brand-die{font-size:25px}.studio-nav{gap:13px}.studio-nav a{font-size:11px}.studio-nav .nav-action{font-size:11px;padding:4px 8px}.studio-user{gap:8px}.studio-user>a{font-size:11px}.logout-link{display:none}.studio-layout{height:calc(100dvh - 50px);grid-template-columns:1fr;grid-template-rows:minmax(0,1fr) min(36dvh,340px)}.studio-sidebar{border-left:0;border-top:1px solid #c9d5c8;box-shadow:0 -5px 20px #19464e28;padding:12px 15px;display:grid;grid-template-columns:1fr 1fr;gap:11px 20px;align-content:start}.game-switch{grid-column:1}.selected-game{grid-column:1;grid-row:2/4}.station-list-section{grid-column:2;grid-row:1/4}.sidebar-bottom{grid-column:1/-1;display:flex;gap:12px;align-items:center;justify-content:space-between}.sidebar-bottom>small{display:none}.selected-game h1{font-size:22px}.sidebar-kicker{font-size:8px}.game-meta{font-size:10px}.station-nav-item{min-height:42px;padding:3px;gap:7px}.station-nav-item>img{width:45px;height:34px}.station-nav-item strong{font-size:10px}.station-nav-list{gap:4px}.station-nav-item small{font-size:9px}.board-notice{left:13px;right:13px;bottom:65px;font-size:12px;padding:8px}.board-message{font-size:12px;padding:10px;flex-wrap:wrap}.map-tools{left:10px;bottom:10px}.station-sign{font-size:9px;min-height:23px;max-width:120px;transform:translate(-50%,22px)}.station-sign:hover{transform:translate(-50%,22px)}.board-pawn{transform:translate(calc(-50% + var(--pawn-offset,0px)),-84%) scale(.8)}.play-head-actions .nav-action{padding:5px 7px;font-size:10px}.play-title{max-width:25vw;font-size:12px}.play-head-actions>a{font-size:10px}.play-sidebar{display:block}.play-setup{display:grid;grid-template-columns:1fr 1fr;gap:8px 17px}.play-setup>h1{font-size:23px;margin:0}.play-setup>.sidebar-kicker,.play-setup>.setup-description,.play-setup>.small-note,.setup-stations-title,.play-setup>#setupStations{grid-column:1}.play-setup .setup-description{font-size:12px;margin:0}.play-setup>form{grid-column:2;grid-row:1/6;gap:8px;align-content:start}.play-setup .small-note{font-size:10px;margin:0}.setup-stations-title{display:none}.play-setup>#setupStations{display:none}.active-game{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:8px 16px;min-height:0}.active-game>.sidebar-kicker,.active-game>.turn-status,.active-game>.players-list{grid-column:1}.active-game>.sidebar-kicker{display:none}.turn-status{font-size:20px;margin:0}.players-list{gap:6px}.adventure-player{padding:7px}.adventure-player strong{font-size:12px}.adventure-player small{font-size:9px}.dice-control{grid-column:2;grid-row:1/4;margin:0;border:0;padding:0;align-content:center}.adventure-dice{width:77px;height:77px;min-height:77px;padding:11px;border-radius:16px;gap:5px}.dice-control .primary-play{min-height:45px;font-size:14px}.episode-dock{grid-column:1/-1;grid-template-columns:1fr 1fr}.play-controls-bottom{grid-column:1/-1;display:flex;justify-content:space-between;align-items:center;margin:0}.finish-box{grid-column:2;grid-row:1/4}.live-episode video{width:48px;height:43px}.live-episode strong{font-size:9px}.live-episode small{font-size:8px}.scene-modal{padding:6px}.scene-card{grid-template-columns:1fr;grid-template-rows:61px minmax(0,1fr) auto;border-radius:10px}.scene-toolbar{grid-column:1;padding:10px 12px;gap:10px}.scene-toolbar h2{font-size:16px}.scene-toolbar .ghost{font-size:11px;min-height:40px;padding:8px}.scene-media-wrap{grid-column:1;grid-row:2}.scene-side{grid-column:1;grid-row:3;max-height:40dvh;padding:15px;display:grid;grid-template-columns:1fr 1.4fr;gap:16px}.scene-content{font-size:12px}.scene-content h3{font-size:22px}.scene-content p{margin:7px 0}.scene-actions{align-content:center}.choice-grid{grid-template-columns:repeat(5,minmax(40px,1fr));gap:7px}.choice-grid button{min-width:40px;min-height:48px;font-size:20px;padding:6px}.editor-shell{grid-template-columns:1fr}.editor-nav{height:auto;position:sticky;top:0;z-index:40;grid-auto-flow:column;grid-auto-columns:max-content;overflow:auto;padding:7px}.editor-nav button{min-height:40px;font-size:11px}.editor-main{padding:14px}.map-editor-layout,.scene-editor-wrap{grid-template-columns:1fr}.point-inspector{position:static}.topbar{height:auto;min-height:52px;padding:10px;gap:10px}.topbar nav{font-size:12px;gap:12px}.preview-card{display:block;min-height:0}.preview-shell{padding:12px}.preview-card .scene-content,.preview-card .scene-actions{padding:15px}.auth-card{padding:25px}.admin-shell{padding:14px}}
@media(max-width:520px){.studio-topbar .studio-nav{max-width:42vw}.studio-brand{font-size:14px;gap:4px}.studio-user>a{font-size:10px}.studio-topbar .icon-button{width:32px;height:35px;min-height:35px;font-size:22px}.play-head-actions{gap:5px}.play-head-actions>a{display:none}.studio-layout{grid-template-rows:minmax(0,1fr) 38dvh}.studio-sidebar{padding:10px;gap:10px}.selected-game h1{font-size:18px}.game-meta{font-size:9px}.primary-play{font-size:13px}.sidebar-actions{gap:5px}.sidebar-actions .button,.sidebar-actions button{padding:7px;font-size:10px;min-height:36px}.station-nav-item>img{width:34px;height:30px}.station-nav-item strong{font-size:9px}.station-nav-item{gap:5px;min-height:37px}.sidebar-bottom{display:none}.game-switch label{font-size:9px}.game-switch select{font-size:11px;min-height:36px;padding:7px}.board-pawn{transform:translate(calc(-50% + var(--pawn-offset,0px)),-80%) scale(.65)}.station-sign{font-size:8px;max-width:94px;min-height:20px;padding:3px 5px}.play-setup h1{font-size:20px}.play-setup .setup-description{font-size:10px}.player-name>span{font-size:10px}.player-name input{font-size:12px;min-height:39px;padding:8px}.turn-status{font-size:18px}.adventure-player{gap:6px;padding:5px}.player-symbol{width:25px;height:31px;font-size:14px}.adventure-player strong{font-size:11px}.adventure-player span:not(.player-symbol){font-size:10px}.adventure-player small{font-size:8px}.scene-side{grid-template-columns:1fr}.scene-content h3{font-size:19px;margin-bottom:7px}.scene-content>p:not(.scene-step){font-size:11px}.choice-grid button{min-height:48px}.scene-actions>button{min-height:48px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
/* 1.2.0: shared artwork is an image only; paths, numbers, figures and controls are live DOM/SVG. */
.auth-page{background:linear-gradient(100deg,#173747aa,#12365255),url('../maps/island-v120.webp') center/cover fixed}
.stone-number{font-size:24px}.board-guideline{stroke:#f9daa0;stroke-width:9;stroke-dasharray:none;opacity:.85}.stone-face{stroke-width:2}
.station-index{display:grid;place-items:center;width:48px;height:42px;background:#e3cbf4;color:#76439b;border-radius:8px;font-weight:900;flex-shrink:0}
.scene-poster{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}.island-scene .video-region{border:5px solid #a66d2c;border-radius:18px;box-shadow:0 9px 28px #061c3370}.island-scene>.scene-bg{filter:brightness(.85)}.island-scene .timer-region{border:4px solid #d5a053;border-radius:13px;background:#132d3a;color:#ffdc79}.live-episode-button>img{width:64px;height:54px;object-fit:cover;border-radius:6px;flex-shrink:0}
.map-edit-point text{font-size:25px;font-weight:800;fill:white;paint-order:stroke;stroke:#173645;stroke-width:4px;stroke-linejoin:round}.map-edit-point circle{stroke:#fff3c3;stroke-width:4px;fill:#efb544}.map-edit-point.selected circle{fill:#a252cc;stroke:#fff;stroke-width:6px}.map-edit-point{cursor:grab}.map-edit-point:active{cursor:grabbing}.map-edit-point:focus-visible circle{stroke:#fff;stroke-width:8px}.map-editor-stage{touch-action:none}.point-inspector code{display:block;overflow-wrap:anywhere}.scene-editor-stage{overflow:hidden}.scene-edit-region{touch-action:none}.outcome-row,.event-row{border-color:#bfcbbb!important;background:#fffdf5!important;color:#183949}.event-row input,.outcome-row input{min-width:0}.scene-editor-stage>img{height:100%;width:100%;position:absolute;inset:0}.editor-nav{align-content:start;display:grid;grid-auto-rows:max-content}.editor-page .panel-head h1{font-size:24px;margin:0}.editor-page .panel-head{flex-wrap:wrap;gap:8px}.editor-page .panel-head .eyebrow{margin-bottom:4px}.map-source-row{margin:0 0 10px}.point-inspector{background:#fffaee}.release-row{background:#fffbee;border-color:#bbcbbb}.outcomes-editor select{max-width:250px}.admin-dialog input[type=radio]{min-height:18px;width:18px;height:18px}.scene-poster.hidden{display:none!important}
@media(orientation:portrait),(max-width:650px),(max-width:1100px) and (orientation:landscape){.live-episode-button>img{width:46px;height:40px}.editor-nav{display:flex;flex-direction:row}.editor-nav button{flex-shrink:0}.outcomes-editor select{max-width:100%}.editor-title{flex-wrap:wrap}.editor-title strong{max-width:58vw}}

@media(max-width:1100px) and (orientation:landscape){.studio-layout{grid-template-rows:minmax(0,1fr) min(32dvh,246px)}.studio-sidebar{grid-template-columns:1fr 1.4fr;padding:10px 16px}.station-nav-list{display:grid;grid-template-columns:1fr 1fr}.station-list-section .station-nav-list{gap:5px}.station-nav-item{min-height:47px}.selected-game h1{font-size:21px;margin:1px 0 5px}.game-meta{margin:3px 0 6px}.selected-game .small-note,.sidebar-bottom{display:none}.play-setup>.small-note{display:none}.play-setup h1{font-size:21px}.studio-user .logout-link{display:none}.scene-side{max-height:34dvh}.choice-grid{grid-template-columns:repeat(5,minmax(45px,1fr))}}
/* Preview uses the same scene regions, aspect ratio and media fallback as gameplay. */
.preview-page .preview-shell{padding:10px;height:calc(100dvh - 52px);display:flex;flex-direction:column;gap:8px}.preview-page #previewStatus{margin:0;padding:8px 12px;font-size:12px}.preview-page .preview-card{flex:1;min-height:0;height:auto}.preview-page .preview-card .scene-stage{grid-column:auto;aspect-ratio:auto;width:auto}.preview-page .preview-card .scene-content,.preview-page .preview-card .scene-actions{padding:0;grid-column:auto}
@media(orientation:portrait),(max-width:650px){.preview-page .preview-card{display:grid;grid-template-columns:1fr;grid-template-rows:60px minmax(0,1fr) auto}}

/* The start and the first fields must not be covered by navigation on tablet. */
.studio-page .map-tools,.play-page .map-tools{left:auto;right:12px;top:12px;bottom:auto}
