:root{--bg: #0b1020;--card: rgba(255, 255, 255, .08);--card2: rgba(255, 255, 255, .12);--text: rgba(255, 255, 255, .92);--muted: rgba(255, 255, 255, .72);--accent: rgba(140, 200, 255, .9);--danger: rgba(255, 140, 140, .9);--radius: 18px;--shadow: 0 18px 60px rgba(0, 0, 0, .35);--pad: 16px;--font: system-ui, -apple-system, "Segoe UI", "Noto Sans JP", sans-serif}:root[data-large-ui="1"]{--pad: 18px}*{box-sizing:border-box}html,body{height:100%}body{margin:0;font-family:var(--font);color:var(--text);background:var(--bg);position:relative}body:before{content:"";position:fixed;top:0;right:0;bottom:0;left:0;z-index:-1;background:radial-gradient(1200px 700px at 20% 10%,rgba(80,140,255,.25),transparent 55%),radial-gradient(900px 600px at 80% 60%,rgba(255,180,120,.18),transparent 55%),var(--bg)}button,input{font:inherit}.screen{min-height:100vh;display:grid;place-items:center;padding:22px}.screen--menu{display:flex;flex-direction:column;align-items:center;justify-content:flex-start;padding:24px 18px 40px;gap:16px}.card{width:min(520px,92vw);background:#ffffff1a;border:1px solid rgba(255,255,255,.12);border-radius:var(--radius);box-shadow:var(--shadow);padding:22px;position:relative;overflow:hidden}.card:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;border-radius:inherit;pointer-events:none;z-index:0;background:linear-gradient(180deg,#ffffff1f,#ffffff14 280px,#ffffff14)}.card>*{position:relative;z-index:1}.card.wide{width:min(860px,96vw)}.panel{width:min(960px,94vw);background:linear-gradient(180deg,#ffffff29,#ffffff0f);border:1px solid rgba(255,255,255,.14);border-radius:18px;box-shadow:0 18px 50px #00000047;padding:28px;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.panel--wide{width:min(960px,94vw)}@media (max-width: 640px){.panel{padding:22px 18px}}.title{margin:0 0 8px;font-size:28px;letter-spacing:.02em}.sub{margin:0 0 18px;color:var(--muted);line-height:1.5}.resultReflection{margin:8px 0 18px;padding:14px 16px;border-radius:16px;border:1px solid rgba(255,255,255,.14);background:#ffffff0f}.resultReflection__title{margin:0 0 6px;font-size:18px}.resultReflection__lead{margin:0 0 10px;color:#ffffffb8;font-size:13px}.resultReflection__item{margin:0 0 6px;font-size:14px}.resultReflection__item:last-child{margin-bottom:0}.resultBadges{margin:10px 0 16px}.resultBadges__title{margin:0 0 8px;font-size:16px}.resultBadges__list{display:flex;flex-wrap:wrap;gap:8px}.resultBadges__item{display:inline-flex;align-items:center;padding:6px 12px;border-radius:999px;border:1px solid rgba(255,255,255,.2);background:#ffffff14;font-size:13px}.hint{margin:16px 0 0;color:#ffffff9e;font-size:13px;line-height:1.5}.btn{width:100%;padding:14px 16px;min-height:44px;border-radius:14px;border:1px solid rgba(255,255,255,.18);background:#ffffff14;color:var(--text);cursor:pointer;margin-top:10px;transition:transform .18s ease,background .18s ease,border-color .18s ease,box-shadow .18s ease}.btn--primary,.btn.primary{background:#8cc8ff33;border-color:#8cc8ff6b;box-shadow:0 10px 24px #4882d638}.btn--secondary{background:#ffffff14}.btn:hover{box-shadow:0 8px 22px #0000002e}.btn:active{transform:translateY(1px)}@media (prefers-reduced-motion: reduce){.btn{transition:none}}.sudokuCell:focus-visible{box-shadow:inset 0 0 0 2px #8cc8ffd9}.headerBar{width:min(960px,94vw);display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:12px}.headerBar__title{text-align:center;font-weight:700;letter-spacing:.04em}.headerBar__button{justify-self:start;padding:10px 14px;min-height:44px;border-radius:12px;border:1px solid rgba(255,255,255,.18);background:#ffffff14;color:var(--text);cursor:pointer;transition:background .18s ease,border-color .18s ease,transform .18s ease}.headerBar__button:last-child{justify-self:end}.headerBar__button:active{transform:translateY(1px)}.headerBar__spacer{height:40px}@media (prefers-reduced-motion: reduce){.headerBar__button{transition:none}}.topbar{width:min(860px,96vw);display:grid;grid-template-columns:1fr 1.2fr 1fr;gap:10px;align-items:center;margin-bottom:12px}.topbarTitle{text-align:center;font-weight:700;letter-spacing:.03em}.iconBtn{padding:10px 12px;min-height:44px;border-radius:12px;border:1px solid rgba(255,255,255,.18);background:#ffffff0f;color:var(--text);cursor:pointer}.levelGrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin-top:14px}@media (min-width: 760px){.levelGrid{grid-template-columns:repeat(3,minmax(0,1fr))}}.levelCard{text-align:left;padding:16px;min-height:44px;border-radius:16px;border:1px solid rgba(255,255,255,.14);background:#ffffff14;color:var(--text);cursor:pointer;width:100%;transition:transform .18s ease,border-color .18s ease,box-shadow .18s ease}.levelCard:not(.is-locked):hover{border-color:#8cc8ff80;box-shadow:0 12px 26px #00000038}.levelCard.is-locked{opacity:.45;cursor:not-allowed;box-shadow:none}.levelCard__header{display:flex;align-items:center;justify-content:space-between}.levelCard__number{font-size:28px;font-weight:800;line-height:1}.levelCard__status{font-size:11px;font-weight:700;letter-spacing:.02em;padding:4px 8px;border-radius:999px;border:1px solid transparent;white-space:nowrap}.levelCard__status--clear{background:#8cc8ff29;border-color:#8cc8ff4d;color:#d2ebfff2}.levelCard__status--play{background:#ffffff1f;border-color:#ffffff38;color:#ffffffd9}.levelCard__status--lock{background:#ffffff0f;border-color:#ffffff1f;color:#ffffffb3}.levelCard__body{margin-top:10px}.levelCard__name{font-size:14px;font-weight:600}.levelCard__range{margin-top:4px;font-size:12px;color:#ffffffad}@media (prefers-reduced-motion: reduce){.levelCard{transition:none}}.settingRow{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:14px 0;border-bottom:1px solid rgba(255,255,255,.1)}.settingRow:last-child{border-bottom:none}.settingRow.is-clickable{cursor:pointer}.settingRow__text{display:flex;flex-direction:column;gap:4px}.settingRow__title{display:flex;align-items:center;gap:8px;color:#ffffffe0;font-weight:600}.settingRow__desc{font-size:12px;color:#fff9}.settingRow__badge{font-size:11px;padding:2px 6px;border-radius:999px;background:#ffffff1f;border:1px solid rgba(255,255,255,.2);color:#ffffffc7}.settingRow__control{display:flex;align-items:center;gap:8px}.switchControl{position:relative;width:46px;height:26px;min-height:44px;display:inline-flex;align-items:center}.switchControl__input{position:absolute;opacity:0;width:46px;height:44px;margin:0;cursor:pointer}.switchControl__track{width:46px;height:26px;border-radius:999px;border:1px solid rgba(255,255,255,.2);background:#ffffff1a;transition:background .18s ease,border-color .18s ease;position:relative}.switchControl__track:after{content:"";position:absolute;top:3px;left:4px;width:18px;height:18px;border-radius:50%;background:#ffffffe6;transition:transform .18s ease}.switchControl__input:checked+.switchControl__track{background:#8cc8ff4d;border-color:#8cc8ff80}.switchControl__input:checked+.switchControl__track:after{transform:translate(18px)}.settingRow__select{background:#ffffff14;border:1px solid rgba(255,255,255,.2);border-radius:12px;color:var(--text);padding:8px 12px;min-height:44px}.settingRow__select:focus-visible{outline:2px solid rgba(140,200,255,.85);outline-offset:2px}@media (prefers-reduced-motion: reduce){.switchControl__track,.switchControl__track:after{transition:none}}.toast{position:fixed;left:50%;bottom:18px;transform:translate(-50%);padding:10px 14px;border-radius:999px;background:#0000008c;border:1px solid rgba(255,255,255,.18);color:#ffffffeb;opacity:0;pointer-events:none;transition:opacity .18s ease}.toast.is-visible{opacity:1}.boardPlaceholder{width:100%;border-radius:18px;border:1px dashed rgba(255,255,255,.22);background:#ffffff0a;padding:18px 14px;min-height:260px;margin:12px 0 6px;display:flex;justify-content:center;align-items:center;position:relative;overflow:hidden}.boardPlaceholderInner{color:#ffffffb3;font-size:14px}.jsonPreview{width:100%;max-height:360px;overflow:auto;margin:0;padding:12px;border-radius:12px;background:#00000040;border:1px solid rgba(255,255,255,.1);font-size:12px;line-height:1.4;color:#ffffffdb}.sudokuBoard{display:grid;--gap: clamp(4px, 1.1vw, 8px);gap:var(--gap);--boardMax: min(92vw, 560px);--cell: clamp(44px, calc((var(--boardMax) - (var(--gap) * (var(--n) - 1))) / var(--n)), 78px);grid-template-columns:repeat(var(--n),var(--cell));grid-auto-rows:var(--cell);width:max-content;margin:10px auto;padding:4px}.sudokuCell{border-radius:10px;border:1px solid rgba(255,255,255,.2);background:#ffffff14;color:#fff;position:relative;display:grid;place-items:center;padding:0;cursor:pointer;overflow:hidden;min-width:44px;min-height:44px;-webkit-tap-highlight-color:transparent}.cellValue{font-size:clamp(18px,calc(var(--cell) / 2.55),34px);font-weight:900;line-height:1;letter-spacing:.01em;text-shadow:0 2px 10px rgba(0,0,0,.2)}.sudokuCell.fixed{background:#ffffff38;border-color:#ffffff57;cursor:default}.sudokuCell.editable{background:#ffffff14;border-color:#ffffff2e}.sudokuCell.isSelected{box-shadow:inset 0 0 0 2px #8cc8ffd9;background:#8cc8ff29;border-color:#8cc8ff73}.sudokuCell.isSame:not(.isSelected){background:repeating-linear-gradient(135deg,#ffffff24,#ffffff24 4px,#ffffff05 4px,#ffffff05 8px),#8cc8ff1a;border-color:#8cc8ff38}.sudokuCell.isError{box-shadow:inset 0 0 0 2px #ffbebea6,inset 0 0 0 3px #ffc8c81f;background:#ffbebe1a;border-color:#ffbebe66}@media (prefers-reduced-motion: no-preference){.sudokuCell.isError{animation:cellErrorSoft .32s ease-out 1}}@keyframes cellErrorSoft{0%{transform:scale(1);box-shadow:inset 0 0 #ffc8c800}60%{transform:scale(1.01);box-shadow:inset 0 0 0 5px #ffc8c838}to{transform:scale(1);box-shadow:inset 0 0 #ffc8c800}}.gameLayout{display:grid;grid-template-columns:minmax(0,1fr) minmax(200px,260px);gap:18px;align-items:start}.gameBoardColumn{min-width:0;position:relative}.gamePadColumn{position:sticky;top:18px;align-self:start}.gamePadWrap{width:min(260px,100%)}.numberPad{display:grid;grid-template-columns:repeat(var(--pad-cols, 3),minmax(0,1fr));gap:10px;margin-top:0}.padGuide{grid-column:1 / -1;font-size:12px;color:#ffffffb8;text-align:center;padding:6px 8px;border-radius:10px;background:#ffffff14;border:1px dashed rgba(255,255,255,.2)}.padBtn{padding:14px 0;min-height:48px;border-radius:12px;border:1px solid rgba(255,255,255,.2);background:#ffffff1a;color:#fff;font-size:18px;font-weight:700}.padBtn.erase{grid-column:1 / -1;background:#ff787840}.padBtn:disabled{opacity:.35;cursor:not-allowed;filter:saturate(.6)}@media (prefers-reduced-motion: no-preference){.padBtn{transition:transform .16s ease,background .16s ease,border-color .16s ease}}.padBtn:hover:not(:disabled){background:#ffffff2e;border-color:#ffffff59}.padBtn:active:not(:disabled){transform:translateY(1px) scale(.98)}@media (max-width: 768px){.gameLayout{grid-template-columns:1fr}.gamePadColumn{position:static}.gamePadWrap{width:100%}}.pencilGrid{position:absolute;inset:clamp(6px,calc(var(--cell) / 8),10px);display:grid;grid-template-columns:repeat(var(--mini),1fr);grid-auto-rows:1fr;gap:clamp(1px,calc(var(--cell) / 18),3px);align-content:center;justify-content:center;pointer-events:none;opacity:.78;font-variant-numeric:tabular-nums}.pencilItem{display:grid;place-items:center;font-size:clamp(9px,calc(var(--cell) / 5.1),13px);line-height:1;font-weight:700;color:#ffffff9e;-webkit-user-select:none;user-select:none}.pencilItem.isOff{color:#ffffff1a}.sudokuCell.hint{box-shadow:inset 0 0 0 2px #8cc8ffbf,inset 0 0 0 4px #8cc8ff2e}.sudokuCell.hint.hintSoft{box-shadow:inset 0 0 0 2px #8cc8ff8c,inset 0 0 0 3px #8cc8ff1a}.gameActions{display:flex;gap:10px;margin-top:10px}.clearSparkles{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;display:none;align-items:center;justify-content:center}.clearSparkles.isActive{display:block}.clearSparkle{position:absolute;font-size:18px;color:#ffe6a0e6;text-shadow:0 2px 10px rgba(255,220,160,.35);opacity:0}.clearSparkle:nth-child(1){top:12%;left:18%}.clearSparkle:nth-child(2){top:8%;left:58%;font-size:16px}.clearSparkle:nth-child(3){top:28%;left:78%;font-size:14px}.clearSparkle:nth-child(4){top:36%;left:22%;font-size:15px}.clearSparkle:nth-child(5){top:48%;left:62%}.clearSparkle:nth-child(6){top:60%;left:34%;font-size:13px}@media (prefers-reduced-motion: no-preference){.clearSparkles.isActive .clearSparkle{animation:clearSparkleFloat .9s ease-out forwards}.clearSparkle:nth-child(2){animation-delay:60ms}.clearSparkle:nth-child(3){animation-delay:.12s}.clearSparkle:nth-child(4){animation-delay:.18s}.clearSparkle:nth-child(5){animation-delay:.24s}.clearSparkle:nth-child(6){animation-delay:.3s}}@media (prefers-reduced-motion: reduce){.clearSparkles.isActive .clearSparkle{opacity:.9}}@keyframes clearSparkleFloat{0%{opacity:0;transform:translateY(4px) scale(.9)}35%{opacity:1;transform:translateY(0) scale(1)}to{opacity:0;transform:translateY(-8px) scale(1.02)}}.gameActions .btn{margin-top:0}.helpBar{position:relative;display:flex;flex-direction:column;align-items:flex-start}.helpToggle{padding:8px 12px;min-height:44px;font-size:14px}.helpTogglePrimary{background:#8cc8ff38;border-color:#8cc8ff73;font-weight:700;box-shadow:0 8px 24px #3c78ff1f}@media (prefers-reduced-motion: no-preference){.helpTogglePrimary{transition:transform .16s ease,box-shadow .16s ease,background .16s ease}.helpTogglePrimary:hover{transform:translateY(-1px);box-shadow:0 10px 26px #3c78ff29}}.helpMenu{display:none;flex-direction:column;gap:6px;margin-top:6px;padding:8px;border-radius:12px;border:1px solid rgba(255,255,255,.18);background:#00000040;min-width:170px}.helpMenu.isOpen{display:flex}.helpItem{width:100%;text-align:left;padding:8px 10px;min-height:44px;border-radius:10px;border:1px solid rgba(255,255,255,.15);background:#ffffff14;color:#fff;font-size:13px}.helpItem:disabled{opacity:.45;cursor:not-allowed}.helpChoice{display:grid;gap:2px}.helpTitle{font-weight:700;font-size:13px}.helpDesc{font-size:11px;color:#ffffffb8}
