:root{--bg:#eef3ee;--paper:#fdfdfa;--rule:#6aa893;--rule-soft:#c5ddd3;--ink:#1c2a4a;--muted:#566475;--mark:#ffe36e;--mark-soft:#fff5c2;--red:#d63c2c;--red-soft:#fde3df;--on-ink:#fdfdfa;--shade:#1c2a4a73;--d-easy:#6aa893;--d-medium:#6f9bd1;--d-hard:#e0b83a;--d-expert:#d63c2c;--d-grandmaster:#1c2a4a;--d-custom:#a58bd0;--ui:"Zen Maru Gothic", "Hiragino Maru Gothic ProN", "Yu Gothic", "Meiryo", sans-serif;--hand:"Klee One", "UD Digi Kyokasho N-R", "Hiragino Maru Gothic ProN", "Yu Gothic", sans-serif;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial;--bg:#14211c;--paper:#1d2f28;--rule:#4f8a76;--rule-soft:#2f4a40;--ink:#eef1e4;--muted:#a3b3a8;--mark:#8a7417;--mark-soft:#48431f;--red:#ff8d7d;--red-soft:#4d2721;--on-ink:#14211c;--shade:#0009;--d-easy:#4f8a76;--d-medium:#5d85b8;--d-hard:#b89a2a;--d-expert:#ff8d7d;--d-grandmaster:#eef1e4;--d-custom:#8f79b8}}*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{background:var(--bg);color:var(--ink);font-family:var(--ui);min-height:100vh;margin:0;font-size:1rem;font-weight:500;line-height:1.7;overflow-x:hidden}h1,h2,h3,p{margin:0}button{font:inherit;color:inherit;touch-action:manipulation;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent}:focus-visible{outline:3px solid var(--ink);outline-offset:2px}.btn{border:1px solid var(--rule);background:var(--paper);cursor:pointer;white-space:nowrap;border-radius:999px;justify-content:center;align-items:center;gap:.4rem;min-height:2.5rem;padding:0 1.1rem;font-size:.9375rem;font-weight:700;display:inline-flex}.btn-primary{border-color:var(--ink);background:var(--ink);color:var(--on-ink)}.btn-quiet{color:var(--muted);background:0 0;border-color:#0000;font-weight:500}.btn-sm{min-height:1.9rem;padding:0 .75rem;font-size:.8125rem}.btn:disabled{opacity:.6;cursor:default}.badge{border-left:.4rem solid var(--diff,var(--rule));background:var(--paper);box-shadow:0 0 0 1px var(--rule);color:var(--muted);white-space:nowrap;flex:none;align-items:center;padding:0 .6rem 0 .5rem;font-size:.75rem;font-weight:700;line-height:1.7;display:inline-flex}.badge-easy,.diff-easy{--diff:var(--d-easy)}.badge-medium,.diff-medium{--diff:var(--d-medium)}.badge-hard,.diff-hard{--diff:var(--d-hard)}.badge-expert,.diff-expert{--diff:var(--d-expert)}.badge-grandmaster,.diff-grandmaster{--diff:var(--d-grandmaster)}.badge-custom,.diff-custom{--diff:var(--d-custom)}.badge-success{--diff:var(--rule);color:var(--ink)}.badge-warning{--diff:var(--red);color:var(--red)}.star{color:var(--rule-soft)}.star.gold{color:var(--red)}.monkey{flex:none;width:clamp(3.25rem,16vw,6.5rem)}.monkey svg{width:100%;height:auto;display:block}.bar{grid-template-columns:1fr auto 1fr;align-items:center;gap:.5rem;padding:.75rem 0;display:grid}.bar h1{font-size:clamp(1.125rem,5vw,1.5rem);font-weight:700;line-height:1.3}.home-btn{background:var(--ink);min-height:2.5rem;color:var(--on-ink);white-space:nowrap;cursor:pointer;border:0;border-radius:999px;justify-self:start;align-items:center;gap:.35rem;padding:0 1rem;font-size:.9375rem;font-weight:700;display:inline-flex}.home{grid-template-columns:minmax(0,1fr);gap:2.5rem;max-width:44rem;margin:0 auto;padding:2rem 1rem 4rem;display:grid}.home-side{grid-template-columns:minmax(0,1fr);gap:1.5rem;display:grid}.home-main{grid-template-columns:minmax(0,1fr);gap:2.5rem;display:grid}.home h2{font-size:1.125rem;font-weight:700}.hero{align-items:center;gap:clamp(.6rem,3vw,1.25rem);display:flex}.hero-text{flex:1;min-width:0}.crest{--crest:clamp(1.9rem, 8vw, 2.5rem);grid-template-columns:repeat(2, var(--crest));grid-auto-rows:var(--crest);flex:none;gap:1px;display:grid}.crest-cell{background:var(--paper);box-shadow:0 0 0 1px var(--rule);font-family:var(--hand);place-items:center;font-size:1.25rem;font-weight:600;line-height:1;display:grid}.crest-mark{background:var(--mark);color:var(--red)}@media (prefers-color-scheme:dark){.crest-mark{color:var(--ink)}}.brand{font-family:var(--hand);letter-spacing:.02em;font-size:clamp(1.75rem,8.5vw,2.125rem);font-weight:600;line-height:1.1}.lead{color:var(--muted);margin-top:.4rem;font-size:.9375rem;line-height:1.6}.mode{box-shadow:0 0 0 1px var(--rule);background:var(--rule);grid-template-columns:repeat(2,1fr);gap:1px;display:grid}.mode-option{background:var(--paper);cursor:pointer;border:0;justify-items:center;padding:.45rem .25rem;display:grid}.mode-label{white-space:nowrap;font-size:.875rem;font-weight:700;line-height:1.9}.mode-option[aria-pressed=true]{background:var(--ink);color:var(--on-ink)}.mode-option:focus-visible{outline-offset:-4px;outline-color:var(--red)}.home-actions{flex-wrap:wrap;align-items:center;gap:.5rem;display:flex}.home-actions .btn-lang-toggle{padding:0 .6rem}.section-note{color:var(--muted);font-size:.9375rem}.tiles{grid-template-columns:repeat(auto-fill,minmax(13rem,1fr));gap:.75rem;margin-top:.75rem;display:grid}.tile{border:0;border-left:.5rem solid var(--diff,var(--rule));background:var(--paper);min-width:0;box-shadow:0 0 0 1px var(--rule);text-align:left;cursor:pointer;border-radius:0;align-content:start;justify-items:start;gap:.1rem;padding:.8rem 1rem .85rem;display:grid;position:relative;overflow:hidden}.tile:hover{background:var(--mark-soft)}.tile-badge{color:var(--muted);font-size:.75rem;font-weight:700;line-height:1.3}.tile-title{font-family:var(--hand);overflow-wrap:anywhere;font-size:1.25rem;font-weight:600;line-height:1.4}.tile-record{border-top:1px solid var(--rule-soft);width:100%;color:var(--muted);flex-wrap:wrap;align-items:baseline;gap:0 .6rem;margin-top:.45rem;padding-top:.4rem;font-size:.8125rem;font-weight:700;line-height:1.4;display:flex}.tile.completed .tile-record{color:var(--ink)}.level-stars{letter-spacing:.1em;font-size:1rem}.account{border-top:1px solid var(--rule-soft);justify-items:start;gap:.6rem;padding-top:1rem;display:grid}.account-note{color:var(--muted);max-width:38rem;font-size:.9375rem}.account-state{flex-wrap:wrap;align-items:baseline;gap:.25rem .75rem;display:flex}.account-status{color:var(--muted);font-size:.875rem}.account-status.is-offline,.account-error{color:var(--red);font-size:.875rem}.game-view,.editor-view{max-width:76rem;margin:0 auto;padding:0 1rem 3rem}.game-title-box{align-items:center;gap:.75rem;min-width:0;display:flex}.game-title-box h1{overflow-wrap:anywhere;min-width:0}.game-actions{justify-self:end;align-items:center;gap:.4rem;display:flex}.timer-box{font-family:var(--hand);font-variant-numeric:tabular-nums;margin-right:.35rem;font-size:1.5rem;font-weight:600;line-height:1}.btn-icon{border:1px solid var(--rule);background:var(--paper);cursor:pointer;border-radius:999px;place-items:center;width:2.5rem;height:2.5rem;padding:0;display:grid}.btn-icon:hover,.btn:not(.btn-primary,.btn-quiet,:disabled):hover{background:var(--mark-soft)}.game-main{grid-template-columns:minmax(0,1fr) 20rem;align-items:start;gap:1.5rem;display:grid}.diagram-section,.editor-preview{background-color:var(--paper);background-image:linear-gradient(var(--rule-soft) 1px, transparent 1px), linear-gradient(90deg, var(--rule-soft) 1px, transparent 1px);box-shadow:0 0 0 1px var(--rule);background-position:-1px -1px;background-size:1.5rem 1.5rem}.diagram-section{justify-content:center;align-items:center;min-height:30rem;padding:1rem;display:flex}.svg-container{width:100%;max-width:40rem}.control-section{background:var(--paper);box-shadow:0 0 0 1px var(--rule);gap:.9rem;padding:1.1rem 1.25rem 1.25rem;display:grid}#numpad-container{gap:.9rem;display:grid}.numpad-status-banner{border-left:.5rem solid var(--rule);background:var(--bg);padding:.5rem .75rem;font-size:.8125rem;line-height:1.5}.numpad-status-banner.memo-active{border-left-color:var(--red);background:var(--mark-soft)}.target-type-selector{background:var(--rule);box-shadow:0 0 0 1px var(--rule);grid-template-columns:repeat(3,1fr);gap:1px;display:grid}.target-selector-label{background:var(--paper);color:var(--muted);grid-column:1/-1;padding:.15rem .6rem;font-size:.75rem;font-weight:700}.target-tab-btn{background:var(--paper);white-space:nowrap;cursor:pointer;border:0;padding:.5rem .15rem;font-size:.75rem;font-weight:700}.target-tab-btn.active{background:var(--ink);color:var(--on-ink)}.numpad-grid{background:var(--rule);box-shadow:0 0 0 1px var(--rule);grid-template-columns:repeat(3,1fr);gap:1px;display:grid}.numpad-btn{background:var(--paper);height:3.5rem;font-family:var(--hand);cursor:pointer;border:0;font-size:1.5rem;font-weight:600;line-height:1}.numpad-btn:hover{background:var(--mark-soft)}.numpad-btn:active{background:var(--mark)}.numpad-btn:focus-visible,.target-tab-btn:focus-visible{outline-offset:-4px;outline-color:var(--red)}.btn-del{color:var(--red)}.numpad-btn.btn-submit{background:var(--ink);color:var(--on-ink);font-family:var(--ui);font-size:1rem;font-weight:700}.numpad-toolbar{gap:.5rem;display:flex}.tool-btn{border:1px solid var(--rule);background:var(--paper);white-space:nowrap;cursor:pointer;border-radius:999px;flex:1;justify-content:center;align-items:center;gap:.4rem;min-height:2.5rem;padding:0 .6rem;font-size:.8125rem;font-weight:700;display:inline-flex}.tool-btn:hover{background:var(--mark-soft)}.tool-btn.active{border-color:var(--ink);background:var(--mark)}@media (prefers-color-scheme:light){.tool-btn.active{color:#1c2a4a}}#hint-modal-container,#victory-modal-container{display:none}#hint-modal-container.open,#victory-modal-container.open{display:block}.modal-backdrop{z-index:100;background:var(--shade);justify-content:center;align-items:center;padding:1.25rem;display:flex;position:fixed;inset:0}.hint-modal-backdrop{z-index:100;pointer-events:none;justify-content:center;align-items:flex-end;padding:1.5rem;display:flex;position:fixed;inset:0}.modal-card{background:var(--paper);width:100%;max-width:27.5rem;max-height:calc(100dvh - 2.5rem);box-shadow:0 0 0 1px var(--rule), 0 .75rem 2rem var(--shade);padding:1.5rem 1.25rem 0;overflow-y:auto}.hint-card{pointer-events:auto;max-width:34rem;box-shadow:0 0 0 2px var(--ink), 0 .75rem 2rem var(--shade);padding-top:1rem;animation:.3s cubic-bezier(.16,1,.3,1) slideUpHint}@keyframes slideUpHint{0%{opacity:0;transform:translateY(2.5rem)}to{opacity:1;transform:translateY(0)}}.modal-header{justify-content:space-between;align-items:center;gap:.75rem;margin-bottom:.75rem;display:flex}.modal-header h3{font-size:1.125rem;font-weight:700}.btn-close-icon{margin-right:-.6rem}.hint-badge{background:var(--mark);padding:.1rem .75rem;font-size:.8125rem;font-weight:700;display:inline-block}@media (prefers-color-scheme:light){.hint-badge{color:#1c2a4a}}.hint-explanation{margin-top:.6rem;font-size:1.0625rem;line-height:1.8}.hint-empty{color:var(--muted)}.modal-footer{border-top:1px solid var(--rule-soft);flex-wrap:wrap;justify-content:flex-end;gap:.5rem;margin:1.25rem -1.25rem 0;padding:.75rem 1.25rem;display:flex}.hint-nav{justify-content:space-between}.victory-card{text-align:center}.victory-monkey{width:6.5rem;margin:0 auto .5rem}.victory-header h2{color:var(--red);font-family:var(--hand);font-size:1.75rem;font-weight:600;line-height:1.3}.level-subtitle{color:var(--muted);font-size:.9375rem}.stars-display{letter-spacing:.1em;margin:.5rem 0 .75rem;font-size:2.5rem;line-height:1.2}.victory-stats{border-top:1px solid var(--rule-soft);grid-template-columns:repeat(2,1fr);display:grid}.stat-item{padding:.6rem .5rem 0;display:grid}.stat-item+.stat-item{border-left:1px solid var(--rule-soft)}.stat-label{color:var(--muted);font-size:.8125rem}.stat-value{font-family:var(--hand);font-size:1.5rem;font-weight:600;line-height:1.3}.header-status{justify-self:end}.editor-layout{grid-template-columns:20rem minmax(0,1fr);align-items:start;gap:1.5rem;display:grid}.editor-sidebar{background:var(--paper);box-shadow:0 0 0 1px var(--rule);gap:1rem;padding:1.1rem 1.25rem 1.25rem;display:grid}.editor-sidebar h3,.editor-preview h3{font-size:1rem;font-weight:700}.form-group{gap:.25rem;display:grid}.form-group label{color:var(--muted);font-size:.8125rem;font-weight:700}.form-group input,.form-group select{border:1px solid var(--rule);background:var(--paper);min-height:2.5rem;color:inherit;font:inherit;border-radius:0;padding:0 .6rem}.editor-section{justify-items:start;gap:.5rem;display:grid}.rect-list{border-top:1px solid var(--rule-soft);width:100%}.rect-editor-item{border-bottom:1px solid var(--rule-soft);flex-wrap:wrap;align-items:center;gap:.25rem .5rem;padding:.4rem 0;font-size:.875rem;display:flex}.rect-editor-item .btn{margin-left:auto}.editor-actions{border-top:1px solid var(--rule-soft);justify-content:flex-end;margin:0 -1.25rem -1.25rem;padding:.75rem 1.25rem;display:flex}.editor-preview{padding:1rem}.editor-preview h3{background:var(--paper);padding:0 .5rem;display:inline-block}.editor-svg{width:100%;height:auto;max-height:28rem;display:block}@media (width<=54rem){.game-main,.editor-layout{grid-template-columns:minmax(0,1fr)}.diagram-section{min-height:0;padding:.5rem}}@media (width<=42rem){.game-header.bar{grid-template-columns:auto 1fr}.game-title-box{grid-area:2/1/auto/-1;justify-content:center}.btn-print{display:none}.editor-header.bar{grid-template-columns:auto 1fr}.editor-header.bar h1{grid-area:2/1/auto/-1}.tiles{grid-template-columns:repeat(auto-fill,minmax(9.5rem,1fr))}.tile-title{font-size:1.0625rem}.numpad-btn{height:3rem}.hint-modal-backdrop{padding:.75rem}}@media (width>=64rem){.home{grid-template-columns:minmax(19rem,24rem) minmax(0,1fr);align-items:start;column-gap:3rem;max-width:92rem;padding:2.5rem 2rem 3rem}}@media (width>=64rem) and (height>=44rem){.home-side{position:sticky;top:2.5rem}}@media (prefers-reduced-motion:reduce){.hint-card{animation:none}}.monkey-btn{cursor:pointer;background:0 0;border:0;padding:0}.kisekae-open{background:var(--paper);box-shadow:0 0 0 1px var(--rule);text-align:left;cursor:pointer;border:0;grid-template-columns:1fr auto;align-items:baseline;gap:.3rem .75rem;padding:.65rem 1rem .75rem;display:grid}.kisekae-open:hover{background:var(--mark-soft)}.kisekae-open-label{font-size:.875rem;font-weight:700}.kisekae-open-count{font-family:var(--hand);font-size:1.375rem;font-weight:600;line-height:1.1}.kisekae-meter{background:var(--rule-soft);grid-column:1/-1;height:.4rem}.kisekae-meter span{background:var(--red);height:100%;display:block}dialog.kisekae{background:var(--paper);width:min(34rem,100% - 2rem);max-height:calc(100dvh - 2rem);color:var(--ink);box-shadow:0 0 0 1px var(--rule), 0 .75rem 2rem var(--shade);border:0;padding:0}dialog.kisekae[open]{grid-template-rows:auto auto auto minmax(0,1fr);display:grid}dialog.kisekae::backdrop{background:var(--shade)}.kisekae-head{justify-content:space-between;align-items:flex-start;gap:1rem;padding:1rem 1.25rem 0;display:flex}.kisekae-head h2{font-family:var(--hand);font-size:clamp(1.125rem,5vw,1.5rem);font-weight:600;line-height:1.3}.kisekae-summary{color:var(--muted);font-size:.875rem}.kisekae-monkey{width:clamp(6rem,30vw,8.5rem);margin:.25rem auto 0}.kisekae-detail{min-height:3.2em;color:var(--muted);text-align:center;margin:.25rem 1.25rem 0;font-size:.9375rem}.kisekae-items{grid-template-columns:repeat(auto-fill,minmax(5.25rem,1fr));gap:.6rem;padding:.75rem 1.25rem 1.5rem;display:grid;overflow-y:auto}.kisekae-item{background:var(--paper);box-shadow:0 0 0 1px var(--rule-soft);color:var(--muted);cursor:pointer;border:0;align-content:start;justify-items:center;gap:.2rem;padding:.4rem .25rem .35rem;display:grid}.kisekae-item svg{width:3.75rem;height:auto;display:block}.kisekae-item.is-earned{box-shadow:0 0 0 1px var(--rule);color:var(--ink)}.kisekae-item.is-worn{background:var(--mark-soft);box-shadow:0 0 0 2px var(--ink)}.kisekae-item:focus-visible{outline-offset:-4px;outline-color:var(--red)}.kisekae-lock{aspect-ratio:128/150;width:3.75rem;color:var(--rule);font-family:var(--hand);place-items:center;font-size:2rem;font-weight:600;display:grid}.kisekae-name{text-align:center;font-size:.8125rem;font-weight:700;line-height:1.3}.reward{background:var(--mark-soft);box-shadow:0 0 0 1px var(--rule);justify-items:center;gap:.4rem;margin-top:.75rem;padding:.75rem 1rem;animation:.45s ease-out .3s both rewardPop;display:grid}.reward h3{color:var(--red);font-family:var(--hand);font-size:1.25rem;font-weight:600;line-height:1.3}.reward-list{margin:0;padding:0;font-size:.9375rem;font-weight:700;list-style:none}@keyframes rewardPop{0%{opacity:0;transform:scale(.9)}to{opacity:1;transform:scale(1)}}@media (prefers-reduced-motion:reduce){.reward{animation:none}}.maze-svg{-webkit-user-select:none;user-select:none;width:100%;height:auto;display:block}.rect-group{cursor:pointer}.maze-rect{fill:var(--paper);stroke:var(--ink);stroke-width:2.5px;transition:fill .2s}.rect-group:hover .maze-rect{fill:var(--mark-soft)}.maze-rect.active-rect{fill:var(--mark-soft)!important;stroke:var(--ink)!important;stroke-width:4.5px!important}.maze-rect.highlighted-rect{animation:.9s infinite alternate pulseHighlight;fill:var(--red-soft)!important;stroke:var(--red)!important;stroke-width:4.5px!important}.maze-rect.question-rect{stroke-dasharray:6 3;animation:20s linear infinite strokeDash;fill:var(--mark-soft)!important;stroke:var(--red)!important;stroke-width:3.5px!important}@keyframes strokeDash{to{stroke-dashoffset:-100px}}@keyframes pulseHighlight{0%{fill-opacity:.35}to{fill-opacity:1}}.area-label{font-family:var(--hand);fill:var(--ink);pointer-events:none;font-size:20px;font-weight:600}.edge-label{font-family:var(--ui);fill:var(--ink);pointer-events:none;font-size:13px;font-weight:700}.question-label{font-family:var(--hand);fill:var(--red)!important;font-size:28px!important;font-weight:600!important}.note-label{font-family:var(--hand);fill:var(--muted);pointer-events:none;font-size:15px;font-weight:600}.edge-bg{fill:var(--bg);stroke:var(--rule);stroke-width:1px;cursor:pointer;transition:fill .2s}.edge-group:hover .edge-bg{stroke:var(--ink)}.edge-bg.active-edge-bg{fill:var(--mark)!important;stroke:var(--ink)!important;stroke-width:2px!important}.edge-bg.note-edge-bg{fill:var(--mark-soft)!important;stroke:var(--rule)!important;stroke-width:1.5px!important}.note-edge-label{fill:var(--muted)!important;font-weight:700!important}.edge-bg.active-edge-bg+.note-edge-label{fill:var(--ink)!important}.placeholder-edge-bg{opacity:.6;stroke-dasharray:3 3}.edge-group:hover .placeholder-edge-bg{opacity:1}.placeholder-label{fill:var(--muted)!important;font-size:11px!important}.hint-focus-bg{fill:var(--red)}.hint-focus-label{font-family:var(--ui);pointer-events:none;fill:var(--on-ink)!important;font-size:10px!important;font-weight:700!important}@media (prefers-reduced-motion:reduce){.maze-rect.highlighted-rect,.maze-rect.question-rect{animation:none}}
