/* Shared player entry surfaces. Scoped to portal/hub/test; no gameplay layers. */
:root{--surface-ink:#24464b;--surface-muted:#50696c;--surface-paper:#fffaf0;--surface-line:#afc3c1;--surface-accent:#315c62;--surface-radius:22px}
.portal-primary-link{display:flex;align-items:center;justify-content:space-between;gap:16px;min-height:52px;padding:13px 18px;border:1px solid #ffffff4d;border-radius:16px;background:#345d65;color:#fff8e7;text-decoration:none;font-size:16px;font-weight:650;line-height:1.4}
.portal-primary-link:hover{background:#274c55}.portal-primary-link:focus-visible{outline:3px solid #ecd9a0;outline-offset:4px}
.portal-primary-link>span{flex:none}.hero-entry{margin:20px 0;max-width:400px}.central-entry{margin:22px 0 10px}.central-entry-hint{font-size:14px;color:var(--surface-muted);margin:0 0 20px;line-height:1.65}
.rpg-ui .portal-hero{grid-template-areas:'copy' 'login' 'art';row-gap:24px}
.rpg-ui .portal-hero>.hero-copy{grid-area:copy}.rpg-ui .portal-hero>.portal-login{grid-area:login}
.rpg-ui .portal-hero>.box-art{grid-area:art;width:100%;margin:0 auto;max-width:560px;height:clamp(220px,45vw,350px)}
.rpg-ui .portal-login #roomLoginDetails{border-top:1px solid #aac1bc66;margin-top:18px;padding-top:8px}
#roomLoginDetails>summary{min-height:48px;display:flex;align-items:center;cursor:pointer;font-size:15px;gap:10px;list-style:none;line-height:1.4}
#roomLoginDetails>summary::before{content:'+';font-size:22px;flex:none}#roomLoginDetails[open]>summary::before{content:'−'}
#roomLoginDetails[open]{padding-bottom:8px}.rpg-ui .portal-login #playerLoginForm>label{font-size:14px;margin-top:18px}
.rpg-ui .portal-login :is(.login-intro,.login-help p,.option-note,#portalOptions>summary,.login-status){font-size:14px}
.rpg-ui .portal-login .login-intro{margin-bottom:14px}.rpg-ui .portal-login .login-topline{font-size:11px;margin-bottom:20px}
.rpg-ui .portal-login .pin-field>button{min-width:82px;min-height:48px;top:0;right:0;font-size:13px}
.rpg-ui .portal-login .pin-field>input{padding-right:90px}.rpg-ui .portal-login .portal-submit{font-size:16px;min-height:52px}
.rpg-ui .portal-header .header-login{min-height:48px;padding-inline:14px}.rpg-ui .portal-footer{font-size:12px}
.rpg-ui .hero-tags span{font-size:12px}.rpg-ui .portal-eyebrow{font-size:11px}
body.surface-page{margin:0;min-height:100svh;color:#edf4ef;background:radial-gradient(ellipse at 8% 0,#2b4c59,transparent 65%),#142e3b;font:16px/1.6 system-ui,-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif}
.surface-page .surface-header{display:flex;align-items:center;justify-content:space-between;gap:16px;width:min(1040px,100%);margin:0 auto;padding:18px 24px;box-sizing:border-box}
.surface-brand{display:inline-flex;align-items:center;gap:10px;color:#fff5dd;text-decoration:none;min-height:48px;font-size:14px;font-weight:650;letter-spacing:.04em}
.surface-brand>span{display:grid;place-items:center;width:42px;height:42px;border:1px solid #ffffff4d;border-radius:50%;font-size:27px;font-weight:400}
.surface-header>a:not(.surface-brand){color:#e4eeea;font-size:14px;min-height:48px;display:flex;align-items:center}
.surface-page main.surface-panel{width:min(960px,calc(100% - 32px));max-width:960px;margin:12px auto 40px;padding:clamp(22px,4vw,38px);box-sizing:border-box;color:var(--surface-ink);background:linear-gradient(125deg,#fffaf1,#edf4ef);border:1px solid #ffffff4d;border-radius:var(--surface-radius);box-shadow:0 12px 36px #061e3226}
.surface-page:has(#hubLogin:not([hidden])) main.surface-panel{max-width:560px}
.surface-eyebrow{font-size:12px;letter-spacing:.1em;text-transform:uppercase;color:#587478;margin:0 0 8px}
.surface-page .surface-panel h1{font:400 clamp(30px,6vw,42px)/1.15 Georgia,Palatino,serif;letter-spacing:-.025em;margin:0 0 16px;color:#25464c}
.surface-page .surface-panel h2{font:400 26px/1.3 Georgia,Palatino,serif;margin:28px 0 12px}
.surface-page .surface-panel p{font-size:16px;line-height:1.7}.surface-page .surface-panel .small{font-size:14px;color:var(--surface-muted)}
.surface-page .surface-panel label{display:block;font-size:16px;margin:18px 0 8px}
.surface-page .surface-panel :is(input:not([type=checkbox]),select){font:inherit;box-sizing:border-box;width:100%;min-height:52px;border:1px solid var(--surface-line);background:#fffdf7;color:var(--surface-ink);border-radius:14px;padding:12px 14px}
.surface-page .surface-panel :is(button,a.button){font:inherit;min-height:48px;border:1px solid #b3c6be;border-radius:14px;padding:11px 16px;cursor:pointer;background:#e8eee0;color:#294b48}
.surface-page .surface-panel :is(button,a):focus-visible,.surface-page .surface-panel :is(input,select):focus-visible{outline:3px solid #8c752f;outline-offset:3px}
.surface-page .surface-panel button[type=submit]{background:var(--surface-accent);color:#fff9e9;border-color:#315c62;min-height:52px;width:100%;margin-top:20px}
.surface-page .surface-panel button:disabled{opacity:.6;cursor:wait}.surface-page .surface-panel [role=status]{min-height:26px}
.surface-page .surface-panel .error{color:#963926}.hub-pin{position:relative}.surface-panel .hub-pin input{padding-right:90px!important}.surface-panel .hub-pin button{position:absolute;right:2px;top:2px;min-height:48px;background:transparent;border:0;padding-inline:10px;font-size:14px}
.surface-panel .hub-help{border-top:1px solid #b7c9c2;padding-top:18px;margin-top:24px}.surface-panel .hub-help a{color:#315c62}
.surface-page .surface-panel .platform-actions{display:flex;gap:10px;flex-wrap:wrap;justify-content:space-between}.surface-panel .hub-missions{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,270px),1fr));gap:16px}
.surface-panel .hub-missions article{margin:0;padding:20px;border:1px solid #c4d3c6;border-radius:18px;background:#ffffff96;display:flex;flex-direction:column;align-items:flex-start;gap:8px}
.surface-panel .hub-missions h3{font:400 24px/1.3 Georgia,serif;margin:0}.surface-panel .hub-missions p{margin:0}.surface-panel .hub-missions button{margin-top:auto}
.surface-page .test-summary{padding:12px 16px;border-radius:14px;background:#e6eee2;color:#35564e;font-size:14px;margin:18px 0}
.surface-page.test-entry main.surface-panel{max-width:680px}
.surface-page .comfort-open{bottom:14px;right:14px;left:auto;width:48px;height:48px}
html.comfort-large .surface-panel :is(p,label,input,select,button){font-size:18px!important}html.comfort-xlarge .surface-panel :is(p,label,input,select,button){font-size:20px!important}
html.comfort-high .surface-page main.surface-panel{background:#fff;color:#111;box-shadow:none}html.comfort-high .surface-panel :is(h1,h2,p,label,select,input){color:#111!important}html.comfort-high .surface-panel :is(input,select){background:#fff;border-color:#333}
.surface-page #labForm{margin-top:24px}.surface-page #labSelectionHint{font-size:14px;color:var(--surface-muted)}
.lab-short-settings{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.lab-short-settings>div{min-width:0}
.surface-page .test-return{color:#e6efeb;text-decoration:none}.surface-page .test-return:hover{text-decoration:underline}
@media(min-width:900px){.rpg-ui .portal-hero{grid-template-areas:'copy login' 'art login';grid-template-rows:auto 1fr;align-items:start}.rpg-ui .portal-login{position:sticky;top:20px}.rpg-ui .portal-hero>.box-art{max-width:none;height:310px}}
@media(max-width:899px){.rpg-ui .portal-hero{padding-block:26px;gap:24px}.rpg-ui .hero-copy h1{font-size:clamp(34px,7vw,50px);margin-bottom:16px;line-height:1.04}.rpg-ui .hero-description{font-size:15px;line-height:1.6;margin-bottom:16px}.rpg-ui .portal-eyebrow{margin-bottom:16px}.hero-entry{margin:16px 0}.rpg-ui .portal-login{max-width:560px}.rpg-ui .portal-hero>.box-art{height:240px}.rpg-ui .portal-header{padding-block:14px}.rpg-ui .hero-tags{gap:6px}}
@media(max-width:420px){.surface-page .surface-header{padding:12px 18px}.surface-page main.surface-panel{margin-top:4px;width:calc(100% - 24px);padding:22px}.surface-header>a:not(.surface-brand){font-size:13px}.rpg-ui .portal-shell{padding-inline:16px}.rpg-ui .portal-header{gap:8px}.rpg-ui .portal-header .header-login{padding-inline:10px;font-size:12px}.rpg-ui .portal-brand{gap:7px;font-size:11px}.rpg-ui .portal-login{padding:22px}.surface-page .surface-panel .platform-actions>*{flex:1 1 auto}}
@media(prefers-reduced-motion:reduce){.surface-page *{scroll-behavior:auto!important}}
.app-install{margin-top:20px;border-top:1px solid #9bb6b166;padding-top:8px;color:#315c62}
.app-install>summary{min-height:48px;display:flex;align-items:center;gap:10px;cursor:pointer;font-size:15px}
.app-install>summary::before{content:'＋';font-size:18px}.app-install[open]>summary::before{content:'−'}
.app-install p{font-size:14px;line-height:1.6}.app-install button{min-height:48px;cursor:pointer;padding:10px 16px;border:1px solid #a9c2ba;border-radius:14px;background:#e8eee0;color:#294b48;font:inherit}
.app-install button:focus-visible,.app-install>summary:focus-visible{outline:3px solid #8c752f;outline-offset:3px}
.app-install[hidden],.app-install button[hidden]{display:none!important}
