@import url('./tokens.css');
@font-face{font-family:Pretendard;src:url('./fonts/PretendardVariable.woff2') format('woff2');font-weight:45 920;font-display:swap}
:root{color-scheme:dark;--ease:cubic-bezier(.16,1,.3,1);--field:#15121d;--mono:var(--font-mono)}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:16px}body{margin:0;background:var(--color-paper) url('./arena.svg') center/cover fixed;color:var(--color-ink);font:13px/1.5 var(--font-body);-webkit-font-smoothing:antialiased}h1,h2,h3,p{margin:0}h1,h2,h3{font-weight:700}h2{font-size:15px}h3{font-size:13px}a{color:inherit;text-decoration:none}button,input,select{font:inherit}button,.file-button,select{min-height:32px;padding:6px 10px;border:1px solid var(--color-rule);border-radius:0;background:#282231;color:inherit}button,.file-button{cursor:pointer;transition:transform 250ms var(--ease),background 150ms,border-color 150ms}button:hover:not(:disabled),.file-button:hover{background:#42364f;border-color:#9781b0}button:active:not(:disabled){transform:translateY(1px)}button:disabled{opacity:.35;cursor:not-allowed}button.primary{background:#ae8ddd;color:#170f22;border-color:#ae8ddd;font-weight:800}button.primary:hover:not(:disabled){background:#d0b2f9;border-color:#d0b2f9}button.selected{background:#58406d;border-color:#bc8fee}:focus-visible{outline:2px solid #eed6ff;outline-offset:3px}[hidden]{display:none!important}input[type=search],input[type=text],input[type=number]{width:100%;min-width:0;min-height:34px;padding:6px 9px;border:1px solid #4d405d;border-radius:0;background:#131019;color:var(--color-ink)}input:focus{border-color:#d9adff;outline:none;box-shadow:inset 3px 0 #b88ae0}input[type=number]{font-variant-numeric:tabular-nums}input[aria-invalid=true]{border-color:var(--color-error)}input[type=checkbox]{accent-color:#c09de9;width:14px;height:14px;margin:0}input[type=range]{accent-color:#c09de9;min-width:0}select{max-width:100%;min-width:0}summary{cursor:pointer;list-style:none;font-size:12px;font-weight:600}summary::-webkit-details-marker{display:none}summary::after{content:'+';float:right;font:18px/1 var(--mono);margin-left:8px}details[open]>summary::after{content:'−'}kbd{font:12px var(--mono);padding:0 4px;border:1px solid #635071;color:#c5b8d5}.sr-only{position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.skip-link{position:fixed;top:-80px;left:20px;z-index:90;background:#342944;padding:12px}.skip-link:focus{top:12px}.eyebrow{font:700 15px/1 var(--mono);letter-spacing:.08em;color:#aaa0b9}.text-button{border:0;background:transparent;padding:3px 4px;min-height:26px;font-size:11px;color:var(--color-muted)}.wide{width:100%}.section-head{display:flex;justify-content:space-between;align-items:center;gap:8px;min-height:35px}.section-head>span{font:15px var(--mono);color:var(--color-muted)}.section-head button{font-size:11px}.check{display:flex;align-items:center;gap:6px;font-size:11px}.error{color:var(--color-error)}
/* A game HUD spans the top; navigation lives beside the field. */
.app-header{min-height:104px;display:flex;align-items:center;gap:36px;padding:15px 30px 12px;background:#100e17dd;border-bottom:2px solid #493357;position:relative;z-index:5}.brand{display:block;width:238px;flex:none;transform:skewY(-3deg);transform-origin:left center}.brand h1{font:30px/1.1 var(--font-display);font-weight:850;letter-spacing:-1px;text-shadow:3px 3px #564265}.brand-top{display:block;white-space:nowrap;font-size:34px;letter-spacing:1px}.brand-bottom{display:flex;gap:10px;align-items:center;margin-top:3px;font-size:21px}.brand-bottom b{font:15px var(--mono);letter-spacing:2px;text-shadow:none;border-left:2px solid #bd9de1;padding-left:10px;color:#b79acb}.session-bar{flex:1;display:grid;grid-template-columns:230px 155px minmax(200px,1fr);gap:30px;align-items:center;min-width:0}.score-module{position:relative}.score-controls{display:flex;align-items:center;gap:5px}.score-label{font-size:0;flex:1;min-width:0}.score-label #current-score{font:48px/.9 var(--mono);letter-spacing:-1px;border:0;background:transparent;padding:0;min-height:44px;box-shadow:none;width:100%}.score-label #current-score::-webkit-inner-spin-button{display:none}.score-label #current-score:focus{box-shadow:0 2px #bc94e0}.score-controls button{font-size:10px;padding:4px;min-height:24px;background:transparent;border-color:#4a3d55}.stage-tracker>label{font:15px/1 var(--mono);letter-spacing:.08em;color:#aaa0b9}.stage-counter{display:flex;align-items:center;gap:9px}.stage-counter input{font:38px/1 var(--mono);width:72px;min-height:44px;border:0;background:transparent;padding:0}.stage-badge{font:11px var(--font-body);white-space:nowrap;border-left:2px solid #c09de9;padding-left:9px}.target-module{position:relative;min-width:0}.target-label{display:flex;justify-content:space-between;align-items:center;gap:8px;margin-bottom:8px}.target-module>strong{display:block;font-size:12px;font-weight:400;min-height:18px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.target-track{height:4px;background:#3b2c49;margin-top:8px;transform:skewX(-25deg);overflow:hidden}.target-track i{display:block;height:100%;width:var(--progress,0%);background:#b797da;transition:width 600ms var(--ease)}.target-list-details{position:absolute;right:0;top:100%;margin-top:3px;z-index:12}.target-list-details>summary{font-size:9px;color:#9b8eac}.target-list-details #target-list{position:absolute;right:0;top:22px;width:330px;max-width:80vw;background:#21172e;padding:16px;border:1px solid #604472;box-shadow:0 12px 32px #0009;font:15px/1.8 var(--mono)}#score-gain{position:absolute;left:140px;bottom:0;font:22px var(--mono);color:#ccacf1;pointer-events:none}main{max-width:1920px;margin:auto;padding:0 24px}.session-status{display:flex;gap:8px;align-items:center;height:31px;padding:0 4px}.status-light{flex:none;width:5px;height:5px;background:#b79bd4;transform:rotate(45deg)}.message{font-size:11px;color:#b4a7c3;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}.message.error{color:var(--color-error)}#stage-server-warning{padding:10px 16px;background:var(--color-error-wash);font-size:12px}
.workbench{display:grid;grid-template-columns:250px minmax(340px,1fr) 326px;gap:24px;height:calc(100dvh - 176px);min-height:560px}.sidebar{display:flex;flex-direction:column;min-height:0;min-width:0;padding-top:4px}.mode-menu{flex:none;margin:0 0 18px}.mode-tabs{display:grid;gap:5px}.mode-menu button{display:flex;align-items:center;width:100%;position:relative;min-height:61px;padding:7px 11px 7px 9px;text-align:left;border:0;border-left:4px solid var(--menu-color,#9e77d2);background:var(--menu-bg,#32243f);color:#e4d5f5;isolation:isolate;overflow:hidden;transform-origin:left center}.mode-menu button::before{content:'';position:absolute;inset:0;z-index:-1;background:var(--menu-color,#9e77d2);transform:translateX(-103%) skewX(-20deg);transition:transform 400ms var(--ease);opacity:.23}.mode-menu button:hover::before,.mode-menu button.selected::before{transform:translateX(0) skewX(-20deg)}.mode-menu button:hover{transform:translateX(7px);background:var(--menu-bg)}.mode-menu button.selected{box-shadow:inset -3px 0 var(--menu-color)}.menu-index{font:40px/1 var(--mono);width:48px;color:var(--menu-color);letter-spacing:-2px;opacity:.8}.menu-copy{display:flex;flex-direction:column}.menu-copy strong{font:20px/1.25 var(--font-display);font-weight:850;letter-spacing:-.5px}.menu-copy small{font:11px var(--mono);letter-spacing:1.3px;opacity:.65}.menu-arrow{margin-left:auto;font:36px/1 var(--mono);opacity:0;transform:translateX(-10px);transition:transform 300ms var(--ease),opacity 200ms}.selected .menu-arrow,.mode-menu button:hover .menu-arrow{opacity:1;transform:none}#tab-capture{--menu-color:#dd86a9;--menu-bg:#3c2636}#open-statistics{--menu-color:#79bf9b;--menu-bg:#22372f;margin-top:5px;min-height:49px}#open-statistics .menu-copy strong{font-size:17px}#open-statistics .menu-index{font-size:32px}.library{min-width:0;display:flex;flex-direction:column;min-height:0;flex:1}.library>.section-head{border-bottom:1px solid #665176;margin-bottom:12px;padding:0 3px}.library h2{font-size:12px;letter-spacing:.1em;color:#c1b5ce}.search-label{font-size:0;display:block;margin-bottom:12px}.search-label input{font-size:13px;min-height:36px;border-width:0 0 2px;background:#0c0b1366}.search-label small{display:block;font-size:10px;color:#9e90b0;margin-top:5px}.library-list{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:4px;overflow-y:auto;align-content:start;min-height:0;padding:1px 4px 6px 0;scrollbar-width:thin;scrollbar-color:#695278 transparent;flex:1}.block-card{position:relative;display:flex;flex-direction:column;align-items:center;min-height:94px;background:#2c2337aa;border-bottom:2px solid #4b3a5b;padding:4px;transition:background 180ms,transform 300ms var(--ease)}.block-card:hover{background:#493459;transform:translateY(-2px)}.block-card .shape{width:46px;height:46px;pointer-events:none;margin:3px 0}.block-content{width:100%;display:flex;justify-content:center;align-items:center;gap:7px}.block-content strong{font:17px var(--font-body);line-height:1;max-width:65%;overflow-wrap:anywhere}.block-content>span{font:12px var(--mono);color:#a597b6}.block-content>button{position:absolute;inset:0;width:100%;height:100%;color:transparent;border:0;background:transparent;font-size:0;padding:0;z-index:1}.block-content>button:hover:not(:disabled){background:transparent}.block-content>button:disabled{opacity:1;cursor:default}.block-card:has(.block-content>button:disabled){opacity:.5}.block-card>.edit-button{position:absolute;top:0;right:0;z-index:2;padding:0 5px;min-height:23px;border:0;background:transparent;color:#ddd0e9;opacity:0}.block-card:hover>.edit-button,.block-card:focus-within>.edit-button{opacity:1}#new-block{margin-top:9px;min-height:33px;background:#40304e;color:#d4bae9;border-color:#69507d;font-size:11px}.library-footer{display:flex;gap:5px;padding-top:5px}.library-footer>*{font-size:10px;flex:1;text-align:center;min-height:27px;padding:3px;background:transparent}.file-button{position:relative;display:flex;align-items:center;justify-content:center;overflow:hidden}.file-button input{position:absolute;inset:0;opacity:0;cursor:pointer;width:100%}.file-button:focus-within{outline:2px solid #c99be9}.empty{text-align:center;padding:25px 5px;color:var(--color-muted)}.empty p{font-size:11px;margin:10px 0}.empty strong{font-size:12px;color:var(--color-ink)}.empty button{font-size:10px;margin-top:8px}.empty-dots{display:grid;grid-template-columns:repeat(3,12px);gap:3px;width:42px;margin:0 auto 18px}.empty-dots i{height:12px;background:#8864a2}.empty-dots i:last-child{grid-column:2}
/* The central field keeps its game proportions, with no enclosing dashboard card. */
.center-stage{min-width:0;min-height:0;display:flex;flex-direction:column}.board-panel{display:flex;flex-direction:column;height:100%;min-height:0;min-width:0}.board-head{display:flex;align-items:center;gap:12px;min-height:45px}.board-head>.section-head{flex:1}.board-head h2{font:30px/1 var(--mono);letter-spacing:1px}.board-head .section-head>span{font-size:13px}.board-head-actions{display:flex;align-items:center;gap:8px}#board-coordinate{font:13px var(--mono);color:#9e8fb0;min-width:43px}#focus-board{font:25px var(--mono);background:transparent;border:0;padding:0 6px;min-height:29px}.board-toolbar{display:flex;gap:3px;flex-wrap:wrap;padding:4px 0 11px}.board-toolbar button{font-size:10px;min-height:28px;padding:4px 7px;background:#221b2cb0;border-color:#4b385a}.board-toolbar button.selected{background:#5a3e70;border-color:#ad7ccd}.board-toolbar #clear-board{margin-right:auto}.board-stage{position:relative;display:flex;flex:1;min-height:250px;align-items:center;justify-content:center;isolation:isolate;overflow:clip;background:#0d0a1255;border-top:1px solid #47364e;border-bottom:1px solid #47364e}.board-stage::before{content:'MOA';position:absolute;left:4%;top:45%;font:150px/.7 var(--mono);letter-spacing:-9px;color:#c79fe005;transform:rotate(-90deg);transform-origin:center;pointer-events:none}.board-surface{display:flex;align-items:center;justify-content:center;max-width:100%;padding:29px 40px 35px;position:relative;z-index:1}.board-grid{display:grid;grid-template-columns:repeat(var(--cols,10),var(--cell-size,26px));gap:2px;touch-action:none;user-select:none;max-width:100%;background:#17121e;outline:2px solid #665270;box-shadow:0 0 0 6px #110d17,0 8px 35px #0006}.board-cell{position:relative;aspect-ratio:1;min-height:0;border:1px solid #302735;border-radius:0;padding:0;background:#201a28;line-height:1;font:13px var(--mono);transition:background 110ms,border-color 110ms}.board-cell:hover:not(:disabled){background:#493754;border-color:#b38aca}.board-cell:active:not(:disabled){transform:none}.board-cell.filled{background:#8b8096;border-color:#b3a7bd #61556b #61556b #b3a7bd;box-shadow:inset 0 0 0 2px #998da340}.board-cell.ghost{background:#9976be;border-color:#dab9ff}.board-cell.ghost.invalid{background:#884054;border-color:#e398a9}.board-cell.recommended{display:flex;background:#211428;border-color:#a580bc;gap:1px}.recommendation-chip{display:flex;align-items:center;justify-content:center;flex:1;align-self:stretch;min-width:0;background:var(--step-color);color:#fff;font-weight:700;pointer-events:none;overflow:hidden;border-top:2px solid #ffffff30;border-left:2px solid #ffffff20;border-bottom:2px solid #0003}.board-cell.reused{flex-wrap:wrap}.board-cell.reused .recommendation-chip{flex-basis:25%;font-size:9px}.board-cell.clear-row{box-shadow:inset 0 -2px #ffc571}.board-cell.clear-row .recommendation-chip{box-shadow:inset 0 -2px #ffe1a0}.board-cell[data-y="0"]::before{content:attr(data-column);position:absolute;left:0;right:0;top:-21px;font:11px var(--mono);color:#a890b7;pointer-events:none}.board-cell[data-x="0"]::after{content:attr(data-row);position:absolute;left:-27px;top:50%;width:18px;transform:translateY(-50%);font:11px var(--mono);color:#a890b7;pointer-events:none}.skill-marker{position:absolute;right:-4px;bottom:-4px;width:15px;height:15px;border-radius:50%;display:grid;place-items:center;z-index:2;font:11px var(--mono);background:#c1e5f1;color:#182a35;box-shadow:0 0 0 2px var(--field);pointer-events:none}.marker-reroll{background:#e8b4f7;color:#47234c}.stage-corner{position:absolute;width:16px;height:16px;border-color:#a386b2;border-style:solid;z-index:0}.top-left{top:0;left:0;border-width:2px 0 0 2px}.top-right{top:0;right:0;border-width:2px 2px 0 0}.bottom-left{bottom:0;left:0;border-width:0 0 2px 2px}.bottom-right{bottom:0;right:0;border-width:0 2px 2px 0}.stage-legend{position:absolute;bottom:8px;left:15px;right:15px;display:flex;justify-content:space-between;font:10px var(--mono);letter-spacing:1px;color:#96809f}.stage-legend b{color:#d0b9df}.board-engine{position:absolute;inset:15px;pointer-events:none;overflow:hidden;opacity:0;z-index:3}.is-solving .board-engine{opacity:1}.board-engine span{position:absolute;width:100%;height:1px;background:#dac2f377;left:0;top:0;animation:scan-field 1200ms linear infinite;animation-play-state:paused}.board-engine span:nth-child(2){animation-delay:100ms;opacity:.45}.board-engine span:nth-child(3){animation-delay:200ms;opacity:.2}.is-solving .board-engine span{animation-play-state:running}@keyframes scan-field{from{transform:translateY(0)}to{transform:translateY(800px)}}.board-feedback{padding:10px 0 4px;min-height:30px}.board-caption{font-size:10px;color:#a795b4;line-height:1.5}.placement-tools{display:flex;flex-wrap:wrap;align-items:center;gap:5px;margin-top:5px}.placement-tools strong{font-size:11px;margin-right:auto}.placement-tools button{font-size:10px;min-height:26px;padding:3px 7px}.playback{display:flex;align-items:center;gap:8px;padding:6px 0}.playback button{min-height:27px;padding:3px 7px;font-size:10px;background:#2b1e35}.playback input{flex:1;width:0}.playback>span{font:14px var(--mono);min-width:35px}.playback #show-all{width:auto;margin:0}
/* NEXT sits above the recommendation feed, like the game's next-piece queue. */
.recommendations{display:flex;flex-direction:column;min-height:0;min-width:0}.hand{padding:0 0 14px;flex:none}.tray-heading{display:flex;align-items:center;justify-content:space-between;height:45px}.tray-heading h3{font-size:10px;font-weight:400;color:#baa7c9}.tray-heading h3 b{font:30px var(--mono);letter-spacing:1px;color:#f0e4fa;margin-right:8px}.tray-heading button{font-size:10px}.tray{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}.tray-slot{position:relative;min-width:0;height:98px;display:grid;grid-template-columns:1fr .7fr;grid-template-rows:1fr 1fr;align-items:center;column-gap:4px;padding:15px 6px 11px;border-top:3px solid #77608a;background:#22192de6;box-shadow:0 3px 0 #0b080e}.tray-slot.occupied{border-top-color:#c795f2;background:#3b244e}.tray-slot.used{opacity:.45}.tray-slot.active{outline:2px solid #d4a2f4;outline-offset:1px}.slot-num{position:absolute;left:6px;top:3px;font:12px/1 var(--mono);color:#a281b7}.tray-slot>.shape{grid-column:1;grid-row:1/3;width:50px;height:50px;max-width:100%;justify-self:center}.tray-slot strong{font-size:16px;line-height:1.1;overflow-wrap:anywhere;align-self:end}.tray-slot p{font:11px var(--mono);color:#b4a0c3;align-self:start}.tray-slot>button:not(.remove-slot){position:absolute;bottom:3px;right:3px;font-size:9px;min-height:20px;padding:1px 4px;background:transparent;border-color:transparent}.tray-slot .remove-slot{position:absolute;right:2px;top:0;font-size:17px;background:transparent;border:0;padding:0 4px;min-height:22px;color:#b99fc8}.empty-slot{grid-column:1/-1;grid-row:1/3;text-align:center;color:#624a71;font:30px var(--mono)}.tray-bottom{display:flex;align-items:center;justify-content:space-between;gap:6px;margin-top:8px;font-size:10px;color:#aa96b8}.tray-bottom button{font-size:10px;min-height:25px}.recommendations>.section-head{border-bottom:2px solid #715083;flex:none;padding:3px 0 8px}.recommendations>.section-head h2{font:17px var(--font-display)}.recommend-scroll{overflow-y:auto;overflow-x:hidden;scrollbar-width:thin;scrollbar-color:#745688 transparent;padding:0 7px 12px 0;min-height:0;flex:1}.recommend-empty{text-align:center;padding:24px 8px}.waiting-figure{display:flex;justify-content:center;gap:14px;margin:0 auto 20px;transform:skewY(-9deg)}.waiting-figure span{font:52px/1 var(--font-display);font-weight:850;color:#4b345b;text-shadow:3px 3px #201528}.waiting-figure span:nth-child(2){transform:translateY(-8px);color:#76518c}.waiting-figure span:nth-child(3){color:#a077b7}.recommend-empty .eyebrow{font-size:11px}.recommend-empty h3{font:17px var(--font-display);font-weight:850;margin:9px 0}.recommend-empty p{font-size:11px;color:#a18bb0}.recommend-summary{padding:14px 0 12px}.recommend-summary>strong{display:block;font:35px/1 var(--mono);letter-spacing:-1px;margin-bottom:7px}.recommend-summary p{font-size:11px;line-height:1.65;color:var(--color-muted);margin-top:4px}.recommend-summary .target-hit{font:12px var(--font-body);color:#d4aae9;border-left:2px solid #b37dd1;padding-left:8px;letter-spacing:0}.moves{margin:0;padding:0;list-style:none;display:grid;gap:4px}.moves li{min-width:0}.move-button{display:grid;grid-template-columns:24px 40px minmax(0,1fr);align-items:center;gap:9px;position:relative;width:100%;padding:9px 8px;text-align:left;background:#201927;border:0;border-left:3px solid var(--step-color);white-space:normal}.move-button:hover:not(:disabled){transform:translateX(4px);background:#3b294a}.move-button.selected{background:#42304e;box-shadow:inset -2px 0 var(--step-color)}.move-button>.shape{width:40px;height:43px}.move-number{font:27px var(--mono);color:var(--step-color)}.move-copy strong{font-size:16px;display:inline-block;margin-right:7px}.move-copy>span{display:inline-block;font:14px var(--mono)}.move-copy small{display:block;font-size:10px;color:var(--color-muted);line-height:1.6}.move-copy .move-score{font-size:10px;color:#9783a5}.move-button.order-free{grid-template-columns:3px 40px minmax(0,1fr)}.move-swatch{height:27px;width:3px;background:var(--step-color)}.step-1{--step-color:var(--color-step-1)}.step-2{--step-color:var(--color-step-2)}.step-3{--step-color:var(--color-step-3)}
.inventory{margin-top:14px;padding-top:12px;border-top:1px solid #584063}.skills>.section-head{min-height:25px}.skills h3{font-size:12px}.skill-inputs{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:7px}.skill-inputs label{display:flex;align-items:center;justify-content:space-between;gap:4px;font-size:11px}.skill-inputs input{width:48px;text-align:center;min-height:32px}.skills>p{font-size:10px;color:var(--color-muted);margin-top:7px}.skill-reserve{display:flex;gap:4px;margin:9px 0}.skill-reserve i{flex:1;height:6px;background:#3a2944;transform:skewX(-25deg)}.skill-reserve i.held{background:#aa7fc8}.skill-reserve i:last-child.held{background:#ed95ac}.marker-controls{display:flex;flex-wrap:wrap;gap:6px;align-items:center;border-top:1px solid #4e3859;padding-top:12px;margin-top:12px;font-size:11px}.marker-controls>strong{font-size:12px;margin-right:auto}.marker-controls>button{font-size:10px;min-height:24px;padding:3px 5px;background:transparent;border:0}.marker-controls>span{font:14px var(--mono);color:var(--color-muted)}.ability-tracking{display:grid;grid-template-columns:1fr 1fr;gap:7px;width:100%;margin-top:2px}.ability-tracking label{display:flex;flex-direction:column;gap:5px;font-size:10px;color:var(--color-muted)}.ability-tracking select,.ability-tracking input{font-size:11px;min-height:30px;padding:4px}.ability-tracking button{font-size:10px;grid-column:1/-1;justify-self:start;min-height:24px;padding:2px 0;border:0;background:transparent;color:var(--color-muted)}#icon-order-status{font-size:10px;color:var(--color-muted);width:100%}.micro-help{width:100%;margin-top:3px}.micro-help summary{font-size:10px;color:var(--color-muted)}.micro-help p{font-size:11px;color:var(--color-muted);margin-top:8px}.calculation-details,.settings{border-top:1px solid #4e3859;padding-top:10px;margin-top:12px}.calculation-details>summary,.settings>summary{color:var(--color-muted);font-size:11px}.search-meta{font-size:11px;color:var(--color-muted);line-height:1.7;padding-top:8px}.settings-fields{display:grid;gap:10px;padding:12px 0}.settings p{font-size:11px;color:var(--color-muted)}.dimensions{display:grid;grid-template-columns:1fr 1fr auto;gap:6px;align-items:end}.dimensions label{font-size:11px}.dimensions input{margin-top:3px}.dimensions button{font-size:11px}.action-dock{padding:10px 0 2px;flex:none;border-top:2px solid #7a538c}.dock-label{display:block;font-size:10px;color:#b8a1c7;margin-bottom:5px}.action-dock button{position:relative;font:18px var(--font-display);font-weight:850;min-height:47px;margin-top:5px;border:0;clip-path:polygon(12px 0,100% 0,100% calc(100% - 12px),calc(100% - 12px) 100%,0 100%,0 12px);transition:background 200ms,transform 300ms var(--ease)}.action-dock button::after{content:'';position:absolute;right:19px;top:18px;width:9px;height:9px;border-top:2px solid currentColor;border-right:2px solid currentColor;transform:rotate(45deg);transition:transform 250ms var(--ease)}.action-dock button:hover:not(:disabled)::after{transform:translateX(4px) rotate(45deg)}.action-dock button:hover:not(:disabled){transform:translateX(3px)}.action-dock:has(#complete-plan:not([hidden])) #solve,.action-dock:has(#finish-target:not([hidden])) #solve{min-height:28px;background:#362440;color:#bca2cd;font:11px var(--font-body);clip-path:none}.action-dock:has(#complete-plan:not([hidden])) #solve::after{width:6px;height:6px;top:10px}.action-dock #complete-plan{background:#d0b6e4;color:#261230}.action-dock #finish-target{background:#99d0b3;color:#112d1e;font-size:15px}.reroll-panel{border-left:3px solid #d98fba;background:#392638;padding:12px;margin:12px 0}.reroll-panel h3{font-size:13px}.reroll-panel p,.reroll-panel small{font-size:11px;color:var(--color-muted);display:block;margin:8px 0}.reroll-panel label{font-size:11px;display:block;margin:10px 0 4px}.reroll-panel input,.reroll-panel select{width:100%;font-size:12px}.reroll-panel button{margin-top:7px;font-size:11px}
/* Screen capture keeps the video native and the overlay in the same grid cell. */
.capture-panel{background:#17101ee6;padding:15px;min-width:0;border-top:2px solid #cf84ae}.capture-panel>.section-head{margin-bottom:12px;align-items:start}.capture-panel h2{font:26px var(--mono);letter-spacing:.5px}.capture-panel .section-head p{font-size:11px;color:var(--color-muted);margin-top:3px}#capture-source{font-size:12px;white-space:nowrap}.capture-layout{display:flex;flex-direction:column;gap:12px}.capture-view{display:grid;place-items:start center;min-width:0;min-height:240px;background:#0b080e;overflow:hidden;position:relative;border:1px solid #4e3859}.capture-view>video,.capture-view>canvas,.capture-view>.capture-empty{grid-area:1/1}.capture-view>video,.capture-view>canvas{display:block;max-width:100%;max-height:580px;width:auto;height:auto}.capture-view>video{pointer-events:none}.capture-view>canvas{z-index:1;touch-action:none}.capture-view>canvas.selecting{cursor:crosshair}.capture-empty{padding:40px 15px;color:#d2b4df;text-align:center;align-self:center}.capture-empty>span{display:block;font:38px var(--mono);margin-bottom:18px;letter-spacing:5px;color:#aa789c}.capture-empty strong{font:18px var(--font-display)}.capture-empty p{font-size:11px;margin-top:10px;color:#a185af}.capture-actions{display:flex;gap:6px;flex-wrap:wrap}.capture-actions>.wide{width:auto;flex:1;font-size:11px;padding:6px 8px;white-space:nowrap}.capture-actions #capture-read{flex-basis:100%;background:#c68bad;color:#20101b;min-height:42px;font-weight:800;border:0}.capture-actions #capture-sample{order:3;font-size:10px;border:0;flex:none;background:transparent}.capture-tools>p{font-size:11px;margin-top:8px;color:var(--color-muted)}#capture-status{color:#c8a6d2}#capture-status.error{color:var(--color-error)}#capture-detection{font-size:10px}.capture-calibration,.capture-help-fold{margin-top:10px;border-top:1px solid var(--color-rule);padding-top:8px;font-size:11px}.capture-calibration>p,.capture-help{font-size:11px;color:var(--color-muted);margin-top:8px}.capture-calibration label{display:block}.capture-calibration input{width:100%}.capture-regions{display:grid;grid-template-columns:1fr 1fr;gap:5px;margin:7px 0}.capture-regions button,.capture-calibration button{font-size:11px}.capture-calibration #capture-locate{margin-top:7px}#capture-board-label{display:block;font-size:11px;margin-top:8px}#capture-board-label select{width:100%;margin-top:4px}.capture-mode .center-stage{overflow-y:auto;scrollbar-width:thin;scrollbar-color:#795280 transparent}.capture-mode .board-panel{height:auto;min-height:670px;flex:none;margin-top:20px}.capture-mode .board-stage{height:540px;flex:none}.capture-mode .board-panel .board-grid{--cell-size:27px!important}.focus-mode .workbench{grid-template-columns:minmax(0,1fr)}.focus-mode .sidebar,.focus-mode .recommendations{display:none}.focus-mode .center-stage{width:min(100%,1000px);justify-self:center}
/* Statistics use the same full-width menu language. */
.draw-statistics{margin-top:36px;padding:25px 28px 30px;background:#14171bee;border-top:4px solid #76a78d}.draw-statistics #statistics-panel>summary{display:flex;align-items:center;gap:17px;font:23px var(--font-display);font-weight:850;color:#c8e7d6}.draw-statistics #statistics-panel>summary::after{font-size:24px}.section-index{font:40px var(--mono);letter-spacing:-1px;color:#6d9c81}#statistics-title{margin-right:auto}#statistics-total{font:12px var(--font-body);color:#a6b9ae}.statistics-tools{display:grid;grid-template-columns:1fr 1.2fr 1fr auto;gap:14px;margin-top:24px;align-items:end}.statistics-tools label{display:grid;gap:7px;min-width:0;font-size:11px;color:#a3b3a9}.statistics-tools select{font-size:12px}.statistics-tools button{font-size:11px}.statistics-tools input,.statistics-tools select{background:#141c19;border-color:#394d40}.statistics-note{font-size:11px;color:#acb6b0;line-height:1.8;margin-top:10px}.statistics-chart{display:flex;gap:7px;height:145px;align-items:stretch;margin:25px 0 16px;overflow-x:auto;border-bottom:1px solid #405047;padding:0 0 10px;scrollbar-width:thin}.statistics-bar{position:relative;display:flex;flex-direction:column;justify-content:end;align-items:center;gap:7px;flex:1;min-width:26px;min-height:0;padding:0 3px;border:0;background:transparent;box-shadow:none!important}.statistics-bar:hover:not(:disabled){background:#293b30}.statistics-bar>i{width:min(100%,32px);height:var(--bar-height);min-height:2px;background:#699f80;transition:height 550ms var(--ease);border-top:3px solid #b4d1c0}.statistics-bar>span{font:12px var(--font-body)}.statistics-bar>small{font:13px var(--mono);color:#9fbeac}.statistics-table{width:100%;border-collapse:collapse;table-layout:fixed;font-size:12px}.statistics-table th,.statistics-table td{text-align:right;border-bottom:1px solid #303d35;padding:10px 12px;overflow-wrap:anywhere;font-variant-numeric:tabular-nums}.statistics-table th:first-child{text-align:left;width:24%}.statistics-table tbody th{font-size:22px;font-weight:400}.statistics-table thead{font-size:11px;color:#9db5a5}.statistics-table td strong{display:block;font:22px var(--mono)}.statistics-table td>span{font:13px var(--mono);color:#91ab9b}.statistics-table tbody tr:hover{background:#233328}.statistics-count{display:flex;justify-content:end;align-items:center;gap:4px;margin-top:3px}.statistics-count input{max-width:83px;min-height:26px;padding:2px 4px;font-size:12px;text-align:right;background:transparent;border-color:transparent}.statistics-count input:hover,.statistics-count input:focus{border-color:#587461;background:#141d16}.statistics-count>span{font-size:10px;color:#91ab9b}.statistics-guide{margin-top:18px}.statistics-guide>summary{font-size:11px;color:#a4bdad}footer{max-width:1920px;margin:auto;padding:9px 24px;display:flex;align-items:center;justify-content:space-between;gap:14px;font:12px var(--mono);color:#8c7a9a}.footer-brand{letter-spacing:.8px}.footer-brand b{font:10px var(--font-body);margin-left:8px;letter-spacing:0;color:#a28ab1}.footer-shortcuts{font:10px var(--font-body)}.footer-shortcuts kbd{margin-left:9px}.footer-status{display:flex;gap:12px;align-items:center}#save-status{font:10px var(--font-body);color:#a593b2;white-space:nowrap}#save-status::before{content:'';display:inline-block;width:5px;height:5px;background:#b89acc;margin-right:7px}#save-status.error::before{background:var(--color-error)}#open-command{min-height:22px;font-size:10px;padding:1px 6px;background:transparent}#retry-save{font-size:10px;min-height:23px}
dialog{position:fixed;inset:0;margin:auto;width:min(470px,calc(100% - 28px));max-height:90dvh;overflow-y:auto;border:1px solid #9972ad;border-top:4px solid #c294d8;background:#25182e;color:var(--color-ink);padding:25px;box-shadow:0 24px 100px #000b}dialog::backdrop{background:#100916b0;backdrop-filter:blur(5px)}dialog[open]{animation:open-editor 350ms var(--ease)}@keyframes open-editor{from{opacity:0;transform:translateX(45px) skewY(-2deg)}to{opacity:1;transform:none}}.dialog-heading,.dialog-actions{display:flex;align-items:center;justify-content:space-between;gap:12px}.dialog-heading h2{font:25px var(--font-display);font-weight:850;margin-top:4px}.small-label{font:12px var(--mono);letter-spacing:1px;color:#b495c5}.icon-button{font-size:28px;background:transparent;border:0;padding:0 5px}.name-label{display:block;margin:20px 0 10px;font-size:12px}.name-label input{margin-top:6px}.editor-hint{font-size:11px;color:var(--color-muted);margin-bottom:15px}.dot-editor{display:grid;grid-template-columns:repeat(10,minmax(0,1fr));gap:4px;touch-action:none;user-select:none}.dot-cell{aspect-ratio:1;min-height:0;padding:0;background:#34233f;border-color:#614572}.dot-cell.filled{background:var(--color-accent);border-color:#dbb5f5}.editor-tools{display:flex;gap:5px;align-items:center;margin-top:12px}.editor-tools span{font:16px var(--mono);margin-right:auto}.editor-tools button{font-size:11px;min-height:29px;padding:3px 8px}.editor-error{min-height:35px;font-size:11px;color:var(--color-error);padding:8px 0}.dialog-actions{justify-content:end}.dialog-actions button{font-size:12px}#delete-block{margin-right:auto;color:var(--color-error)}#command-dialog{width:min(440px,calc(100% - 28px));padding:14px}.command-heading{display:flex;justify-content:space-between;align-items:center;padding:2px 8px 12px;font:18px var(--font-display)}.command-heading button{min-height:24px;padding:2px 6px;font:13px var(--mono);background:transparent}#command-actions{display:grid;gap:4px}#command-actions button{display:flex;justify-content:space-between;padding:14px 12px;border:0;border-left:3px solid #825596;background:#30203c;text-align:left}#command-actions button:hover{background:#593566;transform:translateX(3px)}#command-actions kbd{margin-left:12px}#command-dialog>p{font-size:10px;color:var(--color-muted);padding:12px 8px 2px}#motion-layer{position:fixed;inset:0;pointer-events:none;z-index:80;overflow:clip}.flying-piece{position:absolute;background:#301f3e;border:1px solid #ba8ada;box-shadow:0 10px 25px #0008;pointer-events:none}.cell-fragment{position:absolute;background:#b4a2c1;pointer-events:none}.pip-body{background:#18101f;margin:0}.pip-main{padding:16px}.pip-main h2{margin-bottom:8px}.pip-main p{font-size:11px;color:var(--color-muted);margin-bottom:10px}.pip-board{display:block;max-width:100%;height:auto;margin:auto}.pip-legend{display:flex;flex-wrap:wrap;gap:9px;font-size:10px;margin-top:12px}.pip-legend span{color:var(--step-color)}.pip-main>.wide{margin-top:10px}
/* A short entrance, then only interaction-driven motion. */
@keyframes enter-menu{from{opacity:0;transform:translateX(-30px)}to{opacity:1;transform:none}}@keyframes enter-field{from{opacity:0;transform:translateY(15px)}to{opacity:1;transform:none}}.mode-menu button{animation:enter-menu 650ms var(--ease) both}.mode-menu #tab-capture{animation-delay:55ms}.mode-menu #open-statistics{animation-delay:110ms}.board-panel{animation:enter-field 700ms 100ms var(--ease) both}.hand{animation:enter-field 700ms 170ms var(--ease) both}
@media(min-width:1600px){.workbench{grid-template-columns:285px minmax(360px,1fr) 365px;gap:32px}.app-header{gap:40px}.brand{width:269px}.session-bar{grid-template-columns:270px 180px minmax(200px,1fr);gap:40px}.library-list{gap:6px}.block-card{min-height:106px}.block-card .shape{width:55px;height:55px}.mode-menu button{min-height:69px}.menu-copy strong{font-size:23px}.recommend-scroll{padding-right:9px}}
@media(max-width:1190px){main{padding:0 16px}.app-header{gap:22px;padding:15px 20px 12px}.brand{width:205px}.brand-top{font-size:30px}.brand-bottom{font-size:19px}.brand-bottom b{font-size:12px}.session-bar{grid-template-columns:185px 125px minmax(170px,1fr);gap:18px}.score-label #current-score{font-size:42px}.stage-counter{gap:5px}.stage-counter input{width:61px}.workbench{grid-template-columns:215px minmax(270px,1fr) 287px;gap:17px}.menu-index{width:42px;font-size:35px}.menu-copy strong{font-size:19px}.menu-copy small{font-size:10px;letter-spacing:1px}.library-list{grid-template-columns:repeat(3,minmax(0,1fr))}.block-card .shape{width:40px;height:40px}.block-card{min-height:85px}.board-toolbar button{font-size:9px;padding:3px 5px}.board-toolbar #clear-board{margin-right:0}.board-head .section-head>span{font-size:11px}#board-coordinate{display:none}.tray-slot{height:90px}.tray-slot>.shape{width:42px}.tray-slot>button:not(.remove-slot){font-size:8px}.target-module>strong{font-size:10px}.target-label .check{font-size:10px}}
@media(max-width:980px){.app-header{flex-wrap:wrap;gap:15px;padding:16px 20px}.brand{width:100%;transform:none}.brand h1{display:flex;align-items:center;gap:10px}.brand-top{font-size:25px}.brand-bottom{margin:0;font-size:20px}.brand-bottom b{font-size:13px}.session-bar{grid-template-columns:1fr 125px 1.4fr}.workbench{height:auto;min-height:0;grid-template-columns:200px minmax(0,1fr);gap:20px}.sidebar{grid-row:1;max-height:810px}.center-stage{grid-column:2;min-height:810px}.recommendations{grid-column:1/-1;display:grid;grid-template-columns:minmax(0,1fr) 280px;gap:0 24px;border-top:2px solid #6c437d;padding-top:15px}.recommendations>.hand{grid-column:2;grid-row:1/3}.recommendations>.section-head{grid-column:1;grid-row:1}.recommend-scroll{grid-column:1;grid-row:2/5;overflow:visible}.recommendations>.action-dock{grid-column:2;grid-row:3;align-self:start;position:sticky;top:12px}.board-panel{min-height:810px}.inventory{display:grid;grid-template-columns:1fr;gap:5px}.capture-mode .center-stage{max-height:810px;min-height:0}.capture-mode .board-panel{min-height:670px}.focus-mode .center-stage{grid-column:1;min-height:0;height:calc(100dvh - 220px)}.focus-mode .board-panel{min-height:600px}.target-list-details{position:relative;top:0;display:flex;justify-content:end;margin-top:4px}.target-list-details>summary{width:65px}.target-list-details #target-list{top:20px}.statistics-tools{grid-template-columns:1fr 1fr}.footer-shortcuts{display:none}}
@media(max-width:680px){.app-header{padding:15px 14px 10px;gap:17px}.brand h1{gap:8px}.brand-top{font-size:25px}.brand-bottom{font-size:18px}.brand-bottom b{display:none}.session-bar{grid-template-columns:minmax(0,1fr) 110px;gap:8px 14px}.score-label #current-score{font-size:42px}.score-controls button{font-size:9px}.stage-counter input{width:55px;font-size:34px}.stage-badge{font-size:10px}.target-module{grid-column:1/-1;display:grid;grid-template-columns:1fr auto;gap:5px}.target-label{grid-column:1/-1;margin-bottom:0}.target-module>strong{grid-column:1;min-width:0;font-size:10px}.target-track{grid-column:1/-1;margin-top:2px}.target-list-details{grid-column:2;grid-row:2;margin:0}.eyebrow{font-size:12px}.stage-tracker>label{font-size:12px}main{padding:0 10px}.session-status{height:30px}.message{font-size:10px}.workbench{display:flex;flex-direction:column;gap:16px}.sidebar{max-height:none;padding:0;overflow:visible}.mode-menu{display:grid;grid-template-columns:1fr 1fr;margin:0 0 13px;gap:5px}.mode-tabs{display:contents}.mode-menu button{min-height:58px;padding:7px 9px;animation:none}.mode-menu button:hover{transform:none}.menu-index{font-size:32px;width:37px}.menu-copy strong{font-size:18px}.menu-copy small{font-size:9px;letter-spacing:.5px}.menu-arrow{font-size:24px}.mode-menu #open-statistics{grid-column:1/-1;min-height:34px;margin:0;padding:3px 9px;gap:4px}.mode-menu #open-statistics .menu-index{font-size:23px;width:29px}.mode-menu #open-statistics .menu-copy{flex-direction:row;align-items:center;gap:9px}.mode-menu #open-statistics .menu-copy strong{font-size:13px}.library>.section-head{min-height:28px;margin-bottom:8px}.search-label{margin-bottom:9px}.search-label input{min-height:34px}.search-label small{font-size:10px}.library-list{display:flex;overflow-x:auto;overflow-y:hidden;padding:1px 0 7px;gap:5px;flex:none}.block-card{min-width:72px;width:72px;min-height:86px}.block-card .shape{width:42px;height:42px}.block-card>.edit-button{opacity:1}.block-content strong{font-size:16px}.block-content>span{font-size:11px}#new-block{width:100%;font-size:10px;margin-top:5px;min-height:29px}.library-footer>*{min-height:24px;font-size:9px}.center-stage{min-height:0;order:2}.board-panel{min-height:0}.board-head{min-height:38px}.board-head h2{font-size:25px}.board-toolbar{gap:4px;padding-bottom:10px}.board-toolbar button{min-height:29px;font-size:9px;padding:4px 6px}.board-stage{flex:none;height:auto;min-height:0}.board-surface{padding:29px 24px 34px 32px;width:100%}.board-grid{grid-template-columns:repeat(var(--cols,10),minmax(0,1fr));width:min(100%,350px);gap:2px}.board-cell{min-width:0}.board-stage::before{display:none}.board-feedback{padding-top:8px}.board-caption{font-size:10px}.stage-legend{font-size:9px;left:12px;right:12px}.recommendations{display:flex;order:3;padding-top:3px;border:0;gap:0}.recommendations>.hand{padding-bottom:14px}.recommendations>.section-head{min-height:35px}.recommend-scroll{overflow:visible;padding-right:0}.recommendations>.action-dock{position:static;padding-bottom:2px;margin-top:12px;width:100%}.inventory{grid-template-columns:1fr 1.2fr;gap:14px}.skill-inputs{grid-template-columns:1fr;gap:6px}.skills>p{font-size:9px}.marker-controls{margin-top:0;padding-top:0;border:0}.marker-controls>strong{font-size:11px}.marker-controls>button{font-size:9px}.ability-tracking{grid-template-columns:1fr}.ability-tracking label{font-size:9px}.ability-tracking input,.ability-tracking select{font-size:10px}.tray-slot{height:98px}.tray-slot>.shape{width:48px}.tray-slot strong{font-size:16px}.tray-slot>button:not(.remove-slot){font-size:9px}.recommend-empty{padding:25px 0}.capture-mode .center-stage{min-height:0;max-height:none;overflow:visible}.capture-panel{padding:10px}.capture-panel h2{font-size:23px}.capture-panel .section-head p{font-size:10px}#capture-source{font-size:10px}.capture-view>video,.capture-view>canvas{max-height:none}.capture-mode .board-panel{min-height:0}.capture-mode .board-stage{height:auto;min-height:0}.focus-mode .center-stage{height:auto;min-height:0}.focus-mode .board-panel{min-height:0}.draw-statistics{margin-top:25px;padding:17px 12px}.draw-statistics #statistics-panel>summary{flex-wrap:wrap;gap:7px;font-size:18px}.section-index{font-size:26px}#statistics-total{flex-basis:100%;font-size:10px;order:3}.statistics-tools{gap:10px;margin-top:17px}.statistics-tools label{font-size:10px}.statistics-tools select,.statistics-tools input{font-size:11px;padding:5px}.statistics-tools button{font-size:10px}.statistics-table th,.statistics-table td{padding:9px 4px}.statistics-table th:first-child{width:19%}.statistics-table td strong{font-size:18px}.statistics-table tbody th{font-size:19px}.statistics-count input{width:55px;max-width:100%;font-size:11px}.statistics-count{gap:1px}.statistics-count>span{font-size:9px}.statistics-note{font-size:10px}.statistics-chart{height:125px;gap:4px}.statistics-bar{min-width:26px}footer{padding:13px 12px;flex-wrap:wrap;gap:7px}.footer-brand{font-size:11px}.footer-brand b{display:none}.footer-status{gap:9px}#save-status{font-size:9px}dialog{padding:18px}.editor-tools{gap:4px}.editor-tools button{font-size:10px;padding:3px 5px}.playback{gap:5px}.playback #show-all{font-size:9px}.playback>span{font-size:12px;min-width:31px}.target-list-details #target-list{max-width:85vw}}
@media(pointer:coarse){.edit-button{opacity:1!important}.block-card{transform:none!important}.board-toolbar button{min-height:32px}.capture-actions button{min-height:38px}.tray-slot .remove-slot{min-width:27px;min-height:27px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation:none!important;transition:none!important}.board-engine{display:none}}
/* Pretendard's wider numerals need their own HUD proportions. */
.brand h1{font-weight:900;letter-spacing:-2px}.brand-top{font-size:34px;letter-spacing:-2px}.brand-bottom{font-weight:850}.brand-bottom b{font-size:10px;font-weight:700;letter-spacing:1px}.score-label #current-score{font-size:40px;font-weight:750;letter-spacing:-1.6px;font-variant-numeric:tabular-nums}.stage-counter input{font-size:32px;font-weight:750}.eyebrow,.stage-tracker>label{font-size:11px;font-weight:650;letter-spacing:1.5px}.menu-index{font-size:32px;font-weight:800;letter-spacing:-2px}.menu-copy strong{font-weight:850}.menu-copy small{font-size:9px;font-weight:650}.menu-arrow{font-weight:400}.board-head h2,.tray-heading h3 b{font-size:25px;font-weight:850;letter-spacing:-1px}.section-head>span{font-size:11px}.tray-slot p{font-size:10px}.slot-num{font-size:10px}.stage-legend{font-size:8px;letter-spacing:.8px}.board-cell{font-size:11px;font-weight:650}.board-cell[data-y="0"]::before,.board-cell[data-x="0"]::after{font-size:9px}.recommend-summary>strong{font-size:29px;font-weight:750;line-height:1.2;letter-spacing:-1.5px}.move-number{font-size:22px;font-weight:800}.move-copy>span{font-size:11px}.skill-inputs input{font-variant-numeric:tabular-nums}.statistics-table td strong{font-size:17px;font-weight:600}.statistics-bar>small{font-size:10px}.section-index{font-size:28px;font-weight:800}.playback>span{font-size:11px}.stage-badge{font-family:var(--font-body)}
@media(max-width:1190px){.brand-top{font-size:29px}.brand-bottom b{font-size:9px}.score-label #current-score{font-size:34px}.board-head h2,.tray-heading h3 b{font-size:23px}.menu-index{font-size:29px}}
@media(max-width:680px){.brand-top{font-size:26px}.brand-bottom{font-size:20px}.score-label #current-score{font-size:37px}.menu-index{font-size:27px}.menu-copy small{font-size:8px}.board-head h2,.tray-heading h3 b{font-size:22px}.section-index{font-size:22px}.statistics-table td strong{font-size:14px}.board-cell{font-size:10px}.stage-legend{font-size:7px}}
.project-notice{max-width:1872px;margin:0 auto 20px;padding:0 24px;color:#a28ab1}.project-notice summary{font-size:10px;width:fit-content}.project-notice p{font-size:11px;margin-top:8px;line-height:1.7}
.capture-view>video,.capture-view>canvas{max-height:min(580px,calc(100dvh - 260px))}
@media(max-width:680px){.capture-view>video,.capture-view>canvas{max-height:none}}
.target-label{flex-wrap:wrap}.hud-preferences{display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-end;gap:5px 10px;margin-left:auto;min-width:0}#language{width:80px;min-height:24px;padding:2px 5px;font-size:11px;background:transparent;border-color:#635071}
html:lang(en) .menu-copy strong{font-size:18px}html:lang(en) #open-statistics .menu-copy strong{font-size:16px}html:lang(en) .brand-top{font-size:29px;letter-spacing:-.5px}html:lang(en) .brand-bottom{font-size:18px}html:lang(en) .target-list-details>summary{width:auto;white-space:nowrap}html:lang(en) .board-toolbar{flex-wrap:wrap}html:lang(en) .capture-actions>.wide{white-space:normal}html:lang(en) .statistics-tools label,html:lang(en) .dimensions label{min-width:0}html:lang(en) .statistics-table td strong{white-space:nowrap}
@media(max-width:1190px){html:lang(en) .menu-copy strong{font-size:16px}html:lang(en) #open-statistics .menu-copy strong{font-size:14px}}
@media(max-width:680px){html:lang(en) .menu-copy strong{font-size:14px}html:lang(en) #open-statistics .menu-copy strong{font-size:12px}html:lang(en) .brand-top{font-size:25px}html:lang(en) .menu-copy small{font-size:7px}html:lang(en) .target-module>strong{white-space:normal}html:lang(en) .ability-tracking input{font-size:9px}html:lang(en) .tray-heading h3{flex-wrap:wrap}}

/* Statistics is a separate destination; the playfield keeps its live state. */
.statistics-mode .workbench{height:auto;min-height:calc(100dvh - 176px);align-items:start}.statistics-mode .sidebar{position:sticky;top:16px}.statistics-mode .center-stage,.statistics-mode .recommendations,.statistics-mode .library{display:none}.draw-statistics{grid-column:2/-1;margin:0;min-width:0}.statistics-heading{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:12px}.statistics-heading>div{display:flex;align-items:center;gap:16px}.statistics-heading h2{font-size:25px;line-height:1.2;color:#c8e7d6}.statistics-heading button{min-height:38px;white-space:nowrap}#statistics-total{margin-bottom:22px}.statistics-mode .statistics-tools{grid-template-columns:repeat(3,minmax(0,1fr)) auto auto}#statistics-undo{white-space:nowrap}
@media(max-width:980px){.statistics-mode .workbench{grid-template-columns:180px minmax(0,1fr)}.statistics-mode .statistics-tools{grid-template-columns:1fr 1fr}.statistics-heading{align-items:flex-start;flex-wrap:wrap}.statistics-heading>div{flex-wrap:wrap;gap:6px 12px}}
@media(max-width:680px){.statistics-mode .sidebar{position:static}.statistics-mode .draw-statistics{margin:0;padding:20px 12px}.statistics-mode .workbench{min-height:0;align-items:stretch}.statistics-heading h2{font-size:22px}.statistics-heading{gap:12px}.statistics-mode .statistics-tools{grid-template-columns:1fr 1fr}.statistics-mode .statistics-tools>label:first-child{grid-column:1/-1}.statistics-mode .statistics-table{table-layout:fixed}.statistics-mode .statistics-table th:first-child{width:24%}.statistics-mode .statistics-table td{overflow-wrap:anywhere}}

.capture-auto-control{display:flex;flex-wrap:wrap;align-items:center;gap:6px 16px;margin-top:8px;padding:10px 0;border-block:1px solid var(--color-rule);font-size:11px}.capture-auto-control>label{display:flex;align-items:center;gap:7px;cursor:pointer;min-height:28px}.capture-auto-control input{width:14px;height:14px;margin:0;flex:none}.capture-auto-control>span{color:var(--color-muted);margin-left:auto;font-size:10px}.capture-auto-control>p{flex-basis:100%;color:var(--color-muted);font-size:10px;line-height:1.6;margin:0}

/* Compact keyboard controls and independent score targets. */
.quick-input{margin:0 0 4px;font-size:11px}.quick-input-help{font-size:10px;color:var(--color-muted);margin:0 0 12px;line-height:1.5}.marker-key-help{width:100%;font-size:10px;color:var(--color-muted);line-height:1.6}.board-toolbar{flex-wrap:wrap}.target-settings-panel{position:absolute;right:0;top:24px;width:min(370px,calc(100vw - 28px));max-height:65dvh;overflow:auto;padding:16px;background:#211629;border:1px solid #78568b;box-shadow:0 12px 30px #0008;z-index:40}.target-settings-panel>label,.target-settings-panel>strong{display:block;font-size:12px;margin-bottom:7px}.manual-target-entry{display:flex;gap:7px}.manual-target-entry input{min-width:0;flex:1;font-size:13px}.manual-target-entry button{font-size:12px}.target-settings-panel #manual-target-help{font-size:11px;line-height:1.6;color:var(--color-muted);margin:8px 0}.manual-targets{display:flex;flex-wrap:wrap;gap:5px;margin-bottom:15px}.manual-targets button{font:12px var(--mono);min-height:28px;padding:4px 7px}.target-list-details .target-settings-panel #target-list{position:static;inset:auto;display:block;width:auto;max-width:none;padding:0;margin:0;border:0;background:none;box-shadow:none;font-size:11px;line-height:1.9;white-space:normal}.target-module:has(.target-list-details[open]){z-index:50}
/* Restart advice uses the existing panel palette and remains in normal flow. */
.restart-advice{border-left:3px solid var(--color-orange);padding:12px;margin-top:16px;background:var(--color-wash)}
.restart-advice small{display:block;line-height:1.5;color:var(--color-muted)}
.restart-advice button{margin-top:10px}
/* Sharing controls stay in the app; exported tables contain no CSS. */
.statistics-heading>.statistics-heading-actions{flex-wrap:wrap;gap:8px}
#statistics-export-dialog{width:min(960px,calc(100% - 28px))}
#statistics-export-dialog .dialog-heading{align-items:flex-start;flex-wrap:wrap}
#statistics-export-dialog .dialog-heading h2{font-size:23px;line-height:1.3}
#statistics-export-dialog button,#statistics-export-dialog select{min-height:40px}
#statistics-export-help{font-size:13px;line-height:1.6;color:var(--color-muted);margin:14px 0}
.statistics-export-options{display:grid;grid-template-columns:minmax(0,2fr) minmax(0,1fr) minmax(0,1fr);gap:16px;align-items:end;margin-bottom:16px}
.statistics-export-options>label{display:grid;gap:8px;font-size:13px;min-width:0}
.statistics-export-actions{display:flex;flex-wrap:wrap;gap:8px}
.statistics-export-actions button{font-size:13px}
#statistics-export-status{min-height:24px;font-size:13px;line-height:1.5;margin:12px 0}
#statistics-export-preview{display:block;width:100%;height:45dvh;min-height:240px;border:1px solid var(--color-rule);background:var(--color-white)}
#statistics-export-code{margin-top:14px}
#statistics-export-source{display:block;width:100%;height:180px;margin-top:10px;font:12px/1.6 var(--mono);resize:vertical}
@media(max-width:680px){.statistics-export-options{grid-template-columns:1fr}.statistics-export-actions>button{flex:1 1 auto}#statistics-export-dialog .dialog-heading h2{font-size:20px}}

.public-about{margin:40px auto 24px;max-width:1000px;padding:24px;border-top:1px solid var(--color-rule);color:var(--color-muted);font-size:14px;line-height:1.8}
.public-about h2{font-size:18px;color:var(--color-ink)}
.public-links{display:flex;flex-wrap:wrap;gap:12px 24px;margin-bottom:28px}
.public-links a{color:inherit;text-decoration:underline;text-underline-offset:4px;min-height:44px;display:inline-flex;align-items:center}
.public-page{height:auto;overflow:auto;display:block}
.public-page main{display:block;max-width:1100px;padding:32px 24px 80px;margin:auto;min-height:100vh;line-height:1.8;overflow-x:auto}
.public-page h1{font-size:clamp(28px,5vw,42px);margin:20px 0 32px}
.public-page h2{font-size:22px;margin-top:36px}
.public-page p,.public-page ol,.public-page ul{max-width:78ch}
.public-page main>table{margin:24px 0 48px;font-size:14px;border-color:var(--color-rule)}
.public-page caption{text-align:left;font-size:22px;font-weight:700;margin-bottom:12px}
.public-page table table{background:#fff;margin:4px auto}

.board-toolbar [id^="mode-icon-"]{min-height:36px}.ability-tracking{grid-template-columns:1fr}.public-page p,.public-page li{margin:12px 0}
