:root{--p-lavender: #e2d9e4;--p-sea: #6c9a9a;--p-moss: #52675d;--p-moss-dark: #37403b;--p-sand: #f3c893;--p-coral: #e5987d;--p-red: #cb5e5c;--p-plum: #72334c;--p-rose: #c0a5a9;--p-mauve: #bf7d85;--p-wine: #804d53;--p-plum-dark: #403038;--p-blue: #7c8fb2;--p-blue-dark: #4c5274;--p-navy: #2e334d;--p-ink: #1f2025;--bg: var(--p-ink);--surface: var(--p-navy);--surface-dark: var(--p-plum-dark);--text: var(--p-lavender);--muted: var(--p-rose);--line: var(--p-sand);--accent: var(--p-coral);--accent-strong: var(--p-red);--shadow: var(--p-plum);--board-light: var(--p-lavender);--board-dark: var(--p-moss-dark);--board-size: clamp(9rem, 34vmin, 19rem);--target-board-size: clamp(7.25rem, 26vmin, 14rem);--gap: 1.3rem;color:var(--text);background:var(--bg);font-family:Courier New,Courier,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-synthesis:none;text-rendering:geometricPrecision;-webkit-font-smoothing:none}*{box-sizing:border-box}html,body,#root{min-height:100%}body{margin:0;min-width:320px;min-height:100vh;background:var(--bg)}button{font:inherit}.boot,.auth-screen,.game-screen{min-height:100vh;min-height:100svh}.boot{display:grid;place-items:center;background:var(--bg)}.boot:before{width:3rem;height:3rem;background:var(--line);animation:load .7s infinite steps(1);content:""}.auth-screen,.game-screen{display:grid;place-items:center;padding:2rem}.auth-panel,.play-panel,.home-panel{border:4px solid var(--line);background:var(--surface);box-shadow:8px 8px 0 var(--shadow)}.auth-panel{display:grid;justify-items:center;gap:1.3rem;width:min(100%,27rem);padding:2.2rem;text-align:center}.home-panel{display:grid;gap:1.2rem;width:min(100%,38rem);padding:1.4rem}.daily-menu-panel{width:min(100%,32rem)}.home-header{display:flex;align-items:start;justify-content:space-between;gap:1rem}.auth-panel h1,.home-panel h1,.panel-header h1,.rules-modal h2{margin:0;color:var(--text);font-weight:900;letter-spacing:0}.auth-panel h1{font-size:4rem;line-height:.9;text-shadow:4px 4px 0 var(--shadow);white-space:nowrap}.home-panel h1{font-size:2rem;line-height:1}.panel-header h1{font-size:2rem;line-height:1;white-space:nowrap}.google-button,.icon-button,.rules-button,.mode-card{border:3px solid var(--line);border-radius:0;background:var(--surface-dark);color:var(--text)}.google-button,.icon-button,.rules-button,.mode-card{cursor:pointer;box-shadow:4px 4px 0 var(--shadow);transition:box-shadow 80ms steps(1),transform 80ms steps(1)}.google-button{display:inline-flex;align-items:center;justify-content:center;gap:.65rem;min-height:3.25rem;padding:0 1rem;font-size:.95rem;font-weight:900;text-transform:uppercase}.google-button span:first-child{display:grid;place-items:center;width:1.55rem;height:1.55rem;background:var(--accent);color:var(--bg)}.google-button:disabled{cursor:default}.icon-button:disabled{color:var(--muted);cursor:default;opacity:.55}.icon-button--blink{animation:restart-blink .7s infinite steps(1)}.google-button:not(:disabled):hover,.icon-button:not(:disabled):hover,.rules-button:hover,.mode-card:hover{box-shadow:2px 2px 0 var(--shadow);transform:translate(2px,2px)}.piece-preview{display:flex;justify-content:center;gap:.5rem;padding:.65rem;border:3px solid var(--accent);background:var(--surface-dark)}.game-shell{width:min(100%,58rem)}.play-panel{display:grid;gap:1.2rem;padding:1.4rem}.mode-grid{display:grid;gap:.8rem}.mode-card{display:grid;gap:.35rem;min-height:4rem;padding:.9rem;text-align:left}.mode-card span,.mode-card strong{display:block;line-height:1}.mode-card span{color:var(--text);font-size:1.1rem;font-weight:900}.mode-card strong{color:var(--accent);font-size:.85rem;font-weight:900;text-transform:uppercase}.mode-card--soon{border-color:var(--muted)}.panel-header{display:flex;align-items:end;justify-content:space-between;gap:1rem}.session-meta{margin-top:.4rem;color:var(--accent);font-size:.85rem;font-weight:900;text-transform:uppercase}.status-strip,.soon-panel{border:3px solid var(--accent);background:var(--surface-dark);color:var(--text);padding:.8rem;font-size:.95rem;font-weight:900}.stats-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.65rem}.stats-grid--summary{grid-template-columns:repeat(2,minmax(0,1fr))}.stat-box{display:grid;gap:.3rem;min-height:3.6rem;border:3px solid var(--accent);background:var(--surface-dark);padding:.55rem}.stat-box span,.stat-box strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.stat-box span{color:var(--muted);font-size:.72rem;font-weight:900;text-transform:uppercase}.stat-box strong{color:var(--text);font-size:1rem;font-weight:900;font-variant-numeric:tabular-nums;line-height:1}.soon-panel{min-height:8rem;display:grid;place-items:center;text-transform:uppercase}.calendar-toolbar{display:flex;align-items:center;justify-content:space-between;gap:.8rem;border:3px solid var(--line);background:var(--surface-dark);padding:.65rem}.calendar-toolbar__title{color:var(--accent);font-size:.95rem;font-weight:900;line-height:1;text-transform:uppercase}.calendar-arrows{display:flex;gap:.55rem;margin-left:auto}.pixel-calendar{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:.35rem;border:3px solid var(--accent);background:var(--surface-dark);padding:.65rem}.calendar-weekday{display:grid;place-items:center;min-height:1.6rem;color:var(--muted);font-size:.75rem;font-weight:900;line-height:1}.calendar-cell{display:grid;place-items:center;width:100%;aspect-ratio:1;border:3px solid var(--line);border-radius:0;background:var(--surface);color:var(--text);font-size:.95rem;font-weight:900;line-height:1;box-shadow:3px 3px 0 var(--shadow)}button.calendar-cell{cursor:pointer;transition:box-shadow 80ms steps(1),transform 80ms steps(1)}button.calendar-cell:not(:disabled):hover{box-shadow:1px 1px 0 var(--shadow);transform:translate(2px,2px)}.calendar-cell--empty{border-color:transparent;background:transparent;box-shadow:none}.calendar-cell--unavailable{border-color:var(--muted);background:var(--bg);color:var(--muted);cursor:default;opacity:.55;box-shadow:none}.calendar-cell--today{border-color:var(--accent);color:var(--accent)}.calendar-cell--completed{background:var(--accent);color:var(--bg)}.calendar-cell--completed.calendar-cell--today{border-color:var(--line)}.calendar-loading-overlay{position:fixed;inset:0;z-index:8;display:grid;place-items:center;pointer-events:none;background:#0000001f}.calendar-loading-overlay>span{border:3px solid var(--accent);background:var(--surface-dark);color:var(--text);font-weight:900;font-size:.95rem;padding:.65rem .95rem;box-shadow:4px 4px 0 var(--shadow)}.game-stage{display:flex;align-items:end;justify-content:center;gap:var(--gap)}.board{display:grid;flex:0 0 auto;grid-template-columns:repeat(3,1fr);grid-template-rows:repeat(3,1fr);width:var(--board-size);aspect-ratio:1;border:4px solid var(--line);overflow:hidden;background:var(--bg);box-shadow:6px 6px 0 var(--shadow)}.board--target{width:var(--target-board-size);border-color:var(--accent);box-shadow:none}.square{position:relative;display:grid;place-items:center;width:100%;height:100%;min-width:0;min-height:0;overflow:hidden;background:var(--board-light);box-shadow:inset 0 0 0 2px var(--bg)}.square:nth-child(2n){background:var(--board-dark)}.square--over:after,.square--correct:after{position:absolute;inset:.3rem;content:"";pointer-events:none}.square--over:after{border:4px solid var(--accent-strong)}.board--target .square--correct{background:var(--accent)}.board--target .square--correct:after{border:3px solid var(--shadow)}.piece{z-index:1;display:grid;place-items:center;width:88%;height:88%;min-width:0;min-height:0;border:0;border-radius:0;background:transparent;cursor:default;touch-action:none;-webkit-user-select:none;user-select:none;image-rendering:pixelated}.board--target .piece--correct{background:var(--shadow)}.piece--draggable{cursor:grab}.piece--draggable:active{cursor:grabbing}.piece--dragging{visibility:hidden}.piece--floating{width:calc(var(--board-size) / 3.35);height:calc(var(--board-size) / 3.35);pointer-events:none}.piece-image{width:100%;aspect-ratio:1;object-fit:contain;image-rendering:pixelated;pointer-events:none}.piece-preview .piece-image{width:2.6rem;height:2.6rem}.score{display:grid;place-items:center;min-width:4.25rem;height:2.65rem;border:3px solid var(--line);background:var(--surface-dark);color:var(--accent);font-size:1rem;font-weight:900;font-variant-numeric:tabular-nums;line-height:1;box-shadow:4px 4px 0 var(--shadow)}.score--done{background:var(--accent);color:var(--bg)}.panel-footer{display:flex;align-items:start;justify-content:space-between;gap:1rem}.hud{display:flex;justify-content:flex-end;gap:.7rem;margin-left:auto}.icon-button{display:grid;place-items:center;width:2.65rem;height:2.65rem}.rules-button{display:inline-flex;align-items:center;justify-content:center;gap:.45rem;min-height:2.65rem;padding:0 .8rem;font-size:.9rem;font-weight:900;text-transform:uppercase}.modal-backdrop{position:fixed;inset:0;z-index:10;display:grid;place-items:center;padding:1rem;background:var(--bg)}.rules-modal{display:grid;gap:1rem;width:min(100%,32rem);border:4px solid var(--line);background:var(--surface);padding:1.2rem;box-shadow:8px 8px 0 var(--shadow)}.modal-header{display:flex;align-items:center;justify-content:space-between;gap:1rem}.rules-modal h2{font-size:1.55rem;line-height:1}.modal-close{flex:0 0 auto}.rules-modal ul{display:grid;gap:.65rem;margin:0;padding:0 0 0 1rem;border-left:3px solid var(--accent);list-style:none}.rules-modal li{color:var(--text);font-size:.92rem;line-height:1.4}@keyframes load{50%{background:var(--accent)}}@keyframes restart-blink{0%,to{box-shadow:4px 4px 0 var(--shadow);background:var(--surface-dark)}50%{box-shadow:1px 1px 0 var(--shadow);background:var(--accent-strong)}}@media(max-width:680px){:root{--board-size: clamp(13rem, 72vw, 18rem);--target-board-size: clamp(8rem, 44vw, 11rem);--gap: .85rem}.auth-screen,.game-screen{padding:1rem}.auth-panel,.play-panel,.home-panel{box-shadow:5px 5px 0 var(--shadow)}.auth-panel{padding:1.4rem}.auth-panel h1{font-size:2.8rem}.play-panel,.home-panel{padding:1rem}.panel-header{align-items:start}.panel-header h1,.home-panel h1{font-size:1.55rem}.game-stage{flex-direction:column-reverse;align-items:center;gap:.75rem}.panel-footer{flex-wrap:wrap}.stats-grid{grid-template-columns:1fr}.hud{margin-left:0}.rules-modal{padding:1rem;box-shadow:5px 5px 0 var(--shadow)}}
