/* Shared controls and community surfaces. */
:root{--hub-bg:#171518;--hub-panel:#211c22;--hub-raised:#2b2228;--hub-text:#eee6d7;--hub-muted:#b9adb2;--hub-gold:#d0ad77;--hub-line:#bd975a30}
.button,.hub-page .hub-button,.site-header>.button{min-height:46px;padding:12px 22px;gap:12px;border:1px solid #b08a58;border-radius:3px;clip-path:none;background:linear-gradient(#713440,#4b2531);box-shadow:inset 0 1px #edc38b20,0 3px 10px #0002;color:#f4dfbd;font-weight:800;line-height:1.35;text-align:center;transition:background .18s,border-color .18s,box-shadow .18s;transform:none}
.button:hover,.landing-page .button:hover,.hub-page .hub-button:hover,.site-header>.button:hover{background:linear-gradient(#82404c,#5b2b39);border-color:#dfba7f;box-shadow:inset 0 1px #edc38b30,0 4px 14px #0003;transform:none;filter:none}
.button:active,.hub-page .hub-button:active{background:#48232e;box-shadow:inset 0 2px 6px #0003}
.button:disabled,.hub-page .hub-button:disabled{opacity:.55;cursor:wait;transform:none}
.button.button-secondary,.hub-page .hub-button.subtle{background:#bd975a09;border-color:#bd975a55;color:#dec7a5;box-shadow:none}
.button.button-secondary:hover,.hub-page .hub-button.subtle:hover{background:#bd975a16;border-color:#bd975a99}
.button.danger-button{background:#592b31;border-color:#ad6565;color:#f1c3bd}
.portal-form input:-webkit-autofill,.hub-page input:-webkit-autofill{-webkit-text-fill-color:#eee6d7;box-shadow:0 0 0 1000px #1a171b inset;caret-color:#ead3a8}
.portal-form input[type=checkbox],.hub-page input[type=checkbox]{accent-color:#bd975a}
.form-actions{display:flex;align-items:center;justify-content:flex-end;gap:12px;flex-wrap:wrap;padding-top:20px;border-top:1px solid #bd975a28}
.form-actions .button{min-width:170px;margin:0}
.form-actions .subtle-button{min-height:42px;padding:8px 4px;white-space:nowrap;font-size:13px}
.account-page .auth-options{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}
.account-page .auth-options .check-label{margin:0;font-size:13px;gap:9px;white-space:nowrap}
.account-page .auth-options .subtle-button{font-size:13px;padding:4px 0;line-height:1.4}
.account-page .auth-window .portal-form>.button{width:100%;justify-self:stretch;min-height:48px;margin-top:2px}
.account-page .auth-window .portal-form{gap:21px}
.account-page .settings-card{display:flex;flex-direction:column}
.account-page .settings-card>.portal-form{display:flex;flex-direction:column;flex:1;margin-top:0}
.account-page .settings-card>.portal-form>.form-actions{margin-top:auto}
.account-page .settings-card>.portal-form>label:last-of-type{margin-bottom:3px}
.account-page .form-actions .button{width:auto;justify-self:auto}
.account-page .game-intro{align-items:center}
.account-page .game-intro>.button{flex-shrink:0;font-size:14px}
.account-page #game-account-form{grid-template-columns:1fr;max-width:none;width:100%}
.account-page #game-account-form>.form-actions{grid-column:1/-1;margin-top:0}
.account-page .play-toolbar{justify-content:flex-start;border:0;margin-top:18px;padding:0}
.account-page .play-toolbar .platform-note{font-size:11px;color:#a99a8c}
.account-page .identity-links #logout-button{margin-top:0;min-height:36px;padding:5px 10px}
.hub-page{background:#171518;position:relative;isolation:isolate}
.hub-page:before{content:'';position:absolute;inset:92px 0 auto;height:480px;z-index:-1;pointer-events:none;opacity:.45;background:linear-gradient(#171518a8,#171518 96%),url('assets/requiem-sanctum.webp') center 34%/cover}
.hub-page .hub-intro{background:transparent;border-bottom-color:var(--hub-line)}
.hub-page .hub-overview-card,.hub-page .hub-overview-card:first-child{background:linear-gradient(125deg,#3a282cbd,#211c22e8);border-color:var(--hub-line);border-radius:3px}
.hub-page .hub-overview-card>span:not(.hub-overview-symbol),.hub-page .hub-overview-card>small{color:#b9adb2}
.hub-page .hub-main-nav a,.hub-page .hub-category{border-radius:3px;color:#bcaeaf}
.hub-page .hub-main-nav a[aria-current=page]{background:#6d34442e;box-shadow:inset 2px 0 #d0ad77;color:#ebd7b6}
.hub-page .hub-search{background:#211c22;border-color:var(--hub-line);border-radius:3px}
.hub-page .hub-search button{min-height:38px;padding:8px 18px;border-color:#bd975a55;border-radius:3px;background:#bd975a10;color:#e1c69f}
.hub-page .hub-search button:hover{background:#bd975a20}
.hub-page input:not([type=checkbox]):not([type=file]),.hub-page textarea,.hub-page select{background-color:#1a171c;border-color:#bd975a40;border-radius:3px;color:var(--hub-text)}
.hub-page .hub-filters input,.hub-page .hub-filters select{background:#1a171c!important}
.hub-page input::placeholder,.hub-page textarea::placeholder{color:#a6969d}
.hub-page :is(.hub-post,.hub-editor,.hub-category-card,.hub-dialog,.hub-notification-panel){background:#211c22;border-color:var(--hub-line);border-radius:3px}
.hub-page :is(.hub-editor-toolbar,.hub-editor-bottom){background:#2a2027;border-color:var(--hub-line)}
.hub-page .hub-editor-footer{justify-content:flex-end;gap:12px;padding-top:18px;border-top:1px solid var(--hub-line)}
.hub-page .hub-editor-footer .hub-button{min-width:160px}
.hub-page .hub-topic-row{border-color:var(--hub-line)}
.hub-page .hub-topic-meta,.hub-page .hub-topic-excerpt{color:#b2a4a9}
.hub-page .hub-category-card:hover{background:#30242c;border-color:#bd975a66}
.hub-page .hub-topic-heading :is(h1,h2),.hub-page .hub-list-heading h2{color:#eee6d7}
.hub-page .hub-footer{border-color:var(--hub-line);color:#ac9da4}
@media(max-width:800px){.account-page .game-intro{flex-wrap:wrap;gap:18px}.account-page .game-intro>.button{min-height:42px}.hub-page:before{top:72px}}
@media(max-width:480px){.form-actions{gap:10px}.form-actions .button{width:100%;min-width:0}.account-page .form-actions .button{width:100%;min-width:0}.account-page .form-actions .subtle-button{width:100%;text-align:center}.account-page .game-intro>.button{width:100%}.hub-page .hub-editor-footer .hub-button{flex:1;min-width:0}.hub-page .hub-intro-actions .hub-button{width:100%}.account-page .auth-options .check-label,.account-page .auth-options .subtle-button{font-size:12px}}
@media(prefers-reduced-motion:reduce){.button,.hub-page .hub-button,.site-header>.button{transition:none}}
