/* Saju Sync: tokens */
:root{
  --void:#0A0912; --void-2:#11101C; --moon:#F3EEFB; --mist:#A19CBB; --faint:#6F6A89;
  --line:rgba(255,255,255,.12); --glass:rgba(255,255,255,.05); --glass-2:rgba(255,255,255,.09);
  --wood:#6EE7A8; --fire:#FF7B5C; --earth:#F2C063; --metal:#CFE0FF; --water:#5E8BFF;
  --accent:#CFE0FF; --accent-ink:#0A0912;
  --display:"Instrument Serif","Noto Serif KR","Noto Serif JP",Georgia,serif;
  --sans:"Figtree",system-ui,-apple-system,"Segoe UI",Roboto,"Apple SD Gothic Neo",sans-serif;
  --ease:cubic-bezier(.22,1,.36,1);
}
*{box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{margin:0;background:var(--void);color:var(--moon);font-family:var(--sans);font-size:17px;line-height:1.55;-webkit-font-smoothing:antialiased;overflow-x:hidden}
p,h1,h2,h3,ul,figure{margin:0}
ul{padding:0;list-style:none}
button,select,input{font:inherit;color:inherit}
a{color:inherit}
img,svg{display:block;max-width:100%}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
:focus-visible{outline:3px solid var(--accent);outline-offset:3px;border-radius:6px}
.wrap{width:min(1180px,100% - 40px);margin-inline:auto}
#dust{position:fixed;inset:0;width:100%;height:100%;z-index:0;pointer-events:none}
main,header,footer{position:relative;z-index:1}

/* header */
.bar{position:absolute;inset:0 0 auto 0;z-index:5}
.bar .wrap{display:flex;justify-content:space-between;align-items:center;height:72px}
.mark{font-family:var(--display);font-size:26px;text-decoration:none;letter-spacing:.01em}
.bar nav{display:flex;gap:26px;font-size:15px;color:var(--mist)}
.bar nav a{text-decoration:none}
.bar nav a:hover{color:var(--moon)}
@media(max-width:620px){.bar nav a:first-child{display:none}}

/* type */
h1,h2,.display{font-family:var(--display);font-weight:400;letter-spacing:-.01em;line-height:1.02}
h1{font-size:clamp(46px,7.4vw,92px)}
h2{font-size:clamp(34px,5vw,60px)}
h3{font-size:19px;font-weight:600}
.lead{font-size:clamp(18px,2.2vw,21px);color:var(--mist);max-width:30em}
.fine{font-size:14px;color:var(--faint)}
.muted{color:var(--mist)}

/* controls */
.dates{display:grid;grid-template-columns:1.2fr .8fr 1fr;gap:6px;padding:6px;border-radius:18px;background:var(--glass-2);border:1px solid var(--line)}
select{width:100%;height:54px;border-radius:13px;border:0;background:rgba(10,9,18,.7);color:var(--moon);padding:0 14px;font-size:17px;appearance:none;-webkit-appearance:none;cursor:pointer}
select:hover{background:rgba(10,9,18,.9)}
select option{background:#14122A;color:var(--moon)}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;height:56px;padding:0 28px;border:0;border-radius:999px;background:var(--moon);color:var(--void);font-weight:700;font-size:17px;cursor:pointer;text-decoration:none;transition:transform .25s var(--ease),box-shadow .25s}
.btn:hover{transform:translateY(-2px);box-shadow:0 12px 40px -8px var(--accent)}
.btn.accent{background:var(--accent);color:var(--accent-ink)}
.btn.ghost{background:transparent;color:var(--moon);border:1.5px solid var(--line)}
.btn.ghost:hover{box-shadow:none;border-color:var(--moon)}
.btn.sm{height:44px;padding:0 20px;font-size:15px}
.btn.block{width:100%}
.err{min-height:22px;margin-top:8px;font-size:14px;color:#FF9C8E}
.link{background:none;border:0;color:var(--mist);text-decoration:underline;text-underline-offset:3px;cursor:pointer;font-size:14px;padding:0}

/* hero */
.hero{min-height:100svh;display:flex;align-items:center;padding:96px 0 56px}
.hero-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,620px);gap:clamp(24px,4vw,64px);align-items:center}
.stagewrap{position:relative;aspect-ratio:1/1;width:100%}
#chart{width:100%;height:100%;overflow:visible}
@media(max-width:900px){
  .hero{align-items:flex-start;padding-top:84px}
  .hero-grid{grid-template-columns:1fr;gap:12px}
  .stagewrap{order:-1;width:min(100%,520px);margin-inline:auto}
  .hero.read .stagewrap{order:-1}
}
.intro .lead{margin:20px 0 28px}
.intro form{max-width:520px}
.intro .btn{margin-top:12px;width:100%}
.intro .fine{margin-top:12px}

/* reading */
.reading[hidden]{display:none}
.reading .tname{font-size:clamp(46px,6.4vw,84px)}
.reading .tag{margin-top:6px;font-size:21px;color:var(--accent)}
.reading .body{margin-top:14px;max-width:30em;color:var(--mist)}
.els{margin-top:24px;display:grid;gap:4px}
.el{display:grid;grid-template-columns:14px 78px 1fr 20px;gap:12px;align-items:center;width:100%;padding:9px 12px;border-radius:12px;border:1px solid transparent;background:transparent;cursor:pointer;text-align:left;transition:background .2s,border-color .2s}
.el:hover{background:var(--glass)}
.el[aria-pressed="true"]{background:var(--glass-2);border-color:var(--line)}
.el .dot{width:12px;height:12px;border-radius:50%;background:var(--c);box-shadow:0 0 14px var(--c)}
.el b{font-weight:600}
.el .barx{height:8px;border-radius:4px;background:rgba(255,255,255,.08);overflow:hidden}
.el .barx u{display:block;height:100%;width:var(--w,0%);background:var(--c);border-radius:4px;transition:width 1.1s var(--ease)}
.el .cnt{text-align:right;color:var(--mist);font-variant-numeric:tabular-nums}
.elnote{margin-top:10px;min-height:52px;padding:0 12px;color:var(--moon)}
.words{display:flex;gap:8px;flex-wrap:wrap;margin-top:18px}
.words li{padding:6px 16px;border-radius:999px;border:1px solid var(--line);font-weight:600}
.watch{margin-top:12px;color:var(--mist)}
.watch b{color:var(--moon)}
.stars{display:flex;gap:8px;flex-wrap:wrap;margin-top:16px}
.star{height:36px;padding:0 14px;border-radius:999px;border:1px solid var(--line);background:var(--glass);cursor:pointer;font-weight:600;font-size:15px}
.star[aria-pressed="true"]{background:var(--accent);color:var(--accent-ink);border-color:var(--accent)}
.starnote{margin-top:8px;color:var(--mist);min-height:26px}
.acts{display:flex;gap:10px;flex-wrap:wrap;margin-top:24px}
/* the one orchestrated moment: the reading assembles itself */
.reading.in>*{animation:rise .9s var(--ease) both}
.reading.in>*:nth-child(2){animation-delay:.12s}.reading.in>*:nth-child(3){animation-delay:.22s}.reading.in>*:nth-child(4){animation-delay:.32s}
.reading.in>*:nth-child(5){animation-delay:.42s}.reading.in>*:nth-child(6){animation-delay:.52s}.reading.in>*:nth-child(7){animation-delay:.6s}
@keyframes rise{from{opacity:0;transform:translateY(18px)}to{opacity:1;transform:none}}

/* sync */
.sec{padding:96px 0}
.sec-head{max-width:640px;margin-bottom:28px}
.sec-head p{margin-top:12px}
.tabs{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:14px}
.tab{height:38px;padding:0 16px;border-radius:999px;border:1px solid var(--line);background:transparent;cursor:pointer;font-weight:600;font-size:15px;color:var(--mist)}
.tab[aria-pressed="true"]{background:var(--moon);color:var(--void);border-color:var(--moon)}
.search{width:100%;max-width:340px;height:46px;border-radius:12px;border:1px solid var(--line);background:var(--glass);padding:0 16px;margin-bottom:18px}
.search::placeholder{color:var(--faint)}
.pick{display:grid;grid-template-columns:repeat(auto-fill,minmax(92px,1fr));gap:14px 8px}
.av{display:grid;justify-items:center;gap:6px;background:none;border:0;cursor:pointer;padding:6px 2px;border-radius:14px;text-align:center}
.av .orb{position:relative;width:74px;height:74px;border-radius:50%;display:block;background:#12102A;box-shadow:0 0 0 2px var(--c),0 0 0 5px rgba(10,9,18,.9),0 10px 28px -8px var(--c);transition:transform .3s var(--ease),box-shadow .3s}
.av .orb img{width:100%;height:100%;border-radius:50%;object-fit:cover;display:block}
.av .orb i{position:absolute;right:-5px;bottom:-3px;width:26px;height:26px;border-radius:50%;display:grid;place-items:center;background:#0A0912;box-shadow:0 0 0 1.5px var(--c);font-style:normal;font-family:'Noto Serif KR',var(--display),serif;font-size:14px;line-height:1;color:var(--c)}
.av:hover .orb{transform:translateY(-3px) scale(1.06)}
.av[aria-pressed="true"] .orb{box-shadow:0 0 0 3px var(--moon),0 0 0 6px rgba(10,9,18,.9),0 0 40px -2px var(--c)}
.av b{font-size:14px;font-weight:600;line-height:1.15}
.av span{font-size:12px;color:var(--faint);line-height:1.1}
.av[hidden]{display:none}
#tip{position:fixed;z-index:50;width:230px;padding:14px;border-radius:16px;background:rgba(20,18,36,.96);border:1px solid var(--line);box-shadow:0 20px 60px -10px rgba(0,0,0,.8);pointer-events:none;opacity:0;transform:translateY(6px);transition:opacity .18s,transform .18s}
#tip.on{opacity:1;transform:none}
#tip img{width:100%;aspect-ratio:16/9;object-fit:cover;border-radius:10px;margin-bottom:10px;background:#1b1930}
#tip b{display:block;font-family:var(--display);font-size:24px;font-weight:400;line-height:1.1}
#tip small{display:block;color:var(--mist);font-size:13px}
#tip p{margin-top:6px;font-size:14px;color:var(--moon)}
@media(hover:none){#tip{display:none}}

/* how + footer */
.how{display:grid;grid-template-columns:repeat(3,1fr);gap:28px}
@media(max-width:800px){.how{grid-template-columns:1fr}}
.how h3{font-family:var(--display);font-weight:400;font-size:28px;margin-bottom:8px}
.how p{color:var(--mist)}
footer{padding:48px 0 72px;border-top:1px solid var(--line);color:var(--faint);font-size:14px}
footer p{max-width:46em}
dialog{border:1px solid var(--line);border-radius:24px;background:#14122A;color:var(--moon);padding:28px;max-width:440px;width:calc(100% - 32px)}
dialog::backdrop{background:rgba(5,4,10,.7);backdrop-filter:blur(6px)}
dialog h3{font-family:var(--display);font-weight:400;font-size:32px;margin-bottom:8px}
dialog input{width:100%;height:52px;border-radius:12px;border:1px solid var(--line);background:rgba(255,255,255,.06);padding:0 16px;margin:16px 0 8px}
#checkout{max-height:calc(100dvh - 32px);overflow:auto}
#checkout .fld{margin-top:14px}
#checkout .fld input{width:100%;margin:0;color:var(--moon);color-scheme:dark}
#checkout .co-consent{align-items:flex-start;margin-top:16px;line-height:1.45}
#checkout .co-consent input{width:20px;height:20px;margin:1px 0 0;padding:0;flex:none}
#checkout .co-consent a{color:var(--moon);text-decoration:underline}
#checkout button[disabled]{opacity:.6;cursor:progress}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.reading.in>*,.pt .ph img,.mid::before{animation:none}.btn,.av .orb,#tip{transition:none}.part .tr u,.el .barx u{transition:none}}


/* chart details (class based so several charts can live on one page) */
.chart{overflow:visible;will-change:transform}
.chart .spin{transform-origin:320px 320px;animation:spin 90s linear infinite}
@keyframes spin{to{transform:rotate(360deg)}}
.chart .node{cursor:default;transition:opacity .6s}
.chart .node[role="button"]{cursor:pointer}
.chart .node:focus,.chart .node:focus-visible,.chart .pil:focus,.chart .seal:focus,.chart .pimg:focus{outline:none}
.chart .node .orb{transition:stroke-width .25s,stroke-opacity .25s}
.chart .node .halo{transition:opacity .3s}
.chart .node[role="button"]:hover .orb,.chart .node:focus-visible .orb{stroke-width:2.4;stroke-opacity:1}
.chart .node[role="button"]:hover .halo,.chart .node:focus-visible .halo{opacity:.4}
.chart .node.on .orb{stroke-width:3;stroke-opacity:1}
.chart .node.on .halo{opacity:.55}
.chart .spin2{transform-origin:320px 320px;animation:spin 70s linear infinite reverse}
@media(prefers-reduced-motion:reduce){.chart .spin2{animation:none}}
.chart .pillars,.chart .verts,.chart .flows{transition:opacity 1s .5s}
.chart.dormant .pillars,.chart.dormant .verts,.chart.dormant .flows,.chart.dormant .portrait{opacity:0!important}
.chart.dormant .node{opacity:.45}
.chart.dormant .poly,.chart.dormant .polyGlow{opacity:.45}
.chart:not(.lit):not(.dormant) .pillars{opacity:0}
@media(prefers-reduced-motion:reduce){.chart .spin{animation:none}}
.stagewrap{perspective:1200px}

/* invite banner */
.invite{margin-bottom:18px;padding:12px 16px;border-radius:14px;border:1px solid var(--accent);background:rgba(207,224,255,.08);font-weight:600}

/* modes */
.modes{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-bottom:26px}
@media(max-width:760px){.modes{grid-template-columns:1fr 1fr}}
.mode{display:grid;gap:2px;text-align:left;padding:16px 18px;border-radius:18px;border:1px solid var(--line);background:var(--glass);cursor:pointer;transition:border-color .2s,background .2s}
.mode b{font-size:18px;font-weight:600}
.mode span{font-size:14px;color:var(--mist)}
.mode:hover{background:var(--glass-2)}
.mode[aria-pressed="true"]{border-color:var(--accent);background:rgba(255,255,255,.1);box-shadow:0 0 0 1px var(--accent) inset}
.add{display:grid;gap:18px;max-width:520px;padding:26px;border-radius:24px;background:var(--glass);border:1px solid var(--line)}
.add[hidden]{display:none}
.fld{display:grid;gap:8px}
.fld>span{font-weight:600;font-size:15px}
.fld input{height:52px;border-radius:13px;border:1px solid var(--line);background:rgba(255,255,255,.06);padding:0 14px;color:var(--moon);color-scheme:dark}
.fld input::placeholder{color:var(--faint)}
.more summary{cursor:pointer;color:var(--mist);font-size:15px;margin-bottom:12px}
.more[open]{display:grid;gap:14px}
.chk{display:flex;gap:10px;align-items:center;font-size:15px;color:var(--mist);cursor:pointer}
.chk input{width:20px;height:20px;accent-color:var(--accent)}

/* sync scene: two living charts tilted toward each other, joined by five arcs */
.scene-head{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;align-items:center;margin-bottom:8px}
.relchips{display:flex;gap:6px}
.relchips[hidden]{display:none}
.rc{height:38px;padding:0 16px;border-radius:999px;border:1px solid var(--line);background:transparent;color:var(--mist);cursor:pointer;font-weight:600}
.rc[aria-pressed="true"]{background:var(--moon);color:var(--void);border-color:var(--moon)}
.stagebox{position:relative;display:grid;grid-template-columns:minmax(0,1fr) minmax(150px,210px) minmax(0,1fr);align-items:center;gap:0;perspective:1500px;--px:0;--py:0}
.disc{margin:0;display:grid;justify-items:center;transform-style:preserve-3d;animation:bob 7s ease-in-out infinite alternate}
.disc.l{transform:rotateY(calc(18deg + var(--px)*7deg)) rotateX(calc(var(--py)*-6deg))}
.disc.r{transform:rotateY(calc(-18deg + var(--px)*7deg)) rotateX(calc(var(--py)*-6deg));animation-delay:-3s}
@keyframes bob{from{translate:0 -6px}to{translate:0 8px}}
.disc svg{width:100%;height:auto}
.disc figcaption{text-align:center;margin-top:-6px}
.disc figcaption b{display:block;font-family:var(--display);font-weight:400;font-size:clamp(24px,3vw,34px);line-height:1.05}
.disc figcaption small{color:var(--mist);font-size:15px}
.core{position:relative;z-index:2;display:grid;justify-items:center}
.ring{position:relative;width:min(100%,208px);aspect-ratio:1/1;border-radius:50%;background:radial-gradient(circle,rgba(14,12,30,.97) 62%,rgba(10,9,18,.0) 74%)}
.ring svg{width:100%;height:100%;transform:rotate(-90deg)}
.ring .pct{position:absolute;inset:0;display:grid;place-items:center;text-align:center}
.pct b{display:block;font-family:var(--display);font-weight:400;font-size:clamp(46px,6vw,64px);line-height:1}
.pct small{display:block;margin-top:6px;font-size:11px;letter-spacing:.2em;text-transform:uppercase;color:var(--mist)}
.bridge{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;z-index:1;overflow:visible}
@media(max-width:860px){
  .stagebox{grid-template-columns:1fr;gap:0}
  .disc{width:min(78%,360px);margin-inline:auto}
  .disc.l{transform:rotateX(8deg) rotateY(calc(var(--px)*6deg))}.disc.r{transform:rotateX(-8deg) rotateY(calc(var(--px)*6deg))}
  .core{margin:6px 0 14px}
}
.verdict{margin:30px 0 8px;text-align:center}
.verdict h3{font-family:var(--display);font-weight:400;font-size:clamp(32px,4.6vw,52px);line-height:1.05}
.verdict p{margin:10px auto 0;max-width:34em;color:var(--mist)}
.grid2{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:28px;align-items:start;margin-top:32px}
@media(max-width:860px){.grid2{grid-template-columns:1fr}}
.grid2 .wl{margin-top:0}

/* 2027 strip + report */
.report{margin-top:44px;padding:clamp(22px,4vw,44px);border-radius:28px;background:linear-gradient(160deg,rgba(255,255,255,.09),rgba(255,255,255,.03));border:1px solid var(--line);display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr);gap:36px}
@media(max-width:900px){.report{grid-template-columns:1fr}}
.report h3{font-family:var(--display);font-weight:400;font-size:clamp(28px,3.6vw,40px);line-height:1.05}
.year{margin-top:18px;padding:16px;border-radius:18px;background:rgba(10,9,18,.5);border:1px solid var(--line)}
.yrow{display:grid;grid-template-columns:62px 1fr;gap:10px;align-items:center;margin-bottom:6px}
.yrow>b{font-size:13px;font-weight:600;color:var(--mist)}
.cells{display:grid;grid-template-columns:repeat(12,1fr);gap:3px}
.yc{display:block;height:26px;border-radius:6px;background:var(--c);opacity:0;transform:scaleY(.2);transform-origin:bottom;transition:opacity .7s,transform .7s var(--ease)}
.yc.on{opacity:var(--o);transform:none}
.yrow.mo small{text-align:center;font-size:11px;color:var(--faint)}
.yrow.mo small.hit{color:var(--moon);font-weight:700}
.ytxt{margin-top:10px;font-size:15px}
.ytxt b{color:var(--accent)}
.prev{margin-top:16px;padding:18px;border-radius:16px;background:rgba(10,9,18,.5);border:1px solid var(--line);color:var(--moon)}
.prev small{display:block;margin-bottom:6px;color:var(--faint)}
.chapters details{border-bottom:1px solid var(--line)}
.chapters details:first-child{border-top:1px solid var(--line)}
.chapters summary{display:grid;grid-template-columns:34px 1fr 16px;gap:8px;align-items:baseline;padding:14px 0;cursor:pointer;list-style:none;font-size:16px}
.chapters summary::-webkit-details-marker{display:none}
.chapters summary i{font-style:normal;color:var(--faint);font-size:14px}
.chapters summary::after{content:"+";color:var(--faint);font-size:20px;line-height:1}
.chapters details[open] summary::after{content:"–"}
.chapters details[open] summary i{color:var(--accent)}
.chapters details p{padding:0 24px 14px 42px;color:var(--mist);font-size:15px}
.buy{margin-top:20px;display:grid;gap:10px}
.price{font-family:var(--display);font-size:40px;line-height:1}
.price s{font-size:22px;color:var(--faint);margin-left:8px}

/* circle */
.circle-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(24px,4vw,56px);align-items:center}
@media(max-width:900px){.circle-grid{grid-template-columns:1fr}}
.constel svg{width:100%;max-width:560px;margin-inline:auto;overflow:visible}
.cn{cursor:pointer}
.cn:focus-visible{outline:none}
.cn:hover circle:nth-child(2),.cn:focus-visible circle:nth-child(2){stroke:#fff;stroke-width:3}
.rank{display:grid;gap:8px;padding:0;margin:0 0 22px;list-style:none}
.rank li{display:grid;grid-template-columns:34px minmax(0,1fr) auto 28px;gap:10px;align-items:center;padding:10px 12px;border-radius:16px;background:var(--glass);border:1px solid var(--line)}
.rank .no{font-family:var(--display);font-size:28px;color:var(--faint);text-align:center}
.rank .who{display:grid;gap:2px;text-align:left;background:none;border:0;cursor:pointer;padding:0;min-width:0}
.rank .who b{font-size:17px;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.rank .who small{color:var(--mist);font-size:13px}
.rank .bar{display:block;height:6px;border-radius:3px;background:rgba(255,255,255,.08);margin-top:4px;overflow:hidden}
.rank .bar u{display:block;height:100%;background:var(--c);border-radius:3px}
.rank strong{font-family:var(--display);font-weight:400;font-size:30px}
.rank .x{background:none;border:0;color:var(--faint);font-size:22px;cursor:pointer;line-height:1}
.rank .x:hover{color:var(--moon)}
.need .dates{margin-bottom:6px}

/* sync output, parts, lists */
.syncout{margin-top:44px;scroll-margin-top:24px}
.syncout[hidden]{display:none}
.need{padding:28px;border-radius:24px;background:var(--glass);border:1px solid var(--line);max-width:560px}
.need h3{margin-bottom:14px;font-family:var(--display);font-weight:400;font-size:30px}
.parts{display:grid;gap:20px}
.part b{display:flex;justify-content:space-between;font-weight:600}
.part .tr{height:6px;border-radius:3px;background:rgba(255,255,255,.07);margin:10px 0;overflow:visible}
.part .tr u{display:block;position:relative;height:100%;width:0;border-radius:3px;background:linear-gradient(90deg,var(--ca),var(--cb));background:linear-gradient(90deg in oklch,var(--ca),var(--cb));box-shadow:0 0 12px -2px var(--cb);transition:width 1.2s var(--ease)}
.part .tr u::after{content:"";position:absolute;right:-4px;top:50%;width:10px;height:10px;margin-top:-5px;border-radius:50%;background:#fff;box-shadow:0 0 0 2px var(--cb)}
.part p{font-size:15px;color:var(--mist)}
.wl{display:grid;gap:14px}
.wl>div{padding:20px;border-radius:20px;background:var(--glass);border:1px solid var(--line)}
.wl h3{margin-bottom:8px}
.wl ul{display:grid;gap:8px}
.wl li{position:relative;padding-left:20px;color:var(--moon)}
.wl li::before{content:"";position:absolute;left:0;top:.62em;width:8px;height:8px;border-radius:50%;background:var(--wood)}
.wl .no li::before{background:var(--fire)}

/* v3: chart column, glyph card, folding categories, sheets */
.stagecol{display:grid;gap:12px;justify-items:center;width:100%}
.stagecol .stagewrap{width:100%}
@media(max-width:900px){.stagewrap{order:0!important}.stagecol{order:-1}.stagecol .stagewrap{width:min(100%,520px)}}
.ghint{font-size:14px;color:var(--faint);text-align:center;animation:pulse 3s ease-in-out infinite}
@keyframes pulse{50%{opacity:.45}}
.gpop{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:14px;align-items:center;width:min(100%,480px);padding:14px 16px;border-radius:20px;background:rgba(20,18,36,.94);border:1px solid var(--accent);box-shadow:0 20px 60px -24px var(--accent);animation:rise .5s var(--ease)}
.gpop[hidden]{display:none}
.gg{font-family:var(--display);font-size:54px;line-height:1;color:var(--accent);min-width:64px;text-align:center}
.gpop b{display:block;font-size:17px;font-weight:600;line-height:1.25}
.gpop p{font-size:15px;color:var(--mist);margin-top:3px;line-height:1.45}
.gx{background:none;border:0;color:var(--faint);font-size:24px;cursor:pointer;align-self:start;line-height:1}
.chart .pil[role="button"],.chart .portrait .pimg,.chart .portrait g{cursor:pointer}
.chart .pil .plate{transition:stroke .25s,stroke-width .25s}
.chart .pil[role="button"]:hover .plate{stroke:#fff;stroke-opacity:.7}
.chart .pil:focus-visible{outline:none}
.chart .pil:focus-visible .plate{stroke:#fff;stroke-width:2.5}
.chart .seal{transition:filter .25s}
.chart .seal:hover{filter:brightness(1.12)}
.reading .combo{margin-top:4px;color:var(--mist);font-size:16px}
.cats{display:grid;gap:8px;margin-top:20px}
.cat{border:1px solid var(--line);border-radius:18px;background:var(--glass);overflow:hidden;transition:border-color .25s}
.cat[open]{border-color:var(--accent)}
.cat summary{display:grid;grid-template-columns:minmax(0,1fr) 22px;gap:10px;align-items:center;padding:14px 16px;cursor:pointer;list-style:none}
.cat summary::-webkit-details-marker{display:none}
.cat .ct b{display:block;font-size:17px;font-weight:600}
.cat .ct em{display:block;font-style:normal;font-size:15px;color:var(--mist);margin-top:2px;line-height:1.4}
.cat[open] .ct em{display:none}
.cat summary::after{content:"+";font-size:24px;line-height:1;color:var(--faint);justify-self:end}
.cat[open] summary::after{content:"–"}
.cbody{padding:0 16px 16px;display:grid;gap:12px;font-size:16px}
.cbody p{color:var(--moon)}
.kv{display:grid;grid-template-columns:104px minmax(0,1fr);gap:10px;font-size:15px}
.kv b{color:var(--mist);font-weight:500}
.navbtn{background:none;border:0;color:var(--mist);font:inherit;font-size:15px;cursor:pointer;padding:0}
.navbtn:hover{color:var(--moon)}
.navbtn[hidden]{display:none}
#navCount{display:inline-grid;place-items:center;min-width:20px;height:20px;padding:0 6px;border-radius:10px;background:var(--accent);color:var(--accent-ink);font-size:12px;font-weight:700;margin-left:4px}
body.lock{overflow:hidden}
.sheet{position:fixed;inset:0;z-index:60;overflow-y:auto;overscroll-behavior:contain;background:radial-gradient(900px 600px at 20% 0,rgba(207,224,255,.07),transparent 60%),#0A0912;animation:sheetIn .5s var(--ease)}
.sheet[hidden]{display:none}
@keyframes sheetIn{from{opacity:0;transform:translateY(28px)}to{opacity:1;transform:none}}
.sheet-bar{position:sticky;top:0;z-index:3;background:rgba(10,9,18,.9);backdrop-filter:blur(12px);border-bottom:1px solid var(--line)}
.sheet-bar .wrap{display:grid;grid-template-columns:minmax(80px,auto) 1fr minmax(80px,auto);align-items:center;gap:12px;height:60px}
.back{justify-self:start;background:none;border:0;color:var(--moon);font-weight:600;font-size:16px;cursor:pointer;display:flex;gap:6px;align-items:center;padding:0}
.back span{font-size:30px;line-height:1;margin-top:-3px}
#sheetTitle{text-align:center;font-family:var(--display);font-weight:400;font-size:clamp(20px,3.4vw,26px);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.sheet-right{justify-self:end}
.sheet-body{padding:26px 0 90px}
.acct{margin-top:26px;padding:20px;border-radius:18px;border:1px solid var(--line);background:var(--glass);max-width:520px}
.acct b{font-size:17px}
.acct p{margin-top:4px;color:var(--mist);font-size:15px}
.acct .acts{margin-top:14px}
.how{grid-template-columns:repeat(3,1fr)}
@media(prefers-reduced-motion:reduce){.sheet,.gpop,.ghint{animation:none}}

/* v4: collectible cards */
.navbtn+.navbtn{margin-left:0}
#navCollN{display:inline-grid;place-items:center;min-width:20px;height:20px;padding:0 6px;border-radius:10px;background:rgba(255,255,255,.14);color:var(--moon);font-size:12px;font-weight:700;margin-left:4px}
.tcard{--c:#CFE0FF;--rx:0deg;--ry:0deg;--mx:50%;--my:30%;position:relative;width:100%;max-width:360px;aspect-ratio:5/7;border-radius:24px;padding:9px;background:linear-gradient(155deg,color-mix(in srgb,var(--c) 85%,#fff),color-mix(in srgb,var(--c) 40%,#0A0912) 50%,color-mix(in srgb,var(--c) 22%,#0A0912));box-shadow:0 30px 70px -28px var(--c),0 0 0 1px rgba(255,255,255,.12) inset;transform:perspective(900px) rotateX(var(--rx)) rotateY(var(--ry));transition:transform .25s var(--ease);margin-inline:auto;container-type:inline-size}
.tcard .in{height:100%;border-radius:17px;background:#0E0C1B;display:grid;grid-template-rows:auto minmax(0,1fr) auto;gap:2.4cqw;padding:3cqw;overflow:hidden;position:relative}
.tc-top{display:flex;justify-content:space-between;align-items:baseline;font-size:3.6cqw;color:var(--mist);padding:0 1cqw}
.tc-top .han{font-family:var(--display);font-size:6.6cqw;color:var(--c);line-height:1}
.tc-art{position:relative;border-radius:12px;overflow:hidden;background:#14122A;box-shadow:0 0 0 1.5px color-mix(in srgb,var(--c) 70%,transparent) inset}
.tc-art img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.tc-art::after{content:"";position:absolute;inset:0;background:radial-gradient(circle at var(--mx) var(--my),rgba(255,255,255,.38),transparent 46%),linear-gradient(115deg,transparent 30%,rgba(255,255,255,.14) 46%,transparent 62%);mix-blend-mode:overlay;pointer-events:none}
.tc-bot{padding:0 1cqw 1cqw;display:grid;gap:.6cqw}
.tc-bot b{font-family:var(--display);font-weight:400;font-size:9.4cqw;line-height:1}
.tc-bot small{font-size:3.7cqw;color:var(--mist);line-height:1.3}
.tc-bot .el{position:absolute;right:4.4cqw;bottom:4.4cqw;display:grid;place-items:center;width:10cqw;height:10cqw;border-radius:50%;background:var(--c);color:#0A0912;font-family:var(--display);font-size:6.4cqw;padding:0}
.tcard.locked .tc-art img{filter:grayscale(1) brightness(.28) blur(3px)}
.tcard.locked .tc-art::before{content:"?";position:absolute;inset:0;display:grid;place-items:center;font-family:var(--display);font-size:22cqw;color:rgba(255,255,255,.35);z-index:2}
.tcard.locked .tc-bot b,.tcard.locked .tc-bot small{filter:blur(4px);opacity:.5}
.tcard.locked{box-shadow:none;opacity:.8}
.cgal{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:18px 14px}
.cgal .tcard{max-width:none;cursor:pointer;border-radius:16px;padding:6px}
.cgal .tcard .in{border-radius:11px}
.cgal .tcard:hover{--ry:-6deg;--rx:4deg}
.cgal .tcard[data-state="locked"]{cursor:default}
.cardview{display:grid;grid-template-columns:minmax(0,380px) minmax(0,1fr);gap:clamp(24px,5vw,60px);align-items:center}
@media(max-width:860px){.cardview{grid-template-columns:1fr}}
.cardview h2{font-size:clamp(34px,5vw,56px)}
#toast{position:fixed;left:50%;bottom:22px;transform:translateX(-50%);z-index:80;display:flex;gap:12px;align-items:center;padding:12px 18px;border-radius:999px;background:rgba(20,18,36,.96);border:1px solid var(--accent);box-shadow:0 18px 50px -14px var(--accent);font-weight:600;animation:rise .5s var(--ease)}
#toast[hidden]{display:none}
#toast button{background:none;border:0;color:var(--accent);font-weight:700;cursor:pointer;padding:0}
@media(prefers-reduced-motion:reduce){.tcard{transition:none}}
.chart .cycle{transition:opacity 1s .4s}
.chart.dormant .cycle{opacity:.35}

.eyebrow{margin:0 0 14px;font-size:13px;font-weight:600;letter-spacing:.22em;text-transform:uppercase;color:var(--accent)}
.eyebrow span{opacity:.5;margin:0 .35em}

.how{grid-template-columns:1fr;max-width:760px;gap:10px}
.circlebox{margin:0 0 26px;padding:18px 20px;border:1px solid var(--line);border-radius:20px;background:var(--glass)}
.circlebox[hidden]{display:none}
.circlebox .ch{display:flex;justify-content:space-between;align-items:baseline;gap:12px;margin-bottom:10px}
.circlebox .ch b{font-family:var(--display);font-weight:400;font-size:26px}
.circlebox .ch button{background:none;border:0;color:var(--accent);font:inherit;font-weight:600;cursor:pointer;padding:0}
.circlebox ol{list-style:none;display:grid;gap:8px}
.circlebox li{display:grid;grid-template-columns:22px minmax(0,1fr) auto;gap:10px;align-items:center}
.circlebox li .no{color:var(--faint);font-size:14px}
.circlebox li b{font-weight:600}
.circlebox li small{color:var(--mist);margin-left:8px}
.circlebox li strong{font-family:var(--display);font-weight:400;font-size:22px}
.circlebox p{color:var(--mist)}

/* footer links and business line */
.flinks{display:flex;flex-wrap:wrap;gap:6px 20px;margin:16px 0 12px}
.flinks a{color:var(--mist);text-decoration:none}
.flinks a:hover{color:var(--moon)}
footer .biz{font-size:13px;max-width:60em}
