/* Astrablend: night-ink world with brass gold, cinnabar seal and glassy cards.
   Type: Bodoni Moda (display) + DM Sans (body). A light look is available in Profile. */
:root{
  color-scheme:dark;
  --bg:#0e0f17; --panel:rgba(255,255,255,.04); --panel-solid:#161826; --panel-2:#1d2033; --line:rgba(255,255,255,.08); --line-2:rgba(212,175,106,.28);
  --text:#efe9dc; --muted:#9b97a8; --gold:#d4af6a; --gold-soft:rgba(212,175,106,.14); --on-gold:#1a1408; --cinnabar:#d9553b; --rose:#e6a4b4; --green:#7cc28d; --blue:#79a6ee;
  --wood:#7cc28d; --fire:#ef7a58; --earth:#d4af6a; --metal:#d5d8e4; --water:#79a6ee;
  --ring-bg:#14151f; --track:rgba(255,255,255,.07);
  --glow:radial-gradient(circle at 10% -5%,rgba(88,80,160,.35),transparent 45%),radial-gradient(circle at 110% 30%,rgba(150,60,90,.18),transparent 40%);
  --display:"Bodoni Moda","Didot","Bodoni 72",Georgia,serif; --body:"DM Sans",system-ui,-apple-system,"Segoe UI",sans-serif; --han:"Noto Serif SC","Songti SC",serif;
  --dw:450;
}
:root[data-look="light"]{
  color-scheme:light;
  --bg:#f7f2ea; --panel:rgba(255,255,255,.75); --panel-solid:#ffffff; --panel-2:#efe7da; --line:rgba(60,40,20,.12); --line-2:rgba(160,120,50,.35);
  --text:#2b2420; --muted:#7c7068; --gold:#a37a30; --gold-soft:rgba(163,122,48,.12); --on-gold:#fffaf0; --rose:#b8576f; --green:#3f8a55; --blue:#3f6fbf;
  --wood:#3f8a55; --fire:#c9553a; --earth:#a37a30; --metal:#6f7686; --water:#3f6fbf;
  --ring-bg:#fbf8f3; --track:rgba(60,40,20,.08);
  --glow:radial-gradient(circle at 10% -5%,rgba(214,190,150,.45),transparent 45%),radial-gradient(circle at 110% 30%,rgba(230,170,180,.3),transparent 40%);
}
*{box-sizing:border-box}
[hidden]{display:none!important}
html,body{margin:0;min-height:100%}
body{background:var(--bg);background-image:var(--glow);background-attachment:fixed;color:var(--text);font-family:var(--body);font-size:15px;line-height:1.55;-webkit-font-smoothing:antialiased}
a{color:inherit}
.app{max-width:560px;margin:0 auto;padding-bottom:calc(96px + env(safe-area-inset-bottom))}
header.top{position:sticky;top:0;z-index:5;display:flex;align-items:center;justify-content:space-between;padding:12px 16px;padding-top:calc(12px + env(safe-area-inset-top));background:color-mix(in srgb,var(--bg) 82%,transparent);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px)}
.logo{display:flex;align-items:center;gap:7px;font-family:var(--display);font-weight:var(--dw);font-size:24px;letter-spacing:.01em;text-decoration:none}
.logo svg{width:20px;height:20px;color:var(--gold)}
.av{width:36px;height:36px;border-radius:50%;display:grid;place-items:center;font-weight:800;font-size:13.5px;background:linear-gradient(135deg,#3a2f52,#5a3a4a);border:1px solid var(--line-2);color:var(--gold);flex:none;text-decoration:none}
:root[data-look="light"] .av{background:linear-gradient(135deg,#efe1cc,#f1d6dc)}
.av.sm{width:30px;height:30px;font-size:12px}
.av.lg{width:56px;height:56px;font-size:20px}
.av.alt{background:linear-gradient(135deg,#2f4a52,#3a5a4a)}
:root[data-look="light"] .av.alt{background:linear-gradient(135deg,#d9eadf,#d8e4f2)}
main{padding:8px 16px 16px}
.view{display:none;flex-direction:column;gap:14px}
.view.on{display:flex}
.stack{display:flex;flex-direction:column;gap:14px}
.sub{display:none}.sub.on{display:flex}
.kick{font-size:10.5px;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:var(--muted)}
.h{font-family:var(--display);font-weight:var(--dw);font-size:34px;line-height:1.04;margin:2px 0 0;letter-spacing:-.01em;text-wrap:balance}
.h em{font-style:italic;color:var(--gold)}
h4{margin:0;font-size:15px;font-weight:700}
p{margin:0}
.card{background:var(--panel);border:1px solid var(--line);border-radius:22px;padding:16px;display:flex;flex-direction:column;gap:10px;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px)}
.card.glow{background:linear-gradient(160deg,rgba(212,175,106,.12),var(--panel) 55%);border-color:var(--line-2)}
.big{font-family:var(--display);font-weight:var(--dw);font-size:27px;line-height:1.1}
.quote{font-family:var(--display);font-style:italic;font-weight:var(--dw);font-size:22px;line-height:1.25}
.han{font-family:var(--han)}
.muted{color:var(--muted)} .sm{font-size:13px} .note{font-size:12.5px;color:var(--muted)} .err{color:var(--rose)}
.row{display:flex;gap:8px;align-items:center} .wrap{flex-wrap:wrap} .between{justify-content:space-between} .top-a{align-items:flex-start}
.grid2{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.pill{display:inline-flex;align-items:center;gap:5px;font-size:11.5px;font-weight:700;padding:4px 10px;border-radius:999px;background:var(--gold-soft);color:var(--gold);white-space:nowrap}
.pill.rose{background:color-mix(in srgb,var(--rose) 15%,transparent);color:var(--rose)} .pill.green{background:color-mix(in srgb,var(--green) 15%,transparent);color:var(--green)} .pill.dim{background:var(--track);color:var(--muted)}
.seal{width:44px;height:44px;border-radius:13px;background:var(--cinnabar);display:grid;place-items:center;font-family:var(--han);font-size:22px;font-weight:700;color:#fff;flex:none;box-shadow:0 6px 18px rgba(217,85,59,.35)}
.seal.soft{box-shadow:none;font-family:var(--body);font-size:20px}
.seal.rose{background:color-mix(in srgb,var(--rose) 16%,transparent);color:var(--rose)} .seal.gold{background:var(--gold-soft);color:var(--gold)} .seal.green{background:color-mix(in srgb,var(--green) 16%,transparent);color:var(--green)} .seal.blue{background:color-mix(in srgb,var(--blue) 16%,transparent);color:var(--blue)}
.btn{border:0;border-radius:999px;padding:11px 18px;font:700 14px var(--body);background:var(--gold);color:var(--on-gold);cursor:pointer;display:inline-flex;align-items:center;justify-content:center;gap:6px;text-decoration:none;min-height:42px}
.btn.ghost{background:transparent;color:var(--text);border:1px solid var(--line)}
.btn.sm{padding:7px 13px;font-size:12.5px;min-height:34px}
.btn.wide{width:100%}
.btn:disabled{opacity:.45;cursor:not-allowed}
.linkbtn{all:unset;cursor:pointer;color:var(--gold);font-weight:700;font-size:13px}
.link{text-decoration:none}
:focus-visible{outline:2px solid var(--gold);outline-offset:2px}
.chips{display:flex;gap:6px;overflow-x:auto;scrollbar-width:none;padding-bottom:2px}
.chips::-webkit-scrollbar{display:none}
.chip{flex:none;border:1px solid var(--line);border-radius:999px;padding:7px 13px;font:600 13px var(--body);color:var(--muted);background:var(--panel);cursor:pointer}
.chip[aria-pressed="true"]{background:var(--text);color:var(--bg);border-color:var(--text)}
.chip.gold{border-color:var(--line-2);color:var(--gold)}
.f{width:100%;background:var(--track);border:1px solid var(--line);border-radius:14px;padding:10px 12px;color:var(--text);font:500 14px var(--body);min-height:42px}
.f.slim{width:auto;min-height:34px;padding:5px 10px}
textarea.f{min-height:84px;resize:vertical}
select.f{appearance:auto}
.lbl{display:flex;flex-direction:column;gap:5px;font-size:12.5px;font-weight:700;color:var(--muted);flex:1}
.check{display:flex;gap:10px;align-items:flex-start;font-size:13.5px}
.check input{width:18px;height:18px;margin-top:2px;accent-color:var(--gold);flex:none}
.vh{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
.tri{display:grid;grid-template-columns:repeat(3,1fr);gap:8px} .quad{display:grid;grid-template-columns:repeat(4,1fr);gap:7px}
.mini{background:var(--track);border:1px solid var(--line);border-radius:16px;padding:10px;display:flex;flex-direction:column;gap:3px;text-decoration:none;min-width:0}
.mini .k{font-size:9.5px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}
.mini b{font-size:12.5px;font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.divider{height:1px;background:var(--line)}
.banner{display:flex;align-items:center;justify-content:space-between;gap:10px;background:var(--gold-soft);border:1px solid var(--line-2);border-radius:16px;padding:10px 12px;font-size:13px;font-weight:600}
.newtag{font-size:9.5px;font-weight:800;letter-spacing:.1em;text-transform:uppercase;color:var(--on-gold);background:var(--gold);border-radius:6px;padding:2px 6px;margin-left:6px;vertical-align:2px}

/* tabs */
nav.tabs{position:fixed;left:0;right:0;bottom:0;z-index:6;background:color-mix(in srgb,var(--bg) 86%,transparent);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border-top:1px solid var(--line);padding-bottom:env(safe-area-inset-bottom)}
nav.tabs .in{max-width:560px;margin:0 auto;display:grid;grid-template-columns:repeat(4,1fr);padding:9px 12px 10px}
nav.tabs a{display:flex;flex-direction:column;align-items:center;gap:3px;font-size:11px;font-weight:700;color:var(--muted);text-decoration:none;letter-spacing:.02em}
nav.tabs a svg{width:23px;height:23px}
nav.tabs a[aria-current="page"]{color:var(--gold)}
.seg{display:grid;grid-template-columns:repeat(4,1fr);background:var(--panel-solid);border:1px solid var(--line);border-radius:999px;padding:3px;position:sticky;top:calc(60px + env(safe-area-inset-top));z-index:4}
.seg.three{grid-template-columns:repeat(3,1fr)}
.seg a,.seg button{all:unset;text-align:center;padding:8px 0;border-radius:999px;font-size:13px;font-weight:700;color:var(--muted);cursor:pointer}
.seg [aria-current="true"],.seg [aria-pressed="true"]{background:var(--gold);color:var(--on-gold)}
.seg.inline{position:static}

/* lists */
.list{display:flex;flex-direction:column}
.li{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:11px 0;border-top:1px solid var(--line);font-size:14px}
.li:first-child{border-top:0}
.li.col{flex-direction:column;align-items:flex-start;gap:2px}
.mem,.match{display:grid;grid-template-columns:34px 1fr auto;gap:10px;align-items:center;padding:10px 0;border-top:1px solid var(--line);text-align:left;width:100%;background:none;border-left:0;border-right:0;border-bottom:0;color:inherit;font:inherit;cursor:pointer}
.mem:first-child,.match:first-child{border-top:0}
.mem .t,.match .t{font-size:14px;font-weight:700} .mem .s,.match .s{font-size:12px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.match.locked{opacity:.55}
.heart{all:unset;cursor:pointer;display:flex;flex-direction:column;align-items:center;color:var(--muted);font-size:10.5px;font-weight:700;min-width:28px}
.heart svg{width:22px;height:22px}
.heart[aria-pressed="true"]{color:var(--rose)} .heart[aria-pressed="true"] svg{fill:var(--rose)}
.score{width:44px;height:44px;border-radius:50%;display:grid;place-items:center;font-weight:800;font-size:13px;position:relative;flex:none}
.score span{position:absolute;inset:4px;border-radius:50%;background:var(--ring-bg);display:grid;place-items:center}
.score.xl{width:92px;height:92px}
.score.xl span{inset:6px;font-family:var(--display);font-size:30px;font-weight:var(--dw)}
.tag{font-size:10.5px;font-weight:700;color:var(--muted);border:1px solid var(--line);border-radius:999px;padding:1px 7px;margin-left:4px}
details.more summary{list-style:none;cursor:pointer;display:flex;justify-content:space-between;align-items:center;gap:10px}
details.more summary::-webkit-details-marker{display:none}
details.more summary::after{content:"›";color:var(--muted);font-size:20px;line-height:1;transition:transform .2s}
details.more[open] summary::after{transform:rotate(90deg)}
details.more > :not(summary){margin-top:2px}
.locked-wrap{position:relative;overflow:hidden;border-radius:16px}
.locked-wrap>.blur{filter:blur(6px);pointer-events:none;user-select:none;opacity:.6}
.locked-wrap>.lock{position:absolute;inset:0;display:grid;place-content:center;justify-items:center;gap:8px;text-align:center;padding:14px}
.plans{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.plan{all:unset;cursor:pointer;border:1px solid var(--line);border-radius:16px;padding:12px;display:flex;flex-direction:column;gap:2px;background:var(--track)}
.plan[aria-pressed="true"]{border-color:var(--gold);background:var(--gold-soft)}
.plan .p{font-family:var(--display);font-size:22px}
.feat{display:flex;flex-direction:column;gap:6px;font-size:13.5px}
.switch{all:unset;cursor:pointer;width:44px;height:26px;border-radius:999px;background:var(--track);border:1px solid var(--line);position:relative;flex:none}
.switch::after{content:"";position:absolute;left:3px;top:3px;width:20px;height:20px;border-radius:50%;background:var(--muted);transition:left .2s}
.switch[aria-checked="true"]{background:var(--gold)} .switch[aria-checked="true"]::after{left:21px;background:var(--on-gold)}

/* charts */
.bars{display:flex;flex-direction:column;gap:8px}
.bar{display:grid;grid-template-columns:86px 1fr 30px;gap:8px;align-items:center;font-size:12.5px;font-weight:600;font-variant-numeric:tabular-nums}
.track{height:8px;border-radius:5px;background:var(--track);overflow:hidden}
.track i{display:block;height:100%;border-radius:5px}
.week{display:grid;grid-template-columns:repeat(7,1fr);gap:5px}
.week .d{display:flex;flex-direction:column;align-items:center;gap:4px;font-size:11px;font-weight:700;color:var(--muted)}
.week .col{height:56px;width:100%;display:flex;align-items:flex-end;justify-content:center}
.week .col i{width:14px;border-radius:7px}
.cal{display:grid;grid-template-columns:repeat(7,1fr);gap:4px}
.cal .h{font-family:var(--body);font-size:10px;font-weight:700;color:var(--muted);text-align:center;margin:0}
.cal .c{aspect-ratio:1;border-radius:9px;display:grid;place-items:center;font-size:11.5px;font-weight:700}
.legend{display:flex;gap:6px;flex-wrap:wrap}
svg text{font-family:var(--body)}
.stars{color:var(--gold);letter-spacing:1px;font-size:12.5px;white-space:nowrap}

/* tarot (card art from art.js) */
.spread{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}
.spread.one{grid-template-columns:minmax(0,190px);justify-content:center}
.spread.five{grid-template-columns:repeat(3,1fr)}
.slot{display:flex;flex-direction:column;gap:6px;align-items:center;text-align:center}
.slot .pos{font-size:10.5px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}
.tcard{width:100%;aspect-ratio:3/5;perspective:900px;cursor:pointer;border:0;background:none;padding:0;border-radius:12px}
.tcard .inner{position:relative;width:100%;height:100%;transition:transform .8s cubic-bezier(.2,.7,.2,1);transform-style:preserve-3d}
.tcard.flipped .inner{transform:rotateY(180deg)}
.face,.back{position:absolute;inset:0;backface-visibility:hidden;-webkit-backface-visibility:hidden;border-radius:12px;overflow:hidden;box-shadow:0 10px 24px rgba(0,0,0,.35)}
.face{transform:rotateY(180deg)}
.tc{aspect-ratio:3/5;border-radius:10px;overflow:hidden;box-shadow:0 10px 24px rgba(0,0,0,.35);flex:none}
.cardsvg{display:block;width:100%;height:100%}
.cardsvg .ln{fill:none;stroke:var(--d-ink);stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round;vector-effect:non-scaling-stroke}
.cardsvg .lnt{fill:none;stroke:var(--d-ink);stroke-width:.8;vector-effect:non-scaling-stroke}
.cardsvg .lnh{fill:none;stroke:var(--d-ink);stroke-width:.5;opacity:.55;vector-effect:non-scaling-stroke}
.cardsvg .acl{fill:none;stroke:var(--d-acc2);stroke-width:1.6;vector-effect:non-scaling-stroke}
.cardsvg .fa{fill:var(--d-acc)} .cardsvg .fa2{fill:var(--d-acc2)} .cardsvg .fi{fill:var(--d-ink)} .cardsvg .fb{fill:var(--d-art)} .cardsvg .art{fill:var(--d-art)}
.cardsvg .tx{fill:var(--d-ink);font-family:var(--display);font-weight:600}
.deck-celestial{--d-bg1:#1d2252;--d-bg2:#0c1030;--d-art:#11163a;--d-ink:#e8c97e;--d-acc:#e8c97e;--d-acc2:#93a8ff}
.deck-angel{--d-bg1:#fdf6ee;--d-bg2:#f3dfe4;--d-art:#eef3fb;--d-ink:#b08a4a;--d-acc:#d9ae5f;--d-acc2:#e7a3b4}
.deck-mystic{--d-bg1:#2a1640;--d-bg2:#0b0614;--d-art:#140b22;--d-ink:#cfc4f2;--d-acc:#b8a6ff;--d-acc2:#6fd1c4}
.deck-deco{--d-bg1:#16140f;--d-bg2:#050504;--d-art:#0d0c09;--d-ink:#d9b45a;--d-acc:#e8c873;--d-acc2:#3fae8f}
.cardsvg .cl{fill:#fff;opacity:.85}
.cardsvg .e{fill:none;stroke:var(--d-ink);stroke-width:1.3;stroke-linecap:round;stroke-linejoin:round;vector-effect:non-scaling-stroke}
.cardsvg .ef{fill:var(--d-acc)} .cardsvg .ea{fill:var(--d-acc2)}
.cardsvg .glow{fill:var(--d-acc);opacity:.18}
.deck-mystic .cardsvg .e{stroke-dasharray:.5 2.6;stroke-width:1.6}
.deck-mystic .cardsvg .ef{fill:var(--d-acc);fill-opacity:.5;stroke:var(--d-acc);stroke-width:.9;vector-effect:non-scaling-stroke}
.deck-deco .cardsvg .e{stroke-width:1.9;stroke-linecap:square;stroke-linejoin:miter}
.deck-angel .cardsvg .e{stroke-width:1.1}
.cardsvg .wg{fill:#fff;stroke:var(--d-ink);stroke-width:.5;opacity:.95;vector-effect:non-scaling-stroke}
.cardsvg .halo{fill:none;stroke:var(--d-acc);stroke-width:2;opacity:.7;vector-effect:non-scaling-stroke}
.deck-angel .cardsvg .tx{font-style:italic}
.deck-deco .cardsvg .tx{font-family:var(--body);letter-spacing:.12em;font-weight:700}
.decks{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}
.dk-blurb{grid-column:1/-1;margin:0}
.deckopt .minis{display:grid;grid-template-columns:1fr 1fr;gap:6px;width:100%}
.deckopt .dk-tag{font-size:10.5px;font-weight:600;color:var(--muted)}
.deckopt.locked .minis{opacity:.75}
.deckopt{border:1px solid var(--line);background:var(--track);border-radius:16px;padding:8px;display:flex;flex-direction:column;gap:6px;align-items:center;cursor:pointer;color:var(--text);font:700 11.5px var(--body);text-align:center}
.deckopt .minicard{width:100%;aspect-ratio:3/5;border-radius:8px;overflow:hidden}
.deckopt[aria-checked="true"]{border-color:var(--gold);box-shadow:0 0 0 1px var(--gold)}
.m{display:flex;flex-direction:column;gap:5px;border-top:1px solid var(--line);padding-top:10px}
.m:first-child{border-top:0;padding-top:0}

/* palm */
.stage{position:relative;width:100%;max-width:380px;margin:0 auto;aspect-ratio:3/4;border-radius:20px;overflow:hidden;background:#1b1720;border:1px solid var(--line);touch-action:none;user-select:none}
.stage canvas,.stage video{position:absolute;inset:0;width:100%;height:100%}
.stage video{opacity:0;pointer-events:none}
.stage .ps-guide,.stage .ps-lines{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}
.stage .ps-guide{display:none}
.stage.live .ps-guide{display:flex!important;align-items:flex-end;justify-content:center;padding-bottom:18px;box-shadow:inset 0 0 0 2px rgba(255,255,255,.18);border-radius:20px}
.ps-guide span{background:rgba(0,0,0,.55);color:#fff;font-size:12.5px;padding:6px 12px;border-radius:999px}
.ps-empty{position:absolute;inset:0;display:grid;place-content:center;justify-items:center;gap:10px;color:#cfc4d8;text-align:center;padding:20px}
.stage.has .ps-empty{display:none}
.ps-line{fill:none;stroke-width:3.5;stroke-linecap:round;vector-effect:non-scaling-stroke;stroke-dasharray:1;stroke-dashoffset:1;animation:draw 1.2s ease forwards;filter:drop-shadow(0 0 2px rgba(0,0,0,.8))}
.ps-line.faint{stroke-dasharray:.02 .03;opacity:.7;animation:none}
@keyframes draw{to{stroke-dashoffset:0}}
.ps-labels{position:absolute;inset:0;pointer-events:none}
.ps-lab{position:absolute;transform:translate(-50%,-140%);background:rgba(20,16,26,.85);color:#fff;border:1px solid;border-radius:999px;padding:2px 8px;font-size:11px;font-weight:800;white-space:nowrap}
.ps-scan{position:absolute;left:0;right:0;height:3px;top:0;background:linear-gradient(90deg,transparent,var(--gold),transparent);opacity:0}
.stage.scanning .ps-scan{opacity:1;animation:scan 1.1s ease-in-out infinite alternate}
@keyframes scan{to{top:calc(100% - 3px)}}
.ps-controls{display:grid;grid-template-columns:1fr 1fr;gap:10px;max-width:380px;margin:0 auto;width:100%}
.ps-controls .note{grid-column:1/-1}
.ps-controls button,.ps-controls label{border:1px solid var(--line);background:var(--track);color:var(--text);border-radius:999px;padding:8px 12px;font:700 13px var(--body);cursor:pointer;text-align:center}
.shapes{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}
.shapes button{border:1px solid var(--line);background:var(--track);color:var(--text);border-radius:16px;padding:10px 6px;font:800 12.5px var(--body);cursor:pointer;display:flex;flex-direction:column;gap:2px;align-items:center;text-align:center}
.shapes button span{font-weight:600;color:var(--muted);font-size:10.5px}
.shapes button[aria-pressed="true"]{border-color:var(--gold);box-shadow:0 0 0 1px var(--gold)}
.lineres{border-left:3px solid;padding-left:12px;display:flex;flex-direction:column;gap:6px}
.lineres select{max-width:250px}
.palmdiag{display:grid;grid-template-columns:110px 1fr;gap:14px;align-items:center}
.palmdiag svg{--panel-2:var(--track)}

/* BaZi */
.pillars{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}
.pillar{background:var(--track);border:1px solid var(--line);border-radius:16px;padding:10px 4px;display:flex;flex-direction:column;align-items:center;gap:5px;text-align:center}
.pillar .lb{font-size:9.5px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}
.glyph{font-family:var(--han);font-size:32px;line-height:1;font-weight:700}
.pillar .sub2{font-size:10.5px;color:var(--muted);line-height:1.3}
.pillar.dm{border-color:var(--gold);box-shadow:inset 0 0 0 1px var(--gold)}
dl.facts{display:grid;grid-template-columns:auto 1fr;gap:6px 14px;margin:0;font-size:13.5px}
dl.facts dt{color:var(--muted);font-weight:700} dl.facts dd{margin:0}

/* journal + history */
.entry{display:flex;flex-direction:column;gap:3px}
.entry .q{font-family:var(--display);font-style:italic;font-size:17px;line-height:1.3}

/* sheets + toast */
.sheet{position:fixed;inset:0;z-index:20;background:rgba(8,8,14,.55);display:none;align-items:flex-end;justify-content:center}
.sheet.on{display:flex}
.sheet .panel{background:var(--bg);background-image:var(--glow);border:1px solid var(--line);border-radius:26px 26px 0 0;width:100%;max-width:560px;max-height:92%;overflow:auto;padding:22px 16px calc(28px + env(safe-area-inset-bottom));display:flex;flex-direction:column;gap:14px}
.legal p,.legal li{font-size:13.5px}
.legal ol{padding-left:20px;margin:0;display:flex;flex-direction:column;gap:8px}
.toast{position:fixed;left:50%;bottom:calc(92px + env(safe-area-inset-bottom));transform:translate(-50%,20px);background:var(--text);color:var(--bg);padding:10px 16px;border-radius:999px;font-weight:700;font-size:13.5px;opacity:0;pointer-events:none;transition:.25s;z-index:30;max-width:calc(100% - 32px);text-align:center}
.toast.on{opacity:1;transform:translate(-50%,0)}
footer.fine{font-size:11.5px;color:var(--muted);text-align:center;padding:4px 16px 16px}
footer.fine a{color:var(--gold)}
@media (max-width:380px){.h{font-size:30px}.quad{grid-template-columns:repeat(2,1fr)}.shapes{grid-template-columns:repeat(2,1fr)}.glyph{font-size:26px}}
@media (prefers-reduced-motion:reduce){.tcard .inner{transition:none}.ps-line{animation:none;stroke-dashoffset:0}.stage.scanning .ps-scan{animation:none}}
.ps-hand{display:flex;align-items:center;gap:8px;flex-wrap:wrap;max-width:380px;margin:0 auto;width:100%}
.ps-hand button{border:1px solid var(--line);background:var(--track);color:var(--text);border-radius:999px;padding:6px 14px;font:700 13px var(--body);cursor:pointer}
.ps-hand button[aria-pressed="true"]{background:var(--gold);color:var(--on-gold);border-color:var(--gold)}
.ps-hand .ps-auto{flex-basis:100%}
/* iPhone: date/time inputs have a wide built-in minimum width that pushed sheets off-screen */
input,select,textarea{min-width:0;max-width:100%}
.grid2>*,.row>*{min-width:0}
input[type="date"],input[type="time"],input[type="month"]{-webkit-appearance:none;appearance:none;display:block;width:100%;text-align:left}
input::-webkit-date-and-time-value{text-align:left}
.sheet .panel{overflow-x:hidden}
.app,main{overflow-x:clip}

/* Love Match: any-two picker, saved people, detail lists */
.matchrow{display:flex;align-items:center;gap:6px}
.matchrow .match{flex:1;min-width:0}
.xdel{flex:none;width:32px;height:32px;border-radius:50%;border:1px solid var(--line,rgba(255,255,255,.15));background:transparent;color:var(--muted);font-size:13px;cursor:pointer;display:grid;place-items:center}
.xdel:hover{color:var(--text);border-color:var(--muted)}
.xdel.in{width:20px;height:20px;font-size:10px;margin-left:4px;border:none}
.savedchip{display:inline-flex;align-items:center;padding-right:6px}
label.fl{display:flex;flex-direction:column;gap:4px;min-width:0}
.seg.four{display:grid;grid-template-columns:repeat(4,1fr)}
.seg.four button{font-size:13px;padding-left:4px;padding-right:4px}
ul.clist{margin:0;padding-left:18px;display:flex;flex-direction:column;gap:8px}
ul.clist.green li::marker{color:#7fd1a5}
ul.clist.rose li::marker{color:#e79aa7}

/* Sponsored ads: stacked on the right, laptops and wide screens only */
.side-ad{display:none}
@media (min-width:1100px) and (min-height:640px){
  .side-ad{display:flex;flex-direction:column;gap:12px;position:fixed;top:50%;transform:translateY(-50%);right:calc((100vw - 560px)/4 - 75px);width:150px;z-index:3}
}
.side-ad a{display:flex;flex-direction:column;gap:5px;padding:9px;border:1px solid var(--line);border-radius:14px;background:var(--panel);text-decoration:none;color:var(--text);opacity:.82;transition:opacity .2s,border-color .2s}
.side-ad a:hover{opacity:1;border-color:var(--line-2)}
.ad-top{display:flex;justify-content:space-between;align-items:center;font-size:10.5px;color:var(--muted);letter-spacing:.04em}
.ad-badge{background:var(--gold-soft);color:var(--gold);border-radius:4px;padding:1px 6px;font-weight:700}
.side-ad img{width:100%;height:auto;aspect-ratio:1;border-radius:10px;object-fit:cover;display:block}
.ad-t{font-size:12.5px;font-weight:700;line-height:1.25}
.ad-d{font-size:11px;color:var(--muted);line-height:1.35}
.ad-go{color:var(--gold);font-weight:700;font-size:11.5px}
.tri .mini b{white-space:normal;line-height:1.25}
