:root{color:#362c42;font-synthesis:none;--plum:#73518f;--muted:#766980;--line:#ded6e5;--surface:#fffdf9;--control-radius:14px;--touch-target-height:44px;--primary-control-height:52px;--interaction-duration:.15s;--shell-width:1400px;--companion-width:300px;--mascot-size:288px;--dock-height:208px;--safe-area-top:env(safe-area-inset-top,0px);--safe-area-bottom:env(safe-area-inset-bottom,0px);background:#f3f0f6;font-family:Yu Gothic UI,Hiragino Kaku Gothic ProN,Noto Sans JP,sans-serif;font-weight:500}*{box-sizing:border-box}body{margin:0;overflow:hidden}button,input,a{-webkit-tap-highlight-color:transparent}button{font:inherit;cursor:pointer;border:1px solid var(--line);background:var(--surface);color:inherit;border-radius:var(--control-radius);min-height:var(--touch-target-height);transition:background var(--interaction-duration), transform var(--interaction-duration)}button:hover{background:#f0eaf5}button:active,button.pressed{background:#e1d6eb;transform:translateY(2px)}button:disabled{cursor:default;opacity:.38;transform:none}button:focus-visible,a:focus-visible,input:focus-visible{outline-offset:3px;outline:3px solid #987bbb}button.primary{background:var(--plum);color:#fff;border-color:var(--plum);min-height:var(--primary-control-height);font-weight:700}button.primary:hover{background:#62417d}small{font-size:12px;font-weight:500}a{color:inherit;text-underline-offset:3px}[hidden]{display:none!important}.shell{max-width:var(--shell-width);flex-direction:column;height:100dvh;margin:auto;padding:0 24px;display:flex}.masthead{flex:none;align-items:center;gap:20px;height:76px;display:flex}.brand{min-width:0}.brand .eyebrow,.brand>p{display:none}.brand h1{white-space:nowrap;letter-spacing:-.09em;margin:0;font-size:32px;font-weight:900;line-height:1.2}.brand h1 span{color:var(--plum)}.edition{color:var(--muted);margin-left:auto;font-size:11px}.edition b{margin-left:16px;font-size:9px;font-weight:500}.icon-button{min-width:var(--touch-target-height);width:var(--touch-target-height);height:var(--touch-target-height);min-height:var(--touch-target-height);background:0 0;border-radius:50%;font-size:22px}.masthead .icon-button{border:none}.layout{grid-template-columns:minmax(0, 1fr) var(--companion-width);flex:1;grid-template-rows:minmax(0,1fr);gap:24px;min-height:0;display:grid}.layout>*{min-width:0}.board{border:1px solid var(--line);background:var(--surface);border-radius:24px;flex-direction:column;grid-area:1/1;min-width:0;min-height:0;display:flex;position:relative;overflow:hidden;box-shadow:0 8px 30px #45305208}.eyebrow{letter-spacing:.12em;color:var(--muted);font-size:10px;font-weight:700;display:block}.hud{border-bottom:1px solid var(--line);background:var(--surface);z-index:3;flex-shrink:0;align-items:center;gap:18px;height:78px;padding:14px 24px;display:flex}.height-block,.active-label{min-width:0}.height-block strong{font-variant-numeric:tabular-nums;font-size:30px;font-weight:750;line-height:1.3;display:block}.height-block small{color:var(--muted);font-size:13px}.life-block{margin-left:auto}.life-block .eyebrow{font-size:9px}.life-block>span:last-child{white-space:nowrap;color:#b57090;margin-top:4px;font-size:18px;display:block}.hud .icon-button{font-size:16px}.play-space{isolation:isolate;background:linear-gradient(#f7f3fc,#fffdf9 75%);flex:1;min-height:0;position:relative}#stage{touch-action:none;position:absolute;inset:0}#stage canvas{max-width:100%;max-height:100%;display:block!important}.active-label{pointer-events:none;background:#fffdf7ed;border:1px solid #e5dceb;border-radius:20px;align-items:center;gap:8px;max-width:calc(100% - 36px);padding:6px 10px;font-size:12px;display:flex;position:absolute;top:14px;left:18px}#active-name{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.live-dot{background:var(--plum);border-radius:50%;flex:none;width:6px;height:6px}.active-label small{color:#685078;background:#eee7f1;border-radius:4px;padding:2px 5px;font-size:10px}.base-label{text-align:center;color:#647359;pointer-events:none;letter-spacing:.1em;font-size:10px;position:absolute;bottom:12px;left:0;right:0}.character-column{flex-direction:column;grid-area:1/2;justify-content:center;min-height:0;display:flex}.character{min-width:0;position:relative}.speech{background:var(--surface);border:1px solid var(--line);overflow-wrap:anywhere;border-radius:16px;max-width:100%;min-height:42px;margin:0 auto 12px;padding:12px 16px;font-size:12px;line-height:1.6;position:relative}.speech:after{content:"";background:var(--surface);border-right:1px solid var(--line);border-bottom:1px solid var(--line);width:10px;height:10px;position:absolute;bottom:-6px;right:45px;transform:rotate(45deg)}.mascot-frame{width:min(100%, var(--mascot-size));aspect-ratio:1;isolation:isolate;margin:0 auto;position:relative}.character .mascot-frame img{object-fit:contain;pointer-events:none;-webkit-user-select:none;user-select:none;width:100%;max-width:none;height:100%;position:absolute;inset:0;transform:none}.mascot-body{z-index:0}.mascot-frame canvas{z-index:2;pointer-events:none;position:absolute}.character .mascot-frame .mascot-hands{z-index:3}.next-caption{color:#60491b;z-index:4;background:#fff3bd;border:1px solid #e9cf79;border-radius:9px;padding:4px 9px;font-size:11px;font-weight:700;line-height:1.5;position:absolute;top:0;right:0}.character-name{text-align:center;letter-spacing:.1em;color:var(--muted);margin-top:5px;font-size:10px;display:block}.mascot-expression{z-index:1;pointer-events:none;display:none;position:absolute;inset:0}[data-expression=normal] .expression-normal,[data-expression=happy] .expression-happy,[data-expression=surprised] .expression-surprised,[data-expression=worried] .expression-worried,[data-expression=jitome] .expression-jitome{display:block}.info-column{margin-top:22px}.stats-card{border-top:1px solid var(--line);grid-template-columns:1fr 1fr;gap:0 20px;display:grid}.stats-card>div{border-bottom:1px solid var(--line);min-width:0;padding:13px 0}.stats-card>div>span{color:var(--muted);margin-bottom:4px;font-size:10px;display:block}.stats-card strong{white-space:nowrap;font-size:21px;font-weight:650}.stats-card small{color:var(--muted);font-size:10px}.text-button{color:var(--muted);background:0 0;border:none;padding:0;font-size:11px}.controls{border-top:1px solid var(--line);background:var(--surface);z-index:3;flex:none;padding:12px 20px}.drag-pad{touch-action:none;-webkit-user-select:none;user-select:none;text-align:center;color:#694d7e;background:#f3edf8;border:1px dashed #c9b8d6;border-radius:12px;padding:10px 5px;font-size:11px;display:none}.drag-pad>span{vertical-align:middle;margin-right:6px;font-size:20px}.drag-pad small{color:var(--muted);margin-left:8px;font-size:9px}.action-row{gap:10px;display:flex}.action-row button{min-width:64px;height:var(--primary-control-height);touch-action:none;justify-content:center;align-items:center;gap:6px;display:flex}.action-row button b{font-size:25px;font-weight:400}.action-row button span{font-size:11px}.action-row .drop{gap:20px;min-width:45%;margin-left:auto;font-size:15px}.mouse-hint{text-align:center;color:var(--muted);padding-top:9px;font-size:10px}.mouse-hint i{padding:0 7px}.panel h2{font-weight:700}.welcome{text-align:left;border:1px solid var(--line);background:#fffdf9f2;border-radius:23px;width:84%;max-width:330px;max-height:calc(100% - 24px);padding:28px;position:absolute;top:42%;left:50%;overflow:auto;transform:translate(-50%,-50%);box-shadow:0 12px 40px #6c537e0b}.welcome h2{margin:14px 0;font-size:40px;line-height:1.35}.welcome p{color:var(--muted);margin:0 0 22px;font-size:12px;line-height:1.9}.welcome .primary{justify-content:space-between;align-items:center;width:100%;padding:0 20px;font-size:15px;display:flex}.welcome .primary span{font-size:21px}.welcome-note{text-align:center;color:var(--muted);margin-top:12px;font-size:9px;display:block}.pause-panel,.result-panel{border-top:1px solid var(--line);background:var(--surface);z-index:4;flex-shrink:0;padding:18px 20px}.pause-panel h2{margin:8px 0;font-size:18px}.pause-panel p{color:var(--muted);margin:0 0 14px;font-size:12px}.pause-panel .primary,.result-panel>.primary{width:100%}.result-heading{justify-content:space-between;align-items:center;gap:8px;margin-top:4px;display:flex}.result-heading strong{color:var(--plum);font-size:38px;font-weight:750}.result-heading small{font-size:14px}.result-heading>span{color:var(--muted);font-size:11px}.result-panel p{color:var(--muted);margin:3px 0 14px;font-size:11px}.result-actions{gap:8px;margin-top:8px;display:flex}.result-actions button{flex:1;font-size:12px}.result-panel.new-best{background:linear-gradient(120deg,#f5eef9,#fffaf0)}.new-best .eyebrow{color:#976d24}footer{height:32px;color:var(--muted);flex:none;justify-content:space-between;align-items:center;font-size:9px;display:flex}dialog{border:1px solid var(--line);color:inherit;background:var(--surface);border-radius:22px;width:calc(100% - 32px);max-width:520px;max-height:calc(100dvh - 40px);padding:30px;overflow:auto;box-shadow:0 20px 90px #44375030}dialog::backdrop{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#44375060}dialog h2{margin:12px 0 18px;padding-right:20px;font-size:20px}dialog p,dialog dd{color:var(--muted);font-size:12px;line-height:1.9}dialog dt{margin-top:17px;font-size:12px;font-weight:700}dialog dd{margin:6px 0 0}dialog .dialog-close{border:none;position:absolute;top:12px;right:12px}dialog .primary{width:100%;margin-top:10px}.small{color:var(--muted)!important;font-size:10px!important}.volume-label{justify-content:space-between;margin-top:26px;font-size:12px;display:flex}input[type=range]{width:100%;accent-color:var(--plum);margin:16px 0}.toast{color:#fff;z-index:30;background:#443750ee;border-radius:12px;width:max-content;max-width:90%;padding:13px 20px;font-size:12px;position:fixed;bottom:24px;left:50%;transform:translate(-50%);box-shadow:0 5px 20px #44375020}#result-image{object-fit:contain;border-radius:10px;width:100%;max-height:60dvh;display:block}.orientation{z-index:50;text-align:center;background:#f8f5ef;flex-direction:column;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.orientation>span{color:var(--plum);font-size:52px}.orientation h2{font-size:25px}.orientation p{color:var(--muted);font-size:13px;line-height:1.9}.loading{text-align:center;flex-direction:column;justify-content:center;align-items:center;min-height:100dvh;padding:25px;display:flex}.loading p{color:var(--muted);font-size:13px}.loading-mark{color:var(--plum);font-size:60px;font-weight:900}.loading button{padding:0 30px}@media (pointer:coarse){.drag-pad{margin-bottom:8px;display:block}.mouse-hint{display:none}.controls{padding-bottom:max(12px, var(--safe-area-bottom))}}@media (min-width:701px) and (max-width:1100px){:root{--companion-width:232px;--mascot-size:232px}.shell{padding:0 16px}.layout{gap:16px}.masthead{height:60px}.hud{gap:10px;padding:12px 16px}.height-block strong{font-size:27px}.life-block>span:last-child{font-size:15px}.controls{padding:10px 12px}.action-row .drop{min-width:40%}.speech{font-size:11px}.stats-card{gap:0 12px}.stats-card>div>span{font-size:9px}}@media (max-width:700px){:root{--mascot-size:164px}.shell{padding:var(--safe-area-top) 0 0}.masthead{gap:10px;height:52px;padding:0 12px}.brand h1{font-size:27px}.edition{font-size:9px}.edition b{display:none}.layout{grid-template-rows:auto minmax(0,1fr) auto;grid-template-columns:minmax(0,44%) minmax(0,1fr);gap:0;display:grid}.board{display:contents}.hud{border-top:1px solid var(--line);grid-area:1/1/2/3;gap:10px;height:62px;padding:9px 12px}.hud .eyebrow{font-size:9px}.height-block strong{font-size:26px}.life-block>span:last-child{font-size:16px}.play-space{grid-area:2/1/3/3}.active-label{font-size:11px;top:10px;left:10px}.character-column{height:calc(var(--dock-height) + var(--safe-area-bottom));background:var(--surface);border-top:1px solid var(--line);padding:6px 0 max(4px, var(--safe-area-bottom));grid-area:3/1;justify-content:end}.character{flex-direction:column;align-items:center;min-height:0;display:flex}.speech{text-align:center;background:0 0;border:none;width:calc(100% - 12px);min-height:28px;margin:0 6px;padding:0 2px;font-size:10px;line-height:1.4}.speech:after{display:none}.mascot-frame{width:min(100%, var(--mascot-size));flex:none}.next-caption{padding:2px 6px;font-size:9px;top:3px;right:0}.character-name,.info-column,footer{display:none}.controls{height:calc(var(--dock-height) + var(--safe-area-bottom));padding:12px 12px max(12px, var(--safe-area-bottom)) 8px;flex-direction:column;grid-area:3/2;justify-content:center;display:flex}.drag-pad{min-height:var(--touch-target-height);margin-bottom:8px;padding:8px 3px;font-size:10px}.drag-pad>span{margin-right:3px;font-size:17px}.drag-pad small{display:none}.action-row{grid-template-columns:1fr 1fr;gap:8px;display:grid}.action-row button{width:100%;min-width:0;height:var(--primary-control-height)}.action-row .drop{grid-column:1/3;min-width:0;margin:0}.mouse-hint{display:none}.pause-panel,.result-panel{padding:12px 14px max(12px, var(--safe-area-bottom));grid-area:3/1/4/3}:is(.layout:has(.board[data-phase=paused]) .character-column,.layout:has(.board[data-phase=over]) .character-column){display:none}.layout:has(.board[data-phase=menu]) .character-column{height:calc(var(--dock-height) + var(--safe-area-bottom));grid-column:1/3}.layout:has(.board[data-phase=menu]) .speech{max-width:280px}.welcome{max-width:310px;padding:22px;top:44%}.welcome h2{font-size:34px}.welcome p{margin-bottom:16px;font-size:11px}.result-heading strong{font-size:30px}.result-heading>span{font-size:10px}.pause-panel p{font-size:11px}dialog{padding:24px}dialog h2{font-size:18px}}@media (max-width:700px) and (max-height:700px){:root{--dock-height:180px;--mascot-size:140px;--primary-control-height:44px}.masthead{height:44px}.hud{height:56px}.speech{min-height:25px;font-size:9px}.controls{padding-top:8px;padding-bottom:max(8px, var(--safe-area-bottom))}.drag-pad{padding:4px 2px}.welcome{padding:18px}.welcome h2{margin:8px 0;font-size:29px}.result-panel p{margin-bottom:8px}}@media (max-width:360px){.brand h1{font-size:24px}.edition{font-size:8px}.masthead{gap:6px;padding:0 8px}.hud{gap:6px;padding-left:10px;padding-right:10px}.life-block>span:last-child{font-size:14px}.controls{padding-left:4px;padding-right:8px}.next-caption{font-size:8px}}@media (min-width:701px) and (max-height:700px){:root{--mascot-size:200px}.masthead{height:52px}.info-column{margin-top:10px}.stats-card>div{padding:8px 0}}@media (prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}
