:root,:root[data-theme=dark]{--bg: #0b0d12;--bg-2: #141822;--bg-3: #1c2231;--fg: #e8ecf3;--fg-dim: #97a0b3;--accent: #ff5d8f;--accent-soft: #3a1e2c;--accent-2: #6dd3ff;--accent-3: #c9a8ff;--danger: #ff6b6b;--ok: #6bff9c;--border: #2a3142;--panel-bg: rgba(11, 13, 18, .7);--panel-bg-strong: rgba(11, 13, 18, .92);--panel-border: var(--border);--shadow-sm: 0 2px 8px rgba(0, 0, 0, .35);--shadow-md: 0 4px 16px rgba(0, 0, 0, .45);--shadow-lg: 0 8px 32px rgba(0, 0, 0, .55);--body-bg: var(--bg);--radius-sm: 8px;--radius-md: 10px;--radius-lg: 12px;--battle-char-bottom: 100px;--battle-char-height: 85%;--battle-char-max-width: 60%;--battle-status-width: min(360px, 90%);--battle-status-pad: 12px;--battle-status-gap: 10px;--battle-status-name-font: 13px;--battle-status-bar-h: 10px;--battle-status-bar-font: 11px;--battle-mp-dot: 12px;--battle-log-pad: 14px 16px;--battle-log-min-h: 96px;--battle-log-font: 16px;--battle-log-line-font: 18px;--battle-log-text-font: 14px;--battle-log-gap: 8px;--battle-action-pad: 8px;--battle-action-btn-pad: 10px 12px;--battle-action-btn-font: 14px;--battle-iconbtn-size: 40px;--battle-iconbtn-font: 16px;--battle-uihide-size: 44px;--battle-uihide-font: 18px;--battle-history-btn-pad: 2px 10px;--battle-history-btn-font: 12px;--battle-history-btn-h: 24px;--battle-bottom-right-reserve: 0px;color-scheme:dark}:root[data-theme=light]{--bg: #fff7ec;--bg-2: #ffffff;--bg-3: #fdebef;--fg: #3a2a1f;--fg-dim: #8a786c;--accent: #ff7aa8;--accent-soft: #ffd5e3;--accent-2: #8ab8ff;--accent-3: #c9a8ff;--danger: #e85a6c;--ok: #6dc090;--border: #f1d9c8;--panel-bg: rgba(255, 247, 236, .9);--panel-bg-strong: rgba(255, 247, 236, .96);--panel-border: var(--accent-soft);--shadow-sm: 0 2px 8px rgba(255, 122, 168, .08);--shadow-md: 0 4px 16px rgba(255, 122, 168, .12);--shadow-lg: 0 8px 32px rgba(255, 122, 168, .18);--body-bg: radial-gradient( circle at 12% 8%, rgba(255, 213, 227, .55), transparent 45% ), radial-gradient( circle at 88% 92%, rgba(201, 168, 255, .35), transparent 50% ), var(--bg);color-scheme:light}:root{font-family:Hiragino Maru Gothic ProN,Hiragino Maru Gothic Pro,Hiragino Sans,Noto Sans JP,system-ui,-apple-system,Segoe UI,sans-serif;background:var(--bg);color:var(--fg)}*{box-sizing:border-box}html,body,#root{margin:0;padding:0;height:100%}body{background:var(--body-bg);color:var(--fg)}button{font:inherit;cursor:pointer;border:1px solid var(--border);background:var(--bg-2);color:var(--fg);border-radius:var(--radius-md);padding:8px 14px;box-shadow:var(--shadow-sm);transition:background .15s,border-color .15s,box-shadow .2s,transform .05s}button:hover:not(:disabled){background:var(--accent-soft);border-color:var(--accent);box-shadow:var(--shadow-md)}button:active:not(:disabled){transform:translateY(1px);box-shadow:var(--shadow-sm)}button:disabled{opacity:.5;cursor:not-allowed;box-shadow:none}select,input,textarea{font:inherit;background:var(--bg-2);color:var(--fg);border:1px solid var(--border);border-radius:var(--radius-sm);padding:6px 10px}a{color:var(--accent)}a:hover{color:var(--accent-2)}code{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;background:var(--bg-3);color:var(--fg);padding:1px 6px;border-radius:4px}.app-shell{min-height:100%;display:flex;flex-direction:column}button.btn-accent{background:var(--accent);color:#fff;border-color:var(--accent);box-shadow:var(--shadow-md)}button.btn-accent:hover:not(:disabled){background:var(--accent);border-color:var(--accent);filter:brightness(1.08);box-shadow:var(--shadow-lg)}@keyframes wiggle{0%,to{transform:rotate(0)}25%{transform:rotate(-6deg)}75%{transform:rotate(6deg)}}.wiggle{animation:wiggle .6s ease-in-out 1}@media (max-width: 640px){:root,:root[data-theme=dark],:root[data-theme=light]{--battle-char-bottom: 70px;--battle-char-height: 70%;--battle-char-max-width: 92%;--battle-status-width: calc(100% - 100px) ;--battle-status-pad: 8px;--battle-status-gap: 6px;--battle-status-name-font: 12px;--battle-status-bar-h: 8px;--battle-status-bar-font: 10px;--battle-mp-dot: 10px;--battle-log-pad: 10px 12px;--battle-log-min-h: 76px;--battle-log-font: 14px;--battle-log-line-font: 16px;--battle-log-text-font: 12px;--battle-log-gap: 4px;--battle-action-pad: 6px;--battle-action-btn-pad: 8px 10px;--battle-action-btn-font: 13px;--battle-iconbtn-size: 34px;--battle-iconbtn-font: 14px;--battle-uihide-size: 36px;--battle-uihide-font: 14px;--battle-history-btn-pad: 1px 8px;--battle-history-btn-font: 11px;--battle-history-btn-h: 20px;--battle-bottom-right-reserve: 44px}}.top-page{max-width:1280px;margin:0 auto;padding:24px;display:flex;flex-direction:column;gap:14px;position:relative}.hero{position:relative;width:100%;border-radius:var(--radius-lg);overflow:hidden;box-shadow:var(--shadow-md);background:#000}.hero-img{width:100%;height:auto;display:block}.hero-overlay{position:absolute;left:0;right:0;bottom:0;padding:32px 24px 28px;background:linear-gradient(to bottom,#0000 0% 30%,#0000008c 75%,#000000d1);display:flex;flex-direction:column;align-items:center;gap:10px;text-align:center}.hero-title{font-size:clamp(22px,4vw,40px);margin:0;font-weight:800;background:linear-gradient(90deg,var(--accent),var(--accent-3));-webkit-background-clip:text;-webkit-text-fill-color:transparent;text-shadow:0 2px 8px rgba(0,0,0,.4);letter-spacing:.02em}.hero-tagline{font-size:clamp(11px,1.4vw,14px);color:#ffffffd9;margin:0;text-shadow:0 1px 4px rgba(0,0,0,.6)}.cta-row{display:flex;gap:12px;align-items:center;flex-wrap:wrap;justify-content:center;margin-top:4px}.mode-tabs{display:flex;gap:4px;flex-wrap:wrap;justify-content:center}.mode-tab{padding:5px 14px;font-size:12px;font-weight:600;border-radius:999px;background:#ffffff14;border:1px solid rgba(255,255,255,.22);color:#ffffffd9;box-shadow:none}.mode-tab:hover:not(:disabled){background:#ffffff29;border-color:#fff6}.mode-tab.active{background:var(--accent);border-color:var(--accent);color:#fff}.mode-tab.active:hover:not(:disabled){background:var(--accent);filter:brightness(1.08)}.mode-tab:disabled{background:#ffffff0a;color:#ffffff59;border-color:#ffffff1a}.mode-tab.locked{opacity:.7;cursor:pointer}.mode-tab.locked:hover{opacity:1}.start-btn{padding:10px 28px;font-size:15px;font-weight:800;min-width:220px;letter-spacing:.04em}.theme-toggle{position:absolute;top:12px;right:12px;width:40px;height:40px;padding:0;display:flex;align-items:center;justify-content:center;font-size:18px;background:#00000080;border-color:#ffffff40;color:#fff;z-index:5;backdrop-filter:blur(4px)}.status-bar{display:flex;flex-wrap:wrap;justify-content:center;align-items:center;gap:8px;font-size:12px;color:var(--fg-dim)}.status-pill{padding:4px 12px;font-size:12px;border-radius:999px}.status-pill-ok{color:var(--ok);border-color:var(--ok)}.status-pill-accent{color:var(--accent);border-color:var(--accent)}.status-pill-danger{color:var(--danger);border-color:var(--danger)}.api-warning{width:100%;padding:12px 14px;border:1px solid var(--danger);border-radius:var(--radius-md);background:var(--bg-2);font-size:13px;color:var(--fg)}.api-warning code{font-size:11px}.top-footer{text-align:center;color:var(--fg-dim);font-size:12px;margin-top:4px}@media (max-width: 640px){.top-page{padding:12px;gap:12px}.hero{aspect-ratio:1 / 1.3;overflow:hidden}.hero-img{width:100%;height:100%;object-fit:cover;object-position:top center}.hero-overlay{bottom:0;padding:14px;gap:8px;background:linear-gradient(to bottom,#0000,#0006 45%,#000000d9)}.start-btn{padding:10px 20px;font-size:14px;min-width:0}.mode-tab{padding:4px 10px;font-size:11px}.theme-toggle{width:36px;height:36px;font-size:16px;top:8px;right:8px}}.char-select-page{max-width:1920px;margin:0 auto;padding:24px 32px}.char-select-header{display:flex;align-items:center;gap:12px;margin-bottom:16px;flex-wrap:wrap}.char-select-hint{font-size:12px;color:var(--fg-dim);margin:0 0 12px;text-align:center;padding:6px 12px;background:var(--bg-2);border-radius:var(--radius-md);border:1px dashed var(--border)}.char-select-grid{display:grid;grid-template-columns:280px minmax(0,1fr);gap:20px;align-items:start}.char-preview{position:sticky;top:16px;display:flex;flex-direction:column;gap:12px;padding:16px;border-radius:var(--radius-lg);background:var(--bg-2);box-shadow:var(--shadow-md);border:2px solid var(--accent)}.char-preview-img{position:relative;width:100%;aspect-ratio:3 / 4;border-radius:var(--radius-md);overflow:hidden;background:#000}.char-preview-name{font-size:18px;font-weight:700;margin:0}.char-preview-role{font-size:13px;color:var(--fg-dim);margin:-8px 0 0}.char-preview-special{display:inline-block;padding:4px 10px;font-size:11px;line-height:1.4;border-radius:999px;background:var(--accent-soft);color:var(--accent);border:1px solid var(--accent);align-self:flex-start;word-break:break-word;max-width:100%}.char-preview-start{padding:10px 14px;font-size:14px;font-weight:800;line-height:1.3;word-break:break-word}.char-cards{display:grid;grid-template-columns:repeat(2,1fr);gap:16px;min-width:0}@media (min-width: 1700px){.char-cards{grid-template-columns:repeat(3,1fr)}}.char-card{display:flex;flex-direction:column;gap:6px;padding:8px;text-align:left}.char-card.active{border-color:var(--accent);border-width:2px;background:var(--accent-soft);box-shadow:var(--shadow-md)}.char-card-img{position:relative;width:100%;aspect-ratio:1 / 1;background:#000;border-radius:6px;overflow:hidden}.char-card-name{font-size:14px;font-weight:600}.char-card-role{font-size:12px;color:var(--fg-dim)}@media (max-width: 768px){.char-select-page{padding:12px}.char-select-grid{grid-template-columns:1fr;gap:12px}.char-preview{top:0;z-index:10;flex-direction:row;gap:10px;padding:10px}.char-preview-img{width:88px;aspect-ratio:3 / 4;flex-shrink:0}.char-preview-info{display:flex;flex-direction:column;gap:6px;min-width:0;flex:1}.char-preview-name{font-size:15px}.char-preview-role{font-size:11px}.char-preview-special{font-size:10px;padding:3px 9px}.char-preview-start{padding:8px 14px;font-size:13px}.char-cards{grid-template-columns:repeat(2,1fr);gap:8px}.char-card-name{font-size:12px}.char-card-role{font-size:11px}}.part-hit-flash{position:fixed;pointer-events:none;z-index:80;border:4px solid #ff2244;border-radius:50%;transform:translate(-50%,-50%) scale(0);opacity:1;box-shadow:0 0 18px #f24c;animation:part-hit-flash-anim .38s ease-out forwards}@keyframes part-hit-flash-anim{0%{transform:translate(-50%,-50%) scale(0);opacity:1}35%{transform:translate(-50%,-50%) scale(1);opacity:1}to{transform:translate(-50%,-50%) scale(1.4);opacity:0}}.part-guide{display:flex;flex-direction:column;gap:6px;padding:8px 10px;background:var(--panel-bg-strong);backdrop-filter:blur(6px);border:1px solid var(--panel-border);border-radius:var(--radius-md);font-size:13px;pointer-events:none}.part-guide-toggle{align-self:flex-start;padding:4px 10px;font-size:12px;border-radius:999px;background:transparent;border:1px solid var(--border);color:var(--fg-dim);box-shadow:none;pointer-events:auto}.part-guide-toggle:hover:not(:disabled){border-color:var(--accent);color:var(--accent)}.part-guide-panel{display:flex;flex-direction:column;gap:6px}.part-guide-lead{margin:0;font-size:12px;color:var(--fg-dim)}.part-guide-list{margin:0;padding:0;list-style:none;display:flex;flex-direction:column;gap:4px}.part-guide-list li{font-size:13px;line-height:1.4}.part-guide-part{font-weight:700}.part-guide-arrow{color:var(--fg-dim);margin:0 2px}.scenario-toggle{display:flex;align-items:center;justify-content:center;gap:12px;padding:10px 14px;background:var(--bg-2);border:1px solid var(--border);border-radius:var(--radius-md);font-size:13px;margin-bottom:8px}.role-select{display:flex;flex-direction:column;gap:8px;padding:10px 14px;background:var(--bg-2);border:1px solid var(--accent-soft);border-radius:var(--radius-md);margin-bottom:8px}.role-select-lead{margin:0;font-size:12px;color:var(--fg-dim);text-align:center}.role-select-fields{display:grid;grid-template-columns:1fr 1fr 1fr;gap:10px;align-items:end}.role-select-field{display:flex;flex-direction:column;gap:3px;font-size:12px;color:var(--fg-dim)}.role-select-label{font-weight:600;color:var(--fg);font-size:11px}.role-select-field select{width:100%;padding:6px 8px;font-size:13px}@media (max-width: 640px){.role-select-fields{grid-template-columns:1fr;gap:6px}.role-select-field{flex-direction:row;align-items:center;gap:8px}.role-select-label{min-width:36px;flex-shrink:0}.role-select-field select{flex:1}}.scenario-toggle-label{display:flex;align-items:center;gap:6px;cursor:pointer;user-select:none}.scenario-toggle-note{font-size:11px;color:var(--fg-dim);margin-left:auto}.judgment-label{position:absolute;bottom:12px;left:50%;transform:translate(-50%);padding:6px 14px;border-radius:999px;font-size:14px;font-weight:700;background:var(--panel-bg-strong);border:1px solid var(--accent);color:var(--accent);pointer-events:none;z-index:60;animation:judgment-label-anim 1.5s ease-out forwards}.judgment-label.judgment-chest{color:var(--accent);border-color:var(--accent)}.judgment-label.judgment-crit{color:var(--accent-2);border-color:var(--accent-2)}.judgment-label.judgment-miss{color:var(--fg-dim);border-color:var(--fg-dim)}@keyframes judgment-label-anim{0%{opacity:0;transform:translate(-50%) translateY(8px)}20%{opacity:1;transform:translate(-50%) translateY(0)}80%{opacity:1;transform:translate(-50%) translateY(0)}to{opacity:0;transform:translate(-50%) translateY(-8px)}}.scenario-screen{position:fixed;inset:0;z-index:30;background:var(--bg);display:flex;align-items:center;justify-content:center;overflow:hidden}.scenario-bg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:.35;filter:blur(2px) brightness(.6);pointer-events:none}.scenario-overlay{position:relative;width:min(720px,92%);max-height:92vh;padding:28px 32px;background:var(--panel-bg-strong);backdrop-filter:blur(8px);border:1px solid var(--panel-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);display:flex;flex-direction:column;gap:16px}.scenario-header{display:flex;align-items:baseline;gap:12px;border-bottom:1px solid var(--border);padding-bottom:10px}.scenario-title{font-size:14px;font-weight:700;color:var(--accent);letter-spacing:.05em}.scenario-subtitle{font-size:13px;color:var(--fg-dim)}.scenario-text{font-size:16px;line-height:1.9;color:var(--fg);white-space:pre-wrap;word-break:break-word;flex:1;overflow-y:auto;min-height:200px;padding:4px 2px}.scenario-cursor{display:inline-block;margin-left:2px;color:var(--accent);animation:scenario-cursor-blink .9s steps(2) infinite}@keyframes scenario-cursor-blink{0%,to{opacity:1}50%{opacity:0}}.scenario-garbled-warn{padding:6px 10px;font-size:12px;color:var(--accent-2);background:#6dd3ff14;border:1px solid var(--accent-2);border-radius:var(--radius-sm);line-height:1.5}.scenario-garbled-warn code{background:#ffffff14;padding:0 4px}.scenario-actions{display:flex;justify-content:flex-end;align-items:center;flex-wrap:wrap;gap:8px;border-top:1px solid var(--border);padding-top:12px}.scenario-continue{padding:10px 28px;font-size:15px;font-weight:800;min-width:200px}.scenario-lock-notice{flex:1 1 100%;padding:10px 14px;background:#ff5b8f14;border:1px solid var(--accent);border-radius:var(--radius-md);color:var(--accent);font-size:13px;line-height:1.5;text-align:center}.scenario-lock-notice-sub{display:block;margin-top:4px;font-size:11px;color:var(--fg-dim)}.scenario-completion-notice{flex:1 1 100%;padding:10px 14px;background:#78c8961a;border:1px solid rgba(120,200,150,.55);border-radius:var(--radius-md);color:var(--fg);font-size:13px;line-height:1.5;text-align:center}.scenario-completion-notice-sub{display:block;margin-top:4px;font-size:11px;color:var(--fg-dim)}.scenario-end2-choices{flex:1 1 100%;display:flex;flex-direction:column;gap:8px}.scenario-end2-choices-heading{font-size:13px;font-weight:700;color:var(--accent);text-align:center}.scenario-end2-choice-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:8px}.scenario-end2-choice-card{display:flex;flex-direction:column;gap:6px;padding:12px 14px;background:var(--panel-bg);border:1px solid var(--accent);border-radius:var(--radius-md);color:var(--fg);cursor:pointer;text-align:left;font-size:13px;transition:background-color .15s,transform .1s}.scenario-end2-choice-card:hover:not(:disabled){background:var(--panel-bg-strong);transform:translateY(-1px)}.scenario-end2-choice-card:disabled{opacity:.5;cursor:not-allowed}.scenario-end2-choice-card.locked{border-style:dashed;background:#ff5b8f0d}.scenario-end2-choice-card.locked:hover:not(:disabled){background:#ff5b8f1f;border-style:solid}.scenario-end2-choice-label{font-size:14px;font-weight:700;color:var(--accent)}.scenario-end2-choice-blurb{font-size:12px;color:var(--fg-dim);line-height:1.5}.scenario-cg{position:absolute;width:clamp(180px,28vw,360px);height:auto;max-height:60vh;object-fit:contain;pointer-events:none;opacity:.55;filter:saturate(1.05) drop-shadow(0 8px 24px rgba(0,0,0,.45));z-index:5;animation:scenario-cg-fadein .9s ease-out}.scenario-cg-tl{top:6vh;left:1vw;transform:rotate(-3deg)}.scenario-cg-br{bottom:6vh;right:1vw;transform:rotate(3deg)}@keyframes scenario-cg-fadein{0%{opacity:0;transform:translateY(20px) rotate(0)}to{opacity:.55}}@media (max-width: 640px){.scenario-cg{width:clamp(110px,36vw,180px);opacity:.4}.scenario-cg-tl{top:50px;left:4px}.scenario-cg-br{bottom:4vh;right:4px}}.scenario-sound-btn{position:absolute;top:12px;left:12px;width:40px;height:40px;padding:0;font-size:18px;display:flex;align-items:center;justify-content:center;background:var(--panel-bg);backdrop-filter:blur(6px);border:1px solid var(--panel-border);border-radius:var(--radius-md);color:var(--fg);cursor:pointer;z-index:80}.scenario-sound-btn:hover{background:var(--panel-bg-strong)}@media (max-width: 640px){.scenario-overlay{width:96%;padding:18px 16px;gap:12px;max-height:96vh}.scenario-text{font-size:14px;line-height:1.8;min-height:150px}.scenario-continue{padding:10px 18px;font-size:14px;min-width:0;flex:1}}*::-webkit-scrollbar{width:8px;height:8px}*::-webkit-scrollbar-thumb{background:var(--accent-soft);border-radius:4px}:root[data-theme=dark] *::-webkit-scrollbar-thumb,:root:not([data-theme]) *::-webkit-scrollbar-thumb{background:var(--bg-3)}*::-webkit-scrollbar-track{background:transparent}.modal-backdrop{position:fixed;inset:0;background:#0009;display:flex;align-items:center;justify-content:center;z-index:1000;animation:modal-fadein .15s ease-out}.modal-card{background:var(--bg-2);color:var(--fg);border:1px solid var(--border);border-radius:var(--radius-lg);max-width:420px;width:90%;padding:20px 24px;display:flex;flex-direction:column;gap:12px;box-shadow:var(--shadow-lg);animation:modal-fadein .18s ease-out}.modal-title{font-size:16px;font-weight:700;color:var(--accent);margin:0}.modal-body{font-size:13px;line-height:1.6;color:var(--fg);margin:0}.modal-body code{background:#ffffff14;padding:1px 6px;border-radius:4px;font-size:12px}.modal-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:6px}@keyframes modal-fadein{0%{opacity:0}to{opacity:1}}.user-guide-card{position:relative;background:var(--bg-2);color:var(--fg);border:1px solid var(--border);border-radius:var(--radius-lg);width:min(96vw,1100px);display:flex;flex-direction:column;box-shadow:var(--shadow-lg);animation:modal-fadein .18s ease-out;overflow:hidden}.user-guide-image{display:block;width:100%;height:auto;aspect-ratio:1659 / 948;object-fit:cover;background:var(--bg-1);cursor:pointer;user-select:none}.user-guide-close{position:absolute;top:8px;right:8px;width:32px;height:32px;padding:0;font-size:16px;line-height:1;background:#0000008c;color:#fff;border:1px solid rgba(255,255,255,.25);border-radius:50%;cursor:pointer;z-index:2;transition:background-color .15s,transform .1s}.user-guide-close:hover{background:#000000c7;transform:scale(1.05)}.user-guide-controls{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:12px 18px;border-top:1px solid var(--border);background:var(--bg-1)}.user-guide-nav{min-width:80px;padding:8px 16px;font-size:14px;font-weight:700}.user-guide-nav:disabled{opacity:.35;cursor:not-allowed}.user-guide-pager{display:flex;gap:8px;align-items:center}.user-guide-dot{width:9px;height:9px;border-radius:50%;background:var(--fg-dim);opacity:.4;transition:opacity .2s,background-color .2s,transform .2s}.user-guide-dot.active{background:var(--accent);opacity:1;transform:scale(1.25)}@media (max-width: 640px){.user-guide-card{width:96vw}.user-guide-controls{padding:10px 12px}.user-guide-nav{min-width:60px;padding:8px 12px;font-size:13px}}.user-guide-help-btn{align-self:flex-start;padding:4px 12px;font-size:12px;border-radius:999px;background:transparent;border:1px solid var(--border);color:var(--fg-dim);cursor:pointer;margin-top:4px;transition:border-color .15s,color .15s}.user-guide-help-btn:hover{border-color:var(--accent);color:var(--accent)}
