.carnival-cast{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin:16px 0}.carnival-cast button{display:flex;min-width:0;flex-direction:column;align-items:center;padding:8px 3px}.carnival-cast img{width:68px;height:76px;object-fit:contain}.carnival-cast b{font-size:14px;white-space:normal}.carnival-cast small{font-size:12px}.carnival-lead{max-width:680px;margin:auto}.carnival-lead p{line-height:1.6}.carnival-symbol{display:inline-block;width:18px;height:18px;vertical-align:middle}.carnival-symbol svg{width:100%;height:100%;stroke:#504137;fill:#f6e9be;stroke-width:1.8;stroke-linejoin:round}

.carnival-mode{max-width:480px;margin:12px auto;padding:20px}.carnival-modes{border:0;margin:16px 0;padding:0;display:grid;gap:12px}.carnival-modes legend{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}.carnival-modes label{display:flex;align-items:center;gap:12px;border:1px solid #a1845f;border-radius:3px;padding:12px;background:#f5e7c9;cursor:pointer}.carnival-modes label:has(input:checked){outline:2px solid #45636b;outline-offset:1px}.carnival-modes input{width:18px;height:18px;flex-shrink:0;accent-color:#45636b}.carnival-modes span{display:grid;gap:4px}.carnival-modes b{font-size:17px}.carnival-modes small{font-size:13px;line-height:1.5}.carnival-mode h1{font-size:25px}

/* Entry uses shipped theatre, ticket and character art; battle styles are untouched. */
.carnival-mode.carnival-entry{position:relative;isolation:isolate;max-width:420px;margin:0 auto;padding:4px 12px 18px;border:0;background:transparent;box-shadow:none;color:#f5e7c9}
.carnival-masthead{text-align:center;position:relative;z-index:2}.carnival-masthead .eyebrow{margin:0 0 3px;color:#cbb58b;letter-spacing:3px;font-size:10px}.carnival-masthead h1{font-family:PaperTheatreSerif,SimSun,serif;font-size:40px;font-weight:600;line-height:1.2;letter-spacing:5px;color:#f4e6c5;text-shadow:0 2px 0 #15313c;margin:0}.carnival-subtitle{font-family:PaperTheatreScript,KaiTi,serif;font-size:15px;letter-spacing:2px;color:#dbc292;margin:5px 0 0}
.carnival-mini-stage{position:relative;width:100%;height:205px;margin:4px 0 -3px;isolation:isolate}.entry-stage{position:absolute;width:100%;height:100%;object-fit:contain;inset:0;filter:drop-shadow(0 9px 8px #0c21234a)}.entry-actor{position:absolute;width:28%;height:57%;object-fit:contain;bottom:18%;filter:drop-shadow(2px 3px 1px #40352960)}.entry-poet{left:14%;transform:rotate(-5deg);z-index:1}.entry-dancer{left:36%;height:64%;bottom:17%;z-index:2}.entry-char13{right:10%;transform:rotate(4deg);z-index:1}
.carnival-entry .carnival-modes{gap:8px;margin:0 0 12px}.carnival-entry .carnival-modes label{min-height:66px;padding:12px 25px;gap:10px;background:transparent url('assets/ui/stage-ticket-simple.webp') center/100% 100% no-repeat;border:0;outline:0;filter:brightness(.86);transition:filter .15s}.carnival-entry .carnival-modes label:has(input:checked){filter:brightness(1.12);outline:0}.carnival-entry .carnival-modes b{font-family:PaperTheatreSerif,SimSun,serif;font-size:18px;letter-spacing:1px;color:#f7e8c5}.carnival-entry .carnival-modes small{font-size:11px;color:#e3d1ad}.carnival-entry .carnival-modes span{gap:2px}.carnival-entry .carnival-modes input{accent-color:#b7934e;width:16px;height:16px}.carnival-entry [data-action="start-mode"]{min-height:46px;border:1px solid #c2a36b;background:linear-gradient(#e9d7af,#d5b783);color:#263f45;box-shadow:0 3px 0 #8c7048,0 7px 13px #0b22284d;font-family:PaperTheatreSerif,SimSun,serif;font-size:20px;letter-spacing:2px;margin:0}.is-carnival-entry{background:radial-gradient(ellipse at 50% 26%,#466168 0,#28414a 50%,#192f38 100%);background-attachment:fixed}
@media(max-width:350px){.carnival-mode.carnival-entry{padding:0 8px 16px}.carnival-masthead h1{font-size:34px}.carnival-masthead .eyebrow{font-size:9px}.carnival-subtitle{font-size:13px;margin-top:3px}.carnival-mini-stage{height:170px;margin-top:3px}.carnival-entry .carnival-modes label{min-height:62px;padding:10px 24px}.carnival-entry .carnival-modes b{font-size:17px}.carnival-entry .carnival-modes small{font-size:10px;white-space:nowrap}.carnival-entry [data-action="start-mode"]{font-size:18px;min-height:44px}}
@media(min-width:700px){.carnival-entry .carnival-mini-stage{height:240px}.carnival-mode.carnival-entry{padding-top:10px}.carnival-masthead h1{font-size:48px}}
.is-carnival-entry #app{background:transparent;box-shadow:none;overflow:visible}.carnival-entry header.carnival-masthead{display:block;padding:0;width:100%;margin:0;background:transparent;border:0;box-shadow:none}.carnival-entry header.carnival-masthead h1{white-space:nowrap}.carnival-entry .carnival-modes label{box-shadow:none}.carnival-entry .carnival-modes label span{min-width:0}

.record-entry{text-align:right;margin:2px 0 0}.record-entry button{font:inherit;font-size:12px;color:#76664e;background:none;border:0;box-shadow:none;min-height:36px;padding:6px 0 6px 12px;cursor:pointer;text-decoration:underline;text-underline-offset:3px}.record-entry button span{padding-left:5px}.battle-record-reader h2{margin:4px 0;font-size:20px}.record-caption{font-size:12px;color:#76664e;margin:0 0 14px}.record-round{border-top:1px solid #d9cbb4;min-width:0}.record-round summary{min-height:44px;align-content:center;padding:10px 0;cursor:pointer;font-size:14px}.record-round ol{margin:0;padding:0 0 12px 22px}.record-round li{padding:5px 0;font-size:13px;line-height:1.7;overflow-wrap:anywhere;text-align:left}.battle-record-reader{min-width:0}.record-rounds{max-height:65vh;overflow-y:auto;overscroll-behavior:contain;scrollbar-gutter:stable}

#detail.static-stage-preview{width:calc(100% - 16px);max-width:850px;padding:8px}#detail.static-stage-preview h2{font-size:17px;margin:4px 45px 8px 4px}#detail.static-stage-preview #detail-body{padding:0}#detail.static-stage-preview #arena{margin:0}#detail.static-stage-preview #arena *{animation:none!important;transition:none!important}
.new-song_break_release{left:50%!important;top:50%!important;width:80%!important;height:100px!important;animation:break-stage .85s ease-out}@keyframes break-stage{from{transform:translate(-50%,-50%) scale(.4);opacity:1}to{transform:translate(-50%,-50%) scale(1.1);opacity:0}}

.opponent-preview{position:relative}.opponent-preview .enemy-preview-link{display:block;margin:0 0 3px auto;padding:4px 0 4px 10px;min-height:32px;width:auto;min-width:0;border:0;background:transparent;box-shadow:none;color:#806947;font-size:12px;font-weight:400;line-height:20px}.enemy-preview-link span{margin-left:4px}.opponent-preview .enemy-preview-link:hover{text-decoration:underline}.opponent-preview .enemy-preview-link:active{transform:none}
.opponent-preview .enemy-preview-link{float:right;margin:-6px 0 0 8px;white-space:nowrap}.opponent-preview .enemy-preview-link span{display:inline;margin:0 0 0 4px;line-height:inherit}
