body.battle{overflow:hidden;height:100dvh;touch-action:manipulation;user-select:none;-webkit-user-select:none;background-image:none}.battle #app{height:100dvh;display:grid;grid-template-rows:auto 1fr auto;padding:env(safe-area-inset-top) env(safe-area-inset-right) 0 env(safe-area-inset-left)}.b-head{display:grid;grid-template-columns:1fr auto;align-items:center;gap:var(--s-2);padding:var(--s-2) var(--s-4) 0}.b-head .title{font-weight:800;font-size:var(--fs-sm);color:var(--fg-2);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.b-head .title small{color:var(--fg-3);font-weight:600;margin-left:6px}.b-tools{display:flex;gap:var(--s-1)}.b-tools .btn{min-height:36px;padding:0 var(--s-3);font-size:var(--fs-xs)}.b-progress{grid-column:1 / -1;display:flex;gap:3px;height:4px;margin-top:var(--s-2)}.b-progress i{flex:1;border-radius:2px;background:var(--ink-4);transition:background var(--t-base) var(--ease)}.b-progress i.done{background:var(--aster);opacity:.55}.b-progress i.cur{background:var(--aster);box-shadow:0 0 10px var(--aster-glow)}.b-stage{display:grid;grid-template-rows:1fr auto;gap:var(--s-3);padding:var(--s-3) var(--s-4);min-height:0}.b-now{position:relative;display:grid;grid-template-rows:auto 1fr auto;gap:var(--s-3);padding:var(--s-4) var(--s-5);border-radius:var(--r-xl);background:linear-gradient(180deg,var(--ink-3),var(--ink-2));border:1px solid var(--line-strong);box-shadow:var(--el-3),0 0 0 1px #8b9bff1f inset;min-height:0;overflow:hidden}.b-now:before{content:"";position:absolute;inset:0;background:radial-gradient(700px 300px at 50% -20%,var(--aster-glow),transparent 70%);pointer-events:none}.b-now .top{display:flex;align-items:center;justify-content:space-between;gap:var(--s-3)}.b-now .tag{font-size:var(--fs-xs);letter-spacing:.32em;font-weight:800;color:var(--aster)}.b-now .kind.lg{min-height:64px;padding:0 20px}.b-now .kind.lg .v{font-size:clamp(2rem,7vw,3.2rem)}.b-now .kind.lg .l{font-size:11px}.b-now .center{display:grid;align-content:center;justify-items:center;gap:var(--s-3);min-height:0;text-align:center}.b-now .seq{justify-content:center;gap:var(--s-3) var(--s-4)}.b-now .stu{flex-direction:column;gap:var(--s-2)}.b-now .stu .nm{font-size:clamp(1.1rem,4.2vw,1.8rem)}.b-now .stu .nm small{font-size:var(--fs-sm)}.b-now .seq .arrow{font-size:clamp(1.4rem,5vw,2.2rem);align-self:center}.b-now .tok.xl{--size: clamp(72px, 18vw, 112px)}.b-now .cond{display:grid;gap:var(--s-2)}.b-now .cond .kind.lg{justify-self:center;min-height:56px}.b-now .cond .kind.lg .v{font-size:clamp(1.4rem,5vw,2.2rem)}.b-now .warn{font-size:clamp(1rem,3.6vw,1.35rem)}.b-now.swap-in{animation:swap var(--t-base) var(--ease-out)}@keyframes swap{0%{opacity:.4;transform:translate(10px)}to{opacity:1;transform:none}}.b-now.done{text-align:center}.b-now.done .big{font-size:var(--fs-3xl);font-weight:800;color:var(--ok)}.b-next{display:grid;gap:var(--s-2);padding:var(--s-3) var(--s-4);border-radius:var(--r-lg);background:var(--ink-1);border:1px solid var(--line)}.b-next .tag{font-size:10px;letter-spacing:.32em;font-weight:800;color:var(--fg-3)}.b-next .row{display:grid;grid-template-columns:auto 1fr;gap:var(--s-3);align-items:center}.b-next .row .kinds{display:flex;gap:6px;flex-wrap:wrap}.b-next .row .seq{gap:var(--s-2)}.b-next .row .tok{--size: 40px}.b-next .row .nm{font-size:var(--fs-md)}.b-next .row.after{opacity:.55}.b-next .row.after .tok{--size: 30px}.b-next .row.after .nm{font-size:var(--fs-sm)}.b-next .row.after .kind{min-height:28px}.b-next .row.after .kind .v{font-size:.9rem}.b-next .row.after .kind .l{display:none}.b-next .warnline{color:var(--warn);font-weight:700;font-size:var(--fs-sm)}.b-ctl{display:grid;grid-template-columns:1fr 2.2fr;gap:var(--s-3);padding:var(--s-2) var(--s-4) calc(var(--s-3) + env(safe-area-inset-bottom))}.b-ctl button{min-height:84px;border-radius:var(--r-lg);border:1px solid var(--line-strong);font-size:1.35rem;font-weight:800;cursor:pointer;transition:transform var(--t-fast) var(--ease),filter var(--t-fast)}.b-ctl .prev{background:var(--ink-3);color:var(--fg-2)}.b-ctl .next{background:var(--aster);color:var(--aster-ink);border-color:transparent;box-shadow:0 10px 30px var(--aster-glow)}.b-ctl button:active{transform:scale(.985);filter:brightness(1.1)}.b-empty{display:grid;place-content:center;text-align:center;gap:var(--s-3);padding:var(--s-6);color:var(--fg-2)}@media(orientation:landscape)and (min-width:700px){.battle #app{grid-template-rows:auto 1fr;grid-template-columns:1fr}.b-stage{grid-template-rows:1fr;grid-template-columns:7fr 5fr;grid-template-areas:"now side"}.b-now{grid-area:now}.b-side{grid-area:side;display:grid;grid-template-rows:1fr auto;gap:var(--s-3);min-height:0}.b-ctl{padding:0}.b-ctl button{min-height:96px}.b-now .tok.xl{--size: clamp(84px, 11vw, 132px)}}@media not ((orientation:landscape)and (min-width:700px)){.b-side{display:contents}}.b-next{align-content:start}@media(orientation:landscape)and (min-width:700px){.b-next .row{padding-block:var(--s-2)}.b-next .row .tok{--size: 52px}.b-next .row .nm{font-size:var(--fs-lg)}.b-next .row.after .tok{--size: 36px}}@media(min-width:1600px){:root:has(body.battle){font-size:clamp(16px,1.25vmin,36px)}.b-now .tok.xl{--size: clamp(84px, 20vmin, 420px)}.b-now .kind.lg{min-height:4rem;padding:0 1.25rem}.b-now .kind.lg .v{font-size:clamp(2rem,7vmin,9rem)}.b-now .stu .nm{font-size:clamp(1.1rem,4vmin,4.5rem)}.b-now .seq .arrow{font-size:clamp(1.4rem,5vmin,5rem)}.b-now .cond .kind.lg .v{font-size:clamp(1.4rem,5vmin,6rem)}.b-now .warn{font-size:clamp(1rem,3vmin,3rem)}.b-next .row .tok{--size: clamp(52px, 7vmin, 160px)}.b-next .row .nm{font-size:clamp(1rem,3vmin,3rem)}.b-next .row.after .tok{--size: clamp(36px, 5vmin, 110px)}.b-next .kind .v{font-size:1.2em}.b-ctl button{min-height:5.5rem;font-size:1.6rem}.b-head .title,.b-tools .btn{font-size:1rem}.b-progress{height:.35rem}}
