:root,:host{--ol-background-color: white;--ol-accent-background-color: #F5F5F5;--ol-subtle-background-color: rgba(128, 128, 128, .25);--ol-partial-background-color: rgba(255, 255, 255, .75);--ol-foreground-color: #333333;--ol-subtle-foreground-color: #666666;--ol-brand-color: #00AAFF}.ol-box{box-sizing:border-box;border-radius:2px;border:1.5px solid var(--ol-background-color);background-color:var(--ol-partial-background-color)}.ol-mouse-position{top:8px;right:8px;position:absolute}.ol-scale-line{background:var(--ol-partial-background-color);border-radius:4px;bottom:8px;left:8px;padding:2px;position:absolute}.ol-scale-line-inner{border:1px solid var(--ol-subtle-foreground-color);border-top:none;color:var(--ol-foreground-color);font-size:10px;text-align:center;margin:1px;will-change:contents,width;transition:all .25s}.ol-scale-bar{position:absolute;bottom:8px;left:8px}.ol-scale-bar-inner{display:flex}.ol-scale-step-marker{width:1px;height:15px;background-color:var(--ol-foreground-color);float:right;z-index:10}.ol-scale-step-text{position:absolute;bottom:-5px;font-size:10px;z-index:11;color:var(--ol-foreground-color);text-shadow:-1.5px 0 var(--ol-partial-background-color),0 1.5px var(--ol-partial-background-color),1.5px 0 var(--ol-partial-background-color),0 -1.5px var(--ol-partial-background-color)}.ol-scale-text{position:absolute;font-size:12px;text-align:center;bottom:25px;color:var(--ol-foreground-color);text-shadow:-1.5px 0 var(--ol-partial-background-color),0 1.5px var(--ol-partial-background-color),1.5px 0 var(--ol-partial-background-color),0 -1.5px var(--ol-partial-background-color)}.ol-scale-singlebar{position:relative;height:10px;z-index:9;box-sizing:border-box;border:1px solid var(--ol-foreground-color)}.ol-scale-singlebar-even{background-color:var(--ol-subtle-foreground-color)}.ol-scale-singlebar-odd{background-color:var(--ol-background-color)}.ol-unsupported{display:none}.ol-viewport,.ol-unselectable{-webkit-touch-callout:none;-webkit-user-select:none;-moz-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent}.ol-viewport canvas{all:unset;overflow:hidden}.ol-viewport{touch-action:pan-x pan-y}.ol-selectable{-webkit-touch-callout:default;-webkit-user-select:text;-moz-user-select:text;user-select:text}.ol-grabbing{cursor:-webkit-grabbing;cursor:-moz-grabbing;cursor:grabbing}.ol-grab{cursor:move;cursor:-webkit-grab;cursor:-moz-grab;cursor:grab}.ol-control{position:absolute;background-color:var(--ol-subtle-background-color);border-radius:4px}.ol-zoom{top:.5em;left:.5em}.ol-rotate{top:.5em;right:.5em;transition:opacity .25s linear,visibility 0s linear}.ol-rotate.ol-hidden{opacity:0;visibility:hidden;transition:opacity .25s linear,visibility 0s linear .25s}.ol-zoom-extent{top:4.643em;left:.5em}.ol-full-screen{right:.5em;top:.5em}.ol-control button{display:block;margin:1px;padding:0;color:var(--ol-subtle-foreground-color);font-weight:700;text-decoration:none;font-size:inherit;text-align:center;height:1.375em;width:1.375em;line-height:.4em;background-color:var(--ol-background-color);border:none;border-radius:2px}.ol-control button::-moz-focus-inner{border:none;padding:0}.ol-zoom-extent button{line-height:1.4em}.ol-compass{display:block;font-weight:400;will-change:transform}.ol-touch .ol-control button{font-size:1.5em}.ol-touch .ol-zoom-extent{top:5.5em}.ol-control button:hover,.ol-control button:focus{text-decoration:none;outline:1px solid var(--ol-subtle-foreground-color);color:var(--ol-foreground-color)}.ol-zoom .ol-zoom-in{border-radius:2px 2px 0 0}.ol-zoom .ol-zoom-out{border-radius:0 0 2px 2px}.ol-attribution{text-align:right;bottom:.5em;right:.5em;max-width:calc(100% - 1.3em);display:flex;flex-flow:row-reverse;align-items:center}.ol-attribution a{color:var(--ol-subtle-foreground-color);text-decoration:none}.ol-attribution ul{margin:0;padding:1px .5em;color:var(--ol-foreground-color);text-shadow:0 0 2px var(--ol-background-color);font-size:12px}.ol-attribution li{display:inline;list-style:none}.ol-attribution li:not(:last-child):after{content:" "}.ol-attribution img{max-height:2em;max-width:inherit;vertical-align:middle}.ol-attribution button{flex-shrink:0}.ol-attribution.ol-collapsed ul{display:none}.ol-attribution:not(.ol-collapsed){background:var(--ol-partial-background-color)}.ol-attribution.ol-uncollapsible{bottom:0;right:0;border-radius:4px 0 0}.ol-attribution.ol-uncollapsible img{margin-top:-.2em;max-height:1.6em}.ol-attribution.ol-uncollapsible button{display:none}.ol-zoomslider{top:4.5em;left:.5em;height:200px}.ol-zoomslider button{position:relative;height:10px}.ol-touch .ol-zoomslider{top:5.5em}.ol-overviewmap{left:.5em;bottom:.5em}.ol-overviewmap.ol-uncollapsible{bottom:0;left:0;border-radius:0 4px 0 0}.ol-overviewmap .ol-overviewmap-map,.ol-overviewmap button{display:block}.ol-overviewmap .ol-overviewmap-map{border:1px solid var(--ol-subtle-foreground-color);height:150px;width:150px}.ol-overviewmap:not(.ol-collapsed) button{bottom:0;left:0;position:absolute}.ol-overviewmap.ol-collapsed .ol-overviewmap-map,.ol-overviewmap.ol-uncollapsible button{display:none}.ol-overviewmap:not(.ol-collapsed){background:var(--ol-subtle-background-color)}.ol-overviewmap-box{border:1.5px dotted var(--ol-subtle-foreground-color)}.ol-overviewmap .ol-overviewmap-box:hover{cursor:move}.ol-overviewmap .ol-viewport:hover{cursor:pointer}:root{--panel-width: 360px;font-family:Inter,system-ui,-apple-system,sans-serif;line-height:1.5;font-weight:400;color:#0f172a;background-color:#0a1430;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}*{box-sizing:border-box}body{margin:0;min-height:100vh;background:radial-gradient(circle at 20% 20%,rgba(90,215,255,.15),transparent 25%),radial-gradient(circle at 80% 0%,rgba(255,138,223,.12),transparent 28%),#0a1430}#app{min-height:100vh}.app-shell{display:flex;flex-direction:column;min-height:100vh;color:#0f172a}.top-bar{display:flex;align-items:center;justify-content:space-between;padding:1rem 1.5rem;background:linear-gradient(90deg,#2d4bff,#5ad7ff 45%,#ff8adf);color:#f8fafc;gap:1rem;flex-wrap:wrap;position:relative}.brand{font-weight:600;font-size:1rem}.nav{display:flex;gap:.5rem}.game-running .nav,.postgame-visible .nav{display:none}.player-bar{display:none;align-items:center;gap:1rem;margin-left:auto;flex-wrap:wrap;padding-right:3rem}.player-info{display:grid;gap:.25rem;color:#0f172a;background:#f8fafce6;padding:.4rem .75rem;border-radius:.75rem;border:1px solid rgba(15,23,42,.1);min-width:220px;max-width:520px}.player-meta{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap}.player-task{font-weight:700;font-size:.9rem}.player-streak{font-weight:600;color:#475569;font-size:.85rem}.player-actions{display:flex;gap:.5rem}.player-bar .feedback{font-size:.85rem;padding:.3rem .5rem;border-radius:.5rem;display:inline-flex;align-items:center}.player-feedback{margin:0}.player-actions{display:flex}.game-running .player-actions,.postgame-visible .player-actions,.player-info{display:none}.game-running .player-info,.postgame-visible .player-info{display:grid}.game-exit{display:none;align-items:center;justify-content:center;width:2.1rem;height:2.1rem;border-radius:50%;border:1px solid rgba(15,23,42,.2);background:#f8fafcf2;color:#0f172a;font-size:1.4rem;line-height:1;cursor:pointer;position:absolute;top:.7rem;right:.9rem}.game-running .game-exit{display:inline-flex}.mode-player .player-bar{display:flex}.mode-editor .player-bar{display:none}.nav-button{border-radius:999px;border:1px solid transparent;padding:.4rem 1rem;background:#f8fafc1f;color:#f8fafc;cursor:pointer}.nav-button.active{background:#f8fafc;color:#0f172a}.main{display:grid;grid-template-columns:clamp(300px,var(--panel-width),560px) 8px 1fr;flex:1;background:radial-gradient(circle at 10% 10%,rgba(90,215,255,.18),transparent 40%),radial-gradient(circle at 90% 20%,rgba(255,138,223,.15),transparent 35%),linear-gradient(180deg,#f1f5ff,#e5ecff)}.mode-player .panel{padding:.75rem 1rem;overflow:hidden}.mode-player.game-running .panel{position:fixed;left:0;right:0;bottom:0;z-index:12;padding:.5rem .75rem .75rem;border-radius:.9rem .9rem 0 0;border-top:1px solid rgba(255,255,255,.5);box-shadow:0 -14px 34px #0f172a33;background:#ffffff40;backdrop-filter:blur(14px) saturate(140%);-webkit-backdrop-filter:blur(14px) saturate(140%);max-width:760px;margin:0 auto}.mode-player.game-running .panel .view.hidden{display:none}.mode-player.game-running .main{grid-template-columns:1fr}.mode-player.game-running .map{min-height:calc(100vh - 140px)}.mode-player .main{display:flex;flex-direction:column;min-height:0}.mode-player .panel{width:100%;border-right:none;border-top:1px solid #d9e2ff;box-shadow:none;flex:0 0 auto;max-height:30vh}.mode-player .map{order:-1;flex:1 1 auto;min-height:0}.mode-player .splitter{display:none}.mode-player .select-mode{margin-top:.5rem}.mode-player .select-mode h3{margin:0 0 .5rem;font-size:.9rem}.panel{padding:1.5rem;background:linear-gradient(180deg,#ffffffeb,#f5f7fff5),radial-gradient(circle at 15% 20%,rgba(90,215,255,.12),transparent 45%),radial-gradient(circle at 85% 0%,rgba(255,138,223,.12),transparent 40%);overflow-y:auto;border-right:1px solid #d9e2ff;box-shadow:0 20px 40px #0f172a14}.landing{position:fixed;inset:0;z-index:20;background:linear-gradient(135deg,#0a1430,#0b1638);display:grid;place-items:center;padding:1.5rem;overflow-y:auto;overscroll-behavior:contain}.landing.hidden{display:none}body.landing-open{overflow:hidden}.landing-card{display:grid;grid-template-columns:minmax(320px,460px) minmax(240px,320px);gap:1.5rem;padding:1.5rem;border-radius:1.5rem;background:linear-gradient(135deg,#5ad7ff26,#6366f12e),#0f172a;color:#e2e8f0;box-shadow:0 28px 56px #00000059;align-items:center}.landing-art{display:flex;align-items:center;justify-content:center;border-radius:1rem;min-height:380px}.landing-art img{height:380px;width:auto;max-width:100%;border-radius:1rem;display:block;box-shadow:inset 0 0 0 1px #ffffff14,0 16px 32px #00000040}.landing-copy h1{margin:.25rem 0;font-size:2.4rem;color:#f8fafc}.landing-subtitle{margin:.5rem 0 1rem;color:#cbd5f5;max-width:340px}.landing-actions{display:flex;flex-direction:column;align-items:flex-start;gap:.6rem;margin-top:1rem}.landing-actions button,.landing-actions .file-button{width:100%;justify-content:center}.landing-demos{margin-top:1.25rem;display:grid;gap:.6rem}.landing-demo-title{margin:0;font-size:.85rem;text-transform:uppercase;letter-spacing:.12em;color:#f8fafcb3}.landing-demo-buttons{display:grid;gap:.6rem}.landing-demo{border-radius:999px;border:1px solid rgba(255,255,255,.2);background:#0f172a80;color:#f8fafc;padding:.6rem 1rem;text-align:center;font-weight:600;transition:transform .15s ease,box-shadow .15s ease,border-color .15s ease}.landing-demo:hover{transform:translateY(-1px);border-color:#38bdf8cc;box-shadow:0 12px 24px #0f172a59}.file-button.ghost{background:#ffffff14;color:#f8fafc;border-color:#fff3}.file-button.strong{background:#38bdf8;color:#0f172a;border-color:#38bdf8}.hero{display:grid;grid-template-columns:minmax(0,1fr) minmax(140px,220px);gap:1rem;padding:1rem;margin-bottom:1rem;border-radius:1rem;background:radial-gradient(circle at top left,#7dd3fc,#38bdf8,#6366f1 70%,#1e3a8a);color:#fff;position:relative;overflow:hidden;box-shadow:0 20px 40px #1e40af40}.hero-content{z-index:1}.hero-badge{display:inline-flex;padding:.25rem .75rem;border-radius:999px;background:#fff3;font-size:.75rem;letter-spacing:.05em;text-transform:uppercase}.hero-title{margin:.5rem 0 .25rem;font-size:2rem}.hero-subtitle{margin:0;color:#ffffffe6;font-size:.95rem}.hero-art{width:100%;border-radius:.75rem;background:url(/hero.jpg) center / cover no-repeat;min-height:160px;box-shadow:0 12px 24px #1e40af59}.panel-stack{display:grid;gap:1rem}.section-card{border-radius:1rem;padding:1rem;background:#fff;border:1px solid #e3e8ff;box-shadow:0 12px 24px #0f172a0f}.section-card.accent{background:linear-gradient(135deg,#5ad7ff26,#6366f114),#fff;border-color:#c7d2fe}.section-card.subtle{background:linear-gradient(180deg,#f8fbff,#fff)}.section-header{display:flex;justify-content:space-between;gap:1rem;align-items:flex-start;margin-bottom:.5rem}.section-subtitle{margin:.25rem 0 0;color:#475569;font-size:.9rem}.eyebrow{margin:0;text-transform:uppercase;letter-spacing:.08em;font-size:.75rem;color:#2563eb;font-weight:700}.pill-row{display:flex;gap:.35rem;flex-wrap:wrap}.pill{display:inline-flex;align-items:center;gap:.35rem;padding:.2rem .7rem;border-radius:999px;background:#2563eb;color:#fff;font-size:.8rem;border:1px solid transparent}.pill-ghost{background:#ffffffbf;color:#0f172a;border-color:#e3e8ff}.map{position:relative;min-height:calc(100vh - 64px);overflow:hidden}#mapContainer{position:absolute;inset:0}#mapContainer .ol-viewport{cursor:crosshair}#mapContainer .ol-attribution{display:none}body.mode-editor .map{height:65vh;max-height:70vh;min-height:360px}body.mode-player .map{height:calc(100vh - 64px);max-height:none}.splitter{width:8px;cursor:col-resize;background:linear-gradient(180deg,#2563eb1a,#5ad7ff40);border-left:1px solid rgba(0,0,0,.04);border-right:1px solid rgba(255,255,255,.35);transition:background .2s ease}.splitter:hover,.splitter.dragging{background:linear-gradient(180deg,#2563eb33,#ff8adf59)}.view h2{margin-top:0}.form-grid{display:grid;gap:.75rem}.form-grid.two-col{grid-template-columns:repeat(2,minmax(0,1fr))}.form-grid label{display:grid;gap:.25rem;font-size:.9rem;color:#334155}.form-grid input,.form-grid select,.form-grid textarea{padding:.5rem .75rem;border-radius:.5rem;border:1px solid #cbd5f5;font-size:.9rem;background:#ffffffe6}.form-grid textarea{resize:vertical;min-height:72px}.dataset-meta{display:grid;gap:.75rem;margin-bottom:1rem}.dataset-meta label{display:grid;gap:.25rem;color:#334155}.dataset-meta input,.dataset-meta textarea{padding:.5rem .75rem;border-radius:.6rem;border:1px solid #cbd5f5;font-size:.95rem;background:#fffffff2}.dataset-meta textarea{resize:vertical;min-height:72px}.helper{color:#64748b;font-size:.85rem;margin:.25rem 0 .5rem}.bbox-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.5rem}.button-row{display:flex;flex-wrap:wrap;gap:.5rem;margin:1rem 0}button,.file-button{border-radius:.6rem;border:1px solid #cbd5f5;background:#fff;padding:.45rem .9rem;cursor:pointer;font-size:.9rem;transition:all .2s ease}button.primary{background:#2563eb;border-color:#2563eb;color:#fff}button:hover,.file-button:hover{transform:translateY(-1px);box-shadow:0 6px 12px #0f172a14}.file-button{position:relative;overflow:hidden;display:inline-flex;align-items:center;gap:.5rem}.file-button input{position:absolute;inset:0;opacity:0;cursor:pointer}.record-list{list-style:none;padding:0;margin:0;display:grid;gap:.75rem}.record-item{display:flex;justify-content:space-between;align-items:center;padding:.75rem;border-radius:.75rem;border:1px solid #e2e8f0;background:linear-gradient(180deg,#fff,#f8fbff);gap:.75rem}.record-item small{display:block;color:#94a3b8;font-size:.75rem}.record-actions{display:flex;gap:.5rem}.status{display:grid;gap:.5rem;padding:.75rem;border-radius:.75rem;background:#f1f5f9;margin-top:1rem}#status-extra{color:#475569;font-weight:600}.player-hud{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.75rem 1rem;border-radius:.9rem;background:linear-gradient(135deg,#e0edff,#f8fbff);border:1px solid #d0dcff;margin-bottom:.75rem}.hud-actions{display:flex;gap:.5rem}.hud-button{border-radius:.8rem;border:1px solid #cbd5f5;padding:.6rem 1rem;background:#fff;color:#0f172a;cursor:pointer;font-weight:600;transition:all .2s ease}.hud-button.primary{background:#2563eb;color:#fff;border-color:#2563eb;box-shadow:0 10px 20px #2563eb33}.feedback{min-height:1.2rem;font-weight:700;font-size:1rem;padding:.5rem .75rem;border-radius:.6rem;border:1px solid #e2e8f0;background:#fff;color:#0f172a}.feedback.good{color:#166534;background:#dcfce7;border-color:#86efac}.feedback.bad{color:#991b1b;background:#fee2e2;border-color:#fca5a5}.select-mode{margin-top:1rem}.option-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.5rem}.option-button{width:100%;text-align:left;padding:.5rem .7rem;border-radius:.75rem;border:1px solid rgba(255,255,255,.55);background:#ffffff59;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);font-size:.88rem;white-space:normal;cursor:pointer;transition:all .2s ease}.option-button:hover{border-color:#2563eb99;box-shadow:0 8px 16px #0f172a2e}.postgame{position:fixed;right:1.5rem;bottom:1.5rem;display:grid;gap:.75rem;padding:.85rem 1rem;border-radius:.9rem;background:linear-gradient(135deg,#5ad7ffe6,#ff8adfd9);box-shadow:0 14px 34px #0f172a38;border:1px solid rgba(255,255,255,.4);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);z-index:15}.postgame-copy h3{margin:0;font-size:1.05rem;color:#0f172a}.postgame-copy p{margin:.25rem 0 0;color:#0f172ad9;font-weight:600}.postgame-actions{display:flex;gap:.75rem}.postgame button{border-color:#ffffffa6;color:#0f172a;font-weight:700;background:#f8fafc}.warning{padding:.75rem;border-radius:.5rem;background:#fee2e2;color:#b91c1c;margin-bottom:1rem}.hidden{display:none!important}.editor-layout{display:flex;flex-direction:column;gap:.75rem;min-height:100%}.editor-meta-bar{display:grid;gap:.35rem;padding-bottom:.75rem;border-bottom:1px solid #e3e8ff}.meta-input{border:none;border-bottom:2px solid #e3e8ff;border-radius:0;background:transparent;padding:.3rem .1rem;font-family:inherit;width:100%;transition:border-color .18s;color:#0f172a}.meta-title-input{font-size:1.05rem;font-weight:700}.meta-title-input::placeholder{color:#94a3b8;font-weight:400}.meta-desc-input{font-size:.88rem;color:#475569;resize:none;min-height:38px}.meta-input:focus{outline:none;border-bottom-color:#2563eb}.add-card{background:linear-gradient(135deg,#5ad7ff14,#6366f10d),#fff;border:1px solid #c7d2fe;border-radius:1rem;padding:.85rem 1rem;display:grid;gap:.65rem}.add-card-top{display:flex;align-items:center;justify-content:space-between;gap:.5rem;flex-wrap:wrap}.source-tabs-bar{display:flex;gap:.2rem;background:#0f172a12;border-radius:.6rem;padding:.18rem}.source-tab{flex:1;padding:.28rem .55rem;border-radius:.45rem;border:none;background:transparent;color:#475569;font-size:.8rem;font-weight:600;cursor:pointer;transition:background .15s,color .15s,box-shadow .15s;white-space:nowrap}.source-tab.active{background:#fff;color:#2563eb;box-shadow:0 1px 4px #0f172a1f}.tab-pane{display:grid;gap:.5rem}.tab-hint{margin:0;font-size:.82rem;color:#64748b}.file-drop-label{display:grid;gap:.4rem}.file-drop-zone{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.2rem;padding:1.1rem .75rem;border:2px dashed #cbd5f5;border-radius:.75rem;background:#f1f5ff99;cursor:pointer;transition:border-color .2s,background .2s;text-align:center;overflow:hidden}.file-drop-zone:hover,.file-drop-zone:focus-within{border-color:#2563eb;background:#dbeafe66}.file-drop-zone.has-file{border-color:#22c55e;background:#dcfce759}.file-drop-zone input[type=file]{position:absolute;inset:0;opacity:0;cursor:pointer;width:100%;height:100%}.file-drop-icon{font-size:1.5rem;line-height:1}.file-drop-text{font-size:.88rem;font-weight:600;color:#334155}.file-drop-hint{font-size:.75rem;color:#94a3b8}.file-name-display{font-size:.82rem;color:#15803d;font-weight:600;padding:.2rem .55rem;background:#dcfce7;border-radius:.4rem;display:inline-block}.osm-input-row{display:grid;grid-template-columns:1fr auto;gap:.5rem;align-items:end}.osm-input-row input{padding:.48rem .75rem;border:1px solid #cbd5f5;border-radius:.5rem;font-size:.9rem;background:#ffffffe6}.add-card-bottom{display:flex;align-items:center;justify-content:space-between;gap:.75rem;flex-wrap:wrap;padding-top:.55rem;border-top:1px solid #e3e8ff}.tolerance-row{display:flex;align-items:center;gap:.5rem;font-size:.85rem;color:#475569;flex-wrap:wrap}.tolerance-field{display:flex;align-items:center;gap:.25rem}.tolerance-field input{width:62px;padding:.32rem .45rem;border:1px solid #cbd5f5;border-radius:.45rem;font-size:.88rem;text-align:right;background:#ffffffe6}.tolerance-unit{font-size:.8rem;color:#94a3b8}.req-star{color:#ef4444;margin-left:.1rem}abbr[title]{cursor:help;text-decoration:underline dotted;color:#64748b;font-size:.85em}.add-actions{display:flex;gap:.5rem;align-items:center}.records-section{flex:1}.records-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:.55rem}.records-title{font-weight:700;font-size:.92rem;color:#0f172a}.record-empty{display:flex;flex-direction:column;align-items:center;text-align:center;padding:2rem 1rem;border:2px dashed #e3e8ff;border-radius:.75rem;color:#94a3b8;margin-bottom:.5rem}.record-empty-icon{font-size:2.2rem;line-height:1;margin-bottom:.5rem}.record-empty-title{margin:0 0 .2rem;font-weight:600;color:#64748b;font-size:.92rem}.record-empty-hint{margin:0;font-size:.8rem;color:#94a3b8}.record-item-info{flex:1;min-width:0}.icon-btn{width:1.9rem;height:1.9rem;padding:0;border-radius:.45rem;border:1px solid transparent;background:transparent;font-size:.9rem;display:inline-flex;align-items:center;justify-content:center;cursor:pointer;transition:background .15s,border-color .15s,opacity .15s;opacity:0}.record-item:hover .icon-btn,.record-item:focus-within .icon-btn{opacity:1}.icon-btn:hover{background:#f1f5f9;border-color:#e2e8f0}.icon-btn--danger:hover{background:#fee2e2;border-color:#fca5a5}.editor-footer{position:sticky;bottom:0;display:flex;align-items:center;justify-content:space-between;gap:.5rem;padding:.65rem 0 .4rem;margin-top:auto;background:linear-gradient(to top,#fff 70%,#fff0);border-top:1px solid #e3e8ff;z-index:2}.editor-footer-start,.editor-footer-end{display:flex;gap:.4rem;align-items:center}.editor-clear-btn{background:transparent;border-color:#fca5a5;color:#b91c1c;font-size:.82rem;padding:.35rem .6rem}.editor-clear-btn:hover{background:#fee2e2;transform:none;box-shadow:none}@media(max-width:900px){.top-bar{flex-direction:column;align-items:flex-start;gap:.6rem;padding:.85rem 1rem}.nav{flex-wrap:wrap;width:100%}.main{grid-template-columns:1fr;grid-template-rows:auto 1fr}.splitter{display:none}.map{min-height:50vh}.mode-player .map{min-height:0}.mode-player .panel{max-height:38vh;padding:.5rem .75rem}.mode-player.game-running .panel{max-height:none;max-width:none;margin:0}.panel,.landing{padding:1rem}.landing-card{grid-template-columns:1fr;padding:1.25rem}.landing-art{min-height:220px}.landing-art img{height:220px}.landing-actions,.landing-demo-buttons,.player-bar,.player-info{width:100%}.player-actions{width:100%;flex-direction:column}.hud-button{width:100%}.section-header{flex-direction:column;align-items:flex-start}.form-grid.two-col,.option-list{grid-template-columns:1fr}.mode-player .option-list{grid-template-columns:repeat(2,minmax(0,1fr))}.mode-player .option-button{padding:.45rem .55rem;font-size:.8rem}.player-meta{flex-direction:column;align-items:flex-start}}@media(max-width:640px){.landing-copy h1{font-size:2rem}.landing-subtitle{max-width:100%}.landing-demo{font-size:.95rem}.status{padding:.6rem}.feedback{font-size:.95rem}.postgame{left:1rem;right:1rem;bottom:1rem;flex-direction:column;align-items:stretch}.postgame-actions{flex-direction:column;align-items:stretch}}
