:root{color:#17211d;background:#f3f0e8;font-family:Trebuchet MS,Segoe UI,sans-serif;font-synthesis:none;text-rendering:optimizeLegibility;--paper: #f3f0e8;--paper-deep: #e9e4d8;--surface: #fffcf4;--ink: #17211d;--muted: #69726c;--line: #c9c4b7;--line-strong: #969c91;--accent: #df5b3f;--accent-dark: #ad3c26;--accent-soft: #f6d8cc;--success: #2e7d5a;--focus: #285f91;--shadow-low: 0 2px 0 rgba(23, 33, 29, .08);--shadow-high: 0 18px 45px rgba(23, 33, 29, .14);--grid-line: rgba(23, 33, 29, .035);--slot-empty: rgba(255, 252, 244, .46);--locked-surface: rgba(46, 125, 90, .1);--card-hover-shadow: rgba(223, 91, 63, .18);--feedback-surface: rgba(255, 252, 244, .72);--error-border: rgba(173, 60, 38, .5);--error-surface: rgba(246, 216, 204, .68);--tape: rgba(217, 199, 108, .58);--panel-surface: rgba(255, 252, 244, .8);--error-panel-surface: rgba(246, 216, 204, .4);--modal-backdrop: rgba(23, 33, 29, .52);--result-shadow: rgba(23, 33, 29, .35);--reveal-hover: #27332d;--radius-card: 15px;--radius-panel: 24px;--card-height: 58px}html[data-theme=light]{color-scheme:light;--paper: #f7f9f7;--paper-deep: #e9eeeb;--surface: #ffffff;--ink: #1f2924;--muted: #657169;--line: #d3ddd7;--line-strong: #98a69d;--accent: #d9573b;--accent-dark: #a43a29;--accent-soft: #f8ded5;--success: #2b7a57;--focus: #2a65a2;--shadow-low: 0 2px 0 rgba(31, 41, 36, .08);--shadow-high: 0 18px 45px rgba(31, 41, 36, .12);--grid-line: rgba(31, 41, 36, .04);--slot-empty: rgba(255, 255, 255, .78);--locked-surface: rgba(43, 122, 87, .1);--card-hover-shadow: rgba(217, 87, 59, .18);--feedback-surface: rgba(255, 255, 255, .84);--error-border: rgba(164, 58, 41, .45);--error-surface: rgba(248, 222, 213, .76);--tape: rgba(217, 199, 108, .5);--panel-surface: rgba(255, 255, 255, .9);--error-panel-surface: rgba(248, 222, 213, .48);--modal-backdrop: rgba(31, 41, 36, .48);--result-shadow: rgba(31, 41, 36, .28);--reveal-hover: #2f3b34}html[data-theme=dark]{color-scheme:dark;--paper: #121916;--paper-deep: #202a25;--surface: #202b26;--ink: #f3f1e8;--muted: #b1beb5;--line: #3a4941;--line-strong: #61746a;--accent: #ef7657;--accent-dark: #ffad91;--accent-soft: #4b3028;--success: #75d19e;--focus: #93c5fd;--shadow-low: 0 2px 0 rgba(0, 0, 0, .34);--shadow-high: 0 18px 45px rgba(0, 0, 0, .42);--grid-line: rgba(243, 241, 232, .055);--slot-empty: rgba(32, 43, 38, .72);--locked-surface: rgba(117, 209, 158, .12);--card-hover-shadow: rgba(239, 118, 87, .24);--feedback-surface: rgba(32, 43, 38, .88);--error-border: rgba(255, 173, 145, .62);--error-surface: rgba(75, 48, 40, .88);--tape: rgba(217, 199, 108, .34);--panel-surface: rgba(32, 43, 38, .94);--error-panel-surface: rgba(75, 48, 40, .74);--modal-backdrop: rgba(0, 0, 0, .72);--result-shadow: rgba(0, 0, 0, .58);--reveal-hover: #33463d}*{box-sizing:border-box}html{min-width:320px;background:var(--paper)}body{min-width:320px;min-height:100vh;margin:0;background:linear-gradient(var(--grid-line) 1px,transparent 1px),var(--paper);background-size:100% 32px;color:var(--ink);transition:background-color .18s ease,color .18s ease}button,select{font:inherit}button:focus-visible,select:focus-visible,a:focus-visible{outline:3px solid var(--focus);outline-offset:3px}button{-webkit-tap-highlight-color:transparent}.app-shell{width:min(100% - 32px,1180px);margin:0 auto;padding:clamp(28px,6vw,72px) 0 64px}.ad-slot{width:min(100%,970px);min-height:90px;margin:0 auto clamp(44px,6vw,64px);text-align:center}.ad-slot-label{margin:0 0 6px;color:var(--muted);font-size:.58rem;font-weight:800;letter-spacing:.16em;text-transform:uppercase}.ad-slot-unit{display:block;width:100%;min-height:90px}.ad-slot--placeholder{display:grid;align-content:center;justify-items:center;padding:18px 24px;border:1px dashed var(--line);border-radius:14px;background:var(--panel-surface)}.ad-slot--placeholder .ad-slot-label{margin-bottom:4px}.ad-slot-placeholder{margin:0;color:var(--muted);font-size:.78rem}.masthead{display:flex;align-items:flex-end;justify-content:space-between;gap:32px;padding-bottom:28px;border-bottom:2px solid var(--ink)}.brand-lockup{min-width:0}.header-controls{display:flex;align-items:flex-end;flex-wrap:wrap;gap:12px}.eyebrow,.topic-label,.tray-label,.checks,.language-control span,.theme-control span,.result-kicker,.result-sources>p{margin:0;color:var(--accent-dark);font-size:.74rem;font-weight:800;letter-spacing:.13em;text-transform:uppercase}h1,h2,p{text-wrap:pretty}h1{margin:8px 0 0;font-family:Georgia,Times New Roman,serif;font-size:clamp(3.2rem,12vw,7rem);letter-spacing:-.07em;line-height:.85}.tagline{max-width:560px;margin:20px 0 0;color:var(--muted);font-size:clamp(1rem,2vw,1.2rem)}.language-control,.theme-control{display:grid;gap:7px;color:var(--muted)}.language-control{flex:0 0 150px}.theme-control{flex:0 0 132px}.language-control select,.theme-control select{width:100%;min-height:44px;padding:0 12px;border:1px solid var(--line-strong);border-radius:10px;background:var(--surface);color:var(--ink)}.game-layout{position:relative;display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:28px;align-items:start;padding:34px 0 78px}.game-column{min-width:0}.puzzle-meta{display:flex;align-items:flex-start;justify-content:space-between;gap:20px}.topic-label{color:var(--muted);font-size:.68rem}.topic-name{margin:6px 0 0;font-family:Georgia,Times New Roman,serif;font-size:clamp(2rem,5vw,3.6rem);letter-spacing:-.04em;line-height:1}.checks{display:flex;align-items:center;gap:9px;padding-top:5px;color:var(--muted);font-size:.67rem;white-space:nowrap}.attempts-value{display:inline-grid;min-width:28px;height:28px;place-items:center;border:1px solid var(--ink);border-radius:50%;background:var(--surface);color:var(--ink);font-family:Georgia,Times New Roman,serif;font-size:1rem}.instruction{max-width:720px;margin:22px 0 0;color:var(--muted);font-size:.96rem;line-height:1.55}.sorting-board{display:grid;gap:10px;margin-top:24px}.group-row{display:grid;grid-template-columns:42px minmax(0,1fr);gap:12px;align-items:center;min-height:68px}.capacity{display:grid;width:38px;height:38px;place-items:center;border:1px solid var(--ink);border-radius:50%;background:var(--surface);color:var(--ink);font-family:Georgia,Times New Roman,serif;font-size:1.15rem;box-shadow:var(--shadow-low)}.slots{display:grid;grid-template-columns:repeat(var(--slot-count),minmax(0,1fr));justify-self:end;width:min(100%,var(--row-width));gap:8px}.slot{position:relative;display:grid;min-width:0;min-height:var(--card-height);place-items:center;padding:6px;border:1px dashed var(--line-strong);border-radius:var(--radius-card);background:var(--slot-empty);color:var(--muted);cursor:pointer;transition:border-color .13s ease,background .13s ease,transform .13s ease}.slot:hover,.slot:focus-visible{border-color:var(--accent);background:var(--accent-soft)}.slot--empty span{font-size:.7rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase}.slot--filled{border-style:solid;border-color:var(--line);background:var(--surface);box-shadow:var(--shadow-low)}.slot--filled.is-locked{border-color:var(--success);background:var(--locked-surface);box-shadow:0 3px 0 var(--success)}.item-card{display:flex;min-width:0;align-items:center;gap:9px;border:1px solid var(--line-strong);border-radius:var(--radius-card);background:var(--surface);color:var(--ink);cursor:pointer;text-align:left;transition:transform .13s ease,border-color .13s ease,box-shadow .13s ease,background .13s ease}.item-card:hover{border-color:var(--accent);box-shadow:0 4px 0 var(--card-hover-shadow);transform:translateY(-2px)}.item-card:active{transform:translateY(1px)}.item-card.is-selected{border-color:var(--accent-dark);background:var(--accent-soft);box-shadow:0 3px 0 var(--accent-dark)}.item-card--tray{min-height:var(--card-height);padding:10px 12px}.item-card--placed{width:100%;height:100%;min-height:0;padding:7px 8px;border:0;background:transparent;box-shadow:none}.item-card--placed:hover{border:0;background:transparent;box-shadow:none;transform:none}.item-glyph,.item-visual{display:grid;width:30px;height:30px;flex:0 0 30px;place-items:center;border-radius:9px;background:var(--paper-deep);font-size:1.15rem;line-height:1;object-fit:cover}.item-name{min-width:0;overflow:hidden;font-size:.88rem;font-weight:800;line-height:1.2;text-overflow:ellipsis;white-space:nowrap}.slot-remove{position:absolute;top:4px;right:4px;display:grid;width:22px;height:22px;place-items:center;border:1px solid var(--line);border-radius:50%;background:var(--surface);color:var(--muted);cursor:pointer;font-size:1rem;line-height:1;opacity:0;transition:opacity .13s ease,background .13s ease}.slot--filled:hover .slot-remove,.slot-remove:focus-visible{opacity:1}.slot-remove:hover{background:var(--accent-soft);color:var(--accent-dark)}.lock-label{position:absolute;right:7px;bottom:4px;color:var(--success);font-size:.55rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase}.tray-label{display:flex;justify-content:space-between;gap:12px;margin-top:28px;color:var(--muted);font-size:.68rem}.tray-label span:last-child{letter-spacing:.04em;text-transform:none}.item-tray{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:9px;min-height:var(--card-height);margin-top:10px}.empty-tray{grid-column:1 / -1;display:grid;min-height:var(--card-height);margin:0;place-items:center;border:1px dashed var(--line-strong);border-radius:var(--radius-card);color:var(--muted);font-size:.85rem}.feedback-bar{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:52px;margin:18px 0 0;padding:10px 12px 10px 16px;border:1px solid var(--line);border-radius:14px;background:var(--feedback-surface)}.feedback-bar--error{border-color:var(--error-border);background:var(--error-surface)}.feedback-message{margin:0;font-size:.88rem;font-weight:800;text-wrap:pretty}.text-button{flex:0 0 auto;padding:4px 0;border:0;background:transparent;color:var(--accent-dark);cursor:pointer;font-size:.8rem;font-weight:800;text-decoration:underline;text-underline-offset:3px}.actions{display:flex;align-items:center;gap:8px;margin-top:18px}.button{min-height:46px;padding:0 15px;border:1px solid var(--line-strong);border-radius:999px;background:transparent;color:var(--ink);cursor:pointer;font-size:.82rem;font-weight:800;transition:transform .13s ease,box-shadow .13s ease,background .13s ease}.button:hover{background:var(--surface)}.button:active{transform:translateY(2px)}.button-primary{margin-left:auto;border-color:var(--accent-dark);background:var(--accent);color:#fffdf6;box-shadow:0 3px 0 var(--accent-dark)}.button-primary:hover{background:var(--accent-dark)}.button:disabled,.reveal-trigger:disabled{border-color:var(--line);background:var(--paper-deep);color:var(--muted);box-shadow:none;cursor:not-allowed;transform:none}.notes-column{position:sticky;top:28px;padding:22px;border:1px solid var(--ink);border-radius:var(--radius-panel);background:var(--surface);box-shadow:var(--shadow-high);transform:rotate(.4deg)}.notes-column:before{position:absolute;top:-9px;left:38px;width:72px;height:20px;background:var(--tape);content:"";transform:rotate(-3deg)}.notes-column h2{margin:0 0 12px;font-family:Georgia,Times New Roman,serif;font-size:1.4rem}.notes-column p,.notes-column li{color:var(--muted);font-size:.9rem;line-height:1.5}.notes-column ul{margin:12px 0 0;padding-left:19px}.notes-column li+li{margin-top:8px}.reveal-trigger{position:absolute;right:0;bottom:0;width:300px;min-height:48px;padding:0 16px;border:1px solid var(--ink);border-radius:999px;background:var(--ink);color:var(--surface);box-shadow:var(--shadow-high);cursor:pointer;font-size:.82rem;font-weight:800}.reveal-trigger:hover{background:var(--reveal-hover)}.loading-panel,.error-panel{display:flex;align-items:center;gap:18px;min-height:170px;margin-top:34px;padding:26px;border:1px solid var(--line);border-radius:var(--radius-panel);background:var(--panel-surface);box-shadow:var(--shadow-low)}.loading-mark{display:grid;width:44px;height:44px;flex:0 0 44px;place-items:center;border-radius:50%;background:var(--accent-soft);color:var(--accent-dark);font-size:1.4rem}.loading-panel h2,.error-panel h2{margin:0;font-family:Georgia,Times New Roman,serif;font-size:clamp(1.5rem,4vw,2.25rem)}.loading-panel p,.error-panel p{margin:8px 0 0;color:var(--muted);line-height:1.5}.error-panel{display:grid;justify-items:start;gap:0;border-color:var(--error-border);background:var(--error-panel-surface)}.error-panel .button{margin-top:18px}.modal-backdrop{position:fixed;inset:0;z-index:40;display:grid;place-items:center;padding:20px;background:var(--modal-backdrop);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.result-card{position:relative;width:min(580px,100%);max-height:min(90vh,760px);overflow:auto;padding:clamp(24px,6vw,42px);border:2px solid var(--ink);border-radius:var(--radius-panel);background:var(--surface);box-shadow:0 12px 0 var(--result-shadow);text-align:center}.result-close{position:absolute;top:12px;right:12px;display:grid;width:44px;height:44px;place-items:center;border:1px solid var(--line-strong);border-radius:50%;background:var(--paper-deep);color:var(--ink);cursor:pointer;font-size:1.35rem;line-height:1}.result-close:hover{background:var(--accent-soft)}.result-kicker{margin-bottom:6px;color:var(--success);font-size:.76rem}.result-card h2{margin:0;font-family:Georgia,Times New Roman,serif;font-size:clamp(2.2rem,8vw,4.2rem);letter-spacing:-.04em;line-height:1}.result-rule{margin:18px 0 10px;color:var(--muted);font-size:.98rem}.result-explanation{margin:0 0 22px;color:var(--ink);line-height:1.5}.result-groups{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-bottom:22px;text-align:left}.result-group{min-width:0;padding:11px 12px;border-radius:10px;background:var(--paper-deep);font-size:.82rem;line-height:1.4}.result-group strong{display:block;margin-bottom:3px}.result-group span{color:var(--muted)}.result-sources{margin:0 0 22px;text-align:left}.result-sources>p{color:var(--muted);font-size:.68rem}.result-sources ul{margin:7px 0 0;padding-left:19px}.result-sources li,.result-sources a{color:var(--muted);font-size:.78rem}.share-status{margin:-8px 0 14px;color:var(--success);font-size:.78rem;font-weight:800}.share-status--error{color:var(--accent-dark)}.result-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.result-actions .button-primary{margin-left:0}.result-close-action{width:100%;margin:0}@media(max-width:820px){.game-layout{grid-template-columns:1fr;padding-bottom:0}.notes-column{position:relative;top:auto;order:-1;padding:15px 18px;transform:none}.notes-column ul{display:none}.notes-column p{margin:0}.reveal-trigger{position:static;width:100%;margin-top:4px}}@media(max-width:620px){.app-shell{width:min(100% - 26px,1180px);padding-top:24px}.masthead{align-items:flex-start;flex-wrap:wrap;gap:20px}.header-controls{width:100%}.language-control,.theme-control{flex:1 1 0;min-width:0}.puzzle-meta{align-items:flex-end}.checks>span:first-child{display:none}.group-row{grid-template-columns:34px minmax(0,1fr);gap:8px}.capacity{width:32px;height:32px;font-size:1rem}.slots{gap:5px}.item-tray{grid-template-columns:repeat(2,minmax(0,1fr))}.item-card--tray:last-child{grid-column:1 / -1}.item-name{font-size:.8rem}.actions{flex-wrap:wrap}.button-primary{width:100%;margin-left:0;order:-1}.result-groups,.result-actions{grid-template-columns:1fr}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}
