*{margin:0;padding:0;box-sizing:border-box;-webkit-user-select:none;user-select:none}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;position:relative;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;padding-top:20vh;gap:var(--space-8);width:100%;height:100%;position:relative}.intro-title{font-size:var(--font-size-5xl);margin:0;color:var(--color-text-primary);position:relative;z-index:1;transition:opacity .5s ease}.intro-buttons{display:flex;gap:var(--space-5);flex-direction:column;align-items:center;position:relative;z-index:1;transition:opacity .5s ease}.intro-scene-container{position:absolute;bottom:20px;left:0;width:100%;height:50%}.intro--transitioning .intro-title,.intro--transitioning .intro-buttons{opacity:0;pointer-events:none}.intro--exiting{position:absolute;top:0;left:0;opacity:0;transition:opacity .4s ease-out;pointer-events:none;z-index:10}.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-layer-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--space-3);justify-items:center;margin:var(--space-4) 0}.instructions-demo-layer-preview{display:flex;flex-direction:column;align-items:center;gap:2px}.instructions-demo-layer-preview-label{font-size:var(--font-size-xs);color:var(--color-text-muted);font-weight:var(--font-weight-medium)}.instructions-demo-layer-preview-grid{display:grid;grid-template-columns:repeat(3,14px);grid-template-rows:repeat(3,14px);gap:2px}.instructions-demo-layer-preview-cell{background:var(--color-bg-tile);border:1px solid var(--color-border-soft);border-radius:2px}.instructions-demo-layer-preview-cell--cleared{background:var(--color-accent-primary);border-color:var(--color-accent-primary)}.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;gap:var(--space-6);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-layer-section{display:flex;flex-direction:column;align-items:center;gap:var(--space-3);width:100%;max-width:280px}.game-tiles-remaining,.game-remaining-guesses{font-size:var(--font-size-xl);font-weight:var(--font-weight-bold);color:var(--color-text-primary)}.game-grid{display:grid;grid-template-columns:repeat(3,min(var(--size-tile-grid),100px));grid-template-rows:repeat(3,min(var(--size-tile-grid),100px));gap:var(--space-3);animation:grid-scale-in .4s ease-out}@keyframes grid-scale-in{0%{transform:scale(.3);opacity:.75}to{transform:scale(1);opacity:1}}.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;place-self:center;font-size:var(--font-size-4xl);text-transform:uppercase;cursor:pointer;position:relative;transition:width var(--duration-slow) var(--ease-in-out),height var(--duration-slow) var(--ease-in-out),max-width var(--duration-slow) var(--ease-in-out),max-height var(--duration-slow) var(--ease-in-out),font-size var(--duration-slow) var(--ease-in-out),filter var(--duration-slow) var(--ease-in-out),box-shadow var(--duration-slow) var(--ease-in-out)}.game-tile-remaining{position:absolute;bottom:var(--space-1);left:var(--space-2);font-size:var(--font-size-xs);color:var(--color-text-secondary);font-weight:var(--font-weight-normal);line-height:1}.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}.layer-previews{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--space-3);justify-items:center}.layer-preview{display:flex;flex-direction:column;align-items:center;gap:2px}.layer-preview-label{font-size:var(--font-size-xs);color:var(--color-text-muted);font-weight:var(--font-weight-medium)}.layer-preview-grid{display:grid;grid-template-columns:repeat(3,14px);grid-template-rows:repeat(3,14px);gap:2px}.layer-preview-cell{background:var(--color-bg-tile);border:1px solid var(--color-border-soft);border-radius:2px;transition:background-color var(--duration-slow) var(--ease-out)}.layer-preview-cell--cleared{background:var(--color-accent-primary);border-color:var(--color-accent-primary)}.game-over{display:flex;flex-direction:column;justify-content:center;align-items:center;gap:var(--space-5);padding:var(--space-6)}.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-cleared-badge{font-size:var(--font-size-2xl);font-weight:var(--font-weight-bold);color:var(--color-accent-secondary);margin-bottom:var(--space-2)}.game-over-first-attempt{font-size:var(--font-size-lg);color:var(--color-text-muted);margin-top:var(--space-2);text-align:center}.game-over-streak{font-size:var(--font-size-2xl);font-weight:var(--font-weight-bold);color:var(--color-text-primary)}.game-over-completion-rate{font-size:var(--font-size-lg);color:var(--color-text-muted)}.game-over-button-group{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-3);width:100%}.game-over-action-button{padding:var(--space-5) var(--space-6);font-size:var(--font-size-xl)}.game-over-action-button.button-primary{grid-column:1 / -1}.game-over-histogram{display:flex;align-items:flex-end;gap:var(--space-2);height:120px;width:100%;justify-content:flex-start;padding-top:var(--space-4);overflow-x:auto}.game-over-histogram-col{display:flex;flex-direction:column;align-items:center;gap:var(--space-1);flex:1 0 28px;max-width:40px;height:100%;justify-content:flex-end}.game-over-histogram-count{font-size:var(--font-size-xs);color:var(--color-text-muted)}.game-over-histogram-bar{width:100%;background:var(--color-accent-primary);border-radius:var(--radius-xs) var(--radius-xs) 0 0;min-height:4px;transition:height var(--duration-slow) var(--ease-out)}.game-over-histogram-col--current .game-over-histogram-bar{background:var(--color-accent-secondary);box-shadow:0 0 8px var(--color-accent-secondary)}.game-over-histogram-label{font-size:var(--font-size-sm);color:var(--color-text-muted);font-weight:var(--font-weight-bold)}.game-over-welcome{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-6);width:100%;text-align:center;display:flex;flex-direction:column;gap:var(--space-4)}.game-over-welcome-headline{font-size:var(--font-size-xl);font-weight:var(--font-weight-bold);color:var(--color-text-primary);line-height:var(--line-height-relaxed)}.game-over-welcome-subtext{font-size:var(--font-size-lg);color:var(--color-text-muted);line-height:var(--line-height-relaxed)}.game-over-about-overlay{position:fixed;inset:0;background:#0009;display:flex;align-items:center;justify-content:center;z-index:100}.game-over-about-modal{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-8);max-width:400px;width:90%;text-align:center;display:flex;flex-direction:column;align-items:center;gap:var(--space-4)}.game-over-about-heading{font-size:var(--font-size-2xl);font-weight:var(--font-weight-bold);color:var(--color-text-primary);margin:0}.game-over-about-body{font-size:var(--font-size-lg);color:var(--color-text-primary);line-height:var(--line-height-relaxed);margin:0}.game-over-about-trademark{font-size:var(--font-size-sm);color:var(--color-text-muted);margin:0}
