.prologue{position:absolute;inset:0;overflow:hidden;background:var(--color-letterbox);cursor:pointer}.prologue__bg{position:absolute;inset:0;background-size:cover;background-position:center;animation:prologue-in var(--duration-fade) ease both}@keyframes prologue-in{0%{opacity:0;transform:scale(1.05)}to{opacity:1;transform:scale(1)}}.prologue__scrim{position:absolute;inset:0;background:linear-gradient(to bottom,var(--color-scrim-top),var(--color-scrim-bottom))}.prologue__box{position:absolute;left:var(--spacing-large);right:var(--spacing-large);bottom:var(--spacing-large);z-index:2;display:flex;align-items:flex-end;gap:var(--spacing-medium);padding:var(--spacing-medium) var(--spacing-large);min-height:calc(var(--touch-target-min) * 2);background:var(--color-panel);border:1px solid var(--color-panel-border);border-radius:var(--radius-large);box-shadow:var(--shadow-panel);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);animation:prologue-box-in var(--duration-fast) ease both}@keyframes prologue-box-in{0%{opacity:.4;transform:translateY(4px)}to{opacity:1;transform:none}}.prologue__standing{position:absolute;left:4%;bottom:0;height:96%;width:auto;max-width:46%;object-fit:contain;object-position:bottom center;z-index:1;pointer-events:none;filter:var(--shadow-standing);animation:prologue-standing-in .26s cubic-bezier(.2,.9,.3,1) both}@keyframes prologue-standing-in{0%{opacity:0;transform:translateY(14px) scale(.985)}to{opacity:1;transform:none}}@media(prefers-reduced-motion:reduce){.prologue__standing{animation:none}}.prologue__text-area{flex:1;min-width:0}.prologue__name{position:absolute;top:0;left:var(--spacing-large);transform:translateY(-50%);margin:0;padding:var(--spacing-xsmall) var(--spacing-medium);border-radius:var(--radius-pill);background:var(--color-panel-solid);border:1px solid var(--color-primary);box-shadow:var(--glow-primary);font-size:.82rem;letter-spacing:.14em;color:var(--color-primary);white-space:nowrap}.prologue__text{margin:0;font-size:1.02rem;line-height:1.7;white-space:pre-wrap}.prologue__next{align-self:flex-end;color:var(--color-primary);font-size:.8rem;animation:prologue-blink 1.1s steps(2,start) infinite}@keyframes prologue-blink{50%{opacity:.15}}.prologue__chapter{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--spacing-small);animation:prologue-in .6s ease both}.prologue__chapter-label{font-family:var(--font-display);font-size:.9rem;letter-spacing:.55em;color:var(--color-primary)}.prologue__chapter-title{font-size:2rem;letter-spacing:.3em}.prologue__skip{position:absolute;top:var(--spacing-medium);right:var(--spacing-medium);min-width:var(--touch-target-min);min-height:var(--touch-target-min);padding:0 var(--spacing-medium);border:1px solid var(--color-panel-border);border-radius:var(--radius-pill);background:var(--color-panel);font-size:.75rem;letter-spacing:.2em}.prologue__progress{position:absolute;top:var(--spacing-medium);left:var(--spacing-medium);font-size:.7rem;letter-spacing:.16em;color:var(--color-text-locked)}@container (max-height: 420px){.prologue__standing{left:1%;height:99%;max-width:40%}.prologue__box{left:var(--spacing-medium);right:var(--spacing-medium);bottom:var(--spacing-medium);padding:var(--spacing-small) var(--spacing-medium)}}.boss-hud{display:flex;flex-direction:column;gap:var(--spacing-xsmall);min-width:14rem}.boss-hud__row{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:var(--spacing-small);transition:opacity var(--duration-fade) ease}.boss-hud__row[data-alive=false]{opacity:.35}.boss-hud__name{font-size:.68rem;letter-spacing:.1em;color:var(--color-text-dim)}.boss-hud__bar{height:.62rem;border-radius:var(--radius-pill);background:var(--color-gauge-track);border:1px solid var(--color-panel-border);overflow:hidden}.boss-hud__fill{height:100%;background:linear-gradient(90deg,var(--color-danger),var(--color-secondary));transition:width .32s ease}.boss-hud__value{font-size:.62rem;color:var(--color-text-dim);font-variant-numeric:tabular-nums}.party-hud{display:flex;gap:var(--spacing-small)}.party-hud__card{flex:1 1 0;min-width:0;padding:var(--spacing-small) var(--spacing-medium);border-radius:var(--radius-medium);border:1px solid var(--color-panel-border);background:var(--color-panel);transition:border-color var(--duration-fast) ease,opacity var(--duration-fade) ease}.party-hud__card[data-active=true]{border-color:var(--color-primary);box-shadow:var(--glow-primary)}.party-hud__card[data-down=true]{opacity:.38}.party-hud__head{display:flex;align-items:center;gap:var(--spacing-small);margin-bottom:var(--spacing-xsmall)}.party-hud__name{font-size:.78rem;letter-spacing:.08em}.party-hud__badge{font-size:.55rem;letter-spacing:.14em;padding:.1rem .35rem;border-radius:var(--radius-small);border:1px solid var(--color-mp);color:var(--color-mp)}.party-hud__gauge{height:.42rem;border-radius:var(--radius-pill);background:var(--color-gauge-track);overflow:hidden;margin-bottom:var(--spacing-xsmall)}.party-hud__gauge[data-kind=hp] .party-hud__fill{background:var(--color-hp)}.party-hud__gauge[data-kind=mp] .party-hud__fill{background:var(--color-mp)}.party-hud__fill{height:100%;transition:width .32s ease}.party-hud__numbers{display:flex;justify-content:space-between;gap:var(--spacing-small);font-size:.6rem;color:var(--color-text-dim);font-variant-numeric:tabular-nums;margin-bottom:var(--spacing-xsmall)}.command-menu{display:flex;flex-direction:column;align-items:center;gap:var(--spacing-xsmall);opacity:0;transform:translateY(6px);transition:opacity var(--duration-fast) ease,transform var(--duration-fast) ease;pointer-events:none}.command-menu[data-visible=true]{opacity:1;transform:none;pointer-events:auto}.command-menu__actor{margin:0;font-size:.68rem;letter-spacing:.18em;color:var(--color-primary)}.command-menu__row{display:flex;gap:var(--spacing-small)}.command-menu__button{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.1rem;min-height:var(--touch-target-min);min-width:calc(var(--touch-target-min) * 2.1);padding:var(--spacing-xsmall) var(--spacing-medium);border-radius:var(--radius-medium);border:1px solid var(--color-panel-border);background:var(--color-panel);letter-spacing:.1em;transition:transform var(--duration-fast) ease,border-color var(--duration-fast) ease}.command-menu__button:not([disabled]):hover,.command-menu__button:not([disabled]):focus-visible{border-color:var(--color-primary);box-shadow:var(--glow-primary)}.command-menu__button:active:not([disabled]){transform:scale(.97)}.command-menu__button[data-locked=true]{color:var(--color-text-locked);cursor:not-allowed}.command-menu__label{font-size:.86rem}.command-menu__note{font-size:.58rem;color:var(--color-text-dim)}.command-menu__locked{font-size:.55rem;color:var(--color-danger);letter-spacing:.02em}.turn-order{display:flex;align-items:center;gap:var(--spacing-xsmall);margin:0;padding:0;list-style:none}.turn-order__label{font-size:.6rem;letter-spacing:.26em;color:var(--color-text-locked);margin-right:var(--spacing-xsmall)}.turn-order__item{padding:var(--spacing-xsmall) var(--spacing-small);border-radius:var(--radius-pill);border:1px solid var(--color-panel-border);background:var(--color-panel);font-size:.68rem;letter-spacing:.06em;white-space:nowrap;opacity:.6}.turn-order__item[data-side=enemy]{border-color:var(--color-danger-border)}.turn-order__item[data-current=true]{opacity:1;border-color:var(--color-primary);box-shadow:var(--glow-primary)}.battle-screen{position:absolute;inset:0;overflow:hidden;background:var(--color-background)}.battle-screen__stage{position:absolute;inset:0}.battle-screen__stage canvas{display:block}.battle-screen__top{position:absolute;top:var(--spacing-medium);left:var(--spacing-medium);right:var(--spacing-medium);display:flex;align-items:flex-start;justify-content:space-between;gap:var(--spacing-medium);pointer-events:none;z-index:10}.battle-screen__bottom{position:absolute;left:var(--spacing-medium);right:var(--spacing-medium);bottom:var(--spacing-medium);display:flex;flex-direction:column;align-items:stretch;gap:var(--spacing-small);z-index:10}@container (max-height: 420px){.battle-screen__bottom{flex-direction:row-reverse;align-items:flex-end}.battle-screen__bottom>*{flex:1 1 0}}.action-prompt{position:absolute;left:50%;bottom:14%;transform:translate(-50%);display:flex;align-items:center;gap:var(--spacing-small);padding:var(--spacing-small) var(--spacing-medium);border-radius:var(--radius-pill);background:var(--color-panel);border:1px solid var(--color-panel-border);opacity:0;transition:opacity var(--duration-fast) ease;pointer-events:none;z-index:18}.action-prompt[data-visible=true]{opacity:1}.action-prompt__key{min-width:1.7rem;padding:.15rem .4rem;border-radius:var(--radius-small);border:1px solid var(--color-primary);color:var(--color-primary);font-family:var(--font-display);font-size:.8rem;text-align:center}.action-prompt__verb{font-size:.95rem;letter-spacing:.08em}@media(pointer:coarse){.action-prompt{display:none}}.dialogue{position:absolute;inset:0;z-index:40;background:linear-gradient(to bottom,transparent 40%,var(--color-scrim-soft));cursor:pointer;overflow:hidden}.dialogue__standing{position:absolute;left:4%;bottom:0;height:96%;width:auto;max-width:46%;object-fit:contain;object-position:bottom center;z-index:1;pointer-events:none;filter:var(--shadow-standing);animation:dialogue-standing-in .26s cubic-bezier(.2,.9,.3,1) both}@keyframes dialogue-standing-in{0%{opacity:0;transform:translateY(14px) scale(.985)}to{opacity:1;transform:none}}@media(prefers-reduced-motion:reduce){.dialogue__standing{animation:none}}.dialogue__box{position:absolute;left:var(--spacing-large);right:var(--spacing-large);bottom:var(--spacing-large);z-index:2;display:flex;flex-direction:column;gap:var(--spacing-xsmall);padding:var(--spacing-medium) var(--spacing-large);min-height:calc(var(--touch-target-min) * 2);background:var(--color-panel);border:1px solid var(--color-panel-border);border-radius:var(--radius-large);box-shadow:var(--shadow-panel);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.dialogue__name{position:absolute;top:0;left:var(--spacing-large);transform:translateY(-50%);margin:0;padding:var(--spacing-xsmall) var(--spacing-medium);border-radius:var(--radius-pill);background:var(--color-panel-solid);border:1px solid var(--color-primary);box-shadow:var(--glow-primary);font-size:.82rem;letter-spacing:.14em;color:var(--color-primary);white-space:nowrap}.dialogue__body{display:flex;align-items:flex-end;min-height:3.4rem}.dialogue__text{margin:0;font-size:1.05rem;line-height:1.75}.dialogue__meta{position:absolute;right:var(--spacing-large);bottom:var(--spacing-small);display:flex;align-items:center;gap:var(--spacing-small)}.dialogue__count{font-size:.65rem;color:var(--color-text-locked);letter-spacing:.1em}.dialogue__next{color:var(--color-primary);font-size:.8rem;animation:dialogue-blink 1.1s steps(2,start) infinite}@keyframes dialogue-blink{50%{opacity:.15}}@media(prefers-reduced-motion:reduce){.dialogue__next{animation:none}}@container (max-height: 420px){.dialogue__standing{left:1%;height:99%;max-width:40%}.dialogue__box{left:var(--spacing-medium);right:var(--spacing-medium);bottom:var(--spacing-medium);padding:var(--spacing-small) var(--spacing-medium)}.dialogue__body{min-height:2.6rem}}.interaction-button{position:absolute;right:var(--spacing-large);bottom:var(--spacing-large);z-index:20;min-width:calc(var(--touch-target-min) * 1.7);min-height:calc(var(--touch-target-min) * 1.7);border-radius:var(--radius-pill);border:2px solid var(--color-panel-border);background:var(--color-panel);display:grid;place-items:center;touch-action:none;transition:transform var(--duration-fast) ease,border-color var(--duration-fast) ease,opacity var(--duration-fast) ease}.interaction-button[data-enabled=true]{border-color:var(--color-primary);box-shadow:var(--glow-primary)}.interaction-button[data-enabled=false]{opacity:.32}.interaction-button:active[data-enabled=true]{transform:scale(.94)}.interaction-button__label{font-size:.92rem;letter-spacing:.08em}@media(pointer:fine){.interaction-button{display:none}}.mission{position:absolute;top:calc(var(--spacing-medium) + 2.1rem);left:var(--spacing-medium);z-index:16;min-width:11rem;border:2px solid var(--color-text);border-radius:var(--radius-small);background:var(--color-panel-solid);overflow:hidden;pointer-events:none;animation:mission-in .26s ease both}@keyframes mission-in{0%{opacity:0;transform:translate(-8px)}to{opacity:1;transform:none}}@media(prefers-reduced-motion:reduce){.mission{animation:none}}.mission__head{display:flex;align-items:center;gap:var(--spacing-xsmall);padding:var(--spacing-xsmall) var(--spacing-small);border-bottom:1px solid var(--color-panel-border)}.mission__icon{width:.62rem;height:.86rem;background:var(--color-waypoint);clip-path:polygon(50% 100%,0% 38%,12% 12%,50% 0%,88% 12%,100% 38%);flex:none}.mission__title{font-family:var(--font-display);font-size:.72rem;font-weight:700;letter-spacing:.18em;color:var(--color-text)}.mission__label{margin:0;padding:var(--spacing-small) var(--spacing-small);font-size:.95rem;font-weight:700;letter-spacing:.04em;color:var(--color-text)}.joystick{position:absolute;left:0;bottom:0;width:42%;height:62%;touch-action:none;display:grid;place-items:end start;padding:var(--spacing-large);z-index:20}.joystick__base{width:128px;height:128px;border-radius:var(--radius-pill);border:2px solid var(--color-panel-border);background:var(--color-primary-wash);display:grid;place-items:center;transition:opacity var(--duration-fast) ease}.joystick__knob{width:var(--touch-target-min);height:var(--touch-target-min);border-radius:var(--radius-pill);background:var(--color-primary-fill);border:2px solid var(--color-outline-strong);box-shadow:var(--glow-primary)}@media(pointer:fine){.joystick{display:none}}.field-screen{position:absolute;inset:0;overflow:hidden;background:var(--color-background)}.field-screen__stage{position:absolute;inset:0}.field-screen__stage canvas{display:block}.field-screen__place{position:absolute;top:var(--spacing-medium);left:var(--spacing-medium);padding:var(--spacing-xsmall) var(--spacing-medium);border-radius:var(--radius-pill);background:var(--color-panel);border:1px solid var(--color-panel-border);font-size:.72rem;letter-spacing:.14em;color:var(--color-text-dim);pointer-events:none;z-index:15}.menu-button{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--spacing-xsmall);min-height:var(--touch-target-min);min-width:calc(var(--touch-target-min) * 3);padding:var(--spacing-small) var(--spacing-large);border:1px solid var(--color-panel-border);border-radius:var(--radius-medium);background:var(--color-panel);letter-spacing:.14em;transition:transform var(--duration-fast) ease,border-color var(--duration-fast) ease,box-shadow var(--duration-fast) ease}.menu-button[data-variant=primary]:not([disabled]):hover,.menu-button[data-variant=primary]:not([disabled]):focus-visible{border-color:var(--color-primary);box-shadow:var(--glow-primary);transform:translateY(-1px)}.menu-button[data-variant=ghost]{background:transparent;border-color:transparent;color:var(--color-text-dim)}.menu-button[data-locked=true]{color:var(--color-text-locked);cursor:not-allowed}.menu-button__label{font-size:1rem}.menu-button__note{font-size:.72rem;color:var(--color-danger);letter-spacing:.04em}.menu-button:active:not([disabled]){transform:scale(.98)}.result{position:absolute;inset:0;display:grid;place-items:center;background:var(--color-overlay);animation:result-in var(--duration-fade) ease both}@keyframes result-in{0%{opacity:0}to{opacity:1}}.result__panel{display:flex;flex-direction:column;align-items:center;gap:var(--spacing-medium);padding:var(--spacing-xlarge) calc(var(--spacing-xlarge) * 1.6);border-radius:var(--radius-large);border:1px solid var(--color-panel-border);background:var(--color-panel);box-shadow:var(--shadow-panel);text-align:center}.result__title{margin:0;font-family:var(--font-display);font-size:2.6rem;letter-spacing:.3em;text-indent:.3em}.result[data-result=victory] .result__title{color:var(--color-accent);text-shadow:var(--glow-victory)}.result[data-result=defeat] .result__title{color:var(--color-danger)}.result__reward{margin:0;font-size:1.1rem;letter-spacing:.2em;color:var(--color-text)}.result__reward--dim{font-size:.9rem;letter-spacing:.08em;color:var(--color-text-dim)}.settings{position:absolute;inset:0;display:grid;place-items:center;background:var(--color-background)}.settings__panel{display:flex;flex-direction:column;align-items:center;gap:var(--spacing-medium);padding:var(--spacing-xlarge);border-radius:var(--radius-large);border:1px solid var(--color-panel-border);background:var(--color-panel);max-width:30rem;text-align:center}.settings__title{margin:0;font-family:var(--font-display);letter-spacing:.3em;text-indent:.3em;font-size:1.5rem}.settings__note{margin:0;font-size:.82rem;line-height:1.7;color:var(--color-text-dim)}.settings__actions{display:flex;flex-direction:column;gap:var(--spacing-small)}.title-screen{position:absolute;inset:0;display:grid;place-items:center;overflow:hidden}.title-screen__bg{position:absolute;inset:0;background-size:cover;background-position:center;animation:title-drift 24s ease-in-out infinite alternate}@keyframes title-drift{0%{transform:scale(1.04) translate(-1%)}to{transform:scale(1.1) translate(1%)}}@media(prefers-reduced-motion:reduce){.title-screen__bg{animation:none}}.title-screen__scrim{position:absolute;inset:0;background:radial-gradient(ellipse at 50% 40%,var(--color-vignette-center),var(--color-vignette-edge) 78%)}.title-screen__content{position:relative;display:flex;flex-direction:column;align-items:center;gap:var(--spacing-large);text-align:center;padding:var(--spacing-medium)}.title-screen__logo{margin:0;display:flex;flex-direction:column;gap:var(--spacing-xsmall)}.title-screen__logo-main{font-family:var(--font-display);font-size:3.4rem;letter-spacing:.24em;color:var(--color-text);text-shadow:var(--glow-title)}.title-screen__logo-sub{font-size:.82rem;letter-spacing:.5em;color:var(--color-text-dim)}.title-screen__menu{display:flex;flex-direction:column;gap:var(--spacing-small)}.title-screen__version{margin:0;font-size:.68rem;letter-spacing:.2em;color:var(--color-text-locked)}.orientation-overlay{position:fixed;inset:0;z-index:200;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--spacing-medium);background:var(--color-background);padding:var(--spacing-large);text-align:center}.orientation-overlay__icon{width:96px;height:96px;display:grid;place-items:center}.orientation-overlay__device{width:44px;height:76px;border:3px solid var(--color-primary);border-radius:var(--radius-medium);box-shadow:var(--glow-primary);animation:orientation-rotate 2.2s ease-in-out infinite}@keyframes orientation-rotate{0%,35%{transform:rotate(0)}65%,to{transform:rotate(-90deg)}}@media(prefers-reduced-motion:reduce){.orientation-overlay__device{animation:none;transform:rotate(-90deg)}}.orientation-overlay__text{margin:0;font-size:1.15rem;letter-spacing:.08em}.orientation-overlay__sub{margin:0;font-size:.85rem;color:var(--color-text-dim);letter-spacing:.16em}.shell-outer{position:fixed;inset:0;display:grid;place-items:center;background:var(--color-letterbox)}.shell{--avail-w: calc(100dvw - env(safe-area-inset-left, 0px) - env(safe-area-inset-right, 0px)) ;--avail-h: calc(100dvh - env(safe-area-inset-top, 0px) - env(safe-area-inset-bottom, 0px)) ;position:relative;width:min(var(--avail-w),calc(var(--avail-h) * 16 / 9));height:min(var(--avail-h),calc(var(--avail-w) * 9 / 16));overflow:hidden;background:var(--color-background);container-type:size;font-size:16px}@supports (height: 1cqh){.shell{font-size:clamp(11px,2.23cqh,26px)}}.shell-layer{position:absolute;inset:0}.fade-veil{position:absolute;inset:0;background:var(--color-letterbox);opacity:0;pointer-events:none;transition:opacity var(--duration-fade) ease;z-index:90}.fade-veil[data-visible=true]{opacity:1;pointer-events:all}:root{--color-background: #05060d;--color-panel: rgba(12, 18, 38, .86);--color-panel-solid: #0c1226;--color-panel-border: rgba(120, 200, 255, .28);--color-primary: #5ce1ff;--color-secondary: #ff6ad5;--color-text: #eaf2ff;--color-text-dim: rgba(234, 242, 255, .62);--color-text-locked: rgba(234, 242, 255, .34);--color-accent: #ffd98a;--color-waypoint: #ffd24a;--color-danger: #ff5a6e;--color-hp: #57e08a;--color-mp: #5ce1ff;--color-overlay: rgba(3, 5, 12, .82);--color-letterbox: #000000;--color-scrim-soft: rgba(3, 5, 12, .55);--color-scrim-top: rgba(5, 6, 13, .35);--color-scrim-bottom: rgba(5, 6, 13, .9);--color-vignette-center: rgba(5, 6, 13, .2);--color-vignette-edge: rgba(5, 6, 13, .92);--color-primary-wash: rgba(92, 225, 255, .08);--color-primary-fill: rgba(92, 225, 255, .42);--color-outline-strong: rgba(234, 242, 255, .6);--color-danger-border: rgba(255, 90, 110, .42);--color-gauge-track: rgba(255, 255, 255, .1);--radius-small: 6px;--radius-medium: 12px;--radius-large: 20px;--radius-pill: 999px;--spacing-xsmall: 4px;--spacing-small: 8px;--spacing-medium: 16px;--spacing-large: 24px;--spacing-xlarge: 40px;--touch-target-min: 48px;--font-body: system-ui, -apple-system, "Hiragino Sans", "Noto Sans JP", sans-serif;--font-display: "Trebuchet MS", system-ui, sans-serif;--shadow-panel: 0 8px 32px rgba(0, 0, 0, .55);--glow-primary: 0 0 16px rgba(92, 225, 255, .45);--glow-title: 0 0 18px rgba(92, 225, 255, .55), 0 0 46px rgba(255, 106, 213, .35);--glow-victory: 0 0 24px rgba(255, 217, 138, .5);--shadow-standing: drop-shadow(0 8px 24px rgba(0, 0, 0, .55));--duration-fade: .38s;--duration-fast: .14s}*{box-sizing:border-box}html,body,#root{margin:0;padding:0;height:100%;background:#000;color:var(--color-text);font-family:var(--font-body);overscroll-behavior:none}body{touch-action:none;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent}button{font:inherit;color:inherit;cursor:pointer}
