:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--paper:#f7f7f6;--paper-grid:#12121209;--panel:#fff;--ink:#202020;--muted:#686868;--line:#d9d9d6;--coral:#f36645;--coral-text:#d64a2a;--teal:#3d9d98;--blue:#466aa8;--yellow:#ddcea0;--focus:#f1f1ee;--shadow:0 18px 44px #1818181a;--font:"Zen Kaku Gothic New", "BIZ UDPGothic", "Yu Gothic UI", "Hiragino Kaku Gothic ProN", Meiryo, sans-serif}*{box-sizing:border-box}html{background:var(--paper);min-width:320px}body{color:var(--ink);font-family:var(--font);background:linear-gradient(90deg, var(--paper-grid) 1px, transparent 1px), linear-gradient(var(--paper-grid) 1px, transparent 1px), radial-gradient(circle at top right, #20202006, transparent 34vw), var(--paper);-webkit-tap-highlight-color:transparent;background-size:32px 32px,32px 32px,auto,auto;margin:0;line-height:1.6}button,input{font:inherit}button{color:inherit}button:focus-visible,input:focus-visible{outline-offset:3px;outline:3px solid #f3664557}.topbar{z-index:20;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);background:#f7f7f6eb;border-bottom:1px solid #2020201a;justify-content:space-between;align-items:center;gap:16px;min-height:72px;padding:12px clamp(16px,4vw,46px);display:flex;position:sticky;top:0}.topbar.compact{min-height:62px;padding-block:8px}.brand{cursor:pointer;background:0 0;border:0;align-items:center;gap:12px;min-width:0;padding:0;display:inline-flex}.brand-mark{flex:none;grid-template-rows:repeat(3,17px);grid-template-columns:repeat(2,17px);gap:3px;display:grid;box-shadow:3px 3px #20202024}.mark-cell{border:1.5px solid var(--ink);background:#fff;border-radius:3px;place-items:center;width:17px;height:17px;font-size:10px;font-weight:700;line-height:1;display:grid}.mark-cell.empty{border-style:solid;border-color:var(--ink);background:#fff}.mark-cell.cross{border-color:var(--coral);background:var(--coral);color:#fff}.brand-name{white-space:nowrap;font-size:clamp(20px,3vw,25px);font-weight:700}.brand-name.compact{font-size:20px}.topbar.compact .brand-mark{grid-template-rows:repeat(3,15px);grid-template-columns:repeat(2,15px);gap:2px;box-shadow:2px 2px #20202024}.topbar.compact .mark-cell{border-radius:3px;width:15px;height:15px;font-size:9px}.topbar-actions{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:10px;min-width:0;display:flex}.ghost-button,.icon-button,.primary-button,.text-button,.chip,.mode-tile,.open-clue-button,.tool-button,.answer-side-button,.header-cell{cursor:pointer}.ghost-button,.icon-button{border:1px solid var(--line);white-space:nowrap;background:#fff;border-radius:8px;flex-shrink:0;justify-content:center;align-items:center;gap:8px;min-height:42px;font-weight:700;display:inline-flex}.ghost-button{padding:0 14px}.icon-button{width:42px}.primary-button{border:2px solid var(--ink);background:var(--ink);color:#fff;min-height:52px;box-shadow:5px 5px 0 var(--coral);justify-content:center;align-items:center;gap:9px;padding:0 22px;font-weight:700;transition:transform .14s,box-shadow .14s;display:inline-flex}.primary-button:hover{box-shadow:7px 7px 0 var(--coral);transform:translate(-2px,-2px)}.primary-button:disabled{cursor:not-allowed;transform:none}.primary-button:disabled:hover{transform:none;box-shadow:5px 5px #2020201a}.primary-button.large{min-height:58px;padding-inline:30px;font-size:18px}.primary-button.wide{width:100%}.center-row{justify-content:center;display:flex}.home-shell,.tutorial-shell{width:min(1160px,100% - 32px);margin:0 auto;padding:28px 0 64px}.app-page{flex-direction:column;min-height:100dvh;display:flex}.app-content{flex:1}.site-footer{width:min(1160px,100% - 32px);color:var(--muted);letter-spacing:.02em;text-align:center;margin:0 auto;padding:0 0 28px;font-size:12px}.tutorial-shell{flex-direction:column;justify-content:center;min-height:calc(100vh - 72px);display:flex}.home-hero{grid-template-columns:minmax(0,1fr) 230px;align-items:stretch;gap:22px;margin-bottom:32px;display:grid}.home-hero.first-run{grid-template-columns:minmax(0,1fr);align-items:center;min-height:min(520px,100vh - 168px)}.today-card,.tutorial-hero,.play-panel,.message-card{border:2px solid var(--ink);background:var(--panel);box-shadow:var(--shadow)}.today-card{flex-direction:column;justify-content:center;gap:14px;padding:clamp(22px,4vw,42px);display:flex}.badge,.mode-pill{border:1px solid var(--line);min-height:28px;color:var(--muted);background:#fff;border-radius:999px;align-items:center;gap:6px;padding:4px 10px;font-size:12px;font-weight:700;display:inline-flex}.golf-pill svg{color:var(--teal)}.today-card h1,.tutorial-copy h1{letter-spacing:0;margin:0;font-size:clamp(32px,5vw,54px);font-weight:700;line-height:1.08}.today-card p,.tutorial-copy p,.message-card p{max-width:58ch;color:var(--muted);margin:0;font-weight:700}.hero-subtitle{max-width:100%;color:var(--ink);flex-wrap:wrap;align-items:center;gap:10px;margin:0;font-size:18px;font-weight:700;line-height:1.3;display:flex}.hero-date{color:var(--muted);align-items:center;gap:5px;font-size:13px;font-weight:700;display:inline-flex}.hero-copy{max-width:35rem;font-size:16px;line-height:1.7}.hero-actions{flex-wrap:wrap;gap:12px;margin-top:6px;display:flex}.stats-column{gap:16px;display:grid}.stat-box{border:2px solid var(--ink);background:#fff;flex-direction:column;justify-content:center;gap:6px;min-height:148px;padding:18px;display:flex;box-shadow:3px 3px #20202014}.stat-label{color:var(--muted);align-items:center;gap:7px;font-size:13px;font-weight:700;display:flex}.stat-label svg{color:var(--coral-text)}.stat-box.accent .stat-label svg{color:var(--teal)}.stat-value{font-size:28px;font-weight:700;line-height:1}.stat-value small{color:var(--muted);font-size:15px;font-weight:700}.stat-note{color:var(--muted);font-size:13px;font-weight:700}button.stat-box{text-align:left;cursor:pointer;align-items:flex-start;transition:transform .14s,box-shadow .14s}button.stat-box:hover{transform:translate(-1px,-1px);box-shadow:5px 5px #2020201f}.section-heading,.library-head{justify-content:space-between;align-items:end;gap:18px;margin-bottom:15px;display:flex}.section-heading h2,.library-head h2{margin:0;font-size:clamp(23px,4vw,34px);font-weight:700;line-height:1.1}.section-heading span,.library-head p{color:var(--muted);margin:6px 0 0;font-size:13px;font-weight:700}.recommend-section,.mode-section,.achievement-section{margin-bottom:34px}.unlock-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;display:grid}.unlock-tile{min-height:124px;color:var(--muted);background:#ffffffd1;border:2px solid #20202024;gap:6px;padding:15px;display:grid}.unlock-tile.unlocked{border-color:var(--ink);color:var(--ink);background:#fff;box-shadow:3px 3px #20202014}.unlock-tile h3{margin:0;font-size:18px;font-weight:700;line-height:1.2}.unlock-tile p{color:var(--muted);margin:0;font-size:13px;font-weight:700;line-height:1.45}.unlock-tile b{align-self:end;font-size:13px;font-weight:700}.unlock-dots{flex-wrap:wrap;gap:5px;display:flex}.unlock-dots i{background:#fff;border:1px solid #2020202e;border-radius:50%;width:9px;height:9px}.unlock-dots i.filled{border-color:var(--coral-text);background:var(--coral)}.achievement-grid{grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:10px;display:grid}.achievement-card{border:2px solid var(--ink);min-height:76px;color:var(--ink);background:#fff;align-items:center;gap:10px;padding:13px;display:flex;box-shadow:3px 3px #20202014}.achievement-card svg{color:var(--coral-text);flex:none}.achievement-card.tone-frost svg{color:var(--teal)}.achievement-card.tone-blizzard svg{color:var(--blue)}.achievement-card.final{background:#fffaf0;border-color:#b8952e;box-shadow:3px 3px #b8952e59}.achievement-card.final svg{color:#b8952e}.achievement-card h3,.achievement-card p{margin:0}.achievement-card h3{font-size:14px;line-height:1.35}.achievement-card p{margin-top:2px;font-size:12px;font-weight:700}.difficulty-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:4px 0 24px;display:grid}.chip:disabled,.mode-tile:disabled{cursor:not-allowed;opacity:.48}.golf-note{color:var(--muted);margin:0 0 12px;font-size:13px;font-weight:700}.mode-tile{border:2px solid var(--ink);text-align:left;background:#fff;gap:5px;min-height:102px;padding:13px;transition:transform .14s,box-shadow .14s;display:grid;box-shadow:3px 3px #20202014}.mode-tile:hover,.mode-tile.active{box-shadow:4px 4px 0 var(--ink);transform:translateY(-2px)}.mode-tile span{font-weight:700}.mode-tile small{color:var(--muted);font-size:12px;font-weight:700;line-height:1.45}.mode-tile b{align-self:end;font-size:18px}.tone-vanilla{--tone:var(--yellow)}.tone-frost{--tone:var(--teal)}.tone-blizzard{--tone:var(--blue)}.mode-tile.tone-vanilla,.mode-pill.tone-vanilla,.badge.tone-vanilla,.unlock-tile.tone-vanilla{color:#4f473d;background:#faf7ee}.mode-tile.tone-frost,.mode-pill.tone-frost,.badge.tone-frost,.unlock-tile.tone-frost{color:#1f6762;background:#e4f3f1}.mode-tile.tone-blizzard,.mode-pill.tone-blizzard,.badge.tone-blizzard,.unlock-tile.tone-blizzard{color:#2d4f85;background:#e7eef9}.mode-tile.active{border-color:var(--ink);outline:3px solid var(--tone)}.chip-row{flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:16px;display:flex}.chip-row+.shelves{margin-top:12px}.chip-row-label{min-width:76px;color:var(--muted);font-size:14px;font-weight:700}.chip{border:1px solid var(--line);min-height:38px;color:var(--muted);background:#fff;border-radius:999px;padding:0 13px;font-weight:700}.chip.active{border-color:var(--ink);background:var(--ink);color:#fff}.shelves{gap:28px;display:grid}.shelf h3{align-items:center;gap:10px;margin:0 0 12px;font-size:20px;font-weight:700;display:flex}.shelf h3 span{border:2px solid var(--ink);background:#f3f3f0;place-items:center;min-width:54px;height:29px;font-size:13px;display:grid}.puzzle-card-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:13px;display:grid}.puzzle-card{background:linear-gradient(#fff 0%,#f9f9f7 100%);border:2px solid #2020201a;grid-template-columns:100px minmax(0,1fr);gap:13px;min-height:126px;padding:13px;transition:transform .14s,border-color .14s,box-shadow .14s;display:grid;box-shadow:0 1px #2020200a}.puzzle-card:hover{border-color:var(--ink);transform:translateY(-2px);box-shadow:0 12px 28px #1818181c}.puzzle-card.disabled{opacity:.66}.mini-board-frame{border:2px solid var(--ink);background:linear-gradient(135deg,#f2f2f0,#e9e9e7);border-radius:4px;align-self:start;place-items:center;width:100px;height:100px;display:grid;overflow:hidden}.mini-board{--avail-w:84px;--avail-h:84px;width:min(var(--avail-w), var(--avail-h) * var(--ar));height:min(var(--avail-h), var(--avail-w) / var(--ar));background:var(--ink);border-radius:3px;gap:2px;padding:4px;display:grid}.mini-board span{background:#fff;border:1px solid #20202029;min-width:0;min-height:0;box-shadow:inset 0 -1px #20202012}.mini-board span.done{background:var(--teal);border-color:var(--teal)}.puzzle-card-body{flex-direction:column;min-width:0;display:flex}.puzzle-card-meta{color:var(--muted);flex-wrap:wrap;align-items:center;gap:6px;font-size:12px;font-weight:700;display:flex}.puzzle-card h4{overflow-wrap:anywhere;margin:7px 0 5px;font-size:15px;font-weight:700;line-height:1.35}.status{color:var(--muted);margin:0;font-size:12px;font-weight:700}.status.cleared{color:#0d786c}.status.pending{align-items:center;gap:5px;display:flex}.card-foot{justify-content:space-between;align-items:center;gap:10px;margin-top:8px;display:flex}.status-block{flex-direction:column;gap:2px;min-width:0;display:flex}.status-best{color:var(--muted);white-space:nowrap;font-size:11px;font-weight:700}.text-button{border:1px solid var(--line);background:#fff;border-radius:7px;justify-self:start;align-items:center;gap:5px;min-height:30px;padding:0 9px;font-size:12px;font-weight:700;display:inline-flex}.text-button:disabled{cursor:not-allowed}.play-button{border:2px solid var(--ink);background:var(--ink);color:#fff;min-height:34px;box-shadow:3px 3px 0 var(--coral);cursor:pointer;flex-shrink:0;justify-self:start;align-items:center;gap:6px;padding:0 16px;font-size:13px;font-weight:700;transition:transform .14s,box-shadow .14s;display:inline-flex}.play-button:hover{box-shadow:4px 4px 0 var(--coral);transform:translate(-1px,-1px)}.play-button:disabled{cursor:not-allowed;border-color:var(--line);color:var(--muted);box-shadow:none;background:#ececea;transform:none}.play-button.cleared{color:var(--ink);background:#fff;box-shadow:3px 3px #2020204d}.play-button.cleared:hover{background:var(--focus);box-shadow:4px 4px #2020204d}.mode-pill.pill-link{border:1px solid var(--line);cursor:pointer;padding:4px 10px;transition:border-color .14s,box-shadow .14s}.mode-pill.pill-link:hover{border-color:var(--ink);box-shadow:2px 2px #20202024}.empty-note{color:var(--muted);flex-wrap:wrap;align-items:baseline;gap:10px;font-weight:700;display:flex}.empty-note p{margin:0}.tutorial-hero{grid-template-columns:minmax(0,1fr) minmax(280px,.58fr);align-items:stretch;margin-bottom:22px;display:grid}.tutorial-copy{border-right:1px solid var(--line);flex-direction:column;justify-content:center;gap:18px;padding:clamp(24px,4vw,44px);display:flex}.demo-stage{--demo-duration:14s;align-self:stretch;place-items:center;min-height:310px;padding:96px 24px 28px;display:grid;position:relative}.demo-board-wrap{aspect-ratio:2/3;width:150px;position:relative}.demo-board{aspect-ratio:2/3;border:2px solid var(--ink);background:var(--ink);grid-template-columns:repeat(2,1fr);gap:3px;width:100%;height:100%;padding:7px;display:grid;box-shadow:7px 7px #f366451f}.demo-cell{min-width:0;min-height:0;animation:demo-cell-tone var(--demo-duration) infinite;background:#fff;place-items:center;font-size:25px;font-weight:700;line-height:1;transition:background .2s;display:grid;position:relative}.demo-cell:after{content:attr(data-letter);opacity:0;animation:demo-letter var(--demo-duration) infinite;transform:scale(.84)}.demo-cell.c2:after,.demo-cell.c3:after{animation-name:demo-letter-shiro}.demo-cell.c1:after,.demo-cell.c5:after{animation-name:demo-letter-cross}.demo-cell.c0:after{animation-name:demo-letter-saku}.demo-cell.c4:after{animation-name:demo-letter-misu}.demo-cell.c2,.demo-cell.c3{animation-name:demo-tone-shiro}.demo-cell.c1,.demo-cell.c5{animation-name:demo-tone-cross}.demo-cell.c0,.demo-cell.c1{animation-name:demo-tone-saku}.demo-cell.c4,.demo-cell.c5{animation-name:demo-tone-misu}.demo-pointer{border:2px solid var(--ink);background:var(--coral);width:18px;height:18px;animation:demo-pointer var(--demo-duration) infinite;border-radius:50%;position:absolute;box-shadow:0 0 0 4px #f3664529}.demo-clue{border:2px solid var(--ink);background:#fff;gap:4px;width:min(250px,100% - 36px);min-width:0;padding:12px 14px;font-weight:700;display:grid;position:absolute;top:28px;left:50%;transform:translate(-50%);box-shadow:4px 4px #2020201f}.demo-clue:before{content:"";border-right:2px solid var(--ink);border-bottom:2px solid var(--ink);background:#fff;width:16px;height:16px;position:absolute;bottom:-10px;left:50%;transform:translate(-50%)rotate(45deg)}.demo-clue b{color:var(--coral-text);font-size:12px;line-height:1}.clue-step{opacity:0;animation:demo-clue var(--demo-duration) infinite;grid-area:2/1;font-size:14px;line-height:1.35}.clue-cross{animation-name:demo-clue-cross}.clue-saku{animation-name:demo-clue-saku}.clue-misu{animation-name:demo-clue-misu}.clue-sashimi{animation-name:demo-clue-sashimi}.tutorial-flow{grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin-bottom:24px;display:grid}.guide-step{border:2px solid var(--ink);background:#fff;align-items:center;gap:12px;min-height:82px;padding:18px;display:flex;position:relative;box-shadow:3px 3px #20202014}.step-number{border:2px solid var(--ink);background:var(--coral);color:#fff;border-radius:50%;place-items:center;width:34px;height:34px;font-size:15px;font-weight:700;display:grid;position:static}.step-icon{color:var(--teal)}.guide-step h2{margin:0;font-size:clamp(17px,2vw,20px);font-weight:700}.tutorial-start{border-color:var(--ink);background:var(--coral);color:#fff;box-shadow:5px 5px 0 var(--ink)}.tutorial-start:hover{box-shadow:7px 7px 0 var(--ink)}.help-shell{width:min(960px,100% - 32px);margin:0 auto;padding:28px 0 64px}.help-sections{gap:22px;display:grid}.help-section{border:2px solid var(--ink);background:var(--panel);box-shadow:var(--shadow);padding:clamp(20px,3vw,28px)}.help-section>h2{margin:0 0 10px;font-size:22px;font-weight:700;line-height:1.2}.help-list{border-top:1px solid var(--line);margin:0}.help-row{border-bottom:1px solid var(--line);align-items:baseline;gap:20px;padding:12px 0;display:flex}.help-row:last-child{border-bottom:0;padding-bottom:0}.help-row dt{flex:0 0 180px;font-size:15px;font-weight:700;line-height:1.4}.help-row dd{min-width:0;color:var(--muted);flex:1;margin:0;font-size:13.5px;font-weight:700;line-height:1.55}.help-save-note{color:var(--muted);margin:0 0 14px;font-size:13.5px;font-weight:700;line-height:1.55}.help-save-row{align-items:flex-start;gap:10px;display:flex}.help-save-row+.help-save-row{margin-top:12px}.help-save-textarea{border:1px solid var(--line);min-width:0;color:var(--ink);font:inherit;resize:vertical;background:#fff;border-radius:8px;flex:1;padding:10px 12px;font-size:13px;line-height:1.5}.help-save-textarea:focus-visible{outline-offset:1px;outline:3px solid #f3664557}.help-foot{justify-content:center;margin-top:24px;display:flex}@keyframes demo-letter-shiro{0%,15%,94%,to{opacity:0;transform:scale(.84)}18%,92%{opacity:1;transform:scale(1)}}@keyframes demo-letter-cross{0%,35%,94%,to{opacity:0;transform:scale(.84)}38%,92%{opacity:1;transform:scale(1)}}@keyframes demo-letter-saku{0%,55%,94%,to{opacity:0;transform:scale(.84)}58%,92%{opacity:1;transform:scale(1)}}@keyframes demo-letter-misu{0%,71%,94%,to{opacity:0;transform:scale(.84)}74%,92%{opacity:1;transform:scale(1)}}@keyframes demo-tone-shiro{0%,8%,29%,82%,to{background:#fff}10%,27%{background:var(--focus)}}@keyframes demo-tone-cross{0%,29%,49%,to{background:#fff}31%,47%{background:#ededeb}}@keyframes demo-tone-saku{0%,49%,65%,82%,to{background:#fff}51%,63%{background:#e7e3df}}@keyframes demo-tone-misu{0%,65%,82%,to{background:#fff}67%,80%{background:#e7e7e5}}.demo-cell.c3{animation-name:demo-tone-shared}.demo-cell.c0{animation-name:demo-tone-saku-sashimi}.demo-cell.c2{animation-name:demo-tone-shiro-sashimi}.demo-cell.c4{animation-name:demo-tone-misu-sashimi}.demo-cell.c1{animation-name:demo-tone-cross-saku}.demo-cell.c5{animation-name:demo-tone-cross-misu}.demo-cell.c1:after,.demo-cell.c3:after,.demo-cell.c5:after{animation-name:demo-letter-cross}.demo-cell.c3:after{animation-name:demo-letter-shiro}@keyframes demo-tone-shared{0%,8%,49%,82%,to{background:#fff}10%,29%{background:var(--focus)}31%,47%{background:#ededeb}}@keyframes demo-tone-saku-sashimi{0%,49%,65%,82%,94%,to{background:#fff}51%,63%{background:#e7e3df}84%,92%{background:#f1f1ef}}@keyframes demo-tone-shiro-sashimi{0%,8%,29%,82%,94%,to{background:#fff}10%,27%{background:var(--focus)}84%,92%{background:#f1f1ef}}@keyframes demo-tone-misu-sashimi{0%,65%,82%,94%,to{background:#fff}67%,80%{background:#e7e7e5}84%,92%{background:#f1f1ef}}@keyframes demo-tone-cross-saku{0%,29%,49%,65%,to{background:#fff}31%,47%{background:#ededeb}51%,63%{background:#e7e3df}}@keyframes demo-tone-cross-misu{0%,29%,49%,65%,82%,to{background:#fff}31%,47%{background:#ededeb}67%,80%{background:#e7e7e5}}@keyframes demo-pointer{0%,7%,94%,to{opacity:0;top:50%;left:6%;transform:translate(-50%,-50%)scale(.8)}10%,27%{opacity:1;top:50%;left:6%;transform:translate(-50%,-50%)scale(1)}31%,47%{opacity:1;top:5%;left:72%;transform:translate(-50%,-50%)scale(1)}51%,63%{opacity:1;top:20%;left:6%;transform:translate(-50%,-50%)scale(1)}67%,80%{opacity:1;top:80%;left:6%;transform:translate(-50%,-50%)scale(1)}84%,92%{opacity:1;top:5%;left:28%;transform:translate(-50%,-50%)scale(1)}}@keyframes demo-clue{0%,8%,29%,to{opacity:0}10%,27%{opacity:1}}@keyframes demo-clue-cross{0%,29%,49%,to{opacity:0}31%,47%{opacity:1}}@keyframes demo-clue-saku{0%,49%,65%,to{opacity:0}51%,63%{opacity:1}}@keyframes demo-clue-misu{0%,65%,82%,to{opacity:0}67%,80%{opacity:1}}@keyframes demo-clue-sashimi{0%,82%,94%,to{opacity:0}84%,92%{opacity:1}}.play-shell{width:min(760px,100% - 28px);margin:0 auto;padding:18px 0 56px}.play-panel{padding:clamp(16px,2.6vw,24px)}.play-head{justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:16px;display:flex}.play-head>div:first-child{flex:1;min-width:0}.play-tools{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:8px;margin:-4px 0 14px;display:flex}.tool-button{border:1px solid var(--line);min-height:34px;color:var(--muted);background:#fff;border-radius:7px;justify-content:center;align-items:center;gap:6px;padding:0 11px;font-size:12px;font-weight:700;display:inline-flex}.tool-button:not(:disabled):hover{border-color:var(--ink);color:var(--ink)}.clear-board-button{color:#a34835}.clear-board-button:not(:disabled):hover{color:#a34835;border-color:#a34835}.switch-control{min-height:34px;color:var(--muted);cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;gap:7px;padding:0 2px 0 0;font-size:12px;font-weight:700;display:inline-flex;position:relative}.switch-control input{z-index:1;cursor:pointer;opacity:0;width:100%;height:100%;margin:0;position:absolute;inset:0}.switch-label{pointer-events:none;line-height:1}.switch-track{border:2px solid var(--line);pointer-events:none;background:#fff;border-radius:999px;flex:none;width:44px;height:24px;transition:background .16s,border-color .16s;position:relative}.switch-thumb{border:2px solid var(--ink);background:#fff;border-radius:50%;width:16px;height:16px;transition:transform .16s;position:absolute;top:50%;left:3px;transform:translateY(-50%)}.switch-control input:checked+.switch-track{border-color:var(--ink);background:var(--ink)}.switch-control input:checked+.switch-track .switch-thumb{transform:translate(20px,-50%)}.switch-control:has(input:focus-visible) .switch-track{outline-offset:3px;outline:3px solid #f3664557}.tool-button:disabled{cursor:not-allowed;opacity:.46}.play-head h1{margin:0;font-size:clamp(22px,4vw,32px);font-weight:700;line-height:1.16}.play-title-row{justify-content:space-between;align-items:start;gap:14px;display:flex}.play-head p{color:var(--muted);margin:0;font-size:13px;font-weight:700}.play-badges{flex-wrap:wrap;justify-content:flex-end;gap:8px;min-width:min(260px,42%);display:flex}.mode-pill.cleared{color:#0f765a;background:#dff8ef}.mode-pill.icon-only{justify-content:center;min-width:28px;padding-inline:6px}.score-box{border:2px solid var(--ink);text-align:center;background:#f4f4f1;min-width:96px;padding:9px 10px;font-size:11px;font-weight:700}.score-box strong{font-size:28px;line-height:1.05;display:block}.score-box small{color:var(--muted);display:block}.clue-box{border:2px solid var(--ink);background:#fff;min-height:92px;padding:14px 16px;position:relative;box-shadow:5px 5px #f366451f}.clue-box:after{content:"";border-right:2px solid var(--ink);border-bottom:2px solid var(--ink);background:#fff;width:18px;height:18px;position:absolute;bottom:-11px;left:50%;transform:translate(-50%)rotate(45deg)}.clue-meta{color:var(--coral-text);justify-content:space-between;align-items:center;gap:10px;margin-bottom:7px;font-size:12px;font-weight:700;display:flex}.clue-meta span{align-items:center;gap:5px;display:inline-flex}.clue-controls{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:6px;display:flex}.clue-nav-button{border:1px solid var(--line);min-height:30px;color:var(--muted);background:#fff;border-radius:7px;justify-content:center;align-items:center;width:32px;padding:0;font-size:13px;font-weight:700;line-height:1;display:inline-flex}.clue-nav-button:hover{border-color:var(--ink);color:var(--ink)}.clue-box p{margin:0;font-size:clamp(16px,2.6vw,21px);font-weight:700;line-height:1.55}.clue-box p.clue-hidden{color:var(--muted);letter-spacing:.04em}.open-clue-button{border:1px solid var(--ink);background:#fff;border-radius:7px;min-height:30px;padding:0 10px;font-size:12px;font-weight:700}.answer-boxes{width:min(100%, max(340px, calc((var(--answer-length,4) * 2.45em) + 224px)));justify-content:center;align-items:stretch;gap:8px;max-width:680px;margin:26px auto 22px;display:flex}.answer-line{border:2px solid var(--ink);min-width:0;min-height:clamp(52px,10vw,76px);color:var(--ink);text-align:center;cursor:text;letter-spacing:.08em;background:#fff;border-radius:8px;flex:auto;padding:4px clamp(14px,3vw,22px);font-family:Zen Kaku Gothic New,BIZ UDPGothic,Yu Gothic UI,Meiryo,sans-serif;font-size:clamp(21px,4.6vw,32px);font-weight:700;line-height:1.22;box-shadow:5px 5px #20202014}.answer-line::selection{background:#f3664538}.answer-side-button{border:2px solid var(--line);width:clamp(52px,10vw,76px);min-height:clamp(52px,10vw,76px);color:var(--muted);background:#fff;border-radius:8px;flex:0 0 clamp(52px,10vw,76px);justify-content:center;align-items:center;display:inline-flex;box-shadow:5px 5px #20202014}.answer-side-button:not(:disabled):hover{border-color:var(--ink);color:var(--ink)}.answer-side-button:disabled{cursor:not-allowed;opacity:.42;box-shadow:none}.answer-side-icon{width:clamp(19px,3vw,24px);height:clamp(19px,3vw,24px)}.board-area{--board-head-size:42px;--board-layout-gap:8px;--board-grid-max:520px;gap:var(--board-layout-gap);width:min(100%, calc(var(--board-grid-max) + (var(--board-head-size) * 2) + (var(--board-layout-gap) * 2)));margin:0 auto;display:grid}.corner-cell{color:#b9afa4;grid-area:1/1;place-items:center;font-weight:700;display:grid}.col-headers{grid-area:1/2}.row-headers{grid-area:2/1}.board-spacer{grid-area:1/3/span 2}.cross-grid{grid-area:2/2}.col-headers,.row-headers,.cross-grid{gap:4px;display:grid}.header-cell{min-width:0;min-height:0;color:var(--muted);background:#ededeb;border:0;border-radius:7px;place-items:center;font-size:clamp(10px,2.4vw,12px);font-weight:700;line-height:1;display:grid;overflow:hidden}.header-cell.active{background:var(--ink);color:#fff}.cross-grid{aspect-ratio:1;border:3px solid var(--ink);background:var(--ink);padding:4px}.cross-cell{cursor:pointer;background:#fff;border:0;place-items:center;min-width:0;min-height:0;font-size:clamp(17px,6vw,48px);font-weight:700;line-height:1;display:grid;overflow:hidden}.cross-cell.in-word{background:var(--focus)}.cross-cell.first{position:relative}.cross-cell.first:before{content:"";border-top:9px solid #2020204d;border-right:9px solid #0000;width:0;height:0;position:absolute;top:0;left:0}.judge-button{color:var(--muted);background:#ececea;border-color:#cfcfcb;margin-top:22px;box-shadow:5px 5px #2020201a}.judge-button.ready{background:var(--ink);color:#fff;border-color:var(--ink);box-shadow:5px 5px 0 var(--coral)}.judge-button small{min-height:24px;color:var(--muted);background:#ffffffc2;border-radius:999px;align-items:center;padding:2px 8px;font-size:12px;font-weight:700;line-height:1;display:inline-flex}.judge-button.ready small{color:var(--ink)}.toast{z-index:40;border:2px solid var(--ink);width:min(430px,100% - 28px);box-shadow:6px 6px 0 var(--coral);text-align:center;opacity:0;pointer-events:none;background:#fff;padding:14px 18px;font-weight:700;transition:opacity .18s,transform .24s;position:fixed;bottom:22px;left:50%;transform:translate(-50%,calc(100% + 56px))}.toast.show{opacity:1;transform:translate(-50%)}.win-layer{z-index:50;background:#2020208a;justify-content:center;align-items:center;display:none;position:fixed;inset:0}.win-layer.show{display:flex}.win-card{border:3px solid var(--ink);text-align:center;width:min(360px,100% - 28px);box-shadow:10px 10px 0 var(--coral);background:#fff;padding:32px;position:relative}.confirm-card{box-shadow:10px 10px #2020202e}.win-card.all-complete{border-color:#b8952e;box-shadow:10px 10px #b8952e}.modal-close{border:1px solid var(--line);width:34px;height:34px;color:var(--muted);background:#fff;border-radius:8px;justify-content:center;align-items:center;display:inline-flex;position:absolute;top:10px;right:10px}.modal-close:hover{border-color:var(--ink);color:var(--ink)}.win-mark{border:2px solid var(--ink);background:var(--coral);color:#fff;border-radius:50%;place-items:center;width:54px;height:54px;margin:0 auto 10px;line-height:1;display:grid}.win-mark.all-complete{background:#b8952e;border-color:#b8952e;width:68px;height:68px;animation:.5s win-mark-pop}@keyframes win-mark-pop{0%{transform:scale(.5)}60%{transform:scale(1.12)}}.win-card h2{margin:8px 0 6px;font-size:24px;font-weight:700}.win-card p{color:var(--muted);margin:0 0 20px;font-weight:700}.achievement-earned{border:1px solid var(--coral);color:var(--ink);text-align:left;background:#fff5f1;align-items:center;gap:10px;margin:0 0 20px;padding:11px 12px;animation:.32s both achievement-earned-in;display:flex}@keyframes achievement-earned-in{0%{opacity:0;transform:translateY(-6px)}}.achievement-earned>svg{color:var(--coral-text);flex:none}.achievement-earned div{gap:3px;display:grid}.achievement-earned span{color:var(--coral-text);font-size:11px;font-weight:700}.achievement-earned strong{font-size:13px;line-height:1.4}.win-actions{grid-template-columns:1fr 1fr;gap:10px;display:grid}.celebrate .cross-grid{animation:.55s 2 board-pop}.celebrate-all .cross-grid{animation:.6s 3 board-pop-all}@keyframes board-pop{50%{transform:scale(1.018)}}@keyframes board-pop-all{50%{transform:scale(1.045)rotate(-.6deg)}}@media (prefers-reduced-motion:reduce){.celebrate .cross-grid,.celebrate-all .cross-grid,.achievement-earned{animation:none}}.message-shell{place-items:center;min-height:calc(100vh - 72px);padding:28px;display:grid}.message-card{width:min(520px,100%);padding:30px}.message-card h1{margin:0 0 8px;font-size:28px;font-weight:700}@media (width<=1080px){.difficulty-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.puzzle-card-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.tutorial-flow{justify-content:center}}@media (width<=760px){.home-hero,.tutorial-hero{grid-template-columns:1fr}.stats-column{grid-template-columns:1fr 1fr}.stat-box{min-height:0;padding:14px}.difficulty-grid,.unlock-grid{grid-template-columns:1fr}.tutorial-copy{border-right:0;border-bottom:1px solid var(--line)}.library-head,.section-heading,.play-head{flex-direction:column;align-items:stretch}.play-title-row{flex-direction:column;gap:9px}.play-badges{justify-content:flex-start;min-width:0}.answer-line{letter-spacing:.06em}.board-area{--board-head-size:24px;--board-layout-gap:4px;--board-grid-max:520px;width:min(100%, calc(var(--board-grid-max) + (var(--board-head-size) * 2) + (var(--board-layout-gap) * 2)))}}@media (width<=430px){.topbar-actions .ghost-button{width:42px;padding:0}.topbar-actions .btn-label{display:none}}@media (width<=560px){.topbar{min-height:66px;padding-inline:13px}.topbar.compact{min-height:58px;padding-block:7px}.brand-name{font-size:19px}.brand-name.compact{font-size:18px}.ghost-button{padding-inline:10px}.home-shell,.tutorial-shell,.help-shell{width:min(100% - 24px,1160px);padding-top:20px}.tutorial-shell{min-height:auto}.today-card{padding:22px 18px}.help-row{flex-direction:column;gap:4px}.help-row dt{flex-basis:auto}.help-section>h2{font-size:20px}.help-save-row{flex-direction:column}.puzzle-card-grid{grid-template-columns:1fr}.difficulty-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.mode-tile{min-height:0;padding:10px}.mode-tile small,.unlock-tile p{display:none}.tutorial-flow{grid-template-columns:1fr;gap:10px}.guide-step{min-height:58px;padding:12px 14px}.puzzle-card{grid-template-columns:92px minmax(0,1fr);min-height:118px}.mini-board-frame{width:92px;height:92px}.mini-board{--avail-w:76px;--avail-h:76px}.demo-stage{min-height:292px;padding:94px 10px 22px}.demo-board{width:100%}.demo-board-wrap{width:132px}.demo-clue{width:min(230px,100% - 24px);top:22px;bottom:auto}.play-shell{width:min(100% - 20px,760px);padding-top:14px}.play-panel{padding:14px}.play-head{gap:8px;margin-bottom:8px}.play-head h1{overflow-wrap:anywhere;flex:auto;min-width:0;font-size:21px}.play-badges{flex:none;justify-content:flex-end;gap:5px;max-width:46%}.play-title-row{flex-direction:row;align-items:center;gap:10px}.mode-pill{min-height:24px;padding:2px 8px;font-size:11px}.play-tools{justify-content:space-between;gap:6px;margin:0 0 10px}.switch-control{min-height:30px}.switch-track{width:40px;height:22px}.switch-thumb{width:14px;height:14px}.switch-control input:checked+.switch-track .switch-thumb{transform:translate(18px,-50%)}.tool-button{min-height:30px;padding-inline:9px}.clue-box{min-height:0;padding:11px 12px}.clue-meta{flex-direction:row;justify-content:space-between;align-items:center;gap:8px;margin-bottom:5px}.clue-controls{flex-wrap:nowrap;justify-content:flex-end;margin-left:auto}.clue-nav-button{width:30px;min-height:28px}.open-clue-button{min-height:28px;padding-inline:8px}.clue-box p{font-size:16px;line-height:1.45}.win-actions{grid-template-columns:1fr}.col-headers,.row-headers,.cross-grid{gap:3px}.cross-grid{padding:3px}.header-cell{border-radius:5px;font-size:10px}}
