/* DysonLight Harmony, Oct 15: the public mint continues the welcome's ice palace.
   Palette projection from ../../harmony-ice.css (:root), ../../harmony-ice.hand.css
   and ../../harmony-accent.css. Kept inside this independently shipped app; the test
   compares these values with their sources. No runtime recolouring of film or canvas. */
:root {
  --dl-stone:#ddeaf1;--dl-panel:#ebf4f9;--dl-panel2:#dbebf5;
  --dl-ink:#16263a;--dl-ink2:#4a5b6a;--dl-line:rgba(82,102,119,.24);
  --dl-accent:#37b6d8;--dl-accent-edge:#2b8fab;--dl-accent-light:#a9e6f5;
  --dl-accent-ink:#1a789f;
}
/* One light field from the title, around the film, into Snowtrace. The film owns its colours. */
.genesis {background:radial-gradient(ellipse at 70% 20%,white 0%,var(--dl-panel) 48%,var(--dl-stone) 100%)}
.genesis > .atmosphere {background:radial-gradient(ellipse at 62% 45%,color-mix(in srgb,var(--dl-accent) 9%,transparent),transparent 52%)}
.genesis > .hero-copy h1 {color:var(--dl-ink)}
.genesis > .hero-copy h1 em,.genesis > .hero-copy .hero-line {color:var(--dl-accent-ink)}
.snowtrace-overline {font:400 10px/1.5 var(--mono);letter-spacing:.16em;text-transform:uppercase;color:var(--dl-accent-ink)}
.genesis > .hero-copy .snowtrace-overline {display:block;margin-bottom:10px;font-size:9px}
.genesis > .snowtrace {
  position:relative;isolation:isolate;z-index:2;box-sizing:border-box;width:100%;margin:0;
  padding:clamp(32px,5vw,76px);background:transparent;color:var(--dl-ink);border:0;
}
/* Quiet structural lines, like the welcome's faceted field; no animation or new renderer. */
.snowtrace::before {content:'';position:absolute;inset:0;z-index:-1;pointer-events:none;opacity:.13;
  background:linear-gradient(30deg,transparent 49.9%,var(--dl-line) 50%,transparent 50.1%),linear-gradient(150deg,transparent 49.9%,var(--dl-line) 50%,transparent 50.1%);
  background-size:520px 300px;mask-image:linear-gradient(90deg,black,transparent 65%)}
.snowtrace-brand {margin:0 0 36px}   /* its mark is brand/dl-wordmark.css, the one design of every place (his Oct 16 2026 10:34 WEST) */
.snowtrace p {margin:0;font:400 15px/1.65 var(--sans);color:var(--dl-ink2)}
.snowtrace p.snowtrace-overline {font:400 10px/1.5 var(--mono);letter-spacing:.14em;color:var(--dl-accent-ink);margin:0 0 18px}
.snowtrace h2,.snowtrace h3 {font-weight:400;letter-spacing:-.025em;color:var(--dl-ink)}
.snowtrace h2 {margin:0;font:400 clamp(42px,4.6vw,70px)/.98 var(--serif);letter-spacing:-.035em}
.snowtrace h2 em {color:var(--dl-accent-ink);font-weight:400}
.snowtrace .snowtrace-motto {font:italic 21px/1.3 var(--serif);margin-top:24px;max-width:300px;color:var(--dl-ink2)}
.snowtrace-intro {display:grid;grid-template-columns:1.1fr 1fr;gap:clamp(28px,6vw,96px);align-items:center}
.snowtrace-explanation {max-width:480px}
.snowtrace-explanation p + p {margin-top:14px}
.snowtrace-explanation strong {font-weight:600;color:var(--dl-ink)}
.snowtrace-explanation .snowtrace-society {color:var(--dl-accent-ink);font-size:13px}
.snowtrace-path {position:relative;list-style:none;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:30px;margin:44px 0 0;padding:28px 0 32px;border-block:1px solid color-mix(in srgb,var(--dl-line) 55%,transparent)}
.snowtrace-path li {display:flex;gap:14px;min-width:0}
.snowtrace-number {display:grid;place-items:center;align-self:start;flex:none;width:38px;height:44px;
  clip-path:polygon(50% 0,100% 25%,100% 75%,50% 100%,0 75%,0 25%);
  background:linear-gradient(155deg,white,var(--dl-panel2));color:var(--dl-accent-ink);font:italic 20px/1 var(--serif)}
.snowtrace-path h3 {font:400 21px/1.15 var(--serif);margin:2px 0 8px}
.snowtrace-path p {font-size:12px;line-height:1.5;max-width:225px}
.snowtrace .dl-paywall-choice {position:relative;margin:0;padding:38px 0 0;pointer-events:auto;text-align:left}
.snowtrace [hidden] {display:none!important}
.snowtrace-offer-heading {display:grid;grid-template-columns:1.1fr 1fr;gap:40px;align-items:end;padding:0;margin:0 0 28px;border:0}
.snowtrace-offer-heading h2 {font-size:clamp(30px,2.7vw,42px);line-height:1.08}
.snowtrace-offer-heading p {max-width:440px;font-size:13px}
.snowtrace-offer-heading p.snowtrace-overline {margin-bottom:10px}
/* THE TWO TOKENS, upfront (his Oct 18 2026 16:33 WEST, "be clear upfront about $WARM & $POOL as onchain SWARM & SPOOL"): two terms over the seats. */
.snowtrace-tokens {display:grid;grid-template-columns:1fr 1fr;gap:24px;margin:0 0 24px;padding:18px 0;border-block:1px solid color-mix(in srgb,var(--dl-line) 55%,transparent)}
.snowtrace-tokens div {min-width:0}
.snowtrace-tokens dt {margin:0 0 6px;font:400 24px/1.15 var(--serif);letter-spacing:-.02em;color:var(--dl-ink)}
.snowtrace-tokens dt span {margin-left:10px;font:400 10px/1.5 var(--mono);letter-spacing:.14em;text-transform:uppercase;color:var(--dl-accent-ink);vertical-align:middle}
.snowtrace-tokens dd {margin:0;max-width:420px;font:13px/1.6 var(--sans);color:var(--dl-ink2)}
/* THE DOOR OPENS WITH THE POOL (lane/the-door-opens-with-the-pool): $WARM's door to its pool, in its title, in the kit's gold; [hidden] until it trades */
.snowtrace-tokens .snowtrace-warm-door {display:inline-flex;align-items:center;margin-left:14px;padding:6px 12px;border:1px solid var(--dl-accent);border-radius:2px;background:linear-gradient(100deg,var(--dl-ink),color-mix(in srgb,var(--dl-ink) 92%,black));box-shadow:inset 0 1px color-mix(in srgb,var(--dl-accent-light) 20%,transparent);color:var(--dl-accent-light);font:500 12px/1.2 var(--sans);letter-spacing:.02em;text-decoration:none;white-space:nowrap;vertical-align:middle}
.snowtrace-tokens .snowtrace-warm-door:hover {color:white;border-color:var(--dl-accent-edge)}
.snowtrace .dl-paywall-choice-seats {display:grid;grid-template-columns:1fr 1fr;gap:24px}
.snowtrace-tier {position:relative;padding:26px;border:1px solid color-mix(in srgb,var(--dl-line) 70%,white);
  background:linear-gradient(145deg,color-mix(in srgb,white 70%,transparent),color-mix(in srgb,var(--dl-panel) 40%,transparent));
  box-shadow:inset 0 1px white,0 8px 28px color-mix(in srgb,var(--dl-ink2) 5%,transparent)}
.snowtrace-tier::after {content:'';position:absolute;top:0;right:0;width:20px;height:20px;pointer-events:none;background:linear-gradient(45deg,transparent 48%,var(--dl-line) 49%,var(--dl-line) 51%,var(--dl-panel) 52%)}
.snowtrace-tier-gold {border-color:var(--dl-accent-edge);background:linear-gradient(145deg,white,var(--dl-panel2))}
.snowtrace-tier-title {display:flex;justify-content:space-between;align-items:baseline;gap:16px}
.snowtrace-tier-title h3 {font:400 32px/1.1 var(--serif);margin:0 0 10px}
.snowtrace-tier-title > span {font:italic 26px/1.1 var(--serif);color:var(--dl-accent-ink);white-space:nowrap}
.snowtrace-tier > p {font-size:13px}
.snowtrace-tier ul {list-style:none;margin:24px 0;padding:0;color:var(--dl-ink2);font:13px/1.7 var(--sans)}
.snowtrace-tier li + li {margin-top:4px}
.snowtrace-tier li::before {content:'—';color:var(--dl-accent-ink);margin-right:10px}
.snowtrace-tier b {font-weight:600;color:var(--dl-ink)}
.snowtrace .dl-paywall-choice-seats button {width:100%;display:flex;align-items:center;gap:8px;padding:14px 17px;min-height:52px;margin:0;border-radius:2px;border:1px solid var(--dl-accent-edge);background:transparent;color:var(--dl-ink);font:500 13px/1.3 var(--sans);text-align:left;cursor:pointer}
.snowtrace .dl-paywall-choice-seats button [data-seat-price] {margin-left:auto}
.snowtrace .dl-paywall-choice-seats button > span:last-child {margin-left:12px}
.snowtrace .dl-paywall-choice-seats .dl-paywall-gold {background:linear-gradient(100deg,var(--dl-ink),color-mix(in srgb,var(--dl-ink) 92%,black));color:var(--dl-accent-light);border-color:var(--dl-accent);box-shadow:inset 0 1px color-mix(in srgb,var(--dl-accent-light) 20%,transparent)}
.snowtrace .dl-paywall-bronze:hover {background:white}
.snowtrace .dl-paywall-gold:hover {color:white;border-color:var(--dl-accent-edge)}
.snowtrace button:focus-visible,.snowtrace a:focus-visible {outline:2px solid var(--dl-accent-ink);outline-offset:5px}
.snowtrace .dl-paywall-choice-seats button:disabled {opacity:.5;cursor:default}
/* THE HOLDER'S ROAD (dl-direct.js holder()): one quiet line under the seats for a seat already held; no price on it */
.snowtrace-holder {margin:18px 0 0}
.snowtrace-tank {margin:18px 0 0;max-width:640px;color:var(--dl-ink2);font:13px/1.6 var(--sans)}
.snowtrace-tank [data-swarmy-tank-count] {display:block;margin-top:4px;color:var(--dl-ink)}
.snowtrace .dl-paywall-holder {border:0;border-radius:0;background:none;color:var(--dl-accent-ink);cursor:pointer;padding:10px 0;min-height:44px;text-align:left;font:400 13px/1.5 var(--sans);text-decoration:underline;text-underline-offset:5px}
.snowtrace .dl-paywall-holder:hover {color:var(--dl-ink)}
.snowtrace-free {display:flex;justify-content:space-between;align-items:baseline;flex-wrap:wrap;gap:10px;margin:22px 0;padding:0 0 22px;border-bottom:1px solid color-mix(in srgb,var(--dl-line) 55%,transparent)}
.snowtrace .dl-paywall-not {border:0;border-radius:0;background:none;color:var(--dl-ink);cursor:pointer;padding:10px 0;min-height:44px;text-align:left;font:400 13px/1.5 var(--sans)}
.snowtrace .dl-paywall-not[aria-pressed="true"] {color:var(--dl-accent-ink);text-decoration:underline;text-underline-offset:5px}
.snowtrace-free > span {font:12px/1.6 var(--sans);color:var(--dl-ink2)}
.snowtrace-offer-footer {display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;margin:0;padding:0;border:0;background:transparent;color:inherit}
.snowtrace .dl-paywall-choice-line {font-size:11px;line-height:1.6}
.snowtrace .mint-legal {display:flex;gap:18px;margin:0;padding:0}
.snowtrace .mint-legal a {font:11px/1.5 var(--sans);color:var(--dl-ink2);text-decoration:none}
.snowtrace .mint-legal a:hover {color:var(--dl-ink)}
.snowtrace-browse {display:inline-block;margin-top:28px;color:var(--dl-accent-ink);font:400 13px/1.5 var(--sans);text-underline-offset:5px}
/* Persistent transport stays on the edge; the invitation dismisses when sound starts. */
#sphere-stage .dl-twelve-controls {left:20px;right:20px;bottom:12px;justify-content:flex-end;opacity:1;pointer-events:auto;gap:8px}
#sphere-stage .dl-twelve-controls button {border:1px solid var(--dl-line);border-radius:2px;background:var(--dl-panel);color:var(--dl-ink);font:12px/1.4 var(--sans);min-height:40px;padding:8px 13px}
@media(max-width:760px) {
  .snowtrace-intro,.snowtrace-offer-heading {grid-template-columns:1fr;gap:24px}
  .snowtrace-brand {margin-bottom:28px}
  .snowtrace-explanation {max-width:none}
  .snowtrace-path {gap:18px}
  .snowtrace-path li {display:block}
  .snowtrace-number {margin-bottom:12px}
  .snowtrace-path h3 {font-size:18px}
  .snowtrace .dl-paywall-choice-seats {gap:14px}
  .snowtrace-tokens {gap:14px}
  .snowtrace-tier {padding:18px}
  .snowtrace-tier-title h3 {font-size:25px}
  .snowtrace-tier-title > span {font-size:22px}
}
@media(max-width:480px) {
  .genesis > .snowtrace {padding:30px 22px}
  .snowtrace .dl-paywall-choice-seats {grid-template-columns:1fr}
  .snowtrace-tokens {grid-template-columns:1fr}
  .snowtrace-path {grid-template-columns:1fr;padding:24px 0;gap:22px;margin-top:26px}
  .snowtrace-path li {display:flex;gap:16px}
  .snowtrace-number {margin-bottom:0}
  .snowtrace-path p {max-width:none}
  .snowtrace-tier-title h3 {font-size:28px}
  .snowtrace p {font-size:14px}
  .snowtrace .snowtrace-motto {font-size:21px}
  .snowtrace .dl-paywall-choice-line {font-size:11px}
  #sphere-stage .dl-twelve-controls {left:14px;right:14px}
}
/* YOUR PRESENCE IN THE MMO (lane/your-presence-in-the-mmo, Oct 29 2026): one starter kit in one column, its door paused while the USDC road waits */
.snowtrace-offer-eyebrow {display:block;margin-bottom:12px;color:var(--dl-accent-ink);font:600 11px/1 var(--sans);letter-spacing:.24em;text-transform:uppercase}
.snowtrace .dl-paywall-choice-seats:has(> .snowtrace-kit:only-child) {grid-template-columns:minmax(0,600px)}
.snowtrace-kit {border-color:var(--dl-accent-edge);background:linear-gradient(145deg,white,var(--dl-panel2))}
.snowtrace .dl-paywall-choice-seats .snowtrace-kit button > span {margin-left:auto}
.snowtrace-kit-state {display:block;margin-top:10px;color:var(--dl-ink2);font:600 11px/1.4 var(--sans);letter-spacing:.18em;text-transform:uppercase}
.snowtrace .snowtrace-offer-coda {margin:22px 0 0;color:var(--dl-ink2);font:italic 15px/1.6 'Gelasio',Georgia,serif}
/* THE PATH TO THE KIT (lane/the-path-to-the-kit, Oct 29 2026): the offer in two lines over the kit, its second line said aloud; the kit opens on your Swarmy, her
   picture as you coloured her (taken at her Continue from her own renderer, dl-her-colours.js, this visit's alone) on her night; before she is made, the
   slot is the door to her making. Where the screen is wide the kit is her card: her on the left, the kit beside her; narrow, she stands over it. His JOIN THE
   $WARM lands here (dl-space-router.js KIT); the tokens' small print stands under the free way. */
.snowtrace .snowtrace-offer-heading p {max-width:none;color:var(--dl-ink);font:italic 400 clamp(20px,1.9vw,28px)/1.2 'Gelasio',Georgia,serif}
.snowtrace-kit {scroll-margin:24px}
.snowtrace-kit-her {margin:-26px -26px 22px;padding:0;height:clamp(200px,40vw,280px);overflow:hidden;border-bottom:1px solid var(--dl-accent-edge);
  background:radial-gradient(ellipse at 50% 58%,color-mix(in srgb,var(--dl-ink) 72%,var(--dl-accent) 28%),color-mix(in srgb,var(--dl-ink) 70%,black) 74%)}
.snowtrace .dl-paywall-choice-seats .snowtrace-kit-her button {display:grid;grid-template:minmax(0,1fr)/minmax(0,1fr);place-items:center;width:100%;height:100%;min-height:0;margin:0;
  padding:0;border:0;border-radius:0;background:none;box-shadow:none;color:var(--dl-accent-light);font:italic 400 clamp(20px,2vw,26px)/1.2 var(--serif);text-align:center;cursor:pointer}
.snowtrace .dl-paywall-choice-seats .snowtrace-kit-her button > span {margin:0}
.snowtrace .dl-paywall-choice-seats .snowtrace-kit-her button span span {margin-left:.35em}
.snowtrace-kit-her img {grid-area:1/1;height:100%;width:auto;max-width:100%;object-fit:contain;filter:drop-shadow(0 12px 22px rgba(0,0,0,.55));transition:transform .2s ease}
.snowtrace-kit-her img:not([hidden]) + span {display:none}
.snowtrace .dl-paywall-choice-seats .snowtrace-kit-her button:hover img {transform:scale(1.04)}
.snowtrace .dl-paywall-choice-seats .snowtrace-kit-her button:hover > span {color:white}
.snowtrace .dl-paywall-choice-seats .snowtrace-kit-her button:focus-visible {outline:2px solid var(--dl-accent-light);outline-offset:-6px}
.snowtrace-free + .snowtrace-tokens {border-top:0;padding-top:0}
@media(min-width:900px) {
  .snowtrace .dl-paywall-choice-seats:has(> .snowtrace-kit:only-child) {grid-template-columns:minmax(0,980px)}
  .snowtrace-kit {display:grid;grid-template-columns:minmax(300px,.85fr) minmax(0,1fr);column-gap:30px;align-content:start}
  .snowtrace-kit > * {grid-column:2}
  .snowtrace-kit > .snowtrace-kit-her {grid-column:1;grid-row:1/span 6;height:auto;min-height:420px;margin:-26px 0 -26px -26px;border-bottom:0;border-right:1px solid var(--dl-accent-edge)}
}
@media(max-width:760px) {.snowtrace-kit-her {margin:-18px -18px 18px}}
@media(prefers-reduced-motion:reduce) {.snowtrace-kit-her img {transition:none}}
/* STAKE, DON'T SPEND (lane/stake-dont-spend, Oct 29 2026): the kit is a stake; under its lines, in the lines' ink, the plain scale: it works when a lot of
   stake moves. Her card spans the kit's six rows where the screen is wide. */
.snowtrace-kit > .snowtrace-kit-scale {margin:-8px 0 20px;color:var(--dl-ink2);font:400 12px/1.5 var(--sans)}
/* WHY OUR ROUTER (lane/why-our-router, Oct 29 2026): his answer under the router's line, small, the work it funds named and linked to its public code */
.snowtrace .snowtrace-offer-heading p.snowtrace-offer-why {margin-top:10px;max-width:440px;color:var(--dl-ink2);font:400 14px/1.5 var(--sans)}
.snowtrace-offer-why a {color:var(--dl-accent-ink);text-underline-offset:4px}
.snowtrace-offer-why a:hover {color:var(--dl-ink)}
/* PRE-DEPOSITS FOR THE SPACE ROUTER (dl-kit-deposit.js): the kit's form */
.snowtrace-kit [data-deposit] {margin-top:10px}
.snowtrace-kit-link {display:grid;gap:10px;margin-top:14px}
.snowtrace-kit-link label {display:grid;gap:6px;color:var(--dl-ink2);font:600 11px/1.4 var(--sans);letter-spacing:.12em;text-transform:uppercase}
.snowtrace-kit-link input {font:14px/1.4 var(--mono,ui-monospace,monospace);padding:10px 12px;border:1px solid var(--dl-accent-edge);border-radius:8px;background:white;color:inherit;min-width:0}
.snowtrace-kit-say {margin:0;color:var(--dl-ink2);font:13px/1.5 var(--sans)}
.snowtrace-kit-key {display:flex;gap:8px;align-items:center;margin:0}
.snowtrace-kit-key code {flex:1;min-width:0;overflow-wrap:anywhere;font:12px/1.4 var(--mono,ui-monospace,monospace)}
/* THE ONE OFFER (lane/one-offer-fill-your-tank; his Oct 30 2026 ruling relayed by flask: "simply collapse into 1 ... forget the minting of the lyssajudron
   that is some nft bullshit... keep the gas tank refuelment"): the refuel card stands alone under the governance film, outside #mint, so it carries the
   offer's button rules itself. */
.dl-refuel {width:min(600px,calc(100% - 32px));margin:clamp(40px,8vw,96px) auto;scroll-margin:24px}
.dl-refuel .snowtrace-kit > button,.dl-refuel .snowtrace-kit-link > button {width:100%;display:flex;align-items:center;gap:8px;padding:14px 17px;min-height:52px;margin:10px 0 0;border-radius:2px;border:1px solid var(--dl-accent-edge);background:transparent;color:var(--dl-ink);font:500 13px/1.3 var(--sans);text-align:left;cursor:pointer}
.dl-refuel .snowtrace-kit > .dl-paywall-gold {background:linear-gradient(100deg,var(--dl-ink),color-mix(in srgb,var(--dl-ink) 92%,black));color:var(--dl-accent-light);border-color:var(--dl-accent);box-shadow:inset 0 1px color-mix(in srgb,var(--dl-accent-light) 20%,transparent)}
.dl-refuel .snowtrace-kit > .dl-paywall-gold:hover:not(:disabled) {color:white;border-color:var(--dl-accent-edge)}
.dl-refuel button:disabled {opacity:.5;cursor:default}
.dl-refuel button:focus-visible {outline:2px solid var(--dl-accent-ink);outline-offset:5px}
.dl-refuel .snowtrace-deposit-state {display:block;margin-top:10px;color:var(--dl-ink2);font:600 11px/1.4 var(--sans);letter-spacing:.18em;text-transform:uppercase}
.dl-refuel .snowtrace-kit {display:block}   /* no picture column: the kit's wide grid keeps its first column for her picture */
