.hero h1{white-space:pre-line}.screenshots{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;padding-top:0}.screenshots figure{margin:0}.screenshots img{width:100%;height:auto;display:block;border:1px solid var(--line)}.screenshots figcaption{font-size:12px;color:var(--muted);padding:10px 0}@media(max-width:640px){.screenshots{grid-template-columns:1fr}}
:root{color-scheme:dark;--ink:#091117;--panel:#101e27;--line:#29363b;--gold:#e6c580;--text:#f1eee5;--muted:#a9b4b6;--aqua:#91d4d5}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:95px}body.site-body{margin:0;background:var(--ink);color:var(--text);font:16px/1.65 Arial,Helvetica,sans-serif}a{color:inherit;text-decoration:none}a:hover{color:var(--gold)}a:focus-visible,button:focus-visible,select:focus-visible{outline:2px solid var(--aqua);outline-offset:5px}button,select{font:inherit}.site-header{min-height:88px;max-width:1480px;margin:auto;padding:18px 5%;display:flex;align-items:center;gap:26px;border-bottom:1px solid var(--line)}.wordmark{font:700 25px/1 Georgia,serif;letter-spacing:4px;display:inline-flex;align-items:center;gap:12px}.wordmark img{object-fit:cover;object-position:50% 30%;border-radius:50%;border:1px solid #b89e6c}.site-header nav{margin-inline-start:auto;display:flex;gap:25px;font-size:13px;color:var(--muted)}.language-label select{max-width:145px;color:var(--text);background:var(--ink);border:1px solid var(--line);border-radius:4px;padding:7px;font-size:12px}.button{display:inline-flex;align-items:center;justify-content:center;background:var(--gold);border:1px solid #f3d798;color:#111a21;padding:13px 29px;border-radius:3px;font-weight:700;font-size:15px;white-space:nowrap;box-shadow:0 3px 26px #cfad5e19;cursor:pointer}.button:hover{background:#f4dba3;color:#111a21}.button-small{padding:9px 20px;font-size:13px}.hero{max-width:1540px;margin:0 auto;min-height:615px;display:grid;grid-template-columns:0.9fr 1.2fr;align-items:center;padding:64px 5% 76px;gap:30px;position:relative}.hero:before{content:"";position:absolute;inset:0;background:radial-gradient(ellipse at 65% 35%,#193b4455,transparent 65%);pointer-events:none}.hero-copy{position:relative;z-index:1}.eyebrow{color:var(--gold);font-size:10px;font-weight:700;letter-spacing:2.7px;margin:0 0 21px;text-transform:uppercase}h1,h2,h3{font-family:Georgia,'Times New Roman',serif;font-weight:400;line-height:1.15}h1{font-size:clamp(40px,4.4vw,68px);letter-spacing:-2px;margin:0 0 25px}h2{font-size:clamp(28px,3vw,43px);margin:0 0 17px}h3{font-size:24px;margin:15px 0}.hero-description{max-width:450px;color:var(--muted);font-size:16px;line-height:1.8}.hero-actions{display:flex;align-items:center;gap:26px;margin:31px 0 24px}.text-link{font-size:13px;color:var(--gold);border-bottom:1px solid #86764e;padding-bottom:4px}.free-note{font-size:11px;color:var(--muted);display:flex;gap:11px;align-items:center;flex-wrap:wrap}.free-note strong{color:#c3dfc3}.status-dot{width:6px;height:6px;background:#b0d5b4;border-radius:50%;box-shadow:0 0 10px #79b78e66}.creator{font-size:11px;color:var(--muted);margin-top:22px}.creator a{color:var(--gold)}.hero-art{position:relative;margin-inline-end:-5%;min-width:0}.hero-art img{width:100%;height:auto;display:block;mix-blend-mode:screen}.art-caption{display:block;text-align:center;margin-top:8px;font-size:9px;letter-spacing:4px;color:#c1b18c}.art-caption span{padding:0 10px}.wrap{max-width:1250px;margin:auto;padding:70px 5%}.section-heading{max-width:660px}.section-heading>p:not(.eyebrow){color:var(--muted);font-size:15px}.world-section{border-top:1px solid var(--line)}.world-columns{display:grid;grid-template-columns:repeat(3,1fr);gap:45px;margin-top:45px}.world-columns article{border-top:1px solid #726345;padding-top:22px}.chapter{font-size:10px;color:var(--gold);letter-spacing:2px}.world-columns p{color:var(--muted);font-size:14px;line-height:1.8}.trailer-section{padding-top:20px}.trailer-frame{border:1px solid #716340;padding:5px;background:#04090d;margin-top:30px}.trailer-frame video{width:100%;aspect-ratio:16/9;display:block;background:#050a0f}.media-note{font-size:11px;color:var(--muted)}.platform-section{display:grid;grid-template-columns:1fr 1fr;gap:14px 45px;border-block:1px solid var(--line)}.platform-section>p{color:var(--muted);font-size:13px;margin:0;max-width:540px}.platform-section>.text-link{justify-self:start;align-self:start;grid-column:2}.platform-badges{display:flex;flex-wrap:wrap;gap:18px;align-items:center;font-size:12px}.platform-badges a{display:inline-flex;align-items:center;gap:8px;min-height:44px}.platform-badges svg{width:25px;height:25px;fill:currentColor;color:var(--muted)}.closing{display:flex;gap:35px;align-items:center;flex-wrap:wrap}.closing>div:first-child{flex:1}.age-note{flex-basis:100%;display:flex;align-items:center;gap:15px;max-width:550px}.age-note strong{font-size:22px;border:1px solid var(--line);padding:10px;white-space:nowrap}.age-note p{font-size:11px;color:var(--muted);line-height:1.6}.site-footer{border-top:1px solid var(--line);padding:30px 5%;max-width:1480px;margin:auto;display:flex;align-items:center;justify-content:space-between;gap:25px;font-size:11px;color:var(--muted)}.site-footer .wordmark{font-size:19px;color:var(--text)}.site-footer p a{color:var(--gold)}.site-footer>div{display:flex;gap:20px}.sr-only{position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}.document-page{max-width:1050px;margin:auto;padding:65px 6% 90px}.document-page>h1{font-size:48px}.document-page .intro{max-width:760px;color:var(--muted)}.document-section{padding:30px 0;border-bottom:1px solid var(--line)}.document-section h2{font-size:27px}.document-section p{max-width:800px;color:var(--muted)}.document-section a{color:var(--gold)}.requirements-grid{display:grid;grid-template-columns:1fr 1fr;gap:0 40px}.notice{padding:18px 22px;border-inline-start:3px solid var(--gold);background:var(--panel);font-size:13px;color:var(--muted)}[dir=rtl] .hero-art{margin-inline-end:0}[dir=rtl] h1{letter-spacing:0}
@media(max-width:960px){.site-header{gap:15px;flex-wrap:wrap}.site-header nav{order:3;justify-content:center;width:100%;margin:0}.language-label{margin-inline-start:auto}.hero{grid-template-columns:1fr 1fr;gap:12px}.hero-art{margin:0}.hero-actions{gap:15px}.platform-section{grid-template-columns:1fr}.platform-section>.text-link{grid-column:1}.site-footer{flex-wrap:wrap}.world-columns{gap:23px}}
.terminal-command{overflow-wrap:anywhere}
.community-count{display:inline-flex;margin:20px 0 0;padding:12px 18px;border:1px solid var(--line);border-radius:4px;background:#12212a}.community-count>div{display:flex;align-items:baseline;gap:18px}.community-count dt{color:var(--muted);font-size:12px}.community-count dd{margin:0;color:var(--gold);font-size:26px;line-height:1.2;font-weight:700;font-variant-numeric:tabular-nums}
@media(max-width:640px){.site-header{padding:16px 6%;gap:13px}.wordmark{font-size:20px}.wordmark img{display:none}.site-header .button-small{padding:7px 11px;font-size:12px}.language-label select{max-width:115px;font-size:11px}.site-header nav{gap:20px;font-size:11px}.hero{display:flex;flex-direction:column-reverse;padding:25px 7% 45px;gap:30px}.hero-art{width:100%;margin:0}.hero-copy{width:100%}h1{font-size:43px}.hero-description{font-size:15px}.wrap{padding:45px 7%}.world-columns{grid-template-columns:1fr;gap:20px}.world-columns article{padding-top:15px}.requirements-grid{grid-template-columns:1fr}.document-page{padding:45px 7%}.document-page>h1{font-size:36px}.site-footer{padding:28px 7%}.art-caption{font-size:7px}.closing h2{font-size:30px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
@media(max-width:640px){.site-header nav{flex-wrap:wrap;row-gap:10px}}

/* The supplied deep blue swatch anchors the 3D model presentation; scripts/media/capture_site_models.py renders on the same blue.
   The layout keeps its original concept-* class names so cached copies of this stylesheet still match the page. */
body.site-body{background-color:#0f2136;background-image:radial-gradient(ellipse at 25% 5%,#1a304633,transparent 70%),url(../media/site-background.png);background-repeat:no-repeat,repeat;background-size:auto,64px 53px}
.enemy-concepts{border-top:1px solid var(--line)}
.enemy-concept-grid{display:grid;grid-template-columns:1fr 1fr;gap:32px;margin-top:32px}
.enemy-concept{margin:0;min-width:0;border:1px solid #8e79534d;background:#0b1624bd}
.enemy-concept>a{display:block;background:#0b111a;overflow:hidden}
.enemy-concept img{display:block;width:100%;height:auto;aspect-ratio:2/3;object-fit:contain}
.enemy-concept>div{padding:28px}.enemy-concept p:not(.eyebrow){color:var(--muted);font-size:14px;line-height:1.8}
.concept-label{color:#c5b68e;font-size:12px;letter-spacing:.04em}
.concept-gallery{padding-top:25px}.concept-gallery-grid{display:grid;grid-template-columns:1fr 1fr;gap:32px;margin-top:28px}.concept-gallery figure{margin:0;min-width:0}.concept-gallery figure>a{display:block;border:1px solid #8e795355;background:#0b111a}.concept-gallery img{display:block;width:100%;height:auto;aspect-ratio:3/2;object-fit:contain}.concept-gallery figcaption{padding-top:14px}.concept-gallery h3{margin:0 0 9px}.concept-gallery figcaption p{margin:0 0 9px;color:var(--muted);font-size:14px;line-height:1.7}
.concept-gallery .concept-knight{grid-column:1/-1;display:grid;grid-template-columns:minmax(0,.85fr) minmax(0,1fr);align-items:center;margin-top:8px;border:1px solid #8e795355;background:radial-gradient(ellipse at 60% 40%,#a7823a12,transparent 70%),#0b1624bd}.concept-gallery .concept-knight>a{border:0}.concept-gallery .concept-knight img{aspect-ratio:2/3}.concept-knight figcaption{padding:36px}.concept-knight h3{font-size:clamp(28px,3.2vw,40px)}.concept-gallery .concept-knight figcaption .eyebrow{color:var(--gold);font-size:10px;line-height:1.6;margin-bottom:18px}.concept-gallery .concept-knight figcaption p:not(.eyebrow){font-size:16px;line-height:1.8;margin-bottom:22px}
@media(max-width:700px){.enemy-concept-grid,.concept-gallery-grid{grid-template-columns:1fr}.enemy-concept>div{padding:22px}.site-header nav{flex-wrap:wrap;row-gap:8px}}
@media(max-width:700px){.concept-gallery .concept-knight{grid-template-columns:minmax(0,1fr)}.concept-knight figcaption{padding:24px}}
@media(max-width:640px){.platform-section{grid-template-columns:minmax(0,1fr)}.platform-section>*{min-width:0}.platform-section .button{max-width:100%;white-space:normal;text-align:center}}

/* Website Grade 3: live, searchable portal dashboard with layouts for desktop, tablet and phone. */
.home-page .portal-header{max-width:none;padding:10px clamp(18px,4vw,64px);min-height:68px;background:#071019ed;position:relative;z-index:2}
.site-version{display:inline-flex;align-items:center;white-space:nowrap;border:1px solid #8e795366;border-radius:999px;padding:4px 9px;color:#d8be82;font:600 10px/1.2 Arial,Helvetica,sans-serif;letter-spacing:.08em}
.portal-header .wordmark{font:700 22px/1 Georgia,serif;letter-spacing:1px;color:var(--gold)}
.portal-header .wordmark img{width:38px;height:38px;object-fit:cover;object-position:50% 29%;border:0;border-radius:50%}
.portal-header nav{gap:clamp(10px,2vw,28px);color:#e2e5e7}
.home-page .portal-hero{max-width:none;min-height:540px;padding:60px clamp(24px,7vw,110px);grid-template-columns:minmax(0,1.4fr) minmax(270px,.6fr);gap:clamp(28px,7vw,110px);background:linear-gradient(90deg,#06101ae8 0%,#07111ac2 43%,#08111a36 100%),url('../media/newborn-town.jpg') center 48%/cover no-repeat;border-bottom:1px solid #a685514d}
.home-page .portal-hero:before{background:linear-gradient(0deg,#061019a6,transparent 45%);inset:0}
.portal-hero .hero-copy{max-width:670px}.portal-hero h1{font-size:clamp(42px,6vw,82px);text-shadow:0 3px 25px #000}.portal-hero .hero-description{color:#e1e5e7;max-width:590px}
.portal-status{position:relative;z-index:1;padding:22px 25px;background:#07111be8;border:1px solid #c5a2639c;box-shadow:0 18px 55px #0008;align-self:center;min-width:0}
.portal-status-head{display:flex;align-items:center;justify-content:space-between;gap:14px;border-bottom:1px solid var(--line);padding-bottom:12px}.portal-status-head h2{font-size:22px;margin:0}.portal-status-head>span{font-size:12px;color:#e0b76f}.portal-status-head>span.is-online{color:#83d59c}
.portal-status dl{margin:8px 0 14px}.portal-status dl>div{display:flex;justify-content:space-between;gap:18px;padding:10px 0;border-bottom:1px solid #29363b99}.portal-status dt{font-size:13px;color:#c3cbce}.portal-status dd{margin:0;font-size:13px;font-variant-numeric:tabular-nums;color:var(--gold);text-align:end}.portal-status-link{display:flex;justify-content:space-between;font-size:12px;color:var(--gold)}
.portal-tools.wrap{padding-top:20px;padding-bottom:10px;max-width:1350px}.portal-tools>label{display:block;font:20px Georgia,serif;margin-bottom:8px}.portal-search{display:flex;max-width:700px;gap:8px}.portal-search input{flex:1;min-width:0;padding:12px 14px;background:#0a151f;border:1px solid #5e5a4b;color:var(--text);border-radius:3px}.portal-search button{border:1px solid var(--line);background:#15232e;color:var(--text);padding:8px 15px;border-radius:3px;cursor:pointer}.site-search-results{list-style:none;display:flex;flex-wrap:wrap;gap:8px;padding:0;margin:10px 0}.site-search-results[hidden]{display:none}.site-search-results a{display:inline-block;border:1px solid #716340;background:#111e28;padding:7px 12px;color:var(--gold);font-size:13px}
.portal-grid.wrap{max-width:1450px;padding-top:24px;padding-bottom:52px;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:15px}
.portal-card{min-width:0;min-height:250px;position:relative;overflow:hidden;border:1px solid #967b4d80;background:linear-gradient(145deg,#102131,#09121c 80%);display:flex;flex-direction:column;justify-content:flex-end}
.portal-card>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:.48;transition:transform .45s ease,opacity .3s ease}.portal-card:hover>img{transform:scale(1.035);opacity:.62}.portal-card:after{content:"";position:absolute;inset:0;background:linear-gradient(0deg,#071019f2 0%,#071019c9 45%,#0710191c 100%);pointer-events:none}
.portal-card-copy{position:relative;z-index:1;padding:23px}.portal-card-copy .eyebrow{margin-bottom:10px}.portal-card-copy h2{font-size:clamp(21px,2vw,30px);margin:0 0 9px}.portal-card-copy p:not(.eyebrow){color:#c3cbce;font-size:13px;line-height:1.65;margin:0 0 13px}.portal-card-copy .text-link{display:inline-block;margin:4px 15px 0 0}.portal-card-world{grid-column:span 2;min-height:310px}.portal-card-news{background:linear-gradient(135deg,#122436,#101723 65%,#282119);}.portal-card-news:before{content:"✦";position:absolute;right:20px;top:12px;color:#d1ae6b;font-size:38px;opacity:.55}.portal-community{background:linear-gradient(140deg,#12202a,#0a121b)}.portal-community-links{display:flex;gap:8px;flex-wrap:wrap}.portal-community-links a{font-size:11px;border:1px solid #506071;padding:7px 9px;color:#e6d3a4}.portal-gallery-card{grid-column:span 2;min-height:250px}.portal-card-news,.portal-community{justify-content:center}
.updates-section.wrap{padding-top:34px;padding-bottom:50px}.updates-section .section-heading h2{font-size:clamp(26px,3vw,38px)}.updates-list{grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:12px}.update-entry{padding:18px;background:#0c1823;border-color:#74634375}.update-entry h3{font-size:20px}.update-entry ul{font-size:13px}
.screenshots.wrap{max-width:1450px;padding-top:35px;padding-bottom:55px;gap:15px}.screenshots img{border-color:#967b4d80}.screenshots figure{background:#0b1620;padding:7px;border:1px solid #45515b}.screenshots figcaption{padding:9px 5px}
.home-page .site-footer{max-width:none;padding-inline:clamp(18px,5vw,70px);background:#071019}
@media(max-width:1050px){.portal-header nav{order:3;width:100%;justify-content:center}.portal-header{flex-wrap:wrap}.home-page .portal-hero{min-height:480px}.portal-grid.wrap{grid-template-columns:repeat(2,minmax(0,1fr))}.portal-card-world{grid-column:span 2}.portal-gallery-card{grid-column:span 2}}
@media(max-width:700px){.home-page .portal-header{padding:10px 5%;gap:12px}.portal-header nav{gap:9px 16px}.portal-header .wordmark{font-size:18px}.home-page .portal-hero{min-height:0;grid-template-columns:1fr;padding:54px 7% 32px;background-position:58% center}.portal-status{width:100%;max-width:500px;margin-top:10px}.portal-grid.wrap{grid-template-columns:1fr;padding-top:18px}.portal-card-world,.portal-gallery-card{grid-column:auto}.portal-card-world{min-height:300px}.portal-card{min-height:230px}.portal-card-copy{padding:20px}.portal-tools.wrap{padding-inline:7%}.updates-section.wrap{padding-top:35px}.screenshots.wrap{padding-top:25px}}
@media(prefers-reduced-motion:reduce){.portal-card>img{transition:none}}

/* Updates (web/js/site-updates.js): newest releases first; a light circles the latest one. */
.updates-section{border-top:1px solid var(--line)}
.updates-now{color:var(--aqua)!important;font-size:13px!important;letter-spacing:.02em}
.updates-list{display:grid;gap:18px;margin-top:30px}
.update-entry{border:1px solid var(--line);background:var(--panel);padding:22px 26px;border-radius:3px}
.update-entry header{display:flex;flex-wrap:wrap;align-items:center;gap:4px 14px}
.update-entry h3{margin:0;font-size:22px;display:flex;align-items:center;gap:10px}
.update-meta{flex-basis:100%;margin:2px 0 0;font-size:12px;color:var(--muted)}
.update-entry ul{margin:14px 0 0;padding-inline-start:20px;color:var(--muted);font-size:14px;line-height:1.75}
.update-entry li+li{margin-top:6px}
.update-entry code{font:12px/1.4 Consolas,'DejaVu Sans Mono',monospace;color:var(--text);background:#0a151c;padding:1px 5px;border-radius:3px}
.update-entry details{margin-top:10px}.update-entry summary{cursor:pointer;color:var(--gold);font-size:13px}
.update-newest{border-color:#8e7953;background:radial-gradient(ellipse at 0 0,#a7823a1f,transparent 60%),var(--panel)}
.update-badge{font:700 10px/1 Arial,sans-serif;letter-spacing:2px;text-transform:uppercase;color:#111a21;background:var(--gold);padding:5px 8px;border-radius:2px}
.update-light{position:relative;width:22px;height:22px;flex:none;border-radius:50%;border:1px solid #e6c58055;box-shadow:inset 0 0 8px #e6c58033}
.update-light>span{position:absolute;inset:-1px;border-radius:50%;animation:update-orbit 2.4s linear infinite}
.update-light>span:after{content:"";position:absolute;top:-3px;left:50%;width:7px;height:7px;margin-left:-3.5px;border-radius:50%;background:#fff4d2;box-shadow:0 0 6px 2px #e6c580,0 0 14px 4px #e6c58088}
.update-light:before{content:"";position:absolute;inset:6px;border-radius:50%;background:var(--gold);box-shadow:0 0 10px #e6c580aa;animation:update-pulse 2.4s ease-in-out infinite}
@keyframes update-orbit{to{transform:rotate(360deg)}}
@keyframes update-pulse{50%{opacity:.55}}
@media(prefers-reduced-motion:reduce){.update-light>span,.update-light:before{animation:none}}
@media(max-width:620px){.update-entry{padding:18px 16px}.update-entry h3{font-size:19px}}

/* About: source-derived grades and quest totals, with the existing blue/gold palette. */
.about-section{scroll-margin-top:24px}
.about-content{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px;margin:28px 0}
.about-content article{background:var(--panel);border:1px solid var(--line);padding:24px}
.about-section h3{font-size:22px;margin:0 0 12px}
.about-section p{color:var(--muted);line-height:1.8}
.about-grades{width:100%;border-collapse:collapse;margin-top:24px;background:var(--panel)}
.about-grades caption{text-align:start;color:var(--muted);padding:0 0 12px}
.about-grades th,.about-grades td{text-align:start;padding:10px 18px;border-bottom:1px solid var(--line)}
.about-grades tbody th{font-weight:400;color:var(--text)}
.about-grades thead th,.about-grades td{color:var(--gold)}
.about-visitor-total strong{display:block;font:700 42px/1.2 Georgia,serif;color:var(--gold);font-variant-numeric:tabular-nums}

/* Reserve model frames before loading. Only the model turns; the frame never moves. */
.model-viewer{position:relative;display:block;width:100%;max-width:540px;aspect-ratio:3/2;max-height:360px;margin-inline:auto;overflow:hidden;background:#0b1624;border:1px solid #8e795355;isolation:isolate}
.enemy-concept>.model-viewer,.concept-knight>.model-viewer{max-width:240px;aspect-ratio:2/3;padding:0}
.model-placeholder{position:absolute;inset:0;display:grid;place-items:center;padding:24px;text-align:center;font-size:13px;color:var(--muted)}
.model-canvas{position:absolute;inset:0;display:block;width:100%;height:100%;touch-action:pan-y;user-select:none;cursor:grab}
.model-canvas:active{cursor:grabbing}.model-canvas:focus-visible{outline:2px solid var(--aqua);outline-offset:-3px}
.model-live .model-placeholder{display:none}
.model-hint{position:absolute;inset-inline:0;bottom:9px;text-align:center;font-size:11px;color:var(--aqua);pointer-events:none}
@media(max-width:640px){.about-content{grid-template-columns:1fr}.about-content article{padding:18px}.about-grades th,.about-grades td{padding:10px 12px}}

/* Homepage foliage stays in the outer gutter and never captures input. */
.home-page.site-body{--ink:#fff;--text:#171c19;--muted:#46534d;--gold:#805c13;--aqua:#236643;--line:#bec7bf;--panel:#f0f4ef;background:radial-gradient(ellipse at 0 5%,#467d4929,transparent 30%),radial-gradient(ellipse at 100% 14%,#ef8c3529,transparent 26%),linear-gradient(120deg,#fff 15%,#f4f7f2 45%,#eceeed 70%,#fff 95%);color:var(--text)}
.home-page .site-header{background:#ffffffdf;border-bottom-color:#b9c3ba}
.home-page .site-header nav a{color:#151716;text-shadow:none}
.home-page .site-header nav a:hover,.home-page .site-header nav a[aria-current="page"]{color:#805c13}
.home-page .site-header nav a:focus-visible{color:#778078;outline-color:#b18b3d;outline-offset:4px}
.home-page .button{background:#dcae50;border-color:#94702b;color:#161b17;box-shadow:0 3px 20px #b68c3020}
.home-page .button:hover{background:#edbd69;color:#161b17}
.home-page .language-label select{background:#fff;color:#171c19}
.home-page .world-section,.home-page .enemy-concepts,.home-page .concept-gallery{background:#ffffffa6}
.home-page .updates-section{background:linear-gradient(135deg,#eaf2e9,#fff5e9);border-bottom:1px solid #c4cdc3}
.home-page .enemy-concept,.home-page .concept-gallery .concept-knight{background:linear-gradient(135deg,#eef3eb,#fff);border-color:#c0c8bc}
.home-page .concept-label{color:#705523}
.home-page .update-entry code{background:#e0e7df}
.home-page .update-badge{background:#dcae50;color:#171c19}
.home-page .community-count{background:#f2f5ee;border-color:#bbc6b7}
.home-page .free-note strong{color:#286237}
.home-page .status-dot{background:#38743f;box-shadow:0 0 10px #79b78e66}
.home-page .site-footer{background:#151c18;color:#d3d9d4;border-top:3px solid #cba55a}
.home-page .site-footer .wordmark,.home-page .site-footer a{color:#e6c580}
.home-page{position:relative;isolation:isolate}
.home-page::before,.home-page::after{content:"";position:absolute;top:0;bottom:0;width:clamp(14px,4vw,64px);background:url('../media/site-vines.svg') repeat-y left top / 100% auto;pointer-events:none;z-index:-1;opacity:.8}
.home-page::before{left:0}.home-page::after{right:0;transform:scaleX(-1)}
.home-page .site-header{gap:18px}
.home-page .wordmark{font-size:18px;letter-spacing:.6px;line-height:1.25;flex-shrink:0;color:var(--gold)}
.home-page .site-header nav{flex-wrap:wrap;gap:10px 18px}
.home-page .hero-brand{margin:0;padding:70px 12px;text-align:center;border-block:1px solid #aa843e77;background:radial-gradient(ellipse,#d8e7d2aa,transparent 70%)}
.hero-brand-name{display:block;font:700 clamp(36px,5.2vw,80px)/1.2 Georgia,serif;letter-spacing:-2px;color:var(--gold);text-shadow:0 2px 0 #fff,0 0 35px #e6c58025}
.hero-brand-version{display:block;margin-top:18px;font:20px/1.4 Georgia,serif;color:var(--muted);letter-spacing:3px}
@media(max-width:1200px){.home-page .site-header{flex-wrap:wrap}.home-page .site-header nav{order:3;width:100%;justify-content:center}.home-page .language-label{margin-inline-start:auto}}
@media(max-width:640px){.home-page .wordmark{font-size:15px;max-width:100%;flex-shrink:1}.home-page .site-header{gap:12px}.home-page .hero-brand{padding:36px 8px}.hero-brand-name{font-size:clamp(32px,9vw,52px);letter-spacing:-1px}.hero-brand-version{font-size:16px}.home-page .site-footer .wordmark{font-size:17px}}

/* Website Grade 5: royal-blue shaded typography with a fine black edge on every site surface.
   Light cards use a darker blue; the hero, game panels and footer switch to a brighter blue for contrast. */
.site-body{--site-royal-ink:#a9c4ff;--site-ink-edge:#02050b}
.site-body :where(h1,h2,h3,h4,h5,h6,p,a,span,li,dt,dd,th,td,label,button,strong,em,small,summary,figcaption,caption,legend,output,time,blockquote){
  color:var(--site-royal-ink)!important;
  -webkit-text-stroke:.35px var(--site-ink-edge);
  text-shadow:0 1px 1px #0008;
}
.site-body :where(input,textarea,select)::placeholder{color:var(--site-royal-ink);-webkit-text-stroke:.25px var(--site-ink-edge);opacity:.84}
.site-body :where(input,textarea,select){color:var(--site-royal-ink);-webkit-text-stroke:.25px var(--site-ink-edge)}
.home-page.site-body{--site-royal-ink:#2455ad;--site-ink-edge:#02050b}
.home-page :where(.portal-hero,.portal-status,.portal-card,.updates-section,.update-entry,.enemy-concept,.concept-knight,.site-footer){--site-royal-ink:#a9c4ff}
.home-page :where(.site-header,.portal-tools,.world-section,.about-content article,#development-status,.screenshots,.concept-gallery){--site-royal-ink:#2455ad}
.site-body :where(a,button,summary){text-decoration-color:currentColor}
.site-body :where(a,button):focus-visible{outline:2px solid #2455ad;outline-offset:3px}
.home-page :where(.portal-hero,.portal-status,.portal-card,.updates-section,.update-entry,.enemy-concept,.concept-knight,.site-footer) :where(a,button):focus-visible{outline-color:#a9c4ff}

/* Website Grade 4: high-contrast reading cards use black type on a warm light surface. */
.home-page .about-content article,
.home-page #development-status{background:#f3f0e8;color:#000;border:1px solid #c8b98f;border-radius:4px;padding:clamp(18px,2.4vw,30px)}
.home-page .about-content article h3,
.home-page #development-status h3{color:#000}
.home-page .about-content article p,
.home-page #development-status p,
.home-page #development-status .about-grades caption,
.home-page #development-status .about-grades th,
.home-page #development-status .about-grades td{color:#000}
.home-page .about-content article a,
.home-page #development-status a{color:#000;text-decoration:underline;text-underline-offset:2px}
.home-page .about-content article a:hover,
.home-page #development-status a:hover{color:#222}
.home-page #development-status .about-grades{background:#fff;border:1px solid #c8c0ad}
.home-page #development-status .about-grades th,
.home-page #development-status .about-grades td{border-bottom:1px solid #d8d2c4}
.home-page #development-status .about-grades thead th{color:#111}

/* Website Grade 6: a skip link to the page's main content (hidden until focused), the "new version is live" reload
   notice and the time of the last live-status check. Both notices use the Grade 4 light surface with the Grade 5 dark
   royal-blue type so they stay readable over any section. */
.site-body .skip-link{position:absolute;left:12px;top:-60px;z-index:1000;background:#f3f0e8;border:2px solid #2455ad;border-radius:4px;padding:10px 16px;font-weight:700;--site-royal-ink:#2455ad}
.site-body .skip-link:focus,.site-body .skip-link:focus-visible{top:12px}
.site-body main:focus{outline:none}
.site-body .site-update-notice{position:sticky;top:0;z-index:900;display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:12px 18px;padding:10px 16px;background:#f3f0e8;border-bottom:2px solid #2455ad;--site-royal-ink:#2455ad}
.site-body .site-update-notice .button{padding:8px 18px;font-size:14px}
.portal-status .portal-checked{margin:10px 0 0;font-size:12px;opacity:.85}
/* 4.60 Website Grade 8: keyboard, motion and system contrast preferences. */
.site-body :is(a,button,input,select,textarea):focus-visible{outline:3px solid #ffca28;outline-offset:4px;box-shadow:0 0 0 6px #102b5c}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto!important}.site-body *, .site-body *::before,.site-body *::after{animation:none!important;transition:none!important}}
@media(forced-colors:active){.site-body{color:CanvasText!important;background:Canvas!important}.site-body *{text-shadow:none!important;-webkit-text-stroke:0!important}.site-body a{color:LinkText!important}.site-body :is(a,button,input,select,textarea):focus-visible{outline:3px solid Highlight;box-shadow:none}.site-body :is(.button,.portal-card,.feature-card){border:1px solid CanvasText!important}}
