/* Immersive portraits: each person has an independent side control. */
.portrait-dialog{position:fixed;inset:0;margin:0;padding:0;width:100vw;max-width:none;height:100dvh;max-height:100dvh;border:0;border-radius:0;background:#10110e;color:#eee6d6;overflow:hidden;overscroll-behavior:contain;box-shadow:none}
.portrait-dialog::backdrop{background:#080907}
.portrait-layout{height:100%;display:grid;grid-template-rows:auto minmax(0,1fr) auto}
.portrait-heading{position:relative;padding:12px 190px 12px 24px;background:#10110e;min-width:0}
.portrait-heading h2{font:500 29px/1.1 NoirelleSerif,serif;margin:0 0 5px}
.portrait-intro{font-size:11px;line-height:1.5;color:#c9bea9;margin:0}
.portrait-meta{position:absolute;right:24px;top:17px;display:flex;flex-direction:column;gap:7px;text-align:right}
.portrait-number{font-size:10px;letter-spacing:.14em;color:#d5c296}
.portrait-meta small{font-size:8px;color:#aba18e;letter-spacing:.05em}
.portrait-stage{position:relative;min-height:0;isolation:isolate;overflow:hidden;background:#11120f}
.portrait-visual{position:absolute;inset:0;margin:0}
.portrait-visual>img{display:block;width:100%;height:100%;object-fit:cover;object-position:center top}
.portrait-person{position:absolute;bottom:clamp(22px,7dvh,72px);margin:0;padding:0;border:0;width:86px;min-width:0;z-index:1}
.portrait-person[data-person=woman]{left:clamp(14px,3vw,48px)}
.portrait-person[data-person=man]{right:clamp(14px,3vw,48px)}
.portrait-person legend{width:100%;padding:8px 3px;margin:0 0 7px;text-align:center;background:#10110ef0;border:1px solid #baa17073;font:500 21px/1 NoirelleSerif,serif;color:#eee1c6}
.portrait-person legend span,.portrait-person legend small{display:block}
.portrait-person legend small{margin-top:6px;font:400 8px/1 NoirelleSans,sans-serif;text-transform:uppercase;letter-spacing:.14em;color:#c7b795}
.portrait-choices{display:flex;flex-direction:column;gap:6px}
.portrait-choice{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px;width:100%;min-height:66px;padding:9px 4px;border:1px solid #b69c6b9e;border-radius:2px;background:#10110ef0;color:#ddc99e;cursor:pointer;box-shadow:0 3px 12px #0002}
.portrait-choice svg{width:25px;height:25px;fill:none;stroke:currentColor;stroke-width:1.4;stroke-linecap:round;stroke-linejoin:round}
.portrait-choice span{font-size:9px;line-height:1.2;letter-spacing:.01em}
.portrait-choice[aria-pressed=true]{background:#decba3;color:#171710;border-color:#f5e0b1}
.portrait-choice:hover{border-color:#f1dbaf}
.portrait-choice:focus-visible,.portrait-notes>summary:focus-visible{outline:2px solid #f5deb1;outline-offset:3px}
.portrait-actions{position:relative;display:flex;justify-content:center;align-items:center;gap:clamp(20px,4vw,64px);padding:10px 24px max(10px,env(safe-area-inset-bottom));background:#10110e;min-width:0}
.portrait-actions>.gold-button{width:auto;min-width:240px;margin:0;justify-content:center;min-height:44px;font-size:11px;padding:12px 20px}
.portrait-actions>.quiet-button{font-size:10px;min-height:44px;color:#c8b994}
.portrait-notes{font-size:10px;color:#c8b994}
.portrait-notes>summary{cursor:pointer;list-style:none;display:flex;align-items:center;min-height:44px;gap:7px}
.portrait-notes>summary::-webkit-details-marker{display:none}
.portrait-notes>summary::before{content:'+';font:300 18px/1 NoirelleSans,sans-serif;color:#dbc9a3}
.portrait-notes[open]>summary::before{content:'−'}
.portrait-notes-panel{position:absolute;bottom:calc(100% + 8px);left:24px;right:24px;max-width:760px;max-height:75dvh;margin:auto;overflow-y:auto;overscroll-behavior:contain;padding:24px;background:#11120ffc;border:1px solid #baa1707a;box-shadow:0 10px 40px #0008;z-index:3}
.portrait-notes-panel h3{font:500 27px/1.1 NoirelleSerif,serif;color:#eee1c6;margin:0 0 12px}
.portrait-note-fields{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin:18px 0}
.portrait-note{display:block;min-width:0;color:#cfbea0;font-size:10px}
.portrait-note strong{font-weight:400;line-height:1.5}
.portrait-note textarea{display:block;box-sizing:border-box;margin-top:8px;width:100%;resize:vertical;min-height:84px;max-height:160px;border:1px solid #a18c6570;border-radius:2px;background:#080a07;color:#f2e8d7;padding:10px;font:400 16px/1.5 NoirelleSans,sans-serif}
.portrait-note textarea::placeholder{color:#a99e8d;font-size:12px}
.portrait-policy{font-size:11px;line-height:1.7;color:#bdb19a;margin:0}
.portrait-disclosure{display:block;font-size:9px;line-height:1.5;color:#a59b88}
.portrait-notes-panel>.quiet-button{display:block;margin:12px 0 0 auto;min-height:40px;color:#e1cfa9}
.portrait-load-error{position:absolute;inset:25% 18%;padding:20px;color:#ecdabb;background:#111;line-height:1.6;z-index:2}
.portrait-load-error button{display:block}
.portrait-review{border-top:1px solid #b8a57c;margin-top:24px;padding-top:20px}.portrait-review h3{font:500 28px NoirelleSerif,serif;margin:0 0 8px}.portrait-review>p{font-size:12px;line-height:1.6}.portrait-review-row{display:grid;grid-template-columns:88px 1fr;gap:18px;margin-top:18px;border-bottom:1px solid #b8a57c55;padding-bottom:18px}.portrait-review-row img{width:88px;height:120px;object-fit:cover}.portrait-review-row strong{font-size:12px}.portrait-review-row p{font-size:11px;line-height:1.5;margin:7px 0}.portrait-review-note{display:block;font-size:11px;line-height:1.6;white-space:pre-wrap;overflow-wrap:anywhere}.portrait-review-row .quiet-button{color:#685329;text-decoration:underline;text-underline-offset:3px;min-height:40px}
.salon-note{font-size:11px!important;line-height:1.7!important;color:#cfc2a7!important}.next-impression{font-size:9px!important;line-height:1.5!important;color:#d5bf91!important;margin:7px 0 0!important}.footer .salon-short{max-width:460px;font-size:10px;line-height:1.5;color:#c7bba6}.welcome .salon-note{margin:10px 0!important}#portrait-summary{font-size:11px;line-height:1.6;color:var(--gold)}
.coffee-dialog{position:fixed;inset:0;margin:0;width:100vw;max-width:none;height:100dvh;max-height:100dvh;border:0;border-radius:0;padding:24px;background:#0b0c09;color:#ece3d1;overflow:auto}.coffee-dialog::backdrop{background:#080907}.coffee-layout{max-width:1280px;min-height:100%;margin:auto;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px}.coffee-layout .eyebrow{margin:0}.coffee-view{width:100%;aspect-ratio:16/9;max-height:64dvh;position:relative;background:url('assets/coffee-service-v15.jpg') center/contain no-repeat #080907;overflow:hidden}.coffee-view video{width:100%;height:100%;object-fit:contain}.coffee-layout h2{font:500 36px NoirelleSerif,serif;margin:0;text-align:center}.coffee-layout p{max-width:700px;text-align:center;font-size:13px;line-height:1.8;margin:0;color:#c8bda8}.coffee-layout .gold-button{width:auto;min-width:250px;margin:0;justify-content:center}.coffee-dialog .film-recovery{z-index:3}.coffee-dialog .film-recovery p{font-size:12px}.coffee-replay{margin:0}
.portrait-heading h2:focus,.coffee-layout h2:focus{outline:none}
#welcome{overflow-y:auto;justify-content:flex-start}.footer{gap:16px;flex-wrap:nowrap}.footer>.salon-short{margin-right:auto}
@media(max-width:760px){
 .portrait-heading{padding:10px 14px 9px}
 .portrait-heading h2{font-size:25px;margin-bottom:6px;padding-right:96px}
 .portrait-intro{font-size:10px;line-height:1.5;max-width:540px}
 .portrait-meta{right:14px;top:12px;gap:4px}
 .portrait-number{font-size:8px;letter-spacing:.05em}.portrait-meta small{font-size:7px}
 .portrait-person{width:57px;bottom:24px}.portrait-person[data-person=woman]{left:8px}.portrait-person[data-person=man]{right:8px}
 .portrait-person legend{font-size:17px;padding:7px 1px;margin-bottom:5px}.portrait-person legend small{font-size:7px;margin-top:4px}
 .portrait-choices{gap:5px}.portrait-choice{min-height:56px;padding:7px 2px;gap:4px}.portrait-choice svg{width:23px;height:23px}.portrait-choice span{font-size:8px;letter-spacing:0}
 .portrait-actions{gap:12px;padding:7px 10px max(7px,env(safe-area-inset-bottom))}
 .portrait-actions>.gold-button{flex:1;min-width:0;max-width:260px;padding:10px 8px;font-size:10px;gap:7px}
 .portrait-actions>.quiet-button{font-size:8px;padding:0;max-width:65px;line-height:1.5}
 .portrait-notes{font-size:8px;max-width:76px;line-height:1.5}.portrait-notes>summary{gap:4px}
 .portrait-notes-panel{left:8px;right:8px;bottom:100%;padding:18px;max-height:74dvh}.portrait-notes-panel h3{font-size:25px}.portrait-note-fields{grid-template-columns:1fr;gap:16px;margin-block:14px}.portrait-policy{font-size:10px}
 .portrait-review-row{grid-template-columns:70px 1fr;gap:12px}.portrait-review-row img{width:70px;height:96px}
 .coffee-dialog{padding:20px 16px max(24px,env(safe-area-inset-bottom))}.coffee-layout{gap:20px}.coffee-view{width:100%;aspect-ratio:16/9;max-height:none}.coffee-layout h2{font-size:31px}.coffee-layout p{font-size:12px;line-height:1.8}.coffee-layout .gold-button{width:100%;min-width:0}.footer .salon-short{display:none}.next-impression{font-size:8px!important}.welcome .salon-note{font-size:10px!important;line-height:1.5!important}.footer{gap:7px}.footer #salon-pause{font-size:8px}
}
@media(max-width:380px){.portrait-heading h2{font-size:23px}.portrait-heading{padding-inline:10px}.portrait-meta{right:10px}.portrait-intro{font-size:9px}.portrait-actions{gap:8px}.portrait-person{width:53px;bottom:16px}.portrait-choice{min-height:52px}.portrait-choice svg{width:21px;height:21px}.portrait-choice span{font-size:7.5px}}
@media(max-height:500px) and (min-width:600px){.portrait-heading{padding-block:6px}.portrait-heading h2{font-size:22px}.portrait-person{bottom:10px;width:70px}.portrait-person legend{font-size:17px;padding-block:5px;margin-bottom:4px}.portrait-person legend small{display:none}.portrait-choice{min-height:46px;flex-direction:row;gap:5px;padding:5px}.portrait-choice svg{width:20px;height:20px}.portrait-choice span{font-size:8px}.portrait-actions{padding-block:5px}.portrait-choices{gap:3px}}
@media(prefers-reduced-motion:reduce){.portrait-dialog *{scroll-behavior:auto}}
