:root {
  color-scheme: dark;
  --bg: #100d09;
  --bg-soft: #17110c;
  --wood: #24170e;
  --wood-light: #3a2818;
  --panel: #211c15;
  --panel-soft: #292218;
  --gold: #c99a4b;
  --gold-light: #e4bd75;
  --cream: #e7d7b7;
  --text: #f4ead7;
  --muted: #b7aa94;
  --green: #4f7f2b;
  --green-light: #79ad45;
  --blue: #2f677a;
  --success: #62a846;
  --warning: #d89b3c;
  --danger: #c84b3e;
  --border: rgba(201, 154, 75, .34);
  --shadow: 0 18px 42px rgba(0, 0, 0, .34);
  --radius: 14px;
  --sidebar: 264px;
  --sans: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  --serif: Georgia, "Times New Roman", serif;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; min-width: 320px; background: radial-gradient(circle at 70% 0, #282015 0, var(--bg) 38rem); color: var(--text); font-family: var(--sans); line-height: 1.55; }
a { color: var(--gold-light); text-decoration-thickness: .08em; text-underline-offset: .2em; }
a:hover { color: #fff2cf; }
button, input, textarea { font: inherit; }
button, a { -webkit-tap-highlight-color: transparent; }
img { max-width: 100%; }
h1, h2, h3, p { overflow-wrap: anywhere; }
h1, h2, h3 { font-family: var(--serif); line-height: 1.16; color: var(--text); }
h1 { font-size: clamp(2.1rem, 4.4vw, 4.7rem); margin: 0 0 1rem; }
h2 { font-size: clamp(1.45rem, 2.2vw, 2.2rem); margin: 0 0 .8rem; }
h3 { font-size: 1.16rem; margin: 0 0 .45rem; }
p { margin: 0 0 1rem; }
small { color: var(--muted); }

.skip-link { position: fixed; left: 1rem; top: 1rem; z-index: 1000; padding: .8rem 1rem; transform: translateY(-160%); background: var(--text); color: #111; border-radius: .5rem; }
.skip-link:focus { transform: translateY(0); }
.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0; }
.desktop-only { display: inline; }

.site-shell { min-height: 100vh; display: grid; grid-template-columns: var(--sidebar) minmax(0, 1fr); }
.sidebar { position: sticky; top: 0; height: 100vh; z-index: 50; display: flex; flex-direction: column; overflow-y: auto; background:
  linear-gradient(90deg, rgba(255,255,255,.025), transparent 14%, transparent 85%, rgba(0,0,0,.36)),
  repeating-linear-gradient(0deg, transparent 0 28px, rgba(255,255,255,.018) 29px 30px),
  linear-gradient(180deg, #2b1c11, #160f0a 70%);
  border-right: 1px solid rgba(201,154,75,.42); box-shadow: 9px 0 26px rgba(0,0,0,.36); }
.brand { display: grid; place-items: center; min-height: 138px; padding: .9rem 1rem .65rem; border-bottom: 1px solid var(--border); background: radial-gradient(circle at 50% 15%, rgba(201,154,75,.12), transparent 55%); }
.brand img { width: 216px; max-height: 118px; object-fit: contain; filter: drop-shadow(0 7px 8px rgba(0,0,0,.5)); }
.main-nav, .quick-actions { padding: 1.2rem .9rem 0; }
.nav-label { margin: 0 .65rem .55rem; color: var(--gold); font-size: .68rem; font-weight: 800; letter-spacing: .16em; text-transform: uppercase; }
.main-nav a { display: flex; align-items: center; gap: .7rem; min-height: 41px; padding: .55rem .75rem; border: 1px solid transparent; border-radius: 8px; color: var(--cream); text-decoration: none; font-size: .93rem; }
.main-nav a span { width: 1.2rem; color: var(--gold-light); text-align: center; }
.main-nav a:hover, .main-nav a[aria-current="page"] { background: linear-gradient(90deg, rgba(111,75,39,.72), rgba(74,48,27,.44)); border-color: rgba(201,154,75,.32); color: #fff; }
.quick-actions { margin-top: .6rem; border-top: 1px solid var(--border); padding-top: 1rem; }
.quick { display: flex; align-items: center; gap: .75rem; margin: .25rem 0; padding: .6rem .65rem; color: var(--cream); text-decoration: none; border-radius: 8px; }
.quick:hover { background: rgba(201,154,75,.09); }
.quick > span:first-child { display: grid; place-items: center; width: 29px; height: 29px; border-radius: 8px; background: rgba(201,154,75,.17); border: 1px solid rgba(201,154,75,.28); }
.quick small { display: block; font-size: .68rem; }
.world-link > span:first-child { background: rgba(79,127,43,.32); border-color: rgba(121,173,69,.48); }
.sidebar-status { margin: auto .9rem 1rem; display: flex; align-items: center; gap: .7rem; padding: .8rem; border: 1px solid var(--border); border-radius: 10px; background: rgba(10,8,6,.42); }
.sidebar-status strong, .sidebar-status small { display: block; }
.status-dot { flex: 0 0 auto; width: .62rem; height: .62rem; border-radius: 50%; background: var(--success); box-shadow: 0 0 0 4px rgba(98,168,70,.12), 0 0 12px rgba(98,168,70,.65); }

.site-main { min-width: 0; }
.topbar { position: sticky; top: 0; z-index: 40; height: 58px; display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: 0 clamp(1rem,3vw,2.4rem); border-bottom: 1px solid rgba(201,154,75,.2); background: rgba(16,13,9,.92); backdrop-filter: blur(16px); }
.topbar-context { display: flex; align-items: center; gap: 1rem; color: var(--muted); font-size: .88rem; }
.topbar-actions { display: flex; align-items: center; gap: .85rem; }
.topbar-actions > a:not(.button) { color: var(--muted); text-decoration: none; }
.menu-toggle { display: none; border: 0; background: transparent; color: var(--text); font-size: 1.45rem; cursor: pointer; }
.eyebrow { margin: 0 0 .48rem; color: var(--gold-light); font-size: .7rem; font-weight: 800; letter-spacing: .15em; text-transform: uppercase; }
.content-width { width: min(1240px, calc(100% - clamp(2rem, 6vw, 5rem))); margin-inline: auto; }

.button { display: inline-flex; align-items: center; justify-content: center; min-height: 44px; padding: .72rem 1.15rem; border: 1px solid transparent; border-radius: 8px; font-weight: 750; color: #fff; text-decoration: none; cursor: pointer; transition: transform .18s ease, filter .18s ease, border-color .18s ease; }
.button:hover { color: #fff; transform: translateY(-1px); filter: brightness(1.08); }
.button:focus-visible, a:focus-visible, button:focus-visible, input:focus-visible, textarea:focus-visible, summary:focus-visible { outline: 3px solid #f5cc73; outline-offset: 3px; }
.button-primary { background: linear-gradient(#648f3f, #456f27); border-color: #81ad54; box-shadow: inset 0 1px rgba(255,255,255,.18); }
.button-gold { background: linear-gradient(#95703b, #715126); border-color: #c69a54; }
.button-blue { background: linear-gradient(#3f7588, #285769); border-color: #568b9e; }
.button-ghost { background: rgba(255,255,255,.035); border-color: var(--border); color: var(--cream); }
.button-danger { background: rgba(200,75,62,.15); border-color: rgba(200,75,62,.55); color: #ffb6ae; }
.button-disabled { background: #39342e; border-color: #5a5147; color: #a9a093; cursor: not-allowed; }
.button-disabled:hover { transform: none; filter: none; }
.button-small { min-height: 35px; padding: .45rem .75rem; font-size: .82rem; }
.button-full { width: 100%; }
.button-row { display: flex; flex-wrap: wrap; gap: .75rem; }

.home-hero { position: relative; min-height: 520px; isolation: isolate; overflow: hidden; display: grid; place-items: center; padding: 4rem clamp(1.25rem,5vw,5rem) 5rem; border-bottom: 1px solid rgba(201,154,75,.35); background:
  linear-gradient(180deg, rgba(9,7,5,.05), rgba(9,7,5,.28) 50%, #17110c 100%),
  radial-gradient(circle at 52% 22%, #ffe2a1 0 2%, #d49750 3%, rgba(212,151,80,.28) 12%, transparent 31%),
  linear-gradient(180deg, #567184 0 24%, #866c51 48%, #2e321f 49%, #12100c 100%); }
.home-hero__texture { position: absolute; inset: 0; z-index: -1; opacity: .24; background: repeating-linear-gradient(120deg, transparent 0 4px, rgba(255,255,255,.04) 5px, transparent 6px 12px); mix-blend-mode: soft-light; }
.home-hero__village { position: absolute; inset: auto 0 0; height: 63%; z-index: -1; background:
  linear-gradient(120deg, transparent 0 10%, #1a1b12 10.2% 20%, transparent 20.2%),
  linear-gradient(240deg, transparent 0 12%, #202316 12.2% 23%, transparent 23.2% 100%),
  linear-gradient(180deg, transparent 0 69%, #172014 70% 100%); opacity: .96; }
.house, .tower, .tree { position: absolute; bottom: 8%; display: block; background: #1c1710; filter: drop-shadow(0 7px 7px rgba(0,0,0,.6)); }
.house::before { content: ""; position: absolute; left: -12%; top: -42%; width: 124%; height: 48%; background: #20170f; clip-path: polygon(50% 0, 100% 100%, 0 100%); }
.house::after { content: ""; position: absolute; inset: 22% 18%; background: repeating-linear-gradient(90deg, #d69a4c 0 8%, #2d1c10 9% 48%); opacity: .78; }
.house-a { left: 9%; width: 170px; height: 165px; }
.house-b { right: 11%; width: 210px; height: 190px; }
.tower { left: 27%; width: 55px; height: 245px; border-radius: 5px 5px 0 0; }
.tower::before { content: ""; position: absolute; left: -25%; top: -22%; width: 150%; height: 24%; background: #18120d; clip-path: polygon(50% 0, 100% 100%, 0 100%); }
.tree { width: 120px; height: 200px; background: radial-gradient(ellipse at 50% 35%, #1e311b 0 45%, transparent 47%), linear-gradient(90deg, transparent 44%, #21170e 45% 55%, transparent 56%); }
.tree-a { left: 42%; bottom: 3%; }
.tree-b { right: 34%; bottom: 1%; transform: scale(.82); }
.home-hero__content { width: min(880px, 100%); text-align: center; text-shadow: 0 3px 16px rgba(0,0,0,.8); }
.home-hero__content h1 { font-size: clamp(2.2rem,4.8vw,4.3rem); }
.home-hero__content > p:not(.eyebrow) { max-width: 760px; margin: 0 auto 1.7rem; font-size: clamp(1rem,1.6vw,1.28rem); color: #fff2d7; }
.home-hero__content .button-row { justify-content: center; }
.hero-status { position: absolute; right: 2rem; bottom: 1.6rem; display: flex; align-items: center; gap: .75rem; padding: .8rem 1rem; border: 1px solid var(--border); border-radius: 10px; background: rgba(18,13,9,.78); backdrop-filter: blur(10px); }
.hero-status strong, .hero-status small { display: block; }

.portal-overview { padding-block: clamp(3rem,6vw,5.5rem); }
.section-heading { display: flex; align-items: end; justify-content: space-between; gap: 2rem; margin-bottom: 1.6rem; }
.section-heading > p { max-width: 540px; color: var(--muted); }
.dashboard-grid { display: grid; grid-template-columns: 1.1fr 1fr .75fr; gap: 1rem; }
.panel { background: linear-gradient(145deg, rgba(43,36,25,.96), rgba(27,23,18,.97)); border: 1px solid var(--border); border-radius: var(--radius); box-shadow: var(--shadow); }
.panel-news, .panel-events, .panel-welcome, .panel-map, .panel-quote, .panel-phase { padding: 1.15rem; }
.panel-heading { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding-bottom: .8rem; border-bottom: 1px solid rgba(201,154,75,.22); }
.panel-heading h2 { margin-bottom: 0; font-size: 1.32rem; }
.panel-heading a { font-size: .78rem; }
.news-list { display: grid; }
.news-row { display: grid; grid-template-columns: 70px 1fr; gap: .85rem; padding: 1rem 0; border-bottom: 1px solid rgba(255,255,255,.07); }
.news-row:last-child { border-bottom: 0; }
.news-row h3 { font-family: var(--sans); font-size: 1rem; }
.news-row p:last-child { margin: 0; color: var(--muted); font-size: .83rem; }
.news-mark { display: grid; place-items: center; min-height: 64px; border-radius: 8px; background: radial-gradient(circle at 45% 30%, #d5a75e, transparent 16%), linear-gradient(140deg,#24472c,#8a6235 55%,#342216); overflow: hidden; }
.news-mark span { width: 38px; height: 30px; background: #1b2116; clip-path: polygon(0 55%,30% 20%,52% 48%,75% 8%,100% 60%,100% 100%,0 100%); }
.meta { margin-bottom: .25rem; color: var(--gold-light); font-size: .69rem; font-weight: 700; letter-spacing: .04em; text-transform: uppercase; }
.compact-events article { display: grid; grid-template-columns: 76px 1fr; gap: .8rem; padding: 1rem 0; border-bottom: 1px solid rgba(255,255,255,.07); }
.compact-events article:last-child { border-bottom: 0; }
.compact-events time strong, .compact-events time span { display: block; }
.compact-events time strong { font-size: 1.1rem; color: var(--gold-light); }
.compact-events time span, .compact-events p { color: var(--muted); font-size: .78rem; }
.compact-events h3 { font-family: var(--sans); font-size: .98rem; }
.panel-welcome { background: radial-gradient(circle at 50% 0, rgba(79,127,43,.24), transparent 42%), linear-gradient(145deg,#2a2419,#1a1712); }
.crest { display: grid; place-items: center; width: 68px; height: 68px; margin-bottom: .85rem; border: 2px solid var(--gold); border-radius: 50% 50% 44% 44%; color: var(--gold-light); font-family: var(--serif); font-weight: 800; background: radial-gradient(circle,#385425,#182014); box-shadow: inset 0 0 0 4px rgba(0,0,0,.32), 0 9px 24px rgba(0,0,0,.4); }
.steps { list-style: none; padding: 0; margin: 1rem 0; display: grid; gap: .85rem; }
.steps li { display: flex; align-items: center; gap: .65rem; }
.steps li > span { display: grid; place-items: center; width: 28px; height: 28px; border: 1px solid rgba(201,154,75,.46); border-radius: 50%; color: var(--gold-light); font-size: .76rem; }
.steps strong, .steps small { display: block; }
.panel-map { grid-column: 1 / 3; display: grid; grid-template-columns: 1.35fr .8fr; gap: 1.25rem; }
.map-visual { position: relative; min-height: 280px; overflow: hidden; border-radius: 10px; background:
  linear-gradient(118deg, transparent 0 18%, rgba(202,182,127,.28) 18.5% 21%, transparent 21.5% 50%, rgba(202,182,127,.2) 50.5% 53%, transparent 53.5%),
  radial-gradient(ellipse at 65% 72%,#1d5462 0 19%,transparent 20%),
  radial-gradient(circle at 35% 38%,#476c3a 0 16%,transparent 17%),
  linear-gradient(135deg,#263e2e,#796942 52%,#3d5134); }
.map-visual::after { content: ""; position: absolute; inset: 0; background: repeating-linear-gradient(25deg, transparent 0 21px, rgba(255,255,255,.02) 22px 23px); }
.map-pin { position: absolute; z-index: 2; width: 20px; height: 20px; border: 3px solid #fff; border-radius: 50% 50% 50% 0; background: var(--green); transform: rotate(-45deg); box-shadow: 0 4px 10px rgba(0,0,0,.5); }
.pin-greenfield { left: 34%; top: 37%; }.pin-seaside { right: 18%; top: 55%; background: var(--blue); }.pin-oldtown { left: 52%; bottom: 24%; background: #77539a; }.pin-bergheim { left: 19%; top: 20%; background: var(--warning); }
.map-copy { align-self: center; }
.region-chips { display: flex; flex-wrap: wrap; gap: .45rem; margin: 1rem 0; }
.region-chips > span { display: inline-flex; align-items: center; gap: .4rem; padding: .35rem .5rem; border-radius: 100px; background: rgba(255,255,255,.05); font-size: .72rem; }
.status { display: inline-block; width: .55rem; height: .55rem; border-radius: 50%; background: #777; }
.status-online { background: var(--success); box-shadow: 0 0 8px rgba(98,168,70,.62); }
.status-vorbereitung { background: var(--warning); }
.panel-quote blockquote { margin: 1.4rem 0 1rem; font-family: var(--serif); font-size: 1.25rem; text-align: center; }
.panel-quote cite { display: block; text-align: center; color: var(--muted); }
.panel-phase .progress { height: 8px; margin: 1rem 0; overflow: hidden; background: #0f0d0a; border-radius: 100px; }
.panel-phase .progress span { display: block; height: 100%; background: linear-gradient(90deg,var(--green),var(--green-light)); }
.progress-complete { width: 100%; }
.home-cta { border-top: 1px solid var(--border); border-bottom: 1px solid var(--border); background: radial-gradient(circle at 15% 50%, rgba(79,127,43,.22), transparent 35%), linear-gradient(90deg,#18140f,#241b12); }
.home-cta__inner { min-height: 250px; display: flex; align-items: center; justify-content: space-between; gap: 2rem; padding-block: 2rem; }
.home-cta__inner p { color: var(--muted); }

.page-hero { position: relative; overflow: hidden; min-height: 270px; display: flex; align-items: center; border-bottom: 1px solid var(--border); background:
  linear-gradient(90deg, rgba(9,7,5,.68), rgba(9,7,5,.3)),
  radial-gradient(circle at 74% 30%, rgba(201,154,75,.32), transparent 22%),
  linear-gradient(135deg,#233325,#684d2d 55%,#1b1610); }
.page-hero::after { content: ""; position: absolute; right: 7%; bottom: 0; width: 320px; height: 210px; opacity: .5; background: linear-gradient(120deg,transparent 0 34%,#14110c 35% 70%,transparent 71%), linear-gradient(240deg,transparent 0 37%,#1b1710 38% 68%,transparent 69%); clip-path: polygon(0 100%, 10% 52%, 25% 67%, 39% 28%, 53% 55%, 72% 18%, 100% 100%); }
.page-hero__glow { position: absolute; inset: 0; background: repeating-linear-gradient(110deg, transparent 0 9px, rgba(255,255,255,.014) 10px); }
.page-hero__content { position: relative; z-index: 2; padding-block: 3.5rem; }
.page-hero__content h1 { font-size: clamp(2.4rem,5vw,4.7rem); }
.page-hero__content > p:last-child { max-width: 700px; color: #f1e2c8; font-size: 1.08rem; }
.page-section { padding-block: clamp(2.7rem,5vw,5rem); }
.page-section + .page-section { padding-top: 0; }
.service-grid { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 1rem; }
.service-card { padding: 1.3rem; border: 1px solid var(--border); border-radius: var(--radius); background: linear-gradient(145deg,rgba(43,36,25,.9),rgba(25,21,16,.95)); box-shadow: var(--shadow); }
.service-card > span:first-child { display: grid; place-items: center; width: 44px; height: 44px; margin-bottom: 1rem; border-radius: 10px; background: rgba(201,154,75,.12); color: var(--gold-light); font-size: 1.35rem; }
.service-card p { color: var(--muted); }
.badge { display: inline-flex; align-items: center; min-height: 26px; padding: .25rem .55rem; border: 1px solid var(--border); border-radius: 100px; color: var(--cream); background: rgba(255,255,255,.04); font-size: .68rem; font-weight: 800; letter-spacing: .04em; text-transform: uppercase; }
.badge-active, .badge-online { border-color: rgba(98,168,70,.5); background: rgba(98,168,70,.13); color: #bfe79d; }
.badge-planned, .badge-vorbereitung { border-color: rgba(216,155,60,.52); background: rgba(216,155,60,.12); color: #f2c987; }
.notice { margin-top: 1.5rem; padding: 1rem 1.1rem; border-left: 4px solid var(--gold); border-radius: 7px; background: rgba(201,154,75,.08); color: var(--cream); }
.notice-info { border-color: var(--blue); background: rgba(47,103,122,.14); }
.notice-warning { border-color: var(--warning); background: rgba(216,155,60,.12); }
.split-section { display: grid; grid-template-columns: 1.3fr .7fr; gap: 2rem; align-items: start; }
.large-steps { list-style: none; margin: 1.4rem 0 0; padding: 0; display: grid; gap: 1rem; }
.large-steps li { display: grid; grid-template-columns: 48px 1fr; gap: .9rem; }
.large-steps li > span { display: grid; place-items: center; width: 42px; height: 42px; border: 1px solid var(--gold); border-radius: 50%; color: var(--gold-light); font-weight: 800; }
.large-steps p { color: var(--muted); }
.official-card { padding: 1.5rem; }

.map-page-layout { display: grid; grid-template-columns: 1fr 290px; gap: 1rem; }
.map-canvas { position: relative; min-height: 540px; overflow: hidden; border: 1px solid var(--border); border-radius: var(--radius); background:
  radial-gradient(ellipse at 82% 76%,#1b5969 0 22%, transparent 23%),
  linear-gradient(145deg,#2b5539,#88764a 48%,#3d5135); box-shadow: var(--shadow); }
.map-grid { position: absolute; inset: 0; background: linear-gradient(rgba(255,255,255,.035) 1px, transparent 1px), linear-gradient(90deg,rgba(255,255,255,.035) 1px, transparent 1px); background-size: 44px 44px; }
.map-coast { position: absolute; right: -8%; bottom: -12%; width: 58%; height: 62%; border-radius: 48% 0 0; background: repeating-radial-gradient(ellipse at 50% 100%,#1f6070 0 17px,#24596a 18px 24px); transform: rotate(-10deg); }
.region-marker { position: absolute; z-index: 3; min-width: 135px; padding: .65rem .75rem; border: 1px solid rgba(255,255,255,.25); border-radius: 10px; background: rgba(22,17,12,.88); color: var(--text); text-decoration: none; box-shadow: 0 10px 20px rgba(0,0,0,.36); }
.region-marker .status { margin-right: .35rem; }.region-marker strong, .region-marker small { display: block; }.region-marker small { margin-left: .95rem; }
.marker-greenfield { left: 36%; top: 40%; }.marker-seaside { right: 8%; bottom: 15%; }.marker-oldtown { left: 18%; bottom: 20%; }.marker-bergheim { left: 12%; top: 12%; }
.map-legend { padding: 1.2rem; align-self: start; position: sticky; top: 78px; }.map-legend p { display: flex; align-items: center; gap: .55rem; }
.muted { color: var(--muted); }
.region-grid { margin-top: 1.2rem; display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 1rem; }
.region-card { overflow: hidden; display: grid; grid-template-columns: 180px 1fr; border: 1px solid var(--border); border-radius: var(--radius); background: var(--panel); box-shadow: var(--shadow); scroll-margin-top: 78px; }
.region-card__visual { display: grid; place-items: end start; min-height: 260px; padding: 1rem; background: linear-gradient(145deg,#355c3c,#876740); }
.region-card__visual span { font-family: var(--serif); font-size: 1.35rem; text-shadow: 0 2px 8px #000; }
.region-theme-greenfield { background: radial-gradient(circle at 70% 30%,#e3b866 0 3%,transparent 4%),linear-gradient(155deg,#345f37,#9b7442 58%,#312419); }
.region-theme-seaside { background: radial-gradient(circle at 30% 22%,#edc977 0 4%,transparent 5%),linear-gradient(160deg,#4e7891 0 38%,#2a6574 39% 62%,#ac8a52 63%); }
.region-theme-oldtown { background: linear-gradient(155deg,#4a3033,#8b633e 53%,#252018); }
.region-theme-bergheim { background: linear-gradient(150deg,#617580,#334c38 46%,#765d3b 47%); }
.region-card__body { padding: 1.2rem; }.card-title-row { display: flex; justify-content: space-between; gap: 1rem; }.region-facts { display: flex; gap: 1.5rem; margin: 1rem 0; }.region-facts div { padding-right: 1.5rem; border-right: 1px solid var(--border); }.region-facts dt { color: var(--muted); font-size: .7rem; text-transform: uppercase; }.region-facts dd { margin: .2rem 0 0; }

.article-grid { display: grid; gap: 1rem; }.article-card { display: grid; grid-template-columns: minmax(190px,.4fr) 1fr; overflow: hidden; border: 1px solid var(--border); border-radius: var(--radius); background: var(--panel); box-shadow: var(--shadow); }.article-card__visual { min-height: 260px; display: grid; place-items: end start; padding: 1rem; background: linear-gradient(145deg,#274c32,#8b663d); }.article-card__visual span { padding: .35rem .5rem; border-radius: 6px; background: rgba(0,0,0,.52); font-size: .72rem; }.article-card__body { padding: 1.5rem; }.article-card__body p { color: var(--muted); }.article-card-featured { border-color: rgba(121,173,69,.45); }.lead-small { font-size: 1.08rem; color: var(--cream) !important; }
.events-page-list { display: grid; gap: .8rem; }.event-detail-card { display: grid; grid-template-columns: 110px 1fr auto; gap: 1.2rem; align-items: center; padding: 1rem 1.2rem; border: 1px solid var(--border); border-radius: var(--radius); background: var(--panel); }.event-detail-card > time { display: grid; place-items: center; padding: .7rem; border-right: 1px solid var(--border); text-align: center; }.event-detail-card > time strong { font-size: 2rem; color: var(--gold-light); }.event-detail-card > time span,.event-detail-card > time small { color: var(--muted); }.event-detail-card p { margin-bottom: .35rem; color: var(--muted); }.event-featured { border-color: rgba(98,168,70,.45); }.event-actions { display: flex; flex-direction: column; gap: .65rem; align-items: end; }.location { color: var(--cream) !important; }
.centered-panel { max-width: 730px; margin: 2rem auto 0; padding: 2rem; text-align: center; }.centered-panel .crest { margin-inline: auto; }.community-card { min-height: 230px; }
.destination-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 1rem; }.destination-card { min-height: 330px; display: flex; align-items: end; padding: 1.4rem; border: 1px solid var(--border); border-radius: var(--radius); box-shadow: var(--shadow); }.destination-card > div { max-width: 430px; padding: 1.1rem; border-radius: 10px; background: rgba(13,10,7,.76); backdrop-filter: blur(10px); }.destination-card p { color: var(--cream); }
.status-banner { display: flex; align-items: center; gap: 1rem; margin-bottom: 2rem; padding: 1.1rem; border: 1px solid rgba(98,168,70,.4); border-radius: var(--radius); background: rgba(98,168,70,.1); }.status-banner p { margin: 0; color: var(--muted); }.faq-layout { display: grid; grid-template-columns: 1.3fr .7fr; gap: 1.4rem; }.faq-layout details { margin-bottom: .75rem; padding: 1rem; border: 1px solid var(--border); border-radius: 10px; background: var(--panel); }.faq-layout summary { cursor: pointer; font-weight: 800; color: var(--cream); }.faq-layout details p { margin: .8rem 0 0; color: var(--muted); }.checklist { padding: 1.3rem; }.check-list { list-style: none; padding: 0; }.check-list li { position: relative; padding: .45rem 0 .45rem 1.55rem; border-bottom: 1px solid rgba(255,255,255,.06); }.check-list li::before { content: "✓"; position: absolute; left: 0; color: var(--success); font-weight: 900; }
.download-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 1rem; }.download-card { display: grid; grid-template-columns: 90px 1fr; gap: 1rem; padding: 1.3rem; border: 1px solid var(--border); border-radius: var(--radius); background: var(--panel); }.platform { display: grid; place-items: center; width: 76px; height: 76px; border-radius: 18px; background: linear-gradient(145deg,#3f3426,#1a1712); border: 1px solid var(--gold); color: var(--gold-light); font-weight: 900; }.code-panel { margin-top: 1rem; padding: 1.3rem; }
.legal-page { max-width: 900px; }.legal-page h2 { margin-top: 2rem; font-size: 1.45rem; }.legal-page p,.legal-page li { color: var(--muted); }
.not-found { min-height: 72vh; display: grid; place-items: start; align-content: center; text-align: center; }.not-found .crest { margin-inline: auto; }.not-found p { color: var(--muted); }
.empty-state { padding: 1.3rem; text-align: center; color: var(--muted); }

.editor-header { padding: 2rem 0; border-bottom: 1px solid var(--border); background: linear-gradient(90deg,#20160e,#302218); }.editor-header__inner { display: flex; align-items: center; justify-content: space-between; gap: 1rem; }.editor-header h1 { font-size: 2.5rem; }.editor-header p { margin: 0; color: var(--muted); }.editor-layout { display: grid; gap: 1rem; }.editor-actions { display: flex; flex-wrap: wrap; gap: .7rem; }.editor-panel { padding: 1.2rem; }.admin-list article { display: flex; justify-content: space-between; gap: 1.5rem; padding: 1rem 0; border-bottom: 1px solid rgba(255,255,255,.07); }.admin-list article:last-child { border-bottom: 0; }.admin-list p { margin: .2rem 0 0; color: var(--muted); }.admin-list__actions { display: flex; align-items: center; gap: .5rem; }.admin-list__actions form { margin: 0; }
.auth-page { min-height: 76vh; display: grid; place-items: center; padding-block: 3rem; }.auth-card { width: min(460px,100%); padding: 2rem; border: 1px solid var(--border); border-radius: var(--radius); background: var(--panel); box-shadow: var(--shadow); }.auth-logo { display: block; width: 220px; max-height: 140px; margin: 0 auto 1rem; object-fit: contain; }.auth-card h1 { font-size: 2.3rem; }.auth-card > p { color: var(--muted); }
.form-stack { display: grid; gap: 1rem; }.form-stack label,.editor-form label { display: grid; gap: .38rem; }.form-stack label span,.editor-form label > span { font-size: .78rem; font-weight: 800; color: var(--cream); }.form-stack input,.editor-form input,.editor-form textarea { width: 100%; border: 1px solid rgba(201,154,75,.34); border-radius: 8px; background: #120f0c; color: var(--text); padding: .75rem .8rem; }.editor-form textarea { resize: vertical; }.form-hint { margin-top: 1rem; font-size: .76rem; }.form-error,.form-success { padding: .9rem 1rem; border-radius: 8px; margin-bottom: 1rem; }.form-error { border: 1px solid rgba(200,75,62,.55); background: rgba(200,75,62,.13); color: #ffc0ba; }.form-success { border: 1px solid rgba(98,168,70,.5); background: rgba(98,168,70,.12); color: #c8ecaa; }.form-page { max-width: 960px; }.editor-form { padding: 1.4rem; }.form-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 1rem; }.form-wide { grid-column: 1 / -1; }.checkbox-label { grid-template-columns: auto 1fr !important; align-items: center; }.checkbox-label input { width: 1rem; height: 1rem; }.form-actions { display: flex; gap: .7rem; margin-top: 1.2rem; }

.site-footer { display: grid; grid-template-columns: auto 1fr; gap: 1rem 2rem; align-items: center; padding: 2rem clamp(1rem,4vw,3rem); border-top: 1px solid var(--border); background: #0d0b08; color: var(--muted); }.site-footer div strong,.site-footer div span { display: block; }.site-footer div strong { color: var(--cream); font-family: var(--serif); font-size: 1.25rem; }.site-footer nav { justify-self: end; display: flex; flex-wrap: wrap; gap: 1rem; }.site-footer a { color: var(--muted); font-size: .8rem; }.site-footer > small { grid-column: 1 / -1; }

@media (max-width: 1180px) {
  .dashboard-grid { grid-template-columns: 1fr 1fr; }
  .panel-welcome { grid-column: 1 / -1; }
  .panel-map { grid-column: 1 / -1; }
  .service-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .region-card { grid-template-columns: 140px 1fr; }
}

@media (max-width: 900px) {
  .site-shell { grid-template-columns: 1fr; }
  .sidebar { position: fixed; left: 0; top: 0; width: min(310px,88vw); transform: translateX(-105%); transition: transform .22s ease; }
  body.menu-open { overflow: hidden; }
  body.menu-open .sidebar { transform: translateX(0); }
  body.menu-open::after { content: ""; position: fixed; inset: 0; z-index: 45; background: rgba(0,0,0,.63); }
  .menu-toggle { display: inline-grid; place-items: center; }
  .topbar { z-index: 44; }
  .home-hero { min-height: 500px; }
  .house-a { left: 2%; transform: scale(.8); transform-origin: bottom left; }.house-b { right: 0; transform: scale(.76); transform-origin: bottom right; }.tower { left: 20%; transform: scale(.8); transform-origin: bottom; }.tree-a { left: 46%; }.tree-b { right: 20%; }
  .hero-status { right: 1rem; bottom: 1rem; }
  .map-page-layout,.faq-layout { grid-template-columns: 1fr; }
  .map-legend { position: static; }
  .split-section { grid-template-columns: 1fr; }
  .region-grid { grid-template-columns: 1fr; }
  .destination-grid { grid-template-columns: 1fr; }
}

@media (max-width: 680px) {
  .desktop-only { display: none; }
  .topbar { padding-inline: .85rem; }
  .topbar-actions > a:not(.button) { display: none; }
  .content-width { width: min(100% - 1.5rem,1240px); }
  .home-hero { min-height: 560px; padding: 3rem 1rem 6rem; }
  .home-hero__content h1 br { display: none; }
  .button-row { width: 100%; }.home-hero__content .button { flex: 1 1 100%; }
  .hero-status { left: 1rem; right: 1rem; justify-content: center; }
  .section-heading { display: block; }
  .dashboard-grid { grid-template-columns: 1fr; }
  .panel-map { grid-column: auto; grid-template-columns: 1fr; }
  .map-visual { min-height: 230px; }
  .service-grid { grid-template-columns: 1fr; }
  .region-card { grid-template-columns: 1fr; }.region-card__visual { min-height: 180px; }
  .article-card { grid-template-columns: 1fr; }.article-card__visual { min-height: 150px; }
  .event-detail-card { grid-template-columns: 76px 1fr; }.event-actions { grid-column: 1 / -1; flex-direction: row; justify-content: flex-end; }
  .destination-card { min-height: 270px; }
  .download-grid { grid-template-columns: 1fr; }.download-card { grid-template-columns: 1fr; }.platform { width: 64px; height: 64px; }
  .form-grid { grid-template-columns: 1fr; }.form-wide { grid-column: auto; }
  .admin-list article { display: grid; }.admin-list__actions { justify-content: start; flex-wrap: wrap; }
  .editor-header__inner { align-items: start; }.editor-header h1 { font-size: 2rem; }
  .home-cta__inner { display: grid; }.home-cta__inner .button { width: 100%; }
  .site-footer { grid-template-columns: 1fr; }.site-footer nav { justify-self: start; }.site-footer > small { grid-column: auto; }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior: auto !important; transition-duration: .01ms !important; animation-duration: .01ms !important; animation-iteration-count: 1 !important; }
}
