@layer theme{:root,:host{--font-mono:var(--font-mono), "SFMono-Regular", Consolas, "Liberation Mono", monospace;--default-font-family:var(--font-body), "Apple SD Gothic Neo", "Malgun Gothic", system-ui, sans-serif;--default-mono-font-family:var(--font-mono), "SFMono-Regular", Consolas, "Liberation Mono", monospace}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab, red, red)){::placeholder{color:color-mix(in oklab, currentcolor 50%, transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.visible{visibility:visible}.block{display:block}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline{display:inline}.table{display:table}.h-full{height:100%}.min-h-full{min-height:100%}.flex-col{flex-direction:column}.antialiased{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}}:root{--background:#ece1c8;--foreground:#26201a}html,body{height:100%;margin:0}html{overflow:hidden}body{background:var(--background);color:var(--foreground);font-family:var(--font-body), "Apple SD Gothic Neo", "Malgun Gothic", system-ui, sans-serif;overflow:hidden}*{box-sizing:border-box}button{font:inherit}button:focus-visible{outline:2px solid var(--primary);outline-offset:2px}.theme-root{display:contents}.game-stage{--surface-border:var(--line-strong)}@supports (color:color-mix(in lab, red, red)){.game-stage{--surface-border:color-mix(in srgb, var(--line-strong) 42%, transparent)}}.game-stage{--surface-panel:var(--panel)}@supports (color:color-mix(in lab, red, red)){.game-stage{--surface-panel:color-mix(in srgb, var(--panel) 92%, white 8%)}}.game-stage{--paper-shadow:0 26px 60px -28px #36260e47;--display-font:var(--font-display), "Apple SD Gothic Neo", serif;--numeric-font:var(--font-numeric), "Apple SD Gothic Neo", "Malgun Gothic", system-ui, sans-serif;--mono-font:var(--font-mono), "SFMono-Regular", Consolas, monospace;background:radial-gradient(120% 80% at 18% 8%, var(--panel) 0%, transparent 56%), radial-gradient(140% 90% at 86% 96%, var(--secondary) 0%, transparent 60%), var(--stage)}@supports (color:color-mix(in lab, red, red)){.game-stage{background:radial-gradient(120% 80% at 18% 8%, color-mix(in srgb, var(--panel) 70%, white 30%) 0%, transparent 56%), radial-gradient(140% 90% at 86% 96%, color-mix(in srgb, var(--secondary) 18%, transparent) 0%, transparent 60%), var(--stage)}}.game-stage{color:var(--ink);isolation:isolate;grid-template-rows:auto minmax(0,1fr);height:100svh;padding:14px 20px 16px;display:grid;position:relative;overflow:hidden}.game-stage:before{content:"";mix-blend-mode:multiply;opacity:.42;pointer-events:none;z-index:0;background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='220' height='220'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='0.86' numOctaves='2' stitchTiles='stitch'/><feColorMatrix values='0 0 0 0 0.24  0 0 0 0 0.18  0 0 0 0 0.10  0 0 0 0.18 0'/></filter><rect width='100%25' height='100%25' filter='url(%23n)' opacity='0.55'/></svg>");background-size:220px 220px;position:fixed;inset:0}.game-stage:after{content:"";pointer-events:none;z-index:0;background:linear-gradient(#36260e0f 0%,#0000 22% 78%,#36260e14 100%);position:fixed;inset:0}.game-stage>*{z-index:1;position:relative}.game-topbar{justify-content:space-between;align-items:center;gap:18px;width:100%;max-width:1180px;min-height:44px;margin:0 auto 14px;display:flex}.brand-block{align-items:center;gap:12px;min-width:0;display:flex}.brand-mark{background:radial-gradient(120% 100% at 30% 26%, var(--secondary) 0%, var(--panel) 100%);align-items:center}@supports (color:color-mix(in lab, red, red)){.brand-mark{background:radial-gradient(120% 100% at 30% 26%, color-mix(in srgb, var(--secondary) 18%, var(--panel) 82%) 0%, var(--panel) 100%)}}.brand-mark{border:1px solid var(--line-strong)}@supports (color:color-mix(in lab, red, red)){.brand-mark{border:1px solid color-mix(in srgb, var(--line-strong) 48%, transparent)}}.brand-mark{color:var(--ink);font-family:var(--display-font);letter-spacing:.02em;border-radius:4px;justify-content:center;width:38px;height:38px;font-size:1.15rem;font-weight:600;line-height:1;display:inline-flex;box-shadow:inset 0 1px #fff8e0cc,0 8px 16px #36260e24}.brand-title,.brand-subtitle{line-height:1.2;display:block}.brand-title{font-family:var(--display-font);letter-spacing:.01em;font-size:1.05rem;font-weight:600}.brand-subtitle{color:var(--muted);letter-spacing:.05em;text-transform:uppercase;margin-top:3px;font-size:.74rem}.game-nav{justify-content:flex-end;align-items:center;gap:6px;display:flex}.game-nav a,.game-nav span,.game-nav button{background:var(--panel);align-items:center}@supports (color:color-mix(in lab, red, red)){.game-nav a,.game-nav span,.game-nav button{background:color-mix(in srgb, var(--panel) 70%, transparent)}}.game-nav a,.game-nav span,.game-nav button{border:1px solid var(--surface-border);color:var(--muted);letter-spacing:.03em;border-radius:4px;justify-content:center;min-height:32px;padding:7px 11px;font-size:.78rem;text-decoration:none;display:inline-flex}.game-nav a,.game-nav button{cursor:pointer;transition:background .14s,color .14s,border-color .14s}.game-nav a[aria-current=page],.game-nav span[aria-current=page],.game-nav button[aria-pressed=true]{background:var(--primary)}@supports (color:color-mix(in lab, red, red)){.game-nav a[aria-current=page],.game-nav span[aria-current=page],.game-nav button[aria-pressed=true]{background:color-mix(in srgb, var(--primary) 14%, var(--panel) 86%)}}.game-nav a[aria-current=page],.game-nav span[aria-current=page],.game-nav button[aria-pressed=true]{border-color:var(--primary)}@supports (color:color-mix(in lab, red, red)){.game-nav a[aria-current=page],.game-nav span[aria-current=page],.game-nav button[aria-pressed=true]{border-color:color-mix(in srgb, var(--primary) 38%, var(--line-strong) 62%)}}.game-nav a[aria-current=page],.game-nav span[aria-current=page],.game-nav button[aria-pressed=true]{color:var(--primary);font-weight:700}.session-menu{align-items:center;gap:4px;display:inline-flex}.session-menu.is-loading{pointer-events:none;visibility:hidden;min-width:80px;height:32px}.game-nav a.session-menu.session-login,.session-menu.session-login{background:var(--primary,#2b3a67);border-color:var(--primary,#2b3a67);color:#fff;font-weight:700}.game-nav a.session-menu.session-login:hover,.session-menu.session-login:hover{background:var(--primary,#2b3a67)}@supports (color:color-mix(in lab, red, red)){.game-nav a.session-menu.session-login:hover,.session-menu.session-login:hover{background:color-mix(in srgb, var(--primary,#2b3a67) 88%, black 12%)}}.game-nav a.session-menu.session-login:hover,.session-menu.session-login:hover{border-color:var(--primary,#2b3a67)}@supports (color:color-mix(in lab, red, red)){.game-nav a.session-menu.session-login:hover,.session-menu.session-login:hover{border-color:color-mix(in srgb, var(--primary,#2b3a67) 88%, black 12%)}}.game-nav a.session-menu.session-login:hover,.session-menu.session-login:hover{color:#fff}.session-menu .session-logout{min-width:32px;padding-left:8px;padding-right:8px;font-size:.95rem;line-height:1}.locale-switch{background:var(--panel)}@supports (color:color-mix(in lab, red, red)){.locale-switch{background:color-mix(in srgb, var(--panel) 82%, transparent)}}.locale-switch{border:1px solid var(--surface-border);font-family:var(--mono-font);letter-spacing:.06em;border-radius:4px;padding:2px;font-size:.72rem;display:inline-flex;overflow:hidden}.locale-switch button{color:var(--muted);cursor:pointer;letter-spacing:.08em;background:0 0;border:0;border-radius:3px;min-width:34px;min-height:26px;padding:0 8px;font-weight:700;transition:background .14s,color .14s}.locale-switch button[aria-pressed=true]{background:var(--primary)}@supports (color:color-mix(in lab, red, red)){.locale-switch button[aria-pressed=true]{background:color-mix(in srgb, var(--primary) 86%, transparent)}}.locale-switch button[aria-pressed=true]{color:var(--primary-ink)}.soft-label{color:var(--primary);font-family:var(--display-font);letter-spacing:.08em;text-transform:uppercase;font-size:.74rem;font-style:italic;font-weight:500}.start-screen,.play-screen{width:100%;max-width:1180px;height:100%;min-height:0;margin:0 auto;overflow:hidden}.start-screen{align-items:center;display:grid}.start-panel,.play-shell{background:linear-gradient(180deg, #fff8e099, #fff8e047), var(--surface-panel);border:1px solid var(--surface-border);box-shadow:var(--paper-shadow);border-radius:6px;position:relative}.start-panel:before,.play-shell:before{background:linear-gradient(180deg, var(--line-strong) 0%, transparent 100%)}@supports (color:color-mix(in lab, red, red)){.start-panel:before,.play-shell:before{background:linear-gradient(180deg, color-mix(in srgb, var(--line-strong) 22%, transparent) 0%, transparent 100%)}}.start-panel:before,.play-shell:before{content:"";pointer-events:none;height:1px;position:absolute;inset:0 0 auto}.start-panel{grid-template-columns:minmax(240px,.62fr) minmax(0,1.38fr);gap:16px;max-height:100%;padding:22px;display:grid;overflow:hidden}.start-copy{align-content:center;gap:12px;min-width:0;display:grid}.start-copy h1{color:var(--ink);font-family:var(--display-font);letter-spacing:-.005em;margin:0;font-size:2.15rem;font-weight:500;line-height:1.1}.start-copy p{color:var(--muted);max-width:28rem;margin:0;font-size:.94rem;line-height:1.6}.start-flow{gap:12px;min-height:0;display:grid}.setup-step{background:linear-gradient(180deg, #fff8e061, #fff8e00f), var(--panel)}@supports (color:color-mix(in lab, red, red)){.setup-step{background:linear-gradient(180deg, #fff8e061, #fff8e00f), color-mix(in srgb, var(--panel) 78%, transparent)}}.setup-step{border:1px solid var(--surface-border);border-radius:4px;gap:10px;padding:12px 14px;display:grid}.step-heading{align-items:baseline;gap:10px;display:flex}.step-heading span{background:var(--primary);align-items:center}@supports (color:color-mix(in lab, red, red)){.step-heading span{background:color-mix(in srgb, var(--primary) 14%, var(--panel) 86%)}}.step-heading span{border:1px solid var(--primary)}@supports (color:color-mix(in lab, red, red)){.step-heading span{border:1px solid color-mix(in srgb, var(--primary) 32%, var(--line-strong) 68%)}}.step-heading span{color:var(--primary);font-family:var(--mono-font);letter-spacing:.08em;border-radius:3px;justify-content:center;width:30px;height:24px;font-size:.7rem;font-weight:700;display:inline-flex}.step-heading strong{color:var(--ink);font-family:var(--display-font);letter-spacing:.02em;font-size:.98rem;font-weight:600}.board-select-grid,.difficulty-select-grid{gap:10px;display:grid}.board-select-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.difficulty-select-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.setup-card{background:linear-gradient(180deg, #fff8e08f, #fff8e024), var(--board)}@supports (color:color-mix(in lab, red, red)){.setup-card{background:linear-gradient(180deg, #fff8e08f, #fff8e024), color-mix(in srgb, var(--board) 84%, transparent)}}.setup-card{border:1px solid var(--surface-border);color:var(--ink);cursor:pointer;text-align:left;border-radius:4px;gap:6px;min-width:0;min-height:80px;padding:12px;transition:border-color .16s,box-shadow .16s,transform .16s;display:grid}.setup-card:hover{border-color:var(--line-strong)}@supports (color:color-mix(in lab, red, red)){.setup-card:hover{border-color:color-mix(in srgb, var(--line-strong) 70%, transparent)}}.setup-card:hover{transform:translateY(-1px)}.setup-card.is-active{background:linear-gradient(180deg, #fff8e0b3, #fff8e042), var(--primary)}@supports (color:color-mix(in lab, red, red)){.setup-card.is-active{background:linear-gradient(180deg, #fff8e0b3, #fff8e042), color-mix(in srgb, var(--primary) 12%, var(--board) 88%)}}.setup-card.is-active{border-color:var(--primary);box-shadow:inset 0 0 0 1px var(--primary), 0 6px 18px -6px var(--primary)}@supports (color:color-mix(in lab, red, red)){.setup-card.is-active{box-shadow:inset 0 0 0 1px color-mix(in srgb, var(--primary) 30%, transparent), 0 6px 18px -6px color-mix(in srgb, var(--primary) 40%, transparent)}}.setup-card strong{font-family:var(--display-font);font-size:1.08rem;font-weight:600;line-height:1.1}.setup-card span,.setup-card small{color:var(--muted);font-size:.76rem;line-height:1.3}.setup-card .setup-time{color:var(--primary);font-family:var(--mono-font);letter-spacing:.04em;align-self:end;font-size:.7rem;font-weight:700}.level-bars{grid-template-columns:repeat(4,8px);gap:4px;display:inline-grid}.level-bars span{background:var(--line)}@supports (color:color-mix(in lab, red, red)){.level-bars span{background:color-mix(in srgb, var(--line) 60%, var(--panel) 40%)}}.level-bars span{border-radius:1px;width:8px;height:16px}.level-bars span.is-filled{background:var(--secondary)}.daily-stats{background:var(--primary);align-items:center}@supports (color:color-mix(in lab, red, red)){.daily-stats{background:color-mix(in srgb, var(--primary) 8%, var(--panel) 92%)}}.daily-stats{border:1px solid var(--primary)}@supports (color:color-mix(in lab, red, red)){.daily-stats{border:1px solid color-mix(in srgb, var(--primary) 24%, var(--line-strong) 76%)}}.daily-stats{border-radius:4px;flex-wrap:wrap;gap:10px 14px;padding:8px 12px;font-size:.82rem;display:flex}.daily-stats__title{color:var(--primary);font-family:var(--mono-font);letter-spacing:.08em;text-transform:uppercase;font-size:.7rem;font-weight:700}.daily-stats__metrics{color:var(--ink);font-family:var(--numeric-font);flex-wrap:wrap;gap:4px 12px;font-weight:600;display:inline-flex}.daily-stats__none{color:var(--muted);font-size:.8rem}.daily-goal{background:linear-gradient(180deg, #fff8e0a3, #fff8e02e), var(--secondary)}@supports (color:color-mix(in lab, red, red)){.daily-goal{background:linear-gradient(180deg, #fff8e0a3, #fff8e02e), color-mix(in srgb, var(--secondary) 12%, var(--panel) 88%)}}.daily-goal{border:1px solid var(--secondary)}@supports (color:color-mix(in lab, red, red)){.daily-goal{border:1px solid color-mix(in srgb, var(--secondary) 34%, var(--line-strong) 66%)}}.daily-goal{border-radius:4px;gap:4px;padding:10px 12px;line-height:1.42;display:grid}.daily-goal.is-completed{background:linear-gradient(180deg, #fff8e0a8, #fff8e02e), var(--primary)}@supports (color:color-mix(in lab, red, red)){.daily-goal.is-completed{background:linear-gradient(180deg, #fff8e0a8, #fff8e02e), color-mix(in srgb, var(--primary) 10%, var(--panel) 90%)}}.daily-goal.is-completed{border-color:var(--primary)}@supports (color:color-mix(in lab, red, red)){.daily-goal.is-completed{border-color:color-mix(in srgb, var(--primary) 34%, var(--line-strong) 66%)}}.daily-goal__label{color:var(--primary);font-family:var(--mono-font);letter-spacing:.08em;text-transform:uppercase;font-size:.68rem;font-weight:700}.daily-goal strong{color:var(--ink);font-family:var(--display-font);font-size:1rem;font-weight:600}.daily-goal span:last-child{color:var(--muted);font-size:.8rem}.launch-card{grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:14px;display:grid}.launch-summary{gap:3px;min-width:0;display:grid}.launch-summary strong{font-family:var(--display-font);font-size:1.05rem;font-weight:600}.launch-summary span{color:var(--muted);font-size:.8rem}.wizard-back{color:var(--primary);cursor:pointer;letter-spacing:.02em;text-align:left;background:0 0;border:none;align-self:flex-start;min-height:40px;padding:6px 4px 6px 0;font-family:inherit;font-size:.9rem;font-weight:600}.wizard-back:hover{text-decoration:underline}.wizard-main{gap:12px;display:grid}.wizard-entry{background:linear-gradient(180deg, #fff8e08f, #fff8e024), var(--board)}@supports (color:color-mix(in lab, red, red)){.wizard-entry{background:linear-gradient(180deg, #fff8e08f, #fff8e024), color-mix(in srgb, var(--board) 84%, transparent)}}.wizard-entry{border:1px solid var(--surface-border);color:var(--ink);cursor:pointer;text-align:left;border-radius:6px;gap:4px;min-height:76px;padding:16px 18px;font-family:inherit;transition:border-color .16s,box-shadow .16s,transform .16s;display:grid}.wizard-entry:hover{border-color:var(--line-strong)}@supports (color:color-mix(in lab, red, red)){.wizard-entry:hover{border-color:color-mix(in srgb, var(--line-strong) 70%, transparent)}}.wizard-entry:hover{transform:translateY(-1px)}.wizard-entry.is-primary{background:linear-gradient(180deg, var(--primary), var(--primary))}@supports (color:color-mix(in lab, red, red)){.wizard-entry.is-primary{background:linear-gradient(180deg, color-mix(in srgb, var(--primary) 90%, white 10%), var(--primary))}}.wizard-entry.is-primary{border-color:var(--primary)}@supports (color:color-mix(in lab, red, red)){.wizard-entry.is-primary{border-color:color-mix(in srgb, var(--primary) 78%, black 22%)}}.wizard-entry.is-primary{box-shadow:inset 0 1px 0 #ffffff38, 0 10px 22px -8px var(--primary)}@supports (color:color-mix(in lab, red, red)){.wizard-entry.is-primary{box-shadow:inset 0 1px 0 #ffffff38, 0 10px 22px -8px color-mix(in srgb, var(--primary) 55%, transparent)}}.wizard-entry.is-primary{color:#fff}.wizard-entry.is-primary span{color:#fffc}.wizard-entry strong{font-family:var(--display-font);font-size:1.15rem;font-weight:600}.wizard-entry span{color:var(--muted);font-size:.82rem;line-height:1.4}.wizard-ready{gap:12px;display:grid}.wizard-summary-row{background:var(--panel);align-items:center}@supports (color:color-mix(in lab, red, red)){.wizard-summary-row{background:color-mix(in srgb, var(--panel) 78%, transparent)}}.wizard-summary-row{border:1px solid var(--surface-border);border-radius:4px;grid-template-columns:minmax(0,1fr) auto;gap:10px;padding:10px 12px;display:grid}.wizard-summary-row small{color:var(--muted);letter-spacing:.04em;text-transform:uppercase;font-size:.72rem;display:block}.wizard-summary-row strong{font-family:var(--display-font);font-size:1.05rem;font-weight:600}.wizard-change{border:1px solid var(--surface-border);color:var(--primary);cursor:pointer;background:0 0;border-radius:4px;min-height:36px;padding:6px 12px;font-family:inherit;font-size:.82rem;font-weight:600}.wizard-change:hover{background:var(--primary)}@supports (color:color-mix(in lab, red, red)){.wizard-change:hover{background:color-mix(in srgb, var(--primary) 8%, transparent)}}.start-button,.submit-button,.change-button,.tool-button,.number-key{cursor:pointer;border-radius:4px;font-family:inherit;transition:background-color .16s,border-color .16s,box-shadow .16s,transform .16s,color .16s}.start-button,.submit-button{background:linear-gradient(180deg, var(--primary), var(--primary))}@supports (color:color-mix(in lab, red, red)){.start-button,.submit-button{background:linear-gradient(180deg, color-mix(in srgb, var(--primary) 90%, white 10%), var(--primary))}}.start-button,.submit-button{border:1px solid var(--primary)}@supports (color:color-mix(in lab, red, red)){.start-button,.submit-button{border:1px solid color-mix(in srgb, var(--primary) 78%, black 22%)}}.start-button,.submit-button{box-shadow:inset 0 1px 0 #ffffff38, 0 10px 22px -8px var(--primary)}@supports (color:color-mix(in lab, red, red)){.start-button,.submit-button{box-shadow:inset 0 1px 0 #ffffff38, 0 10px 22px -8px color-mix(in srgb, var(--primary) 55%, transparent)}}.start-button,.submit-button{color:var(--primary-ink);font-family:var(--display-font);letter-spacing:.03em;min-height:44px;padding:10px 18px;font-size:.98rem;font-weight:600}.play-shell{grid-template-rows:auto minmax(0,1fr) auto auto;height:100%;padding:16px;display:grid;overflow:hidden}.play-shell.is-paused .sudoku-board{filter:blur(14px)saturate(.55);opacity:.55;pointer-events:none;-webkit-user-select:none;user-select:none}.board-paused-overlay{background:var(--panel);align-items:center}@supports (color:color-mix(in lab, red, red)){.board-paused-overlay{background:color-mix(in srgb, var(--panel) 80%, transparent)}}.board-paused-overlay{-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);pointer-events:none;z-index:2;border-radius:4px;justify-content:center;display:flex;position:absolute;inset:0}.board-paused-label{color:var(--ink);font-family:var(--display-font);letter-spacing:.18em;text-transform:uppercase;font-size:1.6rem;font-weight:600}.play-header{grid-template-columns:minmax(140px,1fr) minmax(320px,440px) auto;align-items:center;gap:12px;min-height:0;margin-bottom:12px;display:grid}.play-header h1{color:var(--ink);font-family:var(--display-font);letter-spacing:.005em;margin:6px 0 0;font-size:1.5rem;font-weight:500;line-height:1.05}.metrics-row{grid-template-columns:repeat(3,minmax(82px,1fr));gap:10px;display:grid}.metrics-row--with-score{grid-template-columns:repeat(4,minmax(72px,1fr))}.metric{background:linear-gradient(180deg, #fff8e08f, #fff8e02e), var(--panel)}@supports (color:color-mix(in lab, red, red)){.metric{background:linear-gradient(180deg, #fff8e08f, #fff8e02e), color-mix(in srgb, var(--panel) 78%, transparent)}}.metric{border:1px solid var(--surface-border);border-radius:4px;min-height:46px;padding:7px 11px;box-shadow:inset 0 1px #fff8e080}.metric span{color:var(--muted);letter-spacing:.08em;text-transform:uppercase;font-size:.68rem;line-height:1.1;display:block}.metric strong{color:var(--ink);font-family:var(--numeric-font);letter-spacing:.01em;margin-top:4px;font-size:1.12rem;font-weight:700;line-height:1.15;display:block}.change-button,.tool-button{background:var(--panel)}@supports (color:color-mix(in lab, red, red)){.change-button,.tool-button{background:color-mix(in srgb, var(--panel) 70%, transparent)}}.change-button,.tool-button{border:1px solid var(--surface-border);color:var(--ink);-webkit-tap-highlight-color:transparent;touch-action:manipulation;-webkit-user-select:none;user-select:none;min-height:40px;padding:8px 12px;font-size:.88rem;font-weight:600}.change-button:hover,.tool-button:not(:disabled):hover{background:var(--panel)}@supports (color:color-mix(in lab, red, red)){.change-button:hover,.tool-button:not(:disabled):hover{background:color-mix(in srgb, var(--panel) 90%, transparent)}}.change-button:hover,.tool-button:not(:disabled):hover{border-color:var(--line-strong)}@supports (color:color-mix(in lab, red, red)){.change-button:hover,.tool-button:not(:disabled):hover{border-color:color-mix(in srgb, var(--line-strong) 60%, transparent)}}.tool-button.is-active{background:var(--primary)}@supports (color:color-mix(in lab, red, red)){.tool-button.is-active{background:color-mix(in srgb, var(--primary) 14%, var(--panel) 86%)}}.tool-button.is-active{border-color:var(--primary);color:var(--primary)}.tool-button.is-active:not(:disabled):hover{background:var(--primary)}@supports (color:color-mix(in lab, red, red)){.tool-button.is-active:not(:disabled):hover{background:color-mix(in srgb, var(--primary) 18%, var(--panel) 82%)}}.tool-button.is-active:not(:disabled):hover{border-color:var(--primary);color:var(--primary)}.tool-button-content{justify-content:center;align-items:center;gap:6px;min-width:0;max-width:100%;line-height:1;display:inline-flex}.tool-button-content--stacked{flex-direction:column;gap:3px}.tool-button-main{justify-content:center;align-items:center;gap:6px;min-width:0;max-width:100%;display:inline-flex}.tool-button-content>span,.tool-button-main>span{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.tool-button-subtext{color:var(--muted)}@supports (color:color-mix(in lab, red, red)){.tool-button-subtext{color:color-mix(in srgb, var(--muted) 78%, transparent)}}.tool-button-subtext{text-overflow:ellipsis;white-space:nowrap;min-width:0;max-width:100%;font-size:.62rem;font-weight:600;line-height:1;display:block;overflow:hidden}.tool-button.is-active .tool-button-subtext{color:var(--primary)}@supports (color:color-mix(in lab, red, red)){.tool-button.is-active .tool-button-subtext{color:color-mix(in srgb, var(--primary) 78%, var(--ink) 22%)}}.tool-shortcut{background:var(--ink);align-items:center}@supports (color:color-mix(in lab, red, red)){.tool-shortcut{background:color-mix(in srgb, var(--ink) 8%, transparent)}}.tool-shortcut{border:1px solid var(--line-strong)}@supports (color:color-mix(in lab, red, red)){.tool-shortcut{border:1px solid color-mix(in srgb, var(--line-strong) 60%, transparent)}}.tool-shortcut{color:var(--muted);border-radius:3px}@supports (color:color-mix(in lab, red, red)){.tool-shortcut{color:color-mix(in srgb, var(--muted) 76%, var(--ink) 24%)}}.tool-shortcut{font-family:var(--mono-font);flex:none;justify-content:center;min-width:16px;height:16px;padding:0 3px;font-size:.58rem;font-weight:700;line-height:1;display:inline-flex}.tool-button-content svg{opacity:.78;flex:none;width:13px;height:13px;display:block}.play-grid{grid-template-columns:minmax(0,min(580px,100svh - 320px)) auto;justify-content:center;align-items:center;gap:16px;min-height:0;display:grid}.board-stage{background:linear-gradient(160deg, #fff8e08f, #fff8e01a), var(--board)}@supports (color:color-mix(in lab, red, red)){.board-stage{background:linear-gradient(160deg, #fff8e08f, #fff8e01a), color-mix(in srgb, var(--board) 86%, transparent)}}.board-stage{border:1px solid var(--line-strong)}@supports (color:color-mix(in lab, red, red)){.board-stage{border:1px solid color-mix(in srgb, var(--line-strong) 56%, transparent)}}.board-stage{border-radius:4px;width:100%;max-width:min(100%,580px,100svh - 320px);max-height:100%;padding:10px;transition:opacity .22s,filter .22s;position:relative;box-shadow:inset 0 1px #fff8e099,0 26px 50px -28px #36260e52}.sudoku-board{aspect-ratio:1;background:var(--line);border:1.5px solid var(--line-strong);border-radius:3px;grid-auto-rows:minmax(0,1fr);width:100%;display:grid;overflow:hidden;box-shadow:inset 0 0 0 1px #fff8e0b3}.sudoku-cell{background:var(--board);border-color:var(--line);align-items:center}@supports (color:color-mix(in lab, red, red)){.sudoku-cell{border-color:color-mix(in srgb, var(--line) 88%, transparent)}}.sudoku-cell{color:var(--ink);cursor:pointer;font-family:var(--numeric-font);-webkit-tap-highlight-color:transparent;-webkit-touch-callout:none;touch-action:manipulation;-webkit-user-select:none;user-select:none;border-style:solid;border-width:1px;justify-content:center;min-width:0;min-height:0;padding:0;font-size:1.85rem;font-weight:600;line-height:1;transition:background-color .14s,color .14s,box-shadow .14s;display:grid;position:relative;overflow:hidden}.sudoku-cell:hover:not(.is-given):not(.is-selected):not(.is-disabled){background:var(--board)}@supports (color:color-mix(in lab, red, red)){.sudoku-cell:hover:not(.is-given):not(.is-selected):not(.is-disabled){background:color-mix(in srgb, var(--board) 88%, var(--secondary) 12%)}}.sudoku-cell:focus-visible{box-shadow:inset 0 0 0 2px var(--primary), 0 0 0 2px var(--primary)}@supports (color:color-mix(in lab, red, red)){.sudoku-cell:focus-visible{box-shadow:inset 0 0 0 2px var(--primary), 0 0 0 2px color-mix(in srgb, var(--primary) 32%, transparent)}}.sudoku-cell:focus-visible{z-index:1;outline:none}.sudoku-cell.is-given{color:var(--ink);font-weight:700}.sudoku-cell.is-input{color:var(--user-ink)}.sudoku-cell.is-user-value{color:var(--user-ink);font-weight:700}.sudoku-cell.is-related{background:var(--board)}@supports (color:color-mix(in lab, red, red)){.sudoku-cell.is-related{background:color-mix(in srgb, var(--board) 84%, var(--secondary) 16%)}}.sudoku-cell.is-peer-value{background:var(--board)}@supports (color:color-mix(in lab, red, red)){.sudoku-cell.is-peer-value{background:color-mix(in srgb, var(--board) 70%, var(--primary) 30%)}}.sudoku-cell.is-peer-value,.sudoku-cell.is-peer-value.is-user-value{color:var(--primary)}.sudoku-cell.is-selected{background:var(--primary)}@supports (color:color-mix(in lab, red, red)){.sudoku-cell.is-selected{background:color-mix(in srgb, var(--primary) 16%, var(--board) 84%)}}.sudoku-cell.is-selected{box-shadow:inset 0 0 0 2px var(--primary);color:var(--ink)}.sudoku-cell.is-user-value.is-selected{color:var(--user-ink)}.sudoku-cell.is-conflict{background:var(--alert)}@supports (color:color-mix(in lab, red, red)){.sudoku-cell.is-conflict{background:color-mix(in srgb, var(--alert) 78%, var(--board) 22%)}}.sudoku-cell.is-conflict{color:var(--alert-ink)}.sudoku-cell.is-conflict:after{background:var(--alert-ink)}@supports (color:color-mix(in lab, red, red)){.sudoku-cell.is-conflict:after{background:color-mix(in srgb, var(--alert-ink) 60%, transparent)}}.sudoku-cell.is-conflict:after{content:"";height:2px;position:absolute;bottom:14%;left:22%;right:22%}.sudoku-cell.is-hint:not(.is-conflict){background:var(--hint)}@supports (color:color-mix(in lab, red, red)){.sudoku-cell.is-hint:not(.is-conflict){background:color-mix(in srgb, var(--hint) 30%, var(--board) 70%)}}.sudoku-cell.is-hint:not(.is-conflict){color:var(--user-ink)}.sudoku-cell.is-wrong,.sudoku-cell.is-wrong.is-related,.sudoku-cell.is-wrong.is-selected{background:var(--alert);animation:1s ease-out both wrong-clear-cell}@supports (color:color-mix(in lab, red, red)){.sudoku-cell.is-wrong,.sudoku-cell.is-wrong.is-related,.sudoku-cell.is-wrong.is-selected{background:color-mix(in srgb, var(--alert) 72%, var(--board) 28%)}}.sudoku-cell.is-wrong,.sudoku-cell.is-wrong.is-related,.sudoku-cell.is-wrong.is-selected{box-shadow:inset 0 0 0 2px var(--alert)}@supports (color:color-mix(in lab, red, red)){.sudoku-cell.is-wrong,.sudoku-cell.is-wrong.is-related,.sudoku-cell.is-wrong.is-selected{box-shadow:inset 0 0 0 2px color-mix(in srgb, var(--alert) 80%, black 20%)}}.sudoku-cell.is-wrong,.sudoku-cell.is-wrong.is-related,.sudoku-cell.is-wrong.is-selected{color:var(--alert-ink)}.sudoku-cell.is-conflict-peer{animation:.9s ease-out both conflict-peer-flash}.sudoku-cell.is-feedback-value.feedback-even:not(.is-conflict):not(.is-wrong),.sudoku-cell.is-feedback-value.feedback-odd:not(.is-conflict):not(.is-wrong){animation-duration:.26s;animation-timing-function:ease-out;animation-fill-mode:both}.sudoku-cell.is-feedback-value.feedback-even:not(.is-conflict):not(.is-wrong){animation-name:cell-feedback-value-even}.sudoku-cell.is-feedback-value.feedback-odd:not(.is-conflict):not(.is-wrong){animation-name:cell-feedback-value-odd}.sudoku-cell.is-feedback-note.feedback-even:not(.is-conflict):not(.is-wrong),.sudoku-cell.is-feedback-note.feedback-odd:not(.is-conflict):not(.is-wrong){animation-duration:.22s;animation-timing-function:ease-out;animation-fill-mode:both}.sudoku-cell.is-feedback-note.feedback-even:not(.is-conflict):not(.is-wrong){animation-name:cell-feedback-note-even}.sudoku-cell.is-feedback-note.feedback-odd:not(.is-conflict):not(.is-wrong){animation-name:cell-feedback-note-odd}.sudoku-cell.is-feedback-erase.feedback-even:not(.is-conflict):not(.is-wrong),.sudoku-cell.is-feedback-erase.feedback-odd:not(.is-conflict):not(.is-wrong){animation-duration:.22s;animation-timing-function:ease-out;animation-fill-mode:both}.sudoku-cell.is-feedback-erase.feedback-even:not(.is-conflict):not(.is-wrong){animation-name:cell-feedback-erase-even}.sudoku-cell.is-feedback-erase.feedback-odd:not(.is-conflict):not(.is-wrong){animation-name:cell-feedback-erase-odd}@keyframes conflict-peer-flash{0%{background-color:color-mix(in srgb, var(--alert) 36%, var(--board) 64%);box-shadow:inset 0 0 0 2px color-mix(in srgb, var(--alert) 60%, transparent)}70%{background-color:color-mix(in srgb, var(--alert) 22%, var(--board) 78%);box-shadow:inset 0 0 0 2px color-mix(in srgb, var(--alert) 32%, transparent)}to{background-color:#0000;box-shadow:inset 0 0 #0000}}.sudoku-cell.is-wrong .cell-value,.sudoku-cell.is-wrong .mobile-selected-value{animation:1s ease-out both wrong-clear-value}.sudoku-cell.is-validation-error:not(.is-conflict){animation:.42s ease-out both validation-cell-in}.sudoku-cell.is-validation-error:before{content:"";z-index:2;border-radius:50%;width:6px;height:6px;position:absolute;top:7px;right:7px}.sudoku-cell.is-validation-wrong:not(.is-conflict){background:var(--alert)}@supports (color:color-mix(in lab, red, red)){.sudoku-cell.is-validation-wrong:not(.is-conflict){background:color-mix(in srgb, var(--alert) 58%, var(--board) 42%)}}.sudoku-cell.is-validation-wrong:not(.is-conflict){box-shadow:inset 0 0 0 2px var(--alert), inset 0 -5px 0 var(--alert)}@supports (color:color-mix(in lab, red, red)){.sudoku-cell.is-validation-wrong:not(.is-conflict){box-shadow:inset 0 0 0 2px color-mix(in srgb, var(--alert) 76%, black 24%), inset 0 -5px 0 color-mix(in srgb, var(--alert) 18%, transparent)}}.sudoku-cell.is-validation-wrong:not(.is-conflict){color:var(--alert-ink)}.sudoku-cell.is-validation-wrong:before{background:var(--alert)}@supports (color:color-mix(in lab, red, red)){.sudoku-cell.is-validation-wrong:before{background:color-mix(in srgb, var(--alert) 92%, black 8%)}}.sudoku-cell.is-validation-empty:not(.is-conflict){background:var(--hint)}@supports (color:color-mix(in lab, red, red)){.sudoku-cell.is-validation-empty:not(.is-conflict){background:color-mix(in srgb, var(--hint) 34%, var(--board) 66%)}}.sudoku-cell.is-validation-empty:not(.is-conflict){box-shadow:inset 0 0 0 2px var(--hint), inset 0 0 0 5px var(--board)}@supports (color:color-mix(in lab, red, red)){.sudoku-cell.is-validation-empty:not(.is-conflict){box-shadow:inset 0 0 0 2px color-mix(in srgb, var(--hint) 74%, var(--line-strong) 26%), inset 0 0 0 5px color-mix(in srgb, var(--board) 72%, transparent)}}.sudoku-cell.is-validation-empty:before{background:var(--hint)}@supports (color:color-mix(in lab, red, red)){.sudoku-cell.is-validation-empty:before{background:color-mix(in srgb, var(--hint) 82%, var(--ink) 18%)}}.sudoku-cell.is-validation-rule:not(.is-conflict){background:repeating-linear-gradient(135deg, var(--alert) 0, var(--alert) 4px, transparent 4px, transparent 9px), var(--alert)}@supports (color:color-mix(in lab, red, red)){.sudoku-cell.is-validation-rule:not(.is-conflict){background:repeating-linear-gradient(135deg, color-mix(in srgb, var(--alert) 18%, transparent) 0, color-mix(in srgb, var(--alert) 18%, transparent) 4px, transparent 4px, transparent 9px), color-mix(in srgb, var(--alert) 26%, var(--board) 74%)}}.sudoku-cell.is-validation-rule:not(.is-conflict){box-shadow:inset 0 0 0 2px var(--alert)}@supports (color:color-mix(in lab, red, red)){.sudoku-cell.is-validation-rule:not(.is-conflict){box-shadow:inset 0 0 0 2px color-mix(in srgb, var(--alert) 54%, transparent)}}.sudoku-cell.is-validation-rule:before{background:var(--alert)}@supports (color:color-mix(in lab, red, red)){.sudoku-cell.is-validation-rule:before{background:color-mix(in srgb, var(--alert) 72%, var(--ink) 28%)}}.sudoku-cell.is-disabled,.sudoku-cell:disabled{cursor:not-allowed}@keyframes cell-ink-in{0%{opacity:0;transform:scale(.78)}to{opacity:1;transform:scale(1)}}@keyframes cell-feedback-value-even{0%{filter:brightness();transform:scale(1)}45%{filter:brightness(1.04)saturate(1.12);transform:scale(1.035)}to{filter:brightness();transform:scale(1)}}@keyframes cell-feedback-value-odd{0%{filter:brightness();transform:scale(1)}45%{filter:brightness(1.04)saturate(1.12);transform:scale(1.035)}to{filter:brightness();transform:scale(1)}}@keyframes cell-feedback-note-even{0%{filter:brightness();transform:scale(1)}48%{filter:brightness(1.03)saturate(1.08);transform:scale(1.022)}to{filter:brightness();transform:scale(1)}}@keyframes cell-feedback-note-odd{0%{filter:brightness();transform:scale(1)}48%{filter:brightness(1.03)saturate(1.08);transform:scale(1.022)}to{filter:brightness();transform:scale(1)}}@keyframes cell-feedback-erase-even{0%{filter:opacity();transform:scale(1)}42%{filter:opacity(.72);transform:scale(.975)}to{filter:opacity();transform:scale(1)}}@keyframes cell-feedback-erase-odd{0%{filter:opacity();transform:scale(1)}42%{filter:opacity(.72);transform:scale(.975)}to{filter:opacity();transform:scale(1)}}@keyframes wrong-clear-cell{0%,64%{filter:saturate();transform:scale(1)}78%{filter:saturate(1.2);transform:scale(1.035)}to{filter:saturate(.72);transform:scale(.98)}}@keyframes validation-cell-in{0%{filter:saturate(1.12);transform:scale(1.018)}to{filter:saturate();transform:scale(1)}}@keyframes wrong-clear-value{0%,68%{opacity:1;transform:scale(1)}84%{opacity:1;transform:scale(1.14)}to{opacity:0;transform:scale(.68)}}.cell-value{animation:.16s ease-out both cell-ink-in;display:inline-block}.sudoku-cell.is-given .cell-value{animation:none}.cell-notes{color:var(--muted);align-items:center}@supports (color:color-mix(in lab, red, red)){.cell-notes{color:color-mix(in srgb, var(--muted) 80%, var(--ink) 20%)}}.cell-notes{font-family:var(--numeric-font);text-align:center;justify-items:center;gap:2px;font-size:.95rem;font-weight:600;line-height:1;display:grid;position:absolute;inset:4px}.mobile-selected-value,.cell-notes.mobile-selected-notes{display:none}.cell-notes.is-choice-mode{gap:1px;inset:1px}.cell-notes.is-note-only{opacity:.78;inset:8px}.note-grid-4{grid-template-columns:repeat(2,minmax(0,1fr))}.note-grid-6,.note-grid-9{grid-template-columns:repeat(3,minmax(0,1fr))}.note-grid-4.is-choice-mode{font-size:2rem}.note-grid-6.is-choice-mode{font-size:1.45rem}.note-grid-9.is-choice-mode{font-size:1.18rem}.note-grid-4.is-note-only{font-size:1.04rem}.note-grid-6.is-note-only{font-size:.8rem}.note-grid-9.is-note-only{font-size:.64rem}.cell-note-choice{color:var(--muted);background:#fff8e029;border:0;border-radius:2px;align-items:center}@supports (color:color-mix(in lab, red, red)){.cell-note-choice{color:color-mix(in srgb, var(--muted) 72%, var(--ink) 28%)}}.cell-note-choice{cursor:pointer;font:inherit;opacity:.82;-webkit-tap-highlight-color:transparent;touch-action:manipulation;-webkit-user-select:none;user-select:none;justify-content:center;width:100%;min-width:0;height:100%;min-height:0;padding:0;transition:background .12s,color .12s,opacity .12s;display:inline-flex}.cell-note-choice:hover{background:var(--user-ink)}@supports (color:color-mix(in lab, red, red)){.cell-note-choice:hover{background:color-mix(in srgb, var(--user-ink) 18%, transparent)}}.cell-note-choice:hover{color:var(--user-ink);opacity:1}.cell-note-choice:focus-visible{outline:1.5px solid var(--user-ink);outline-offset:-1px}.cell-note-choice.is-marked{background:var(--user-ink)}@supports (color:color-mix(in lab, red, red)){.cell-note-choice.is-marked{background:color-mix(in srgb, var(--user-ink) 18%, transparent)}}.cell-note-choice.is-marked{color:var(--user-ink);opacity:1}.cell-note-choice.is-smart-eliminated{background:var(--alert)}@supports (color:color-mix(in lab, red, red)){.cell-note-choice.is-smart-eliminated{background:color-mix(in srgb, var(--alert) 24%, transparent)}}.cell-note-choice.is-smart-eliminated{box-shadow:inset 0 0 0 1px var(--alert)}@supports (color:color-mix(in lab, red, red)){.cell-note-choice.is-smart-eliminated{box-shadow:inset 0 0 0 1px color-mix(in srgb, var(--alert) 58%, transparent)}}.cell-note-choice.is-smart-eliminated{color:var(--alert)}@supports (color:color-mix(in lab, red, red)){.cell-note-choice.is-smart-eliminated{color:color-mix(in srgb, var(--alert) 82%, var(--ink) 18%)}}.cell-note-choice.is-smart-eliminated{opacity:1;text-decoration:line-through;text-decoration-thickness:1.5px}.cell-note-choice.is-static{cursor:default;pointer-events:none}.sudoku-cell.is-selected .cell-note-choice{color:var(--user-ink)}@supports (color:color-mix(in lab, red, red)){.sudoku-cell.is-selected .cell-note-choice{color:color-mix(in srgb, var(--user-ink) 70%, var(--ink) 30%)}}.sudoku-cell.is-selected .cell-note-choice.is-marked{background:var(--user-ink)}@supports (color:color-mix(in lab, red, red)){.sudoku-cell.is-selected .cell-note-choice.is-marked{background:color-mix(in srgb, var(--user-ink) 24%, transparent)}}.sudoku-cell.is-selected .cell-note-choice.is-marked{color:var(--user-ink)}.sudoku-cell.is-selected .cell-note-choice.is-smart-eliminated{background:var(--alert)}@supports (color:color-mix(in lab, red, red)){.sudoku-cell.is-selected .cell-note-choice.is-smart-eliminated{background:color-mix(in srgb, var(--alert) 28%, transparent)}}.sudoku-cell.is-selected .cell-note-choice.is-smart-eliminated{color:var(--alert)}@supports (color:color-mix(in lab, red, red)){.sudoku-cell.is-selected .cell-note-choice.is-smart-eliminated{color:color-mix(in srgb, var(--alert) 88%, var(--ink) 12%)}}.sudoku-cell.is-wrong .cell-note-choice{color:var(--alert-ink)}@supports (color:color-mix(in lab, red, red)){.sudoku-cell.is-wrong .cell-note-choice{color:color-mix(in srgb, var(--alert-ink) 78%, transparent)}}.sudoku-cell.is-wrong .cell-note-choice.is-marked{background:var(--alert-ink)}@supports (color:color-mix(in lab, red, red)){.sudoku-cell.is-wrong .cell-note-choice.is-marked{background:color-mix(in srgb, var(--alert-ink) 28%, transparent)}}.sudoku-cell.is-wrong .cell-note-choice.is-marked{color:var(--alert-ink)}.cell-note-choice:disabled{cursor:not-allowed}@media (prefers-reduced-motion:reduce){.sudoku-cell.is-feedback-value,.sudoku-cell.is-feedback-note,.sudoku-cell.is-feedback-erase{animation:none}}.number-dock{background:linear-gradient(180deg, #fff8e08f, #fff8e02e), var(--panel);align-self:center}@supports (color:color-mix(in lab, red, red)){.number-dock{background:linear-gradient(180deg, #fff8e08f, #fff8e02e), color-mix(in srgb, var(--panel) 80%, transparent)}}.number-dock{border:1px solid var(--surface-border);border-radius:4px;width:178px;padding:12px;display:block;box-shadow:inset 0 1px #fff8e099,0 14px 26px -16px #36260e47}.number-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;display:grid}.number-key{background:linear-gradient(180deg, #fff8e0b3, #fff8e03d), var(--panel)}@supports (color:color-mix(in lab, red, red)){.number-key{background:linear-gradient(180deg, #fff8e0b3, #fff8e03d), color-mix(in srgb, var(--panel) 78%, var(--secondary) 22%)}}.number-key{border:1px solid var(--secondary)}@supports (color:color-mix(in lab, red, red)){.number-key{border:1px solid color-mix(in srgb, var(--secondary) 28%, var(--line-strong) 72%)}}.number-key{color:var(--ink);font-family:var(--numeric-font);-webkit-tap-highlight-color:transparent;touch-action:manipulation;-webkit-user-select:none;user-select:none;min-height:50px;font-size:1.3rem;font-weight:700;position:relative;box-shadow:inset 0 1px #fff8e0a3,0 8px 14px -8px #36260e2e}.number-key-value{line-height:1;display:inline-block}.number-key-remaining{color:var(--muted)}@supports (color:color-mix(in lab, red, red)){.number-key-remaining{color:color-mix(in srgb, var(--muted) 78%, var(--ink) 22%)}}.number-key-remaining{font-family:var(--mono-font);letter-spacing:.04em;font-size:.6rem;font-weight:600;line-height:1;position:absolute;top:4px;right:5px}.number-key.is-depleted .number-key-remaining{opacity:.6}.number-key:disabled{box-shadow:none;color:var(--muted)}@supports (color:color-mix(in lab, red, red)){.number-key:disabled{color:color-mix(in srgb, var(--muted) 46%, transparent)}}.number-key:disabled{cursor:not-allowed;opacity:.42;transform:none}.number-key.is-depleted:disabled{opacity:.32}.start-button:disabled,.submit-button:disabled,.change-button:disabled,.tool-button:disabled{box-shadow:none;cursor:not-allowed;opacity:.5;transform:none}.start-button:not(:disabled):hover,.submit-button:not(:disabled):hover,.change-button:not(:disabled):hover,.tool-button:not(:disabled):hover,.number-key:not(:disabled):hover{transform:translateY(-1px)}.play-actions{grid-template-columns:repeat(6,minmax(68px,1fr)) minmax(200px,1.4fr);align-items:stretch;gap:8px;margin-top:10px;display:grid}.play-actions .tool-button,.play-actions .submit-button,.play-actions .notice{min-height:40px}.play-actions .tool-button{min-width:0;padding:7px 10px}.play-actions .notice{grid-column:6/-1}.notice{background:var(--panel);align-items:center}@supports (color:color-mix(in lab, red, red)){.notice{background:color-mix(in srgb, var(--panel) 70%, transparent)}}.notice{border:1px solid var(--surface-border);color:var(--muted);border-radius:4px;justify-content:space-between;gap:10px;padding:8px 12px;font-size:.8rem;line-height:1.35;transition:background-color .16s,border-color .16s,color .16s;display:flex}.notice.is-empty{color:#0000;background:0 0;border-color:#0000}.notice span,.notice small{min-width:0}.notice small{color:var(--muted)}@supports (color:color-mix(in lab, red, red)){.notice small{color:color-mix(in srgb, var(--muted) 72%, transparent)}}.notice small{font-family:var(--mono-font);letter-spacing:.04em;white-space:nowrap;flex:none;font-size:.68rem;font-weight:500}.notice.warning{border-color:var(--alert)}@supports (color:color-mix(in lab, red, red)){.notice.warning{border-color:color-mix(in srgb, var(--alert) 60%, var(--line-strong) 40%)}}.notice.warning{color:var(--alert)}@supports (color:color-mix(in lab, red, red)){.notice.warning{color:color-mix(in srgb, var(--alert) 80%, var(--ink) 20%)}}.notice.success{border-color:var(--primary)}@supports (color:color-mix(in lab, red, red)){.notice.success{border-color:color-mix(in srgb, var(--primary) 56%, var(--line-strong) 44%)}}.notice.success{color:var(--primary)}@supports (color:color-mix(in lab, red, red)){.notice.success{color:color-mix(in srgb, var(--primary) 80%, var(--ink) 20%)}}.shortcuts-bar{color:var(--muted);align-items:center}@supports (color:color-mix(in lab, red, red)){.shortcuts-bar{color:color-mix(in srgb, var(--muted) 88%, transparent)}}.shortcuts-bar{font-family:var(--mono-font);letter-spacing:.04em;flex-wrap:wrap;justify-content:center;gap:8px 14px;margin-top:6px;padding:0 4px;font-size:.65rem;display:flex}.shortcuts-bar span{align-items:center;gap:4px;display:inline-flex}.shortcuts-bar kbd{background:var(--panel)}@supports (color:color-mix(in lab, red, red)){.shortcuts-bar kbd{background:color-mix(in srgb, var(--panel) 84%, transparent)}}.shortcuts-bar kbd{border:1px solid var(--surface-border);color:var(--ink);border-radius:3px;padding:0 4px;font-family:inherit;font-size:.6rem}@keyframes result-rise{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:translateY(0)}}.result-backdrop{-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);z-index:20;background:#1a120875;justify-content:center;align-items:center;padding:18px;display:flex;position:fixed;inset:0}.result-dialog{background:linear-gradient(180deg, #fff8e0c7, #fff8e06b), var(--surface-panel);border:1px solid var(--surface-border);color:var(--ink);border-radius:6px;gap:14px;width:min(100%,440px);max-width:440px;padding:22px;animation:.24s ease-out both result-rise;display:grid;box-shadow:inset 0 1px #fff8e0b3,0 32px 70px -20px #1a120861}.result-dialog.success{border-color:var(--primary)}@supports (color:color-mix(in lab, red, red)){.result-dialog.success{border-color:color-mix(in srgb, var(--primary) 58%, var(--line-strong) 42%)}}.result-dialog.warning{border-color:var(--alert)}@supports (color:color-mix(in lab, red, red)){.result-dialog.warning{border-color:color-mix(in srgb, var(--alert) 64%, var(--line-strong) 36%)}}.result-dialog h2{font-family:var(--display-font);letter-spacing:.005em;margin:0;font-size:1.55rem;font-weight:500;line-height:1.1}.result-dialog p{color:var(--muted);margin:0;font-size:.92rem;line-height:1.55}.clean-run-banner{background:var(--primary)}@supports (color:color-mix(in lab, red, red)){.clean-run-banner{background:color-mix(in srgb, var(--primary) 12%, var(--panel) 88%)}}.clean-run-banner{border:1px solid var(--primary)}@supports (color:color-mix(in lab, red, red)){.clean-run-banner{border:1px solid color-mix(in srgb, var(--primary) 35%, var(--line-strong) 65%)}}.clean-run-banner{color:var(--ink);border-radius:8px;flex-direction:column;gap:8px;padding:10px 12px;font-size:.86rem;line-height:1.45;display:flex}.clean-run-banner__head{justify-content:space-between;align-items:center;gap:10px;display:flex}.clean-run-badge{background:var(--primary);color:var(--panel);border-radius:999px}@supports (color:color-mix(in lab, red, red)){.clean-run-badge{color:color-mix(in srgb, var(--panel) 90%, white 10%)}}.clean-run-badge{font-family:var(--display-font);letter-spacing:.08em;text-transform:uppercase;flex-shrink:0;padding:4px 10px;font-size:.74rem;font-weight:700}.clean-run-points{color:var(--primary);font-family:var(--numeric-font);font-size:1rem;font-weight:700}.clean-run-reasons{flex-wrap:wrap;gap:6px;margin:0;padding:0;list-style:none;display:flex}.clean-run-reasons li{background:var(--panel)}@supports (color:color-mix(in lab, red, red)){.clean-run-reasons li{background:color-mix(in srgb, var(--panel) 88%, white 12%)}}.clean-run-reasons li{border:1px solid var(--primary)}@supports (color:color-mix(in lab, red, red)){.clean-run-reasons li{border:1px solid color-mix(in srgb, var(--primary) 22%, var(--line-strong) 78%)}}.clean-run-reasons li{color:var(--ink);border-radius:999px;padding:3px 10px;font-size:.78rem}.personal-best-card{background:linear-gradient(180deg, #fff8e094, #fff8e029), var(--secondary)}@supports (color:color-mix(in lab, red, red)){.personal-best-card{background:linear-gradient(180deg, #fff8e094, #fff8e029), color-mix(in srgb, var(--secondary) 10%, var(--panel) 90%)}}.personal-best-card{border:1px solid var(--secondary)}@supports (color:color-mix(in lab, red, red)){.personal-best-card{border:1px solid color-mix(in srgb, var(--secondary) 32%, var(--line-strong) 68%)}}.personal-best-card{border-radius:6px;gap:4px;padding:10px 12px;line-height:1.4;display:grid}.personal-best-card.is-first,.personal-best-card.is-faster{background:linear-gradient(180deg, #fff8e0a3, #fff8e02e), var(--primary)}@supports (color:color-mix(in lab, red, red)){.personal-best-card.is-first,.personal-best-card.is-faster{background:linear-gradient(180deg, #fff8e0a3, #fff8e02e), color-mix(in srgb, var(--primary) 10%, var(--panel) 90%)}}.personal-best-card.is-first,.personal-best-card.is-faster{border-color:var(--primary)}@supports (color:color-mix(in lab, red, red)){.personal-best-card.is-first,.personal-best-card.is-faster{border-color:color-mix(in srgb, var(--primary) 34%, var(--line-strong) 66%)}}.personal-best-card__label{color:var(--primary);font-family:var(--mono-font);letter-spacing:.08em;text-transform:uppercase;font-size:.68rem;font-weight:700}.personal-best-card strong{color:var(--ink);font-family:var(--display-font);font-size:.98rem;font-weight:600}.personal-best-card span:last-child{color:var(--muted);font-size:.8rem}.result-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;display:grid}.ruleset-select{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-bottom:12px;display:grid}.ruleset-option{background:var(--panel);align-items:flex-start}@supports (color:color-mix(in lab, red, red)){.ruleset-option{background:color-mix(in srgb, var(--panel) 80%, transparent)}}.ruleset-option{border:1px solid var(--surface-border);text-align:left;-webkit-tap-highlight-color:transparent;border-radius:8px;flex-direction:column;gap:4px;padding:10px 12px;transition:background .12s,border-color .12s,color .12s;display:flex}.ruleset-option:hover{background:var(--panel)}@supports (color:color-mix(in lab, red, red)){.ruleset-option:hover{background:color-mix(in srgb, var(--panel) 88%, transparent)}}.ruleset-option:hover{border-color:var(--line-strong)}@supports (color:color-mix(in lab, red, red)){.ruleset-option:hover{border-color:color-mix(in srgb, var(--line-strong) 60%, transparent)}}.ruleset-option.is-active{background:var(--primary)}@supports (color:color-mix(in lab, red, red)){.ruleset-option.is-active{background:color-mix(in srgb, var(--primary) 14%, var(--panel) 86%)}}.ruleset-option.is-active{border-color:var(--primary);color:var(--primary)}.ruleset-option strong{font-family:var(--display-font);font-size:.96rem;font-weight:700}.ruleset-option span{color:var(--muted);font-size:.78rem;line-height:1.4}.ruleset-option.is-active span{color:var(--primary)}@supports (color:color-mix(in lab, red, red)){.ruleset-option.is-active span{color:color-mix(in srgb, var(--primary) 80%, var(--ink) 20%)}}.score-anchor{background:var(--panel);align-self:start}@supports (color:color-mix(in lab, red, red)){.score-anchor{background:color-mix(in srgb, var(--panel) 86%, var(--secondary) 14%)}}.score-anchor{border:1px solid var(--secondary)}@supports (color:color-mix(in lab, red, red)){.score-anchor{border:1px solid color-mix(in srgb, var(--secondary) 30%, var(--line-strong) 70%)}}.score-anchor{color:var(--muted);font-family:var(--mono-font);letter-spacing:.04em;text-transform:uppercase;border-radius:999px;padding:3px 10px;font-size:.7rem;font-weight:600}.score-breakdown{background:var(--panel)}@supports (color:color-mix(in lab, red, red)){.score-breakdown{background:color-mix(in srgb, var(--panel) 90%, white 10%)}}.score-breakdown{border:1px solid var(--line);border-radius:8px;flex-direction:column;gap:8px;padding:12px 14px;display:flex}.score-breakdown__title{color:var(--muted);font-family:var(--mono-font);letter-spacing:.08em;text-transform:uppercase;font-size:.7rem;font-weight:700}.score-breakdown__list{flex-direction:column;gap:6px;margin:0;padding:0;list-style:none;display:flex}.score-breakdown__row{color:var(--ink);justify-content:space-between;align-items:center;font-size:.86rem;display:flex}.score-breakdown__row.tone-positive span:last-child{color:var(--primary);font-family:var(--numeric-font);font-weight:700}.score-breakdown__row.tone-negative span:last-child{color:var(--danger,#b45151);font-family:var(--numeric-font);font-weight:700}.score-breakdown__row.tone-neutral span:last-child{color:var(--ink);font-family:var(--numeric-font);font-weight:600}.score-breakdown__row--total{border-top:1px dashed var(--line-strong);font-family:var(--display-font);padding-top:8px;font-size:1rem;font-weight:700}.score-breakdown__row--total span:last-child{color:var(--primary);font-family:var(--numeric-font)}.result-actions{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;display:grid}.result-actions.has-replay{grid-template-columns:repeat(3,minmax(0,1fr))}.coachmark-backdrop{-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);z-index:25;background:#1a120885;justify-content:center;align-items:center;padding:18px;display:flex;position:fixed;inset:0}.coachmark-card{background:linear-gradient(180deg, #fff8e0d1, #fff8e075), var(--surface-panel);border:1px solid var(--surface-border);color:var(--ink);border-radius:6px;gap:12px;width:min(100%,400px);max-width:400px;padding:20px 22px;animation:.24s ease-out both result-rise;display:grid;box-shadow:inset 0 1px #fff8e0b3,0 32px 70px -20px #1a120861}.coachmark-card h2{font-family:var(--display-font);letter-spacing:.005em;margin:0;font-size:1.25rem;font-weight:600;line-height:1.2}.coachmark-card p{color:var(--muted);margin:0;font-size:.92rem;line-height:1.55}.coachmark-actions{grid-template-columns:1fr 1.4fr;gap:10px;display:grid}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.001ms!important;animation-duration:.001ms!important;animation-iteration-count:1!important}}@media (max-width:1000px){.start-panel{grid-template-columns:1fr;padding:18px}.play-shell{padding:12px}.play-header{grid-template-columns:1fr;gap:8px;margin-bottom:10px}.play-header h1{margin-top:4px;font-size:1.3rem}.metrics-row{grid-template-columns:repeat(3,minmax(0,1fr));max-width:none}.metrics-row--with-score{grid-template-columns:repeat(4,minmax(0,1fr))}.metric{min-height:40px;padding:6px 9px}.metric strong{font-size:1.02rem}.play-grid{grid-template-columns:minmax(0,min(100%,460px,100svh - 380px)) auto}.board-stage{max-width:min(100%,460px,100svh - 380px);padding:8px}.change-button{justify-self:start;min-height:36px;padding:6px 12px}.play-actions{gap:6px;margin-top:8px}.play-actions .tool-button,.play-actions .submit-button,.play-actions .notice{min-height:36px}.game-stage.is-playing{grid-template-rows:auto minmax(0,1fr);height:100svh;min-height:0;padding:8px;overflow:hidden}.game-stage.is-playing .game-topbar{flex-direction:row;align-items:center;gap:8px;width:100%;min-height:30px;margin-bottom:6px}.game-stage.is-playing .brand-block{gap:8px}.game-stage.is-playing .brand-mark{width:30px;height:30px;font-size:.92rem}.game-stage.is-playing .brand-title{font-size:.92rem}.game-stage.is-playing .brand-subtitle,.game-stage.is-playing .game-nav>:not(.locale-switch),.game-stage.is-playing .shortcuts-bar{display:none}.game-stage.is-playing .game-nav{flex:none;display:flex}.game-stage.is-playing .locale-switch{padding:1px;font-size:.66rem}.game-stage.is-playing .locale-switch button{min-width:30px;min-height:26px;padding:0 6px}.game-stage.is-playing .play-screen{height:100%;overflow:hidden}.game-stage.is-playing .play-shell{grid-template-rows:auto minmax(0,1fr) auto auto auto;height:100%;padding:8px;overflow:hidden}.game-stage.is-playing .play-header{grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"title change""metrics metrics";gap:5px 8px;margin-bottom:6px}.game-stage.is-playing .play-header>div:first-child{grid-area:title;min-width:0}.game-stage.is-playing .play-header .soft-label{display:none}.game-stage.is-playing .play-header h1{text-overflow:ellipsis;white-space:nowrap;margin:0;font-size:1rem;line-height:1.1;overflow:hidden}.game-stage.is-playing .metrics-row{grid-area:metrics;gap:4px}.game-stage.is-playing .metric{min-height:30px;padding:4px 6px}.game-stage.is-playing .metric span{font-size:.56rem}.game-stage.is-playing .metric strong{margin-top:2px;font-size:.86rem}.game-stage.is-playing .change-button{grid-area:change;justify-self:end;min-height:30px;padding:4px 8px;font-size:.72rem}.game-stage.is-playing .play-grid{grid-template-rows:auto auto;grid-template-columns:minmax(0,1fr);place-items:center;gap:6px;min-height:0;overflow:hidden}.game-stage.is-playing .board-stage{justify-self:center;width:min(100%,clamp(210px,100svh - 285px,520px));max-width:min(100%,clamp(210px,100svh - 285px,520px));padding:5px}.game-stage.is-playing .number-dock{justify-self:center;width:min(100%,520px);padding:5px;overflow:visible}.game-stage.is-playing .number-grid{grid-auto-flow:initial;grid-template-columns:repeat(9,minmax(0,1fr));gap:3px}.game-stage.is-playing .number-dock-4 .number-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.game-stage.is-playing .number-dock-6 .number-grid{grid-template-columns:repeat(6,minmax(0,1fr))}.game-stage.is-playing .number-key{min-height:38px;font-size:.94rem}.game-stage.is-playing .number-key-remaining{font-size:.52rem;top:2px;right:3px}.game-stage.is-playing .play-actions{grid-template-columns:repeat(5,minmax(0,1fr));gap:4px;margin-top:6px}.game-stage.is-playing .play-actions .tool-button{min-width:0;min-height:36px;padding:4px 2px;font-size:.78rem}.game-stage.is-playing .tool-button-content{text-overflow:ellipsis;white-space:nowrap;justify-content:center;gap:0;max-width:100%;overflow:hidden}.game-stage.is-playing .tool-button-content--stacked{gap:0}.game-stage.is-playing .tool-button-main{justify-content:center;gap:0}.game-stage.is-playing .tool-button-subtext,.game-stage.is-playing .tool-shortcut,.game-stage.is-playing .tool-button-content svg{display:none}.game-stage.is-playing .play-actions .notice{grid-column:1/-1;min-height:28px;padding:4px 6px;font-size:.68rem}.game-stage.is-playing .notice span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.game-stage.is-playing .notice small{display:none}}@media (max-width:880px){html,body{min-height:100%;overflow-y:auto}.game-stage{grid-template-rows:auto auto;height:auto;min-height:100svh;padding:12px;overflow-y:auto}.start-screen,.play-screen{height:auto;overflow:visible}.start-screen{align-items:start}.start-panel{max-height:none;overflow:visible}.play-shell{grid-template-rows:auto auto auto auto;height:auto;min-height:0;overflow:visible}.play-grid{grid-template-columns:minmax(0,min(100%,520px));align-items:start;gap:12px}.board-stage{justify-self:center;max-width:min(100%,520px);padding:8px}.cell-notes.is-choice-mode{display:none}.mobile-selected-value{display:block}.cell-notes.mobile-selected-notes{display:grid}.number-dock{scrollbar-width:none;justify-self:center;width:min(100%,520px);padding:8px;display:block;overflow-x:auto}.number-dock::-webkit-scrollbar{display:none}.number-grid{grid-template-columns:none;grid-auto-columns:minmax(36px,1fr);grid-auto-flow:column;gap:4px}.number-key{border-radius:4px;min-height:44px;padding:0;font-size:1.08rem}.play-actions{grid-template-columns:repeat(2,minmax(0,1fr))}.play-actions .notice{grid-column:1/-1}}@media (max-width:640px){.game-topbar{flex-direction:column;align-items:stretch;gap:10px}.game-nav{grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.game-nav a,.game-nav span,.game-nav button{text-align:center}.start-copy h1{font-size:1.65rem}.start-panel.wizard-mode .start-copy h1{font-size:1.45rem}.start-panel.wizard-mode .start-copy p{display:none}.start-panel.wizard-mode.wizard-step-board .start-copy h1,.start-panel.wizard-mode.wizard-step-difficulty .start-copy h1,.start-panel.wizard-mode.wizard-step-ready .start-copy h1{font-size:1.25rem}.start-panel.wizard-mode.wizard-step-board .start-copy .soft-label,.start-panel.wizard-mode.wizard-step-difficulty .start-copy .soft-label,.start-panel.wizard-mode.wizard-step-ready .start-copy .soft-label{display:none}.board-select-grid,.difficulty-select-grid,.launch-card{grid-template-columns:1fr}.start-panel.wizard-mode .setup-card{min-height:96px;padding:16px 18px}.start-panel.wizard-mode .setup-card strong{font-size:1.2rem}.start-panel.wizard-mode .setup-card span,.start-panel.wizard-mode .setup-card small{font-size:.85rem}.start-panel.wizard-mode .launch-card{grid-template-columns:1fr;gap:10px}.start-panel.wizard-mode .start-button{min-height:52px}.metrics-row{grid-template-columns:repeat(3,minmax(0,1fr))}.play-grid{grid-template-columns:minmax(0,min(100%,420px))}.board-stage{max-width:min(100%,420px)}.number-dock{width:min(100%,420px)}.sudoku-cell{font-size:1.2rem}.cell-notes{font-size:.74rem}.note-grid-4.is-choice-mode{font-size:1.4rem}.note-grid-6.is-choice-mode{font-size:.98rem}.note-grid-9.is-choice-mode{font-size:.78rem}}.signin-toast{background:var(--panel,#fffdf5);border:1px solid var(--surface-border,#d4d4d8);bottom:max(16px, env(safe-area-inset-bottom));color:var(--foreground,#26201a);left:max(16px, env(safe-area-inset-left));right:max(16px, env(safe-area-inset-right));z-index:80;border-radius:10px;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;padding:12px 14px;display:flex;position:fixed;box-shadow:0 12px 30px #0f172a2e}@media (min-width:540px){.signin-toast{max-width:420px;left:auto;right:max(20px, env(safe-area-inset-right))}}.signin-toast-text{flex-direction:column;gap:2px;min-width:200px;display:flex}.signin-toast-title{color:var(--primary,#2b3a67);margin:0;font-size:.92rem;font-weight:700}.signin-toast-body{color:var(--muted,#6b614a);margin:0;font-size:.82rem}.signin-toast-actions{align-items:center;gap:6px;display:flex}.signin-toast-cta{background:var(--primary,#2b3a67);border:1px solid var(--primary,#2b3a67);color:#fff;border-radius:6px;padding:7px 12px;font-size:.85rem;font-weight:700;text-decoration:none}.signin-toast-dismiss{border:1px solid var(--surface-border,#d4d4d8);color:var(--muted,#6b614a);cursor:pointer;background:0 0;border-radius:6px;padding:6px 10px;font-size:1rem;line-height:1}.consent-banner{background:var(--panel,#fffdf5);border:1px solid var(--surface-border,#d4d4d8);bottom:max(16px, env(safe-area-inset-bottom));color:var(--foreground,#26201a);left:max(16px, env(safe-area-inset-left));max-width:min(760px,100vw - 32px);right:max(16px, env(safe-area-inset-right));z-index:120;border-radius:12px;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:14px;padding:16px 18px;display:flex;position:fixed;box-shadow:0 16px 40px #0f172a38}.consent-banner__copy{flex-direction:column;flex:320px;gap:5px;min-width:0;display:flex}.consent-banner__copy h2{color:var(--primary,#2b3a67);margin:0;font-size:1rem;font-weight:700}.consent-banner__copy p{color:var(--muted,#6b614a);margin:0;font-size:.86rem;line-height:1.45}.consent-banner__actions,.consent-dialog__button-row{flex-wrap:wrap;justify-content:flex-end;gap:8px;display:flex}.consent-button{background:var(--panel,#fffdf5)}@supports (color:color-mix(in lab, red, red)){.consent-button{background:color-mix(in srgb, var(--panel,#fffdf5) 82%, white 18%)}}.consent-button{border:1px solid var(--surface-border,#d4d4d8);color:var(--foreground,#26201a);cursor:pointer;font:inherit;border-radius:6px;min-height:36px;padding:8px 13px;font-size:.86rem;font-weight:700}.consent-button.is-primary{background:var(--primary,#2b3a67);border-color:var(--primary,#2b3a67);color:#fff}.consent-inline-link{color:var(--primary,#2b3a67);text-underline-offset:2px;font-size:.82rem;font-weight:700;text-decoration:underline}.consent-settings-button{background:var(--panel,#fffdf5)}@supports (color:color-mix(in lab, red, red)){.consent-settings-button{background:color-mix(in srgb, var(--panel,#fffdf5) 90%, transparent)}}.consent-settings-button{border:1px solid var(--surface-border,#d4d4d8);bottom:max(12px, env(safe-area-inset-bottom));color:var(--muted,#6b614a);cursor:pointer;left:max(12px, env(safe-area-inset-left));letter-spacing:.02em;z-index:55;border-radius:999px;padding:7px 11px;font-size:.74rem;font-weight:700;position:fixed}.consent-dialog-backdrop{-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);z-index:10000;background:#0f172a8c;justify-content:center;align-items:center;padding:16px;display:flex;position:fixed;inset:0}.consent-dialog{background:var(--panel,#fffdf5);border:1px solid var(--surface-border,#d4d4d8);color:var(--foreground,#26201a);border-radius:12px;flex-direction:column;gap:18px;width:100%;max-width:620px;max-height:calc(100svh - 32px);padding:22px 20px;display:flex;overflow-y:auto;box-shadow:0 30px 70px #0f172a52}.consent-dialog__head{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.consent-dialog__head h2{color:var(--foreground,#26201a);font-family:var(--font-display,Fraunces, serif);margin:0 0 6px;font-size:1.3rem}.consent-dialog__head p{color:var(--muted,#6b614a);margin:0;font-size:.86rem;line-height:1.5}.consent-dialog__close{border:1px solid var(--surface-border,#d4d4d8);color:var(--muted,#6b614a);cursor:pointer;background:0 0;border-radius:6px;padding:7px 10px;font-size:.9rem;line-height:1}.consent-choice-list{flex-direction:column;gap:9px;display:flex}.consent-choice{background:var(--panel,#fffdf5);align-items:center}@supports (color:color-mix(in lab, red, red)){.consent-choice{background:color-mix(in srgb, var(--panel,#fffdf5) 78%, white 22%)}}.consent-choice{border:1px solid var(--surface-border,#d4d4d8);border-radius:8px;justify-content:space-between;gap:14px;padding:12px 14px;display:flex}.consent-choice.is-locked{opacity:.84}.consent-choice span{flex-direction:column;gap:4px;display:flex}.consent-choice strong{color:var(--foreground,#26201a);font-size:.92rem}.consent-choice small{color:var(--muted,#6b614a);font-size:.8rem;line-height:1.45}.consent-choice input{accent-color:var(--primary,#2b3a67);flex:none;width:20px;height:20px}.consent-dialog__actions{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;display:flex}.result-member-hint{background:var(--primary,#2b3a67)}@supports (color:color-mix(in lab, red, red)){.result-member-hint{background:color-mix(in srgb, var(--primary,#2b3a67) 8%, transparent)}}.result-member-hint{border:1px solid var(--primary,#2b3a67)}@supports (color:color-mix(in lab, red, red)){.result-member-hint{border:1px solid color-mix(in srgb, var(--primary,#2b3a67) 22%, transparent)}}.result-member-hint{color:var(--muted,#6b614a);border-radius:8px;flex-wrap:wrap;justify-content:space-between;gap:8px;margin:8px 0 0;padding:10px 12px;font-size:.85rem;display:flex}.result-member-hint a{color:var(--primary,#2b3a67);font-weight:700;text-decoration:underline}.guest-upgrade-login{color:var(--muted,#6b614a);text-align:right;width:100%;margin:6px 0 0;font-size:.78rem}.guest-upgrade-login a{color:var(--primary,#2b3a67);text-decoration:underline}.merge-dialog-backdrop{-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);z-index:9999;background:#0f172a8c;justify-content:center;align-items:center;padding:16px;display:flex;position:fixed;inset:0}.merge-dialog{background:var(--panel,#fffdf5);border:1px solid var(--surface-border,#d4d4d8);color:var(--foreground,#26201a);border-radius:12px;flex-direction:column;gap:16px;width:100%;max-width:480px;max-height:calc(100svh - 32px);padding:22px 20px;display:flex;overflow-y:auto;box-shadow:0 30px 70px #0f172a52}@media (min-width:540px){.merge-dialog{padding:24px 22px}}.merge-dialog-title{color:var(--foreground,#26201a);font-family:var(--font-display,Fraunces, serif);margin:0;font-size:1.25rem}.merge-stat-block{flex-direction:column;gap:8px;display:flex}.merge-stat-block h3{color:var(--muted,#6b614a);letter-spacing:.02em;margin:0;font-size:.85rem;font-weight:700}.merge-stat-list{flex-direction:column;gap:4px;margin:0;display:flex}.merge-stat-row{justify-content:space-between;align-items:baseline;gap:8px;font-size:.92rem;display:flex}.merge-stat-row dt{color:var(--muted,#6b614a)}.merge-stat-row dd{color:var(--foreground,#26201a);font-family:var(--font-numeric,Nunito, system-ui, sans-serif);margin:0;font-weight:600}.merge-dialog-footnote{color:var(--muted,#6b614a);opacity:.85;margin:0;font-size:.8rem}.merge-dialog-error{color:#b91c1c;background:#ef444424;border:1px solid #ef444461;border-radius:6px;margin:0;padding:8px 10px;font-size:.85rem}.merge-dialog-actions{flex-wrap:wrap;justify-content:flex-end;gap:8px;display:flex}.merge-dialog-button{background:var(--panel,#fffdf5);border:1px solid var(--surface-border,#d4d4d8);color:var(--foreground,#26201a);cursor:pointer;font:inherit;border-radius:6px;padding:8px 14px;font-size:.85rem}.merge-dialog-button.is-primary{background:var(--primary,#2b3a67);border-color:var(--primary,#2b3a67);color:#fff;font-weight:700}.merge-dialog-button.is-danger{color:#fff;background:#b91c1c;border-color:#991b1b;font-weight:700}.merge-dialog-button[disabled]{cursor:progress;opacity:.7}.merge-dialog-warning{color:#92400e;background:#f59e0b29;border:1px solid #f59e0b66;border-radius:8px;margin:0;padding:12px 14px;font-size:.9rem;line-height:1.5}.notifications-section{flex-direction:column;gap:14px;display:flex}.notifications-row{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;display:flex}.notifications-row-text{flex-direction:column;gap:2px;min-width:200px;display:flex}.notifications-row-title{color:var(--foreground,#26201a);margin:0;font-size:.95rem;font-weight:700}.notifications-row-hint{color:var(--muted,#6b614a);margin:0;font-size:.82rem}.notifications-toggle{background:var(--panel,#fffdf5);border:1px solid var(--surface-border,#d4d4d8);color:var(--foreground,#26201a);cursor:pointer;font:inherit;border-radius:6px;padding:8px 14px;font-size:.85rem}.notifications-toggle.is-on{background:var(--primary,#2b3a67);border-color:var(--primary,#2b3a67);color:#fff;font-weight:700}.notifications-toggle[disabled]{cursor:progress;opacity:.65}.notifications-ios-hint,.notifications-error,.notifications-warning{margin:0;font-size:.82rem}.notifications-ios-hint{color:var(--muted,#6b614a)}.notifications-error{color:#b91c1c;background:#ef444424;border:1px solid #ef444461;border-radius:6px;padding:8px 10px}.notifications-warning{color:var(--muted,#6b614a)}.notifications-divider{background:var(--surface-border,#d4d4d8);opacity:.5;height:1px}.notifications-tz-title{color:var(--muted,#6b614a);margin:0 0 4px;font-size:.82rem;font-weight:700}.notifications-tz-line{color:var(--foreground,#26201a);margin:0 0 8px;font-size:.92rem}.notifications-tz-toggle{border:1px solid var(--surface-border,#d4d4d8);color:var(--primary,#2b3a67);cursor:pointer;font:inherit;background:0 0;border-radius:6px;padding:6px 12px;font-size:.82rem}.notifications-tz-editor{background:var(--primary,#2b3a67)}@supports (color:color-mix(in lab, red, red)){.notifications-tz-editor{background:color-mix(in srgb, var(--primary,#2b3a67) 6%, transparent)}}.notifications-tz-editor{border-radius:8px;flex-direction:column;gap:10px;margin-top:8px;padding:12px;display:flex}.notifications-tz-field{flex-direction:column;gap:4px;font-size:.85rem;display:flex}.notifications-tz-field select{background:var(--panel,#fffdf5);border:1px solid var(--surface-border,#d4d4d8);font:inherit;border-radius:6px;padding:6px 8px}.notifications-tz-actions{flex-wrap:wrap;justify-content:flex-end;gap:6px;display:flex}.notifications-tz-save,.notifications-tz-reset,.notifications-tz-cancel{background:var(--panel,#fffdf5);border:1px solid var(--surface-border,#d4d4d8);cursor:pointer;font:inherit;border-radius:6px;padding:6px 12px;font-size:.82rem}.notifications-tz-save{background:var(--primary,#2b3a67);border-color:var(--primary,#2b3a67);color:#fff;font-weight:700}.notifications-devices ul{flex-direction:column;gap:6px;margin:0;padding:0;list-style:none;display:flex}.notifications-devices li{background:var(--panel,#fffdf5);align-items:center}@supports (color:color-mix(in lab, red, red)){.notifications-devices li{background:color-mix(in srgb, var(--panel,#fffdf5) 95%, transparent)}}.notifications-devices li{border:1px solid var(--surface-border,#d4d4d8);color:var(--muted,#6b614a);overflow-wrap:anywhere;border-radius:6px;justify-content:space-between;gap:10px;padding:8px 10px;font-size:.82rem;display:flex}.notifications-device-remove{border:1px solid var(--surface-border,#d4d4d8);color:var(--muted,#6b614a);cursor:pointer;font:inherit;background:0 0;border-radius:6px;padding:4px 8px;font-size:.78rem}.guest-upgrade-card{background:var(--primary);align-items:center}@supports (color:color-mix(in lab, red, red)){.guest-upgrade-card{background:color-mix(in srgb, var(--primary) 10%, transparent)}}.guest-upgrade-card{border:1px solid var(--primary)}@supports (color:color-mix(in lab, red, red)){.guest-upgrade-card{border:1px solid color-mix(in srgb, var(--primary) 30%, transparent)}}.guest-upgrade-card{border-radius:8px;flex-wrap:wrap;justify-content:space-between;gap:12px;padding:12px 14px;display:flex}.guest-upgrade-text{flex-direction:column;gap:2px;min-width:220px;display:flex}.guest-upgrade-title{color:var(--primary);margin:0;font-size:.9rem;font-weight:700}.guest-upgrade-meta{color:var(--muted);margin:0;font-size:.8rem}.guest-upgrade-cta{background:var(--primary);border:1px solid var(--primary);color:#fff;border-radius:6px;padding:8px 14px;font-size:.85rem;font-weight:700;text-decoration:none}.auth-stage{justify-content:center;align-items:flex-start;width:100%;padding:24px 16px 48px;display:flex}.auth-card{background:var(--panel)}@supports (color:color-mix(in lab, red, red)){.auth-card{background:color-mix(in srgb, var(--panel) 92%, white 8%)}}.auth-card{border:1px solid var(--surface-border);box-shadow:var(--paper-shadow,0 26px 60px -28px #36260e47);border-radius:10px;flex-direction:column;gap:18px;width:100%;max-width:420px;padding:28px 26px;display:flex}.auth-card-title{font-family:var(--font-display);text-align:center;margin:0;font-size:1.5rem}.auth-form{flex-direction:column;gap:16px;display:flex}.auth-field{flex-direction:column;gap:6px;display:flex}.auth-field-label{color:var(--muted);letter-spacing:.02em;align-items:baseline;gap:8px;font-size:.82rem;font-weight:600;display:flex}.auth-field-hint{color:var(--muted)}@supports (color:color-mix(in lab, red, red)){.auth-field-hint{color:color-mix(in srgb, var(--muted) 60%, transparent)}}.auth-field-hint{letter-spacing:0;font-size:.72rem;font-weight:400}.auth-field input{background:var(--panel);border:1px solid var(--surface-border);color:inherit;font:inherit;border-radius:6px;padding:10px 12px}.auth-field input:focus{border-color:var(--primary)}@supports (color:color-mix(in lab, red, red)){.auth-field input:focus{border-color:color-mix(in srgb, var(--primary) 70%, var(--surface-border) 30%)}}.auth-field input:focus{outline:none}.auth-hint{background:var(--primary)}@supports (color:color-mix(in lab, red, red)){.auth-hint{background:color-mix(in srgb, var(--primary) 10%, transparent)}}.auth-hint{border-left:3px solid var(--primary)}@supports (color:color-mix(in lab, red, red)){.auth-hint{border-left:3px solid color-mix(in srgb, var(--primary) 60%, transparent)}}.auth-hint{color:var(--muted);border-radius:4px;margin:0;padding:8px 10px;font-size:.82rem}.auth-error{color:#b91c1c;background:#ef444424;border:1px solid #ef444461;border-radius:6px;margin:0;padding:8px 10px;font-size:.85rem}.auth-submit{background:var(--primary);border:1px solid var(--primary);color:#fff;cursor:pointer;font:inherit;border-radius:6px;padding:11px 14px;font-weight:700}.auth-submit[disabled]{cursor:progress;opacity:.7}.auth-help{color:var(--muted);text-align:center;margin:0;font-size:.85rem}.auth-inline-link{color:var(--primary);font-weight:600;text-decoration:underline}.dashboard-stage{grid-template-rows:auto 1fr;align-content:start;height:100svh;min-height:100svh;overflow:hidden auto}.dashboard-shell{justify-content:center;align-items:flex-start;height:auto;padding:4px 0 16px;display:flex;overflow:visible}.dashboard-card{background:var(--panel)}@supports (color:color-mix(in lab, red, red)){.dashboard-card{background:color-mix(in srgb, var(--panel) 92%, white 8%)}}.dashboard-card{border:1px solid var(--surface-border);box-shadow:var(--paper-shadow,0 26px 60px -28px #36260e47);border-radius:8px;flex-direction:column;flex:none;gap:18px;width:100%;min-width:0;max-width:920px;padding:24px 26px;display:flex}.dashboard-card__head h1{font-family:var(--display-font);letter-spacing:.01em;margin:0 0 6px;font-size:1.45rem;font-weight:600}.dashboard-card__head p{color:var(--muted);margin:0;font-size:.86rem;line-height:1.5}.dashboard-filters,.dashboard-nickname{flex-wrap:wrap;align-items:end;gap:12px;display:flex}.dashboard-filters label,.dashboard-nickname label{letter-spacing:.05em;text-transform:uppercase;flex-direction:column;gap:6px;font-size:.78rem;display:flex}.dashboard-filters select,.dashboard-filters input,.dashboard-nickname input{background:var(--panel)}@supports (color:color-mix(in lab, red, red)){.dashboard-filters select,.dashboard-filters input,.dashboard-nickname input{background:color-mix(in srgb, var(--panel) 80%, white 20%)}}.dashboard-filters select,.dashboard-filters input,.dashboard-nickname input{border:1px solid var(--surface-border);color:var(--ink);font:inherit;border-radius:6px;min-width:140px;min-height:36px;padding:6px 10px}.dashboard-filters button,.dashboard-nickname button{background:var(--primary)}@supports (color:color-mix(in lab, red, red)){.dashboard-filters button,.dashboard-nickname button{background:color-mix(in srgb, var(--primary) 16%, var(--panel) 84%)}}.dashboard-filters button,.dashboard-nickname button{border:1px solid var(--primary)}@supports (color:color-mix(in lab, red, red)){.dashboard-filters button,.dashboard-nickname button{border:1px solid color-mix(in srgb, var(--primary) 38%, var(--line-strong) 62%)}}.dashboard-filters button,.dashboard-nickname button{color:var(--primary);cursor:pointer;border-radius:6px;min-height:36px;padding:6px 14px;font-weight:600}.dashboard-filters button[disabled],.dashboard-nickname button[disabled]{cursor:progress;opacity:.7}.leaderboard-tabs{gap:6px;margin-bottom:12px;display:flex}.leaderboard-tab{background:var(--panel)}@supports (color:color-mix(in lab, red, red)){.leaderboard-tab{background:color-mix(in srgb, var(--panel) 78%, transparent)}}.leaderboard-tab{border:1px solid var(--surface-border);color:var(--muted);font-family:var(--display-font);-webkit-tap-highlight-color:transparent;border-radius:999px;padding:6px 14px;font-size:.84rem;font-weight:600;transition:background .12s,border-color .12s,color .12s}.leaderboard-tab:hover{background:var(--panel)}@supports (color:color-mix(in lab, red, red)){.leaderboard-tab:hover{background:color-mix(in srgb, var(--panel) 90%, transparent)}}.leaderboard-tab:hover{border-color:var(--line-strong)}@supports (color:color-mix(in lab, red, red)){.leaderboard-tab:hover{border-color:color-mix(in srgb, var(--line-strong) 60%, transparent)}}.leaderboard-tab.is-active{background:var(--primary)}@supports (color:color-mix(in lab, red, red)){.leaderboard-tab.is-active{background:color-mix(in srgb, var(--primary) 14%, var(--panel) 86%)}}.leaderboard-tab.is-active{border-color:var(--primary);color:var(--primary)}.dashboard-my-rank{background:var(--panel);align-items:center}@supports (color:color-mix(in lab, red, red)){.dashboard-my-rank{background:color-mix(in srgb, var(--panel) 70%, transparent)}}.dashboard-my-rank{border:1px solid var(--surface-border);border-radius:8px;flex-wrap:wrap;gap:12px;padding:10px 14px;display:flex}.dashboard-my-rank span{color:var(--muted);letter-spacing:.05em;text-transform:uppercase;font-size:.78rem}.dashboard-my-rank strong{color:var(--primary);font-family:var(--numeric-font);font-size:1.15rem;font-weight:700}.dashboard-error{background:var(--warning,#b04a2f)}@supports (color:color-mix(in lab, red, red)){.dashboard-error{background:color-mix(in srgb, var(--warning,#b04a2f) 12%, transparent)}}.dashboard-error{border:1px solid var(--warning,#b04a2f)}@supports (color:color-mix(in lab, red, red)){.dashboard-error{border:1px solid color-mix(in srgb, var(--warning,#b04a2f) 32%, transparent)}}.dashboard-error{color:var(--warning,#b04a2f);border-radius:6px;margin:0;padding:10px 12px}.dashboard-success{color:var(--primary)}@supports (color:color-mix(in lab, red, red)){.dashboard-success{color:color-mix(in srgb, var(--primary) 80%, var(--ink) 20%)}}.dashboard-success{font-size:.82rem}.dashboard-empty{color:var(--muted);text-align:center;margin:0;padding:24px 0;font-size:.9rem}.dashboard-table{border-collapse:collapse;font-family:var(--numeric-font);width:100%;font-size:.92rem}.dashboard-table th,.dashboard-table td{border-bottom:1px solid var(--surface-border);text-align:left;padding:8px 10px}.dashboard-table th{color:var(--muted);letter-spacing:.08em;text-transform:uppercase;font-size:.72rem;font-weight:600}.dashboard-table tbody tr:hover{background:var(--primary)}@supports (color:color-mix(in lab, red, red)){.dashboard-table tbody tr:hover{background:color-mix(in srgb, var(--primary) 6%, transparent)}}.dashboard-metrics{grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px;margin:0;display:grid}.dashboard-metric{background:var(--panel)}@supports (color:color-mix(in lab, red, red)){.dashboard-metric{background:color-mix(in srgb, var(--panel) 78%, white 22%)}}.dashboard-metric{border:1px solid var(--surface-border);border-radius:8px;padding:12px 14px}.dashboard-metric dt{color:var(--muted);letter-spacing:.08em;text-transform:uppercase;margin-bottom:6px;font-size:.72rem}.dashboard-metric dd{font-family:var(--numeric-font);margin:0;font-size:1.4rem;font-weight:700}.dashboard-grid{grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:16px;display:grid}.dashboard-grid section{background:var(--panel)}@supports (color:color-mix(in lab, red, red)){.dashboard-grid section{background:color-mix(in srgb, var(--panel) 70%, transparent)}}.dashboard-grid section{border:1px solid var(--surface-border);border-radius:8px;padding:14px 16px}.dashboard-grid h2{letter-spacing:.08em;text-transform:uppercase;margin:0 0 10px;font-size:.82rem}.dashboard-grid ul{flex-direction:column;gap:6px;margin:0;padding:0;list-style:none;display:flex}.dashboard-grid li{font-family:var(--numeric-font);justify-content:space-between;align-items:center;font-size:.95rem;display:flex}.dashboard-grid li span{color:var(--muted)}.dashboard-footnote{color:var(--muted);margin:0;font-size:.78rem}.guide-card{gap:22px}.guide-section{flex-direction:column;gap:8px;display:flex}.guide-section h2{font-family:var(--display-font);margin:0;font-size:1.05rem;font-weight:600}.guide-section h3{margin:0 0 4px;font-size:.92rem;font-weight:700}.guide-section p{color:var(--ink);margin:0;font-size:.94rem;line-height:1.6}.privacy-card{max-width:980px}.privacy-updated{color:var(--muted);font-family:var(--mono-font);margin-top:8px;font-size:.76rem}.privacy-grid{grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:14px;display:grid}.privacy-section{background:var(--panel)}@supports (color:color-mix(in lab, red, red)){.privacy-section{background:color-mix(in srgb, var(--panel) 78%, white 22%)}}.privacy-section{border:1px solid var(--surface-border);border-radius:8px;flex-direction:column;gap:8px;padding:13px 15px;display:flex}.privacy-section h2{font-family:var(--display-font);margin:0;font-size:1rem;font-weight:600}.privacy-section p{color:var(--ink);margin:0;font-size:.9rem;line-height:1.6}.guide-grid{grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:14px;display:grid}.guide-grid>div{background:var(--panel)}@supports (color:color-mix(in lab, red, red)){.guide-grid>div{background:color-mix(in srgb, var(--panel) 78%, white 22%)}}.guide-grid>div{border:1px solid var(--surface-border);border-radius:8px;padding:12px 14px}.guide-actions{flex-wrap:wrap;gap:10px;margin-top:6px;display:flex}.guide-formula{background:var(--panel)}@supports (color:color-mix(in lab, red, red)){.guide-formula{background:color-mix(in srgb, var(--panel) 90%, var(--primary) 10%)}}.guide-formula{border:1px solid var(--primary)}@supports (color:color-mix(in lab, red, red)){.guide-formula{border:1px solid color-mix(in srgb, var(--primary) 28%, var(--line-strong) 72%)}}.guide-formula{color:var(--ink);font-family:var(--mono-font);letter-spacing:.01em;overflow-wrap:anywhere;white-space:pre-wrap;border-radius:6px;margin:4px 0 2px;padding:10px 12px;font-size:.92rem;font-weight:600;overflow-x:auto}.guide-scoring-grid{grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:14px;display:grid}.guide-scoring-grid>div{background:var(--panel)}@supports (color:color-mix(in lab, red, red)){.guide-scoring-grid>div{background:color-mix(in srgb, var(--panel) 78%, white 22%)}}.guide-scoring-grid>div{border:1px solid var(--surface-border);border-radius:8px;flex-direction:column;gap:6px;padding:12px 14px;display:flex}.guide-scoring-grid h3{margin-top:6px}.guide-scoring-grid h3:first-child{margin-top:0}.guide-score-table{border-collapse:collapse;font-family:var(--mono-font);width:100%;margin-top:4px;font-size:.84rem}.guide-score-table th,.guide-score-table td{border-bottom:1px solid var(--line);text-align:right;padding:5px 8px}.guide-score-table th[scope=row]{color:var(--muted);text-align:left;text-transform:capitalize;font-weight:600}.guide-score-table thead th{color:var(--muted);letter-spacing:.06em;text-transform:uppercase;font-size:.74rem;font-weight:700}.guide-cta{background:var(--panel)}@supports (color:color-mix(in lab, red, red)){.guide-cta{background:color-mix(in srgb, var(--panel) 78%, white 22%)}}.guide-cta{border:1px solid var(--surface-border);color:var(--ink);cursor:pointer;font:inherit;border-radius:6px;padding:10px 16px;font-weight:600;text-decoration:none}.guide-cta--primary{background:var(--primary)}@supports (color:color-mix(in lab, red, red)){.guide-cta--primary{background:color-mix(in srgb, var(--primary) 16%, var(--panel) 84%)}}.guide-cta--primary{border-color:var(--primary)}@supports (color:color-mix(in lab, red, red)){.guide-cta--primary{border-color:color-mix(in srgb, var(--primary) 38%, var(--line-strong) 62%)}}.guide-cta--primary{color:var(--primary)}.not-found{justify-content:center;align-items:center;min-height:100vh;padding:32px 20px;display:flex}.not-found__card{text-align:center;background:#fffaf2;border:1px solid #e7dcc6;border-radius:12px;width:100%;max-width:440px;padding:28px 30px;box-shadow:0 26px 60px -28px #36260e47}.not-found__card .eyebrow{color:#b58a52;letter-spacing:.12em;text-transform:uppercase;margin:0 0 10px;font-size:13px;font-weight:700}.not-found__card h1{color:#3a2e1e;margin:0 0 12px;font-size:1.4rem;font-weight:600}.not-found__detail{color:#6a5b46;margin:0 0 18px;font-size:.95rem;line-height:1.5}.not-found__actions{flex-wrap:wrap;justify-content:center;gap:10px;display:flex}.install-prompt{background:var(--panel);align-items:center}@supports (color:color-mix(in lab, red, red)){.install-prompt{background:color-mix(in srgb, var(--panel) 96%, transparent)}}.install-prompt{border:1px solid var(--line-strong)}@supports (color:color-mix(in lab, red, red)){.install-prompt{border:1px solid color-mix(in srgb, var(--line-strong) 32%, transparent)}}.install-prompt{bottom:max(env(safe-area-inset-bottom,0px), 16px);box-shadow:0 12px 32px var(--line-strong);border-radius:16px}@supports (color:color-mix(in lab, red, red)){.install-prompt{box-shadow:0 12px 32px color-mix(in srgb, var(--line-strong) 22%, transparent)}}.install-prompt{color:var(--ink);z-index:60;flex-wrap:wrap;justify-content:space-between;gap:14px;width:calc(100vw - 24px);max-width:min(520px,100vw - 24px);padding:14px 18px;display:flex;position:fixed;left:50%;transform:translate(-50%)}.install-prompt__body{flex-direction:column;flex:220px;gap:4px;min-width:0;display:flex}.install-prompt__title{margin:0;font-size:.95rem;font-weight:600}.install-prompt__detail{color:var(--muted);margin:0;font-size:.82rem;line-height:1.4}.install-prompt__actions{flex-wrap:wrap;justify-content:flex-end;gap:8px;display:flex}.install-prompt__cta,.install-prompt__dismiss{border:1px solid var(--line-strong)}@supports (color:color-mix(in lab, red, red)){.install-prompt__cta,.install-prompt__dismiss{border:1px solid color-mix(in srgb, var(--line-strong) 24%, transparent)}}.install-prompt__cta,.install-prompt__dismiss{cursor:pointer;border-radius:10px;padding:8px 14px;font-size:.85rem;font-weight:600;transition:background .14s,color .14s,border-color .14s}.install-prompt__cta{background:var(--primary);border-color:var(--primary);color:var(--primary-ink)}.install-prompt__cta:hover{filter:brightness(1.05)}.install-prompt__dismiss{color:var(--muted);background:0 0}.install-prompt__dismiss:hover{background:var(--panel)}@supports (color:color-mix(in lab, red, red)){.install-prompt__dismiss:hover{background:color-mix(in srgb, var(--panel) 70%, transparent)}}.install-prompt__dismiss:hover{color:var(--ink)}.sudoku-cell.is-smart-origin:not(.is-conflict):not(.is-wrong){background:var(--primary)}@supports (color:color-mix(in lab, red, red)){.sudoku-cell.is-smart-origin:not(.is-conflict):not(.is-wrong){background:color-mix(in srgb, var(--primary) 8%, var(--board) 92%)}}.sudoku-cell.is-smart-anchor:not(.is-conflict):not(.is-wrong){background:var(--primary)}@supports (color:color-mix(in lab, red, red)){.sudoku-cell.is-smart-anchor:not(.is-conflict):not(.is-wrong){background:color-mix(in srgb, var(--primary) 16%, var(--board) 84%)}}.sudoku-cell.is-smart-target:not(.is-conflict):not(.is-wrong){background:var(--primary)}@supports (color:color-mix(in lab, red, red)){.sudoku-cell.is-smart-target:not(.is-conflict):not(.is-wrong){background:color-mix(in srgb, var(--primary) 26%, var(--board) 74%)}}.sudoku-cell.is-smart-target:not(.is-conflict):not(.is-wrong){box-shadow:inset 0 0 0 2px var(--primary)}@supports (color:color-mix(in lab, red, red)){.sudoku-cell.is-smart-target:not(.is-conflict):not(.is-wrong){box-shadow:inset 0 0 0 2px color-mix(in srgb, var(--primary) 70%, transparent)}}.sudoku-cell.is-smart-target:not(.is-conflict):not(.is-wrong){color:var(--primary)}.sudoku-cell.is-smart-elim:not(.is-conflict):not(.is-wrong){background:var(--alert)}@supports (color:color-mix(in lab, red, red)){.sudoku-cell.is-smart-elim:not(.is-conflict):not(.is-wrong){background:color-mix(in srgb, var(--alert) 14%, var(--board) 86%)}}.sudoku-cell.is-smart-elim:not(.is-conflict):not(.is-wrong){box-shadow:inset 0 0 0 1.5px var(--alert)}@supports (color:color-mix(in lab, red, red)){.sudoku-cell.is-smart-elim:not(.is-conflict):not(.is-wrong){box-shadow:inset 0 0 0 1.5px color-mix(in srgb, var(--alert) 45%, transparent)}}.smart-hint-card{background:var(--panel);align-items:flex-start}@supports (color:color-mix(in lab, red, red)){.smart-hint-card{background:color-mix(in srgb, var(--panel) 92%, transparent)}}.smart-hint-card{border:1px solid var(--primary)}@supports (color:color-mix(in lab, red, red)){.smart-hint-card{border:1px solid color-mix(in srgb, var(--primary) 32%, transparent)}}.smart-hint-card{box-shadow:0 6px 20px var(--line-strong);border-radius:14px}@supports (color:color-mix(in lab, red, red)){.smart-hint-card{box-shadow:0 6px 20px color-mix(in srgb, var(--line-strong) 16%, transparent)}}.smart-hint-card{color:var(--ink);justify-content:space-between;gap:14px;margin:12px 0 0;padding:12px 16px;display:flex}.smart-hint-card__body{flex-direction:column;flex:auto;gap:4px;min-width:0;display:flex}.smart-hint-card__meta{color:var(--primary)}@supports (color:color-mix(in lab, red, red)){.smart-hint-card__meta{color:color-mix(in srgb, var(--primary) 72%, var(--muted) 28%)}}.smart-hint-card__meta{letter-spacing:.06em;text-transform:uppercase;font-size:.68rem;font-weight:700;line-height:1.1}.smart-hint-card__title{color:var(--primary);margin:0;font-size:.95rem;font-weight:700}.smart-hint-card__detail{color:var(--muted);margin:0;font-size:.85rem;line-height:1.5}.smart-hint-card__actions{flex-shrink:0;align-items:center;gap:8px;display:flex}.smart-hint-card__apply,.smart-hint-card__dismiss{cursor:pointer;border-radius:10px;padding:6px 14px;font-size:.82rem;font-weight:600;transition:background .14s,color .14s,border-color .14s,filter .14s}.smart-hint-card__apply{background:var(--primary);border:1px solid var(--primary);color:var(--primary-ink)}.smart-hint-card__apply:hover{filter:brightness(1.05)}.smart-hint-card__dismiss{border:1px solid var(--line-strong);background:0 0}@supports (color:color-mix(in lab, red, red)){.smart-hint-card__dismiss{border:1px solid color-mix(in srgb, var(--line-strong) 28%, transparent)}}.smart-hint-card__dismiss{color:var(--muted)}.smart-hint-card__dismiss:hover{background:var(--panel)}@supports (color:color-mix(in lab, red, red)){.smart-hint-card__dismiss:hover{background:color-mix(in srgb, var(--panel) 70%, transparent)}}.smart-hint-card__dismiss:hover{color:var(--ink)}.validation-review-card{background:linear-gradient(135deg, var(--alert), var(--panel));align-items:flex-start}@supports (color:color-mix(in lab, red, red)){.validation-review-card{background:linear-gradient(135deg, color-mix(in srgb, var(--alert) 10%, transparent), color-mix(in srgb, var(--panel) 94%, transparent))}}.validation-review-card{border:1px solid var(--alert)}@supports (color:color-mix(in lab, red, red)){.validation-review-card{border:1px solid color-mix(in srgb, var(--alert) 38%, var(--surface-border) 62%)}}.validation-review-card{box-shadow:0 8px 22px var(--line-strong);border-radius:10px}@supports (color:color-mix(in lab, red, red)){.validation-review-card{box-shadow:0 8px 22px color-mix(in srgb, var(--line-strong) 14%, transparent)}}.validation-review-card{color:var(--ink);justify-content:space-between;gap:14px;margin:12px 0 0;padding:12px 16px;display:flex}.validation-review-card__body{flex-direction:column;flex:auto;gap:6px;min-width:0;display:flex}.validation-review-card__eyebrow{color:var(--alert)}@supports (color:color-mix(in lab, red, red)){.validation-review-card__eyebrow{color:color-mix(in srgb, var(--alert) 78%, var(--muted) 22%)}}.validation-review-card__eyebrow{letter-spacing:.06em;text-transform:uppercase;font-size:.68rem;font-weight:800;line-height:1.1}.validation-review-card__title{color:var(--alert)}@supports (color:color-mix(in lab, red, red)){.validation-review-card__title{color:color-mix(in srgb, var(--alert) 78%, var(--ink) 22%)}}.validation-review-card__title{margin:0;font-size:.95rem;font-weight:800}.validation-review-card__detail{color:var(--muted);margin:0;font-size:.84rem;line-height:1.45}.validation-review-card__chips{flex-wrap:wrap;gap:6px;display:flex}.validation-review-card__chip{border:1px solid var(--line-strong);align-items:center}@supports (color:color-mix(in lab, red, red)){.validation-review-card__chip{border:1px solid color-mix(in srgb, var(--line-strong) 26%, transparent)}}.validation-review-card__chip{color:var(--muted);border-radius:999px;min-height:22px;padding:0 9px;font-size:.72rem;font-weight:700;line-height:1;display:inline-flex}.validation-review-card__chip.is-wrong,.validation-review-card__chip.is-rule{background:var(--alert)}@supports (color:color-mix(in lab, red, red)){.validation-review-card__chip.is-wrong,.validation-review-card__chip.is-rule{background:color-mix(in srgb, var(--alert) 14%, transparent)}}.validation-review-card__chip.is-wrong,.validation-review-card__chip.is-rule{border-color:var(--alert)}@supports (color:color-mix(in lab, red, red)){.validation-review-card__chip.is-wrong,.validation-review-card__chip.is-rule{border-color:color-mix(in srgb, var(--alert) 42%, transparent)}}.validation-review-card__chip.is-wrong,.validation-review-card__chip.is-rule{color:var(--alert)}@supports (color:color-mix(in lab, red, red)){.validation-review-card__chip.is-wrong,.validation-review-card__chip.is-rule{color:color-mix(in srgb, var(--alert) 78%, var(--ink) 22%)}}.validation-review-card__chip.is-empty-cell{background:var(--hint)}@supports (color:color-mix(in lab, red, red)){.validation-review-card__chip.is-empty-cell{background:color-mix(in srgb, var(--hint) 22%, transparent)}}.validation-review-card__chip.is-empty-cell{border-color:var(--hint)}@supports (color:color-mix(in lab, red, red)){.validation-review-card__chip.is-empty-cell{border-color:color-mix(in srgb, var(--hint) 52%, transparent)}}.validation-review-card__chip.is-empty-cell{color:var(--hint)}@supports (color:color-mix(in lab, red, red)){.validation-review-card__chip.is-empty-cell{color:color-mix(in srgb, var(--hint) 76%, var(--ink) 24%)}}.validation-review-card small{color:var(--muted)}@supports (color:color-mix(in lab, red, red)){.validation-review-card small{color:color-mix(in srgb, var(--muted) 84%, transparent)}}.validation-review-card small{font-size:.72rem;line-height:1.35}.validation-review-card__focus{background:var(--alert)}@supports (color:color-mix(in lab, red, red)){.validation-review-card__focus{background:color-mix(in srgb, var(--alert) 76%, var(--ink) 24%)}}.validation-review-card__focus{border:1px solid var(--alert)}@supports (color:color-mix(in lab, red, red)){.validation-review-card__focus{border:1px solid color-mix(in srgb, var(--alert) 82%, black 18%)}}.validation-review-card__focus{color:var(--alert-ink);cursor:pointer;border-radius:8px;flex:none;min-height:34px;padding:7px 12px;font-size:.8rem;font-weight:800;transition:filter .14s,transform .14s}.validation-review-card__focus:hover{filter:brightness(1.04);transform:translateY(-1px)}@media (max-width:640px){.validation-review-card{flex-direction:column;gap:10px}.validation-review-card__focus{width:100%}}@media (max-width:880px){.game-stage.is-playing .smart-hint-card,.game-stage.is-playing .validation-review-card{border-radius:8px;align-items:stretch;gap:8px;margin-top:6px;padding:8px 10px}.game-stage.is-playing .validation-review-card{flex-direction:row;align-items:center}.game-stage.is-playing .smart-hint-card__body,.game-stage.is-playing .validation-review-card__body{gap:3px}.game-stage.is-playing .smart-hint-card__meta,.game-stage.is-playing .validation-review-card__eyebrow{letter-spacing:.04em;font-size:.58rem}.game-stage.is-playing .smart-hint-card__title,.game-stage.is-playing .validation-review-card__title{font-size:.78rem;line-height:1.15}.game-stage.is-playing .smart-hint-card__detail,.game-stage.is-playing .validation-review-card__detail,.game-stage.is-playing .validation-review-card small{font-size:.68rem;line-height:1.32}.game-stage.is-playing .smart-hint-card__actions{gap:5px}.game-stage.is-playing .smart-hint-card__apply,.game-stage.is-playing .smart-hint-card__dismiss,.game-stage.is-playing .validation-review-card__focus{border-radius:6px;width:auto;min-height:28px;padding:4px 8px;font-size:.68rem}.game-stage.is-playing .validation-review-card__chips{gap:4px}.game-stage.is-playing .validation-review-card__chip{min-height:18px;padding:0 6px;font-size:.62rem}:is(.game-stage.is-playing:has(.smart-hint-card) .play-header,.game-stage.is-playing:has(.validation-review-card) .play-header){grid-template-areas:"title change";margin-bottom:4px}:is(.game-stage.is-playing:has(.smart-hint-card) .metrics-row,.game-stage.is-playing:has(.validation-review-card) .metrics-row){display:none}:is(.game-stage.is-playing:has(.smart-hint-card) .board-stage,.game-stage.is-playing:has(.validation-review-card) .board-stage){width:min(100%,clamp(210px,100svh - 305px,520px));max-width:min(100%,clamp(210px,100svh - 305px,520px))}}@media (max-width:420px),(max-height:700px){.game-stage.is-playing .smart-hint-card__detail,.game-stage.is-playing .validation-review-card__detail,.game-stage.is-playing .validation-review-card small{display:none}.game-stage.is-playing .validation-review-card__chips{margin-top:1px}}.streak-calendar{flex-direction:column;gap:14px;display:flex}.streak-calendar__head h2{font-family:var(--display-font);letter-spacing:.01em;margin:0 0 4px;font-size:1rem;font-weight:600}.streak-calendar__head p{color:var(--muted);margin:0;font-size:.82rem;line-height:1.5}.streak-calendar__grid{grid-auto-rows:minmax(0,1fr);gap:4px;display:grid}.streak-cell{aspect-ratio:1;background:var(--panel)}@supports (color:color-mix(in lab, red, red)){.streak-cell{background:color-mix(in srgb, var(--panel) 50%, transparent)}}.streak-cell{border:1px solid var(--surface-border)}@supports (color:color-mix(in lab, red, red)){.streak-cell{border:1px solid color-mix(in srgb, var(--surface-border) 60%, transparent)}}.streak-cell{border-radius:4px;min-height:14px;display:inline-block}.streak-cell.is-future{background:0 0;border-color:#0000}.streak-cell.is-empty{background:var(--panel)}@supports (color:color-mix(in lab, red, red)){.streak-cell.is-empty{background:color-mix(in srgb, var(--panel) 60%, white 5%)}}.streak-cell.is-empty{border-color:var(--surface-border)}@supports (color:color-mix(in lab, red, red)){.streak-cell.is-empty{border-color:color-mix(in srgb, var(--surface-border) 40%, transparent)}}.streak-cell.is-completed{background:var(--primary)}@supports (color:color-mix(in lab, red, red)){.streak-cell.is-completed{background:color-mix(in srgb, var(--primary) 70%, var(--panel) 30%)}}.streak-cell.is-completed{border-color:var(--primary)}@supports (color:color-mix(in lab, red, red)){.streak-cell.is-completed{border-color:color-mix(in srgb, var(--primary) 60%, var(--surface-border) 40%)}}.streak-cell.is-completed.is-today,.streak-cell.is-today{border-color:var(--primary)}@supports (color:color-mix(in lab, red, red)){.streak-cell.is-completed.is-today,.streak-cell.is-today{border-color:color-mix(in srgb, var(--primary) 90%, black 10%)}}.streak-cell.is-completed.is-today,.streak-cell.is-today{box-shadow:0 0 0 1px var(--primary)}@supports (color:color-mix(in lab, red, red)){.streak-cell.is-completed.is-today,.streak-cell.is-today{box-shadow:0 0 0 1px color-mix(in srgb, var(--primary) 50%, transparent)}}.streak-calendar__legend{flex-wrap:wrap;align-items:center;gap:14px;margin:0;padding:0;font-size:.78rem;list-style:none;display:flex}.streak-calendar__legend li{color:var(--muted);align-items:center;gap:6px;display:inline-flex}.streak-calendar__legend .streak-cell{width:12px;height:12px;min-height:12px}.tutorial-card{gap:18px}.tutorial-progress{color:var(--muted);letter-spacing:.04em;text-transform:uppercase;margin:6px 0 0;font-size:.85rem}.tutorial-step h2{font-family:var(--display-font);margin:0 0 6px;font-size:1.1rem}.tutorial-step p{color:var(--muted);margin:0;font-size:.9rem;line-height:1.55}.tutorial-unit{color:var(--primary)}@supports (color:color-mix(in lab, red, red)){.tutorial-unit{color:color-mix(in srgb, var(--primary) 70%, var(--muted) 30%)}}.tutorial-unit{letter-spacing:.06em;text-transform:uppercase;margin-top:8px;font-size:.8rem;font-weight:600}.tutorial-board{aspect-ratio:1;width:100%;max-width:360px;margin:4px auto 0}.tutorial-board .sudoku-cell{background:var(--panel);align-items:center}@supports (color:color-mix(in lab, red, red)){.tutorial-board .sudoku-cell{background:color-mix(in srgb, var(--panel) 92%, white 8%)}}.tutorial-board .sudoku-cell{border:1px solid var(--surface-border);cursor:default;justify-content:center;font-size:1.4rem;font-weight:600;display:flex}.tutorial-board .sudoku-cell.is-given{color:var(--ink)}.tutorial-board .sudoku-cell.is-input{color:var(--primary)}.tutorial-board .sudoku-cell.is-tutorial-unit{background:var(--primary)}@supports (color:color-mix(in lab, red, red)){.tutorial-board .sudoku-cell.is-tutorial-unit{background:color-mix(in srgb, var(--primary) 8%, var(--panel) 92%)}}.tutorial-board .sudoku-cell.is-tutorial-anchor{background:var(--primary)}@supports (color:color-mix(in lab, red, red)){.tutorial-board .sudoku-cell.is-tutorial-anchor{background:color-mix(in srgb, var(--primary) 18%, var(--panel) 82%)}}.tutorial-board .sudoku-cell.is-tutorial-anchor{border-color:var(--primary)}@supports (color:color-mix(in lab, red, red)){.tutorial-board .sudoku-cell.is-tutorial-anchor{border-color:color-mix(in srgb, var(--primary) 40%, var(--surface-border) 60%)}}.tutorial-board .sudoku-cell.is-tutorial-target{background:var(--primary)}@supports (color:color-mix(in lab, red, red)){.tutorial-board .sudoku-cell.is-tutorial-target{background:color-mix(in srgb, var(--primary) 40%, var(--panel) 60%)}}.tutorial-board .sudoku-cell.is-tutorial-target{border-color:var(--primary);box-shadow:0 0 0 2px var(--primary)}@supports (color:color-mix(in lab, red, red)){.tutorial-board .sudoku-cell.is-tutorial-target{box-shadow:0 0 0 2px color-mix(in srgb, var(--primary) 70%, transparent)}}.tutorial-board .sudoku-cell.is-tutorial-target{cursor:pointer}.tutorial-board .sudoku-cell.is-tutorial-target:disabled{cursor:default}.tutorial-numberpad{justify-content:center;gap:8px;display:flex}.tutorial-numberpad .number-key{background:var(--panel)}@supports (color:color-mix(in lab, red, red)){.tutorial-numberpad .number-key{background:color-mix(in srgb, var(--panel) 80%, white 20%)}}.tutorial-numberpad .number-key{border:1px solid var(--surface-border);cursor:pointer;border-radius:8px;min-width:44px;min-height:44px;padding:8px 14px;font-size:1.1rem;font-weight:600;transition:background .14s,transform 80ms}.tutorial-numberpad .number-key:hover:not(:disabled){background:var(--primary)}@supports (color:color-mix(in lab, red, red)){.tutorial-numberpad .number-key:hover:not(:disabled){background:color-mix(in srgb, var(--primary) 16%, var(--panel) 84%)}}.tutorial-numberpad .number-key:disabled{cursor:default;opacity:.45}.tutorial-feedback{text-align:center;border-radius:8px;min-height:1.4em;margin:0;padding:8px 12px;font-size:.88rem}.tutorial-feedback.is-neutral{color:var(--muted);background:0 0}.tutorial-feedback.is-success{background:var(--primary)}@supports (color:color-mix(in lab, red, red)){.tutorial-feedback.is-success{background:color-mix(in srgb, var(--primary) 16%, transparent)}}.tutorial-feedback.is-success{color:var(--primary)}.tutorial-feedback.is-warning{color:#b3261e;background:#b3261e29}.tutorial-actions{justify-content:flex-end;gap:10px;display:flex}.tutorial-finish .tutorial-actions{margin-top:12px}@media (max-width:640px){.dashboard-stage{height:100svh;min-height:100svh}.dashboard-shell{padding:2px 0 max(18px, env(safe-area-inset-bottom,0px))}.dashboard-card{border-radius:8px;gap:14px;padding:18px 16px}.dashboard-card__head h1{font-size:1.24rem}.dashboard-card__head p{font-size:.82rem}.dashboard-filters,.dashboard-nickname{flex-direction:column;align-items:stretch}.dashboard-filters label,.dashboard-nickname label,.dashboard-filters button,.dashboard-nickname button{width:100%}.dashboard-filters select,.dashboard-filters input,.dashboard-nickname input{width:100%;min-width:0}.leaderboard-tabs{margin-bottom:0}.leaderboard-tab{flex:1 1 0}.dashboard-table,.dashboard-table thead,.dashboard-table tbody,.dashboard-table tr,.dashboard-table th,.dashboard-table td{display:block}.dashboard-table thead{position:absolute;transform:translateY(-200vh)}.dashboard-table tbody{gap:10px;display:grid}.dashboard-table tr{background:var(--panel)}@supports (color:color-mix(in lab, red, red)){.dashboard-table tr{background:color-mix(in srgb, var(--panel) 78%, white 22%)}}.dashboard-table tr{border:1px solid var(--surface-border);border-radius:8px;padding:8px 10px}.dashboard-table td{border-bottom:1px solid var(--surface-border);align-items:baseline}@supports (color:color-mix(in lab, red, red)){.dashboard-table td{border-bottom:1px solid color-mix(in srgb, var(--surface-border) 72%, transparent)}}.dashboard-table td{overflow-wrap:anywhere;text-align:right;justify-content:space-between;gap:14px;min-width:0;padding:7px 0;display:flex}.dashboard-table td:last-child{border-bottom:0}.dashboard-table td:before{color:var(--muted);content:attr(data-label);letter-spacing:.06em;text-align:left;text-transform:uppercase;flex:none;max-width:44%;font-size:.68rem;font-weight:700}.guide-grid,.guide-scoring-grid,.privacy-grid,.dashboard-grid,.dashboard-metrics{grid-template-columns:1fr}.guide-formula{font-size:.8rem}.guide-actions,.tutorial-actions{flex-direction:column}.guide-cta,.tutorial-actions .start-button,.tutorial-actions .tool-button{width:100%}.tutorial-board{max-width:min(100%,300px)}.tutorial-board .sudoku-cell{font-size:1.2rem}.consent-banner,.consent-dialog__actions,.consent-dialog__button-row{flex-direction:column;align-items:stretch}.consent-button,.consent-settings-button{width:100%}.consent-settings-button{left:max(10px, env(safe-area-inset-left));width:auto;max-width:180px}}.weekly-missions{flex-direction:column;gap:14px;display:flex}.weekly-missions__head h2{font-family:var(--display-font);margin:0 0 4px;font-size:1rem;font-weight:600}.weekly-missions__head p{color:var(--muted);margin:0;font-size:.82rem;line-height:1.5}.weekly-missions__range{color:var(--primary)}@supports (color:color-mix(in lab, red, red)){.weekly-missions__range{color:color-mix(in srgb, var(--primary) 70%, var(--muted) 30%)}}.weekly-missions__range{letter-spacing:.06em;text-transform:uppercase;font-size:.78rem;font-weight:600;margin-top:4px!important}.weekly-missions__empty{color:var(--muted);margin:0;font-size:.88rem}.weekly-missions__list{gap:12px;margin:0;padding:0;list-style:none;display:grid}.weekly-mission{background:var(--panel)}@supports (color:color-mix(in lab, red, red)){.weekly-mission{background:color-mix(in srgb, var(--panel) 80%, white 20%)}}.weekly-mission{border:1px solid var(--surface-border);border-radius:10px;flex-direction:column;gap:6px;padding:12px 14px;transition:border-color .14s,background .14s;display:flex}.weekly-mission.is-completed{background:var(--primary)}@supports (color:color-mix(in lab, red, red)){.weekly-mission.is-completed{background:color-mix(in srgb, var(--primary) 14%, var(--panel) 86%)}}.weekly-mission.is-completed{border-color:var(--primary)}@supports (color:color-mix(in lab, red, red)){.weekly-mission.is-completed{border-color:color-mix(in srgb, var(--primary) 40%, var(--surface-border) 60%)}}.weekly-mission__head{justify-content:space-between;align-items:center;gap:10px;display:flex}.weekly-mission__head h3{margin:0;font-size:.95rem;font-weight:700}.weekly-mission__badge{background:var(--primary);color:var(--primary-ink);letter-spacing:.06em;text-transform:uppercase;border-radius:999px;padding:3px 9px;font-size:.7rem;font-weight:800}.weekly-mission__body{color:var(--muted);margin:0;font-size:.86rem;line-height:1.45}.weekly-mission__bar{background:var(--panel)}@supports (color:color-mix(in lab, red, red)){.weekly-mission__bar{background:color-mix(in srgb, var(--panel) 60%, white 5%)}}.weekly-mission__bar{border-radius:999px;height:8px;overflow:hidden}.weekly-mission__bar-fill{background:var(--primary)}@supports (color:color-mix(in lab, red, red)){.weekly-mission__bar-fill{background:color-mix(in srgb, var(--primary) 80%, var(--panel) 20%)}}.weekly-mission__bar-fill{min-width:0;height:100%;transition:width .22s;display:block}.weekly-mission.is-completed .weekly-mission__bar-fill{background:var(--primary)}.weekly-mission__progress{color:var(--muted);font-family:var(--numeric-font);text-align:right;margin:0;font-size:.82rem}.notice-banner{background:var(--accent,#d8c89a);align-items:center}@supports (color:color-mix(in lab, red, red)){.notice-banner{background:color-mix(in srgb, var(--accent,#d8c89a) 70%, white 30%)}}.notice-banner{border-bottom:1px solid var(--surface-border);color:var(--ink);flex-wrap:wrap;gap:10px;padding:8px 14px;font-size:.85rem;display:flex}.notice-banner__label{background:var(--ink);color:var(--panel);letter-spacing:.05em;text-transform:uppercase;border-radius:999px;padding:2px 8px;font-size:.7rem;font-weight:600}.notice-banner__title{color:var(--ink);text-overflow:ellipsis;white-space:nowrap;flex:auto;min-width:0;text-decoration:none;overflow:hidden}.notice-banner__title:hover{text-decoration:underline}.notice-banner__more{color:var(--primary,var(--ink));flex:none;font-size:.78rem;font-weight:600;text-decoration:none}.notice-banner__more:hover{text-decoration:underline}.notice-banner__dismiss{color:var(--muted);cursor:pointer;background:0 0;border:none;flex:none;padding:2px 6px;font-size:.95rem}.notice-banner__dismiss:hover{color:var(--ink)}.notice-list{flex-direction:column;gap:12px;margin:0;padding:0;list-style:none;display:flex}.notice-list__item{border:1px solid var(--surface-border);border-radius:6px;transition:border-color .15s}.notice-list__item:hover{border-color:var(--primary,var(--ink))}.notice-list__item a{color:inherit;padding:14px 16px;text-decoration:none;display:block}.notice-list__meta{color:var(--muted);flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:6px;font-size:.78rem;display:flex}.notice-list__title{font-family:var(--display-font);margin:0;font-size:1.05rem;font-weight:600}.notice-badge{background:var(--panel)}@supports (color:color-mix(in lab, red, red)){.notice-badge{background:color-mix(in srgb, var(--panel) 70%, white 30%)}}.notice-badge{letter-spacing:.03em;border-radius:999px;padding:2px 8px;font-size:.72rem;font-weight:600}.notice-badge--pinned{background:var(--ink);color:var(--panel)}.notice-badge--maintenance{background:#f7d9ae}.notice-badge--event{background:#cde2d4}.notice-badge--update{background:#d6e0f0}.notice-back-link{color:var(--muted);font-size:.85rem;text-decoration:none}.notice-back-link:hover{color:var(--ink);text-decoration:underline}.notice-detail__meta{color:var(--muted);flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:10px;font-size:.8rem;display:flex}.notice-detail__body{color:var(--ink);font-size:.95rem;line-height:1.65}.notice-detail__body p{margin:0 0 10px}.contact-card{max-width:720px}.contact-form{flex-direction:column;gap:16px;display:flex}.contact-row{flex-wrap:wrap;gap:14px;display:flex}.contact-field{flex-direction:column;flex:100%;gap:6px;min-width:0;display:flex}.contact-field--select{flex:0 0 200px}.contact-field--grow{flex:220px}.contact-field>span{color:var(--ink);letter-spacing:.02em;justify-content:space-between;align-items:baseline;gap:8px;font-size:.8rem;font-weight:600;display:flex}.contact-field__counter{color:var(--muted);font-size:.72rem;font-weight:500}.contact-field input,.contact-field select,.contact-field textarea{background:var(--panel)}@supports (color:color-mix(in lab, red, red)){.contact-field input,.contact-field select,.contact-field textarea{background:color-mix(in srgb, var(--panel) 88%, white 12%)}}.contact-field input,.contact-field select,.contact-field textarea{border:1px solid var(--surface-border);color:var(--ink);font:inherit;border-radius:6px;padding:10px 12px;transition:border-color .15s,box-shadow .15s}.contact-field input:focus,.contact-field select:focus,.contact-field textarea:focus{border-color:var(--primary,var(--ink));box-shadow:0 0 0 3px var(--primary,var(--ink))}@supports (color:color-mix(in lab, red, red)){.contact-field input:focus,.contact-field select:focus,.contact-field textarea:focus{box-shadow:0 0 0 3px color-mix(in srgb, var(--primary,var(--ink)) 15%, transparent)}}.contact-field input:focus,.contact-field select:focus,.contact-field textarea:focus{outline:none}.contact-field input:disabled,.contact-field select:disabled,.contact-field textarea:disabled{background:var(--panel)}@supports (color:color-mix(in lab, red, red)){.contact-field input:disabled,.contact-field select:disabled,.contact-field textarea:disabled{background:color-mix(in srgb, var(--panel) 95%, transparent 5%)}}.contact-field input:disabled,.contact-field select:disabled,.contact-field textarea:disabled{color:var(--muted);cursor:not-allowed}.contact-field textarea{resize:vertical;min-height:140px;font-family:inherit;line-height:1.55}.contact-field__hint{color:var(--muted);font-size:.74rem;line-height:1.5}.contact-error{background:#e8b4a9}@supports (color:color-mix(in lab, red, red)){.contact-error{background:color-mix(in srgb, #e8b4a9 32%, var(--panel) 68%)}}.contact-error{color:var(--ink);border-radius:6px;margin:0;padding:10px 14px;font-size:.85rem;line-height:1.5}.contact-actions{border-top:1px solid var(--surface-border);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-top:4px;padding-top:14px;display:flex}.contact-submit{min-width:140px}.contact-privacy-hint{color:var(--muted);flex:240px;margin:0;font-size:.76rem;line-height:1.5}.contact-privacy-hint a{color:var(--primary,var(--ink));text-decoration:underline}.contact-success{flex-direction:column;gap:12px;display:flex}.contact-success h2{font-family:var(--display-font);margin:0;font-size:1.15rem}@media (max-width:540px){.contact-row{flex-direction:column}.contact-field--select,.contact-field--grow{flex:100%}.contact-actions{flex-direction:column-reverse;align-items:stretch}.contact-submit{width:100%}}
