/* ===========================================================
   Shiny Nails Croydon – "Shake the Shiny Tree" (/christmas-tree) + the teaser card on /christmas
   Same holiday palette as christmas.css: emerald, bordeaux and onyx velvet, champagne foil.
   Animated by assets/js/tree.js; artwork from tree_svg() in inc/tree.php.
   =========================================================== */
.tt-page,.xmas-page{
  --tt-ivory:#f7efdf;--tt-champ:#ecd49a;--tt-champ-soft:rgba(236,212,154,.72);--tt-hair:rgba(236,212,154,.28);
  --tt-card:#fffdf8;--tt-line:var(--line);
}
html[data-theme=dark] .tt-page{--tt-card:#140f0a;--tt-line:#2f2416}
.tt-page .sr-only,.tt-teaser .sr-only{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}
@keyframes ttFoil{to{background-position:260% center}}

/* ---------- the tree artwork (shared) ---------- */
.tt-svg{display:block;width:100%;height:100%;overflow:visible}
.tt-light{animation:ttTwinkle 3s ease-in-out infinite alternate;will-change:opacity}
@keyframes ttTwinkle{0%{opacity:.28}45%{opacity:1}70%{opacity:.62}100%{opacity:.9}}
.tt-sweep{animation:ttSweep 6.5s cubic-bezier(.45,0,.2,1) infinite;transform-box:view-box}
@keyframes ttSweep{0%,55%{translate:-46px 0}85%,100%{translate:64px 0}}
.tt-halo{transform-origin:200px 58px;animation:ttHalo 5.5s ease-in-out infinite}
@keyframes ttHalo{0%,100%{opacity:.75;transform:scale(.92)}50%{opacity:1;transform:scale(1.08)}}
.tt-glint{opacity:0;transition:opacity .5s ease}
.tt-snow{transition:opacity 1.2s ease}

/* ---------- hero: always a dark campaign scene ---------- */
.tt-hero{position:relative;isolation:isolate;overflow:hidden;color:var(--tt-ivory);padding:44px 0 72px;
  background:
    radial-gradient(900px 560px at 82% 18%,rgba(17,84,63,.5),transparent 62%),
    radial-gradient(760px 520px at 0% 100%,rgba(122,24,52,.42),transparent 60%),
    radial-gradient(520px 320px at 74% 70%,rgba(201,164,92,.09),transparent 70%),
    linear-gradient(170deg,#07130f 0%,#0a0807 50%,#130509 100%)}
.tt-hero::before,.tt-hero::after{content:"";position:absolute;left:0;right:0;height:1px;background:var(--foil);opacity:.6;z-index:1}
.tt-hero::before{top:0}.tt-hero::after{bottom:0}
.tt-snowfall{position:absolute;inset:0;width:100%;height:100%;z-index:-1;pointer-events:none}
.tt-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,480px);gap:64px;align-items:center}
.tt-crumbs{display:flex;flex-wrap:wrap;gap:.6em;font-size:.8rem;letter-spacing:.06em;color:rgba(247,239,223,.55);margin-bottom:34px}
.tt-crumbs a{color:rgba(247,239,223,.8);text-decoration:none}.tt-crumbs a:hover{color:#fff;text-decoration:underline}
.tt-kicker{display:flex;align-items:center;gap:14px;font:500 .72rem var(--sans);letter-spacing:.34em;text-transform:uppercase;color:var(--tt-champ);margin:0 0 22px}
.tt-rule{width:44px;height:1px;background:var(--foil)}
.tt-title{margin:0 0 24px;color:var(--tt-ivory);font-weight:500;line-height:.92;letter-spacing:-.015em;font-size:clamp(3.3rem,7.2vw,6.6rem)}
.tt-title > span,.tt-title > em{display:block}
.tt-t1{font:500 clamp(.8rem,1.3vw,1rem)/1 var(--sans);letter-spacing:.5em;text-transform:uppercase;color:var(--tt-champ);margin:0 0 .6rem .2em}
.tt-t2{font-style:italic;font-weight:500;background:linear-gradient(100deg,#9f7a36 0%,#e8cd8c 20%,#fff6dc 38%,#d9b46c 55%,#f4e2b0 72%,#a17a35 100%);background-size:240% auto;
  -webkit-background-clip:text;background-clip:text;color:transparent;animation:ttFoil 9s linear infinite;padding:0 .1em .06em 0;margin-left:-.04em}
.tt-t3{font-size:.62em;font-weight:500;color:var(--tt-ivory);margin-top:.04em;padding-left:.9em}
.tt-lead{font-size:1.1rem;font-weight:300;line-height:1.7;color:rgba(247,239,223,.8);max-width:46ch;margin:0 0 30px}
.tt-hero .btn-ghost{color:var(--plum);border-color:var(--plum)}
.tt-page .tt-btn-line{background:rgba(10,8,7,.18);color:var(--tt-ivory);border:1px solid var(--tt-champ-soft)}
.tt-page .tt-btn-line:hover{background:rgba(236,212,154,.12);border-color:var(--tt-champ);color:#fff}
.tt-ctas{display:flex;flex-wrap:wrap;gap:14px}

/* state panel: every view sits in the same grid cell, so switching never moves the layout */
.tt-views{display:grid;min-height:196px;max-width:500px}
.tt-view{grid-area:1/1;align-self:start;opacity:1;transform:none;transition:opacity .55s var(--ease),transform .7s var(--ease),visibility 0s 0s}
.tt-view[hidden]{display:block;visibility:hidden;opacity:0;transform:translateY(10px) scale(.985);pointer-events:none;transition:opacity .35s var(--ease),transform .5s var(--ease),visibility 0s .35s}
.tt-v-eyebrow{font:500 .7rem var(--sans);letter-spacing:.3em;text-transform:uppercase;color:var(--tt-champ);margin:0 0 .6rem}
.tt-v-title{font:500 clamp(1.6rem,2.6vw,2.1rem)/1.12 var(--serif);color:#fff6dc;margin:0 0 .6rem;max-width:22ch}
.tt-v-lead{color:rgba(247,239,223,.78);margin:0 0 22px;max-width:46ch}
.tt-v-lead strong{color:#fff6dc;font-weight:500;word-break:break-word}
.tt-note{font-size:.84rem;color:rgba(247,239,223,.55);margin:16px 0 0;letter-spacing:.02em}
.tt-count{display:flex;align-items:center;gap:18px;margin:0 0 24px}
.tt-count b{font:500 4.6rem/.9 var(--serif);font-feature-settings:"lnum" 1;background:linear-gradient(180deg,#fff6dc,#d9b46c 70%,#9f7a36);-webkit-background-clip:text;background-clip:text;color:transparent;min-width:.6em;text-align:center}
.tt-count > span{font:500 .74rem/1.6 var(--sans);letter-spacing:.28em;text-transform:uppercase;color:var(--tt-champ);padding-left:18px;border-left:1px solid var(--tt-hair)}
.tt-count small{font:italic 500 1.05rem var(--serif);letter-spacing:0;text-transform:none;color:rgba(247,239,223,.7)}
.tt-count b.bump{animation:ttBump .7s var(--ease)}
@keyframes ttBump{0%{transform:scale(1)}35%{transform:scale(.8);opacity:.4}100%{transform:scale(1);opacity:1}}
.tt-shake-btn{padding:1.05em 2.2em;font-size:1rem}
.tt-shake-btn[disabled]{opacity:.65}
.tt-error{margin:18px 0 0;padding:12px 16px;border-radius:12px;border:1px solid rgba(233,160,178,.4);background:rgba(110,21,48,.35);color:#fde8ee;font-size:.92rem;max-width:480px}

/* ---------- the stage: an arched window onto the tree ---------- */
.tt-stage-wrap{justify-self:center;width:100%;max-width:480px}
.tt-stage{position:relative;width:100%;aspect-ratio:400/540;touch-action:pan-y;-webkit-user-select:none;user-select:none;cursor:grab}
.tt-stage.is-drag{cursor:grabbing}
.tt-arch{position:absolute;inset:0;border-radius:999px 999px 28px 28px;overflow:hidden;
  background:radial-gradient(120% 70% at 50% 30%,rgba(30,82,63,.55) 0%,rgba(9,32,24,.55) 45%,rgba(4,12,9,.78) 100%),linear-gradient(180deg,rgba(10,8,7,.2),rgba(10,8,7,.75) 86%,#080605);
  border:1px solid rgba(236,212,154,.5);box-shadow:0 0 0 7px rgba(10,8,7,.55),0 0 0 8px rgba(236,212,154,.2),0 40px 90px rgba(0,0,0,.6);transform:translateZ(0)}
.tt-arch::before{content:"";position:absolute;left:0;right:0;bottom:0;height:13%;background:linear-gradient(180deg,rgba(0,0,0,0),rgba(0,0,0,.45));pointer-events:none;z-index:1}
.tt-arch-glow{position:absolute;inset:0;border-radius:inherit;pointer-events:none;z-index:3;box-shadow:inset 0 0 70px rgba(0,0,0,.6);background:linear-gradient(180deg,rgba(255,240,205,.06),transparent 26%)}
.tt-cam{position:absolute;inset:0;padding:3% 3% 2%;transform-origin:50% 92%;transition:transform 1.1s cubic-bezier(.2,.7,.2,1)}
.tt-cam.is-push{transform:scale(1.16) translateY(-1%)}
.tt-fx{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;z-index:2}
.tt-cap{display:flex;justify-content:space-between;gap:12px;margin:22px 4px 0;font:500 .66rem var(--sans);letter-spacing:.3em;text-transform:uppercase;color:var(--tt-champ-soft)}
.tt-stage:focus-visible{outline:2px solid var(--tt-champ);outline-offset:10px;border-radius:999px 999px 28px 28px}

/* lights flare and baubles catch the light while the tree moves */
.tt-stage.is-shaking .tt-light{animation:ttFlare .22s ease-in-out infinite alternate}
@keyframes ttFlare{0%{opacity:.6}100%{opacity:1}}
.tt-stage.is-shaking .tt-glint{opacity:.95;transition-duration:.15s}
.tt-stage.is-shaken .tt-snow{opacity:.18}

/* ---------- the falling gift ---------- */
.tt-drop{position:absolute;left:0;top:0;width:30%;aspect-ratio:120/130;transform-origin:50% 100%;opacity:0;will-change:transform,opacity;pointer-events:none;z-index:1}
.tt-drop.is-rest{opacity:1}
.tt-box{position:absolute;inset:0;width:100%;height:100%;overflow:visible}
.tt-box .bx-lid,.tt-box .bx-loop,.tt-box .bx-tail,.tt-box .bx-band,.tt-box .bx-glow{transform-box:fill-box;transition:transform .6s cubic-bezier(.3,.9,.3,1.15),opacity .45s ease}
.tt-box .bx-loop-l{transform-origin:100% 100%}.tt-box .bx-loop-r{transform-origin:0 100%}
.tt-box .bx-tail{transform-origin:50% 0}
.tt-box .bx-lid{transform-origin:15% 100%}
.tt-drop.untie .bx-loop-l{transform:rotate(-38deg) scale(.15);opacity:0}
.tt-drop.untie .bx-loop-r{transform:rotate(38deg) scale(.15);opacity:0}
.tt-drop.untie .bx-tail-l{transform:translate(-8px,22px) rotate(30deg);opacity:0}
.tt-drop.untie .bx-tail-r{transform:translate(8px,22px) rotate(-30deg);opacity:0}
.tt-drop.untie .bx-band{transform:scaleY(.05);opacity:0;transition-delay:.18s}
.tt-drop.open .bx-lid{transform:translate(-10%,-150%) rotate(-24deg);opacity:0;transition:transform .85s cubic-bezier(.2,.8,.25,1),opacity .6s ease .35s}
.tt-drop.open .bx-glow{opacity:1}
.tt-burst{position:absolute;left:50%;top:38%;width:300%;aspect-ratio:1;translate:-50% -50%;pointer-events:none;opacity:0;transform:scale(.15);
  background:radial-gradient(closest-side,rgba(255,250,235,.95),rgba(255,231,168,.6) 22%,rgba(236,212,154,.18) 48%,rgba(236,212,154,0) 70%);border-radius:50%;mix-blend-mode:screen}
.tt-burst i{position:absolute;inset:-10%;border-radius:50%;
  background:repeating-conic-gradient(from 0deg,rgba(255,240,200,.55) 0deg 2deg,rgba(255,240,200,0) 2deg 15deg);
  -webkit-mask:radial-gradient(closest-side,#000 10%,rgba(0,0,0,.6) 40%,transparent 75%);mask:radial-gradient(closest-side,#000 10%,rgba(0,0,0,.6) 40%,transparent 75%)}
.tt-drop.open .tt-burst{animation:ttBurst 2.6s cubic-bezier(.15,.75,.25,1) forwards}
.tt-drop.open .tt-burst i{animation:ttRays 6s linear infinite}
@keyframes ttBurst{0%{opacity:0;transform:scale(.15)}12%{opacity:1}40%{opacity:.9;transform:scale(1)}100%{opacity:.35;transform:scale(1.15)}}
@keyframes ttRays{to{transform:rotate(360deg)}}
.tt-drop.fade{opacity:0!important;transition:opacity .6s ease}

/* ---------- the prize card ---------- */
.tt-card{position:absolute;left:50%;top:44%;width:min(370px,94%);z-index:5;translate:-50% -46%;perspective:1100px}
.tt-card[hidden]{display:block;visibility:hidden;pointer-events:none}
.tt-card-in{position:relative;padding:34px 30px 26px;text-align:center;border-radius:20px;color:var(--plum,#2b2116);
  background:radial-gradient(130% 80% at 50% 0%,#fffdf7 0%,#fbf4e3 55%,#f3e7cb 100%);
  box-shadow:inset 0 0 0 8px rgba(255,253,247,.0),inset 0 0 0 9px rgba(201,164,92,.55),inset 0 0 0 10px rgba(255,253,247,.7),0 30px 80px rgba(0,0,0,.55),0 0 0 1px rgba(201,164,92,.7);
  transform-origin:50% 100%;transform:rotateX(-82deg) translateY(30px) scale(.9);opacity:0;transition:transform .95s cubic-bezier(.2,.85,.25,1.08),opacity .22s ease}
.tt-card.in .tt-card-in{transform:none;opacity:1}
.tt-card.out .tt-card-in{transform:translateY(16px) scale(.96);opacity:0;transition-duration:.45s}
.tt-card-in::before{content:"";position:absolute;inset:16px;border:1px solid rgba(201,164,92,.28);border-radius:12px;pointer-events:none}
.tt-card-star{margin:0 auto 10px;width:28px;height:28px}
.tt-card-eyebrow{font:500 .64rem var(--sans);letter-spacing:.32em;text-transform:uppercase;color:#9f7a36;margin:0 0 10px}
.tt-card-title{font:italic 500 clamp(1.9rem,4.4vw,2.35rem)/1.05 var(--serif);color:#2b2116;margin:0 0 10px;outline:none}
.tt-card.is-grand .tt-card-title{background:linear-gradient(100deg,#7d5a22,#c9a45c 30%,#8f6a2c 55%,#b8924a 80%,#6b4b1a);-webkit-background-clip:text;background-clip:text;color:transparent}
.tt-card-desc{font-size:.93rem;line-height:1.55;color:#6d5f4c;margin:0 auto 16px;max-width:30ch}
.tt-card-code{display:flex;align-items:center;gap:10px;justify-content:space-between;margin:0 0 12px;padding:10px 10px 10px 16px;border:1px dashed rgba(159,122,54,.7);border-radius:12px;background:rgba(255,255,255,.55)}
.tt-card-code[hidden]{display:none}
.tt-card-code-l{font:500 .58rem var(--sans);letter-spacing:.24em;text-transform:uppercase;color:#9f7a36;text-align:left;line-height:1.3;width:3.6em}
.tt-card-code code{flex:1;font:600 1.12rem/1 ui-monospace,Menlo,Consolas,monospace;letter-spacing:.12em;color:#2b2116;text-align:center}
.tt-copybtn{display:inline-flex;align-items:center;gap:6px;border:0;border-radius:999px;padding:8px 13px;background:#2b2116;color:#f7efdf;font:500 .78rem var(--sans);letter-spacing:.04em;cursor:pointer}
.tt-copybtn .ico-svg{display:none}
.tt-copybtn.done{background:#1d5b2c}.tt-copybtn.done .ico-svg{display:inline-block}
.tt-card-meta{font-size:.78rem;color:#8a7a62;margin:0 0 18px;letter-spacing:.02em}
.tt-card-ctas{display:flex;flex-wrap:wrap;gap:10px;justify-content:center}
.tt-card-ctas .btn{flex:1 1 auto}
.tt-card .btn-ghost{color:#2b2116;border-color:rgba(43,33,22,.45)}
.tt-card .btn-ghost:hover{background:#2b2116;color:#fff}
.tt-card-left{margin:14px 0 0;font:italic 500 1rem var(--serif);color:#7d6f5d}
.tt-card-left:empty{display:none}

/* ---------- my gifts ---------- */
.tt-head{text-align:center;max-width:680px;margin:0 auto 44px}
.tt-eyebrow{display:inline-flex;align-items:center;gap:.7em;font:500 .74rem/1.4 var(--sans);letter-spacing:.3em;text-transform:uppercase;color:var(--gold-2);margin:0 0 .9rem}
.tt-head .tt-eyebrow::before,.tt-head .tt-eyebrow::after{content:"";width:28px;height:1px;background:currentColor;opacity:.6}
.tt-head h2{font-size:clamp(2.3rem,4.6vw,3.4rem);margin:0 0 .3em}
.tt-head h2 em{font-style:italic;font-weight:500;background:linear-gradient(100deg,#7d5a22 0%,#b8924a 22%,#d9b46c 42%,#e9cf8f 52%,#c9a45c 66%,#8f6a2c 100%);background-size:260% auto;-webkit-background-clip:text;background-clip:text;color:transparent;animation:ttFoil 7s linear infinite;padding-right:.06em}
html[data-theme=dark] .tt-head h2 em{background-image:var(--foil)}
.tt-sub{color:var(--muted);margin:0 auto;max-width:58ch}
html[data-theme=dark] .tt-eyebrow{color:var(--tt-champ)}
.tt-gifts-sec{padding:88px 0 40px;background:var(--cream)}
.tt-gift-list{list-style:none;margin:0 auto;padding:0;max-width:860px;display:grid;gap:12px}
.tt-gift-row{display:grid;grid-template-columns:48px minmax(0,1fr) auto;gap:18px;align-items:center;padding:18px 22px;border-radius:18px;background:var(--tt-card);border:1px solid var(--tt-line);box-shadow:var(--shadow-sm)}
.tt-gift-row.is-new{animation:ttRowIn .9s var(--ease)}
@keyframes ttRowIn{from{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:none}}
.tt-gift-row.is-grand{border-color:rgba(201,164,92,.7);background:linear-gradient(120deg,var(--tt-card),rgba(236,212,154,.18))}
.tt-gr-ico{width:48px;height:48px;border-radius:50%;display:grid;place-items:center;color:#2b1d24;background:var(--metal);box-shadow:inset 0 1px 0 rgba(255,255,255,.6),0 6px 14px rgba(159,122,54,.25)}
.tt-gr-ico .ico-svg{width:20px;height:20px}
.tt-gr-main{display:flex;flex-direction:column;min-width:0}
.tt-gr-main strong{font:600 1.3rem/1.15 var(--serif);color:var(--plum)}
.tt-gr-main small{color:var(--muted);font-size:.86rem;line-height:1.45;margin-top:2px}
.tt-gr-meta{font-size:.74rem;letter-spacing:.04em;color:var(--muted);margin-top:4px;opacity:.85}
.tt-gr-side{display:flex;flex-direction:column;align-items:flex-end;gap:8px}
.tt-code{font:600 .9rem ui-monospace,Menlo,Consolas,monospace;letter-spacing:.1em;padding:5px 10px;border-radius:8px;border:1px dashed var(--line-2);color:var(--plum);background:rgba(236,212,154,.12);-webkit-user-select:all;user-select:all}
.tt-gr-pts{font:600 1.15rem var(--serif);color:var(--gold-2)}
html[data-theme=dark] .tt-gr-pts{color:var(--tt-champ)}
.tt-pill{display:inline-block;padding:.2em .8em;border-radius:999px;font-size:.72rem;letter-spacing:.06em;font-weight:500;white-space:nowrap}
.tt-pill-unused,.tt-pill-new{background:var(--ok-bg);color:var(--ok)}
.tt-pill-added{background:var(--info-bg);color:var(--plum-2)}
.tt-pill-used{background:var(--info-bg);color:var(--muted)}
.tt-pill-expired,.tt-pill-unavailable{background:rgba(0,0,0,.06);color:var(--muted)}
html[data-theme=dark] .tt-pill-unused,html[data-theme=dark] .tt-pill-new{background:rgba(52,140,80,.18);color:#9fdcb0}
html[data-theme=dark] .tt-pill-added,html[data-theme=dark] .tt-pill-used{background:rgba(236,212,154,.12);color:var(--tt-champ)}
html[data-theme=dark] .tt-pill-expired{background:rgba(255,255,255,.06)}
.tt-gift-row[data-status=used],.tt-gift-row[data-status=expired]{opacity:.72}
.tt-gift-row[data-status=used] .tt-code,.tt-gift-row[data-status=expired] .tt-code{text-decoration:line-through;text-decoration-thickness:1px}
.tt-gift-empty{text-align:center;color:var(--muted);font-style:italic;font-family:var(--serif);font-size:1.25rem;padding:26px;border:1px dashed var(--line-2);border-radius:18px}

/* ---------- how it works + prize table ---------- */
.tt-how{padding:88px 0 96px;background:var(--cream)}
.tt-gifts-sec + .tt-how{padding-top:56px}
.tt-steps{list-style:none;margin:0 0 64px;padding:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:26px}
.tt-steps li{position:relative;padding:34px 30px 30px;border-radius:22px;background:var(--tt-card);border:1px solid var(--tt-line);box-shadow:var(--shadow-sm)}
.tt-step-no{display:block;font:italic 500 2.6rem/1 var(--serif);background:var(--foil);background-size:200% auto;-webkit-background-clip:text;background-clip:text;color:transparent;margin-bottom:14px}
.tt-steps h3{font-size:1.5rem;margin:0 0 .35em}
.tt-steps p{color:var(--muted);margin:0;font-size:.95rem}
.tt-under{max-width:860px;margin:0 auto;padding:40px 44px;border-radius:26px;color:var(--tt-ivory);position:relative;overflow:hidden;
  background:radial-gradient(600px 300px at 90% 0%,rgba(201,164,92,.2),transparent 60%),radial-gradient(120% 90% at 50% 22%,#1f5c47 0%,#0b2d22 52%,#04120c 100%);border:1px solid rgba(236,212,154,.35);box-shadow:var(--shadow)}
.tt-under-h{color:#fff6dc;font-weight:500;font-size:clamp(1.7rem,3vw,2.2rem);margin:0 0 18px;text-align:center}
.tt-prize-list{list-style:none;margin:0;padding:0}
.tt-prize-list li{display:flex;justify-content:space-between;align-items:center;gap:18px;padding:14px 0;border-bottom:1px solid rgba(236,212,154,.16)}
.tt-prize-list li:last-child{border-bottom:0}
.tt-pl-name{display:flex;flex-direction:column;font:500 1.22rem/1.2 var(--serif);color:var(--tt-ivory)}
.tt-pl-name small{font:300 .84rem/1.45 var(--sans);color:rgba(247,239,223,.62);margin-top:3px}
.tt-pl-odds{flex:none;text-align:right;font:500 .74rem var(--sans);letter-spacing:.16em;text-transform:uppercase;color:var(--tt-champ)}
.tt-pl-odds small{display:block;letter-spacing:.06em;text-transform:none;color:rgba(247,239,223,.6);font-weight:400;margin-top:3px}
.tt-prize-list li.is-grand .tt-pl-name{color:#fff6dc}
.tt-prize-list li.is-gone{opacity:.5}
.tt-badge{display:inline-block;vertical-align:.25em;margin-left:.4em;padding:.25em .7em;border-radius:999px;font:500 .58rem var(--sans);letter-spacing:.2em;text-transform:uppercase;color:#2b1d24;background:var(--metal)}

/* ---------- small print ---------- */
.tt-terms{padding:64px 0 88px;background:var(--ivory);border-top:1px solid var(--line)}
html[data-theme=dark] .tt-terms{background:#0e0a07}
.tt-terms-in{max-width:760px}
.tt-terms h2{font-size:1.8rem;margin:0 0 14px}
.tt-terms ul{margin:0;padding-left:1.1em;color:var(--muted);font-size:.9rem;display:grid;gap:6px}

/* ---------- teaser card on /christmas ---------- */
.tt-teaser-sec{padding:56px 0 0;background:var(--cream)}
.tt-teaser{position:relative;isolation:isolate;display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,.75fr);align-items:center;gap:28px;overflow:hidden;
  border-radius:28px;padding:44px 52px;color:var(--tt-ivory);text-decoration:none;min-height:300px;
  background:radial-gradient(520px 320px at 85% 30%,rgba(201,164,92,.18),transparent 62%),radial-gradient(700px 400px at 0% 100%,rgba(122,24,52,.45),transparent 62%),linear-gradient(160deg,#08160f 0%,#0a0807 60%,#14060a 100%);
  border:1px solid rgba(236,212,154,.38);box-shadow:var(--shadow-lg);transition:transform .5s var(--ease),box-shadow .5s var(--ease)}
.tt-teaser::before{content:"";position:absolute;inset:10px;border:1px solid rgba(236,212,154,.16);border-radius:20px;pointer-events:none}
.tt-teaser:hover{transform:translateY(-4px)}
.tt-teaser-k{display:flex;align-items:center;gap:12px;font:500 .68rem var(--sans);letter-spacing:.32em;text-transform:uppercase;color:var(--tt-champ);margin:0 0 16px}
.tt-teaser-t{display:block;font:500 clamp(2.3rem,4.6vw,3.6rem)/1 var(--serif);color:var(--tt-ivory);margin:0 0 14px}
.tt-teaser-t em{font-style:italic;background:linear-gradient(100deg,#9f7a36 0%,#e8cd8c 22%,#fff6dc 40%,#d9b46c 58%,#a17a35 100%);background-size:240% auto;-webkit-background-clip:text;background-clip:text;color:transparent;animation:ttFoil 9s linear infinite;padding-right:.05em}
.tt-teaser-p{display:block;color:rgba(247,239,223,.78);max-width:46ch;margin:0 0 24px;font-weight:300;line-height:1.65}
.tt-teaser .btn{pointer-events:none}
.tt-teaser-art{position:relative;justify-self:center;width:min(100%,250px);aspect-ratio:400/520;margin:6px 0 0}
.tt-teaser-art::before{content:"";position:absolute;inset:-7% -15% -4%;border-radius:999px 999px 18px 18px;border:1px solid rgba(236,212,154,.32);
  background:radial-gradient(90% 60% at 50% 35%,rgba(31,92,71,.55),rgba(8,22,16,.2) 70%,transparent);box-shadow:0 0 0 6px rgba(10,8,7,.35),0 0 0 7px rgba(236,212,154,.12)}
.tt-teaser-art .tt-svg{position:relative}
.tt-teaser-art .tt-svg{animation:ttIdleSway 7s ease-in-out infinite;transform-origin:50% 92%}
@keyframes ttIdleSway{0%,100%{transform:rotate(-.6deg)}50%{transform:rotate(.6deg)}}
.tt-teaser:hover .tt-teaser-art .tt-svg{animation:ttHoverShake 1s cubic-bezier(.36,.07,.19,.97) both}
@keyframes ttHoverShake{10%,90%{transform:rotate(-1deg)}20%,80%{transform:rotate(1.8deg)}30%,50%,70%{transform:rotate(-2.6deg)}40%,60%{transform:rotate(2.6deg)}}
.tt-teaser-note{display:block;font-size:.8rem;color:rgba(247,239,223,.55);margin-top:14px}

/* ---------- responsive ---------- */
@media (max-width:1080px){.tt-grid{gap:40px;grid-template-columns:minmax(0,1fr) minmax(0,420px)}}
@media (max-width:860px){
  .tt-hero{padding:28px 0 56px}
  .tt-grid{grid-template-columns:1fr;gap:28px}
  .tt-copy{display:contents}
  .tt-crumbs{order:1;margin-bottom:6px}
  .tt-kicker{order:2;margin-bottom:0}
  .tt-title{order:3;margin-bottom:0}
  .tt-lead{order:4;margin-bottom:0}
  .tt-stage-wrap{order:5;max-width:420px}
  .tt-views{order:6;max-width:none}
  .tt-error{order:7}
  .tt-steps{grid-template-columns:1fr;gap:16px}
  .tt-teaser{grid-template-columns:1fr;padding:36px 28px 0;text-align:left}
  .tt-teaser-art{width:min(64%,220px);margin:26px auto 40px}
}
@media (max-width:640px){
  .tt-title{font-size:clamp(3rem,15vw,4.2rem)}
  .tt-kicker{font-size:.62rem;letter-spacing:.24em;gap:10px}
  .tt-rule{width:26px}
  .tt-lead{font-size:1.02rem}
  .tt-ctas .btn{flex:1 1 100%}
  .tt-count b{font-size:4rem}
  .tt-cap{font-size:.58rem;letter-spacing:.18em}
  .tt-gifts-sec{padding:64px 0 24px}
  .tt-how{padding:64px 0 72px}
  .tt-gift-row{grid-template-columns:40px minmax(0,1fr);padding:16px;gap:12px 14px}
  .tt-gr-ico{width:40px;height:40px}
  .tt-gr-side{grid-column:2;flex-direction:row;align-items:center;justify-content:space-between;flex-wrap:wrap}
  .tt-under{padding:30px 22px}
  .tt-prize-list li{align-items:flex-start}
  .tt-pl-odds{max-width:34%}
  .tt-card-in{padding:28px 20px 20px}
  .tt-card-code{padding-left:12px}
  .tt-card-code code{font-size:1rem;letter-spacing:.08em}
  .tt-teaser-sec{padding-top:40px}
}
@media (max-width:380px){
  .tt-card-code-l{display:none}
}
@media (prefers-reduced-motion:reduce){
  .tt-light,.tt-sweep,.tt-halo,.tt-t2,.tt-head h2 em,.tt-teaser-t em,.tt-teaser-art .tt-svg,.tt-teaser:hover .tt-teaser-art .tt-svg{animation:none!important}
  .tt-light{opacity:.85}
  .tt-cam,.tt-view,.tt-view[hidden],.tt-teaser{transition:opacity .4s ease!important}
  .tt-view[hidden]{transform:none}
  .tt-card-in{transform:none!important;transition:opacity .5s ease!important}
  .tt-teaser:hover{transform:none}
}
/* fine film grain over the stage: a printed, photographic finish (static, drawn once) */
.tt-arch .tt-arch-glow::after{content:"";position:absolute;inset:0;border-radius:inherit;opacity:.09;mix-blend-mode:overlay;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 .9 0'/%3E%3C/filter%3E%3Crect width='160' height='160' filter='url(%23n)'/%3E%3C/svg%3E")}
.tt-teaser-copy{display:block;position:relative;z-index:1}
.tt-teaser-art .tt-svg{height:100%}
/* phones: the floating contact buttons step aside while a prize card is open */
@media (max-width:860px){html.tt-revealing .contact-rail{opacity:0;pointer-events:none;transition:opacity .3s}}
.tt-pl-name .tt-badge{align-self:flex-start;margin:.4em 0 .15em}
