:root{--top-bar-height: 56px;--game-padding: clamp(12px, 3vw, 32px);font-family:Manrope,Avenir Next,Segoe UI,sans-serif;line-height:1.5;font-weight:400;color:#1f2a2c;background:radial-gradient(circle at top left,rgba(197,109,61,.18),transparent 28%),radial-gradient(circle at top right,rgba(217,224,220,.55),transparent 24%),linear-gradient(180deg,#f7f3eb,#e7ded0);font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;--color-dominant: #F3EEE4;--color-secondary: #D9E0DC;--color-accent: #C56D3D;--color-destructive: #B44C3C;--color-backdrop-start: #F7F3EB;--color-backdrop-end: #E7DED0;--color-surface: rgba(243, 238, 228, .84);--color-border: rgba(49, 61, 64, .12);--color-text: #1f2a2c;--color-text-muted: rgba(31, 42, 44, .7);--color-text-inverse: #fffaf2;--shadow-shell: 0 24px 60px rgba(47, 37, 29, .16);--shadow-inset: inset 0 1px 0 rgba(255, 255, 255, .45);--space-xs: 4px;--space-sm: 8px;--space-md: 16px;--space-lg: 24px;--space-xl: 32px;--space-2xl: 48px;--space-3xl: 64px;--radius-cell: 8px;--radius-chip: 12px;--radius-shell: 20px;--font-label-size: 14px;--font-body-size: 16px;--font-heading-size: 20px;--font-display-size: 28px;--font-weight-regular: 400;--font-weight-semibold: 600}*{box-sizing:border-box}html,body,#root{width:100%;height:100%;margin:0;overflow:hidden}body{margin:0;min-height:100%;color:var(--color-text)}button,input,textarea,select{font:inherit}.app-shell{position:relative;display:flex;width:100vw;height:100dvh;min-width:0;min-height:0;align-items:center;justify-content:center;overflow:hidden;padding:var(--game-padding)}.ambient-glow{position:absolute;width:22rem;height:22rem;border-radius:999px;filter:blur(18px);opacity:.7;pointer-events:none}.ambient-glow-left{top:-8rem;left:-4rem;background:#c56d3d2e}.ambient-glow-right{right:-6rem;bottom:-10rem;background:#d9e0dc66}.hero-panel,.puzzle-shell{position:relative;max-width:1200px;margin:0 auto;border:1px solid var(--color-border);border-radius:var(--radius-shell);background:linear-gradient(180deg,#ffffff6b,#fff3),var(--color-surface);box-shadow:var(--shadow-shell),var(--shadow-inset);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}.hero-panel{padding:var(--space-xl)}.eyebrow{margin:0 0 var(--space-sm);font-size:var(--font-label-size);font-weight:var(--font-weight-semibold);line-height:1.4;letter-spacing:.08em;text-transform:uppercase;color:var(--color-text-muted)}.hero-copy{max-width:42rem;margin:var(--space-md) 0 0;color:var(--color-text-muted)}.start-screen{display:grid;width:min(520px,100%);justify-items:start;gap:var(--space-md);padding:clamp(var(--space-xl),7vw,var(--space-3xl));border:1px solid var(--color-border);border-radius:var(--radius-shell);background:linear-gradient(180deg,#ffffff7a,#ffffff38),var(--color-surface);box-shadow:var(--shadow-shell),var(--shadow-inset);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}.start-screen__mark{display:grid;grid-template-columns:repeat(2,18px);grid-template-rows:repeat(2,18px);gap:4px;margin-bottom:var(--space-sm);transform:rotate(-8deg)}.start-screen__mark span{display:block;border:2px solid rgba(197,109,61,.42);border-radius:5px;background:#c56d3d24}.start-screen__mark span:nth-child(2),.start-screen__mark span:nth-child(3){background:#d9e0dccc;border-color:#313d402e}.start-screen__title{margin:0;font-size:clamp(36px,7vw,56px);font-weight:var(--font-weight-semibold);letter-spacing:-.04em;line-height:1.02}.start-screen__copy{max-width:30rem;margin:0 0 var(--space-sm);color:var(--color-text-muted);font-size:var(--font-body-size)}.start-screen__button{display:inline-flex;min-height:52px;align-items:center;justify-content:center;gap:var(--space-sm);padding:12px 20px;border:0;border-radius:var(--radius-chip);background:var(--color-accent);color:var(--color-text-inverse);font-size:var(--font-body-size);font-weight:var(--font-weight-semibold);line-height:1.25;cursor:pointer;transition:filter .12s ease,transform .12s ease}.start-screen__button:hover{filter:brightness(1.04);transform:translateY(-1px)}.start-screen__button:focus-visible{outline:2px solid var(--color-accent);outline-offset:3px}.puzzle-shell{width:100%;height:100%;min-width:0;min-height:0;overflow:hidden}.app-shell--play{padding:var(--game-padding)}.app-shell--play>.puzzle-shell{max-width:none;border:0;border-radius:0;background:transparent;box-shadow:none;-webkit-backdrop-filter:none;backdrop-filter:none;display:flex;align-items:stretch;justify-content:center}.puzzle-stage{display:flex;flex-direction:column;width:min(100%,1200px);height:100%;min-width:0;min-height:0;overflow:hidden;border:1px solid var(--color-border);border-radius:var(--radius-shell);background:linear-gradient(180deg,#ffffff6b,#fff3),var(--color-surface);box-shadow:var(--shadow-shell),var(--shadow-inset);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}.puzzle-browser{display:grid;gap:var(--space-md);width:min(960px,100%);margin:0 auto;padding:var(--space-lg);border:1px solid var(--color-border);border-radius:var(--radius-shell);background:linear-gradient(180deg,#ffffff6b,#fff3),var(--color-surface);box-shadow:var(--shadow-shell),var(--shadow-inset);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}.puzzle-browser__header{display:grid;gap:var(--space-xs)}.puzzle-browser__title-row{display:flex;align-items:center;justify-content:space-between;gap:var(--space-md)}.puzzle-browser__title-heading{display:flex;min-width:0;align-items:center;gap:var(--space-sm)}.puzzle-browser__back-button{display:inline-flex;flex:0 0 44px;width:44px;min-height:44px;align-items:center;justify-content:center;padding:0;border:1px solid rgba(49,61,64,.12);border-radius:var(--radius-chip);background:#f3eee4eb;color:var(--color-text);cursor:pointer}.puzzle-browser__back-button:hover{border-color:#313d4038}.puzzle-browser__tour-button{min-height:44px;padding:10px 14px;border:1px solid rgba(49,61,64,.12);border-radius:var(--radius-chip);background:#f3eee4eb;color:var(--color-text);font-size:var(--font-label-size);font-weight:var(--font-weight-semibold);white-space:nowrap;cursor:pointer}.puzzle-browser__tour-button:hover{border-color:#313d4038}.puzzle-browser__tour-button:focus-visible,.puzzle-browser__back-button:focus-visible,.tour-button:focus-visible,.tour-panel__skip:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px}.puzzle-browser__tabs{display:flex;flex-wrap:nowrap;gap:var(--space-sm)}.puzzle-browser__tab{flex:1 1 0;min-width:0;min-height:44px;padding:10px 14px;border:1px solid rgba(49,61,64,.12);border-radius:var(--radius-chip);background:#f3eee4eb;color:var(--color-text);font-size:var(--font-body-size);font-weight:var(--font-weight-semibold);line-height:1.4;white-space:nowrap;cursor:pointer;transition:background-color .12s ease,border-color .12s ease,color .12s ease,transform .12s ease}.puzzle-browser__tab:hover{border-color:#313d4038;transform:translateY(-1px)}.puzzle-browser__tab:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px}.puzzle-browser__tab[data-selected=true]{border-color:transparent;background:var(--color-accent);color:var(--color-text-inverse)}.puzzle-browser__list{display:grid;gap:var(--space-sm);grid-template-columns:repeat(auto-fill,minmax(168px,1fr));min-width:0}.puzzle-browser__puzzle-button{display:grid;aspect-ratio:1;min-height:0;place-items:center;padding:16px;border:1px solid rgba(49,61,64,.12);border-radius:var(--radius-chip);background:#f3eee4eb;color:var(--color-text);font-size:var(--font-body-size);font-weight:var(--font-weight-semibold);line-height:1.5;cursor:pointer;text-align:center;transition:background-color .12s ease,border-color .12s ease,color .12s ease,transform .12s ease}.puzzle-browser__puzzle-button:hover{border-color:#313d4038;transform:translateY(-1px)}.puzzle-browser__puzzle-button:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px}.puzzle-browser__puzzle-button[data-completed=true]{border-color:#2f7d5b6b;background:#2f7d5b24;color:#245d46}.top-bar{flex:0 0 var(--top-bar-height);display:flex;align-items:center;justify-content:space-between;gap:12px;min-width:0;padding-inline:max(var(--game-padding),env(safe-area-inset-left)) max(var(--game-padding),env(safe-area-inset-right));padding-top:env(safe-area-inset-top)}.icon{display:block;flex:0 0 auto;width:20px;height:20px}.top-bar .puzzle-navigator,.top-bar .puzzle-corrections{flex:0 0 auto;width:auto}.top-bar .meta-strip{flex:1 1 auto;justify-content:center;flex-wrap:nowrap;overflow:hidden}.game-area{display:grid;flex:1 1 auto;min-width:0;min-height:0;place-items:center;overflow:hidden;padding:max(var(--game-padding),env(safe-area-inset-top)) max(var(--game-padding),env(safe-area-inset-right)) max(calc(var(--game-padding) + 16px),env(safe-area-inset-bottom)) max(var(--game-padding),env(safe-area-inset-left))}.puzzle-shell__board{display:grid;place-items:center;width:100%;min-width:0;min-height:0}.puzzle-shell__header{display:none;gap:var(--space-md);min-width:0;padding:var(--space-lg);border:1px solid rgba(49,61,64,.08);border-radius:calc(var(--radius-shell) - 4px);background:#ffffff4d}.puzzle-shell__intro{display:grid;gap:var(--space-xs)}.puzzle-shell__title{margin:0;font-size:var(--font-display-size);font-weight:var(--font-weight-semibold);line-height:1.15}.meta-strip{display:flex;flex-wrap:wrap;gap:var(--space-sm);min-width:0}.meta-pill{display:inline-flex;align-items:center;min-width:0;min-height:44px;padding:10px 14px;border:1px solid rgba(49,61,64,.08);border-radius:var(--radius-chip);background:#d9e0dccc;font-size:var(--font-label-size);font-weight:var(--font-weight-semibold);line-height:1.4}.meta-pill-accent{background:#c56d3d2e;color:#8d4725}.meta-pill-timer{gap:6px;background:#ffffff7a;color:var(--color-text);font-variant-numeric:tabular-nums}.meta-pill-timer .icon{width:16px;height:16px}.puzzle-navigator{display:flex;flex-wrap:wrap;gap:var(--space-sm);min-width:0}.puzzle-navigator__button{display:inline-flex;min-width:44px;width:44px;min-height:44px;align-items:center;justify-content:center;padding:0;border:1px solid rgba(49,61,64,.12);border-radius:var(--radius-chip);background:#f3eee4eb;color:var(--color-text);font-size:var(--font-body-size);font-weight:var(--font-weight-semibold);line-height:0;cursor:pointer;transition:background-color .12s ease,border-color .12s ease,color .12s ease,transform .12s ease}.puzzle-navigator__button:hover:not(:disabled){transform:translateY(-1px);border-color:#313d4038}.puzzle-navigator__button:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px}.puzzle-navigator__button:disabled{opacity:.45;cursor:not-allowed}.puzzle-navigator__button--primary{background:var(--color-accent);border-color:transparent;color:var(--color-text-inverse)}.puzzle-corrections{display:flex;gap:var(--space-sm);min-width:0}.puzzle-corrections__button{display:inline-flex;min-width:44px;width:44px;min-height:44px;align-items:center;justify-content:center;padding:0;border:1px solid rgba(49,61,64,.12);border-radius:var(--radius-chip);background:#f3eee4eb;color:var(--color-text);font-size:var(--font-body-size);font-weight:var(--font-weight-semibold);line-height:0;cursor:pointer;transition:background-color .12s ease,border-color .12s ease,color .12s ease,transform .12s ease}.puzzle-corrections__button:hover:not(:disabled){transform:translateY(-1px);border-color:#313d4038}.puzzle-corrections__button:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px}.puzzle-corrections__button:disabled{opacity:.45;cursor:not-allowed}.completion-panel{position:relative;z-index:1;display:grid;gap:var(--space-xs);width:min(440px,calc(100vw - 32px));padding:var(--space-lg);border:1px solid rgba(197,109,61,.28);border-radius:calc(var(--radius-shell) - 4px);background:var(--color-surface);box-shadow:var(--shadow-shell)}.completion-modal{position:fixed;z-index:10;inset:0;display:grid;place-items:center;padding:var(--space-md);background:#1f2a2c52;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.completion-panel__title{margin:0;font-size:24px;line-height:1.2}.completion-panel__meta{margin:0;color:var(--color-text-muted);font-size:var(--font-label-size);font-weight:var(--font-weight-semibold);letter-spacing:.02em}.completion-panel__time{display:inline-flex;align-items:baseline;gap:8px;margin:var(--space-md) 0 0;color:var(--color-text-muted);font-variant-numeric:tabular-nums}.completion-panel__time strong{color:var(--color-text);font-size:var(--font-heading-size);font-weight:var(--font-weight-semibold)}.completion-panel__actions{display:flex;flex-wrap:wrap;align-items:stretch;gap:var(--space-sm);margin-top:var(--space-sm)}.completion-button{display:inline-flex;flex:1 1 120px;min-width:0;min-height:52px;align-items:center;justify-content:center;padding:12px 20px;border:1px solid rgba(49,61,64,.12);border-radius:var(--radius-chip);background:#f3eee4eb;color:var(--color-text);font-size:var(--font-body-size);font-weight:var(--font-weight-semibold);line-height:1.25;white-space:nowrap;cursor:pointer;transition:background-color .12s ease,border-color .12s ease,color .12s ease,transform .12s ease}.completion-button:hover:not(:disabled){transform:translateY(-1px);border-color:#313d4038}.completion-button:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px}.completion-button:disabled{opacity:.45;cursor:not-allowed}.completion-button--primary{border-color:transparent;background:var(--color-accent);color:var(--color-text-inverse)}.tour-modal{position:fixed;z-index:20;inset:0;display:grid;place-items:center;padding:var(--space-md);background:#1f2a2c61;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px)}.tour-panel{display:grid;width:min(500px,100%);gap:var(--space-sm);padding:clamp(var(--space-lg),5vw,var(--space-xl));border:1px solid rgba(197,109,61,.28);border-radius:var(--radius-shell);background:var(--color-surface);box-shadow:var(--shadow-shell);outline:none}.tour-panel__icon{display:grid;width:48px;height:48px;place-items:center;margin-bottom:var(--space-xs);border-radius:16px;background:#c56d3d24;color:var(--color-accent)}.tour-panel__icon-svg{width:24px;height:24px}.tour-panel__progress{margin:-12px 0 0;color:var(--color-text-muted);font-size:var(--font-label-size);font-weight:var(--font-weight-semibold)}.tour-panel__title{margin:0;font-size:clamp(24px,4vw,32px);line-height:1.15}.tour-panel__body{margin:var(--space-sm) 0 var(--space-md);color:var(--color-text-muted);font-size:var(--font-body-size)}.tour-panel__steps{display:flex;gap:6px;margin-bottom:var(--space-md)}.tour-panel__step-dot{width:8px;height:8px;border-radius:999px;background:#313d402e}.tour-panel__step-dot[data-active=true]{width:24px;background:var(--color-accent)}.tour-panel__actions{display:flex;align-items:center;justify-content:space-between;gap:var(--space-md)}.tour-panel__navigation{display:flex;gap:var(--space-sm)}.tour-panel__skip,.tour-button{min-height:44px;border-radius:var(--radius-chip);font-size:var(--font-label-size);font-weight:var(--font-weight-semibold);cursor:pointer}.tour-panel__skip{padding:8px 0;border:0;background:transparent;color:var(--color-text-muted)}.tour-button{min-width:88px;padding:10px 16px;border:1px solid rgba(49,61,64,.12)}.tour-button--secondary{background:#f3eee4eb;color:var(--color-text)}.tour-button--primary{border-color:transparent;background:var(--color-accent);color:var(--color-text-inverse)}.tour-button:disabled{opacity:.45;cursor:not-allowed}.board-stage{position:relative;display:grid;justify-items:center;align-items:start;width:100%;min-width:0;min-height:0}.board-grid{display:grid;width:min(100%,700px,calc(100vw - (4 * var(--game-padding))),calc(100dvh - var(--top-bar-height) - (4 * var(--game-padding)) - 16px));max-width:100%;aspect-ratio:1;gap:var(--space-sm);touch-action:none;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none}.board-cell{display:grid;place-items:center;aspect-ratio:1;min-width:0;border:1px solid rgba(49,61,64,.08);border-radius:var(--radius-cell);background:var(--color-dominant);color:#1f2a2c59;font-size:var(--font-label-size);font-weight:var(--font-weight-semibold);line-height:1.4;user-select:none;-webkit-user-select:none;transition:background-color .14s ease,border-color .14s ease,box-shadow .14s ease,color .14s ease,transform .18s ease}.board-cell-clue{background:#d9e0dceb;color:var(--color-text)}.board-cell[data-preview-active=true]{box-shadow:inset 0 0 0 1px #313d400f}.board-cell[data-preview-state=valid]{border-color:#c56d3d7a;background:#c56d3d29;color:var(--color-text)}.board-cell[data-preview-state=invalid]{border-color:#313d402e;background:#d9e0dcc7;color:#1f2a2cbf}.board-cell[data-preview-origin=true]{box-shadow:inset 0 0 0 2px #c56d3d66,0 0 0 1px #ffffff61}.board-cell[data-placed-cell=true]{border-color:#313d402e;background:#d9e0dce0;box-shadow:inset 0 0 0 1px #ffffff52,inset 0 -8px 16px #313d400a;color:var(--color-text);cursor:pointer}.board-cell[data-color-index]{border-color:var(--cell-color-border);background:var(--cell-color);color:var(--color-text)}.board-cell[data-color-index="0"]{--cell-color: #f6c9b8;--cell-color-border: #e7a992}.board-cell[data-color-index="1"]{--cell-color: #c8ddf5;--cell-color-border: #9fc2e9}.board-cell[data-color-index="2"]{--cell-color: #d7ebc5;--cell-color-border: #b5d397}.board-cell[data-color-index="3"]{--cell-color: #e7d0f0;--cell-color-border: #cda9dd}.board-cell[data-color-index="4"]{--cell-color: #f5dfa8;--cell-color-border: #e3c86f}.board-cell[data-color-index="5"]{--cell-color: #bfe7de;--cell-color-border: #8dcec0}.board-cell[data-color-index="6"]{--cell-color: #f3c7d8;--cell-color-border: #dd9eb9}.board-cell[data-color-index="7"]{--cell-color: #d9d1f5;--cell-color-border: #b8abe8}.board-cell[data-color-index="8"]{--cell-color: #cfe3d6;--cell-color-border: #a6c9b2}.board-cell[data-color-index="9"]{--cell-color: #f2d0b5;--cell-color-border: #dfad86}.board-cell[data-color-index="10"]{--cell-color: #c6dce1;--cell-color-border: #9fc4cc}.board-cell[data-color-index="11"]{--cell-color: #e6cde0;--cell-color-border: #cca7c3}.board-grid[data-release-feedback=valid-settle] .board-cell[data-placed-cell=true]{animation:board-valid-settle .18s ease-out}.board-grid[data-release-feedback=invalid-snapback] .board-cell[data-preview-active=true]{animation:board-invalid-snapback .22s ease-out}@keyframes board-valid-settle{0%{transform:scale(.985)}to{transform:scale(1)}}@keyframes board-invalid-snapback{0%{transform:scale(1)}38%{transform:translateY(1px) scale(.985)}to{transform:scale(1)}}@media(max-width:640px){.app-shell{padding:var(--space-md)}.app-shell--play{padding:var(--space-sm)}.puzzle-stage{border-radius:0;border-inline:0}.puzzle-browser{padding:var(--space-md)}.puzzle-browser__tab{padding-inline:8px;font-size:var(--font-label-size)}.puzzle-browser__list{grid-template-columns:repeat(4,minmax(0,1fr));gap:6px}.puzzle-browser__puzzle-button{padding:10px}.hero-panel{padding:0}.puzzle-corrections__button{flex:0 0 44px}.board-grid{gap:clamp(2px,1.5vw,var(--space-sm))}.top-bar,.top-bar .meta-strip{gap:4px}.meta-pill{padding-inline:8px}.puzzle-navigator__button{flex:0 0 44px}}@media(max-width:640px)and (max-height:600px){.puzzle-browser__list{grid-template-columns:repeat(7,minmax(0,1fr));gap:4px}.puzzle-browser__puzzle-button{padding:4px;font-size:var(--font-label-size)}}@media(max-width:480px){.puzzle-browser__title-row{align-items:stretch;flex-direction:column;gap:var(--space-sm)}.puzzle-browser__tour-button{width:100%}.completion-panel{width:100%;max-width:440px}.completion-panel__actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}.completion-button:last-child{grid-column:1 / -1}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}
