:root{--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-6:24px;--space-8:32px;--tile-size:62px;--tile-gap:5px;--board-max-width:350px;--radius-sm:4px;--radius-md:6px;--color-bg:#fff;--color-text:#1a1a1b;--color-text-muted:#787c7e;--color-border:#d3d6da;--color-border-strong:#878a8c;--color-key-bg:#d3d6da;--color-key-text:#1a1a1b;--color-key-hover:#bbbec1;--color-tile-empty:#fff;--color-tile-filled-border:#878a8c;--state-correct:#6aaa64;--state-present:#c9b458;--state-absent:#787c7e;--state-text:#fff;--quartet-tier-1:#f9df6d;--quartet-tier-2:#a0c35a;--quartet-tier-3:#b0c4ef;--quartet-tier-4:#bb81c5;--quartet-tier-1-text:#1a1a1b;--quartet-tier-2-text:#1a1a1b;--quartet-tier-3-text:#1a1a1b;--quartet-tier-4-text:#fff;--header-height:56px;--font-base:"Helvetica Neue", Arial, system-ui, -apple-system, BlinkMacSystemFont, sans-serif}[data-theme=dark]{--color-bg:#121213;--color-text:#fff;--color-text-muted:#818384;--color-border:#3a3a3c;--color-border-strong:#565758;--color-key-bg:#818384;--color-key-text:#fff;--color-key-hover:#6e7173;--color-tile-empty:#121213;--color-tile-filled-border:#565758;--state-correct:#538d4e;--state-present:#b59f3b;--state-absent:#3a3a3c}[data-palette=cb]{--state-correct:#f5793a;--state-present:#85c0f9;--quartet-tier-1:#f0e442;--quartet-tier-2:#d55e00;--quartet-tier-3:#56b4e9;--quartet-tier-4:#009e73;--quartet-tier-1-text:#1a1a1b;--quartet-tier-2-text:#fff;--quartet-tier-3-text:#1a1a1b;--quartet-tier-4-text:#fff}*,:before,:after{box-sizing:border-box}html,body,#root{height:100%}body{font-family:var(--font-base);background:var(--color-bg);color:var(--color-text);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;margin:0}button{font-family:inherit}a{color:inherit}@keyframes tile-pop{0%{transform:scale(.92)}50%{transform:scale(1.05)}to{transform:scale(1)}}@keyframes row-shake{0%,to{transform:translate(0)}20%{transform:translate(-6px)}40%{transform:translate(6px)}60%{transform:translate(-4px)}80%{transform:translate(4px)}}@keyframes tile-bounce{0%,to{transform:translateY(0)}50%{transform:translateY(-12px)}}@keyframes reveal-correct{0%{background:var(--color-tile-empty);color:var(--color-text);border-color:var(--color-tile-filled-border);transform:rotateX(0)}49.99%{background:var(--color-tile-empty);color:var(--color-text);border-color:var(--color-tile-filled-border);transform:rotateX(-90deg)}50%{background:var(--state-correct);color:var(--state-text);border-color:#0000;transform:rotateX(-90deg)}to{background:var(--state-correct);color:var(--state-text);border-color:#0000;transform:rotateX(0)}}@keyframes reveal-present{0%{background:var(--color-tile-empty);color:var(--color-text);border-color:var(--color-tile-filled-border);transform:rotateX(0)}49.99%{background:var(--color-tile-empty);color:var(--color-text);border-color:var(--color-tile-filled-border);transform:rotateX(-90deg)}50%{background:var(--state-present);color:var(--state-text);border-color:#0000;transform:rotateX(-90deg)}to{background:var(--state-present);color:var(--state-text);border-color:#0000;transform:rotateX(0)}}@keyframes reveal-absent{0%{background:var(--color-tile-empty);color:var(--color-text);border-color:var(--color-tile-filled-border);transform:rotateX(0)}49.99%{background:var(--color-tile-empty);color:var(--color-text);border-color:var(--color-tile-filled-border);transform:rotateX(-90deg)}50%{background:var(--state-absent);color:var(--state-text);border-color:#0000;transform:rotateX(-90deg)}to{background:var(--state-absent);color:var(--state-text);border-color:#0000;transform:rotateX(0)}}@media (prefers-reduced-motion:reduce){.tile,.row{animation:none!important}}.game{width:100%;max-width:500px;padding:var(--space-4);justify-content:space-between;align-items:center;gap:var(--space-6);flex-direction:column;flex:1;margin:0 auto;display:flex}.board{gap:var(--tile-gap);padding:var(--space-2);width:100%;max-width:var(--board-max-width);aspect-ratio:5/6;grid-template-rows:repeat(6,1fr);display:grid}.row{gap:var(--tile-gap);grid-template-columns:repeat(5,1fr);display:grid}.row--shake{animation:.5s row-shake}.tile{text-transform:uppercase;-webkit-user-select:none;user-select:none;border:2px solid var(--color-border);background:var(--color-tile-empty);color:var(--color-text);border-radius:var(--radius-sm);backface-visibility:hidden;justify-content:center;align-items:center;font-size:clamp(1.5rem,7vw,2rem);font-weight:700;display:flex}.tile--filled{border-color:var(--color-tile-filled-border);animation:.1s tile-pop}.tile--correct,.tile--present,.tile--absent{color:var(--state-text);border-color:#0000}.tile--correct{background:var(--state-correct)}.tile--present{background:var(--state-present)}.tile--absent{background:var(--state-absent)}.tile--revealing{animation-duration:.5s;animation-timing-function:ease;animation-fill-mode:backwards;animation-delay:calc(var(--i,0) * .25s)}.tile--revealing.tile--correct{animation-name:reveal-correct}.tile--revealing.tile--present{animation-name:reveal-present}.tile--revealing.tile--absent{animation-name:reveal-absent}.tile--bouncing{animation:.6s tile-bounce;animation-delay:calc(var(--i,0) * .1s)}.keyboard{gap:var(--space-2);flex-direction:column;width:100%;max-width:500px;display:flex}.keyboard-row{justify-content:center;gap:6px;display:flex}.key{border-radius:var(--radius-sm);background:var(--color-key-bg);min-width:0;height:58px;color:var(--color-key-text);text-transform:uppercase;cursor:pointer;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;border:none;flex:1;padding:0;font-size:1.1rem;font-weight:700;transition:background-color .15s,color .15s}.key:hover{background:var(--color-key-hover)}.key--wide{flex:1.5;font-size:.9rem}.key--correct{background:var(--state-correct);color:var(--state-text)}.key--present{background:var(--state-present);color:var(--state-text)}.key--absent{background:var(--state-absent);color:var(--state-text)}.puzzle-banner{background:var(--state-absent);color:var(--state-text);padding:var(--space-2) var(--space-4);border-radius:var(--radius-sm);text-align:center;width:100%;max-width:var(--board-max-width);font-size:.85rem}.puzzle-banner--info{background:var(--state-present)}.hint-button{border:1px solid var(--color-border);color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.05em;padding:var(--space-2) var(--space-4);cursor:pointer;background:0 0;border-radius:999px;align-self:center;font-family:inherit;font-size:.78rem;font-weight:600;transition:color .15s,border-color .15s}.hint-button:hover:not(:disabled){color:var(--color-text);border-color:var(--color-text)}.hint-button:disabled{opacity:.6;cursor:progress}.hint-card{width:100%;max-width:var(--board-max-width);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:var(--space-2) var(--space-3);background:var(--color-bg);flex-direction:column;align-self:center;gap:2px;display:flex}.hint-card-row{justify-content:space-between;align-items:center;display:flex}.hint-label{text-transform:uppercase;letter-spacing:.04em;color:var(--color-text-muted);font-size:.7rem}.hint-dismiss{color:var(--color-text-muted);cursor:pointer;padding:0 var(--space-1);background:0 0;border:none;font-size:1rem;line-height:1}.hint-dismiss:hover{color:var(--color-text)}.hint-guess{letter-spacing:.1em;color:var(--state-correct);font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:1.4rem;font-weight:800}.hint-bits{color:var(--color-text-muted);font-variant-numeric:tabular-nums;font-size:.78rem}.toast{top:calc(var(--header-height) + var(--space-4));background:var(--color-text);color:var(--color-bg);padding:var(--space-3) var(--space-4);border-radius:var(--radius-sm);z-index:100;pointer-events:none;white-space:nowrap;font-size:.9rem;font-weight:600;position:fixed;left:50%;transform:translate(-50%)}.modal-backdrop{z-index:200;padding:var(--space-4);background:#0000008c;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.modal{background:var(--color-bg);color:var(--color-text);border-radius:var(--radius-md);width:100%;max-width:480px;max-height:calc(100vh - var(--space-8));overflow-y:auto;box-shadow:0 8px 30px #00000040}.modal-header{padding:var(--space-3) var(--space-4);border-bottom:1px solid var(--color-border);justify-content:space-between;align-items:center;display:flex}.modal-title{letter-spacing:.06em;text-transform:uppercase;margin:0;font-size:1.1rem;font-weight:800}.modal-body{padding:var(--space-4)}.modal-body p{margin:0 0 var(--space-3)}.help-list{margin:0 0 var(--space-4);padding-left:var(--space-4)}.help-section{margin:var(--space-4) 0 var(--space-2);text-transform:uppercase;letter-spacing:.04em;font-size:1rem;font-weight:700}.help-example{margin-bottom:var(--space-3)}.help-row{margin-bottom:var(--space-2);grid-template-columns:repeat(5,40px);gap:4px;display:grid}.help-tile{width:40px;height:40px;font-size:1.25rem}.help-footnote{color:var(--color-text-muted);border-top:1px solid var(--color-border);padding-top:var(--space-3);margin-top:var(--space-4);font-size:.85rem}.stats-grid{gap:var(--space-2);margin-bottom:var(--space-4);grid-template-columns:repeat(4,1fr);display:grid}.stat{text-align:center}.stat-value{font-size:2rem;font-weight:700;line-height:1}.stat-label{text-transform:uppercase;margin-top:var(--space-1);color:var(--color-text-muted);font-size:.7rem}.stats-section{text-align:center;text-transform:uppercase;letter-spacing:.04em;margin:var(--space-4) 0 var(--space-3);font-size:.95rem;font-weight:700}.stats-empty{text-align:center;color:var(--color-text-muted);margin:var(--space-4) 0}.dist{gap:var(--space-2);flex-direction:column;display:flex}.dist-row{align-items:center;gap:var(--space-2);display:flex}.dist-label{text-align:right;width:16px;font-size:.9rem;font-weight:600}.dist-bar{background:var(--color-text-muted);color:var(--state-text);padding:2px var(--space-2);border-radius:var(--radius-sm);text-align:right;min-width:28px;font-size:.85rem;font-weight:700;transition:width .4s}.dist-bar--highlight{background:var(--state-correct)}.stats-actions{margin-top:var(--space-6);justify-content:center;display:flex}.primary-button{background:var(--state-correct);color:var(--state-text);text-transform:uppercase;letter-spacing:.04em;padding:var(--space-3) var(--space-6);cursor:pointer;border:none;border-radius:999px;font-size:.95rem;font-weight:700;transition:filter .15s}.primary-button:hover{filter:brightness(1.05)}.home{width:100%;max-width:640px;padding:var(--space-6) var(--space-4);gap:var(--space-6);flex-direction:column;margin:0 auto;display:flex}.home-hero{gap:var(--space-2);flex-direction:column;display:flex}.home-eyebrow{text-transform:uppercase;letter-spacing:.08em;color:var(--color-text-muted);font-size:.75rem;font-weight:600}.home-title{letter-spacing:-.01em;margin:0;font-size:clamp(1.6rem,5vw,2.2rem);font-weight:800;line-height:1.2}.home-sub{color:var(--color-text-muted);margin:0;font-size:.96rem;line-height:1.5}.home-games{gap:var(--space-3);flex-direction:column;display:flex}.home-card{justify-content:space-between;align-items:center;gap:var(--space-3);padding:var(--space-4);border-radius:var(--radius-md);border:1px solid var(--color-border);background:var(--color-bg);color:inherit;text-decoration:none;transition:border-color .15s,transform .15s;display:flex}.home-card:hover{border-color:var(--color-text);transform:translateY(-1px)}.home-card--primary{background:var(--state-correct);border-color:var(--state-correct);color:var(--state-text)}.home-card--primary:hover{filter:brightness(1.05);border-color:var(--state-correct)}.home-card-body{flex-direction:column;gap:2px;min-width:0;display:flex}.home-card-title{letter-spacing:.02em;font-size:1.2rem;font-weight:700}.home-card-meta{opacity:.85;font-size:.85rem}.home-card-arrow{flex-shrink:0;font-size:1.4rem;font-weight:700}.home-foot{color:var(--color-text-muted);text-align:center;margin:0;font-size:.85rem}.home-foot a{color:inherit;text-decoration:underline;-webkit-text-decoration-color:var(--color-border);text-decoration-color:var(--color-border)}.home-foot a:hover{-webkit-text-decoration-color:var(--color-text);text-decoration-color:var(--color-text)}.archive{width:100%;max-width:640px;padding:var(--space-4);gap:var(--space-4);flex-direction:column;margin:0 auto;display:flex}.archive-header{gap:var(--space-2);flex-direction:column;display:flex}.archive-back{color:var(--color-text-muted);align-self:flex-start;font-size:.9rem;text-decoration:none}.archive-back:hover{color:var(--color-text)}.archive-title{letter-spacing:.02em;text-transform:uppercase;margin:0;font-size:1.6rem;font-weight:800}.archive-sub{color:var(--color-text-muted);margin:0;font-size:.9rem;line-height:1.45}.archive-empty{padding:var(--space-6) 0;text-align:center;color:var(--color-text-muted)}.archive-list{gap:var(--space-3);margin:0;padding:0;list-style:none;display:grid}.archive-card{border:1px solid var(--color-border);border-radius:var(--radius-md);padding:var(--space-3) var(--space-4);gap:var(--space-2);background:var(--color-bg);flex-direction:column;display:flex}.archive-card-row{justify-content:space-between;align-items:center;gap:var(--space-3);flex-wrap:wrap;display:flex}.archive-date{color:var(--color-text-muted);font-variant-numeric:tabular-nums;font-size:.9rem}.archive-solution{letter-spacing:.08em;color:var(--state-correct);font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:1.4rem;font-weight:800}.archive-meta{gap:var(--space-2);flex-wrap:wrap;display:flex}.archive-tag{text-transform:uppercase;letter-spacing:.04em;padding:2px var(--space-2);background:var(--color-key-bg);color:var(--color-key-text);border-radius:999px;font-size:.72rem;font-weight:600}.archive-tag--source{border:1px solid var(--color-border);color:var(--color-text-muted);text-transform:none;letter-spacing:0;background:0 0;font-family:ui-monospace,SFMono-Regular,Consolas,monospace}.archive-tag--fallback{border-color:var(--state-present);color:var(--state-present)}.archive-etymology{color:var(--color-text);margin:0;font-size:.92rem;line-height:1.5}.archive-actions{gap:var(--space-2);display:flex}.archive-play-btn,.archive-reveal-btn{text-transform:uppercase;letter-spacing:.04em;padding:var(--space-2) var(--space-4);cursor:pointer;border:none;border-radius:999px;font-family:inherit;font-size:.82rem;font-weight:700;text-decoration:none;transition:filter .15s,background-color .15s,color .15s}.archive-play-btn{background:var(--state-correct);color:var(--state-text)}.archive-play-btn:hover{filter:brightness(1.05)}.archive-reveal-btn{color:var(--color-text);border:1px solid var(--color-border);background:0 0}.archive-reveal-btn:hover{background:var(--color-key-bg)}.archive-reveal-body{gap:var(--space-2);padding-top:var(--space-2);border-top:1px solid var(--color-border);flex-direction:column;display:flex}.archive-reveal-label{text-transform:uppercase;letter-spacing:.04em;color:var(--color-text-muted);font-size:.72rem}.replay-epilogue{width:100%;max-width:var(--board-max-width);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:var(--space-3) var(--space-4);gap:var(--space-2);flex-direction:column;display:flex}.replay-epilogue-row{justify-content:space-between;align-items:baseline;gap:var(--space-3);display:flex}.replay-epilogue-label{text-transform:uppercase;letter-spacing:.04em;color:var(--color-text-muted);font-size:.72rem}.replay-epilogue-solution{letter-spacing:.08em;color:var(--state-correct);font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:1.4rem;font-weight:800}.replay-epilogue-etymology{margin:var(--space-1) 0 var(--space-2);font-size:.92rem;line-height:1.5}.replay-epilogue-actions{justify-content:space-between;align-items:center;gap:var(--space-3);padding-top:var(--space-2);flex-wrap:wrap;display:flex}.secondary-button{color:var(--color-text);border:1px solid var(--color-border);text-transform:uppercase;letter-spacing:.04em;padding:var(--space-2) var(--space-4);cursor:pointer;background:0 0;border-radius:999px;font-family:inherit;font-size:.9rem;font-weight:700;transition:background-color .15s,border-color .15s}.secondary-button:hover{background:var(--color-key-bg);border-color:var(--color-text-muted)}.stats-actions{gap:var(--space-3)}.not-found{padding:var(--space-8) var(--space-4);text-align:center;gap:var(--space-3);flex-direction:column;align-items:center;display:flex}.account-section{gap:var(--space-2);padding-bottom:var(--space-3);border-bottom:1px solid var(--color-border);margin-bottom:var(--space-2);flex-direction:column;display:flex}.account-row{justify-content:space-between;align-items:center;gap:var(--space-3);display:flex}.account-email{color:var(--color-text);text-overflow:ellipsis;white-space:nowrap;font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:.85rem;overflow:hidden}.account-error{color:#d23f31;font-size:.8rem}.provider-buttons{gap:var(--space-2);flex-direction:column;display:flex}.provider-btn{justify-content:center;align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-4);border-radius:var(--radius-sm);cursor:pointer;border:1px solid var(--color-border);background:var(--color-bg);color:var(--color-text);font-family:inherit;font-size:.9rem;font-weight:600;transition:background-color .15s,border-color .15s;display:flex}.provider-btn:hover:not(:disabled){background:var(--color-key-bg)}.provider-btn:disabled{opacity:.6;cursor:not-allowed}.provider-btn--github svg{color:var(--color-text)}.setting{justify-content:space-between;align-items:center;gap:var(--space-4);padding:var(--space-3) 0;border-bottom:1px solid var(--color-border);display:flex}.setting:last-child{border-bottom:none}.setting--disabled{opacity:.55}.setting-text{flex:1;min-width:0}.setting-label{font-size:1rem;font-weight:600}.setting-desc{color:var(--color-text-muted);margin-top:2px;font-size:.85rem}.switch{background:var(--color-text-muted);cursor:pointer;border:none;border-radius:999px;flex-shrink:0;width:44px;height:24px;padding:0;transition:background-color .2s;position:relative}.switch:disabled{cursor:not-allowed}.switch--on{background:var(--state-correct)}.switch-thumb{background:#fff;border-radius:50%;width:20px;height:20px;transition:transform .2s;position:absolute;top:2px;left:2px}.switch--on .switch-thumb{transform:translate(20px)}.q-page{width:100%;max-width:600px;padding:var(--space-4);align-items:center;gap:var(--space-4);flex-direction:column;flex:1;margin:0 auto;display:flex}.q-empty{padding:var(--space-8) 0;color:var(--color-text-muted)}.q-solved-stack{gap:var(--space-2);flex-direction:column;width:100%;display:flex}.q-solved{padding:var(--space-3) var(--space-4);border-radius:var(--radius-md);text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:2px;display:flex}.q-solved--tier-1{background:var(--quartet-tier-1);color:var(--quartet-tier-1-text)}.q-solved--tier-2{background:var(--quartet-tier-2);color:var(--quartet-tier-2-text)}.q-solved--tier-3{background:var(--quartet-tier-3);color:var(--quartet-tier-3-text)}.q-solved--tier-4{background:var(--quartet-tier-4);color:var(--quartet-tier-4-text)}.q-solved-theme{letter-spacing:.06em;font-size:.95rem;font-weight:800}.q-solved-words{letter-spacing:.06em;font-size:.82rem}@keyframes q-solve-rise{0%{opacity:0;transform:translateY(64px)scale(.92)}70%{opacity:1;transform:translateY(-4px)scale(1.02)}to{opacity:1;transform:translateY(0)scale(1)}}.q-solved--flash{animation:.55s cubic-bezier(.34,1.56,.64,1) q-solve-rise}.q-grid{gap:var(--space-2);grid-template-columns:repeat(4,1fr);width:100%;display:grid}.q-tile{background:var(--color-key-bg);color:var(--color-text);border-radius:var(--radius-sm);letter-spacing:.04em;text-transform:uppercase;padding:var(--space-3) var(--space-2);cursor:pointer;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;aspect-ratio:1.4;border:none;font-family:inherit;font-size:clamp(.8rem,3.2vw,1rem);font-weight:700;transition:background-color .12s,color .12s,transform .12s}.q-tile:hover:not(:disabled){background:var(--color-key-hover)}.q-tile--selected{background:var(--color-text);color:var(--color-bg);transform:translateY(-2px)}.q-tile--locked{cursor:default;opacity:.6}@keyframes q-tile-vanish{0%{opacity:1;transform:scale(1)translateY(0)}to{opacity:0;transform:scale(.7)translateY(-24px)}}.q-tile--vanishing{pointer-events:none;animation:.32s forwards q-tile-vanish}@keyframes q-tile-shake{0%,to{transform:translate(0)}25%{transform:translate(-5px)}75%{transform:translate(5px)}}.q-tile--shaking{animation:.32s q-tile-shake}@media (prefers-reduced-motion:reduce){.q-solved--flash,.q-tile--vanishing,.q-tile--shaking{animation:none}}.q-mistakes{align-items:center;gap:var(--space-3);color:var(--color-text-muted);font-size:.85rem;display:flex}.q-mistakes-dots{gap:var(--space-2);display:inline-flex}.q-mistake-dot{background:var(--color-text);border-radius:50%;width:12px;height:12px;transition:background-color .2s,transform .2s;display:inline-block}.q-mistake-dot--spent{background:var(--color-border);transform:scale(.7)}.q-controls{gap:var(--space-2);flex-wrap:wrap;justify-content:center;width:100%;display:flex}.q-btn{text-transform:uppercase;letter-spacing:.04em;min-width:100px;padding:var(--space-3) var(--space-4);cursor:pointer;border-radius:999px;flex:auto;font-family:inherit;font-size:.85rem;font-weight:700;transition:filter .15s,opacity .15s,background-color .15s,color .15s}.q-btn:disabled{opacity:.5;cursor:not-allowed}.q-btn--secondary{border:1px solid var(--color-border);color:var(--color-text);background:0 0}.q-btn--secondary:hover:not(:disabled){background:var(--color-key-bg);border-color:var(--color-text-muted)}.q-btn--primary{background:var(--color-text);color:var(--color-bg);border:1px solid var(--color-text)}.q-btn--primary:hover:not(:disabled){filter:brightness(1.1)}.stats-grid--secondary{margin-bottom:var(--space-4);grid-template-columns:repeat(2,1fr)}@media (width<=480px){.q-page{padding:var(--space-3);gap:var(--space-3)}.q-tile{padding:var(--space-2) 4px;font-size:clamp(.7rem,3.6vw,1rem)}.q-btn{min-width:0;padding:var(--space-3) var(--space-2)}.q-mistakes{justify-content:center;gap:var(--space-2);flex-wrap:wrap}.stats-grid{gap:var(--space-3);grid-template-columns:repeat(2,1fr)}.modal-backdrop{padding:var(--space-2)}.modal-body,.modal-header{padding-left:var(--space-3);padding-right:var(--space-3)}.archive{padding:var(--space-3)}.archive-card-row{gap:var(--space-2)}.home{padding:var(--space-4) var(--space-3)}}.home-card--quartet{color:#fff;background:#bb81c5;border-color:#bb81c5}.home-card--quartet:hover{filter:brightness(1.05);border-color:#bb81c5}.l-page{width:100%;max-width:480px;padding:var(--space-4);align-items:center;gap:var(--space-3);flex-direction:column;flex:1;margin:0 auto;display:flex}.l-empty{padding:var(--space-8) 0;color:var(--color-text-muted)}.l-chain{align-items:center;gap:var(--space-2);flex-direction:column;width:100%;display:flex}.l-row{gap:6px;display:flex}.l-cell{border-radius:var(--radius-sm);background:var(--color-key-bg);width:50px;height:50px;color:var(--color-text);-webkit-user-select:none;user-select:none;justify-content:center;align-items:center;font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:1.5rem;font-weight:800;display:flex}.l-row--start .l-cell{background:var(--color-text);color:var(--color-bg)}.l-row--target .l-cell{background:var(--state-correct);color:var(--state-text)}.l-row--chain .l-cell--changed{background:var(--state-present);color:var(--state-text)}.l-row--optimal-step .l-cell{border:1px dashed var(--color-text-muted);color:var(--color-text-muted);background:0 0;font-size:1.2rem}.l-row--optimal-step .l-cell--changed{border-color:var(--state-correct);color:var(--state-correct)}.l-optimal-stack{align-items:center;gap:var(--space-2);padding:var(--space-3) 0;border-top:1px dashed var(--color-border);border-bottom:1px dashed var(--color-border);flex-direction:column;width:100%;display:flex}.l-optimal-label{text-transform:uppercase;letter-spacing:.06em;color:var(--color-text-muted);font-size:.7rem;font-weight:700}.l-row--input{margin-top:var(--space-1)}.l-cell--input{border:2px dashed var(--color-border);color:var(--color-text);background:0 0}.l-cell--input.l-cell--filled{border-style:solid;border-color:var(--color-tile-filled-border)}.l-cell--input.l-cell--changed{background:var(--state-present);color:var(--state-text);border-color:var(--state-present)}.l-cell--cursor{border-style:solid;border-color:var(--color-text);animation:1s ease-in-out infinite l-cursor-pulse}@keyframes l-cursor-pulse{0%,to{opacity:1}50%{opacity:.4}}@keyframes l-shake{0%,to{transform:translate(0)}25%{transform:translate(-6px)}75%{transform:translate(6px)}}.l-row--input{animation:l-shake}.l-controls{align-items:center;gap:var(--space-3);margin-top:var(--space-2);flex-direction:column;width:100%;display:flex}.l-counter{font-variant-numeric:tabular-nums;align-items:baseline;gap:6px;font-size:1.1rem;font-weight:700;display:flex}.l-counter-label{color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.04em;font-size:.75rem;font-weight:500}.l-counter-divider{margin:0 var(--space-2);color:var(--color-text-muted)}.l-button-row{gap:var(--space-2);width:100%;display:flex}.l-btn{text-transform:uppercase;letter-spacing:.04em;padding:var(--space-3) var(--space-4);cursor:pointer;border-radius:999px;flex:auto;font-family:inherit;font-size:.85rem;font-weight:700;transition:filter .15s,opacity .15s,background-color .15s}.l-btn:disabled{opacity:.5;cursor:not-allowed}.l-btn--secondary{border:1px solid var(--color-border);color:var(--color-text);background:0 0}.l-btn--secondary:hover:not(:disabled){background:var(--color-key-bg);border-color:var(--color-text-muted)}.l-btn--primary{background:var(--color-text);color:var(--color-bg);border:1px solid var(--color-text)}.l-btn--primary:hover:not(:disabled){filter:brightness(1.1)}@media (width<=480px){.l-cell{width:44px;height:44px;font-size:1.25rem}.l-row--optimal-step .l-cell{width:36px;height:36px;font-size:1rem}.l-page{padding:var(--space-3)}}.help-ladder-row{max-width:220px;margin:4px 0 var(--space-3)}.help-ladder-row .l-cell{border-width:2px;font-size:1rem}.help-ladder-row.l-row--input{animation:none}.home-card--ladder{color:#fff;background:#4a90e2;border-color:#4a90e2}.home-card--ladder:hover{filter:brightness(1.05);border-color:#4a90e2}.app-shell{flex-direction:column;min-height:100vh;display:flex}.app-header{height:var(--header-height);padding:0 var(--space-4);border-bottom:1px solid var(--color-border);background:var(--color-bg);grid-template-columns:1fr auto 1fr;align-items:center;display:grid}.app-title{letter-spacing:.04em;text-transform:uppercase;text-align:center;color:inherit;margin:0;font-size:1.75rem;font-weight:800;text-decoration:none}.app-title:hover{opacity:.7}.header-side{align-items:center;gap:var(--space-1);display:flex}.header-side--right{justify-content:flex-end}.icon-button{color:var(--color-text);cursor:pointer;-webkit-tap-highlight-color:transparent;background:0 0;border:none;border-radius:50%;justify-content:center;align-items:center;width:40px;height:40px;padding:0;font-size:1.1rem;display:flex}.icon-button:hover{background:var(--color-key-bg)}
