:root{font-family:system-ui,-apple-system,'Segoe UI',sans-serif;color:#20362d;background:#f4f1e7;font-synthesis:none;text-rendering:optimizeLegibility;--green:#184c3b;--deep:#13392e;--red:#8a3c32;--gold:#c99b52;--paper:#fbf9f2;--line:#e5dece;--muted:#68786f;--shadow:0 12px 32px rgba(36,54,43,.08)}
*{box-sizing:border-box}body{margin:0;min-width:320px;min-height:100vh;background:radial-gradient(ellipse at 92% 6%,rgba(201,155,82,.14),transparent 28rem),#f4f1e7}a{color:inherit}.app-shell{min-height:100vh;display:flex;flex-direction:column}.topbar{position:sticky;top:0;z-index:5;display:flex;align-items:center;gap:2rem;padding:12px max(24px,calc((100vw - 1320px)/2));background:rgba(251,249,242,.94);backdrop-filter:blur(14px);border-bottom:1px solid rgba(229,222,206,.9)}.brand{text-decoration:none;display:flex;align-items:center;gap:10px;color:var(--green);min-width:210px}.brand-mark{width:42px;height:42px;display:grid;place-items:center;border-radius:50%;background:var(--green);color:#f6e8c8;font:700 24px 'Noto Serif',serif;border:1px solid var(--gold);outline:2px solid rgba(201,155,82,.24);outline-offset:2px}.brand strong,.brand small{display:block;letter-spacing:.12em}.brand strong{font-size:13px}.brand small{font-size:10px;color:#8c6840;margin-top:2px}.topnav{display:flex;gap:8px;flex:1}.topnav a,.account-button{padding:10px 14px;border-radius:999px;text-decoration:none;font-size:13px;font-weight:600;color:#52665b}.topnav a:hover,.topnav a:focus-visible{background:#e9eee8;color:var(--green)}.topbar-account{margin-left:auto}.account-button{border:1px solid #ccd5ca;background:transparent;cursor:pointer;color:var(--green);font-family:inherit}.account-button:hover{background:var(--green);color:white}.main-content{width:min(1320px,100%);margin:0 auto;padding:34px 28px 48px;flex:1}.content-grid{display:grid;grid-template-columns:minmax(0,1fr) 310px;gap:22px;align-items:start}.primary-content,.side-column{min-width:0}.side-column{display:grid;gap:16px}.world-intro{position:relative;overflow:hidden;min-height:240px;padding:38px 44px;border-radius:24px;color:#f8f2e4;background:linear-gradient(112deg,rgba(13,48,38,.97),rgba(24,76,59,.91) 56%,rgba(61,94,69,.88)),radial-gradient(circle at 78% 40%,rgba(206,174,112,.5),transparent 11rem);box-shadow:var(--shadow)}.world-intro:after{content:'';position:absolute;inset:16px;border:1px solid rgba(224,192,128,.34);border-radius:17px;pointer-events:none}.world-copy{position:relative;z-index:1;max-width:690px}.eyebrow{margin:0 0 10px;color:#a37a43;font-size:10px;letter-spacing:.16em;font-weight:700}.world-intro .eyebrow{color:#dfc486}.world-intro h1{margin:0;font:700 clamp(34px,5vw,56px)/1.08 'Noto Serif',serif;letter-spacing:.04em}.world-intro p:not(.eyebrow){max-width:580px;color:#e4e9df;line-height:1.7;font-size:14px}.world-legend{display:flex;flex-wrap:wrap;gap:20px;margin-top:24px;font-size:11px;color:#f1eadb}.world-legend span{display:flex;align-items:center;gap:8px}.legend-dot{width:8px;height:8px;border-radius:50%}.legend-dot-live{background:#dfc486}.legend-dot-next{background:#b9c6bd}.world-seal{position:absolute;right:6%;top:50%;transform:translateY(-50%);width:128px;height:128px;border:1px solid rgba(224,192,128,.6);outline:1px solid rgba(224,192,128,.28);outline-offset:8px;border-radius:50%;display:grid;place-content:center;text-align:center;color:#e7ce96}.world-seal span{font:600 54px 'Noto Serif',serif}.world-seal small{font-size:8px;letter-spacing:.18em}.map-section{margin-top:28px}.section-heading{display:flex;justify-content:space-between;align-items:end;gap:12px;margin-bottom:15px}.section-heading h2,.card h2{font:600 22px 'Noto Serif',serif;color:#203d30;margin:0}.map-caption,.muted{color:var(--muted);font-size:12px;line-height:1.65}.place-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.place-card,.card{background:var(--paper);border:1px solid var(--line);border-radius:18px;box-shadow:0 5px 20px rgba(36,54,43,.035)}.place-card{padding:20px 20px 18px;min-height:220px;display:flex;flex-direction:column;transition:transform .18s ease,box-shadow .18s ease}.place-card:hover{transform:translateY(-2px);box-shadow:var(--shadow)}.place-planned,.place-locked{background:rgba(251,249,242,.62);border-style:dashed;box-shadow:none}.place-top{display:flex;justify-content:space-between;align-items:center}.place-emblem{width:42px;height:42px;border-radius:13px;background:#eaf0e9;color:var(--green);display:grid;place-items:center;font:600 23px 'Noto Serif',serif}.place-planned .place-emblem,.place-locked .place-emblem{background:#eeece5;color:#8c8d81}.tag{font-size:9px;letter-spacing:.04em;font-weight:700;padding:6px 9px;border-radius:999px}.tag-live{background:#e3eee6;color:#34634d}.tag-muted{background:#efeee8;color:#77796f}.place-area{font-size:10px;letter-spacing:.06em;color:#a07842;margin:16px 0 5px}.place-card h3{font:600 17px 'Noto Serif',serif;margin:0;color:#263e32}.place-description{font-size:11px;line-height:1.55;color:#69766d;margin:7px 0 15px;min-height:35px}.place-action{font-size:11px;color:var(--green);text-decoration:none;font-weight:700;margin-top:auto}.place-action:hover{text-decoration:underline}.place-action-disabled{color:#8e9287}.card{padding:20px}.profile-row{display:flex;align-items:center;gap:12px;margin-top:16px}.avatar{width:46px;height:46px;object-fit:cover;border-radius:50%;border:2px solid #d4c39e}.avatar-fallback{display:grid;place-items:center;background:#e8eee7;color:var(--green);font-size:21px}.profile-card h2{font-size:16px}.profile-row p{font-size:11px;color:var(--muted);margin:5px 0}.profile-note{font-size:10px;color:#748078;margin:15px 0 0;line-height:1.5}.learning-note h2{font-size:17px}.learning-note p:not(.eyebrow){font-size:11px;line-height:1.65;color:var(--muted)}.notice{padding:12px 15px;border:1px solid #d7dfd5;border-radius:12px;background:#eff4ee;color:#315c45;font-size:12px;margin-bottom:16px}.notice-error{border-color:#e6c6c0;background:#fbefec;color:#793a31}.skill-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px;margin-top:18px}.skill-item{display:grid;gap:8px;padding:12px;border:1px solid var(--line);border-radius:12px;font-size:10px;color:#43564a}.skill-empty{font-size:9px;color:#888d84}.footer{display:flex;justify-content:space-between;padding:16px max(28px,calc((100vw - 1320px)/2));border-top:1px solid var(--line);font-size:10px;color:#778077}.footer a{text-decoration:none}.footer a:hover{text-decoration:underline}
@media(max-width:900px){.content-grid{grid-template-columns:minmax(0,1fr) 260px}.topbar{gap:1rem}.brand{min-width:160px}.main-content{padding:24px 18px 36px}.place-card{padding:17px;min-height:215px}}
@media(max-width:680px){.topbar{position:static;flex-wrap:wrap;padding:12px 16px;gap:8px}.brand{min-width:0;flex:1}.topnav{order:3;flex-basis:100%;overflow-x:auto;gap:2px}.topnav a{white-space:nowrap;padding:8px 10px;font-size:11px}.topbar-account{margin:0}.main-content{padding:18px 14px 30px}.content-grid{grid-template-columns:1fr;gap:15px}.side-column{grid-template-columns:1fr 1fr}.world-intro{min-height:225px;padding:28px 24px;border-radius:20px}.world-intro:after{inset:10px;border-radius:14px}.world-seal{right:8%;top:24%;width:68px;height:68px;opacity:.6}.world-seal span{font-size:30px}.world-seal small{font-size:6px}.world-copy{max-width:85%}.world-intro h1{font-size:34px}.world-intro p:not(.eyebrow){font-size:12px}.world-legend{font-size:9px;gap:10px}.place-grid{grid-template-columns:1fr}.place-card{min-height:195px}.section-heading{align-items:start;flex-direction:column}.skill-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.footer{padding:14px;gap:8px;flex-wrap:wrap}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;transition:none!important}}


/* G3 Game Hub introduction: keep the title, summary, and seal within narrow screens. */
@media(max-width:680px){
  .world-intro{min-height:0;padding:26px 22px 28px}
  .world-copy{max-width:100%;padding-right:66px}
  .world-intro h1{font-size:clamp(25px,7vw,34px);line-height:1.12;letter-spacing:.01em;overflow-wrap:anywhere}
  .world-intro p:not(.eyebrow){max-width:100%;overflow-wrap:anywhere}
  .world-seal{top:26px;right:18px;transform:none;width:54px;height:54px;opacity:.42}
  .world-seal span{font-size:27px}
  .world-seal small{font-size:5px}
}


/* Keep location cards and the seal from crowding the intro at tablet widths. */
@media(max-width:900px){
  .content-grid{grid-template-columns:1fr}
  .side-column{grid-template-columns:repeat(2,minmax(0,1fr))}
  .world-copy{max-width:100%;padding-right:145px}
  .world-intro h1{font-size:clamp(28px,4vw,42px);line-height:1.12;letter-spacing:.02em;overflow-wrap:anywhere}
  .world-intro p:not(.eyebrow){max-width:100%;overflow-wrap:anywhere}
  .place-grid{grid-template-columns:1fr}
}


.garden-runtime-shell{display:grid;gap:16px}.garden-runtime-shell h1{margin:0;color:var(--green);font:600 clamp(26px,3vw,38px)/1.15 'Noto Serif',serif}.garden-runtime-shell>p:not(.eyebrow){max-width:760px;line-height:1.65;color:#52645a;font-size:14px}
.garden-continuation-seal{width:46px;height:46px;display:grid;place-items:center;border:1px solid #bd9a5b;border-radius:50%;color:#8d6c36;font:600 23px 'Noto Serif',serif;flex:none}

.place-action-button{display:inline-flex;align-self:flex-start;padding:0;border:0;background:transparent;font:inherit;text-align:left;cursor:pointer}.place-action-button:hover{text-decoration:underline}

.access-gate{min-height:100vh;display:grid;place-items:center;padding:24px}.access-gate-card{width:min(520px,100%);padding:36px;border:1px solid var(--line);border-radius:24px;background:var(--paper);box-shadow:var(--shadow)}.access-gate-card h1{margin:.25rem 0 1rem;color:var(--green);font-size:clamp(1.6rem,4vw,2.2rem)}.access-gate-card p:not(.eyebrow){color:var(--muted);line-height:1.65}.access-gate-action{margin-top:24px}
