:root {
  color-scheme: light;
  --ink: #23463d;
  --muted: #62776a;
  --paper: #f7f8f0;
  --line: #d8e1d3;
  --teal: #386c65;
  font: 14px/1.6 -apple-system, BlinkMacSystemFont, "PingFang SC", "Segoe UI", sans-serif;
  color: var(--ink);
  background: var(--paper);
}
* { box-sizing: border-box; }
body, h1, h2, p { margin: 0; }
a { color: inherit; text-decoration: none; }
button { color: inherit; font: inherit; cursor: pointer; touch-action: manipulation; }
button, a, canvas { -webkit-tap-highlight-color: transparent; }
[hidden] { display: none !important; }
:is(a, button, canvas, summary):focus-visible { outline: 3px solid #4c8472; outline-offset: 4px; }
.sunward-skip { position: fixed; top: -80px; left: 16px; z-index: 20; background: var(--paper); padding: 12px; }
.sunward-skip:focus { top: 12px; }
.sunward-topbar { position: relative; z-index: 10; display: flex; align-items: center; justify-content: space-between; gap: 24px; min-height: 66px; padding: 16px 30px; border-bottom: 1px solid var(--line); }
.sunward-back, .sunward-detail-link { display: inline-flex; align-items: center; gap: 10px; font-size: 12px; }
.sunward-topbar a:hover { text-decoration: underline; text-underline-offset: 4px; }
.sunward-brand { font-size: 15px; font-weight: 600; letter-spacing: 3px; }
.sunward-brand small { margin-left: 13px; font-size: 9px; font-weight: 400; letter-spacing: 1.5px; color: var(--muted); }
.sunward-topbar-actions { display: flex; align-items: center; gap: 24px; min-width: 0; }
.sunward-language-switcher { position: relative; flex-shrink: 0; }
.sunward-language-switcher > summary { display: flex; align-items: center; gap: 7px; padding: 7px 10px; border: 1px solid var(--line); border-radius: 6px; background: #fbfcf5; cursor: pointer; list-style: none; font-size: 12px; white-space: nowrap; }
.sunward-language-switcher > summary::-webkit-details-marker { display: none; }
.sunward-language-switcher > summary::after { content: '⌄'; margin-left: 3px; color: var(--muted); }
.sunward-language-options { position: absolute; top: calc(100% + 9px); right: 0; min-width: 170px; max-width: calc(100vw - 32px); padding: 6px; border: 1px solid var(--line); border-radius: 8px; background: #fbfcf5; box-shadow: 0 8px 24px #23442c16; }
.sunward-language-options a { display: flex; align-items: center; justify-content: space-between; gap: 18px; min-height: 36px; padding: 7px 10px; border-radius: 4px; font-size: 12px; }
.sunward-language-options a:hover, .sunward-language-options a[aria-current] { background: #e6eee0; text-decoration: none; }
.sunward-language-options a[aria-current]::after { content: '✓'; color: var(--teal); }
.sunward-scene { min-width: 0; background: #e4ece2; }
.sunward-viewport { position: relative; isolation: isolate; height: calc(100svh - 155px); min-height: 500px; }
.sunward-poster { position: absolute; inset: 0; z-index: -1; width: 100%; height: 100%; object-fit: cover; }
.sunward-viewport canvas { display: block; width: 100%; height: 100%; touch-action: none; }
.sunward-scene-heading { position: absolute; top: 28px; left: 30px; max-width: 54%; pointer-events: none; }
.sunward-scene-heading > p { font-size: 9px; letter-spacing: 1.8px; color: #526e5f; }
.sunward-scene-heading h1 { margin: 9px 0 10px; font: 500 clamp(27px, 3vw, 42px)/1.25 Georgia, "Songti SC", serif; letter-spacing: -.4px; }
.sunward-scene-heading > span { font-size: 11px; color: #526e5f; }
.sunward-tools { position: absolute; top: 27px; right: 28px; display: flex; align-items: center; gap: 12px; }
.sunward-lighting, .sunward-tools > button, .sunward-views { padding: 4px; border: 1px solid #ffffffb0; border-radius: 7px; background: #fbfcf2ec; box-shadow: 0 4px 16px #23442c0c; }
.sunward-lighting { display: flex; gap: 3px; }
.sunward-tools button { min-height: 35px; padding: 7px 11px; border: 0; border-radius: 4px; background: transparent; font-size: 11px; }
.sunward-tools > button { padding: 10px 13px; background: #fbfcf2ec; }
.sunward-tools button[aria-pressed="true"], .sunward-views button[aria-pressed="true"] { background: var(--teal); color: #fffdf2; }
.sunward-views { position: absolute; bottom: 24px; left: 28px; display: flex; gap: 4px; }
.sunward-views button { padding: 11px 17px; border: 0; border-radius: 4px; background: transparent; font-size: 12px; white-space: nowrap; }
.sunward-views small { margin-right: 9px; font-size: 9px; opacity: .58; }
.sunward-tools button:hover, .sunward-views button:hover { background: #dce8da; }
.sunward-tools button[aria-pressed="true"]:hover, .sunward-views button[aria-pressed="true"]:hover { background: #2c5853; }
.sunward-controls { display: flex; align-items: center; justify-content: space-between; gap: 20px; min-height: 54px; padding: 12px 30px; border-top: 1px solid var(--line); background: var(--paper); }
.sunward-controls > p { color: var(--muted); font-size: 11px; }
.sunward-controls > div { display: flex; flex-shrink: 0; gap: 18px; }
.sunward-controls button { min-height: 29px; padding: 0; border: 0; background: transparent; font-size: 11px; }
.sunward-controls button:hover, .sunward-controls button[aria-pressed="true"], .sunward-controls button[aria-expanded="true"] { text-decoration: underline; text-underline-offset: 4px; }
.sunward-preview-note { padding: 12px 30px 15px; border-top: 1px solid var(--line); color: #7a8875; background: var(--paper); font-size: 10px; }
.sunward-selection { position: absolute; bottom: 92px; left: 50%; max-width: calc(100% - 40px); padding: 7px 13px; border-radius: 5px; background: #fbfcf2e8; transform: translateX(-50%); font-size: 11px; text-align: center; pointer-events: none; }
.sunward-selection:empty { display: none; }
.sunward-resources { position: absolute; top: 86px; right: 28px; z-index: 5; width: 320px; max-height: calc(100% - 115px); overflow: auto; padding: 23px; border: 1px solid #fafff4b0; border-radius: 8px; background: #fbfcf2f5; box-shadow: 0 8px 28px #23442c15; }
.sunward-resources h2 { margin: 0 25px 18px 0; font: 500 24px/1.4 Georgia, "Songti SC", serif; }
.sunward-close { position: absolute; top: 10px; right: 12px; width: 32px; height: 32px; border: 0; background: transparent; font-size: 25px; }
.sunward-resources dl { display: grid; grid-template-columns: 1fr auto; gap: 7px 10px; margin: 0 0 20px; font-size: 11px; }
.sunward-resources dt { color: var(--muted); }
.sunward-resources dd { margin: 0; font-variant-numeric: tabular-nums; }
[data-sunward-source-list] { display: grid; gap: 7px; }
[data-sunward-source-list] > :is(button, .sunward-source) { min-width: 0; padding: 10px; border: 1px solid var(--line); border-radius: 5px; color: var(--ink); background: #edf3e8; text-align: left; overflow-wrap: anywhere; }
[data-sunward-source-list] button { display: flex; align-items: center; justify-content: space-between; gap: 8px; width: 100%; font-size: 12px; }
[data-sunward-source-list] small { font-size: 10px; color: var(--muted); }
.sunward-source strong { display: block; font-size: 12px; font-weight: 500; }
.sunward-source > small { display: block; font-size: 9px; }
.sunward-source > span { display: block; margin-top: 5px; font-size: 10px; color: var(--muted); }
.sunward-resources > p { margin-top: 19px; color: var(--muted); font-size: 10px; line-height: 1.85; }
.sunward-loading { position: absolute; inset: 0; z-index: 8; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 18px; padding: 28px; background: #eaf0e6f5; text-align: center; }
.sunward-loading > p { font-size: 14px; }
.sunward-loading > small { max-width: 360px; font-size: 11px; color: var(--muted); }
.sunward-loading progress { width: min(240px, 80%); height: 4px; border: 0; accent-color: var(--teal); }
.sunward-loading progress::-webkit-progress-bar { background: #cbdac5; border-radius: 4px; }
.sunward-loading progress::-webkit-progress-value { background: var(--teal); border-radius: 4px; }
.sunward-loading button { padding: 9px 16px; border: 1px solid #afc3a7; border-radius: 5px; background: #fbfcf2; font-size: 12px; }
.sunward-no-script { position: absolute; z-index: 9; bottom: 30px; left: 30px; right: 30px; padding: 20px; background: var(--paper); text-align: center; }
.sunward-scene.is-night .sunward-scene-heading, .sunward-scene.is-night .sunward-scene-heading :is(p, span) { color: #f2f2df; text-shadow: 0 1px 8px #132b2980; }
.sunward-scene:fullscreen { display: flex; flex-direction: column; width: 100%; height: 100%; background: #e4ece2; }
.sunward-scene:fullscreen .sunward-viewport { flex: 1; height: auto; min-height: 0; }
.sunward-scene:fullscreen .sunward-controls { flex-shrink: 0; }

@media (max-width: 900px) {
  .sunward-topbar { padding-inline: 22px; }
  .sunward-brand small { display: none; }
  .sunward-scene-heading { top: 24px; left: 22px; max-width: calc(100% - 44px); }
  .sunward-tools { top: 125px; right: 20px; }
  .sunward-views { left: 20px; bottom: 20px; }
  .sunward-views button { padding: 10px 13px; }
  .sunward-controls { padding-inline: 22px; }
  .sunward-controls > p { max-width: 48%; }
  .sunward-resources { top: 185px; right: 20px; max-height: calc(100% - 210px); }
}

@media (max-width: 600px) {
  .sunward-topbar { display: grid; grid-template-columns: minmax(0, 1fr) auto; min-height: 62px; padding: 14px 16px; gap: 15px; }
  .sunward-back, .sunward-detail-link { font-size: 10px; gap: 5px; }
  .sunward-back { min-width: 0; line-height: 1.5; }
  .sunward-back > span { flex-shrink: 0; }
  .sunward-brand { display: none; }
  .sunward-topbar-actions { gap: 10px; }
  .sunward-detail-link { max-width: 90px; text-align: right; line-height: 1.5; }
  .sunward-detail-link > span { flex-shrink: 0; }
  .sunward-language-switcher > summary { gap: 5px; padding: 7px 8px; font-size: 10px; }
  .sunward-viewport { height: calc(100svh - 180px); min-height: 500px; }
  .sunward-scene-heading { top: 22px; left: 18px; max-width: calc(100% - 36px); }
  .sunward-scene-heading > p { font-size: 8px; }
  .sunward-scene-heading h1 { margin-top: 8px; font-size: 28px; }
  html:lang(de) .sunward-scene-heading h1 { font-size: clamp(23px, 6.8vw, 28px); }
  .sunward-scene-heading > span { display: block; font-size: 10px; }
  .sunward-tools { top: 122px; left: 16px; right: auto; gap: 9px; }
  .sunward-tools button { font-size: 10px; min-height: 33px; }
  .sunward-views { left: 12px; right: 12px; justify-content: center; gap: 2px; bottom: 17px; padding: 4px; }
  .sunward-views button { padding: 10px 9px; font-size: 11px; }
  .sunward-views small { display: none; }
  .sunward-controls { flex-direction: column; align-items: flex-start; gap: 7px; padding: 11px 18px; }
  .sunward-controls > p { max-width: none; font-size: 10px; }
  .sunward-controls > div { gap: 21px; }
  .sunward-controls button { font-size: 10px; }
  .sunward-preview-note { padding: 10px 18px 13px; font-size: 9px; }
  .sunward-resources { top: 177px; left: 16px; right: 16px; width: auto; max-height: calc(100% - 200px); padding: 20px; }
  .sunward-selection { bottom: 80px; }
  .sunward-loading > p { font-size: 13px; }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior: auto !important; animation: none !important; transition: none !important; }
}

/* Shared planned pricing for scene packs that are not on sale. */
.scene-price-plan:not(.scene-price-plan-compact){margin:24px 0;padding:23px 25px;border:1px solid var(--line);border-radius:8px;background:#f0f3e9;color:var(--ink)}
.scene-price-plan .scene-price-label{margin:0 0 7px;font-size:11px;line-height:1.6;color:#62745f}
.scene-price-plan .scene-price-amount{font:500 34px/1.3 Georgia,"Songti SC",serif;letter-spacing:-.5px;overflow-wrap:anywhere}
.scene-price-plan .scene-price-period,.scene-price-plan .scene-price-once{margin:7px 0 0;font-size:12px;line-height:1.75;color:#62745f}
.scene-price-plan .scene-price-status{display:block;margin-top:13px;font-size:13px;line-height:1.6;color:#7c6443}
.scene-price-plan .scene-price-note{margin:7px 0 0;font-size:11px;line-height:1.75;color:#62745f}
.scene-price-plan-compact{min-width:0}
.kit-catalog-price.scene-price-plan-compact small{font-size:11px;line-height:1.65;overflow-wrap:anywhere}
.kit-catalog-footer:has(.scene-price-plan-compact){align-items:flex-start;flex-wrap:wrap}
.sunward-commerce-summary{max-width:1180px;margin:28px auto;padding:0 24px}
.purchase-status .scene-price-plan{margin:15px 0 0;padding:0;border:0;background:transparent}
.purchase-status .scene-price-plan .scene-price-label{margin-top:0}
.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
@media(max-width:680px){.scene-price-plan:not(.scene-price-plan-compact){padding:20px}.scene-price-plan .scene-price-amount{font-size:30px}.purchase-status .scene-price-plan{padding:0}.sunward-commerce-summary{padding-inline:18px}}

/* Explicit testing links do not enable sales or paid downloads. */
.scene-test-purchase{margin-top:16px;min-width:0;pointer-events:auto}
.scene-test-purchase-link{display:inline-flex;align-items:center;justify-content:center;gap:12px;min-height:44px;padding:11px 17px;border:1px solid #315741;border-radius:6px;background:#315741;color:#fffdf2;font:500 13px/1.5 -apple-system,BlinkMacSystemFont,"PingFang SC","Segoe UI",sans-serif;text-decoration:none;text-align:center;overflow-wrap:anywhere}
.scene-test-purchase-link:hover{background:#224530;color:#fffdf2;text-decoration:none}
.scene-test-purchase-link:focus-visible{outline:3px solid #7a9f66;outline-offset:4px}
.scene-test-purchase .scene-test-purchase-note{margin:8px 0 0;color:#66705f;font-size:11px;line-height:1.7;letter-spacing:0;text-shadow:none}
.kit-catalog-card:has(> .scene-test-purchase){display:flex;flex-direction:column}
.kit-catalog-card:has(> .scene-test-purchase)>.kit-catalog-link{height:auto;flex:1}
.kit-catalog-card>.scene-test-purchase{margin:0;padding:0 24px 24px}
.kit-town-overview>.scene-test-purchase{padding:0 35px 25px;text-align:right}
.meteor-price>.scene-test-purchase{pointer-events:auto;padding:12px;border-radius:6px;background:#fffdf1e8;max-width:360px}
@media(max-width:900px){.kit-town-overview>.scene-test-purchase{padding:0 25px 25px;text-align:left}}
@media(max-width:680px){.kit-catalog-card>.scene-test-purchase{padding:0 22px 22px}.scene-test-purchase-link{max-width:100%}}

.scene-test-purchase-link:disabled{opacity:.55;cursor:wait}.scene-test-purchase [data-scene-purchase-status]{font-size:12px;margin:8px 0;color:#66705f}

.scene-test-purchase [hidden]{display:none!important}
