/* Emerald observatory. The existing responsive layouts and accessible controls
   stay shared; this layer owns the dark surfaces and holographic visual language. */
:root {
  color-scheme:dark;
  --cream:#07150f;
  --paper:#0b2017;
  --green:#b9f3cd;
  --deep:#e0ffe9;
  --sage:#9fc6af;
  --muted:#a8c2b2;
  --line:#2a4939;
  --gold:#a1f5b9;
  --lavender:#0c261b;
  --mint:#102f22;
  --coral:#a1ffb6;
  --ink:#e5f2e8;
  --original-green:#203e30;
  --glow:#7befa2;
}

body {
  background:var(--cream);
  color:var(--ink);
}

:focus-visible {
  outline-color:var(--glow);
}

.site-header {
  background:#07150ff0;
  border-bottom:1px solid var(--line);
  backdrop-filter:blur(16px);
}

.brand-name {
  color:var(--ink);
}

.brand-subtitle {
  color:var(--sage);
}

.nav-link,.menu-toggle {
  color:var(--ink);
}

.nav-link::after {
  background:var(--glow);
}

.button {
  background:var(--green);
  color:var(--cream);
  border-color:var(--green);
  border-radius:3px 16px 3px 3px;
}

.button:hover {
  background:var(--deep);
  box-shadow:0 0 24px #76f5a41a;
}

.button--outline {
  background:transparent;
  color:var(--green);
  border-color:#619571;
}

.button--outline:hover {
  background:var(--green);
  color:var(--cream);
}

.button--light {
  background:var(--green);
  border-color:var(--green);
  color:var(--cream);
}

.bakery-world {
  color:var(--ink);
  background:radial-gradient(ellipse at 75% 37%,#184d2b65,transparent 52%),radial-gradient(ellipse at 38% 88%,#0b362444,transparent 48%),#07150f;
  border-bottom:1px solid var(--line);
}

.bakery-world::before {
  border-color:#6aa77b19;
  top:-48rem;
}

.bakery-world::after {
  content:'';
  position:absolute;
  inset:0;
  background-image:linear-gradient(#91ffb509 1px,transparent 1px),linear-gradient(90deg,#91ffb509 1px,transparent 1px);
  background-size:72px 72px;
  mask-image:linear-gradient(90deg,transparent 35%,#000 80%);
  pointer-events:none;
  z-index:-1;
}

.world-eyebrow {
  color:var(--green);
  font-family:var(--sans);
  letter-spacing:.15em;
}

.world-eyebrow > span {
  color:var(--glow);
}

.bakery-world h1 {
  color:var(--ink);
}

.bakery-world h1 em {
  color:var(--green);
  text-shadow:0 0 45px #74ffad14;
}

.world-description {
  color:var(--muted);
}

.world-cta {
  color:#092015;
  background:var(--coral);
  border-color:var(--coral);
  box-shadow:0 0 28px #74ffad14,inset 0 0 0 1px #d6ffe530;
}

.world-cta:hover {
  background:#d7ffe3;
  box-shadow:0 0 36px #74ffad26;
}

.bakery-world .text-link {
  color:var(--green);
  border-bottom-color:#527a60;
}

.world-origin strong {
  color:var(--ink);
}

.world-origin svg {
  color:var(--glow);
}

.world-scene {
  isolation:isolate;
}

.world-scene::before,
.world-scene::after {
  content:'';
  position:absolute;
  width:26px;
  height:26px;
  pointer-events:none;
  border-color:#5a9874;
  border-style:solid;
  z-index:3;
}

.world-scene::before {
  left:2%;
  top:8%;
  border-width:1px 0 0 1px;
}

.world-scene::after {
  right:0;
  bottom:10%;
  border-width:0 1px 1px 0;
}

.world-scene canvas {
  border-radius:0;
}

.world-scene canvas:focus-visible {
  outline-color:var(--glow);
}

.world-scene .scene-fallback:not([data-world-poster]) {
  border-radius:4px 40px 4px 4px;
  border:1px solid #477158;
  box-shadow:0 0 45px #59ff9620;
}

.world-orbit {
  border:1px solid #6cef9e2b;
  inset:13% 1% 1%;
  box-shadow:0 0 36px #50ff9210,inset 0 0 45px #50ff9207;
}

.world-orbit::before {
  content:'';
  position:absolute;
  inset:7%;
  border:1px dashed #6cef9e1c;
  border-radius:50%;
}

.world-orbit::after {
  background:var(--glow);
  border:0;
  width:5px;
  height:5px;
  box-shadow:0 0 15px #9dffb9;
}

.world-heading {
  color:var(--sage);
  letter-spacing:.16em;
}

.world-dot {
  background:var(--glow);
  box-shadow:0 0 8px #83ffa7;
}

.world-coordinate {
  color:var(--green);
  font-variant-numeric:tabular-nums;
}

.world-seal {
  border-radius:2px 16px 2px 2px;
  border-color:#497757;
  background:#0a241ac9;
  transform:none;
  color:var(--green);
  box-shadow:0 0 24px #4cfa9110,inset 0 0 20px #4cfa9106;
  backdrop-filter:blur(8px);
}

.world-seal svg {
  color:var(--glow);
}

.world-scene .scene-controls {
  background:#0a1f17e8;
  border-color:#3d7152;
  border-radius:3px;
  box-shadow:0 0 20px #73ffab0a;
}

.world-scene .scene-controls button {
  border-radius:2px;
  color:var(--green);
}

.world-scene .scene-controls button:hover,
.world-scene .scene-controls button[aria-pressed=true] {
  background:#234b35;
}

.world-scene .scene-load {
  background:#0c281d;
  border:1px solid #4c7f60;
  color:var(--green);
  border-radius:3px;
  box-shadow:0 0 30px #42fe891c;
}

.world-launch {
  background:#112d20;
  color:var(--green);
  border-color:#64aa7b;
  border-radius:3px 16px 3px 3px;
  box-shadow:0 0 24px #6aff9624;
}

.world-choices {
  padding:.35rem;
  gap:.2rem;
  border:1px solid #365b45;
  border-radius:3px;
  background:#0a1e15e0;
  box-shadow:inset 0 1px 0 #b7ffca09;
}

.world-choice {
  border-radius:2px;
  color:var(--sage);
  position:relative;
}

.world-choice:hover {
  background:#193c29;
  color:var(--green);
}

.world-choice[aria-pressed=true] {
  background:#203e30;
  border-color:#507b5d;
  color:#dbffe6;
  box-shadow:inset 0 -2px 0 #8ef4aa,0 0 15px #63ff9910;
}

.world-choice[aria-pressed=true] > span {
  color:#b8f2c9;
}

.world-product {
  padding-block:.15rem;
}

.world-product p {
  color:var(--ink);
}

.world-product-link {
  color:var(--green);
  border-bottom-color:#527a60;
}

.world-foot {
  color:var(--sage);
}

.world-foot a:hover {
  color:var(--green);
}

.values-strip {
  background:var(--original-green);
  color:#d2ead7;
  border-block:1px solid #477256;
}

.values-inner .star {
  color:var(--green);
}

.section-heading h2 em,.page-intro h1 em,.craft-copy h2 em,
.story-copy h2 em,.story-body h2 em,.baker-copy h2 em,
.special-order h2 em {
  color:var(--green);
}

.product-image {
  border-radius:3px 24px 3px 3px;
  border:1px solid #46614d;
  background:var(--paper);
}

.product-image img {
  filter:saturate(.78) brightness(.91);
}

.product-card:hover .product-image {
  border-color:#79ba8c;
  box-shadow:0 0 36px #63ff9b16;
}

.product-number {
  background:#0a2319;
  color:var(--green);
  border:1px solid #568566;
  border-radius:2px;
  font-variant-numeric:tabular-nums;
}

.product-price {
  color:var(--green);
}

.badge {
  border-radius:2px;
  background:#102c20;
  color:var(--green);
  border:1px solid #517f61;
}

.craft {
  background:radial-gradient(ellipse at 15% 50%,#163d2a,transparent 65%),#0a2117;
  border-color:var(--line);
}

.craft-photo,.story-photo,.about-photo,.contact-image {
  border-radius:4px 48px 4px 4px;
  border:1px solid #446f52;
  background:#143423;
}

.craft-photo img,.story-photo img,.about-photo img,.contact-image img {
  filter:saturate(.8) brightness(.85);
}

.craft-photo figcaption,.story-photo-note,.contact-image-note {
  background:#0c251be8;
  color:var(--ink);
  border:1px solid #365c44;
  border-radius:2px;
}

.craft-list li {
  border-color:#466e53;
  border-radius:2px;
  color:var(--green);
}

.order-section,.baker,.manifesto {
  background:var(--original-green);
  color:var(--ink);
  border-block:1px solid #44674e;
}

.order-section .section-heading .eyebrow,.order-intro,.step p,
.order-actions p,.baker-copy p,.baker-copy .eyebrow,.baker-mark .eyebrow {
  color:#ccdfd0;
}

.step,.order-actions {
  border-color:#5b7c63;
}

.baker-mark {
  border-color:#6b9e7a;
  background:radial-gradient(circle,#38624644,transparent 70%);
}

.payment-section {
  background:#0b2117;
  border-block:1px solid var(--line);
}

.payment-card {
  border-radius:3px 20px 3px 3px;
  background:#10291d;
  border-color:#345b41;
}

.payment-card:hover {
  background:#193e29;
  border-color:#71aa7f;
  box-shadow:0 0 28px #69ff9810;
}

.payment-card img {
  border-radius:2px;
}

.special-order {
  background:#153b27;
  color:var(--ink);
  border-block:1px solid #3f6b4c;
}

.filter {
  border-radius:3px;
  color:var(--green);
}

.filter[aria-pressed=true] {
  background:#254b34;
  color:#dcffe6;
  border-color:#669c74;
}

.menu-tools {
  border-color:#345b41;
}

.site-footer {
  background:#05120b;
  border-top-color:#32583f;
}

.note-dialog {
  border-radius:4px 24px 4px 4px;
  border-color:#5e9470;
  background:#0c2419;
  color:var(--ink);
  box-shadow:0 0 80px #3cd27b18;
}

.note-dialog::backdrop {
  background:#020e09c4;
}

@media(max-width:800px) {
  .world-heading {
    letter-spacing:.08em;
  }
}

@media(max-width:600px) {
  .world-seal {
    top:10%;
    width:4.25rem;
    height:4.25rem;
    font-size:.4375rem;
  }
  .world-scene::before {
    top:9%;
    left:0;
  }
  .world-scene::after {
    bottom:13%;
  }
  .world-scene .scene-controls button {
    width:38px;
    min-height:38px;
  }
  .world-choice {
    min-height:46px;
  }
}

@media print {
  :root {
    color-scheme:light;
    --cream:#fff;
    --paper:#fff;
    --green:#203e30;
    --sage:#334536;
    --muted:#333;
    --ink:#000;
    --line:#ccc;
  }
  body,.bakery-world,.craft,.order-section,.baker,.payment-section,.special-order {
    background:#fff;
    color:#000;
  }
  .bakery-world::after {
    display:none;
  }
  .bakery-world h1,.bakery-world h1 em,.page-intro h1 em,
  .section-heading h2 em,.craft-copy h2 em,.story-copy h2 em {
    color:#000;
    text-shadow:none;
  }
  .product-image img,.craft-photo img,.story-photo img,.about-photo img,.contact-image img {
    filter:none;
  }
}

@media(min-width:801px) {
  .bakery-world h1 {
    font-size:clamp(3.4rem,6.2vw,7rem);
  }
}
@media(max-width:360px) {
  .world-scene .scene-hint {
    display:none;
  }
  .world-scene .scene-bottom {
    justify-content:center;
  }
}

.world-scene .scene-controls button[data-scene-hologram] {
  width:auto;
  min-width:36px;
  display:flex;
  align-items:center;
  gap:.35rem;
  padding-inline:.6rem;
  font-size:.625rem;
}
