*{margin:0;padding:0;box-sizing:border-box}html,body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;overflow:hidden;width:100%;height:100%;position:fixed}#root{width:100%;height:100dvh}:root{--color-bg-paper: #f5f1e8;--color-bg-tile: #f1e7d8;--color-bg-tile-pressed: #e8ddcb;--color-bg-tile-cleared: #f0f0f0;--color-bg-progress-track: #e3ddcf;--color-text-primary: #2e2b26;--color-text-secondary: #7a746b;--color-text-muted: #666666;--color-text-disabled: #cccccc;--color-text-inverse: #ffffff;--color-accent-primary: #8fa36a;--color-accent-primary-dark: #6f8450;--color-accent-secondary: #ffb74d;--color-error: #d32f2f;--color-success: #8fa36a;--color-border-soft: #d6cbb8;--color-border-light: #dddddd;--color-border-lighter: #e0e0e0;--color-shadow-sm: rgba(0, 0, 0, .06);--color-shadow-md: rgba(0, 0, 0, .12);--color-shadow-lg: rgba(0, 0, 0, .18);--color-shadow-xl: rgba(0, 0, 0, .3);--color-highlight-inner: rgba(255, 255, 255, .8);--color-highlight-inner-soft: rgba(255, 255, 255, .6);--color-highlight-inner-subtle: rgba(255, 255, 255, .25);--font-family-base: -apple-system, BlinkMacSystemFont, "Segoe UI", "Roboto", "Oxygen", "Ubuntu", "Cantarell", "Fira Sans", "Droid Sans", "Helvetica Neue", sans-serif;--font-size-xs: .75rem;--font-size-sm: .875rem;--font-size-base: 1rem;--font-size-lg: 1.125rem;--font-size-xl: 1.25rem;--font-size-2xl: 1.5rem;--font-size-3xl: 2rem;--font-size-4xl: 2.5rem;--font-size-5xl: 3rem;--font-weight-normal: 400;--font-weight-medium: 500;--font-weight-semibold: 600;--font-weight-bold: 700;--line-height-tight: 1.2;--line-height-snug: 1.375;--line-height-normal: 1.5;--line-height-relaxed: 1.625;--letter-spacing-tight: -.02em;--letter-spacing-normal: 0;--letter-spacing-wide: .04em;--space-0: 0;--space-1: .125rem;--space-2: .25rem;--space-3: .5rem;--space-4: .75rem;--space-5: 1rem;--space-6: 1.25rem;--space-7: 1.5rem;--space-8: 2rem;--space-9: 2.5rem;--space-10: 3rem;--size-button-height-sm: 2.5rem;--size-button-height-md: 3rem;--size-button-height-lg: 3.5rem;--size-tile-grid: 25vw;--size-progress-track-height: 20px;--size-stack-indicator-width: 12px;--size-stack-indicator-height: 8px;--radius-xs: 4px;--radius-sm: 8px;--radius-md: 12px;--radius-lg: 16px;--radius-full: 999px;--shadow-xs: 0 1px 2px var(--color-shadow-sm);--shadow-sm: 0 2px 4px var(--color-shadow-sm);--shadow-md: 0 3px 6px var(--color-shadow-md);--shadow-lg: 0 4px 12px var(--color-shadow-xl);--shadow-inner-highlight: 0 1px 0 var(--color-highlight-inner) inset;--shadow-inner-highlight-soft: 0 1px 0 var(--color-highlight-inner-soft) inset;--shadow-inner-highlight-subtle: 0 1px 0 var(--color-highlight-inner-subtle) inset;--shadow-inner-depth: 0 -1px 0 rgba(0, 0, 0, .04) inset;--shadow-inner-pressed: 0 1px 2px var(--color-shadow-lg) inset;--shadow-tile: var(--shadow-inner-highlight), var(--shadow-inner-depth), var(--shadow-md);--shadow-tile-pressed: var(--shadow-inner-highlight-soft), var(--shadow-xs);--shadow-button-primary: var(--shadow-inner-highlight-subtle), var(--shadow-md);--shadow-button-secondary: var(--shadow-inner-highlight), var(--shadow-sm);--shadow-progress-fill: var(--shadow-xs);--duration-fast: .15s;--duration-normal: .25s;--duration-slow: .35s;--duration-toast: 2s;--ease-in: cubic-bezier(.4, 0, 1, 1);--ease-out: cubic-bezier(0, 0, .2, 1);--ease-in-out: cubic-bezier(.4, 0, .2, 1);--ease-bounce: cubic-bezier(.68, -.55, .265, 1.55);--z-base: 0;--z-dropdown: 100;--z-sticky: 200;--z-overlay: 500;--z-modal: 800;--z-toast: 1000}.tile{background:var(--color-bg-tile);border:1px solid var(--color-border-soft);border-radius:var(--radius-xs);color:var(--color-text-primary);font-weight:var(--font-weight-bold);font-size:var(--font-size-3xl);box-shadow:var(--shadow-tile);transition:all var(--duration-fast) var(--ease-out)}.tile--active{background:var(--color-bg-tile-pressed);transform:scale(.97);box-shadow:var(--shadow-tile-pressed)}.tile--cleared{background:var(--color-bg-tile-cleared);border-color:var(--color-border-light);cursor:default}.button-primary{background:var(--color-accent-primary);color:var(--color-text-inverse);border:none;border-radius:var(--radius-md);padding:var(--space-7) var(--space-6);font-weight:var(--font-weight-bold);letter-spacing:var(--letter-spacing-wide);box-shadow:var(--shadow-button-primary);cursor:pointer;text-transform:uppercase;transition:all var(--duration-fast) var(--ease-out)}.button-primary:hover:not(:disabled){background:var(--color-accent-primary-dark)}.button-primary:active:not(:disabled){background:var(--color-accent-primary-dark);transform:translateY(1px);box-shadow:var(--shadow-inner-pressed)}.button-primary:disabled{background:var(--color-bg-tile-cleared);border:1px solid var(--color-border-soft);color:var(--color-text-muted);cursor:not-allowed;opacity:.6}.button-secondary{background:var(--color-bg-tile);border:1px solid var(--color-border-soft);border-radius:var(--radius-md);color:var(--color-text-primary);padding:var(--space-7) var(--space-6);font-weight:var(--font-weight-bold);letter-spacing:var(--letter-spacing-wide);box-shadow:var(--shadow-button-secondary);cursor:pointer;text-transform:uppercase;transition:all var(--duration-fast) var(--ease-out)}.button-secondary:hover:not(:disabled){background:var(--color-bg-tile-pressed)}.button-secondary:active:not(:disabled){transform:translateY(1px)}.button-secondary:disabled{background:var(--color-bg-tile-cleared);color:var(--color-text-muted);cursor:not-allowed;opacity:.6}.progress-track{background:var(--color-bg-progress-track);border:1px solid var(--color-border-soft);border-radius:var(--radius-full);height:var(--size-progress-track-height);width:100%;overflow:hidden}.progress-fill{background:var(--color-accent-primary);border-radius:var(--radius-full);height:100%;transition:width var(--duration-slow) var(--ease-out)}.toast{position:fixed;top:var(--space-6);left:50%;transform:translate(-50%);background:var(--color-error);color:var(--color-text-inverse);padding:var(--space-5) var(--space-8);border-radius:var(--radius-sm);font-size:var(--font-size-base);box-shadow:var(--shadow-lg);z-index:var(--z-toast);animation:slideDown var(--duration-slow) var(--ease-out);text-align:center}@keyframes slideDown{0%{opacity:0;transform:translate(-50%) translateY(-20px)}to{opacity:1;transform:translate(-50%) translateY(0)}}.app{width:100%;height:100%;display:flex;justify-content:center;align-items:center;background:linear-gradient(0deg,#fff9,#fff9),url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='120' height='120'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='0.8' numOctaves='4'/></filter><rect width='120' height='120' filter='url(#n)' opacity='0.025'/></svg>")}.text-xs{font-size:var(--font-size-xs)}.text-sm{font-size:var(--font-size-sm)}.text-base{font-size:var(--font-size-base)}.text-lg{font-size:var(--font-size-lg)}.text-xl{font-size:var(--font-size-xl)}.text-2xl{font-size:var(--font-size-2xl)}.text-3xl{font-size:var(--font-size-3xl)}.text-4xl{font-size:var(--font-size-4xl)}.text-5xl{font-size:var(--font-size-5xl)}.gap-sm{gap:var(--space-3)}.gap-md{gap:var(--space-5)}.gap-lg{gap:var(--space-8)}.intro{display:flex;flex-direction:column;align-items:center;gap:var(--space-8);padding:var(--space-8)}.intro-title{font-size:var(--font-size-5xl);margin:0;color:var(--color-text-primary)}.intro-buttons{display:flex;gap:var(--space-5);flex-direction:column;align-items:center}.intro-button{padding:var(--space-5) var(--space-8);font-size:var(--font-size-2xl);min-width:200px}.instructions{display:flex;flex-direction:column;align-items:center;padding:var(--space-8);gap:var(--space-6);min-height:100dvh;max-width:800px;margin:0 auto}.instructions-step-dots{display:flex;gap:var(--space-3);margin-bottom:var(--space-4)}.instructions-step-dot{width:12px;height:12px;border-radius:50%;background:var(--color-border-soft);transition:background .2s ease}.instructions-step-dot--active{background:var(--color-accent-primary)}.instructions-step{display:flex;flex-direction:column;align-items:center;text-align:center;gap:var(--space-6);flex:1;width:100%;max-width:400px}.instructions-step-title{font-size:var(--font-size-3xl);color:var(--color-text-primary);margin:0}.instructions-step-text{font-size:var(--font-size-lg);color:var(--color-text-secondary);line-height:var(--line-height-relaxed);margin:0}.instructions-demo-tile{width:80px;height:80px;font-size:var(--font-size-3xl);display:flex;justify-content:center;align-items:center;text-transform:uppercase;font-weight:var(--font-weight-bold)}.instructions-demo-stack{position:relative;width:160px;height:160px;margin:var(--space-8) 0}.instructions-demo-stack .instructions-demo-tile{width:100px;height:100px;font-size:var(--font-size-4xl);position:absolute;top:0;left:0}.instructions-demo-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--space-2);margin:var(--space-4) 0}.instructions-demo-grid .instructions-demo-tile{width:70px;height:70px;font-size:var(--font-size-2xl)}.instructions-demo-meter-container{display:flex;flex-direction:column;align-items:center;gap:var(--space-4);margin:var(--space-4) 0}.instructions-demo-tile--with-meter{position:relative;width:100px;height:100px;font-size:var(--font-size-4xl)}.instructions-demo-indicator{position:absolute;right:var(--space-2);top:50%;transform:translateY(-50%);display:flex;flex-direction:column-reverse;gap:2px}.instructions-demo-indicator-tile{width:10px;height:6px;background:var(--color-text-secondary);border-top:1px dotted var(--color-text-secondary)}.instructions-demo-indicator-tile--cleared{background:var(--color-bg-progress-track);border-color:var(--color-bg-progress-track)}.instructions-demo-indicator-tile--gold{background:var(--color-accent-secondary);border-color:var(--color-accent-secondary);animation:pulse 1s ease-in-out infinite}@keyframes pulse{0%,to{transform:scale(1);opacity:1}50%{transform:scale(1.5);opacity:.9}}.instructions-demo-meter-labels{display:flex;flex-direction:column;align-items:center;gap:var(--space-2)}.instructions-demo-meter-label{font-size:var(--font-size-base);padding:var(--space-2) var(--space-4);border-radius:var(--radius-xs)}.instructions-demo-meter-label--gold{background:var(--color-accent-secondary);color:var(--color-text-primary);font-weight:var(--font-weight-bold)}.instructions-buttons{display:flex;gap:var(--space-5);margin-top:auto;padding-bottom:var(--space-8)}.instructions-button{padding:var(--space-5) var(--space-8);font-size:var(--font-size-xl);min-width:150px}.game{display:flex;flex-direction:column;justify-content:center;align-items:center;padding:var(--space-8);gap:var(--space-8);position:relative}.game-give-up-button{position:fixed;top:var(--space-4);right:var(--space-4);background:transparent;border:none;color:var(--color-text-muted);font-size:var(--font-size-sm);padding:var(--space-2) var(--space-3);cursor:pointer;transition:color .2s var(--ease-in-out)}.game-give-up-button:hover{color:var(--color-text-secondary)}.game-stats{display:flex;flex-direction:column;align-items:center}.game-score{display:flex;flex-direction:column;align-items:center;color:var(--color-text-primary)}.game-score-value{font-size:var(--font-size-5xl);font-weight:var(--font-weight-bold)}.game-progress-container{display:flex;flex-direction:column;align-items:center;gap:var(--space-3);width:300px}.game-progress-label{font-size:var(--font-size-sm);color:var(--color-text-muted)}.game-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--space-3)}.game-grid-row{display:contents}.game-grid-cell{width:var(--size-tile-grid);height:var(--size-tile-grid);max-width:100px;max-height:100px;display:flex;justify-content:center;align-items:center;font-size:var(--font-size-4xl);text-transform:uppercase;cursor:pointer;position:relative}.game-empty-text{font-size:var(--font-size-xs);color:var(--color-text-muted);text-transform:lowercase;font-weight:var(--font-weight-normal)}.game-controls{display:flex;gap:var(--space-3);align-items:center;min-width:90%;max-width:480px}.game-control-button{font-size:var(--font-size-2xl);padding:var(--space-5);white-space:nowrap}.game-control-button-primary{flex:1}.game-stack-indicator{position:absolute;right:var(--space-3);top:50%;transform:translateY(-50%);display:flex;flex-direction:column-reverse;gap:var(--space-1)}.game-stack-tile{width:var(--size-stack-indicator-width);height:var(--size-stack-indicator-height);background:var(--color-text-secondary);border-top:1px dotted var(--color-text-secondary)}.game-stack-tile-cleared{background:var(--color-bg-progress-track);border-color:var(--color-bg-progress-track)}.game-stack-tile-layer-cleared{background:var(--color-accent-secondary);border-color:var(--color-accent-secondary);animation:pulse 1s var(--ease-in-out)}@keyframes pulse{0%,to{transform:scale(1);opacity:1}50%{transform:scale(2);opacity:.95}}.game-over{display:flex;flex-direction:column;justify-content:center;align-items:center;gap:var(--space-8);padding:var(--space-8)}.game-over-title{font-size:var(--font-size-5xl);margin:0;color:var(--color-text-primary)}.game-over-stats-container{background:var(--color-bg-tile);border:1px solid var(--color-border-soft);border-radius:var(--radius-xs);box-shadow:var(--shadow-tile);padding:var(--space-4);width:100%}.game-over-stats{display:flex;flex-direction:column;align-items:center;gap:var(--space-2);font-size:var(--font-size-2xl);color:var(--color-text-primary)}.game-over-puzzle-line{font-weight:var(--font-weight-bold);color:var(--color-text-muted);line-height:var(--line-height-relaxed);margin-bottom:var(--space-2)}.game-over-stat-line{line-height:var(--line-height-relaxed)}.game-over-button-group{display:flex;gap:var(--space-3)}.game-over-action-button{padding:var(--space-5) var(--space-8);font-size:var(--font-size-xl);min-width:150px}.game-over-history-table{width:100%;border-collapse:collapse;font-size:var(--font-size-lg)}.game-over-history-table th,.game-over-history-table td{padding:var(--space-2) var(--space-3);text-align:center}.game-over-history-table th:first-child,.game-over-history-table td:first-child{text-align:left}.game-over-history-table th{font-weight:var(--font-weight-bold);color:var(--color-text-muted)}.game-over-history-table td:first-child{color:var(--color-text-muted)}
