:root{font-family:Arial,sans-serif;color:#eef4f4;background:#171b1e;font-synthesis:none}
*{box-sizing:border-box;letter-spacing:0}body{margin:0}main{max-width:1600px;margin:auto;padding:16px 24px}
header{display:flex;align-items:center;gap:24px;border-bottom:1px solid #394247;padding-bottom:14px}
.brand{color:#afe7e7;text-decoration:none;font-size:22px;white-space:nowrap}.brand b{color:white}.back-link{color:#bfcfcb;font-size:13px}
button,select,textarea{font:inherit}button{cursor:pointer;border:0}button:disabled{opacity:.45;cursor:default}
button:focus-visible,textarea:focus-visible,select:focus-visible,a:focus-visible{outline:2px solid #a8f8ff;outline-offset:4px}
.ghost{background:transparent;color:#cfdbdb;font-size:12px;padding:10px 0}header button{margin-left:auto}
.layout{display:grid;grid-template-columns:260px minmax(0,1fr);gap:24px;margin-top:20px}aside{min-width:0}
h1{font-size:22px;line-height:1.2;margin:0 0 20px}.roster-head{display:flex;justify-content:space-between;gap:8px;font-size:11px;margin-bottom:10px}.roster-head span{color:#b3f4ff}
textarea{background:#232b30;border:1px solid #52616a;border-radius:6px;color:#edf4f4;resize:vertical;width:100%;min-height:100px;height:180px;padding:12px;font-size:14px;line-height:1.6}
.hint{font-size:11px;color:#b3c0c5;margin:8px 0 16px}.settings{display:flex;align-items:center;justify-content:space-between;font-size:13px;margin:18px 0}
select{background:#232b30;color:#edf4f4;border:1px solid #52616a;border-radius:6px;padding:9px;font-size:12px}
.primary{background:#c4e8dc;width:100%;border-radius:6px;padding:15px;color:#142e27;text-align:left;font-weight:bold;font-size:15px}.primary span{float:right}
.under{display:flex;justify-content:space-between;gap:12px;margin-top:10px}#notice{color:#b3c6ca;font-size:12px;min-height:30px;line-height:1.5}
.arena{position:relative;height:min(720px,calc(100dvh - 150px));min-height:480px;overflow:hidden;border:1px solid #4d5e61;border-radius:8px;background:#12191d}
#scene{position:absolute;inset:0}canvas{width:100%;height:100%;display:block}
.scene-top{position:absolute;right:16px;top:16px;pointer-events:none}.round{color:#e6e6db;font-size:11px}
.stage-caption{position:absolute;top:40px;left:50%;transform:translateX(-50%);width:min(360px,85%);text-align:center;pointer-events:none;background:#0a151cb3;border:1px solid #5f777744;padding:10px;border-radius:6px}
.stage-caption>span{font-size:11px;color:#e1eceb}.meter{background:#ffffff25;height:3px;border-radius:3px;width:155px;margin:10px auto 6px;overflow:hidden}.meter div{height:100%;width:100%;background:#a9f5ff}.stage-caption small{font-size:9px;color:#d4dfdd}
#tags{position:absolute;inset:0;pointer-events:none}
.name-tag{position:absolute;transform:translate(-50%,-100%);background:#101b20ed;border:1px solid #70868a;color:#edf4f4;border-radius:4px;padding:4px 8px;white-space:nowrap;max-width:140px;text-overflow:ellipsis;overflow:hidden;font-weight:600}
.name-tag.falling{background:#ffc773;color:#351d26;border-color:#fff2c9}
#callout{position:absolute;transform:translate(-50%,-100%);padding:8px 10px;background:#e6ece8;color:#1c3439;border:1px solid #adc4c4;border-radius:6px;font-size:11px;font-weight:bold;pointer-events:none}
.result{position:absolute;inset:auto 6% 24px;text-align:center;padding:16px;background:#0b171df5;border:1px solid #95b4b577;border-radius:8px;max-height:75%;overflow:auto}
.result>div{font-size:10px;color:#bad6ce}.result h2{color:#e0f4f1;font-size:30px;overflow-wrap:anywhere;margin:10px 0}.result p{color:#d4deda;font-size:12px;line-height:1.5;overflow-wrap:anywhere}
.result button{background:#c4e8dc;border-radius:6px;padding:12px 20px;color:#142e27;font-weight:bold}
#loading{position:absolute;inset:0;z-index:9;display:grid;place-content:center;padding:32px;text-align:center;background:#12191d;color:#cfe9e7;font-size:14px;line-height:1.6}
footer{margin-top:16px}#history{display:flex;flex-wrap:wrap;gap:8px;color:#b7c6ca;font-size:12px}.chip{background:#263834;border-radius:4px;padding:6px 10px;overflow-wrap:anywhere;max-width:100%}
[hidden]{display:none!important}
@media(max-width:900px){main{padding:14px 16px}.layout{grid-template-columns:220px minmax(0,1fr);gap:16px}}
@media(max-width:650px){main{padding:12px}header{gap:14px}.brand{font-size:19px}.layout{display:flex;flex-direction:column-reverse;gap:18px;margin-top:14px}.arena{height:480px;min-height:0}h1{font-size:20px;margin-bottom:14px}textarea{height:120px}#tags{inset:auto 12px 16px;display:flex;gap:4px;justify-content:center;flex-wrap:wrap}.name-tag{position:static;transform:none;font-size:10px!important;padding:3px 5px;max-width:85px}.result{bottom:92px}.result h2{font-size:26px}.stage-caption{top:38px}#callout{display:none}}
