/* ══════════════════════════════════════════════════════════
   MyMetaData — observatory design system
   Deep-space navy · amber-gold memories · mono data
   ══════════════════════════════════════════════════════════ */

/* Brand logo font — Milky Lemon (MJType, 100% free, self-hosted) */
@font-face{
  font-family:"Milky Lemon";
  src:url("fonts/Milky Lemon.ttf") format("truetype");
  font-weight:400;
  font-style:normal;
  font-display:swap;
}
/* Editorial headline serif — Playfair Display 700 (OFL, self-hosted, latin) */
@font-face{
  font-family:"Playfair Display";
  src:url("fonts/playfair-display-700.woff2") format("woff2");
  font-weight:700;
  font-style:normal;
  font-display:swap;
  unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;
}
/* Body sans — Inter 400+600 (OFL, self-hosted, latin) */
@font-face{
  font-family:"Inter";
  src:url("fonts/inter-latin.woff2") format("woff2");
  font-weight:100 900;
  font-style:normal;
  font-display:swap;
  unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;
}

:root{
  --ink:#06090f;
  --ink2:#0a0f1c;
  --panel:#0d1424;
  --panel2:#111a2e;
  --line:rgba(232,236,244,.09);
  --line2:rgba(242,184,75,.35);
  --star:#e8ecf4;
  --muted:#8a94a8;
  --muted2:#758094;
  --gold:#f2b84b;
  --gold2:#e8a33d;
  --brand-blue:#1877F2;
  --red:#ff5c5c;
  --green:#4ade80;
  --cyan:#5ad1e6;
  --mono:ui-monospace,"SF Mono",SFMono-Regular,Menlo,Consolas,monospace;
  --sans:"Inter",-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
  --serif:"Playfair Display","Times New Roman",Georgia,serif;
  --r:12px;
  --shadow:0 24px 60px rgba(0,0,0,.45);
  --ease:cubic-bezier(.22,.9,.3,1);
}

/* ── language switcher ── */
.lang-switch-wrap{display:inline-flex;align-items:center;line-height:1}
.lang-switch{background:rgba(232,236,244,.06);border:1px solid var(--line);border-radius:99px;color:var(--star);font-family:var(--mono);font-size:10px;letter-spacing:.12em;padding:4px 10px;cursor:pointer;transition:border-color .2s,background .2s}
.lang-switch:hover,.lang-switch:focus-visible{border-color:var(--line2);background:rgba(242,184,75,.08);outline:none}
.lang-switch option{background:var(--ink2);color:var(--star)}

*{box-sizing:border-box;margin:0;padding:0}
/* Keep the native HTML hidden attribute authoritative over component display rules. */
[hidden],#app[hidden],.modal-backdrop[hidden],.loading-overlay[hidden]{display:none!important}
html,body{height:100%}
body{
  font-family:var(--sans);
  background:var(--ink);
  color:var(--star);
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}
.mono{font-family:var(--mono);font-size:11px;letter-spacing:.06em}
.gold{color:var(--gold)}
button{font-family:inherit;cursor:pointer;border:none;background:none;color:inherit}
::selection{background:rgba(242,184,75,.3)}
:focus-visible{outline:2px solid var(--gold);outline-offset:2px;border-radius:4px}

/* ═══════════ VAULT / LANDING ═══════════ */
.vault{min-height:100vh;display:flex;flex-direction:column;align-items:center;position:relative;overflow-x:hidden}
.vault-stars{position:absolute;inset:0;background:
  radial-gradient(1px 1px at 20% 30%,rgba(255,255,255,.7),transparent 50%),
  radial-gradient(1px 1px at 70% 20%,rgba(255,255,255,.5),transparent 50%),
  radial-gradient(1.5px 1.5px at 40% 70%,rgba(90,209,230,.6),transparent 50%),
  radial-gradient(1px 1px at 85% 60%,rgba(255,255,255,.6),transparent 50%),
  radial-gradient(1px 1px at 10% 85%,rgba(242,184,75,.5),transparent 50%),
  radial-gradient(ellipse at 50% 120%,rgba(20,30,60,.9),transparent 60%);
  animation:twinkle 6s ease-in-out infinite alternate;}
@keyframes twinkle{from{opacity:.7}to{opacity:1}}

.brand{display:flex;flex-direction:column;align-items:center;gap:6px;animation:rise .8s var(--ease) both}
.brand-glyph{width:46px;height:46px;border-radius:50%;border:1px solid var(--line2);display:flex;align-items:center;justify-content:center;background:radial-gradient(circle at 30% 30%,rgba(242,184,75,.25),transparent 60%);box-shadow:0 0 30px rgba(242,184,75,.15)}
.brand-glyph .glyph-core{width:14px;height:14px;border-radius:50%;background:var(--gold);box-shadow:0 0 18px var(--gold),0 0 40px rgba(242,184,75,.6)}
.brand-glyph.small{width:44px;height:44px}
.brand-glyph.small .glyph-core{width:13px;height:13px}
.topbar-name .gold,.land-nav-name .gold{color:inherit}

@keyframes rise{from{opacity:0;transform:translateY(18px)}to{opacity:1;transform:none}}

/* vault door */
.vault-door{position:relative;width:190px;height:190px;animation:rise .8s var(--ease) .1s both}
.door-panel{position:absolute;top:0;bottom:0;width:50%;background:linear-gradient(180deg,#18233c,#0d1424);border:1px solid var(--line);transition:transform 1.1s var(--ease)}
.door-left{left:0;border-radius:14px 0 0 14px}
.door-right{right:0;border-radius:0 14px 14px 0}
.vault-door.open .door-left{transform:translateX(-104%)}
.vault-door.open .door-right{transform:translateX(104%)}
.door-handle{position:absolute;top:50%;width:8px;height:34px;background:var(--gold);border-radius:4px;box-shadow:0 0 14px rgba(242,184,75,.7)}
.door-left .door-handle{right:14px}
.door-right .door-handle{left:14px}
.door-seal{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:104px;height:104px;border-radius:50%;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;color:var(--gold);transition:opacity .5s,transform .9s var(--ease)}
.vault-door.open .door-seal{opacity:0;transform:translate(-50%,-50%) scale(2.2)}
.seal-label{font-family:var(--mono);font-size:9px;letter-spacing:.3em}
.seal-core{transform-origin:center;animation:sealSpin 16s linear infinite}
@keyframes sealSpin{to{transform:rotate(360deg)}}

/* CTA */
.dropzone{
  width:100%;padding:26px 20px;border:1px dashed var(--line2);border-radius:var(--r);
  background:rgba(242,184,75,.03);display:flex;flex-direction:column;align-items:center;gap:8px;
  transition:background .25s,border-color .25s,transform .25s;position:relative;overflow:hidden;
}
.dropzone:hover,.dropzone.dragging{background:rgba(242,184,75,.08);border-color:var(--gold);transform:translateY(-2px)}
.dropzone.dragging::after{content:"";position:absolute;inset:0;background:radial-gradient(circle at center,rgba(242,184,75,.15),transparent 70%);pointer-events:none}
.dz-icon{font-size:26px;color:var(--gold);animation:floaty 3s ease-in-out infinite}
@keyframes floaty{0%,100%{transform:translateY(0)}50%{transform:translateY(-6px)}}
.dz-title{font-size:15px;font-weight:600}
.dz-sub{color:var(--muted2)}
.dz-actions{display:flex;gap:10px;margin-top:4px}
.btn{
  padding:12px 22px;border-radius:10px;font-size:14px;font-weight:600;letter-spacing:.01em;
  transition:transform .18s,box-shadow .18s,background .18s,border-color .18s;position:relative;
}
.btn:hover{transform:translateY(-2px)}
.btn:active{transform:translateY(0)}
.btn-gold{background:linear-gradient(180deg,var(--gold),var(--gold2));color:#1a1206;box-shadow:0 8px 26px rgba(242,184,75,.35)}
.btn-gold:hover{box-shadow:0 12px 34px rgba(242,184,75,.5)}
.btn-ghost{border:1px solid var(--line);color:var(--star);background:rgba(255,255,255,.02)}
.btn-ghost:hover{border-color:var(--line2);color:var(--gold);background:rgba(242,184,75,.05)}
.btn-tiny{padding:6px 12px;font-size:11px;border-radius:8px}
.btn-spark{display:inline-block;margin-right:6px}
.meta-export-link{display:flex;flex-direction:column;align-items:center;gap:8px;color:var(--muted);text-decoration:none;font-size:30px;line-height:1.4;transition:color .2s,transform .2s}
.meta-export-link strong{color:var(--brand-blue);font-size:36px;letter-spacing:.02em}
.meta-export-link:hover{color:var(--star);transform:translateY(-1px)}
.meta-export-link:hover strong{text-decoration:underline;text-underline-offset:3px}
.vault-trust{color:var(--muted2);font-size:10px}
.privacy-pledge{font-size:12px;color:var(--star);letter-spacing:.02em;padding:12px 22px;border:1px solid rgba(90,209,230,.25);border-radius:10px;background:rgba(90,209,230,.04);line-height:1.65;max-width:520px;text-align:center}
@media(max-width:640px){.privacy-pledge{font-size:10px;padding:10px 16px}}
.disclosure{margin:16px auto 0;max-width:520px;text-align:left;border:1px solid var(--line);border-radius:10px;background:rgba(255,255,255,.015);overflow:hidden}
.disclosure-summary{list-style:none;cursor:pointer;padding:10px 14px;font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);display:flex;align-items:center;gap:8px;transition:color .2s,background .2s;user-select:none}
.disclosure-summary::-webkit-details-marker{display:none}
.disclosure-summary::before{content:"▸";color:var(--gold);font-size:11px;transition:transform .25s var(--ease)}
.disclosure[open] .disclosure-summary::before{transform:rotate(90deg)}
.disclosure-summary:hover{color:var(--star);background:rgba(255,255,255,.02)}
.disclosure-body{padding:0 14px 14px;font-size:11px;line-height:1.7;color:var(--muted)}
.disclosure-body p{margin:0 0 10px}
.disclosure-cols{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-bottom:10px}
@media(max-width:560px){.disclosure-cols{grid-template-columns:1fr}}
.disclosure-col ul{list-style:none;margin:6px 0 0;padding:0;display:flex;flex-direction:column;gap:4px}
.disclosure-col li{padding-left:0;font-size:10.5px}
.disclosure-h{font-size:10px;letter-spacing:.12em;text-transform:uppercase;font-weight:600}
.disclosure-h.gold{color:var(--gold)}
.disclosure-h.muted{color:var(--muted2)}
.disclosure-foot{margin:0;padding-top:10px;border-top:1px solid var(--line);color:var(--muted2);font-size:10px}

/* ═══════════ VAULT BY-THE-NUMBERS STRIP ═══════════ */
.vault-stats{width:100%;display:flex;flex-wrap:wrap;justify-content:center;align-items:center;gap:8px 24px;margin-top:2px;padding:12px 18px;border:1px solid var(--line);border-radius:var(--r);background:rgba(10,15,28,.55);backdrop-filter:blur(4px);animation:rise .8s var(--ease) .3s both}
.vs-item{display:flex;align-items:baseline;gap:6px}
.vs-item b{font-size:17px;font-weight:700;color:var(--gold);font-variant-numeric:tabular-nums;letter-spacing:-.01em;text-shadow:0 0 14px rgba(242,184,75,.35)}
.vs-item span{font-family:var(--mono);font-size:9px;letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}
.vs-line{width:100%;text-align:center;color:var(--muted2);font-size:10px;letter-spacing:.08em;text-transform:uppercase;margin-top:2px}
.vs-line b{color:var(--star);font-weight:600}
@media(max-width:640px){.vault-stats{gap:6px 18px;padding:10px 14px}.vs-item b{font-size:15px}}

/* ═══════════ LANDING PAGE — the 10k treatment ═══════════ */
.land-hero{position:relative;z-index:2;min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;width:100%;padding:150px 24px 70px;text-align:center}
.land-nav{position:absolute;top:0;left:0;right:0;z-index:5;display:flex;align-items:center;justify-content:space-between;gap:16px;padding:20px 28px;flex-wrap:wrap}
.land-nav .brand{flex-direction:row;align-items:center;gap:14px;animation:none}
.land-nav .brand-glyph{width:52px;height:52px;background:url("img/datavault-logo.png") center/cover no-repeat;border:0;box-shadow:none}
.land-nav .brand-glyph .glyph-core{display:none}
.land-nav-name{font-family:"Milky Lemon",var(--sans);font-size:78px;letter-spacing:.01em;color:var(--brand-blue);line-height:.9}
.land-nav-links{display:flex;gap:22px;align-items:center}
.land-nav-links a{color:var(--muted);text-decoration:none;font-size:11px;letter-spacing:.08em;transition:color .2s}
.land-nav-links a:hover{color:var(--gold)}
.land-hero-inner{position:relative;z-index:2;display:flex;flex-direction:column;align-items:center;gap:20px;max-width:760px;width:100%;text-align:center}
.land-kicker{font-family:var(--mono);font-size:11px;letter-spacing:.34em;text-transform:uppercase;color:var(--gold)}
.land-title{font-family:var(--serif);font-size:clamp(36px,5.6vw,66px);font-weight:700;letter-spacing:-.015em;line-height:1.06;text-wrap:balance}
.land-title .gold{color:var(--gold)}
/* word-by-word entrance: line 1 first, line 3 (the punchline) last + hardest */
.lt-line{display:block}
.lt-word{display:inline-block;animation:ltIn .5s var(--ease) var(--d,0s) backwards;will-change:transform,opacity,filter}
.lt-line-3 .lt-word{animation-name:ltPop}
.lt-line-3 .lt-word:last-child{text-shadow:0 0 26px rgba(242,184,75,.55)}
@keyframes ltIn{from{transform:translateY(24px) scale(.98);filter:blur(6px)}to{transform:none;filter:blur(0)}}
@keyframes ltPop{0%{transform:translateY(38px) scale(.9);filter:blur(12px)}55%{transform:translateY(-5px) scale(1.05);filter:blur(0)}100%{transform:none;filter:blur(0)}}
.land-sub{display:flex;align-items:center;justify-content:center;gap:12px;flex-wrap:wrap;font-family:var(--sans);font-size:14px;letter-spacing:.02em;color:#fff}
.land-brands{display:inline-flex;align-items:center;gap:10px}
.bl{display:block;flex:none}
.bl-fb{filter:drop-shadow(0 0 7px rgba(24,119,242,.45))}
.bl-ig{filter:drop-shadow(0 0 7px rgba(220,39,67,.4))}
.bl-wa{filter:drop-shadow(0 0 7px rgba(37,211,102,.4))}
.land-sub-text{color:#fff;font-weight:600}
.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}
.land-cta{display:flex;flex-direction:column;align-items:center;gap:16px;width:100%;max-width:480px;margin:8px auto 0}
.land-or{font-family:var(--mono);font-size:10px;letter-spacing:.3em;text-transform:uppercase;color:var(--muted2)}
.land-demo-btn{padding:14px 28px;font-size:15px}
.land-band{position:relative;z-index:2;width:100%;display:flex;justify-content:center;padding:44px 24px;border-top:1px solid var(--line);border-bottom:1px solid var(--line);background:linear-gradient(180deg,rgba(10,15,28,.6),rgba(10,15,28,.2))}
.land-band .vault-stats{border:none;background:none;backdrop-filter:none;animation:none;padding:0;max-width:980px}
.land-section{position:relative;z-index:2;width:100%;max-width:920px;margin:0 auto;padding:120px 28px;text-align:center}
.land-eyebrow{font-family:var(--mono);font-size:11px;letter-spacing:.3em;text-transform:uppercase;color:var(--gold);margin-bottom:14px}
.land-h2{font-family:var(--serif);font-size:clamp(28px,3.8vw,46px);font-weight:700;letter-spacing:-.01em;line-height:1.1;margin-bottom:16px;text-wrap:balance}
.land-lede{color:var(--muted);font-size:16px;line-height:1.9;max-width:640px;margin:0 auto 48px;text-wrap:pretty}
.land-features{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;text-align:left}
.lf{background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:22px;display:flex;flex-direction:column;gap:8px;transition:border-color .25s,transform .25s,background .25s}
.lf:hover{border-color:var(--line2);transform:translateY(-3px);background:var(--panel2)}
.lf-num{font-family:var(--mono);font-size:10px;letter-spacing:.2em;color:var(--gold)}
.lf b{font-size:16px;letter-spacing:-.01em}
.lf span{color:var(--muted);font-size:13px;line-height:1.65}
.land-steps{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;text-align:left;margin-bottom:36px}
.ls{background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:24px;display:flex;flex-direction:column;gap:10px;transition:border-color .25s,transform .25s}
.ls:hover{border-color:var(--line2);transform:translateY(-3px)}
.ls-num{width:38px;height:38px;border-radius:50%;border:1px solid var(--line2);color:var(--gold);display:flex;align-items:center;justify-content:center;font-size:16px;font-weight:700}
.ls b{font-size:15px;letter-spacing:-.01em}
.ls span{color:var(--muted);font-size:13px;line-height:1.65}
.land-export{flex-direction:row;align-items:center;gap:10px;font-size:13px;display:inline-flex;padding:14px 26px;border:1px solid rgba(24,119,242,.45);border-radius:10px;background:rgba(24,119,242,.07);transition:all .25s;justify-content:center}
.land-export strong{font-size:13px;color:var(--brand-blue)}
.land-export:hover{background:rgba(24,119,242,.14);transform:translateY(-2px)}
.land-export-hero{font-size:15px;padding:16px 30px;border-radius:12px;box-shadow:0 0 26px rgba(24,119,242,.14);margin-top:-6px}
.land-export-hero strong{font-size:15px;letter-spacing:.04em}

/* ── export guide: 5-click walkthrough — clockwise loop (1→2→3→4→5) ── */
.land-export-guide{padding-top:44px;border-top:1px solid var(--line)}
.export-steps{max-width:960px;margin:0 auto 36px;display:grid;grid-template-columns:1fr 64px 1fr;grid-template-areas:"s1 ar s2"". . d1""s4 al s3"". d2 .""s5 s5 s5";align-items:center;gap:20px 0}
.es-s1{grid-area:s1}.es-s2{grid-area:s2}.es-s3{grid-area:s3}.es-s4{grid-area:s4}.es-s5{grid-area:s5}
.es-ar-r{grid-area:ar}.es-ar-d1{grid-area:d1}.es-ar-l{grid-area:al}.es-ar-d2{grid-area:d2}
.es-card{width:100%;display:flex;gap:18px;align-items:center;background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:22px 24px;text-align:left;transition:border-color .25s,transform .25s,background .25s}
.es-card:hover{border-color:var(--line2);transform:translateY(-3px);background:var(--panel2)}
.es-num{flex:none;width:42px;height:42px;border-radius:50%;border:1px solid var(--line2);background:rgba(242,184,75,.08);color:var(--gold);display:flex;align-items:center;justify-content:center;font-size:17px;font-weight:700;font-family:var(--mono)}
.es-body{flex:1;min-width:0;display:flex;flex-direction:column;gap:8px}
.es-body b{font-size:16px;letter-spacing:-.01em;color:var(--star);text-align:center}
.es-body span{color:var(--muted);font-size:13px;line-height:1.75}
.es-body em{color:var(--star);font-style:normal;background:rgba(255,255,255,.04);padding:0 4px;border-radius:3px}
.es-body strong{color:var(--gold);font-weight:600}
.es-arrow{width:46px;height:46px;border-radius:50%;border:1px solid var(--line2);background:var(--panel);color:var(--gold);display:flex;align-items:center;justify-content:center;font-size:20px;font-weight:700;font-family:var(--mono);line-height:1;margin:0 auto;transition:border-color .25s,transform .25s,background .25s}
.es-arrow:hover{border-color:var(--gold);background:rgba(242,184,75,.08);transform:scale(1.1)}
.es-card-last{max-width:560px;width:100%;margin:0 auto;border-color:rgba(74,222,128,.25);background:rgba(74,222,128,.03)}
/* placement of the last card is done by its own placement class (.es-s5 / .hs-s3) */
.es-card-last .es-num{border-color:rgba(74,222,128,.4);background:rgba(74,222,128,.1);color:var(--green)}
/* ── how it works: same clockwise-loop visual language as the export guide —
   reuses the .es-card / .es-arrow vocabulary; 1→2 on top, ↓ into centred 3.
   NOTE: the arrow template areas ar/d1 must stay in sync with the guide's
   .es-ar-r / .es-ar-d1 placement — renaming one side breaks the other. ── */
.land-steps.loop{max-width:960px;margin:0 auto 36px;display:grid;grid-template-columns:1fr 64px 1fr;grid-template-areas:"hs1 ar hs2"". . d1""hs3 hs3 hs3";align-items:center;gap:20px 0}
.hs-s1{grid-area:hs1}.hs-s2{grid-area:hs2}.hs-s3{grid-area:hs3}
/* tablet + mobile: the clockwise loop collapses to a vertical stack — all
   arrows read downward, so the directional glyphs are swapped via ::after */
@media(max-width:820px){
  .export-steps{display:flex;flex-direction:column;align-items:center;max-width:560px}
  .land-steps.loop{display:flex;flex-direction:column;align-items:center;max-width:560px}
  .es-arrow{width:38px;height:38px;font-size:0}
  .es-arrow::after{content:"↓";font-size:18px;color:var(--gold);font-weight:700;font-family:var(--mono)}
}
.land-export-big{flex-direction:column;gap:6px;padding:18px 34px;font-size:inherit;margin-top:0;box-shadow:0 0 32px rgba(24,119,242,.2)}
.land-export-big strong{font-size:16px}
.es-link-icon{font-size:22px}
.es-link-sub{color:var(--muted2);font-size:9px;letter-spacing:.08em}
.es-note{color:var(--muted2);font-size:10px;line-height:1.7;max-width:480px;margin:0 auto}
.land-keepsake-meta{display:flex;flex-wrap:wrap;justify-content:center;gap:10px;margin-top:28px}
.land-keepsake-meta span{padding:9px 16px;border-radius:99px;border:1px solid var(--line2);background:rgba(242,184,75,.05);color:var(--star);font-size:11px;letter-spacing:.06em}

/* ── pricing ── */
.land-price-wrap{display:flex;justify-content:center}
.land-price-card{width:100%;max-width:430px;background:var(--panel);border:1px solid var(--line2);border-radius:16px;padding:32px;text-align:center;box-shadow:0 0 40px rgba(242,184,75,.06)}
.land-price-tag{font-size:10px;letter-spacing:.22em;text-transform:uppercase;color:var(--gold)}
.land-price-badge{display:inline-block;margin-top:10px;padding:4px 12px;border-radius:999px;font-size:9px;letter-spacing:.2em;text-transform:uppercase;color:var(--bg);background:linear-gradient(90deg,var(--gold),#ffd98a);font-weight:700;box-shadow:0 0 18px rgba(242,184,75,.35);animation:rise .35s var(--ease) both}
.land-price-amount{font-size:clamp(52px,7vw,72px);font-weight:800;letter-spacing:-.03em;line-height:1;margin:14px 0 4px;color:var(--star);font-variant-numeric:tabular-nums;text-shadow:0 0 30px rgba(242,184,75,.3)}
.land-price-amount small{font-size:16px;font-weight:400;color:var(--muted);letter-spacing:0}
.land-price-features{list-style:none;margin:20px 0 24px;padding:0;display:flex;flex-direction:column;gap:11px;text-align:left;color:var(--muted);font-size:12px;letter-spacing:.03em}
.land-price-features li{display:grid;grid-template-columns:16px 1fr;column-gap:4px;align-items:baseline}
.land-price-features li::before{content:"✓";color:var(--gold);font-weight:700;grid-column:1}
.land-price-features li b{display:block;grid-column:2;color:var(--star);font-weight:600;font-size:12.5px;line-height:1.35}
.land-price-features li span{display:block;grid-column:2;color:var(--muted2);font-size:10.5px;line-height:1.45;margin-top:1px}
.land-price-btn{width:100%;padding:15px 24px;font-size:15px}
.land-price-guarantee{color:var(--gold);font-size:11px;letter-spacing:.06em;line-height:1.7;margin-top:16px;font-weight:600}
.land-price-note{color:var(--muted2);font-size:10px;line-height:1.7;margin-top:8px}
.land-free-tier{margin:26px auto 0;max-width:560px;border:1px solid var(--line);border-radius:12px;background:rgba(255,255,255,.015);padding:16px 22px;text-align:center}
.land-free-tag{font-size:11px;letter-spacing:.2em;text-transform:uppercase;color:var(--muted);display:block;margin-bottom:12px}
.land-free-features{list-style:none;margin:0 0 12px;padding:0;display:flex;flex-direction:column;gap:9px;text-align:left;color:var(--muted);font-size:12.5px;letter-spacing:.03em}
.land-free-features li{display:grid;grid-template-columns:16px 1fr;column-gap:4px;align-items:baseline}
.land-free-features li::before{content:"✓";color:var(--muted2);font-weight:700;grid-column:1;font-size:11px}
.land-free-features li b{display:block;grid-column:2;color:var(--star);font-weight:600;font-size:13px;line-height:1.35}
.land-free-features li span{display:block;grid-column:2;color:var(--muted2);font-size:11.5px;line-height:1.45;margin-top:1px}
.land-free-note{color:var(--muted2);font-size:11px;line-height:1.6;margin-top:2px}
/* ── privacy: your data stays on your device (TKT-0079) ──
   A calm, verifiable counterpoint to the pricing section: same premium
   restraint (serif headline, mono body, one gold accent) but with facts a
   visitor can check — nothing uploaded, anonymous counters only, offline.
   Cards use the brand's asymmetric balance: title + body, no icons to
   distract from the honesty of the claims. */
.land-privacy{padding-bottom:56px}
.land-privacy-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px;max-width:820px;margin:34px auto 0;text-align:left}
.pr-card{display:flex;flex-direction:column;gap:8px;padding:22px 22px 20px;border:1px solid var(--line);border-radius:16px;background:rgba(255,255,255,.015);transition:border-color .35s ease,transform .35s ease,background .35s ease}
.pr-card:hover{border-color:rgba(242,184,75,.4);background:rgba(242,184,75,.03)}
.pr-title{color:var(--star);font-family:Georgia,'Times New Roman',serif;font-size:17px;line-height:1.3}
.pr-title::before{content:"🔒 ";color:var(--gold);font-size:13px;letter-spacing:0}
.pr-body{color:var(--muted);font-size:12px;line-height:1.65}
.land-privacy-verify{max-width:640px;margin:22px auto 0;padding:14px 18px;border:1px dashed var(--line2);border-radius:12px;color:var(--muted2);font-size:10.5px;line-height:1.7;text-align:center;background:rgba(255,255,255,.015)}
@media(max-width:700px){.land-privacy-grid{grid-template-columns:1fr}}
/* ── TKT-0104: Add-to-Home-Screen install hint ──
   A tiny dismissible strip shown once on mobile until dismissed; nudges
   iOS/Android users to install the PWA. Hidden by default — app.js shows
   it only when the platform supports installable PWAs and the user hasn't
   dismissed it. */
.pwa-hint{
  display:flex;align-items:center;gap:12px;margin:10px auto 0;max-width:520px;
  padding:12px 16px;border:1px solid rgba(90,209,230,.28);border-radius:12px;
  background:rgba(90,209,230,.06);font-size:12px;line-height:1.6;color:var(--muted);
}
.pwa-hint b{color:var(--star)}
.pwa-hint-btns{display:flex;align-items:center;gap:8px;flex:0 0 auto;margin-left:auto}
.pwa-hint-install{background:var(--gold);color:var(--navy);border:0;border-radius:999px;font:inherit;font-weight:700;padding:5px 14px;cursor:pointer;transition:transform .15s ease,box-shadow .15s ease}
.pwa-hint-install:hover{transform:translateY(-1px);box-shadow:0 3px 10px rgba(242,184,75,.35)}
.pwa-hint-close{flex:0 0 auto;background:none;border:0;color:var(--muted2);font-size:16px;cursor:pointer;line-height:1}
@media(max-width:640px){.pwa-hint{font-size:11px;margin:8px 14px 0}}

/* tier boundary — visible paid/free markers so users see what unlock buys */
.tier-tag{display:inline-flex;align-items:center;gap:5px;padding:3px 9px;border-radius:99px;font-size:9px;letter-spacing:.16em;text-transform:uppercase;border:1px solid var(--line2);white-space:nowrap;vertical-align:middle}
.tier-free{color:#5ad1e6;border-color:rgba(90,209,230,.4);background:rgba(90,209,230,.07)}
.tier-free::before{content:"✓";font-weight:800}
.tier-paid{color:var(--gold);border-color:rgba(242,184,75,.45);background:rgba(242,184,75,.08)}
.tier-paid::before{content:"✦";font-weight:800}
.brain-actions .tier-tag,.threat-actions .tier-tag{align-self:center}
.tier-legend{display:flex;align-items:center;justify-content:center;gap:10px;flex-wrap:wrap;max-width:560px;margin:0 auto 6px;padding:12px 18px;border:1px solid var(--line);border-radius:12px;background:rgba(255,255,255,.015);color:var(--muted);font-size:10px;letter-spacing:.04em;text-align:center}
.unlock-card .tier-tag,.keepsake-card .tier-tag,.colouring-box .tier-tag{margin-bottom:10px}
@media(max-width:560px){.tier-legend{font-size:9px;gap:6px}}
.land-note .disclosure{max-width:680px;margin:0 auto}
.land-final{position:relative;z-index:2;width:100%;display:flex;flex-direction:column;align-items:center;gap:22px;padding:100px 24px 84px;text-align:center;border-top:1px solid var(--line);background:radial-gradient(ellipse at 50% 120%,rgba(24,119,242,.09),transparent 60%)}
.land-final-title{font-size:clamp(28px,4vw,48px);margin-bottom:6px}
.land-foot{position:relative;z-index:2;display:flex;align-items:center;justify-content:center;gap:10px;flex-wrap:wrap;padding:22px;border-top:1px solid var(--line);color:var(--muted2);font-size:10px}

/* ═══════════ MAKEOVER v2 — layered depth + dossier card (2026-08-08) ═══════════
   Applied ON TOP of the existing observatory system — no palette or copy change:
   · hero backdrop: soft gold/cyan glows + faint grid for depth (no CLS, pure paint)
   · the dossier card: a masked snapshot of what the file holds (YOURS — NOT THEIRS)
   · nav CTA: a gold pill that takes the visitor to the pricing act
   · scroll reveal: sections ease in as they enter (IntersectionObserver, respect
     prefers-reduced-motion; graceful no-JS fallback via .reveal-safe) */

/* ── hero backdrop depth ── */
.land-hero::before{content:"";position:absolute;inset:0;z-index:-1;pointer-events:none;
  background:
    radial-gradient(900px 500px at 78% -6%,rgba(90,209,230,.10),transparent 62%),
    radial-gradient(760px 560px at 12% 18%,rgba(242,184,75,.08),transparent 58%),
    radial-gradient(720px 520px at 50% 108%,rgba(242,184,75,.07),transparent 60%);
}
.land-hero::after{content:"";position:absolute;inset:0;z-index:-1;pointer-events:none;opacity:.55;
  background-image:linear-gradient(var(--line) 1px,transparent 1px),linear-gradient(90deg,var(--line) 1px,transparent 1px);
  background-size:64px 64px;
  -webkit-mask-image:radial-gradient(1100px 720px at 50% 0%,#000 26%,transparent 74%);
          mask-image:radial-gradient(1100px 720px at 50% 0%,#000 26%,transparent 74%);
}

/* ── nav CTA ── */
.nav-cta{display:inline-flex;align-items:center;gap:7px;background:linear-gradient(180deg,var(--gold),var(--gold2));
  color:#1a1206;font-family:var(--sans);font-size:11px;font-weight:700;letter-spacing:.02em;
  border-radius:99px;padding:8px 16px;box-shadow:0 6px 22px rgba(242,184,75,.28);
  transition:transform .2s var(--ease),box-shadow .2s var(--ease)}
.nav-cta:hover{transform:translateY(-1px);box-shadow:0 10px 28px rgba(242,184,75,.42)}

/* ── the dossier card — a masked snapshot, like the preview's centerpiece ── */
.dossier{position:relative;width:100%;max-width:440px;margin:6px auto 0;text-align:left;
  background:linear-gradient(160deg,var(--panel2),var(--panel));border:1px solid var(--line);
  border-radius:18px;padding:22px 22px 18px;box-shadow:var(--shadow);
  transform:rotateX(3deg);transition:transform .5s var(--ease),border-color .35s var(--ease)}
.dossier:hover{transform:rotateX(0deg) translateY(-3px);border-color:var(--line2)}
.d-head{display:flex;align-items:center;gap:13px;border-bottom:1px solid var(--line);padding-bottom:15px;margin-bottom:15px}
.d-avatar{flex:none;width:46px;height:46px;border-radius:50%;display:grid;place-items:center;
  font-family:var(--serif);font-size:19px;font-weight:700;color:#1a1206;
  background:conic-gradient(from 210deg,var(--gold),var(--ember),var(--cyan),var(--gold));
  box-shadow:0 0 22px rgba(242,184,75,.32)}
.d-who b{display:block;font-size:14.5px;letter-spacing:-.01em}
.d-who span{font-family:var(--mono);font-size:9px;color:var(--muted2);letter-spacing:.14em}
.d-tag{font-family:var(--mono);font-size:9px;letter-spacing:.1em;color:var(--cyan);border:1px solid rgba(90,209,230,.32);
  border-radius:99px;padding:4px 9px;background:rgba(90,209,230,.07);margin-left:auto;flex:none}
.d-rows{display:flex;flex-direction:column;gap:12px}
.d-row{display:grid;grid-template-columns:118px 1fr;align-items:center;gap:12px;font-size:12px}
.d-row .k{font-family:var(--mono);font-size:9.5px;letter-spacing:.1em;color:var(--muted2)}
.d-bar{height:9px;border-radius:5px;background:rgba(232,236,244,.07);overflow:hidden}
.d-bar i{display:block;height:100%;border-radius:5px;transform-origin:left;animation:dgrow 1.4s var(--ease) both}
.d-bar .b1{background:linear-gradient(90deg,var(--gold),var(--gold2))}
.d-bar .b2{background:linear-gradient(90deg,var(--cyan),#3aa0b8)}
.d-bar .b3{background:linear-gradient(90deg,var(--red),#c24848)}
@keyframes dgrow{from{transform:scaleX(0)}}
.d-note{margin-top:15px;padding:11px 13px;border:1px dashed var(--line2);border-radius:10px;
  font-family:var(--mono);font-size:9.5px;letter-spacing:.05em;color:var(--gold);text-align:center}
@media(max-width:520px){.d-row{grid-template-columns:1fr;gap:5px}.d-tag{margin-left:0}}

/* ── scroll reveal (progressive enhancement — content visible without JS) ── */
.reveal-safe{opacity:1}
.js .reveal-safe{opacity:0;transform:translateY(22px);transition:opacity .65s var(--ease),transform .65s var(--ease)}
.js .reveal-safe.in{opacity:1;transform:none}
@media(prefers-reduced-motion:reduce){.js .reveal-safe{opacity:1;transform:none;transition:none}}

/* scroll-reveal */
.reveal{opacity:0;transform:translateY(26px);transition:opacity .7s var(--ease),transform .7s var(--ease)}
.reveal.revealed{opacity:1;transform:none}
.linklike{color:var(--muted);text-decoration:underline;text-underline-offset:3px;font-size:10px;font-family:var(--mono);letter-spacing:.06em}
.linklike:hover{color:var(--gold)}
.dot{opacity:.4}

/* modal */
.modal-backdrop{position:fixed;inset:0;background:rgba(4,6,12,.8);backdrop-filter:blur(6px);display:flex;align-items:center;justify-content:center;z-index:100;padding:20px;animation:fade .25s both}
.modal{background:var(--panel2);border:1px solid var(--line);border-radius:16px;padding:32px;max-width:520px;position:relative;box-shadow:var(--shadow);animation:rise .35s var(--ease) both}
.modal h2{font-size:22px;margin-bottom:14px;letter-spacing:-.01em}
.modal p{color:var(--muted);line-height:1.75;font-size:14px;margin-bottom:12px}
.modal em{color:var(--star);font-style:italic}
.modal-note{color:var(--gold);font-size:11px}
.modal-close{position:absolute;top:16px;right:16px;color:var(--muted);font-size:16px;width:32px;height:32px;border-radius:8px;display:flex;align-items:center;justify-content:center}
.modal-close:hover{color:var(--gold);background:rgba(255,255,255,.05)}
.modal-actions{display:flex;gap:10px;margin-top:18px;flex-wrap:wrap}
.modal-actions .btn{flex:1;min-width:150px}
.unlock-report{display:flex;align-items:baseline;gap:8px;justify-content:center;margin-top:14px;color:var(--muted);font-size:10px}
.unlock-report .linklike{font-size:10px}
.toast.report-toast{border-color:var(--gold);color:var(--gold);cursor:pointer;text-decoration:underline;text-underline-offset:3px;z-index:200}
.toast.report-toast:hover{background:rgba(242,184,75,.12)}
/* TKT-0064: Report a problem modal */
.modal textarea{font:13px/1.55 Georgia,'Times New Roman',serif;color:var(--star);background:var(--panel2);border:1px solid rgba(232,236,244,.14);border-radius:8px;padding:10px 12px;width:100%;min-width:0;resize:vertical}
.modal textarea:focus{outline:none;border-color:var(--gold);box-shadow:0 0 0 2px rgba(242,184,75,.16)}
/* first-visit demo hint bubble */
.demo-hint{display:flex;align-items:center;gap:10px;max-width:420px;background:rgba(242,184,75,.08);border:1px solid rgba(242,184,75,.45);border-radius:10px;padding:9px 14px;font-size:11px;line-height:1.6;color:var(--star);animation:rise .4s var(--ease) both}
.resume-card{max-width:420px;background:linear-gradient(180deg,rgba(90,209,230,.08),rgba(90,209,230,.03));border:1px solid rgba(90,209,230,.35);border-radius:12px;padding:12px 16px;animation:rise .4s var(--ease) both}
.resume-card-inner{display:flex;flex-direction:column;gap:6px}
.resume-card-title{font-size:12px;letter-spacing:.08em;color:var(--star);font-weight:700}
.resume-card-sub{font-size:11px;line-height:1.6;color:var(--muted)}
.resume-card-meta{font-size:10px;color:var(--muted2);letter-spacing:.03em}
.resume-card-actions{display:flex;gap:8px;margin-top:4px}
.hint-close{flex:none;color:var(--muted);font-size:13px;width:24px;height:24px;border-radius:7px;display:flex;align-items:center;justify-content:center}
.hint-close:hover{color:var(--gold);background:rgba(255,255,255,.06)}
@keyframes fade{from{opacity:0}to{opacity:1}}

/* ═══════════ APP ═══════════ */
.app{min-height:100vh;display:flex;flex-direction:column}
.topbar{
  display:flex;align-items:center;gap:18px;padding:16px 22px;border-bottom:1px solid var(--line);
  background:rgba(10,15,28,.85);backdrop-filter:blur(10px);position:sticky;top:0;z-index:50;flex-wrap:wrap;
  /* TKT-0104: in standalone PWA mode the topbar tucks under the iOS status
     bar / Android notch — pad it with the safe-area insets when present */
  padding-top:max(16px,env(safe-area-inset-top));
}
.topbar-brand{display:flex;align-items:center;gap:10px;margin-right:auto}
.topbar-name{font-family:"Milky Lemon",var(--sans);font-size:72px;font-weight:400;letter-spacing:.01em;color:var(--brand-blue);line-height:.95}
.tabs{display:flex;gap:2px;flex-wrap:wrap}
.tab{padding:8px 12px;border-radius:8px;color:var(--muted);font-size:11px;letter-spacing:.06em;transition:color .18s,background .18s}
.tab:hover{color:var(--star);background:rgba(255,255,255,.04)}
.tab.active{color:var(--gold);background:rgba(242,184,75,.1)}
.topbar-right{display:flex;align-items:center;gap:12px}
.import-badge{color:var(--muted2);font-size:10px;letter-spacing:.1em}
.net-check{color:var(--green);font-size:9px;letter-spacing:.06em;border:1px solid rgba(74,222,128,.3);background:rgba(74,222,128,.06);border-radius:12px;padding:3px 10px;display:none}

.content{flex:1;padding:22px;max-width:1180px;width:100%;margin:0 auto}
.panel{display:none;animation:rise .4s var(--ease) both}
.panel.active{display:block}
.section-title{font-family:var(--serif);font-size:24px;letter-spacing:-.008em;margin-bottom:6px;line-height:1.15}
.section-sub{color:var(--muted);font-size:11.5px;margin-bottom:22px;letter-spacing:.02em}
.eyebrow{font-family:var(--mono);font-size:10px;letter-spacing:.22em;text-transform:uppercase;color:var(--muted);margin:18px 0 10px}

/* overview */
.overview-grid{display:grid;grid-template-columns:1fr 280px;gap:20px}
@media(max-width:900px){.overview-grid{grid-template-columns:1fr}}
.galaxy-wrap{position:relative;border:1px solid var(--line);border-radius:var(--r);overflow:hidden;background:radial-gradient(ellipse at 50% 42%,rgba(150,175,215,.07),transparent 55%),radial-gradient(ellipse at 50% 60%,#0b0d12,#06090f 75%)}
#galaxy{display:block;width:100%;height:auto}
.galaxy-label{position:absolute;top:14px;left:16px;color:var(--gold);font-size:11px;letter-spacing:.18em}
.galaxy-tip{position:absolute;bottom:14px;left:16px;right:16px;color:var(--muted);font-size:10px;line-height:1.5;pointer-events:none;min-height:16px}
.stats{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.stats-hint{color:var(--muted2);font-size:9px;letter-spacing:.12em;text-transform:uppercase;margin:-6px 0 8px}
.stat{background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:12px 14px;cursor:pointer;text-align:left;font-family:inherit;color:inherit;transition:border-color .2s,transform .2s,background .2s;position:relative}
.stat:hover{border-color:var(--line2);transform:translateY(-2px);background:var(--panel2)}
.stat:focus-visible{outline:2px solid var(--gold);outline-offset:2px}
.stat::after{content:"→";position:absolute;top:10px;right:12px;font-size:11px;color:var(--muted2);opacity:0;transition:opacity .2s,color .2s}
.stat:hover::after,.stat:focus-visible::after{opacity:1;color:var(--gold)}
.stat b{display:block;font-size:22px;font-weight:700;letter-spacing:-.02em;color:var(--star);font-variant-numeric:tabular-nums;padding-right:14px}
.stat b.gold{color:var(--gold)}
.stat span{font-family:var(--mono);font-size:9px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted2)}
.heatmap{display:flex;gap:3px;align-items:flex-end;height:56px;padding:8px;background:var(--panel);border:1px solid var(--line);border-radius:10px}
.hm-cell{flex:1;border-radius:2px;background:rgba(242,184,75,.08);transition:background .2s,transform .2s;min-height:2px}
.hm-cell:hover{transform:scaleY(1.2);background:rgba(242,184,75,.5)}
.scrubber{margin-top:14px;display:flex;flex-direction:column;gap:6px}
#yearRail{width:100%;accent-color:var(--gold);cursor:pointer}
.scrubber-track{display:flex;justify-content:space-between;font-size:10px;color:var(--muted2)}

/* scan */
.scan-head{display:flex;justify-content:space-between;align-items:flex-start;gap:20px;flex-wrap:wrap}
.scan-score{display:flex;flex-direction:column;align-items:center;gap:8px}
.score-ring{width:92px;height:92px;border-radius:50%;display:flex;flex-direction:column;align-items:center;justify-content:center;
  background:conic-gradient(var(--gold) calc(var(--p,0)*1%),rgba(242,184,75,.12) 0);
  position:relative}
.score-ring::before{content:"";position:absolute;inset:6px;border-radius:50%;background:var(--ink2)}
.score-ring b,.score-ring small{position:relative;z-index:1}
.score-ring b{font-size:24px;font-variant-numeric:tabular-nums}
.score-ring small{color:var(--muted);font-size:10px}
.score-label{color:var(--muted)}
.flag-list{display:flex;flex-direction:column;gap:10px}
.flag{
  display:flex;gap:14px;align-items:flex-start;background:var(--panel);border:1px solid var(--line);
  border-radius:10px;padding:14px 16px;transition:border-color .2s,opacity .3s;
}
.flag.cleared{opacity:.45;border-color:rgba(74,222,128,.3)}
.flag.severity-high{border-left:3px solid var(--red)}
.flag.severity-med{border-left:3px solid var(--gold)}
.flag.severity-low{border-left:3px solid var(--cyan)}
.flag-check{width:20px;height:20px;border-radius:6px;border:1px solid var(--line2);flex:none;display:flex;align-items:center;justify-content:center;font-size:11px;color:transparent;transition:all .2s;margin-top:2px}
.flag.cleared .flag-check{background:rgba(74,222,128,.2);border-color:var(--green);color:var(--green)}
.flag-body{flex:1;min-width:0}
.flag-title{font-size:14px;font-weight:600;margin-bottom:3px}
.flag-detail{color:var(--muted);font-size:12px;line-height:1.6;margin-bottom:6px}
.flag-detail code{font-family:var(--mono);font-size:11px;color:var(--gold);background:rgba(242,184,75,.08);padding:1px 6px;border-radius:4px;word-break:break-all}
.flag-meta{display:flex;gap:10px;flex-wrap:wrap;font-size:10px;color:var(--muted2)}
.badge{padding:2px 8px;border-radius:99px;border:1px solid var(--line)}
.badge.high{color:var(--red);border-color:rgba(255,92,92,.4)}
.badge.med{color:var(--gold);border-color:rgba(242,184,75,.4)}
.badge.low{color:var(--cyan);border-color:rgba(90,209,230,.4)}
.badge.src{color:var(--muted)}
.flag-jump{margin-left:auto;flex:none;align-self:flex-start;color:var(--muted);font-size:11px;font-family:var(--mono);padding:6px 10px;border:1px solid var(--line);border-radius:8px;transition:all .2s}
.flag-jump:hover{color:var(--gold);border-color:var(--line2)}

/* ═══════════ SCAMMER'S EYE ═══════════ */
.flag.severity-crit{border-left:3px solid #ff2d55;background:linear-gradient(180deg,rgba(255,45,85,.06),transparent)}
.badge.crit{color:#ff5c8a;border-color:rgba(255,45,85,.5)}
.score-ring.danger{background:conic-gradient(var(--red) calc(var(--p,0)*1%),rgba(255,92,92,.12) 0)}
.score-ring.danger::before{background:var(--ink2)}
.score-ring.danger b{color:var(--red)}
.threat-head-actions{display:flex;align-items:flex-start;gap:18px;flex-wrap:wrap;justify-content:flex-end}
.threat-actions{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}
.threat-report-note{border:1px solid rgba(90,209,230,.25);border-radius:10px;background:rgba(90,209,230,.04);padding:10px 13px;color:var(--muted);line-height:1.7;margin:8px 0 18px}
.threat-report-note strong{color:var(--cyan);letter-spacing:.12em}
.threat-narrative{background:var(--panel);border:1px solid rgba(255,92,92,.35);border-left:3px solid var(--red);border-radius:var(--r);padding:16px 18px;font-size:14px;line-height:1.8;color:var(--star);margin-bottom:18px}
.threat-narrative b{color:var(--red);font-weight:700}
.threat-fix{margin-top:8px;font-size:12px;color:var(--green);line-height:1.6}
.threat-fix::before{content:"🔧 ";opacity:.8}
.threat-positives{display:flex;flex-wrap:wrap;gap:8px}
.tp-chip{padding:8px 14px;border-radius:99px;border:1px solid rgba(74,222,128,.35);background:rgba(74,222,128,.06);color:var(--green);font-size:11px;letter-spacing:.03em}
.tp-chip.none{border-color:rgba(255,92,92,.3);background:rgba(255,92,92,.05);color:var(--muted)}
.threat-note{margin-top:20px;color:var(--muted2);font-size:10px;line-height:1.8}
.good{color:var(--green)}
.empty-state.threat-empty{padding:24px;font-size:12px}

/* people */
.people-list{display:flex;flex-direction:column;gap:8px}
.person{
  display:flex;align-items:center;gap:14px;background:var(--panel);border:1px solid var(--line);
  border-radius:10px;padding:12px 16px;cursor:pointer;transition:border-color .2s,background .2s;
}
.person:hover{border-color:var(--line2);background:var(--panel2)}
.person-rank{font-family:var(--mono);font-size:10px;color:var(--muted2);width:26px;flex:none}
.person-avatar{width:34px;height:34px;border-radius:50%;flex:none;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:13px;color:#1a1206;background:var(--gold)}
.person-avatar.alt{background:var(--cyan);color:#06141a}
.person-name{font-weight:600;font-size:14px;flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.person-bar-wrap{flex:2;display:flex;align-items:center;gap:10px}
.person-bar{height:8px;border-radius:4px;background:linear-gradient(90deg,var(--gold),var(--gold2));flex:1;transform-origin:left;animation:growBar .8s var(--ease) both}
@keyframes growBar{from{transform:scaleX(0)}}
.person-count{font-family:var(--mono);font-size:10px;color:var(--muted);white-space:nowrap}
.person-detail{margin-top:10px;padding:14px 16px;background:var(--panel2);border:1px solid var(--line);border-radius:10px;display:none;font-size:13px;color:var(--muted);line-height:1.8}
.person.open .person-detail{display:block}
.person-detail b{color:var(--star)}

/* timeline */
.timeline-head{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:12px}
.timeline-filters{display:flex;gap:8px}
#timelineYear,#timelineType{background:var(--panel);border:1px solid var(--line);color:var(--star);padding:8px 12px;border-radius:8px;font-size:11px;cursor:pointer;transition:border-color .2s}
#timelineYear:hover,#timelineType:hover{border-color:var(--line2)}
#timelineYear:focus-visible,#timelineType:focus-visible{outline:2px solid var(--gold);outline-offset:1px}
.timeline-list{display:flex;flex-direction:column;gap:2px;position:relative}
.tl-item{display:grid;grid-template-columns:70px 1fr;gap:16px;padding:12px 8px;border-bottom:1px solid rgba(232,236,244,.04)}
.tl-year{font-family:var(--mono);font-size:11px;color:var(--muted2);padding-top:3px}
.tl-body{min-width:0}
.tl-src{font-family:var(--mono);font-size:9px;letter-spacing:.14em;text-transform:uppercase;color:var(--cyan);margin-bottom:4px}
.tl-text{font-size:14px;line-height:1.6;color:var(--star);word-break:break-word}
.tl-photo{width:132px;border-radius:10px;overflow:hidden;border:1px solid var(--line);margin-bottom:8px;background:var(--panel)}
.tl-photo img{width:100%;height:96px;object-fit:cover;display:block}
/* messenger photo attachments inside a message row — a flex strip of
   thumbnails (TKT-0060) */
.tl-msg-photos{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:8px}
.tl-msg-photos .tl-photo{width:120px;margin-bottom:0}
.tl-text.msg{color:var(--muted)}
.tl-text b{color:var(--star)}

/* search */
.searchbox{display:flex;align-items:center;gap:10px;background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:12px 16px;margin-bottom:10px;transition:border-color .2s}
.searchbox:focus-within{border-color:var(--line2)}
#searchInput{flex:1;background:none;border:none;outline:none;color:var(--star);font-family:var(--mono);font-size:14px}
#searchInput::placeholder{color:var(--muted2)}
.search-kbd{color:var(--muted2);font-size:10px;border:1px solid var(--line);padding:2px 8px;border-radius:6px}
.search-hint{color:var(--muted2);font-size:10px;line-height:1.6;margin:0 0 12px}
.search-hint em{color:var(--gold);font-style:normal}
.search-meta{color:var(--muted2);font-size:10px;margin-bottom:14px}
.search-results{display:flex;flex-direction:column;gap:10px}
.sr-item{background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:12px 16px;cursor:pointer;transition:border-color .2s}
.sr-item:hover{border-color:var(--line2)}
.sr-head{display:flex;justify-content:space-between;gap:10px;margin-bottom:6px}
.sr-src{font-family:var(--mono);font-size:9px;letter-spacing:.12em;text-transform:uppercase;color:var(--cyan)}
.sr-date{font-family:var(--mono);font-size:10px;color:var(--muted2)}
.sr-text{font-size:13px;line-height:1.6;color:var(--muted)}
.sr-text mark{background:rgba(242,184,75,.35);color:var(--gold);border-radius:3px;padding:0 2px}
.empty-state{padding:40px;text-align:center;color:var(--muted2);font-size:13px;line-height:1.8}

/* unlock */
.unlock-card{max-width:520px;margin:20px auto;background:var(--panel);border:1px solid var(--line);border-radius:16px;padding:32px;text-align:center}
.unlock-glyph{font-size:34px;margin-bottom:12px}
.unlock-badge{display:inline-block;margin:6px 0 2px;padding:4px 12px;border-radius:999px;font-size:9px;letter-spacing:.2em;text-transform:uppercase;color:var(--bg);background:linear-gradient(90deg,var(--gold),#ffd98a);font-weight:700;box-shadow:0 0 18px rgba(242,184,75,.35);animation:rise .35s var(--ease) both}
/* TKT-0109: the unlock tab now sells the keepsake suite — same grid
   vocabulary as the landing pricing card (.land-price-features): ✓ gold
   marker, bold feature + muted one-liner per row, keepsakes first. */
.unlock-features{list-style:none;margin:18px auto 10px;padding:0;display:flex;flex-direction:column;gap:9px;color:var(--muted);font-size:12px;letter-spacing:.03em;text-align:left;max-width:420px}
.unlock-features li{display:grid;grid-template-columns:16px 1fr;column-gap:4px;align-items:baseline}
.unlock-features li::before{content:"✓";color:var(--gold);font-weight:700;grid-column:1}
.unlock-features li b{display:block;grid-column:2;color:var(--star);font-weight:600;font-size:12.5px;line-height:1.35}
.unlock-features li span{display:block;grid-column:2;color:var(--muted2);font-size:10.5px;line-height:1.45;margin-top:1px}
.unlock-privacy{color:var(--cyan);font-size:10px;line-height:1.6;margin-bottom:18px}
.unlock-actions{display:flex;align-items:center;justify-content:center;gap:12px;flex-wrap:wrap}
.unlock-guarantee{color:var(--gold);font-size:11px;letter-spacing:.06em;line-height:1.7;margin:14px 0 4px;font-weight:600}
.unlock-note{color:var(--muted2);font-size:10px}
.unlock-code-label{margin-top:22px;color:var(--muted2);font-size:10px;letter-spacing:.1em}
.unlock-code-row{display:flex;gap:8px;justify-content:center;margin-top:8px}
#unlockCode{background:var(--ink2);border:1px solid var(--line);color:var(--gold);padding:10px 14px;border-radius:8px;font-size:13px;letter-spacing:.2em;width:190px;text-align:center}
#unlockCode:focus{border-color:var(--line2);outline:none}

/* ═══════════ THE MEMORY BOOK (keepsake) ═══════════ */
.keepsake-card{max-width:560px;margin:20px auto 0;background:var(--panel);border:1px solid var(--line2);border-radius:16px;padding:32px;text-align:center;box-shadow:0 0 40px rgba(242,184,75,.06)}
.keepsake-glyph{font-size:34px;margin-bottom:12px;animation:floaty 3s ease-in-out infinite}
.keepsake-features{display:flex;flex-direction:column;gap:6px;color:var(--muted);margin:18px 0 10px;font-size:11px;text-align:left;align-items:center}
.keepsake-features span{display:flex;gap:8px;align-items:center}
.keepsake-note{color:var(--muted2);font-size:10px;line-height:1.6;margin-bottom:16px}
.keepsake-actions{display:flex;justify-content:center;gap:10px;flex-wrap:wrap}
/* TKT-0063 — editable words: keep the prefill or type your own */
.words-panel{margin:14px 0 2px;padding:12px 16px;border:1px dashed rgba(242,184,75,.35);border-radius:8px;background:rgba(242,184,75,.04)}
.words-toggle{font-size:12px;letter-spacing:.03em}
.words-fields{display:flex;flex-direction:column;gap:10px;margin-top:12px;text-align:left}
.words-fields label{display:flex;flex-direction:column;gap:4px;font-size:11px;font-weight:700;letter-spacing:.05em;color:var(--muted);text-transform:uppercase}
.words-fields input,.words-fields textarea{font:13px/1.5 Georgia,'Times New Roman',serif;color:var(--star);background:var(--panel2);border:1px solid rgba(232,236,244,.14);border-radius:6px;padding:8px 10px;resize:vertical}
.words-fields input:focus,.words-fields textarea:focus{outline:none;border-color:var(--gold);box-shadow:0 0 0 2px rgba(242,184,75,.16)}
.words-hint{font-size:10px;color:var(--muted2);margin:0}
.colouring-box{margin-top:22px;padding-top:20px;border-top:1px solid var(--line);text-align:center}
.colouring-box .keepsake-glyph{font-size:34px}
.colour-actions{display:flex;justify-content:center;gap:10px;flex-wrap:wrap;margin:14px 0 4px}
.aff-row{margin:10px 0 2px;text-align:center;font-size:10px;color:var(--muted2)}
.aff-row a{color:var(--gold);text-decoration:underline;text-underline-offset:3px;transition:color .2s}
.aff-row a:hover{color:var(--gold2)}
.colour-controls{display:flex;justify-content:center;gap:20px;flex-wrap:wrap;margin:10px 0 4px}
.colour-controls label{display:inline-flex;align-items:center;gap:8px;color:var(--muted);font-size:11px}
.colour-controls select{background:#0d1424;color:var(--star);border:1px solid var(--line);border-radius:8px;padding:5px 8px;font-family:var(--mono);font-size:11px}
.colour-controls select:focus{outline:1px solid var(--gold)}
.colour-controls input[type=range]{accent-color:var(--gold);width:110px}
.colour-controls span{color:var(--gold);min-width:1em;text-align:center}
.colour-preview{display:flex;justify-content:center;gap:10px;flex-wrap:wrap;margin-top:12px}
.colour-thumb{margin:0;padding:6px;border:1px solid var(--line);border-radius:8px;background:rgba(232,236,244,.03)}
.colour-thumb img{width:72px;height:72px;object-fit:cover;border-radius:4px;display:block;background:#fff}
.colour-thumb figcaption{font-size:10px;color:var(--muted);margin-top:4px;font-family:var(--mono)}

/* ── keepsake selection (who's in it + which years) ── */
.keepsake-select{margin:4px 0 18px;padding:14px;border:1px solid var(--line);border-radius:12px;background:rgba(255,255,255,.015);text-align:left}
.ks-select-head{display:flex;justify-content:space-between;align-items:center;margin:10px 0 8px}
.ks-select-head:first-child{margin-top:0}
.ks-title{font-size:10px;letter-spacing:.16em;text-transform:uppercase;color:var(--gold)}
.ks-quick{display:flex;align-items:center;gap:8px}
.ks-quick .linklike{font-size:10px}
.ks-chips{display:flex;flex-wrap:wrap;gap:8px}
.ks-filter{width:100%;box-sizing:border-box;margin:2px 0 8px;padding:7px 12px;background:var(--panel);border:1px solid var(--line);border-radius:99px;outline:none;color:var(--star);font-family:var(--mono);font-size:11px;transition:border-color .2s}
.ks-filter:focus{border-color:var(--line2)}
.ks-filter::placeholder{color:var(--muted2)}
.ks-chip{display:inline-flex;align-items:center;gap:7px;padding:6px 12px;border:1px solid var(--line);border-radius:99px;font-size:11px;letter-spacing:.02em;color:var(--muted);cursor:pointer;transition:border-color .2s,color .2s,background .2s;user-select:none}
.ks-chip:hover{border-color:var(--line2)}
.ks-chip:has(input:checked),.ks-chip.on{border-color:var(--line2);color:var(--star);background:rgba(242,184,75,.06)}
.ks-chip input{accent-color:var(--gold);cursor:pointer}
.ks-empty{color:var(--muted2);font-size:10px}
.ks-hint{color:var(--muted2);font-size:10px;line-height:1.7;margin-top:12px;border-top:1px solid var(--line);padding-top:10px}

/* ── Memory Card collaboration ── */
.collab-sub{color:var(--muted);font-size:10px;line-height:1.8;margin:0 0 12px}
.card-code-wrap{margin:10px 0 0}
.card-code-label{color:var(--muted2);font-size:10px;line-height:1.7;margin-bottom:8px}
.card-code-row{display:flex;gap:8px;align-items:stretch}
.card-code{flex:1;background:var(--ink2);border:1px solid var(--line);color:var(--star);border-radius:8px;padding:10px 12px;font-size:10px;line-height:1.6;word-break:break-all;resize:vertical;font-family:var(--mono)}
.card-code:focus{border-color:var(--line2);outline:none}
.card-code::placeholder{color:var(--muted2)}
.card-fp{color:var(--cyan);font-size:9px;letter-spacing:.08em;margin-top:8px;line-height:1.6}
.collab-paste{margin:12px 0 0}
.card-verify{margin-top:12px;padding-top:10px;border-top:1px solid var(--line);color:var(--cyan)}
.collab-sub b{color:var(--gold)}
.collab-steps{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:12px}
.collab-steps span{padding:5px 10px;border-radius:99px;border:1px solid rgba(90,209,230,.3);background:rgba(90,209,230,.05);color:var(--cyan);font-size:9px;letter-spacing:.08em}
.ks-consent{display:flex;gap:10px;align-items:flex-start;color:var(--muted);font-size:10px;line-height:1.7;text-align:left;margin:10px 0;cursor:pointer}
.ks-consent input{accent-color:var(--gold);margin-top:2px;cursor:pointer}
.collab-actions{display:flex;gap:8px;flex-wrap:wrap;justify-content:center}
.collab-incoming{margin-top:14px;padding-top:14px;border-top:1px solid var(--line)}
.collab-status{color:var(--star);font-size:10px;line-height:1.7;margin-bottom:10px;text-align:left}
.collab-input{width:100%;background:var(--ink2);border:1px solid var(--line);color:var(--star);padding:9px 12px;border-radius:8px;font-size:11px;margin-bottom:8px;text-align:left}
.collab-input:focus{border-color:var(--line2);outline:none}
.collab-input::placeholder{color:var(--muted2)}

/* ═══════════ THE BRAIN ═══════════ */
.brain-head{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;flex-wrap:wrap}
.brain-actions{display:flex;gap:8px;flex-wrap:wrap}
.dossier{background:var(--panel);border:1px solid var(--line);border-radius:var(--r);padding:24px;margin-bottom:8px;line-height:1.75;font-size:14px;max-height:520px;overflow:auto}
.dossier .doc-title{font-family:var(--mono);font-size:10px;letter-spacing:.22em;text-transform:uppercase;color:var(--muted2);margin-bottom:6px}
/* holdings grid — everything the file stores, counted, visual */
.holdings{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:10px;margin:16px 0 4px}
.holding{background:rgba(242,184,75,.06);border:1px solid var(--line);border-radius:10px;padding:14px 12px;display:flex;flex-direction:column;gap:4px}
.holding b{font-size:22px;letter-spacing:-.02em;color:var(--gold);line-height:1}
.holding span{font-family:var(--mono);font-size:9.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted2)}
.brain-export-row{flex-wrap:wrap;margin-bottom:16px}
.dossier h1{font-size:20px;letter-spacing:-.01em;margin-bottom:14px;color:var(--star)}
.dossier h2{font-size:15px;margin:20px 0 8px;color:var(--gold);letter-spacing:-.01em}
.dossier p{margin-bottom:12px;color:var(--muted)}
.dossier strong{color:var(--star)}
.dossier .truth{color:var(--red);font-weight:600}
.dossier code{font-family:var(--mono);font-size:12px;color:var(--gold);background:rgba(242,184,75,.08);padding:1px 6px;border-radius:4px}
.dossier ul{margin:0 0 12px 20px;color:var(--muted)}
.dossier li{margin-bottom:6px}
.dossier blockquote{border-left:2px solid var(--line2);padding-left:14px;margin:14px 0;color:var(--gold);font-style:italic}
.brain-steps{list-style:none;counter-reset:step;display:flex;flex-direction:column;gap:10px;margin-bottom:6px}
.brain-steps li{counter-increment:step;display:flex;gap:12px;align-items:flex-start;color:var(--muted);font-size:12px;line-height:1.6}
.brain-steps li::before{content:counter(step);flex:none;width:22px;height:22px;border-radius:50%;border:1px solid var(--line2);color:var(--gold);display:flex;align-items:center;justify-content:center;font-size:10px}
.brain-steps b{color:var(--star);font-weight:600}
.brain-chips{display:flex;flex-wrap:wrap;gap:8px}
.brain-chip{padding:9px 14px;border-radius:99px;border:1px solid var(--line);color:var(--muted);font-size:11px;letter-spacing:.03em;transition:all .2s;text-align:left;line-height:1.5}
.brain-chip:hover{border-color:var(--line2);color:var(--gold);background:rgba(242,184,75,.05)}

/* ── THE BRAIN CHAT — live Q&A (TKT-0019) ── */
.brain-chat{background:linear-gradient(180deg,rgba(242,184,75,.035),rgba(242,184,75,0) 40%),var(--panel);border:1px solid var(--line);border-radius:var(--r);padding:18px;margin-bottom:10px}
.brain-thread{display:flex;flex-direction:column;gap:12px;margin-bottom:14px;max-height:520px;overflow:auto;padding-right:4px}
.brain-q{align-self:flex-end;max-width:82%;background:rgba(242,184,75,.12);border:1px solid rgba(242,184,75,.3);border-radius:14px 14px 4px 14px;padding:9px 13px;font-size:12px;color:var(--star);line-height:1.5;animation:brainIn .3s var(--ease)}
.brain-q::before{content:"you";display:block;font-size:9px;letter-spacing:.18em;text-transform:uppercase;color:var(--gold2);margin-bottom:3px}
.brain-a{align-self:flex-start;max-width:92%;background:var(--panel2);border:1px solid var(--line);border-radius:14px 14px 14px 4px;padding:12px 15px;font-size:12px;color:var(--muted);line-height:1.65;animation:brainIn .35s var(--ease)}
.brain-a::before{content:"the brain";display:block;font-size:9px;letter-spacing:.18em;text-transform:uppercase;color:var(--gold);margin-bottom:5px}
.brain-a .gold{color:var(--gold);font-weight:600}
.brain-a .dim{color:var(--muted2)}
.brain-a .brain-sub{font-size:10px;letter-spacing:.16em;text-transform:uppercase;color:var(--muted2);margin:10px 0 5px}
.brain-a .brain-hit{font-size:12px;color:var(--star);padding:4px 0;border-bottom:1px dashed var(--line)}
.brain-a .brain-hit:last-child{border-bottom:none}
.brain-a .brain-quote{font-style:italic;color:var(--muted);padding:3px 0 3px 10px;border-left:2px solid var(--line2)}
.brain-a .brain-truth{margin-top:10px;color:var(--gold);font-size:11.5px;line-height:1.6}
.brain-a code.leak{font-family:var(--mono);font-size:11px;color:var(--red);background:rgba(255,92,92,.08);padding:1px 6px;border-radius:4px}
.brain-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(86px,1fr));gap:8px;margin:8px 0}
.brain-stat{background:var(--ink2);border:1px solid var(--line);border-radius:8px;padding:8px 10px}
.brain-stat b{display:block;font-size:17px;color:var(--gold);letter-spacing:-.01em}
.brain-stat span{display:block;font-size:9px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted2);margin-top:2px}
.brain-thinking{align-self:flex-start;display:inline-flex;gap:4px;align-items:center;padding:9px 13px;background:var(--panel2);border:1px solid var(--line);border-radius:14px 14px 14px 4px}
.brain-thinking i{width:6px;height:6px;border-radius:50%;background:var(--gold);opacity:.35;animation:brainPulse 1s infinite}
.brain-thinking i:nth-child(2){animation-delay:.18s}
.brain-thinking i:nth-child(3){animation-delay:.36s}
.brain-chip.suggest{cursor:pointer;background:rgba(242,184,75,.05)}
.brain-askbar{display:flex;gap:8px;margin-top:12px}
.brain-askbar input{flex:1;min-width:0;background:var(--ink2);border:1px solid var(--line);border-radius:10px;color:var(--star);font-family:var(--mono);font-size:11px;padding:9px 12px;letter-spacing:.03em;transition:border-color .2s}
.brain-askbar input:focus{outline:none;border-color:var(--line2)}
.brain-demo-cta{margin-top:12px;text-align:center}
.brain-demo-cta span{cursor:pointer;color:var(--gold);font-size:11px;letter-spacing:.08em;text-transform:uppercase;border:1px dashed rgba(242,184,75,.4);border-radius:99px;padding:8px 18px;display:inline-block;transition:all .2s}
.brain-demo-cta span:hover{background:rgba(242,184,75,.1);border-color:var(--gold)}
@keyframes brainIn{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}
@keyframes brainPulse{0%,100%{opacity:.35;transform:scale(.9)}50%{opacity:1;transform:scale(1.15)}}

/* toast */
.toast{position:fixed;bottom:22px;left:50%;transform:translateX(-50%);background:var(--panel2);border:1px solid var(--line2);color:var(--star);padding:12px 20px;border-radius:10px;z-index:300;box-shadow:var(--shadow);animation:rise .3s var(--ease) both;font-size:11px}
.toast-gate{border-color:rgba(242,184,75,.55);color:var(--gold);box-shadow:0 0 26px rgba(242,184,75,.22);font-weight:600}

/* footer / overlay */
.app-foot{display:flex;justify-content:space-between;gap:12px;padding:16px 22px;border-top:1px solid var(--line);color:var(--muted2);font-size:10px;flex-wrap:wrap}
.loading-overlay{position:fixed;inset:0;background:rgba(4,6,12,.85);backdrop-filter:blur(8px);display:flex;align-items:center;justify-content:center;z-index:200}
.loading-inner{display:flex;flex-direction:column;align-items:center;gap:16px}
.loader{width:44px;height:44px;border-radius:50%;border:3px solid rgba(242,184,75,.15);border-top-color:var(--gold);animation:spin 1s linear infinite}
.load-progress{width:280px;max-width:80vw;display:flex;flex-direction:column;align-items:center;gap:10px;animation:rise .3s var(--ease) both}
.load-track{width:100%;height:6px;border-radius:99px;background:rgba(242,184,75,.14);border:1px solid rgba(242,184,75,.3);overflow:hidden}
.load-fill{height:100%;width:0;border-radius:99px;background:linear-gradient(90deg,var(--gold),#ffd98a);transition:width .25s var(--ease)}
.load-stage{font-size:10px;letter-spacing:.22em;text-transform:uppercase;color:var(--gold)}
@keyframes spin{to{transform:rotate(360deg)}}
#loadingText{color:var(--muted)}

@media (prefers-reduced-motion:reduce){
  *{animation:none!important;transition:none!important}
}

/* mobile */
@media(max-width:640px){
  .brand-name{font-size:clamp(42px,14vw,72px)}
  .topbar{padding:10px 14px;gap:10px;padding-top:max(10px,env(safe-area-inset-top));padding-bottom:max(10px,env(safe-area-inset-bottom))}
  /* TKT-0104: touch targets — 44px floor on every tap target so the app
     passes the mobile feel bar on iOS and Android */
  .tab{padding:12px 14px;font-size:12px}
  button.btn,button.btn-gold,button.btn-ghost{min-height:44px}
  .dz-title,.dz-sub{padding:2px 0}
  .modal-close{min-width:44px;min-height:44px}
  .hint-close{min-width:44px;min-height:44px}
  .es-num{min-width:44px;min-height:44px;display:inline-flex;align-items:center;justify-content:center}
  .lang-switch{min-height:44px}
  .tabs{order:3;width:100%;overflow-x:auto}
  .content{padding:14px}
  .tl-item{grid-template-columns:1fr}
  .person{flex-wrap:wrap}
  .person-bar-wrap{flex-basis:100%;order:4}
  .timeline-filters{width:100%}
  #timelineYear,#timelineType{flex:1}
  .land-hero{padding:120px 18px 48px;min-height:calc(100vh - 40px)}
  .land-nav{padding:14px 16px}
  .land-nav-name{font-size:48px}
  .land-nav .brand-glyph{width:40px;height:40px}
  .land-nav-links{gap:12px}
  .land-nav-links a:not(:last-child){display:none}
  .topbar-name{font-size:44px}
  .topbar-brand .brand-glyph.small{width:36px;height:36px}
  .land-title{font-size:clamp(30px,9vw,44px)}
  .land-sub{font-size:11px;line-height:1.7;gap:8px}
  .land-brands{gap:7px}
  .bl{width:17px;height:17px}
  .land-band{padding:30px 16px}
  .land-section{padding:60px 18px}
  .land-features{grid-template-columns:1fr}
  .land-steps{grid-template-columns:1fr}
  .es-card{padding:16px 18px;gap:14px}
  .es-num{width:36px;height:36px;font-size:15px}
  .es-body b{font-size:14px}
  .es-body span{font-size:12px}
  .land-export-big{padding:14px 20px}
  .land-export-big strong{font-size:14px}
  .land-final{padding:72px 18px 56px}
  .land-cta{max-width:100%}
  .land-price-card{padding:24px 20px}
  .land-price-amount{font-size:clamp(48px,16vw,64px)}
}

/* ═══════ FAMILY TREE + FORGOTTEN-FAMILY FINDER (TKT-0065) + FACE CLUSTERS (TKT-0066) ═══════ */
.family-tree{display:flex;flex-direction:column;gap:10px;margin:18px 0 22px}
.ft-row{display:flex;flex-wrap:wrap;gap:10px;justify-content:center}
.ft-row.sug{opacity:.85}
.ft-node{display:flex;flex-direction:column;align-items:center;gap:6px;padding:14px 16px;border:1px solid var(--line);border-radius:14px;background:var(--panel);min-width:96px;transition:border-color .25s,transform .25s}
.ft-node:hover{transform:translateY(-2px);border-color:var(--line2)}
.ft-node.root{border-color:rgba(242,184,75,.45);background:rgba(242,184,75,.06)}
.ft-node.sug{border-style:dashed;border-color:var(--line2)}
.ft-avatar{width:46px;height:46px;border-radius:50%;border:1px solid var(--line2);background:rgba(242,184,75,.1);color:var(--gold);display:flex;align-items:center;justify-content:center;font-size:20px;font-weight:700;font-family:var(--serif)}
.ft-name{font-size:12px;text-align:center;line-height:1.3;max-width:110px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ft-tag{font-size:9px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
.ft-score{font-size:10px;color:var(--gold)}
.ft-add{width:26px;height:26px;border-radius:50%;border:1px solid rgba(242,184,75,.5);color:var(--gold);font-size:15px;line-height:1;transition:background .2s}
.ft-add:hover{background:rgba(242,184,75,.15)}
.ft-rm{width:22px;height:22px;border-radius:50%;border:1px solid var(--line2);color:var(--muted);font-size:10px;line-height:1;transition:color .2s,border-color .2s}
.ft-rm:hover{color:#e08a8a;border-color:#e08a8a}
.family-sep{display:flex;align-items:center;gap:12px;color:var(--gold);font-size:10px;letter-spacing:.18em;text-transform:uppercase;margin:18px 0 10px}
.family-sep::before,.family-sep::after{content:"";flex:1;height:1px;background:linear-gradient(90deg,transparent,var(--line2),transparent)}
.family-marked{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:6px}
.family-person{display:flex;align-items:center;gap:8px;padding:8px 12px;border:1px solid var(--line);border-radius:99px;background:var(--panel);font-size:12px}
.fp-avatar{width:28px;height:28px;border-radius:50%;border:1px solid var(--line2);background:rgba(242,184,75,.1);color:var(--gold);display:flex;align-items:center;justify-content:center;font-size:13px;font-weight:700}
.fp-name{font-weight:600}
.fp-rel{font-size:9px;color:var(--muted);letter-spacing:.08em;text-transform:uppercase}
.family-finder-bar{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin:8px 0 14px}
.family-rel{background:var(--panel);border:1px solid var(--line2);border-radius:99px;color:var(--star);font-size:11px;padding:6px 12px}
.family-sug{display:flex;flex-direction:column;gap:6px;padding:12px 14px;border:1px solid var(--line);border-radius:14px;background:var(--panel);margin-bottom:8px}
.family-sug-head{display:flex;align-items:center;gap:10px}
.fp-score{font-size:11px;color:var(--gold);font-weight:700}
.fp-tier{font-size:9px;letter-spacing:.1em;text-transform:uppercase;font-weight:700;padding:3px 8px;border-radius:20px;border:1px solid var(--line)}
.fp-tier.strong{color:#7fd8a0;border-color:rgba(127,216,160,.45);background:rgba(127,216,160,.08)}
.fp-tier.moderate{color:var(--gold);border-color:rgba(242,184,75,.45);background:rgba(242,184,75,.08)}
.fp-tier.speculative{color:var(--muted);border-color:var(--line2);background:rgba(255,255,255,.03)}
.family-sug-reasons{display:flex;flex-wrap:wrap;gap:6px}
.fp-reason{font-size:10px;color:var(--muted);letter-spacing:.04em;padding:3px 9px;border:1px solid var(--line);border-radius:99px}
.family-note{color:var(--muted2);font-size:10px;line-height:1.7;letter-spacing:.03em;margin-top:8px}
.family-face-status{color:var(--muted);font-size:11px}
.family-cluster-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(74px,1fr));gap:8px;margin:4px 0 10px}
.family-cluster{position:relative;border:1px solid var(--line);border-radius:12px;overflow:hidden;aspect-ratio:1;background:var(--panel);transition:border-color .25s,transform .25s;cursor:pointer}
.family-cluster:hover{transform:translateY(-2px);border-color:rgba(242,184,75,.45)}
.family-cluster.picked{border-color:var(--gold);box-shadow:0 0 0 2px rgba(242,184,75,.3)}
.family-cluster img{width:100%;height:100%;object-fit:cover;display:block}
.fc-count{position:absolute;right:6px;bottom:6px;background:rgba(10,12,18,.78);color:var(--gold);font-size:10px;padding:2px 7px;border-radius:99px;border:1px solid rgba(242,184,75,.35)}

/* ═══════ GO FURTHER — FREE PUBLIC RECORDS (TKT-0068) ═══════ */
.family-records{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:8px;margin:6px 0 12px}
.fr-card{display:flex;flex-direction:column;gap:6px;padding:12px 14px;border:1px solid var(--line);border-radius:12px;background:var(--panel);text-decoration:none;color:var(--star);transition:border-color .25s,transform .25s,background .25s}
.fr-card:hover{transform:translateY(-2px);border-color:rgba(242,184,75,.45);background:rgba(242,184,75,.05)}
.fr-name{font-weight:700;font-size:13px;color:var(--gold);letter-spacing:.01em}
.fr-card:hover .fr-name{text-decoration:underline;text-underline-offset:3px}
.fr-desc{font-size:10px;color:var(--muted2);line-height:1.6;letter-spacing:.03em}

/* ═══════ SEARCHING FOR BIRTH FAMILY — HONEST PANEL (TKT-0069) ═══════ */
.family-honest{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:10px;margin:6px 0 14px}
.fh-col{padding:14px 16px;border:1px solid var(--line);border-radius:14px;background:var(--panel)}
.fh-title{font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--gold);margin-bottom:10px;font-weight:700}
.fh-title.fh-no{color:#e0b3a8}
.fh-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}
.fh-list li{font-size:11px;line-height:1.7;color:var(--muted);letter-spacing:.03em;padding-left:0}
@media(max-width:820px){.family-honest{grid-template-columns:1fr}}

/* TKT-0070 — on-device research log */
.rl-search{flex:1;min-width:160px;background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:8px 12px;color:var(--star);font-size:12px}
.rl-search:focus{outline:none;border-color:rgba(242,184,75,.5)}
.rl-list{display:flex;flex-direction:column;gap:8px;margin:4px 0 12px}
.rl-note{padding:12px 14px;border:1px solid var(--line);border-radius:14px;background:var(--panel);cursor:pointer;transition:border-color .25s,background .25s}
.rl-note:hover{border-color:rgba(242,184,75,.45);background:rgba(242,184,75,.05)}
.rl-note-head{display:flex;align-items:center;gap:10px}
.rl-date{margin-left:auto;font-size:10px;color:var(--muted)}
.rl-note-bits{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}
.rl-note-bits span{font-size:10px;color:var(--muted);letter-spacing:.02em;padding:3px 8px;border:1px solid var(--line);border-radius:20px;background:rgba(255,255,255,.02)}
.rl-note-empty{font-size:10px;color:var(--muted);margin-top:8px}
.rl-modal .modal-sub{font-size:11px;color:var(--muted);margin:-4px 0 14px}
.rl-field{display:flex;flex-direction:column;gap:5px;margin-bottom:12px}
.rl-field label{font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:var(--gold)}
.rl-field input,.rl-field textarea{background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:9px 12px;color:var(--star);font-size:13px;resize:vertical;font-family:inherit}
.rl-field input:focus,.rl-field textarea:focus{outline:none;border-color:rgba(242,184,75,.5)}
.rl-spacer{flex:1}
.rl-modal .modal-actions{display:flex;gap:8px}

/* ═══════════ INSIGHT TAB (TKT-0094, Tier 1) ═══════════
   A1 inferred profile · A2 Lock-Down Roadmap · A3 advertiser audit.
   Same navy/gold vocabulary as the family + research-log panels. */
.insight-card{margin:0 0 16px;padding:16px 18px;border:1px solid var(--line);border-radius:14px;background:var(--panel)}
.insight-head{display:flex;align-items:center;gap:10px;font-size:12px;letter-spacing:.04em}
.insight-glyph{font-size:16px}
.insight-note{font-size:11px;color:var(--muted);line-height:1.7;margin:8px 0 12px}
.insight-body{display:flex;flex-direction:column;gap:10px}
.insight-group{margin:0 0 12px}
.insight-group b{display:block;font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:var(--gold);margin-bottom:6px}
.insight-chips{display:flex;flex-wrap:wrap;gap:6px}
.insight-chip{font-size:10px;color:var(--star);letter-spacing:.02em;padding:4px 10px;border:1px solid var(--line);border-radius:20px;background:rgba(255,255,255,.02)}
.insight-chip.locked{color:#7fd8a0;border-color:rgba(127,216,160,.4);background:rgba(127,216,160,.06)}
.insight-count{font-size:10px;color:var(--muted);margin-top:10px;letter-spacing:.02em}
.roadmap-step{padding:12px 14px;border:1px solid var(--line);border-radius:12px;margin:0 0 10px;background:var(--panel2)}
.roadmap-title{display:block;font-size:13px;color:var(--star)}
.roadmap-where{font-size:10px;color:var(--muted);margin-top:5px}
.roadmap-change{font-size:12px;color:var(--star);margin-top:6px;line-height:1.6}
.roadmap-path{font-size:10px;color:var(--gold);margin-top:6px;letter-spacing:.02em}
.roadmap-step.sev-crit{border-color:rgba(255,93,93,.4)}
.roadmap-step.sev-high{border-color:rgba(255,159,67,.4)}
.roadmap-step.sev-med{border-color:var(--line)}
.roadmap-step.sev-low{border-color:var(--line);opacity:.85}
.ad-row{display:flex;align-items:center;gap:10px;padding:9px 12px;border:1px solid var(--line);border-radius:10px;margin:0 0 8px;background:var(--panel2)}
.ad-rank{font-size:10px;color:var(--gold);min-width:18px}
.ad-title{font-size:12px;color:var(--star);flex:1}
.ad-count{font-size:10px;color:var(--muted)}
.ad-url{font-size:10px;color:var(--gold);text-decoration:none;white-space:nowrap}
.ad-url:hover{text-decoration:underline}
.insight-prefs{display:flex;flex-wrap:wrap;gap:6px}

/* ═══════════ DEEP-DIVE TAB (TKT-0101) ═══════════
   The hidden files in every export — masked values only. Same
   navy/gold vocabulary as the Insight tab. */
.deep-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:14px;margin-top:16px}
.deep-card{margin:0;padding:16px 18px;border:1px solid var(--line);border-radius:14px;background:var(--panel)}
.deep-rows{display:flex;flex-direction:column;gap:8px;margin-top:8px}
.deep-row{font-size:11px;color:var(--soft);line-height:1.6;padding:8px 10px;border:1px solid var(--line);border-radius:10px;background:var(--panel2);word-break:break-word}
.deep-flags{display:flex;flex-direction:column;gap:8px;margin-top:14px}
.deep-flag{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap;padding:10px 14px;border:1px solid var(--line);border-radius:12px;background:var(--panel2);cursor:pointer;transition:border-color .2s ease}
.deep-flag:hover{border-color:rgba(242,184,75,.5)}
.deep-flag.sev-high{border-color:rgba(255,93,93,.45)}
.deep-flag.sev-medium{border-color:rgba(255,159,67,.45)}
.deep-flag-title{font-size:13px;color:var(--star)}
.deep-flag-meta{font-size:10px;color:var(--muted);flex-basis:100%;letter-spacing:.02em}
.deep-flag .badge{font-size:9px;padding:2px 7px;border-radius:99px}
.badge.high{background:rgba(255,93,93,.16);color:#ff9d9d;border:1px solid rgba(255,93,93,.4)}
.badge.medium{background:rgba(255,159,67,.14);color:#ffc38a;border:1px solid rgba(255,159,67,.4)}
.badge.low{background:rgba(127,216,160,.12);color:#7fd8a0;border:1px solid rgba(127,216,160,.35)}

/* ══════════════════════════════════════════════════════════════════════
   MAKE-OVER v2 (2026-08-08) — the approved snap-paged concept ported into
   the live landing. PURE ADDITIVE: no pinned string, i18n key, id, or
   script-order change — every existing section/string stays byte-identical.
   ── blurred photo backdrops + navy wash + vignette
   ── logo kickers (the gold dot becomes the DataVault mark)
   ── matched gold nav CTA pair (Get your export / Unlock lifetime access)
   ── height-aware snap lives in js/reveal.js (no new <script> tags)
   ══════════════════════════════════════════════════════════════════════ */

/* photo layer — first child of each landing section; 14px blur like the
   approved preview, scaled so the blur edge never shows */
.land-photo{position:absolute;inset:-6%;z-index:0;pointer-events:none;
  background-size:cover;background-position:center;
  filter:blur(14px) saturate(1.05);transform:scale(1.12)}
/* the approved preview's photos read bright enough to show through the wash
   full-height; the two dark pexels shots (page 1 hero, page 4 keepsake) sank
   into solid navy at the bottom — lift them to the approved brightness */
.land-hero .land-photo,.land-pricing .land-photo{filter:blur(14px) saturate(1.05) brightness(1.85)}
.land-keepsake .land-photo{filter:blur(14px) saturate(1.05) brightness(1.75)}
/* navy wash + vignette — mirrors the preview's ::before/::after pair */
.land-wash{position:absolute;inset:0;z-index:1;pointer-events:none;
  background:
    radial-gradient(125% 95% at 50% 46%,transparent 48%,rgba(2,3,7,.7) 100%),
    linear-gradient(180deg,rgba(3,5,10,.88) 0%,rgba(3,5,10,.5) 38%,rgba(3,5,10,.62) 66%,rgba(2,4,8,.95) 100%);
  background-color:rgba(5,8,14,.2)}
/* content sits above the layers; nav keeps its own z-index:5 */
.land-hero>*:not(.land-nav):not(.land-photo):not(.land-wash),.land-section>*:not(.land-photo):not(.land-wash),.land-final>*:not(.land-photo):not(.land-wash){position:relative;z-index:2}

/* the five real photos, cycled across the nine landing sections */
.land-hero .land-photo,.land-pricing .land-photo{background-image:url("img/sections/pexels-viralyft-16852355.jpg")}
.land-export-guide .land-photo,.land-privacy .land-photo{background-image:url("img/sections/pexels-julio-lopez-75309646-17614476.jpg")}
#inside .land-photo,.land-note .land-photo{background-image:url("img/sections/pexels-rdne-6669794.jpg")}
.land-how .land-photo,.land-final .land-photo{background-image:url("img/sections/pexels-jeshoots-7411.jpg")}
.land-keepsake .land-photo{background-image:url("img/sections/pexels-daliladalprat-2055500.jpg")}

/* logo kickers — every page kicker leads with the DataVault logo, exactly
   like the approved preview (pill + logo mark instead of a bare dot) */
.land-kicker,.land-eyebrow{display:inline-flex;align-items:center;gap:10px;
  border:1px solid var(--line2);border-radius:99px;padding:8px 18px;
  background:rgba(242,184,75,.06);backdrop-filter:blur(6px)}
.land-kicker::before,.land-eyebrow::before{content:"";width:26px;height:26px;border-radius:50%;flex:none;
  background:url("img/datavault-logo.png") center/cover no-repeat var(--gold);box-shadow:0 0 12px rgba(242,184,75,.45)}
.land-eyebrow::before{width:22px;height:22px}
.land-kicker{margin-top:3px;margin-bottom:24px}
.land-eyebrow{margin:0 auto 14px}

/* matched gold nav pair — both pills, same size (approved in preview) */
.nav-cta,.nav-export{display:inline-flex;align-items:center;gap:7px;
  background:linear-gradient(180deg,var(--gold),var(--gold2));
  color:#1a1206;font-family:var(--sans);font-size:11.5px;font-weight:700;letter-spacing:.02em;
  border-radius:99px;padding:9px 16px;box-shadow:0 6px 22px rgba(242,184,75,.28);
  transition:transform .2s var(--ease),box-shadow .2s var(--ease);white-space:nowrap}
.nav-cta:hover,.nav-export:hover{transform:translateY(-1px);box-shadow:0 10px 28px rgba(242,184,75,.42)}
/* nav pills sit inside .land-nav-links a (color:var(--muted), specificity 0,1,1) —
   re-assert the black pill text so the gold boxes read black-on-gold */
.land-nav-links .nav-cta,.land-nav-links .nav-export{color:#1a1206}

/* page rail — the approved 5-dot navigator, rebuilt live from the actual
   snap points (one dot per section that fits the viewport). Gold when
   active; click jumps to that page. Hidden until reveal.js builds it and
   hidden again inside the app (vault hides). */
.land-dots{position:fixed;right:22px;top:50%;transform:translateY(-50%);z-index:49;
  display:flex;flex-direction:column;gap:12px;align-items:center}
.land-dots button{width:9px;height:9px;border-radius:50%;padding:0;border:none;cursor:pointer;
  background:rgba(232,236,244,.25);transition:background .3s,transform .3s}
.land-dots button:hover{background:rgba(232,236,244,.55)}
.land-dots button.on{background:var(--gold);transform:scale(1.35);box-shadow:0 0 12px rgba(242,184,75,.8)}
.ios .land-dots{top:calc(50% + env(safe-area-inset-top)/2)}

/* ── makeover page treatment (2026-08-08 v3): the five makeover sections
   are EXACT full-viewport pages, mirroring the approved preview — centred
   content, one idea per screen, page rail on the right. The page itself is
   fixed at 100vh with overflow:hidden (the photo + wash + hero nav stay
   pinned); the inner .page-scroll carries the content and scrolls
   internally (margin:auto centring = safe: it centres when it fits and
   top-aligns when the copy runs long, so a page can never trap content).
   The wheel guard scrolls the page's own content first, then steps to the
   next page at the edge. The honesty tail (pricing, privacy, note, footer)
   scrolls natively below. */
.land-hero,.land-export-guide,#inside,.land-keepsake,.land-final{
  height:100vh;height:100dvh;
  min-height:0;
  overflow:hidden;
  padding:0;
  width:100%;max-width:none;
}
/* the five makeover pages are fixed 100vh snap boxes — a translateY reveal
   would shift their geometry mid-scroll and break the snap positions, so
   they only fade (opacity) and never move */
.js .land-hero.reveal-safe,
.js .land-export-guide.reveal-safe,
.js #inside.reveal-safe,
.js .land-keepsake.reveal-safe,
.js .land-final.reveal-safe{
  transform:none;
}
.page-scroll{
  position:relative;z-index:2;width:100%;height:100%;
  overflow-y:auto;overscroll-behavior:contain;
  -webkit-overflow-scrolling:touch;
  display:flex;flex-direction:column;
}
.page-inner{
  margin:auto;width:100%;max-width:920px;text-align:center;
}
.page-scroll>.land-hero-inner{
  margin:auto;width:100%;max-width:760px;text-align:center;
}
.land-export-guide .page-inner{padding:110px 28px 60px}
#inside .page-inner{padding:90px 28px 60px}
.land-keepsake .page-inner{padding:70px 28px 60px}
.land-final .page-inner{padding:44px 24px 32px}
.land-final .dropzone{padding:20px 18px}
.land-hero .page-scroll>.land-hero-inner{padding:100px 24px 40px;gap:14px}
/* compact hero (one screen): smaller sealed door, denser dossier card */
.land-hero .vault-door{width:120px;height:120px}
.land-hero .door-seal{width:78px;height:78px}
.land-hero .door-seal svg{width:60px;height:60px}
.land-hero .dossier{max-width:400px;padding:15px 18px 13px}
.land-hero .d-head{padding-bottom:9px;margin-bottom:9px;gap:10px}
.land-hero .d-avatar{width:38px;height:38px;font-size:16px}
.land-hero .d-rows{gap:8px}
.land-hero .d-row{font-size:11px}
/* page 5 keeps the stats band's i18n keys in source but out of the one-screen flow */
.land-final .vault-stats{display:none}
.land-final .land-kicker{margin-bottom:14px}

/* ── makeover v4 (2026-08-08): the approved copy, page by page ── */
/* p2: the official-by-law line (blue, +2, bold — approved) + slim lede */
.land-official{color:#1877F2;font-weight:700;font-size:clamp(17px,2.2vw,20px);margin:0 0 10px;line-height:1.45}
.land-lede-slim{margin-bottom:22px}
/* p3: chips (approved: five features + paid label + paid note) */
.p3-paid-label{font-size:10px;letter-spacing:.22em;text-transform:uppercase;color:var(--gold);margin:2px 0 12px}
.p3-chips{display:flex;flex-wrap:wrap;justify-content:center;gap:9px;max-width:640px;margin:0 auto 14px}
.p3-chip{border:1px solid var(--line);border-radius:999px;padding:9px 16px;font-size:12.5px;color:var(--star);background:rgba(10,15,28,.55);backdrop-filter:blur(4px);letter-spacing:.02em;transition:border-color .25s,color .25s}
.p3-chip:hover{border-color:var(--gold);color:var(--gold)}
.p3-paid-note{font-size:12.5px;line-height:1.7;color:var(--muted);max-width:560px;margin:0 auto}
/* p4: cold side facebook-blue, warm side red (approved colouring) */
.cold-side{color:#1877F2}
.warm-side{color:var(--red)}
/* p5: approved CTA — gold box, black font (matches the preview's .sec-cta) */
.land-unlock-cta{display:inline-flex;align-items:center;gap:9px;margin-top:28px;background:linear-gradient(180deg,var(--gold),var(--gold2));color:#1a1206;font-weight:700;font-size:17px;border-radius:99px;padding:15px 30px;box-shadow:0 12px 34px rgba(242,184,75,.4);text-decoration:none}
.land-unlock-cta:hover{filter:brightness(1.05)}
.land-page-foot{display:flex;flex-direction:column;gap:6px;align-items:center;margin-top:14px;font-size:10.5px;letter-spacing:.14em;color:var(--muted2)}
.land-page-foot b{color:var(--brand-blue);font-weight:700}
.land-page-foot .mono{letter-spacing:.1em}
.land-foot-links{display:flex;flex-wrap:wrap;justify-content:center;align-items:center;gap:8px;margin-top:2px;text-transform:none;letter-spacing:.04em;font-size:10px}
.land-foot-links .linklike{font-size:10px}
.land-foot-links .dot{opacity:.4}
@media (max-width:480px){
  .land-foot-links{gap:5px 8px}
  .land-h2{font-size:clamp(21px,7.5vw,28px)}
  .land-lede{font-size:13.5px;line-height:1.7}
  .land-eyebrow{font-size:9.5px;letter-spacing:.22em;padding:6px 12px}
}

/* collapsible guide disclosures — the detailed steps stay reachable (one
   tap) without cramming the makeover page into an internal scroll */
.guide-details{margin-top:26px;width:100%;max-width:820px;text-align:left}
.guide-summary{cursor:pointer;list-style:none;display:inline-flex;align-items:center;gap:8px;padding:10px 18px;border:1px solid var(--line);border-radius:999px;background:rgba(10,15,28,.55);color:var(--gold);font-size:12px;letter-spacing:.12em;transition:border-color .2s,background .2s}
.guide-summary:hover{border-color:var(--gold);background:rgba(242,184,75,.08)}
.guide-summary::-webkit-details-marker{display:none}
.guide-details[open] .guide-summary{margin-bottom:22px}
.land-section.land-keepsake{max-width:920px}

/* small screens: fold the plain text links (content is on the pages anyway),
   keep the two gold pills + the language dropdown (matches the preview) */
@media(max-width:720px){
  .land-nav-links>a:not(.nav-export):not(.nav-cta){display:none}
  .land-photo{filter:blur(10px) saturate(1.05)}
  .land-kicker,.land-eyebrow{padding:7px 14px}
  .land-kicker::before,.land-eyebrow::before{width:22px;height:22px}
  .land-eyebrow::before{width:19px;height:19px}
  .nav-cta,.nav-export{font-size:10.5px;padding:8px 11px}
  .land-dots{right:10px;gap:10px}
  .land-dots button{width:12px;height:12px}
  /* makeover: landing copy shrinks with the viewport (matches the approved
     preview's responsive steps) so every page — incl. the long Memory Book
     lede on page 4 — fits the page on small screens instead of clipping */
  .land-h2{font-size:clamp(24px,7vw,34px)}
  .land-lede{font-size:14.5px;line-height:1.75;margin-bottom:30px}
}
