:root{--page-bg:#fff;--panel-bg:#fff;--panel-border:#e5e5e5;--text-main:#212121;--text-muted:#757575;--accent:#d84000;--accent-soft:#f3f3f3;--accent-strong:#b83200;--accent-light:#ff7a4d;--green:#00695c;--red:#d32f2f;--gray-50:#f9f9f9;--gray-100:#f3f3f3;--gray-200:#e5e5e5;--gray-400:#9e9e9e;--gray-600:#424242;--gray-900:#212121;--shadow-sm:0 1px 2px #00000014;--shadow-md:0 4px 8px #0000001f;--shadow-lg:0 8px 16px #00000029;--cell-size:clamp(2.7rem, 7vw, 3.35rem);--radius-none:0px;--radius-sm:4px;--radius-md:6px;--radius-lg:8px;--spacing-xs:4px;--spacing-sm:8px;--spacing-md:12px;--spacing-lg:16px;--spacing-xl:24px;--spacing-xxl:32px;--motion-fast:.1s;--motion-normal:.15s;--ease-out:ease-out}*{box-sizing:border-box}html{min-height:100%}body{background:var(--page-bg);min-height:100vh;color:var(--text-main);font-optical-sizing:auto;font-variation-settings:"wdth" 100;margin:0;font-family:IBM Plex Sans,system-ui,-apple-system,sans-serif;font-style:normal;font-weight:400}a{color:inherit;text-decoration:none}button{font:inherit}.page-shell{place-items:center;min-height:100vh;padding:clamp(1.25rem,3vw,2rem);display:grid;position:relative}.page-card{z-index:1;background:var(--panel-bg);border:1px solid var(--panel-border);border-radius:var(--radius-lg);width:min(100%,68rem);box-shadow:var(--shadow-md);position:relative}.home-card{gap:2rem;padding:clamp(1.6rem,4vw,3rem);display:grid}.game-card{gap:1.5rem;padding:clamp(1.1rem,2.5vw,1.8rem);display:grid}.hero-copy{gap:.8rem;max-width:58rem;display:grid}.compact-copy{gap:.55rem}.compact-copy h1{font-size:clamp(1.8rem,5vw,2.8rem)}.eyebrow{text-transform:uppercase;letter-spacing:.2em;color:var(--accent-strong);margin:0;font-size:.78rem}h1,h2{letter-spacing:-.03em;margin:0;font-family:IBM Plex Sans,system-ui,-apple-system,sans-serif;font-weight:700}h1{font-size:clamp(2.4rem,7vw,4.5rem);line-height:.96}h2{font-size:clamp(1.5rem,4vw,2rem)}p{color:var(--text-muted);margin:0;line-height:1.55}.action-row{flex-wrap:wrap;gap:.85rem;display:flex}.bottom-actions{justify-content:center}.primary-button,.secondary-button,.ghost-button{border-radius:var(--radius-md);transition:background-color var(--motion-fast) var(--ease-out);cursor:pointer;border:0;padding:.9rem 1.3rem;font-weight:700}.primary-button{background:var(--accent);color:#fff}.primary-button:hover{background:var(--accent-strong)}.primary-button:focus{outline-offset:2px;outline:2px solid #06c}.secondary-button,.ghost-button{background:var(--gray-100);color:var(--text-main);border:1px solid var(--gray-200)}.secondary-button:hover,.ghost-button:hover{background:var(--gray-200)}.secondary-button:focus,.ghost-button:focus{outline-offset:2px;outline:2px solid #06c}.slot-badge:hover,.legend-chip:hover,.word-chip:hover{background-color:var(--gray-200)}button:focus,[role=button]:focus{outline-offset:2px;outline:2px solid #06c}.primary-button:disabled,.secondary-button:disabled,.ghost-button:disabled{cursor:not-allowed;opacity:.55;transform:none}.home-preview{grid-template-columns:repeat(3,1fr);gap:.8rem;max-width:14rem;display:grid}.preview-cell{aspect-ratio:1;border-radius:var(--radius-sm);background:var(--gray-100)}.preview-cell.is-filled{background:var(--accent);animation:3.8s ease-in-out infinite drift}.puzzle-page{align-items:start}.loading-panel,.status-panel{border-radius:var(--radius-lg);background:var(--panel-bg);border:1px solid var(--panel-border);box-shadow:var(--shadow-md);place-items:center;gap:1rem;padding:2.2rem 1rem;display:grid}.status-panel.is-error{color:var(--red)}.loading-orbit{gap:.5rem;display:flex}.loading-orbit span{background:var(--accent);width:.9rem;height:.9rem;animation:pulse .6s var(--ease-out) infinite;border-radius:999px}.loading-orbit span:nth-child(2){animation-delay:.12s}.loading-orbit span:nth-child(3){animation-delay:.24s}.game-layout{border-bottom:1px solid var(--panel-border);gap:1.2rem;padding-bottom:1rem;display:grid;position:relative}.game-layout.is-locked>.board-shell,.game-layout.is-locked>.word-bank-panel{filter:blur(4px)grayscale(.2);pointer-events:none;-webkit-user-select:none;user-select:none}.ready-overlay{z-index:5;background:linear-gradient(#ffffff8f,#ffffffd6);padding:1rem;position:absolute;inset:0}.ready-overlay-card{text-align:center;padding:2rem}.ready-overlay-card button{font-size:clamp(1.5rem,3.6vw,2rem)}.board-shell,.word-bank-panel{background:var(--panel-bg);height:100%;padding:1rem}.board-grid{justify-content:start;gap:.35rem;display:grid}.board-cell,.board-gap{width:var(--cell-size);height:var(--cell-size)}.board-gap{background:0 0}.board-cell{border:1px solid var(--gray-400);border-radius:var(--radius-sm);box-shadow:var(--shadow-sm);background:#fff;place-items:center;display:grid;position:relative}.board-cell.is-solved{border-color:var(--green);background:#fff}.board-letter{color:var(--text-main);text-transform:uppercase;font-size:clamp(1rem,2.5vw,1.25rem);font-weight:700}.slot-badge{border-radius:var(--radius-sm);background:var(--accent-soft);width:1.5rem;height:1.5rem;color:var(--text-main);box-shadow:var(--shadow-sm);cursor:grab;transition:background-color var(--motion-fast) var(--ease-out);border:0;font-size:.78rem;font-weight:700;position:absolute;top:-.45rem;left:-.45rem}.slot-badge.is-stacked{width:1.35rem;height:1.35rem;font-size:.72rem}.slot-badge.is-selected,.legend-chip.is-selected{background:var(--accent);color:#fff8ef}.slot-badge.is-assigned{color:var(--green);background:#3f7d5733}.slot-badge.is-correct{color:var(--green);background:#3f7d5738}.slot-badge.is-incorrect{color:var(--red);background:#b04d422e}.legend-row{flex-wrap:wrap;gap:.65rem;margin-top:1rem;display:flex}.legend-chip{border-radius:var(--radius-sm);background:var(--gray-100);color:var(--text-main);cursor:pointer;transition:background-color var(--motion-fast) var(--ease-out);border:0;align-items:center;gap:.55rem;padding:.6rem .9rem;font-weight:600;display:inline-flex}.panel-heading{gap:.35rem;margin-bottom:1rem;display:grid}.word-bank-grid{grid-template-columns:repeat(auto-fit,minmax(10rem,1fr));gap:.7rem;display:grid}.word-chip{border:1px solid var(--gray-400);border-radius:var(--radius-md);text-align:left;cursor:pointer;min-height:4rem;transition:border-color var(--motion-fast) var(--ease-out), background-color var(--motion-fast) var(--ease-out);background:#fff;padding:.95rem 2.8rem .95rem 1rem;font-weight:600;position:relative}.word-chip.is-assigned{background:#ecf7f0f2;border-color:#3f7d5759}.word-chip.is-incorrect{background:#fceeecf2;border-color:#b04d4259}.word-chip.is-solved{border-color:#3f7d5759}.word-chip-text{letter-spacing:.06em;font-weight:700;display:block}.word-chip-meta{color:var(--text-muted);margin-top:.18rem;font-size:.84rem;display:block}.word-chip-badge{width:1.6rem;height:1.6rem;color:var(--green);background:#3f7d572e;border-radius:999px;place-items:center;font-weight:700;display:grid;position:absolute;top:.75rem;right:.75rem}.feedback-note{min-height:1.6rem;margin-top:.95rem}.feedback-note.is-correct{color:var(--green)}.feedback-note.is-incorrect{color:var(--red)}.success-score-box{border-radius:var(--radius-md);border:1px solid var(--green);text-align:center;background:#00897b14;gap:.5rem;padding:1.4rem 1rem;display:grid}.success-score-title{text-transform:uppercase;letter-spacing:.12em;color:var(--green);font-weight:700}.success-score-value{color:var(--green);font-size:1.8rem;font-weight:700}.success-panel{gap:1.2rem;display:grid;background:#fff!important;padding:1.6rem!important}.success-actions{flex-wrap:wrap;justify-content:center;gap:.85rem;display:flex}.share-note{text-align:center;min-height:1.3rem;color:var(--text-muted);font-size:.9rem}.time-to-beat{border-radius:var(--radius-md);color:var(--text-main);border:0;border:1px solid var(--gray-200);padding:.9rem 1.3rem;font-weight:700}.time-comparison{text-align:center;border-top:1px solid var(--panel-border);border-bottom:1px solid var(--panel-border);gap:.4rem;padding:.8rem 0;display:grid}.time-to-beat-label{color:var(--text-muted);margin:0;font-size:.95rem}.time-beat-success{color:var(--green);margin:0;font-size:.9rem;font-weight:600}.time-beat-miss{color:var(--text-muted);margin:0;font-size:.9rem;font-weight:500}.modal-shell{z-index:10;background:#00000040;place-items:center;padding:1.25rem;display:grid;position:fixed;inset:0}.modal-card{border-radius:var(--radius-lg);background:var(--panel-bg);width:min(100%,34rem);box-shadow:var(--shadow-lg);border:1px solid var(--panel-border);gap:1rem;padding:1.4rem;display:grid}.modal-header{justify-content:space-between;align-items:center;gap:1rem;display:flex}.modal-copy{gap:.9rem;display:grid}@keyframes pulse{0%,to{opacity:.55}50%{opacity:1}}@keyframes drift{0%,to{transform:translate(0)}50%{transform:translate(.2rem,-.25rem)}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}button,[role=button],.primary-button,.secondary-button,.ghost-button,.slot-badge,.legend-chip,.word-chip{transition:none}}@media (min-width:900px){.game-layout{grid-template-columns:minmax(0,1.15fr) minmax(18rem,.9fr);align-items:start}}@media (max-width:640px){.home-card,.game-card,.board-shell,.word-bank-panel,.modal-card{border-radius:var(--radius-lg)}.word-bank-grid{grid-template-columns:1fr}.modal-header{flex-direction:column;align-items:start}}
