/* Compact public gateway. Authenticated game styles remain separate. */
.public-shell>.topbar,.public-shell>.footer,.public-shell>.notice.info{display:none}
.welcome{max-width:940px;margin:28px auto;background:radial-gradient(ellipse at 3% 40%,#ba8c4920,transparent 45%),radial-gradient(ellipse at 97% 90%,#b3874925,transparent 40%),repeating-linear-gradient(2deg,#92724603 0 1px,transparent 1px 4px),#f5efdf;border:1px solid #b8a582;border-radius:4px;overflow:hidden;box-shadow:0 10px 40px #483d2520,inset 0 0 45px #b68b4820;color:#34392e}
.welcome a{color:#315c47;text-underline-offset:3px}
.welcome a:hover{color:#87682f}
.welcome-header{height:170px;position:relative;overflow:hidden;display:flex;align-items:center;padding:24px 34px;background:#183e30;isolation:isolate}
.welcome-header>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:70% 63%;z-index:-2}
.welcome-header{border-bottom:3px solid #a3804b}
.welcome-header:after{content:'';position:absolute;inset:0;background:linear-gradient(90deg,#221b17ed,#2b2116a6 36%,#21171018 72%),linear-gradient(0deg,#251c174a,transparent 45%);z-index:-1}
.welcome-brand{display:flex;flex-direction:column;text-decoration:none;color:#fcf3dc!important}
.welcome-brand .wordmark{font:3.3rem Georgia,serif;letter-spacing:.18em;line-height:1.1}
.brand-kicker{font-size:.58rem;letter-spacing:.2em;text-transform:uppercase;color:#e6c38e;margin-bottom:7px}
.tagline{font:italic .94rem Georgia,serif;color:#eddbb8;margin-top:6px}
.banner-note{position:absolute;right:14px;bottom:10px;color:#fff4d9;font-size:.62rem;background:#241c18c9;padding:4px 7px;border:1px solid #dcc18b38;border-radius:2px}

.welcome-intro{text-align:center;padding:20px 24px 19px}
.welcome-intro h1{font-size:1.7rem;margin:0 0 6px}
.welcome-intro p{font-size:.8rem;color:#626b58;margin:0}
.welcome-grid{display:grid;grid-template-columns:300px minmax(0,1fr);gap:20px;padding:0 24px 22px;align-items:start}
.welcome-access,.compact-panel{border:1px solid #bbaa85;border-radius:4px;padding:16px;background:linear-gradient(135deg,#fffdf2a6,#f3e9d175);margin:0;box-shadow:inset 0 0 22px #b4925810,0 3px 9px #73603e10,inset 0 1px 0 #fffdf6}
.welcome h2{font-size:1.25rem;margin:0 0 13px}
.welcome h3{font-size:1.17rem;margin:6px 0}
.welcome p{font-size:.8rem;line-height:1.65}
.welcome .eyebrow{font-size:.64rem;color:#706345;letter-spacing:.11em}
.access-tabs{display:flex;gap:8px;border-bottom:1px solid #d3d3c2;margin-bottom:13px}
.access-tabs button{background:none;border:0;border-radius:0;border-bottom:2px solid transparent;padding:6px 0;font-size:.75rem;font-weight:500;flex:1;min-height:34px;white-space:nowrap}
.access-tabs button[aria-selected=true]{border-color:#83613d;font-weight:700;color:#5e462f;background:#e9ddc545}
.access-tabs button:hover{background:#e9ddc573}
.access-content label{font-size:.73rem;gap:4px;margin-bottom:10px}
.access-content input{padding:7px 9px;border-radius:2px;background:#fff;border-color:#b7aa8c;font-size:.88rem;min-height:36px}
.welcome .primary{font-size:.8rem;padding:9px 12px;min-height:38px;border-radius:3px;background:linear-gradient(#3e644e,#284b3b);border-color:#294936}
.welcome .primary:hover:enabled{background:#254a37}
.access-content form>.primary{width:100%;margin:0 0 7px}
.password-toggle{display:block;margin:-2px 0 9px auto;padding:0;border:0;background:none;font-size:.7rem;font-weight:400;color:#40583f;padding:3px 0}
.access-content .link{font-size:.74rem;padding:3px 0}
.access-content .preview-note{font-size:.66rem;color:#626247;margin:2px 0 6px}
.access-content>p{margin:7px 0 12px}
.availability{border-left:2px solid #b6a06c;padding:9px;background:#f1efdf}
.newsletter{margin-top:14px;background:#dfdcc66b}
.newsletter h2{font-size:1.1rem;margin-bottom:6px}
.newsletter p{font-size:.73rem;margin:0 0 8px}
.status-note{display:block;font-size:.65rem;color:#6c735b;margin-bottom:7px}
.newsletter a{font-size:.73rem}
.news{position:relative;padding:21px 20px 15px;border-top:3px solid #86623e}
.news:after{content:"";position:absolute;inset:5px;border:1px solid #bca67938;border-radius:2px;pointer-events:none}
.news>h2{font-size:1.5rem;margin:0 0 15px;padding:0 55px 13px 0;border-bottom:3px double #b8a783}
.news article+article{border-top:1px solid #c7b99988;margin-top:10px;padding-top:14px}
.news article{padding:5px 0 2px}
.news article p{color:#5e6556;margin:7px 0 10px}
.news .eyebrow{color:#786944}
.tabletop-die{position:absolute;right:19px;top:11px;width:48px;height:51px;fill:none;stroke:#e8c480;stroke-width:1.05;stroke-linejoin:round;filter:drop-shadow(0 3px 3px #5b304133);transform:rotate(9deg);pointer-events:none}
.tabletop-die text{fill:#fff0c7;stroke:none;text-anchor:middle;font:bold 11px Georgia,serif}
.announcement-links{display:flex;justify-content:center;align-items:center;gap:12px;flex-wrap:wrap;padding:12px 4px;font-size:.73rem}
.announcement-links a{font-size:.77rem;text-decoration:none;border-bottom:1px solid #bbaa87;padding:5px 0}
.announcement-links a:hover{border-color:#715b3a}
.announcement-links>span{color:#9b885f}
.intro-ornament{display:flex;justify-content:center;align-items:center;gap:12px;color:#aa8752;margin-bottom:10px}
.intro-ornament:before,.intro-ornament:after{content:"";height:1px;width:62px;background:linear-gradient(90deg,transparent,#ad8c536e)}
.intro-ornament:after{transform:rotate(180deg)}
.intro-ornament .manuscript-icon{width:16px;height:16px;stroke-width:1.4}
.welcome-access h2,.newsletter h2{color:#3d4836;display:flex;align-items:center;gap:10px}
.manuscript-icon{width:24px;height:24px;flex:none;fill:none;stroke:#977647;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}
.newsletter .manuscript-icon{width:22px;height:22px;stroke:#47644c}
.welcome-access{border-top:3px solid #57705a}
.newsletter{border-top:2px solid #8f9b74}
.newsletter .status-note{display:inline-flex;align-items:center;gap:6px;font-size:.62rem;background:#f5efd88c;border:1px solid #bcb59066;border-radius:3px;padding:3px 7px;margin:2px 0 10px}
.newsletter .status-note:before{content:"";width:4px;height:4px;border-radius:50%;background:#8d7a4b}
.newsletter>a{display:block;width:fit-content;text-decoration:none;border-bottom:1px solid #b2ae8b;padding-bottom:2px}
.access-content input{box-shadow:inset 0 1px 3px #7a684912;background:#fffdf7;border-color:#b7aa8c}
.access-content input:focus{border-color:#776348;box-shadow:0 0 0 2px #a98d5820}
.welcome .primary{box-shadow:inset 0 1px 0 #ffffff20,0 2px 3px #30453415;letter-spacing:.02em}
.welcome-footer{border-top:1px solid #d6d4c4;margin:0 24px;padding:14px 0 16px;display:flex;flex-direction:column;gap:6px;align-items:center;font-size:.75rem;color:#71644b}
.welcome-footer nav{display:flex;justify-content:center;gap:5px 20px;flex-wrap:wrap}
.welcome-footer a{padding:6px 0;text-decoration:none;border-bottom:1px solid transparent}
.welcome-footer a:hover,.welcome-footer a[aria-current=page]{border-bottom-color:#977647}
.footer-signature{display:flex;align-items:center;gap:7px;white-space:nowrap;font-size:.64rem;color:#75684d}
.footer-signature .manuscript-icon{width:18px;height:18px;stroke:#8e7b55}
.public-page{padding:40px 34px;min-height:300px}
.public-page h1{font-size:2rem;margin:8px 0 16px}
.public-page p{max-width:500px;color:#64705f;margin-bottom:24px}
.public-page>a{font-size:.8rem}
.policy-page{max-width:820px;margin-inline:auto;padding:22px 32px 30px}
.policy-back{display:inline-block;padding:6px 0;margin-bottom:18px;text-decoration:none;border-bottom:1px solid #bbaa8780}
.policy-heading{border-bottom:3px double #b8a783;padding-bottom:18px}
.policy-heading .eyebrow{text-transform:uppercase}
.policy-heading h1{margin:8px 0 9px;font-size:2.1rem}
.policy-page .policy-lead{font:italic 1.05rem/1.5 Georgia,serif;color:#65543c;margin:0;max-width:none}
.policy-promise{display:flex;gap:16px;align-items:flex-start;padding:20px 0}
.policy-promise .manuscript-icon{width:30px;height:30px;margin-top:4px;stroke:#587054}
.policy-page .policy-promise p{font-size:.94rem;line-height:1.7;color:#344c3b;max-width:none;margin:0}
.policy-principles{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));list-style:none;padding:0;margin:0 0 24px;border:1px solid #bbaa85;border-top:3px solid #587054;border-radius:3px;background:#e5e7d652}
.policy-principles li{padding:14px 16px;margin:0;display:flex;flex-direction:column;gap:7px}
.policy-principles li+li{border-left:1px solid #bbaa8570}
.policy-principles strong{font:1.05rem Georgia,serif;color:#3a513d}
.policy-principles span{font-size:.77rem;line-height:1.6;color:#5b624e}
.policy-contents{display:flex;gap:8px 20px;flex-wrap:wrap;align-items:center;padding:0 0 18px;border-bottom:1px solid #b8a78370;font-size:.77rem}
.policy-contents>span{font-size:.65rem;letter-spacing:.08em;text-transform:uppercase;color:#75684d}
.policy-contents a{padding:8px 0;text-decoration:none;border-bottom:1px solid #bbaa87}
.policy-contents a:hover{border-color:#715b3a}
.policy-section{padding-top:24px;scroll-margin-top:20px}
.policy-section h2{font-size:1.4rem;margin-bottom:12px;color:#454735}
.policy-page .policy-section p{max-width:none;font-size:.9rem;color:#484f42;margin:0 0 13px;line-height:1.8;text-wrap:pretty}
.policy-section+.policy-section{border-top:1px solid #b8a78355;margin-top:13px}
.policy-token-examples{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:18px 0 0}
.policy-token-examples>div{border:1px solid #bbaa8580;border-radius:3px;background:#fffdf259;padding:15px}
.policy-token-examples dt{font:1.5rem Georgia,serif;color:#3a513d;margin-bottom:7px}
.policy-token-examples dd{margin:0;font-size:.8rem;line-height:1.6;color:#484f42}
@media(max-width:650px){.policy-token-examples{grid-template-columns:1fr;gap:8px}.policy-token-examples>div{display:grid;grid-template-columns:46px 1fr;align-items:center;gap:12px;padding:12px 15px}.policy-token-examples dt{margin:0;font-size:1.3rem}}
.policy-page #support-availability{background:#e5e7d64d;border:1px solid #bbaa8570;border-left:3px solid #587054;border-radius:2px;padding:20px;margin-top:24px}
.policy-page #support-availability p:last-child{margin-bottom:0}
@media(max-width:650px){.policy-heading h1{font-size:1.8rem}.policy-principles{grid-template-columns:1fr}.policy-principles li{padding:13px 16px}.policy-principles li+li{border-left:0;border-top:1px solid #bbaa8570}.policy-promise{gap:12px}.policy-promise .manuscript-icon{width:24px;height:24px}.policy-contents{gap:5px 16px}.policy-contents>span{flex-basis:100%}.policy-contents a{padding:10px 0}.policy-section h2{font-size:1.3rem}.policy-page #support-availability{padding:17px}}
@media(max-width:650px){.welcome{margin:12px;border-radius:3px}.welcome-header{height:156px;padding:20px}.welcome-header>img{object-position:62% 63%}.welcome-header:after{background:linear-gradient(90deg,#221b17ed,#2b2116a6 55%,#21171055)}.brand-kicker{font-size:.49rem;letter-spacing:.14em}.welcome-brand .wordmark{font-size:2.7rem}.welcome-intro{padding:18px 16px}.welcome-intro h1{font-size:1.4rem}.welcome-grid{grid-template-columns:1fr;padding:0 14px 18px;gap:16px}.welcome-access,.compact-panel{padding:16px}.welcome-footer{margin:0 14px;flex-direction:column;align-items:center;gap:8px}.welcome-footer nav{justify-content:center;gap:5px 14px}.public-page{padding:30px 20px}.banner-note{font-size:.55rem}}

@media(min-width:651px) and (max-width:850px){.welcome-footer{flex-direction:column;gap:8px}.welcome-footer nav{justify-content:center}}
@media(prefers-contrast:more){.welcome p,.welcome .eyebrow,.preview-note,.status-note{color:#454936}.welcome-access,.compact-panel{border-color:#756344}.announcement-links a,.welcome-footer a{color:#254a35}}

/* Finishing details and accessible interaction states. */
.welcome a,.welcome button{transition:color .15s,background-color .15s,border-color .15s,box-shadow .15s}
.welcome :is(a,button,input):focus-visible{outline:2px solid #986631;outline-offset:3px}
.welcome-brand:focus-visible{outline-color:#f0ce8e}
.welcome h1,.welcome h2,.welcome h3{text-wrap:balance}
.welcome-intro p{max-width:670px;margin-inline:auto;text-wrap:pretty}
.news article p{text-wrap:pretty}
.welcome-access,.newsletter{position:relative}
.welcome-access:after,.newsletter:after{content:'';position:absolute;right:8px;bottom:8px;width:9px;height:9px;border-right:1px solid #ab946155;border-bottom:1px solid #ab946155;pointer-events:none}
.welcome button:disabled{opacity:.65}
@media(max-width:650px){.access-content input{font-size:1rem;min-height:44px}.access-tabs button,.welcome .primary{min-height:42px}.password-toggle,.access-content .link{min-height:32px}.welcome-footer nav{gap:0 16px}.welcome-footer a{padding:9px 0}.welcome-footer{padding-bottom:12px}.welcome-intro p{font-size:.82rem}}
@media(max-width:360px){.welcome{margin:8px}.welcome-brand .wordmark{font-size:2.4rem;letter-spacing:.14em}.brand-kicker{letter-spacing:.08em}.welcome-header{padding:18px}.welcome-grid{padding-inline:12px}.welcome-access,.compact-panel{padding:14px}.news>h2{font-size:1.35rem}.welcome-footer nav{gap:0 12px}}
@media(prefers-reduced-motion:reduce){.welcome a,.welcome button{transition:none}}

/* Detailed privacy notice uses the shared policy reading layout. */
.policy-page .policy-reviewed{font-size:.7rem;color:#75684d;margin:10px 0 0;max-width:none}
.privacy-status{border:1px solid #bbaa8570;border-left:3px solid #977647;background:#e9dec550;padding:16px 18px;margin:0 0 22px;border-radius:2px}
.privacy-status strong{font:1.05rem Georgia,serif;color:#5d4932}
.policy-page .privacy-status p{font-size:.83rem;line-height:1.7;color:#515749;margin:8px 0 0;max-width:none}
.privacy-contents{display:grid;grid-template-columns:1fr 1fr;gap:4px 24px}
.privacy-contents>span{grid-column:1/-1;margin-bottom:5px}
.privacy-contents a{border-bottom-color:#bbaa8740;padding:9px 0;line-height:1.5}
.privacy-contents a:hover{background:#e9dec54d}
.privacy-data{margin:18px 0 0;border:1px solid #bbaa8570;border-radius:3px;background:#fffdf259}
.privacy-data>div{padding:15px 18px}
.privacy-data>div+div{border-top:1px solid #bbaa8550}
.privacy-data dt{font:bold .91rem Georgia,serif;color:#3a513d;margin-bottom:6px}
.privacy-providers dd>a{display:inline-block;margin-top:6px}
.privacy-data dd{font-size:.84rem;line-height:1.8;margin:0;color:#484f42}
.policy-page .policy-related{border-left:2px solid #977647;padding-left:13px;font-size:.8rem}
.privacy-contact{margin-top:18px;padding:17px 19px;border:1px solid #bbaa8570;border-left:3px solid #587054;border-radius:3px;background:#e5e7d64d}
.privacy-contact strong{display:block;font:1.03rem Georgia,serif;color:#3a513d}
.privacy-address{display:block;margin-top:9px;font-size:.94rem;font-weight:600;overflow-wrap:anywhere;color:#344c3b}
.policy-page .privacy-contact p{font-size:.8rem;line-height:1.7;margin:8px 0 0}
.policy-top{display:inline-block;padding:10px 0;font-size:.8rem}
@media(max-width:650px){.privacy-contents{grid-template-columns:1fr;gap:0}.privacy-status{padding:15px}.privacy-data>div{padding:14px}.privacy-data dd{font-size:.88rem}}
