:root{--bg:#f3f5f7;--surface:#fff;--ink:#1f2a37;--muted:#5b6675;--line:#dde2e8;--line-strong:#c9d1dc;--line-soft:#edf0f3;--accent:#2f4b8a;--accent-soft:#e4e9f2;--amber-soft:#f6e3bf;--disabled:#e7eaee;--disabled-ink:#6b7482;--arrow:#8a94a3;--mincho:"Shippori Mincho", "Hiragino Mincho ProN", "Yu Mincho", "Noto Serif CJK JP", serif;--gothic:"Zen Kaku Gothic New", "Hiragino Sans", "Noto Sans CJK JP", sans-serif;--cell:76px;--gap:32px;--cell-font:40px}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body{background:var(--bg);color:var(--ink);font-family:var(--gothic);margin:0}button{color:inherit;font-family:inherit}a{color:var(--accent)}:focus-visible{outline:3px solid var(--accent);outline-offset:2px}h1,h2,p{margin:0}.mincho{font-family:var(--mincho)}.screen{max-width:480px;min-height:100dvh;padding-top:env(safe-area-inset-top);flex-direction:column;margin:0 auto;display:flex}.load-message{text-align:center;color:var(--muted);padding:48px 24px}.content{flex-grow:1;padding:32px 24px 24px}.date{color:var(--muted);letter-spacing:.04em;font-size:13px}.title-row{justify-content:space-between;align-items:center;gap:8px;margin-top:4px;display:flex}.app-title{letter-spacing:.08em;font-size:32px;font-weight:700}.streak{background:var(--surface);border:1px solid var(--line);white-space:nowrap;border-radius:999px;align-items:center;gap:6px;padding:6px 12px;font-size:14px;font-weight:700;display:flex}.section{margin-top:28px}.section-title{color:var(--muted);letter-spacing:.1em;margin-bottom:12px;font-size:13px;font-weight:700}.daily-list{flex-direction:column;gap:12px;display:flex}.daily-card{color:var(--ink);background:var(--surface);border:1px solid var(--line);border-radius:16px;align-items:center;gap:16px;padding:20px;text-decoration:none;display:flex}.glyph{flex-shrink:0;gap:3px;width:64px;height:64px;display:grid}.glyph.anaume{grid-template-rows:repeat(3,1fr);grid-template-columns:repeat(3,1fr)}.glyph.yoji{grid-template-columns:repeat(2,1fr)}.glyph i{border-radius:4px}.glyph .s{background:var(--accent-soft)}.glyph .c{background:var(--accent)}.daily-text{flex-direction:column;flex-grow:1;gap:4px;min-width:0;display:flex}.daily-name{font-size:20px;font-weight:700}.daily-desc{color:var(--muted);font-size:13px}.pill{color:var(--accent);background:var(--accent-soft);white-space:nowrap;border-radius:999px;align-self:flex-start;align-items:center;gap:4px;margin-top:4px;padding:6px 12px;font-size:13px;font-weight:700;display:flex}.pill.done{color:var(--ink);background:var(--amber-soft)}.level-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;display:grid}.level-card{color:var(--ink);background:var(--surface);border:1px solid var(--line);border-radius:16px;flex-direction:column;gap:8px;padding:16px;text-decoration:none;display:flex}.level-name{font-size:14px;font-weight:700}.level-number{font-variant-numeric:tabular-nums;font-size:28px;font-weight:700}.progress{background:var(--accent-soft);border-radius:3px;height:6px;display:flex}.progress span{background:var(--accent);border-radius:3px}.bottom-nav{background:var(--surface);border-top:1px solid var(--line);padding:8px 24px calc(8px + env(safe-area-inset-bottom));grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;display:grid;position:sticky;bottom:0}.bottom-nav a{min-height:48px;color:var(--muted);flex-direction:column;justify-content:center;align-items:center;gap:4px;font-size:12px;text-decoration:none;display:flex}.bottom-nav a.active{color:var(--accent);font-weight:700}.game-header{justify-content:space-between;align-items:center;gap:8px;padding:12px 16px 0;display:flex}.icon-button{width:44px;height:44px;color:var(--ink);border-radius:12px;flex-shrink:0;justify-content:center;align-items:center;display:flex}.header-spacer{width:44px}.game-title{flex-direction:column;align-items:center;gap:2px;display:flex}.game-name{font-size:15px;font-weight:700}.game-sub{color:var(--muted);font-size:12px}.game-time{text-align:right;font-variant-numeric:tabular-nums;min-width:44px;color:var(--muted);font-size:15px;font-weight:700}.game-body{flex-direction:column;flex-grow:1;display:flex}.board-panel{flex-direction:column;flex-grow:1;align-items:center;gap:20px;padding:16px 24px;display:flex}.guide{text-align:center;color:var(--muted);font-size:14px}.guide.small{margin-top:-8px;font-size:13px}.control-panel{padding:0 24px calc(24px + env(safe-area-inset-bottom));flex-direction:column;gap:16px;display:flex}.control-row{color:var(--muted);justify-content:space-between;align-items:center;font-size:13px;display:flex}.hint-button{background:var(--surface);border:1px solid var(--line);cursor:pointer;border-radius:999px;align-items:center;gap:6px;min-height:44px;padding:10px 16px;font-size:14px;font-weight:700;display:flex}.hint-button:disabled{color:var(--disabled-ink);background:var(--disabled);cursor:default}.cross{grid-template-columns:var(--cell) var(--gap) var(--cell) var(--gap) var(--cell);grid-template-rows:var(--cell) var(--gap) var(--cell) var(--gap) var(--cell);font-family:var(--mincho);display:grid}.cross-cell{background:var(--surface);border:1px solid var(--line);font-size:var(--cell-font);border-radius:14px;justify-content:center;align-items:center;font-weight:700;display:flex}.cross-cell.blank{border:2px dashed var(--accent);color:var(--accent);font-weight:500}.cross-arrow{color:var(--arrow);justify-content:center;align-items:center;display:flex}.hints{flex-direction:column;align-items:center;gap:6px;display:flex}.hint-note{background:var(--amber-soft);border-radius:12px;align-items:center;gap:8px;padding:8px 16px;font-size:14px;display:flex}.hint-note .mincho{font-size:16px}.tiles{font-family:var(--mincho);gap:10px;display:grid}.tiles.three{grid-template-columns:repeat(3,minmax(0,1fr))}.tiles.four{grid-template-columns:repeat(4,minmax(0,1fr))}.tiles.five{grid-template-columns:repeat(5,minmax(0,1fr))}.tile{background:var(--surface);border:1px solid var(--line-strong);cursor:pointer;touch-action:manipulation;border-radius:14px;min-width:48px;height:72px;font-family:inherit;font-size:34px;font-weight:700}.tile:not(:disabled):active{background:var(--accent-soft)}.tiles.tall .tile{height:84px;font-size:38px}.tiles.five.tall .tile{height:72px;font-size:32px}.tile.wrong{background:var(--disabled);border-color:var(--disabled);color:var(--disabled-ink);cursor:default;text-decoration:line-through}.tile.used{background:var(--disabled);border:1px dashed var(--line-strong);color:#b5bcc6;cursor:default}.slots{width:100%;font-family:var(--mincho);grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-top:24px;display:grid}.slots.shake{animation:.4s shake}.slot{background:var(--surface);border:1px solid var(--line);border-radius:14px;height:80px}.slot.next{border:2px solid var(--accent)}.slot.filled{background:var(--accent);color:#fff;cursor:pointer;border:none;font-family:inherit;font-size:40px;font-weight:700}.slot.locked{cursor:default;background:#c7841f}@keyframes shake{0%,to{transform:translate(0)}20%,60%{transform:translate(-8px)}40%,80%{transform:translate(8px)}}@media (prefers-reduced-motion:reduce){.slots.shake{animation:none}}.today-record{background:var(--surface);border:1px solid var(--line);border-radius:16px;flex-direction:column;gap:14px;margin-top:auto;padding:20px;display:none}.today-record h2{color:var(--muted);letter-spacing:.1em;font-size:13px;font-weight:700}.row{font-variant-numeric:tabular-nums;justify-content:space-between;align-items:center;gap:12px;font-size:15px;display:flex}.row.total{border-top:1px solid var(--line-soft);padding-top:14px}.result-body{padding:0 24px calc(24px + env(safe-area-inset-bottom));flex-direction:column;flex-grow:1;gap:20px;display:flex}.result-top{flex-direction:column;gap:20px;display:flex}.result-answer-wrap{flex-direction:column;align-items:center;gap:12px;margin-top:12px;display:flex}.result-label{color:var(--accent);letter-spacing:.2em;font-size:15px;font-weight:700}.result-answer{background:var(--accent);color:#fff;border-radius:20px;justify-content:center;align-items:center;min-width:96px;height:96px;padding:0 20px;font-size:56px;font-weight:700;display:flex}.result-answer.yoji{letter-spacing:.06em;font-size:44px}.result-stats{text-align:center;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;display:grid}.result-stats div{flex-direction:column;gap:2px;display:flex}.result-stats span{color:var(--muted);font-size:12px}.result-stats b{font-variant-numeric:tabular-nums;font-size:22px}.word-list{background:var(--surface);border:1px solid var(--line);border-radius:16px;flex-direction:column;padding:4px 16px;display:flex}.word-row{border-bottom:1px solid var(--line-soft);align-items:baseline;gap:14px;padding:12px 0;display:flex}.word-row:last-child{border-bottom:none}.word-row.stacked{flex-direction:column;gap:6px}.word{flex-shrink:0;min-width:48px;font-size:22px;font-weight:700}.word-detail{flex-direction:column;gap:2px;min-width:0;font-size:14px;display:flex}.reading{color:var(--muted);font-size:12px}.result-actions{flex-direction:column;gap:10px;margin-top:auto;display:flex}.primary-button,.secondary-button{cursor:pointer;border-radius:14px;justify-content:center;align-items:center;gap:8px;min-height:52px;font-size:16px;font-weight:700;text-decoration:none;display:flex}.primary-button{background:var(--accent);color:#fff;border:none}.secondary-button{background:var(--surface);border:1px solid var(--line-strong);color:var(--ink)}.notice{text-align:center;color:var(--muted);font-size:13px}.page-title{letter-spacing:.08em;font-size:28px;font-weight:700}.stat-hero{background:var(--accent);color:#fff;border-radius:20px;flex-direction:column;gap:16px;margin-top:20px;padding:20px;display:flex;position:relative;overflow:hidden}.stat-mark{pointer-events:none;width:92px;height:92px;position:absolute;top:16px;right:16px}.stat-main{flex-direction:column;gap:2px;display:flex;position:relative}.stat-main span{letter-spacing:.1em;font-size:13px;font-weight:700}.stat-main b{font-variant-numeric:tabular-nums;font-size:64px;font-weight:700;line-height:1.1}.stat-main small{margin-left:6px;font-size:22px}.stat-goal{flex-direction:column;gap:8px;font-size:13px;display:flex;position:relative}.stat-bar{background:#fff3;border-radius:3px;height:6px;display:flex}.stat-bar i{background:var(--amber-soft);border-radius:3px}.stat-side{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;display:grid;position:relative}.stat-side div{background:#ffffff24;border-radius:12px;flex-direction:column;gap:2px;padding:10px 12px;display:flex}.stat-side span{font-size:12px}.stat-side b{font-variant-numeric:tabular-nums;font-size:20px}.week{background:var(--surface);border:1px solid var(--line);border-radius:16px;padding:16px}.week-days{grid-template-columns:repeat(7,minmax(0,1fr));gap:4px;margin:0;padding:0;list-style:none;display:grid}.week-days li{color:var(--muted);flex-direction:column;align-items:center;gap:6px;font-size:12px;display:flex}.week-days li.today{color:var(--ink);font-weight:700}.day-mark{background:var(--bg);width:36px;max-width:100%;height:36px;color:var(--accent);font-variant-numeric:tabular-nums;border-radius:10px;justify-content:center;align-items:center;font-size:13px;display:flex}.day-mark.partial{background:var(--accent-soft)}.day-mark.complete{background:var(--accent);color:#fff}.today .day-mark{outline:2px solid var(--accent);outline-offset:1px}.week-legend{color:var(--muted);justify-content:flex-end;gap:14px;margin-top:14px;font-size:12px;display:flex}.week-legend span{align-items:center;gap:6px;display:flex}.week-legend i{background:var(--accent-soft);border-radius:3px;width:12px;height:12px}.week-legend i.complete{background:var(--accent)}.empty-card{background:var(--surface);border:1px solid var(--line);border-radius:16px;flex-direction:column;gap:16px;padding:24px 16px 16px;display:flex}.empty{color:var(--muted);text-align:center;font-size:14px;line-height:1.7}.history{flex-direction:column;gap:12px;display:flex}.history-day{background:var(--surface);border:1px solid var(--line);border-radius:16px;padding:4px 16px}.history-date{color:var(--muted);font-variant-numeric:tabular-nums;border-bottom:1px solid var(--line-soft);padding:12px 0 10px;font-size:13px;font-weight:700}.history-row{border-bottom:1px solid var(--line-soft);justify-content:space-between;align-items:center;gap:12px;min-height:60px;padding:8px 0;display:flex}.history-row:last-child{border-bottom:none}.history-name{min-width:0;font-size:15px;font-weight:500}.history-score{font-variant-numeric:tabular-nums;flex-direction:column;flex-shrink:0;align-items:flex-end;display:flex}.history-score b{font-size:18px}.history-score span{color:var(--muted);font-size:12px}.history-pending{color:var(--disabled-ink);background:var(--disabled);border-radius:999px;flex-shrink:0;padding:4px 10px;font-size:12px;font-weight:700}.card{background:var(--surface);border:1px solid var(--line);border-radius:16px;margin-top:20px;padding:4px 16px}.section .card{margin-top:0}.setting-row{min-height:60px;color:var(--ink);border-bottom:1px solid var(--line-soft);cursor:pointer;align-items:center;gap:12px;padding:8px 0;font-size:15px;text-decoration:none;display:flex}.setting-row:last-child{border-bottom:none}.setting-icon{width:36px;height:36px;color:var(--accent);background:var(--accent-soft);border-radius:10px;flex-shrink:0;justify-content:center;align-items:center;display:flex}.setting-label{flex-grow:1;min-width:0;font-weight:500}.setting-trail{color:var(--arrow);flex-shrink:0;display:flex}.switch{appearance:none;background:var(--arrow);cursor:pointer;border-radius:999px;flex-shrink:0;width:52px;height:32px;margin:0;transition:background .15s;position:relative}.switch:after{content:"";background:#fff;border-radius:50%;width:26px;height:26px;transition:transform .15s;position:absolute;top:3px;left:3px}.switch:checked{background:var(--accent)}.switch:checked:after{transform:translate(20px)}@media (prefers-reduced-motion:reduce){.switch,.switch:after{transition:none}}.section-note{color:var(--muted);margin-top:10px;padding:0 4px;font-size:13px;line-height:1.7}.source-row{border-bottom:1px solid var(--line-soft);flex-direction:column;gap:2px;padding:12px 0;display:flex}.source-row b{font-size:15px;font-weight:700}.source-row span{color:var(--muted);font-size:13px}@media (width>=768px){:root{--cell:104px;--gap:44px;--cell-font:56px}.screen.game{max-width:none;height:100dvh}.screen.game .game-header{padding:24px 40px 0}.game-body{flex-direction:row;gap:40px;min-height:0;padding:24px 40px 40px}.board-panel{background:var(--surface);border:1px solid var(--line);border-radius:24px;flex:1 1 0;justify-content:center;min-width:0;overflow:auto}.board-panel .cross-cell{background:var(--bg)}.board-panel .cross-cell.blank{background:var(--surface)}.control-panel{flex:0 0 min(420px,42vw);padding:0;overflow:auto}.tile,.tiles.tall .tile,.tiles.five.tall .tile{height:92px;font-size:42px}.tiles{gap:12px}.today-record{display:flex}.slots{max-width:480px}.slot{height:104px}.slot.filled{font-size:52px}.screen.with-nav,.screen.result{max-width:640px}}@media (width>=768px) and (height<=700px){:root{--cell:76px;--gap:28px;--cell-font:40px}.tile,.tiles.tall .tile,.tiles.five.tall .tile{height:72px;font-size:34px}}
