/* pure-meet-room.css - Pure Meet: each desk waits for you in its own room (Mike, Friday 10/16/2026 5:52 pm CT).
   Paired with pure-meet-room.js. Every rule is scoped to body.mr-on, which the script sets only while the lobby is open
   and the desk has a room scene in personas.json (meetRoom); the meeting itself never sees these rules.
   Brand: Open Sans only, navy #172E55, gold #DCCAAF. */

/* the room fills the lobby stage, under every control the lobby already has */
#mrRoom{position:absolute;inset:0;z-index:1;overflow:hidden;background:#0a1320;contain:strict}
#mrRoom .mr-scene{position:absolute;inset:-3%;transform:translate3d(var(--mr-px,0px),var(--mr-py,0px),0) scale(var(--mr-zoom,1));transition:transform .9s cubic-bezier(.2,.7,.2,1);will-change:transform}
#mrRoom .mr-scene img,#mrRoom .mr-scene video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:var(--mr-fx,50%) 32%;border:0;border-radius:0}
#mrRoom .mr-v{opacity:0;transition:opacity .6s ease}
#mrRoom .mr-v.on{opacity:1}
#mrRoom.mr-speaking .mr-idle{opacity:0}
/* the poster breathes a little while no loop is playing (never with reduced motion) */
@keyframes mrBreath{0%,100%{transform:scale(1)}50%{transform:scale(1.012)}}
#mrRoom:not(.mr-playing) .mr-poster{animation:mrBreath 7s ease-in-out infinite;transform-origin:var(--mr-fx,50%) 40%}
/* soft light: a vignette, a warm floor glow, and a darker band where the words sit */
#mrRoom .mr-shade{position:absolute;inset:0;pointer-events:none;background:
  radial-gradient(75% 70% at var(--mr-fx,50%) 38%,rgba(10,19,32,0) 45%,rgba(10,19,32,.55) 100%),
  linear-gradient(180deg,rgba(10,19,32,.55) 0%,rgba(10,19,32,0) 18%,rgba(10,19,32,0) 52%,rgba(10,19,32,.78) 80%,rgba(10,19,32,.95) 100%)}
/* the gold glow that breathed with her voice is gone (Mike, 10/27/2026: the lip-synced hello and the voice line in the bar show
   she is speaking); a cached copy of the page that still draws the element shows nothing */
#mrRoom .mr-glow{display:none!important}

/* the greeting card */
#mrHello{position:absolute;left:50%;transform:translateX(-50%);bottom:206px;z-index:4;width:min(640px,calc(100% - 32px));text-align:center;color:#fff;font-family:'Open Sans',system-ui,sans-serif}
#mrHello small{display:block;font:600 11px 'Open Sans',system-ui,sans-serif;letter-spacing:.18em;text-transform:uppercase;color:#DCCAAF;margin-bottom:6px}
#mrHello h2{font:600 clamp(26px,3.3vw,42px) 'Open Sans',system-ui,sans-serif;letter-spacing:-.015em;line-height:1.08;margin:0 0 6px;padding:0;border:0;background:none;color:#fff;text-align:center!important;text-shadow:0 2px 18px rgba(0,0,0,.45)}
#mrHello p{font:600 clamp(13px,1.2vw,16px) 'Open Sans',system-ui,sans-serif;color:#e8dcc8;margin:0 0 12px;text-shadow:0 1px 8px rgba(0,0,0,.5)}
#mrHello .mr-acts{display:flex;gap:10px;justify-content:center;flex-wrap:wrap}
.mr-btn{display:inline-flex;align-items:center;gap:8px;min-height:44px;padding:0 16px;border-radius:360px;border:1px solid rgba(220,202,175,.45);background:rgba(14,28,51,.62);color:#fff;
  font:600 13px 'Open Sans',system-ui,sans-serif;cursor:pointer;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px)}
.mr-btn:hover{background:rgba(23,46,85,.85);border-color:#DCCAAF}
.mr-btn:focus-visible,.mr-desk:focus-visible,#mrSheetBar:focus-visible{outline:3px solid #DCCAAF;outline-offset:2px}
.mr-btn svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round}
.mr-btn[aria-pressed="true"]{background:#DCCAAF;color:#172E55;border-color:#DCCAAF}
/* the room-sound switch: a round speaker button, on by default (starts on the first touch) */
.mr-btn.mr-ico{width:44px;padding:0;justify-content:center}
.mr-btn.mr-ico svg{width:18px;height:18px}
#mrCap{min-height:22px;margin:10px auto 0;max-width:560px;font:600 14px 'Open Sans',system-ui,sans-serif;color:#fff;background:rgba(8,16,28,.62);border-radius:10px;padding:0 12px;line-height:22px}
#mrCap:empty{background:none}

/* the desk picker: the rooms, inside PURE's one dialog (PureUI.modal) */
.mr-sub{font:600 13px 'Open Sans',system-ui,sans-serif;margin:0 0 12px;opacity:.8}
.mr-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:12px}
.mr-desk{position:relative;display:block;width:100%;padding:0;border:1px solid rgba(220,202,175,.22);border-radius:14px;overflow:hidden;background:#0a1320;color:#fff;text-align:left;cursor:pointer;aspect-ratio:16/9}
.mr-desk img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.mr-desk span{position:absolute;left:0;right:0;bottom:0;padding:28px 12px 10px;background:linear-gradient(transparent,rgba(8,16,28,.92));font:600 14px 'Open Sans',system-ui,sans-serif}
.mr-desk span i{display:block;font:600 11.5px 'Open Sans',system-ui,sans-serif;font-style:normal;color:#DCCAAF;margin-top:2px}
.mr-desk[aria-current="true"]{border:2px solid #DCCAAF}
.mr-desk:hover img{transform:scale(1.04);transition:transform .5s ease}

/* desktop and tablet (the threshold lobby): the room replaces the head shot; the old hail is hidden */
body.mr-on #personaStage{visibility:hidden}
@media (min-width:721px){
  body.mr-on .pj.threshold .prev{background:#0a1320}
}
/* a wide screen: the words sit in the room's left third so the desk stays in full view */
@media (min-width:721px) and (min-aspect-ratio:1/1){
  #mrHello{left:clamp(24px,5vw,96px);top:50%;bottom:auto;transform:translateY(-58%);width:min(460px,32vw);text-align:left}
  #mrHello .mr-acts{justify-content:flex-start}
  #mrHello h2{text-align:left!important}
  #mrCap{margin-left:0}
  #mrRoom .mr-shade{background:
    linear-gradient(90deg,rgba(10,19,32,.72) 0%,rgba(10,19,32,.35) 30%,rgba(10,19,32,0) 46%),
    radial-gradient(75% 70% at var(--mr-fx,50%) 38%,rgba(10,19,32,0) 45%,rgba(10,19,32,.5) 100%),
    linear-gradient(180deg,rgba(10,19,32,.55) 0%,rgba(10,19,32,0) 16%,rgba(10,19,32,0) 60%,rgba(10,19,32,.85) 100%)}
}

/* phone: the room fills the screen and the lobby card becomes a bottom sheet */
@media (max-width:720px){
  body.mr-on .prejoin{padding:0;background:#0a1320}
  body.mr-on .pj{width:100vw;height:calc(100dvh - 52px);max-height:none;border:0;border-radius:0;box-shadow:none;display:block;position:relative;background:#0a1320}
  body.mr-on .pj .prev{position:absolute;inset:0;min-height:0;height:auto}
  body.mr-on .pj .prev::after{display:none!important}
  /* you: a small tile at the top left (mic and camera beside it), the notice under it */
  body.mr-on .prev .selfpip{top:10px!important;bottom:auto!important;left:10px!important;right:auto!important;width:84px!important;height:63px}
  body.mr-on .pj .prev .status{top:84px!important;left:10px!important;right:10px!important;max-width:none}
  body.mr-on .pj .info{position:absolute;left:0;right:0;bottom:var(--mr-dock,64px);z-index:6;max-height:min(58dvh,520px);overflow-y:auto;padding:8px 16px 12px;
    border-radius:18px 18px 0 0;background:rgba(10,19,32,.9);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border-top:1px solid rgba(220,202,175,.32);justify-content:flex-start;padding-bottom:12px!important}
  body.mr-on .pj .info #pjBadge,body.mr-on .pj .info #pjTitle,body.mr-on .pj .info #pjAv,body.mr-on .pj .info #pjSub,body.mr-on .pj .info .perm,body.mr-on .pj .info #secLine{display:none!important}
  body.mr-on:not(.mr-sheet-open) .pj .info > *:not(#mrSheetBar):not(#pjName):not(#joinBtn):not(#pjConsent):not(label):not(#nameInput){display:none!important}
  body.mr-on .pj .info label{margin-top:4px}
  body.mr-on .pj .info input{margin:4px 0 10px}
  #mrSheetBar{order:0!important;position:relative;display:flex;align-items:center;justify-content:center;gap:6px;width:100%;min-height:44px;margin:0 0 4px;border:0;background:none;color:#DCCAAF;font:600 12.5px 'Open Sans',system-ui,sans-serif;cursor:pointer}
  #mrSheetBar::before{content:"";width:40px;height:4px;border-radius:4px;background:rgba(220,202,175,.5);position:absolute;top:6px;left:50%;transform:translateX(-50%)}
  #mrSheetBar svg{width:14px;height:14px;fill:none;stroke:currentColor;stroke-width:2;transition:transform .2s}
  body.mr-sheet-open #mrSheetBar svg{transform:rotate(180deg)}
  #mrHello{bottom:calc(var(--mr-sheet,190px) + var(--mr-dock,64px) + 10px);width:calc(100% - 24px);padding:10px 8px 8px;border-radius:16px;background:linear-gradient(180deg,rgba(10,19,32,.25),rgba(10,19,32,.62))}
  body.mr-on .prev .selfpip{overflow:hidden!important}
  body.mr-on .prev .selfpip .av{width:34px;height:34px;font-size:14px}
  #mrHello h2{font-size:26px}
  #mrHello p{font-size:13.5px;margin-bottom:8px}
  #mrCap{font-size:13px}
  .mr-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
}
@media (min-width:721px){#mrSheetBar{display:none}}
/* a short landscape phone: the words move to the left so she stays in view */
@media (max-height:500px) and (orientation:landscape){
  #mrHello{left:16px;transform:none;bottom:auto;top:100px;width:min(280px,34vw);text-align:left}
  #mrHello .mr-acts{justify-content:flex-start}
  #mrHello h2{font-size:22px;text-align:left!important}
  #mrHello small,#mrHello p{display:none}
  #mrCap{display:none}
}
/* a tall tablet: the words get a soft panel so they read over the room */
@media (min-width:721px) and (max-aspect-ratio:1/1){
  #mrHello{padding:12px 12px 10px;border-radius:16px;background:linear-gradient(180deg,rgba(10,19,32,.2),rgba(10,19,32,.6))}
}
/* walking in: the room comes toward you */
body.mr-enter #mrRoom{--mr-zoom:1.1}
body.mr-enter #mrHello{opacity:0;transition:opacity .4s ease}

/* reduced motion: no loops, no drift, no breathing */
@media (prefers-reduced-motion:reduce){
  #mrRoom .mr-scene{transition:none;transform:none}
  #mrRoom .mr-poster{animation:none!important}
  #mrRoom .mr-v{display:none}
  body.mr-enter #mrRoom{--mr-zoom:1}
}
