/* The shared meeting uses whole authored plates and a discrete cut for every beat. */
.lo-cut{position:absolute;inset:0;background:#17211e;opacity:0;pointer-events:none;z-index:2}
.living-opening:is([data-segment=stroll],[data-segment=rest-meet],[data-segment=rest-help],[data-segment=rest-try],[data-segment=rest-walk]):not(.lo-arrived) .lo-cut{opacity:1}
.living-opening:is([data-segment=stroll],[data-segment=rest-meet],[data-segment=rest-help],[data-segment=rest-try],[data-segment=rest-walk]) .lo-cut{transition:opacity .17s ease-out}
.living-opening:is([data-segment=stroll],[data-segment=rest-meet],[data-segment=rest-help],[data-segment=rest-try],[data-segment=rest-walk]):not(.lo-arrived) .lo-dock{visibility:hidden}
.living-opening:is([data-segment=stroll],[data-segment=rest-meet],[data-segment=rest-help],[data-segment=rest-try],[data-segment=rest-walk]) .lo-heading h2{font-size:19px}
.living-opening:is([data-segment=stroll],[data-segment=rest-meet],[data-segment=rest-help],[data-segment=rest-try],[data-segment=rest-walk]) .lo-message-text{font-size:18px;line-height:1.4}
.living-opening:is([data-segment=stroll],[data-segment=rest-meet],[data-segment=rest-help],[data-segment=rest-try],[data-segment=rest-walk]) .lo-line{font-size:20px;line-height:1.38}
.living-opening:is([data-segment=stroll],[data-segment=rest-meet],[data-segment=rest-help],[data-segment=rest-try],[data-segment=rest-walk])[data-kind=narration] .lo-thought{background:var(--narrator-panel);border-color:var(--narrator-border);border-radius:20px}
.living-opening:is([data-segment=stroll],[data-segment=rest-meet],[data-segment=rest-help],[data-segment=rest-try],[data-segment=rest-walk])[data-kind=narration] .lo-thought::before,.living-opening:is([data-segment=stroll],[data-segment=rest-meet],[data-segment=rest-help],[data-segment=rest-try],[data-segment=rest-walk])[data-kind=narration] .lo-thought::after{display:none}
.living-opening:is([data-segment=stroll],[data-segment=rest-meet],[data-segment=rest-help],[data-segment=rest-try],[data-segment=rest-walk])[data-kind=narration] .lo-speaker{color:var(--narrator-label)}
.living-opening:is([data-segment=stroll],[data-segment=rest-meet],[data-segment=rest-help],[data-segment=rest-try],[data-segment=rest-walk])[data-kind=recording] .lo-message{border-color:#e7cb9566;background:linear-gradient(135deg,#263642f5,#152832f5)}
.lo-record-label{position:absolute;top:calc(82px + var(--safe-top));left:20px;z-index:3;border:1px solid #eddbc566;background:#1c2528dc;border-radius:8px;padding:7px 10px;color:#f5dfbd;font-size:9px;letter-spacing:.1em;pointer-events:none}
.living-opening:is([data-segment=stroll],[data-segment=rest-meet],[data-segment=rest-help],[data-segment=rest-try],[data-segment=rest-walk]) .lo-choices{grid-template-columns:1fr;gap:8px}
.living-opening:is([data-segment=stroll],[data-segment=rest-meet],[data-segment=rest-help],[data-segment=rest-try],[data-segment=rest-walk]) .lo-choice{min-height:48px!important;font-size:15px!important}
.living-opening:is([data-segment=stroll],[data-segment=rest-meet],[data-segment=rest-help],[data-segment=rest-try],[data-segment=rest-walk]):is([data-kind=choice],[data-kind=reason]) .lo-thought{padding:13px 16px;margin:0}
.living-opening:is([data-segment=stroll],[data-segment=rest-meet],[data-segment=rest-help],[data-segment=rest-try],[data-segment=rest-walk]):is([data-kind=choice],[data-kind=reason]) .lo-thought::before,.living-opening:is([data-segment=stroll],[data-segment=rest-meet],[data-segment=rest-help],[data-segment=rest-try],[data-segment=rest-walk]):is([data-kind=choice],[data-kind=reason]) .lo-thought::after{display:none}
.living-opening:is([data-segment=stroll],[data-segment=rest-meet],[data-segment=rest-help],[data-segment=rest-try],[data-segment=rest-walk]):is([data-kind=choice],[data-kind=reason]) .lo-line{font-size:17px;line-height:1.3}
@media(max-height:700px) and (orientation:portrait){
 .living-opening:is([data-segment=stroll],[data-segment=rest-meet],[data-segment=rest-help],[data-segment=rest-try],[data-segment=rest-walk]) .lo-dock{bottom:calc(65px + var(--safe-bottom))}
 .living-opening:is([data-segment=stroll],[data-segment=rest-meet],[data-segment=rest-help],[data-segment=rest-try],[data-segment=rest-walk]) .lo-message,.living-opening:is([data-segment=stroll],[data-segment=rest-meet],[data-segment=rest-help],[data-segment=rest-try],[data-segment=rest-walk]) .lo-thought{padding:11px 14px}
 .living-opening:is([data-segment=stroll],[data-segment=rest-meet],[data-segment=rest-help],[data-segment=rest-try],[data-segment=rest-walk]) .lo-line,.living-opening:is([data-segment=stroll],[data-segment=rest-meet],[data-segment=rest-help],[data-segment=rest-try],[data-segment=rest-walk]) .lo-message-text{font-size:16px;line-height:1.3}
 .living-opening:is([data-segment=stroll],[data-segment=rest-meet],[data-segment=rest-help],[data-segment=rest-try],[data-segment=rest-walk]) .lo-choice{min-height:44px!important;font-size:14px!important;padding:9px 10px}
 .living-opening:is([data-segment=stroll],[data-segment=rest-meet],[data-segment=rest-help],[data-segment=rest-try],[data-segment=rest-walk]) .lo-choices{gap:6px;margin-top:9px}
 .living-opening:is([data-segment=stroll],[data-segment=rest-meet],[data-segment=rest-help],[data-segment=rest-try],[data-segment=rest-walk]):is([data-kind=choice],[data-kind=reason]) .lo-line{font-size:15px}
}
@media(max-height:540px) and (orientation:portrait){
 .living-opening:is([data-segment=stroll],[data-segment=rest-meet],[data-segment=rest-help],[data-segment=rest-try],[data-segment=rest-walk]) .lo-heading h2{font-size:16px}
 .living-opening:is([data-segment=stroll],[data-segment=rest-meet],[data-segment=rest-help],[data-segment=rest-try],[data-segment=rest-walk]) .lo-line,.living-opening:is([data-segment=stroll],[data-segment=rest-meet],[data-segment=rest-help],[data-segment=rest-try],[data-segment=rest-walk]) .lo-message-text{font-size:15px}
 .living-opening:is([data-segment=stroll],[data-segment=rest-meet],[data-segment=rest-help],[data-segment=rest-try],[data-segment=rest-walk]):is([data-kind=choice],[data-kind=reason]) .lo-speaker{display:none}
 .living-opening:is([data-segment=stroll],[data-segment=rest-meet],[data-segment=rest-help],[data-segment=rest-try],[data-segment=rest-walk]):is([data-kind=choice],[data-kind=reason]) .lo-line{margin:0;font-size:14px}
 .living-opening:is([data-segment=stroll],[data-segment=rest-meet],[data-segment=rest-help],[data-segment=rest-try],[data-segment=rest-walk]):is([data-kind=choice],[data-kind=reason]) .lo-thought{padding:10px 12px}
 .lo-record-label{top:calc(68px + var(--safe-top));font-size:8px;padding:6px 8px}
}
@media(orientation:landscape) and (max-height:600px){
 .living-opening:is([data-segment=stroll],[data-segment=rest-meet],[data-segment=rest-help],[data-segment=rest-try],[data-segment=rest-walk]) .lo-heading{max-width:135px}
 .living-opening:is([data-segment=stroll],[data-segment=rest-meet],[data-segment=rest-help],[data-segment=rest-try],[data-segment=rest-walk]) .lo-heading h2{font-size:16px}
 .living-opening:is([data-segment=stroll],[data-segment=rest-meet],[data-segment=rest-help],[data-segment=rest-try],[data-segment=rest-walk]) .lo-dock{bottom:calc(62px + var(--safe-bottom))}
 .living-opening:is([data-segment=stroll],[data-segment=rest-meet],[data-segment=rest-help],[data-segment=rest-try],[data-segment=rest-walk]) .lo-line,.living-opening:is([data-segment=stroll],[data-segment=rest-meet],[data-segment=rest-help],[data-segment=rest-try],[data-segment=rest-walk]) .lo-message-text{font-size:15px;line-height:1.3}
 .living-opening:is([data-segment=stroll],[data-segment=rest-meet],[data-segment=rest-help],[data-segment=rest-try],[data-segment=rest-walk]) .lo-message,.living-opening:is([data-segment=stroll],[data-segment=rest-meet],[data-segment=rest-help],[data-segment=rest-try],[data-segment=rest-walk]) .lo-thought{padding:10px 13px}
 .living-opening:is([data-segment=stroll],[data-segment=rest-meet],[data-segment=rest-help],[data-segment=rest-try],[data-segment=rest-walk]) .lo-choice{min-height:44px!important;font-size:13px!important;padding:8px}
 .living-opening:is([data-segment=stroll],[data-segment=rest-meet],[data-segment=rest-help],[data-segment=rest-try],[data-segment=rest-walk]) .lo-choices{gap:5px;margin-top:7px}
 .living-opening:is([data-segment=stroll],[data-segment=rest-meet],[data-segment=rest-help],[data-segment=rest-try],[data-segment=rest-walk]):is([data-kind=choice],[data-kind=reason]) .lo-speaker{display:none}
 .living-opening:is([data-segment=stroll],[data-segment=rest-meet],[data-segment=rest-help],[data-segment=rest-try],[data-segment=rest-walk]):is([data-kind=choice],[data-kind=reason]) .lo-line{font-size:14px;line-height:1.2;margin:0}
 .living-opening:is([data-segment=stroll],[data-segment=rest-meet],[data-segment=rest-help],[data-segment=rest-try],[data-segment=rest-walk]):is([data-kind=choice],[data-kind=reason]) .lo-thought{padding:8px 10px}
 .lo-record-label{top:calc(64px + var(--safe-top));left:18px;font-size:7px}
}
@media(prefers-reduced-motion:reduce){.lo-cut{transition:none}}
.lo-paused .lo-cut{transition:none}
/* A private outgoing clip, registered to Ilya's existing phone plate. */
.lo-phone-recording.is-sharing{background:linear-gradient(145deg,#24363d,#172830)}
.is-sharing .lo-recording-title{top:18%;bottom:auto;left:8%;right:8%;font-size:14px;letter-spacing:0;text-shadow:none;background:#30434b;border:1px solid #c2d4d322;padding:8px 4px}
.is-sharing .lo-recording-image{left:16%;top:29%;width:76%;height:32%;object-position:50% 14%;border:3px solid #6d919a;border-radius:12px;box-sizing:border-box}
.is-sharing .lo-recording-caption{top:63%;bottom:auto;left:16%;right:8%;font-size:12px;padding:7px 5px;background:#365663;border-color:#b9d8d244;border-radius:7px}
@media(orientation:landscape) and (max-height:600px){
 .is-sharing .lo-recording-title,.is-sharing .lo-recording-caption{display:block;font-size:8px;padding:5px 3px}
}
/* On a short landscape phone the HUD uses the text column, leaving the art full height. */
@media(orientation:landscape) and (max-height:600px){
 .living-opening:is([data-segment=stroll],[data-segment=rest-meet],[data-segment=rest-help],[data-segment=rest-try],[data-segment=rest-walk]) .lo-visual{top:0;bottom:0;height:100%;width:min(48vw,calc(100dvh * .667));left:calc((48vw - min(48vw,calc(100dvh * .667))) / 2)}
 .living-opening:is([data-segment=stroll],[data-segment=rest-meet],[data-segment=rest-help],[data-segment=rest-try],[data-segment=rest-walk]) .hp-balance{left:50%}
 .living-opening:is([data-segment=stroll],[data-segment=rest-meet],[data-segment=rest-help],[data-segment=rest-try],[data-segment=rest-walk]) .lo-top-controls{left:auto;right:18px}
 .living-opening:is([data-segment=stroll],[data-segment=rest-meet],[data-segment=rest-help],[data-segment=rest-try],[data-segment=rest-walk]) .lo-heading{top:auto;bottom:18px;left:16px;max-width:42%;padding:7px 9px;background:#17211ecc;border-radius:8px}
 .living-opening:is([data-segment=stroll],[data-segment=rest-meet],[data-segment=rest-help],[data-segment=rest-try],[data-segment=rest-walk]) .lo-heading h2{font-size:14px}
 .living-opening:is([data-segment=stroll],[data-segment=rest-meet],[data-segment=rest-help],[data-segment=rest-try],[data-segment=rest-walk]) .lo-heading p{font-size:6px;margin-bottom:3px}
 .living-opening:is([data-segment=stroll],[data-segment=rest-meet],[data-segment=rest-help],[data-segment=rest-try],[data-segment=rest-walk]) .lo-record-label{top:auto;bottom:75px;left:12px;font-size:7px}
}
/* A recording is a cinematic insert: its label belongs to its caption, not the face. */
.living-opening:is([data-segment=stroll],[data-segment=rest-meet],[data-segment=rest-help],[data-segment=rest-try],[data-segment=rest-walk])[data-kind=recording] .lo-heading{display:none}
.living-opening:is([data-segment=stroll],[data-segment=rest-meet],[data-segment=rest-help],[data-segment=rest-try],[data-segment=rest-walk]) .lo-record-label{position:static;width:max-content;max-width:100%;margin:0 0 8px;padding:6px 9px;font-size:8px;box-sizing:border-box}

/* Live captions stay registered to the phone display, never baked into the art. */
.lo-phone-recording{position:absolute;z-index:1;overflow:hidden;background:#18231e;pointer-events:none;box-shadow:inset 0 0 2px #000}
.lo-recording-image{position:absolute;width:100%;height:100%;object-fit:cover;object-position:50% 12%}
.lo-recording-title{position:absolute;bottom:calc(var(--record-caption-bottom,14px) + var(--record-caption-height,60px) + 8px);left:10px;right:10px;text-align:center;color:#fff4dd;font:600 8px/1.3 system-ui;letter-spacing:.07em;text-shadow:0 1px 4px #000;background:#16221fcc;padding:7px 4px;border-radius:6px}
.lo-recording-caption{position:absolute;bottom:var(--record-caption-bottom,14px);left:10px;right:10px;margin:0;padding:12px 10px;background:#14272be8;border:1px solid #f0d8b34d;border-radius:12px;color:#fff4de;font-size:17px;line-height:1.35;text-align:center;text-wrap:pretty;box-shadow:0 3px 14px #0004}
.living-opening:is([data-segment=stroll],[data-segment=rest-meet],[data-segment=rest-help],[data-segment=rest-try],[data-segment=rest-walk])[data-kind=recording] .lo-dock{display:none}
@media(max-height:700px) and (orientation:portrait){.lo-recording-caption{font-size:15px;padding:10px 8px;left:8px;right:8px}}
@media(orientation:landscape) and (max-height:600px){
 .living-opening:is([data-segment=stroll],[data-segment=rest-meet],[data-segment=rest-help],[data-segment=rest-try],[data-segment=rest-walk])[data-kind=recording] .lo-dock{display:block}
 .lo-recording-title,.lo-recording-caption{display:none}
}

/* The new take is being filmed, not replayed. The indicator never flashes. */
.is-capturing .lo-recording-title::before,.lo-record-label.is-capturing::before{content:"";display:inline-block;width:6px;height:6px;border-radius:50%;background:#ee846e;margin-right:6px;vertical-align:1px}

/* Artwork stays edge to edge; the HUD overlays the scene without reserving a band. */
/* Keep the returning hero's keys and own phone visible below the narrator. */
@media(orientation:portrait),(min-height:601px){
 .living-opening:is([data-frame="ARC-02-EP-01/rest-meet/help/end/home"],[data-frame="ARC-02-EP-01/rest-meet/try-final/end/home-arrival"],[data-frame="ARC-02-EP-01/rest-meet/walk/home"]) .lo-dock{top:41%;bottom:auto}
}

.is-sharing::after{content:"▶";position:absolute;left:54%;top:45%;transform:translate(-50%,-50%);width:34px;height:34px;display:grid;place-items:center;border-radius:50%;background:#132931a6;border:1px solid #fff8;color:white;font-size:14px;padding-left:2px;box-sizing:border-box}
@media(orientation:portrait) and (max-height:540px){
 .living-opening[data-segment=rest-try] .day-finale.day-multi{bottom:calc(69px + var(--safe-bottom))}
}

/* Wide compositions retain the complete actors and dog on tall phones. */
@media(orientation:portrait){
 .living-opening[data-segment=stroll].lo-whole-plate .lo-heading{display:none}
 .living-opening[data-segment=stroll].lo-whole-plate .lo-dock{top:calc(39% + var(--safe-top) * .3);bottom:auto}
 .living-opening[data-segment=stroll][data-plate-role=dog] .lo-heading{max-width:170px}
}
/* Four reasons fit as two rows on a short landscape phone. */
@media(orientation:landscape) and (max-height:400px){
 .living-opening[data-segment=stroll][data-kind=reason] .lo-dock{left:36%;right:14px}
 .living-opening[data-segment=stroll][data-kind=reason] .lo-choices{grid-template-columns:repeat(2,minmax(0,1fr));gap:5px}
 .living-opening[data-segment=stroll][data-kind=reason] .lo-choice{font-size:13px!important;line-height:1.2;min-height:60px!important;padding:8px}
 .living-opening[data-segment=stroll][data-kind=reason] .lo-controls{left:36%;right:14px}
}
@media(orientation:portrait) and (min-height:701px){
 .living-opening[data-segment=stroll][data-kind=day-result] .day-finale.day-roomy{top:32%}
}

/* Small location captions stay peripheral; the face guard handles extreme crops. */
.living-opening[data-segment=stroll] .lo-heading h2{font-size:14px;line-height:1.25}
.living-opening[data-segment=stroll].lo-walk-caption .lo-heading{max-width:94px;width:max-content;padding:5px 8px;background:#17211e99;border-radius:8px;box-sizing:border-box}
.living-opening[data-segment=stroll].lo-walk-caption .lo-heading p{display:none}
.living-opening[data-segment=stroll].lo-walk-caption .lo-heading h2{font-size:12px;line-height:1.3;white-space:pre-line;letter-spacing:0}
.living-opening[data-segment=stroll].lo-walk-caption .lo-heading h2::first-line{font-size:14px}
.living-opening[data-segment=stroll] .lo-heading.lo-caption-occluded{visibility:hidden}

/* Female walk plates: leave Mark's dog and both phones visible. */
@media(orientation:portrait){
 .living-opening[data-segment=stroll][data-hero^="woman-"][data-plate-role=greeting].lo-whole-plate .lo-dock{top:calc(28% + var(--safe-top) * .3)}
 .living-opening[data-segment=stroll][data-hero^="woman-"][data-plate-role=exchange].lo-whole-plate .lo-dock{top:54%}
}

@media(orientation:portrait){
 .living-opening[data-segment=stroll][data-hero^="woman-"][data-plate-role=dog] .lo-dock{top:42%;bottom:auto}
}
@media(orientation:portrait) and (max-height:560px){
 .living-opening[data-segment=stroll][data-hero^="woman-"][data-kind=reason] .lo-choice{font-size:13px!important;line-height:1.2!important;padding:6px 8px!important;min-height:44px!important}
 .living-opening[data-segment=stroll][data-hero^="woman-"][data-kind=reason] .lo-line{font-size:13px!important;line-height:1.2!important}
 .living-opening[data-segment=stroll][data-hero^="woman-"][data-kind=reason] .lo-thought{padding:6px 9px!important}
 .living-opening[data-segment=stroll][data-hero^="woman-"][data-kind=reason] .lo-choices{gap:5px;margin-top:7px}
}

/* First-day park: protect Bublik on both full plates and reverse-angle cuts. */
@media(orientation:portrait), (orientation:landscape) and (min-height:601px){
 .living-opening[data-segment=stroll][data-hero][data-plate-role=dog] .lo-dock{top:auto;bottom:calc(76px + var(--safe-bottom))}
 .living-opening[data-segment=stroll]:is([data-plate-role=greeting],[data-plate-role=together],[data-plate-role=farewell]) .lo-dock{bottom:auto}
 .living-opening[data-segment=stroll][data-plate-role=greeting]:not(.lo-whole-plate) .lo-dock{top:33%}
 .living-opening[data-segment=stroll][data-plate-role=greeting].lo-whole-plate .lo-dock{top:38%}
 .living-opening[data-segment=stroll][data-plate-role=together] .lo-dock{top:32%}
 .living-opening[data-segment=stroll][data-plate-role=farewell] .lo-dock{top:23%}
 .living-opening[data-segment=stroll][data-hero^="woman-"][data-plate-role=greeting].lo-whole-plate .lo-dock{top:26%}
 .living-opening[data-segment=stroll][data-hero^="woman-"][data-plate-role=exchange].lo-whole-plate .lo-dock{top:34%;bottom:auto}
 .living-opening[data-segment=stroll][data-hero^="woman-"][data-plate-role=nikaPhone] .lo-dock{top:32%;bottom:auto}
 .living-opening[data-segment=stroll]:is([data-plate-role=together],[data-plate-role=farewell]) .lo-thought{padding:13px 16px}
 .living-opening[data-segment=stroll]:is([data-plate-role=together],[data-plate-role=farewell]) .lo-line{font-size:18px;line-height:1.35;margin-top:7px}
}
@media(orientation:portrait) and (max-height:700px), (orientation:landscape) and (min-height:601px) and (max-height:700px){
 .living-opening[data-segment=stroll][data-hero][data-plate-role=dog] .lo-dock{bottom:calc(65px + var(--safe-bottom))}
 .living-opening[data-segment=stroll]:is([data-plate-role=together],[data-plate-role=farewell]) .lo-thought{padding:10px 13px}
 .living-opening[data-segment=stroll]:is([data-plate-role=together],[data-plate-role=farewell]) .lo-line{font-size:15px;line-height:1.3;margin-top:5px}
 .living-opening[data-segment=stroll][data-hero^="woman-"][data-plate-role=nikaPhone][data-kind=choice] .lo-choices{grid-template-columns:1fr 1fr}
 .living-opening[data-segment=stroll][data-hero^="woman-"][data-plate-role=nikaPhone][data-kind=choice] .lo-choice{font-size:13px!important;padding:8px;min-height:52px!important}
 /* On short screens the shepherd needs more room than the small spitz. */
 .living-opening[data-segment=stroll][data-hero^="woman-"][data-plate-role=dog] .lo-heading{display:none}
 .living-opening[data-segment=stroll][data-hero^="woman-"][data-plate-role=dog] .lo-visual{top:calc(52px + var(--safe-top));height:calc(100% - 160px - var(--safe-top) - var(--safe-bottom));width:calc((100dvh - 160px - var(--safe-top) - var(--safe-bottom)) * .667);left:50%;transform:translateX(-50%)}
 .living-opening[data-segment=stroll][data-hero^="woman-"][data-plate-role=greeting].lo-whole-plate .lo-dock{top:28%;right:48%}
 .living-opening[data-segment=stroll][data-hero^="woman-"][data-plate-role=greeting].lo-whole-plate .lo-contact-avatar{display:none}
 .living-opening[data-segment=stroll][data-hero^="woman-"][data-plate-role=greeting].lo-whole-plate .lo-message{padding:10px 12px}
 .living-opening[data-segment=stroll][data-hero^="woman-"][data-plate-role=greeting].lo-whole-plate .lo-message-header{display:block}
 .living-opening[data-segment=stroll][data-hero^="woman-"][data-plate-role=greeting].lo-whole-plate .lo-contact-role{display:none}
 .living-opening[data-segment=stroll][data-hero^="woman-"][data-plate-role=farewell] .lo-dock{top:28%;right:48%}
 .living-opening[data-segment=stroll][data-hero^="woman-"][data-plate-role=together].lo-whole-plate .lo-dock{top:30%}
}
@media(orientation:portrait) and (max-height:560px){
 .living-opening[data-segment=stroll][data-hero^="woman-"]:is([data-plate-role=together],[data-plate-role=farewell]) .lo-line{font-size:14px;line-height:1.3}
}
