.team{--brand-width:min(36vw,54vh,650px);color:#eaf1ff}
.team .content{width:min(84vw,106vh);max-width:760px}
.team .brand{width:var(--brand-width)}
.top-actions{position:absolute;z-index:4;right:26px;top:18px;display:flex;align-items:center;gap:18px}
button,input{font:inherit}button{cursor:pointer}button svg{pointer-events:none}
.quiet-button{display:flex;align-items:center;gap:8px;border:0;background:transparent;color:#afc1d9;font-size:12px;padding:8px 0;transition:color .2s}.quiet-button:hover{color:white}.quiet-button svg{width:17px;height:17px;fill:none;stroke:currentColor;stroke-width:1.4;stroke-linecap:round;stroke-linejoin:round}.quiet-button[aria-pressed=false]{opacity:.5}
button:focus-visible{outline:2px solid #49bfff;outline-offset:5px}
.portal{width:100%;margin-top:clamp(24px,4.5vh,52px)}
.member-form{width:var(--brand-width);max-width:100%;margin:auto;text-align:left;animation:access-in .8s ease both}
.member-form label{display:block;margin:0 0 14px 2px;font-size:clamp(11px,.78vw,14px);font-style:italic;font-weight:400;color:#9aa6b7;letter-spacing:.01em}
.access-row{display:flex;gap:10px;height:clamp(52px,6.2vh,68px)}
.password-box{cursor:text;display:flex;align-items:center;gap:15px;flex:1;min-width:0;padding:0 16px 0 19px;border:1px solid #34629c;border-radius:10px;background:#020b19d4;box-shadow:0 0 0 4px #0e2b4c30;transition:border-color .1s,box-shadow .1s,background-color .1s}
.password-box:hover,.password-box:focus-within{border-color:#76cfff;background:#071b30e6;box-shadow:0 0 0 3px #279eff20,0 0 22px #168bff30,inset 0 0 14px #56bdff0b}
.password-box svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.4;stroke-linecap:round;stroke-linejoin:round;flex-shrink:0}.lock{color:#acbad0}
.password-box input{min-width:0;width:100%;height:100%;border:0;outline:0;color:#fff;background:transparent;font-size:16px;letter-spacing:.08em}.password-box input::placeholder{color:#8799b4;letter-spacing:.02em}.password-box input::-ms-reveal{display:none}.password-box button{border:0;background:transparent;color:#b0c3de;padding:8px;display:grid;place-items:center}
.enter-button{aspect-ratio:1;border:1px solid #1d81ff;border-radius:10px;background:linear-gradient(135deg,#0a82ff,#034aff);box-shadow:0 6px 26px #005dff35;color:white;display:grid;place-items:center;transition:filter .2s,transform .2s}.enter-button:hover{filter:brightness(1.15);transform:translateX(1px)}.enter-button:disabled{opacity:.65;cursor:wait}.enter-button svg{width:25px;height:25px;stroke:currentColor;fill:none;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}
.access-error{font-size:12px;line-height:1.4;color:#ffc9c9;min-height:17px;margin:11px 0 0 2px}
.team .message{margin-top:clamp(18px,3.3vh,40px)}.team .signature{width:min(26vw,38vh,460px)}.team .phrase{font-size:clamp(12px,min(1.35vw,2.3vh),27px)}
.team.is-board{--brand-width:min(32vw,42vh,510px)}.team.is-board .portal{margin-top:clamp(18px,2.7vh,34px)}.team.is-board .message{margin-top:clamp(16px,2vh,26px)}.team.is-board .signature{width:min(22vw,27vh,340px)}.team.is-board .phrase{width:min(54vw,80vh);font-size:clamp(12px,min(1.15vw,1.9vh),24px)}
.team-board{width:100%;background:#fcfdff;border:1px solid #ffffffce;border-radius:23px;padding:clamp(22px,2.5vh,32px);color:#1c283b;text-align:left;box-shadow:0 28px 80px #00000045,0 2px 0 #ffffff24 inset;animation:none;color-scheme:light}
.board-header{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:19px}.eyebrow{font-size:9px;letter-spacing:.2em;font-weight:650;color:#8591a2;margin:0 0 5px}.board-header h1{font-weight:520;letter-spacing:-.8px;font-size:26px;line-height:1.1;margin:0;outline:none}.blue-dot{display:inline-block;width:6px;height:6px;border-radius:50%;background:#177bff;margin-left:6px}.member-badge{display:flex;align-items:center;gap:9px}.avatar{display:grid;place-items:center;width:32px;height:32px;background:#edf3fa;border:1px solid #e1e9f3;border-radius:50%;color:#426387;font-size:13px}.member-badge strong{font-size:12px;font-weight:600;display:block}.member-badge div>span{font-size:10px;color:#8994a2;display:block;margin-top:1px}.member-badge button{margin-left:8px;padding:5px;border:0;border-radius:5px;background:transparent;color:#8795a8}.member-badge button:hover{background:#edf3fa}.member-badge svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.4;stroke-linecap:round;stroke-linejoin:round}
.conditions{display:grid;grid-template-columns:1.15fr 1fr 1fr;gap:12px;background:linear-gradient(115deg,#b8e5ffbb,#d4f0ff8f);border:1px solid #8fc9ed99;border-radius:10px;padding:12px 18px;margin-bottom:20px}
.condition{display:flex;align-items:flex-start;gap:10px;min-width:0}
.condition+.condition{border-left:1px solid #dfe6ee;padding-left:14px}
.condition>svg{width:19px;height:19px;flex-shrink:0;margin-top:1px;fill:none;stroke:#6082a7;stroke-width:1.3;stroke-linecap:round;stroke-linejoin:round}
.condition-copy{min-width:0}.condition-label{display:block;color:#687d96;font-size:9px;font-weight:600;letter-spacing:.025em;line-height:1.3;margin-bottom:5px}
.condition strong{display:block;color:#253e5b;font-size:13px;font-weight:600;line-height:1.3;overflow-wrap:anywhere;text-wrap:pretty}
.condition small{display:block;font-size:9px;line-height:1.35;color:#7c8ca0;margin-top:4px;overflow-wrap:anywhere;text-wrap:pretty}
.condition time{display:block}#indicators-note{color:#7d8da2;text-align:right;line-height:1.4}
.news-slot{position:relative;min-height:clamp(200px,25vh,285px)}.news-loading{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;gap:10px;color:#96a3b3;font-size:12px}.news-loading>span{width:5px;height:5px;border-radius:50%;background:#368dfa;animation:breathe 1s infinite}
.birthday{display:grid;grid-template-columns:35% 1fr;gap:clamp(20px,3vw,40px);align-items:center;animation:news-in .7s ease both}.portrait{align-self:stretch;position:relative;margin:0;height:clamp(200px,25vh,285px);overflow:hidden;border-radius:13px;background:#e4e6e9}.portrait img{width:100%;height:100%;object-fit:cover;object-position:50% 8%;display:block}.portrait:after{content:'';position:absolute;inset:50% 0 0;background:linear-gradient(transparent,#07121c8f)}.portrait figcaption{position:absolute;z-index:1;bottom:14px;left:15px;right:12px;color:white;font-size:9px;letter-spacing:.035em}
.birthday-copy{padding:4px 5px 4px 0}.news-kicker{display:flex;align-items:center;gap:14px;margin-bottom:13px;font-size:9px;letter-spacing:.08em}.news-kicker>span{color:#2473d3;font-weight:700}.news-kicker time{color:#96a1af;white-space:nowrap}.birthday h2{font-weight:420;line-height:1.12;letter-spacing:-1.3px;font-size:clamp(26px,3.7vh,43px);margin:0 0 14px;color:#17273d}.birthday h2 span{color:#0965d6}.birthday-copy>p{font-size:clamp(12px,1.45vh,15px);line-height:1.65;color:#758194;margin:0 0 17px;max-width:370px;text-wrap:pretty}.from-team{display:flex;align-items:center;gap:9px;font-size:10px;color:#8995a6}.mini-line{display:inline-block;width:19px;height:1px;background:#74a8ea}.celebrate{margin-top:18px;padding:8px 13px;background:#edf5ff;border:1px solid #dceaff;border-radius:7px;color:#2f73c8;font-size:10px;transition:background .2s}.celebrate:hover{background:#e0eeff}.celebrate span{font-size:13px;margin-right:5px}.celebrate.is-celebrated{background:#e5f6f0;color:#36836c;border-color:#cce8de}
.board-footer{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-top:20px;padding-top:14px;border-top:1px solid #e9eef4;font-size:9px;color:#9ba6b5}.board-footer>span:first-child{display:flex;gap:7px;align-items:center}.board-footer i{width:4px;height:4px;border-radius:50%;background:#72b2ff}.footer-slash{margin:0 5px;color:#ccd4df}
/* Keep layout stable for Duvy and native hit areas while the access form fades in. */
@keyframes access-in{from{opacity:0}to{opacity:1}}@keyframes board-in{from{opacity:0;transform:translateY(10px) scale(.985)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes news-in{from{opacity:0;transform:translateY(7px)}to{opacity:1;transform:translateY(0)}}@keyframes breathe{50%{opacity:.3}}
@media(max-aspect-ratio:1/1){.team{--brand-width:min(66vw,650px)}.team.is-board{--brand-width:min(56vw,510px)}.team .content{width:86vw}.team .phrase{width:76vw;font-size:clamp(12px,2.4vw,22px)}.team .signature{width:min(48vw,460px)}.team.is-board .signature{width:min(40vw,340px)}.team.is-board .phrase{width:78vw;font-size:clamp(12px,2.3vw,21px)}.portal{margin-top:5vh}.team-board{padding:24px}.birthday{grid-template-columns:34% 1fr;gap:22px}.portrait{height:260px}.news-slot{min-height:260px}}
@media(max-width:650px){.top-actions{top:8px;right:16px;gap:14px}.quiet-button{font-size:10px}.quiet-button svg{width:14px}.team .content{width:88vw}.member-form{width:100%}.member-form label{font-size:12px}.team-board{padding:18px;border-radius:18px}.board-header{margin-bottom:15px}.board-header h1{font-size:22px}.eyebrow{font-size:8px}.member-badge{gap:6px}.member-badge .avatar{display:none}.conditions{padding:10px;gap:6px;margin-bottom:16px}.condition{gap:6px}.condition+.condition{padding-left:9px}.condition svg{width:16px;height:16px}.condition strong{font-size:11px}.condition small{font-size:8px}.birthday{grid-template-columns:32% 1fr;gap:15px}.portrait{height:220px}.portrait figcaption{display:none}.news-slot{min-height:220px}.birthday h2{font-size:25px;letter-spacing:-.8px}.birthday-copy>p{font-size:11px;line-height:1.5;margin-bottom:12px}.news-kicker{font-size:8px;gap:6px;flex-wrap:wrap;margin-bottom:10px}.from-team{font-size:9px}.celebrate{font-size:9px;padding:7px;margin-top:12px}.board-footer{font-size:8px;margin-top:14px;padding-top:10px}}
@media(max-height:820px) and (min-aspect-ratio:1/1){.team.is-board{--brand-width:min(28vw,37vh)}.team-board{padding:18px 22px;border-radius:18px}.board-header{margin-bottom:12px}.board-header h1{font-size:22px}.conditions{padding:9px 16px;margin-bottom:16px}.news-slot{min-height:175px}.portrait{height:175px}.birthday h2{font-size:28px;margin-bottom:10px}.birthday-copy>p{font-size:12px;margin-bottom:10px}.celebrate{margin-top:10px}.board-footer{margin-top:13px;padding-top:10px}.team.is-board .signature{width:22vh}.team.is-board .message{margin-top:12px}.team.is-board .portal{margin-top:14px}}
@media(max-height:600px){.team .content{max-height:calc(100% - 62px);overflow-y:auto;scrollbar-width:thin;padding:4px}.team.is-board .brand{width:190px}.team.is-board .signature{width:130px}.team.is-board .phrase{font-size:11px}.team-board{flex-shrink:0}.team.is-board .portal{margin-top:12px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:0s!important;transition:none!important}.news-loading>span{animation:none}}/* Compact desktop monitors retain the complete composition without clipping. */
@media(max-height:600px) and (min-aspect-ratio:1/1){
 .team.is-board .brand{width:164px}.team.is-board .signature{width:115px}
 .team.is-board .portal{margin-top:10px}.team.is-board .message{margin-top:8px}
 .team-board{padding:14px 18px}.board-header{margin-bottom:8px}
 .conditions{padding:7px 14px;margin-bottom:10px}
 .news-slot{min-height:160px}.portrait{height:160px}
 .birthday h2{font-size:24px;margin-bottom:7px}.birthday-copy>p{font-size:11px;line-height:1.5;margin-bottom:8px}
 .news-kicker{margin-bottom:8px}.celebrate{margin-top:8px;padding:6px 10px}
 .board-footer{margin-top:8px;padding-top:8px}
}
/* The desktop board belongs to the wallpaper, beneath desktop icons. */
.desktop .portal{display:block}
.desktop.is-board .portal{display:block}

.desktop.team .content{max-height:calc(100% - 20px);overflow:visible}

/* Keep optional controls with the centered experience, away from desktop icons. */
.component-actions{display:flex;justify-content:flex-end;align-items:center;width:100%;margin-top:10px;min-height:26px}
.component-actions .quiet-button{font-size:10px;gap:6px;padding:5px 2px;color:#849ab8}
.component-actions .quiet-button:hover{color:#d3e5ff}
.component-actions .quiet-button svg{width:14px;height:14px}

.team.is-restored .team-board,.team.is-restored .birthday{animation:none!important}
@media(max-height:600px){.component-actions{margin-top:5px;min-height:20px}.component-actions .quiet-button{padding:2px}}
/* News stay in the same compact board; effects never intercept desktop input. */
.team-board{position:relative}.news-slot{isolation:isolate}
.news-nav{display:flex;align-items:center;gap:10px;flex-shrink:0}.news-nav button{display:grid;place-items:center;width:26px;height:26px;border:1px solid #e1e8f2;border-radius:7px;background:#f6f9fd;color:#4d729b;padding:0}.news-nav button:hover{background:#e7f1ff;color:#1267d4}.news-nav button:disabled{opacity:.4;cursor:default}.news-nav svg{width:14px;height:14px;fill:none;stroke:currentColor;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}.news-nav #news-position{font-size:10px;min-width:38px;text-align:center;font-variant-numeric:tabular-nums}.board-footer #indicators-note{text-align:left;display:block;max-width:65%}
.office-news{display:grid;grid-template-columns:35% 1fr;gap:clamp(20px,3vw,40px);align-items:center;animation:news-in .7s ease both}
.meeting-art{position:relative;isolation:isolate;align-self:stretch;height:clamp(200px,25vh,285px);overflow:hidden;border-radius:13px;background:linear-gradient(145deg,#08274b,#075b8d 70%,#148e9f);color:#e9f3ff;display:flex;flex-direction:column;justify-content:space-between;padding:20px}
.meeting-lines{position:absolute;inset:-60%;z-index:-1;transform:rotate(-28deg);background:repeating-linear-gradient(90deg,transparent 0 35px,#a8dcff24 36px 37px),repeating-linear-gradient(0deg,transparent 0 35px,#a8dcff12 36px 37px)}
.meeting-wordmark{font-size:8px;letter-spacing:.14em;font-weight:600}.meeting-date{display:flex;flex-direction:column;gap:0}.meeting-date>span:first-child{font-size:clamp(45px,7vh,75px);font-weight:350;line-height:1.05;letter-spacing:-3px}.meeting-date>span:last-child{font-size:12px;letter-spacing:.3em;margin:5px 0 0 3px}.meeting-art-caption{font-size:9px;line-height:1.5;max-width:100px;color:#c2dfef}
.office-copy{padding:4px 5px 4px 0}.office-copy h2{font-size:clamp(25px,3.4vh,38px);font-weight:420;line-height:1.13;letter-spacing:-1.1px;margin:0 0 14px;color:#17273d;text-wrap:pretty}.office-copy>p{font-size:clamp(12px,1.45vh,15px);line-height:1.65;color:#758194;margin:0 0 14px;max-width:370px;text-wrap:pretty}.office-news .news-kicker{gap:8px;flex-wrap:wrap}.news-kicker .example-badge{color:#8a98aa;border:1px solid #e0e7f0;border-radius:4px;padding:2px 4px;font-size:8px;font-weight:450;letter-spacing:0;text-transform:none}.meeting-meta{display:flex;flex-wrap:wrap;gap:5px 12px;color:#496d93;font-size:10px;line-height:1.5}.meeting-meta time{white-space:nowrap}.meeting-response{display:block;min-height:12px;font-size:9px;color:#608575;margin-top:6px}
@media(max-aspect-ratio:1/1){.office-news{grid-template-columns:34% 1fr;gap:22px}.meeting-art{height:260px}}
@media(max-width:650px){.office-news{grid-template-columns:32% 1fr;gap:15px}.meeting-art{height:220px;padding:12px}.meeting-wordmark{font-size:7px}.meeting-date>span:first-child{font-size:44px}.meeting-art-caption{font-size:8px}.office-copy h2{font-size:24px;letter-spacing:-.8px}.office-copy>p{font-size:11px;line-height:1.5}.meeting-meta{font-size:9px}.news-nav{gap:6px}}
@media(max-height:820px) and (min-aspect-ratio:1/1){.meeting-art{height:175px;padding:15px}.meeting-date>span:first-child{font-size:48px}.office-copy h2{font-size:27px;margin-bottom:10px}.office-copy>p{font-size:12px;margin-bottom:10px;line-height:1.5}.office-copy .celebrate{margin-top:10px}}
@media(max-height:600px) and (min-aspect-ratio:1/1){.meeting-art{height:160px;padding:12px}.office-copy h2{font-size:23px;margin-bottom:7px}.office-copy>p{font-size:11px;line-height:1.45;margin-bottom:8px}.office-news .news-kicker{margin-bottom:8px}.office-copy .celebrate{margin-top:8px}.meeting-response{margin-top:4px}.news-nav button{width:23px;height:23px}}

/* Reserve both article sizes so paging never shifts the centered composition. */
.news-slot{display:grid}.news-slot>article{grid-area:1/1}.news-slot>article[hidden]{display:grid!important;visibility:hidden;pointer-events:none}

/* Translucent color uses a simple fill, without a continuous backdrop blur. */
.conditions{box-shadow:0 1px 0 #ffffffb3 inset}.condition+.condition{border-left-color:#8bb8d263}.condition-label{color:#466a88}.condition strong{color:#173b60}.condition small{color:#52718b}.condition>svg{stroke:#3077a5}
.member-badge #sign-out{display:flex;align-items:center;gap:5px;padding:7px 9px;border:1px solid #dce7f1;border-radius:7px;color:#386887;background:#f1f7fc;font-size:10px;flex-shrink:0}.member-badge #sign-out:hover{background:#deeffc}.member-badge #sign-out:disabled{opacity:.5;cursor:wait}.member-badge #sign-out span{display:inline}.session-error{color:#9d3d40;background:#fff0f0;border-radius:6px;padding:8px;font-size:11px;margin:0 0 10px}
@media(max-width:650px){.member-badge #sign-out{margin-left:3px;padding:5px 6px;font-size:9px;gap:3px}.member-badge #sign-out svg{width:15px;height:15px}}

/* Keep the author beside the quote inside the visible board footprint. */
.team.is-board .phrase-author{display:inline;width:auto;margin:0 0 0 .35em;font-size:.63em;line-height:inherit;white-space:nowrap;vertical-align:baseline;animation:none;opacity:1}

/* One short, responsive logo turn acknowledges a successful login. */
.team.is-entering .member-form{animation:none;opacity:.3;pointer-events:none;transition:opacity .15s ease}

/* Principal news fills the existing shared news footprint without changing board size. */
.principal-news{position:relative;min-width:0;min-height:0;overflow:hidden;border-radius:13px;background:#07182c;isolation:isolate}
.principal-visual{position:absolute;inset:0;width:100%;height:100%;display:block;object-fit:cover;object-position:25% center}
.principal-actions{position:absolute;z-index:1;left:0;right:0;bottom:0;display:flex;align-items:flex-end;justify-content:space-between;gap:12px;padding:32px 17px 14px;background:linear-gradient(transparent,#041329d9)}
.principal-notices{min-width:0;display:flex;flex-direction:column;gap:4px}.principal-preview{color:#dce9f4;font-size:8px;letter-spacing:.06em}.wish-status{font-size:9px;line-height:1.3;color:#dcebbd}.wish-status:empty{display:none}
.wish-open{display:inline-flex;align-items:center;justify-content:center;gap:12px;flex-shrink:0;padding:9px 14px;border:1px solid #d1e5ecb3;border-radius:8px;background:#f6eddb;color:#173a51;font-size:11px;font-weight:600;box-shadow:0 3px 18px #0003}.wish-open:hover{background:#fff7e7}.wish-open span{font-size:15px;font-weight:400}
.wish-layer{position:absolute;inset:0;z-index:5;display:flex;align-items:center;justify-content:center;padding:18px;border-radius:inherit;background:#06172bd9}
.wish-layer[hidden]{display:none}.wish-card{width:min(440px,100%);max-height:100%;overflow:auto;margin:0;padding:24px;border-radius:16px;background:#fcfdff;color:#233c53;box-shadow:0 18px 60px #0005;text-align:left}
.wish-heading{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:20px}.wish-heading .eyebrow{font-size:8px;letter-spacing:.14em}.wish-heading h2{margin:4px 0 0;font-size:24px;font-weight:450;line-height:1.15;letter-spacing:-.6px}.wish-close{border:0;background:transparent;color:#71869b;font-size:24px;line-height:1;padding:1px 4px}.wish-close:hover{color:#154e76}
.wish-card label{display:block;margin-bottom:8px;font-size:12px;font-weight:550}.wish-card textarea{display:block;width:100%;min-height:92px;max-height:150px;resize:vertical;border:1px solid #b9cee0;border-radius:9px;padding:12px;color:#253c52;background:#f6faff;font:inherit;font-size:13px;line-height:1.5;outline:none}.wish-card textarea:focus{border-color:#338dd0;box-shadow:0 0 0 3px #3f9edc1f}.wish-card textarea::placeholder{color:#8799ac}
.wish-help{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;margin-top:8px;color:#8291a2;font-size:9px;line-height:1.4}.wish-help p{margin:0}.wish-help span{flex-shrink:0;font-variant-numeric:tabular-nums}.wish-error{min-height:12px;margin:8px 0 0;color:#a83a3c;font-size:10px}
.wish-form-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:12px}.wish-cancel,.wish-save{border-radius:7px;padding:9px 13px;font-size:11px;font-weight:550}.wish-cancel{border:1px solid #d7e2ec;background:#f3f7fb;color:#526f89}.wish-save{border:1px solid #176dae;background:#175d91;color:#fff}.wish-save:hover{background:#0c72b3}
@media(max-width:650px){.principal-visual{object-position:15% center}.principal-actions{gap:8px;padding:26px 11px 10px}.principal-preview{font-size:7px}.wish-status{font-size:8px}.wish-open{font-size:10px;padding:8px 10px;gap:8px}.wish-layer{padding:12px}.wish-card{padding:18px}.wish-heading{margin-bottom:14px}.wish-heading h2{font-size:22px}}
@media(max-height:600px) and (min-aspect-ratio:1/1){.principal-actions{padding:24px 12px 10px}.wish-open{padding:7px 11px;font-size:10px}.wish-layer{padding:12px}.wish-card{padding:16px}.wish-heading{margin-bottom:12px}.wish-heading h2{font-size:21px}.wish-card textarea{min-height:74px;max-height:100px;font-size:12px}.wish-form-actions{margin-top:7px}}

/* Center the login artwork from brand top to quote bottom; sound control floats below it. */
.team.is-login .component-actions{position:absolute;left:0;top:100%;margin-top:10px}

/* Let quotes wrap away from the staircase on portrait monitors. */
@media(max-aspect-ratio:1/1){.team.is-login .phrase{width:min(58vw,500px);text-shadow:0 1px 10px #0008}}

/* Daily welcome occupies the same full news frame; the photograph stays beneath the copy. */
.welcome-news{position:relative;min-width:0;min-height:0;overflow:hidden;border-radius:13px;background:#102b42;isolation:isolate}
.welcome-photo{position:absolute;top:0;right:0;width:48%;height:100%;object-fit:cover;object-position:50% 13%;filter:contrast(1.03)}
.welcome-shade{position:absolute;inset:0;background:linear-gradient(90deg,#0b2339 0%,#102c43 43%,#102c43a8 61%,#102c4310 80%)}
.welcome-copy{position:absolute;inset:0;display:flex;flex-direction:column;justify-content:center;align-items:flex-start;padding:clamp(18px,2.4vh,28px);color:#eef5fc}
.welcome-kicker{display:flex;align-items:center;flex-wrap:wrap;gap:8px 14px;margin-bottom:13px;color:#9cd9d4;font-size:8px;letter-spacing:.11em}.welcome-kicker time{color:#bdcfdf;letter-spacing:0}
.welcome-copy h2{width:69%;max-width:440px;font-size:clamp(23px,3.2vh,35px);line-height:1.12;font-weight:450;letter-spacing:-.9px;margin:0 0 15px;text-wrap:balance}
#welcome-message{width:66%;max-width:410px;margin:0;color:#d3e1ee;font-size:clamp(11px,1.35vh,14px);line-height:1.6;white-space:pre-line;text-wrap:pretty}
.welcome-signature{display:flex;align-items:center;gap:10px;margin:18px 0 0;font-size:10px;letter-spacing:.04em;color:#b1dfd6}.welcome-signature span{width:23px;height:1px;background:#68b9aa}.welcome-signature strong{font-weight:550}
/* One sound switch moves with the session and keeps its choice. */
.member-area{display:flex;align-items:center;gap:14px;flex-wrap:wrap;justify-content:flex-end}
.member-actions.component-actions{position:static;display:flex;align-items:center;justify-content:flex-end;gap:7px;width:auto;min-height:0;margin:0}
.member-actions #sign-out,.member-actions #sound-toggle{display:flex;align-items:center;gap:5px;padding:7px 9px;margin:0;border:1px solid #dce7f1;border-radius:7px;color:#386887;background:#f1f7fc;font-size:10px;white-space:nowrap}
.member-actions #sign-out:hover,.member-actions #sound-toggle:hover{background:#deeffc;color:#235878}
.member-actions svg{width:15px;height:15px;fill:none;stroke:currentColor;stroke-width:1.4;stroke-linecap:round;stroke-linejoin:round}
.member-actions #sign-out:disabled{opacity:.5;cursor:wait}
.member-badge .avatar{display:block;flex-shrink:0;width:34px;height:34px;overflow:hidden;text-align:center;line-height:32px}
.avatar img{width:100%;height:100%;display:block;object-fit:cover;object-position:50% 0%;transform:scale(1.85);transform-origin:50% 20%}
.access-options{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-top:13px;min-height:28px}
/* Reserve three error lines so validation never moves the centered composition. */
.access-options .access-error{margin:4px 0 0;min-height:4.2em;flex:1}
#login-sound{flex-shrink:0}#login-sound .quiet-button{padding:6px 9px;border:1px solid #88b7d32b;border-radius:16px;font-size:10px;gap:6px;color:#9fb4c8;background:#0c233844}
#login-sound .quiet-button:hover{color:#eef7ff;background:#18394f88}#login-sound svg{width:13px;height:13px}
#sound-toggle[aria-pressed=false]{opacity:1;color:#788a9d}#sound-toggle[aria-pressed=false] svg{opacity:.45}
.board-footer-info{display:flex;align-items:center;gap:12px;flex-wrap:wrap;min-width:0}.board-footer-info #indicators-note{max-width:none;font-size:8px}
@media(max-width:650px){.member-area{gap:5px}.member-badge .avatar{width:28px;height:28px;line-height:26px}.member-badge strong{font-size:11px}.member-badge div>span{font-size:8px}.member-actions #sign-out,.member-actions #sound-toggle{padding:5px 6px;font-size:9px}.member-actions.component-actions{gap:4px}.board-header{gap:8px}.board-header h1{font-size:21px}.welcome-copy{padding:17px}.welcome-copy h2{font-size:23px;width:70%;margin-bottom:12px}.welcome-kicker{font-size:7px;margin-bottom:10px}.welcome-signature{margin-top:13px;font-size:9px}#welcome-message{font-size:11px;line-height:1.5;width:69%}.board-footer-info{gap:5px 10px}}
@media(max-height:820px) and (min-aspect-ratio:1/1){.welcome-copy{padding:16px 20px}.welcome-copy h2{font-size:25px;margin-bottom:10px}.welcome-kicker{margin-bottom:9px}.welcome-signature{margin-top:11px}#welcome-message{font-size:11px;line-height:1.5}}
@media(max-height:600px) and (min-aspect-ratio:1/1){.welcome-copy{padding:14px 18px}.welcome-copy h2{font-size:23px;margin-bottom:9px}.welcome-kicker{margin-bottom:8px}.welcome-signature{margin-top:10px}}

/* Photo framing is per person: center a square around the complete face. */
.member-badge .avatar{position:relative}
.avatar img{position:absolute;left:50%;top:50%;width:var(--avatar-width,100%);height:auto;max-width:none;object-fit:cover;transform:translate(var(--avatar-x,-50%),var(--avatar-y,-50%));transform-origin:center}
.welcome-photo{mask-image:linear-gradient(90deg,transparent,#000 35%)}