/* The finale keeps the whole comic above a separate, readable dialogue band. */
.coach-entrance{background:transparent;pointer-events:none;display:flex;flex-direction:column;justify-content:space-between;color:#f6ecd5}
.entrance-top{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:8px 20px;background:#101715da;font-size:13px}
.entrance-top .text-link{pointer-events:auto;color:#f3d79b;min-height:44px;padding:9px 12px;font-size:12px}
.entrance-dialogue{pointer-events:auto;background:#15201cf7;border-top:2px solid #ad9162;padding:15px 24px;min-height:136px}
.coach-entrance .speaker{position:static;transform:none;background:none;border:0;padding:0;color:#e4c58c;display:flex;align-items:baseline;gap:12px}
.coach-entrance .speaker b{font-size:21px}.coach-entrance .speaker span{font-size:13px;color:#bed0c5}
#entranceText{font-size:18px;line-height:1.6;min-height:1.6em;margin:9px 0 12px;cursor:pointer}
.entrance-actions{display:flex;align-items:center;justify-content:flex-end;gap:14px;flex-wrap:wrap}
.entrance-actions p{margin:0 auto 0 0;font-size:12px;color:#bed0c5;line-height:1.5}
.entrance-actions .primary{min-height:44px;min-width:170px;padding:10px 18px}
.entrance-actions .text-link{color:#f0d39a}
.finale-title{position:absolute;pointer-events:none;isolation:isolate;overflow:hidden;background:#101715}
.finale-title-stage{background-image:none!important}
#finaleCast{display:block;width:100%;height:100%}
.finale-title>strong{position:absolute;top:3.2%;left:50%;transform:translateX(-50%) skew(-6deg);margin:0;white-space:nowrap;font-weight:950;line-height:1.1;color:#ffe09a;-webkit-text-stroke:1px #100f0a;text-shadow:2px 3px #000;letter-spacing:.04em}
.finale-names{position:absolute;inset:0}
.finale-names>b{position:absolute;max-width:20%;padding:.15em .28em;white-space:nowrap;font-weight:950;line-height:1.1;color:#fff4da;background:#211911e8;border-bottom:2px solid #d1af6c;text-shadow:2px 2px #000;-webkit-text-stroke:.6px #1a1208;clip-path:polygon(5% 0,100% 4%,94% 100%,0 92%);opacity:0;transform:translate(-50%,-50%) scale(1.35) rotate(-7deg)}
.finale-names>b.stamped{opacity:1;transform:translate(-50%,-50%) scale(1) rotate(-7deg);transition:transform .14s ease-out,opacity .08s}
.finale-names>b:nth-child(even){transform:translate(-50%,-50%) scale(1.35) rotate(5deg)}.finale-names>b.stamped:nth-child(even){transform:translate(-50%,-50%) scale(1) rotate(5deg)}
@media(max-width:600px) and (orientation:portrait){.entrance-top{padding:6px 12px;gap:8px;flex-wrap:wrap}.entrance-top>b{font-size:12px}.entrance-top .text-link{margin-left:auto}.entrance-dialogue{padding:13px 16px;min-height:177px}.coach-entrance .speaker{gap:8px;flex-wrap:wrap}.coach-entrance .speaker b{font-size:19px}.coach-entrance .speaker span{font-size:11px}#entranceText{font-size:16px}.entrance-actions{gap:8px}.entrance-actions .primary{width:100%}}
@media(max-height:600px) and (orientation:landscape){.entrance-top{padding:0 14px}.entrance-dialogue{padding:8px 18px;min-height:100px}.coach-entrance .speaker b{font-size:17px}.coach-entrance .speaker span{font-size:11px}#entranceText{font-size:15px;margin:5px 185px 0 0;min-height:2.5em}.entrance-actions{position:relative;min-height:8px}.entrance-actions .primary{position:absolute;right:0;bottom:0;min-width:165px}.entrance-actions p{max-width:calc(100% - 190px);font-size:10px}}
@media(prefers-reduced-motion:reduce){.finale-names>b,.finale-names>b.stamped,.finale-names>b:nth-child(even),.finale-names>b.stamped:nth-child(even){transform:translate(-50%,-50%);transition:none}}
.story.finale-scene{display:grid;grid-template-rows:48px minmax(0,1fr) auto;background:#101715;overflow:hidden}
.story.finale-scene .cinematic{position:relative;inset:auto;grid-row:2;grid-column:1;min-height:0;background-size:contain;background-position:center;background-repeat:no-repeat;background-color:#101715}
.story.finale-scene .story-shade,.story.finale-scene .cast-stage{display:none}
.story.finale-scene .story-top{position:relative;inset:auto;grid-row:1;grid-column:1;margin:0;padding:12px 18px;align-items:center;align-self:start;max-width:calc(100% - 240px);font-size:12px;letter-spacing:.02em;z-index:1}
.story.finale-scene .dialogue-card{position:relative;inset:auto;grid-row:3;grid-column:1;width:100%;margin:0;padding:12px 22px 15px;border:0;border-top:2px solid #ad9162;border-radius:0;background:#15201c;box-shadow:none;min-height:0;max-height:none;overflow-y:auto}
.story.finale-scene .speaker{position:static;transform:none;display:flex;width:fit-content;max-width:100%;background:none;border:0;border-radius:0;color:#e4c58c;padding:0;gap:12px;flex-wrap:wrap}
.story.finale-scene .speaker b{font-size:20px}
.story.finale-scene .speaker span{display:inline;font-size:12px;color:#bed0c5}
.story.finale-scene .dialogue-card>p{font-size:17px;line-height:1.6;min-height:0;max-width:none;margin:7px 0 11px}
.story.finale-scene .dialogue-card>.primary{position:static;min-height:42px;width:auto;min-width:180px;max-width:none;padding:9px 17px;margin:0 0 0 auto}
.finale-art-notice{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:20px;color:#e9e3d4;background:#101715;font-size:14px;line-height:1.6}
.finale-art-notice .text-link{padding:10px;text-decoration:underline;color:#e4c58c}
.story.finale-quiz .story-top{max-width:none;justify-content:space-between}
.story.finale-quiz .dialogue-card{padding:12px 22px 16px}
.story.finale-quiz .answers{gap:7px}
.story.finale-quiz .answer{min-height:44px;padding:10px 12px;background:#d8ead409}
.story.finale-quiz .dialogue-card .dialogue-hint{font-size:14px}
.finale-reward{margin:22px 0 12px;border-block:1px solid #acb8a655;padding-bottom:18px}
.finale-reward>img{display:block;width:100%;max-height:340px;object-fit:contain;background:#101715;margin-bottom:16px}
.finale-reward h3{font-size:21px;color:#e4c58c;margin:12px 0 8px}
.finale-reward p{font-size:17px;line-height:1.6;margin:6px 0 10px}
.finale-reward small{display:block;color:#c2d1c7;font-size:13px;line-height:1.6}
.finale-reward .reward-art-status{font-size:14px;color:#d0d7ce}
@media(max-width:600px) and (orientation:portrait){
 .story.finale-scene{grid-template-rows:78px minmax(0,1fr) auto}
 .story.finale-scene .story-top{max-width:none;padding:10px 14px;font-size:11px}
 .story.finale-scene .dialogue-card,.story.finale-quiz .dialogue-card{padding:12px 15px 15px}
 .story.finale-scene .dialogue-card>p{font-size:16px}
 .story.finale-scene .dialogue-card>.primary{width:100%;min-width:0}
 .story.finale-scene .speaker b{font-size:18px}
 .story.finale-scene .speaker span{font-size:11px}
 .story.finale-quiz{grid-template-rows:44px minmax(0,1fr) auto}
 .finale-reward>img{max-height:270px}
}
@media(max-height:600px) and (orientation:landscape){
 .story.finale-scene{grid-template-rows:40px minmax(0,1fr) auto}
 .story.finale-scene .story-top{font-size:11px;padding:10px 16px}
 .story.finale-scene .dialogue-card{padding:9px 16px 10px;display:grid;grid-template-columns:1fr 170px;column-gap:18px}
 .story.finale-scene .speaker{grid-column:1/-1}
 .story.finale-scene .speaker b{font-size:17px}
 .story.finale-scene .dialogue-card>p{font-size:15px;line-height:1.5;margin:5px 0 0;grid-column:1}
 .story.finale-scene .dialogue-card>.primary{grid-column:2;grid-row:2;align-self:end;min-width:0;min-height:40px;width:100%;font-size:13px}
 .story.finale-quiz{grid-template-columns:42% 58%;grid-template-rows:40px minmax(0,1fr)}
 .story.finale-quiz .story-top{grid-column:1/-1}
 .story.finale-quiz .cinematic{grid-column:1;grid-row:2}
 .story.finale-quiz .dialogue-card{grid-column:2;grid-row:2;display:block;border-top:0;border-left:1px solid #ad9162;padding:10px 16px;overflow-y:auto}
 .story.finale-quiz .dialogue-card>p{margin:7px 0 10px}
 .story.finale-quiz .dialogue-card>.primary{width:100%;margin-top:12px}
}

.finale-title-stage .finale-title>strong{animation:four-kings-impact .26s cubic-bezier(.16,1,.3,1) both}

@keyframes four-kings-impact{from{transform:translateX(-50%) scale(1.18) skew(-6deg);opacity:.6}to{transform:translateX(-50%) scale(1) skew(-6deg);opacity:1}}
@keyframes four-kings-rays{from{opacity:1}to{opacity:.3}}
@media(prefers-reduced-motion:reduce){.finale-title-stage .finale-title>strong,.finale-title:before{animation:none}}

/* v33: identity cards sit in the picture, then lock to each actor's final slot. */
.finale-names>b{max-width:58%;padding:.1em .22em .15em;background:#0a101de8;border:0;border-left:4px solid #eab55a;border-bottom:2px solid #eab55a;clip-path:polygon(3% 0,100% 0,96% 100%,0 100%);font-family:"DFKai-SB","KaiTi","Noto Serif TC",serif;font-weight:900;letter-spacing:.08em;color:#fff4df;text-shadow:3px 5px 0 #07101e,0 0 25px #efaa3940;-webkit-text-stroke:0;transform:translate(-50%,-50%) scale(1.45) rotate(-5deg)}
.finale-names>b::before{content:attr(data-title);display:block;font:800 .24em/1.4 system-ui,sans-serif;letter-spacing:.3em;color:#eac17e;margin:0 0 .2em .15em}
.finale-names>b.stamped,.finale-names>b.stamped:nth-child(even){transform:translate(-50%,-50%) scale(1) rotate(-5deg);transition:transform .18s cubic-bezier(.16,1,.3,1),opacity .1s}
.finale-title>strong{font-family:"DFKai-SB","KaiTi",serif;letter-spacing:.12em;color:#ffe9ae;text-shadow:3px 5px 0 #020510}
.finale-title[data-phase="ensemble"]>strong{animation:four-kings-impact .35s cubic-bezier(.16,1,.3,1) both}
@media(prefers-reduced-motion:reduce){.finale-names>b.stamped{transition:none}.finale-title[data-phase="ensemble"]>strong{animation:none}}

.finale-title>strong{-webkit-text-stroke:0;z-index:2;font-family:system-ui,"Microsoft JhengHei",sans-serif;font-weight:900;text-shadow:2px 3px 0 #020510}

/* Keep semantic names; the visible brush lettering is authored with Image2. */
.finale-title.image-titles .finale-names{visibility:hidden}

/* The timed introduction fills the stage; dialogue follows in the same frame. */
.story.finale-scene.coach-fullscreen{position:absolute!important;inset:0!important;width:100%!important;height:100%!important;max-width:none!important;max-height:none!important;z-index:100;display:block;background:#101715}
.story.finale-scene.coach-fullscreen .cinematic{position:absolute!important;inset:0!important;width:100%;height:100%}
.story.finale-scene.coach-fullscreen .story-top{display:none}
.story.finale-scene.coach-fullscreen .dialogue-card{position:absolute;bottom:0;right:0;width:auto;background:transparent;border:0;overflow:visible;padding:12px;display:block}
.story.finale-scene.coach-fullscreen #viewArt{display:none}
.time-danger{color:#ff7979!important;font-weight:900;text-shadow:0 0 12px #f3303044}
#quizProgress{font-variant-numeric:tabular-nums}

.approach-panel{pointer-events:none;background:transparent;display:flex;flex-direction:column;justify-content:space-between;padding:35px 20px;color:#fff0c5}
.approach-panel>div{align-self:flex-start;padding:10px 16px;background:#111a20e8;border-left:3px solid #d8b26b;max-width:90%}
.approach-panel b{display:block;font-size:17px}.approach-panel span{display:block;margin-top:7px;font-size:13px;color:#d2dbd6}
.approach-panel nav{pointer-events:auto;align-self:flex-end;display:flex;gap:10px}.approach-panel button{background:#101a21e8;color:#f3dfb4;border:1px solid #b8a47a;padding:10px 14px;min-height:44px;border-radius:4px}
.story.arrival-dialogue{animation:arrival-dialogue .4s ease-out both}
@keyframes arrival-dialogue{from{opacity:0}to{opacity:1}}
@media(prefers-reduced-motion:reduce){.story.arrival-dialogue{animation:none}}
@media(max-width:600px){.approach-panel{padding:30px 12px}.approach-panel b{font-size:15px}.approach-panel span{font-size:12px}.approach-panel nav{gap:6px}.approach-panel button{font-size:12px}}

#vehicleCut{position:absolute;inset:0;z-index:9000;background:#140b21;overflow:hidden;isolation:isolate}
#vehicleCut.hidden{display:none}
.vehicle-cut-art{width:100%;height:100%;object-fit:contain;transform:scale(1);transition:transform .5s cubic-bezier(.16,1,.3,1);position:absolute;inset:0}
#vehicleCut[data-shot=rev] .vehicle-cut-art{transform:scale(1.6) translate(4%,-12%)}
#vehicleCut[data-shot=rush] .vehicle-cut-art{transform:scale(1.04)}
.vehicle-cut-lines{position:absolute;inset:0;pointer-events:none;box-shadow:inset 0 0 100px #f9248744;background:linear-gradient(175deg,transparent 68%,#14091fea 90%)}
.vehicle-cut-title{position:absolute;left:5%;right:5%;bottom:12%;text-align:center;transform:translateY(130%);opacity:0;transition:transform .22s,opacity .12s;color:#fff0b8;filter:drop-shadow(0 6px 2px #200b26)}
#vehicleCut[data-shot=title] .vehicle-cut-title{transform:translateY(0) rotate(-4deg);opacity:1}
.vehicle-cut-title strong{display:block;font:italic 1000 clamp(38px,7vw,104px)/1.15 system-ui;-webkit-text-stroke:2px #4d0929;text-shadow:5px 5px #f91f82,8px 8px #111}
.vehicle-cut-title small{font-weight:900;letter-spacing:.2em}.vehicle-cut-title span{display:block;margin-top:12px;font-weight:900}
#vehicleCut nav{position:absolute;bottom:max(18px,env(safe-area-inset-bottom));right:20px;display:flex;gap:10px;z-index:2}#vehicleCut button{min-height:44px;background:#20142ded;border:1px solid #e8c980;color:#fff0b8;padding:10px 16px}
@media(max-aspect-ratio:3/4){.vehicle-cut-title{bottom:17%}.vehicle-cut-title strong{font-size:42px}.vehicle-cut-title small{font-size:11px}#vehicleCut[data-shot=rev] .vehicle-cut-art{transform:scale(1.35) translateY(-3%)}}
@media(prefers-reduced-motion:reduce){#vehicleCut .vehicle-cut-art{transform:none;transition:none}.vehicle-cut-title{transition:none}}
/* v46: street phone prelude and opening-style coach conversations. */
/* v48: one completion form, then a sprite epilogue and monthly scoreboard. */
#resultPanel.registration-mode{position:absolute;inset:0;z-index:80;background:#15121df5;padding:24px;overflow:auto}
#resultPanel.registration-mode .result-card{width:min(1080px,100%);max-width:1080px;margin:auto;display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);column-gap:32px;align-items:start}
#resultPanel.registration-mode .result-card>.overline{display:none}
#resultPanel.registration-mode .result-heading{grid-column:1/-1;margin-bottom:20px}
#resultPanel.registration-mode .finale-reward{grid-column:1;grid-row:2;margin:0;border:0}
#resultPanel.registration-mode .finale-reward>img{max-height:240px;border-radius:8px}
#resultPanel.registration-mode .result-score{grid-column:1;grid-row:3;margin-top:16px}
.registration-section{grid-column:2;grid-row:2/5;text-align:left}
.registration-section h3{font-size:22px;margin:0 0 10px;color:#ffe4a6}
.registration-section>p{color:#d7cddc;font-size:14px;line-height:1.7;margin:0 0 20px}
.registration-section label{font-size:14px;color:#f8eddc}
.registration-section input,.registration-section select{min-width:0;width:100%;font-size:16px;min-height:44px}
.registration-section input[type=checkbox]{width:20px;min-height:20px;flex-shrink:0}
.registration-section .form-row{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.registration-section .consent{align-items:flex-start;line-height:1.65;margin:18px 0 12px}
.registration-section .privacy-note{font-size:12px;color:#cbbccf;line-height:1.7}
.registration-section .primary{width:100%;justify-content:center;margin-top:15px}
.monthly-prize-copy{font-size:14px;line-height:1.75;padding:14px 0;margin:15px 0;color:#ffdda2;border-block:1px solid #8b725755}
.registration-code{display:flex;gap:10px;flex-wrap:wrap;align-items:center;margin-top:18px;font-size:12px;color:#d8c9da}
.registration-code strong{font-variant-numeric:tabular-nums;font-size:14px;letter-spacing:.04em}
#rankingVoucherNote{font-size:14px;line-height:1.7;color:#e8d4a3;overflow-wrap:anywhere}
.ending-panel{position:absolute;inset:0;z-index:90;display:grid;grid-template-columns:minmax(0,1.85fr) minmax(260px,1fr);grid-template-rows:minmax(0,1fr);overflow:hidden;background:#111219;isolation:isolate}
.ending-stage{position:relative;overflow:hidden;min-width:0;min-height:0}
#endingCanvas{width:100%;height:100%;object-fit:contain}
.ending-heading{position:absolute;left:5%;right:5%;top:4%;text-shadow:0 3px 5px #000;color:#ffe2a0}
.ending-heading>span{font-size:15px;font-weight:900;letter-spacing:.22em}
.ending-heading h2{font-size:clamp(22px,3vw,42px);font-weight:950;margin:7px 0}
.ending-heading p{font-size:15px;margin:8px 0;color:#fff0d2}
.ending-speech{position:absolute;bottom:3%;left:5%;right:5%;padding:12px 16px;background:#15131aeb;border:1px solid #b59b6566;border-radius:8px;color:#fff0c7;font-size:16px;font-weight:700;line-height:1.65;text-align:center}
.ending-credits{display:flex;flex-direction:column;background:#101014;padding:24px;min-width:0;min-height:0;border-left:1px solid #846f434d}
.ending-credits-window{position:relative;flex:1;overflow:hidden;min-height:0;mask-image:linear-gradient(transparent,#000 12%,#000 85%,transparent)}
#endingCreditsRoll{text-align:center;will-change:transform;padding:0 8px}
#endingCreditsRoll section{padding:20px 0 30px}
#endingCreditsRoll h3{font-size:15px;font-weight:600;line-height:1.7;color:#bfb3a0;margin:0 0 12px}
#endingCreditsRoll p{font-size:23px;font-weight:800;line-height:1.8;margin:0;color:#ffebc6}
#endingCreditsRoll section:first-child p,#endingCreditsRoll section:last-child p{color:#ffd06b;font-size:25px}
.ending-controls{padding-top:14px;font-size:12px;color:#c4bcae;border-top:1px solid #84704755}
.ending-controls>div{display:flex;gap:10px;margin-bottom:14px}.ending-controls button{min-height:44px;padding:10px 13px;border:1px solid #b99d6b;border-radius:6px;background:#25211b;font-size:14px}
#endingSkip{background:#ffd06b;color:#231d13;font-weight:900;flex:1}
.ending-controls a{text-decoration:underline;text-underline-offset:3px;color:#c4bcae}.ending-controls p{line-height:1.7;margin:0 0 10px}
@media(max-width:780px){#resultPanel.registration-mode{padding:16px 12px}#resultPanel.registration-mode .result-card{display:block}#resultPanel.registration-mode .finale-reward{display:grid;grid-template-columns:110px 1fr;gap:12px;align-items:center;margin-bottom:16px;padding-bottom:0}#resultPanel.registration-mode .finale-reward>img{margin:0;max-height:110px}.registration-mode .finale-reward h3{font-size:16px;margin:0 0 6px}.registration-mode .finale-reward p{font-size:13px;margin:0}.registration-mode .finale-reward small{font-size:11px}.registration-section{margin-top:20px}.registration-section h3{font-size:19px}.registration-section .form-row{gap:12px}.ending-panel{grid-template-columns:1fr;grid-template-rows:56% 44%}.ending-credits{padding:8px 18px 14px;border-left:0;border-top:1px solid #846f434d}.ending-heading h2{font-size:24px}.ending-heading>span{font-size:12px}.ending-heading p{font-size:12px}.ending-speech{font-size:13px;padding:8px 10px}.ending-controls{padding-top:8px}.ending-controls>div{margin:0 0 6px}#endingCreditsRoll h3{font-size:13px}#endingCreditsRoll p{font-size:20px}}
@media(max-width:370px){.registration-section .form-row{grid-template-columns:1fr}.ending-controls button{font-size:12px;padding:8px}.ending-heading h2{font-size:20px}}
@media(prefers-reduced-motion:reduce){#endingCreditsRoll{will-change:auto}}
/* v47: camera and particles follow the same pausable presentation clock. */
#vehicleCut .vehicle-cut-art,#vehicleCut .vehicle-cut-drift{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;transition:none;transform:translate(var(--vehicle-x,0px),var(--vehicle-y,0%)) scale(var(--vehicle-scale,1));transform-origin:55% 65%;will-change:transform}
#vehicleCut .vehicle-cut-drift{opacity:0}
#vehicleCut[data-shot=drift] .vehicle-cut-drift{opacity:1}
#vehicleCut[data-shot=drift] .vehicle-cut-art{opacity:0}
#vehicleCutEffects{position:absolute;inset:0;width:100%;height:100%;z-index:1;pointer-events:none}
#vehicleCutBeat{position:absolute;top:9%;left:6%;z-index:2;color:#ffdc90;background:#17111aeb;padding:10px 24px;font-size:clamp(18px,2.7vw,38px);transform:skew(-8deg);border-bottom:2px solid #ff4d9b}
#vehicleCut[data-shot=impact] #vehicleCutBeat,#vehicleCut[data-shot=title] #vehicleCutBeat{opacity:0}
#vehicleCut::before,#vehicleCut::after{content:'';position:absolute;left:0;right:0;height:4%;background:#08050df2;z-index:2;pointer-events:none}
#vehicleCut::before{top:0}#vehicleCut::after{bottom:0}
#vehicleCut .vehicle-cut-title{z-index:3;transition:none;transform:translateY(0) rotate(-4deg) scale(.94)}
#vehicleCut[data-shot=impact] .vehicle-cut-title{opacity:1;transform:translateY(0) rotate(-6deg) scale(1.08)}
#vehicleCut[data-shot=title] .vehicle-cut-title{opacity:1;transform:translateY(0) rotate(-4deg) scale(1)}
#vehicleCut .vehicle-cut-title span{display:inline-block;background:#180c21e8;padding:7px 16px;color:#fff0b5;border-bottom:2px solid #ff459b}
#vehicleCut .vehicle-cut-title strong{font-family:'Microsoft JhengHei','PingFang TC',sans-serif;font-weight:900;-webkit-text-stroke:1px #fff0b8;text-shadow:3px 0 #340b27,-3px 0 #340b27,0 -3px #340b27,0 3px #340b27,6px 7px #d51065,9px 10px #150a1a}
#vehicleCut nav{z-index:4}
@media(max-aspect-ratio:3/4){#vehicleCutBeat{top:18%}#vehicleCut .vehicle-cut-title{bottom:19%}#vehicleCut .vehicle-cut-title strong{font-size:clamp(33px,8vw,64px)}}
@media(prefers-reduced-motion:reduce){#vehicleCut .vehicle-cut-art,#vehicleCut .vehicle-cut-drift{transform:scale(.92);will-change:auto}#vehicleCutEffects,#vehicleCutBeat{display:none}}
.cleaner-call{pointer-events:none;background:transparent;display:flex;align-items:flex-end;justify-content:center;padding:20px}
.cleaner-call-dialogue{pointer-events:auto;width:min(620px,94%);background:#19221cf5;border:2px solid #e6ba73;border-radius:12px;padding:16px 22px;color:#fff0d1;box-shadow:0 12px 30px #0006}
.cleaner-call-dialogue>b{color:#ffd180}.cleaner-call-dialogue p{font-size:22px;font-weight:800;margin:8px 0}.cleaner-call-dialogue small{display:block;min-height:22px;color:#ead8b7}
.cleaner-call-dialogue nav{display:flex;justify-content:flex-end;gap:14px}.cleaner-call-dialogue button{min-height:44px;padding:8px 14px;background:#29362e;border:1px solid #bba06a;border-radius:6px;color:#fff0d1}
#entrancePortrait{display:none}.coach-entrance.portrait-dialogue{position:absolute;inset:0;z-index:8000;background:linear-gradient(#10201855,#091410d9),url('/assets/finale-v30-coaches-direct-camera.png') center/cover;pointer-events:auto}
.portrait-dialogue #entrancePortrait{display:block;position:absolute;left:8%;top:12%;height:min(48vh,440px);aspect-ratio:3/4;background-repeat:no-repeat;border:3px solid #eacb88;border-radius:12px;box-shadow:0 18px 42px #0009}
.portrait-dialogue .entrance-dialogue{position:absolute;bottom:3%;left:4%;width:92%;min-height:174px;border:2px solid #b6a078;border-radius:12px;padding:22px 26px;background:#15201cf5}
.portrait-dialogue #entranceText{font-size:clamp(18px,2vw,26px);line-height:1.65;margin:12px 0;min-height:2em}.portrait-dialogue .entrance-top{z-index:1}
@media(orientation:portrait){.portrait-dialogue #entrancePortrait{height:min(43vh,400px);left:50%;transform:translateX(-50%);top:10%}.portrait-dialogue .entrance-dialogue{padding:16px;bottom:2%;min-height:220px}.cleaner-call-dialogue p{font-size:18px}}
@media(max-height:500px) and (orientation:landscape){.portrait-dialogue #entrancePortrait{top:14%;height:42vh;left:8%}.portrait-dialogue .entrance-dialogue{min-height:112px;padding:10px 18px}.portrait-dialogue #entranceText{font-size:17px;margin:6px 175px 0 0}}
