:root{
  --ui:"Plex Sans",system-ui,-apple-system,"Segoe UI",sans-serif;
  --serif:"Fraunces",Georgia,"Times New Roman",serif;
  --mono:"Plex Mono",ui-monospace,SFMono-Regular,Menlo,monospace;
  --bg:#faf6ec; --bg-surface:#fffdf6; --bg-soft:#f1e9d7;
  --text-primary:#1c1a15; --text-body:#2e2a22; --text-secondary:#5d5643;
  --line:#d8cdb2; --line-soft:#e6ddc8;
  --accent:#8f2d1f; --accent-ink:#7a2417; --gold:#a4761a;
  --disc:#8f2d1f; --disc-soft:#e8d9c3; --good:#2e6b34;
  --focus:#1d4ed8; --shadow:0 10px 30px rgba(60,45,15,.13);
}
html[data-theme="dark"]{
  --bg:#14120e; --bg-surface:#1d1a14; --bg-soft:#26221a;
  --text-primary:#f2ecdd; --text-body:#e3dcc9; --text-secondary:#b3ab94;
  --line:#453e2e; --line-soft:#353020;
  --accent:#e08a76; --accent-ink:#eda38f; --gold:#d3a94e;
  --disc:#c25a44; --disc-soft:#3a2f22; --good:#8fce97;
  --focus:#8ab4ff; --shadow:0 10px 30px rgba(0,0,0,.45);
}
@media (prefers-color-scheme:dark){
  html:not([data-theme="light"]){
    --bg:#14120e; --bg-surface:#1d1a14; --bg-soft:#26221a;
    --text-primary:#f2ecdd; --text-body:#e3dcc9; --text-secondary:#b3ab94;
    --line:#453e2e; --line-soft:#353020;
    --accent:#e08a76; --accent-ink:#eda38f; --gold:#d3a94e;
    --disc:#c25a44; --disc-soft:#3a2f22; --good:#8fce97;
    --focus:#8ab4ff; --shadow:0 10px 30px rgba(0,0,0,.45);
  }
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto} *{transition:none!important;animation:none!important}}
body{margin:0;background:var(--bg);color:var(--text-body);font:400 1.06rem/1.65 var(--serif)}
a{color:var(--accent-ink);text-underline-offset:.18em}
a:focus-visible,button:focus-visible,input:focus-visible,[tabindex]:focus-visible{outline:3px solid var(--focus);outline-offset:2px;border-radius:4px}
[hidden]{display:none!important}
svg[hidden]{display:none}
.skip{position:absolute;left:-999px;top:0;background:var(--bg-surface);color:var(--text-primary);padding:.6rem 1rem;z-index:60}
.skip:focus{left:.5rem;top:.5rem}
.topbar{position:sticky;top:0;z-index:50;display:flex;align-items:center;gap:.9rem;height:52px;padding:0 .9rem;padding-top:var(--browser-safe-top,env(safe-area-inset-top));background:var(--bg);border-bottom:1px solid var(--line);font:500 .92rem/1 var(--ui)}
.home{font-family:var(--ui);font-weight:600;color:var(--text-primary);text-decoration:none;white-space:nowrap}
.topnav{display:flex;gap:.9rem;overflow-x:auto;scrollbar-width:none;white-space:nowrap}
.topnav::-webkit-scrollbar{display:none}
.topnav a{color:var(--text-secondary);text-decoration:none}
.topnav a[aria-current="true"]{color:var(--accent-ink);font-weight:600}
.spacer{flex:1}
.chip{font-family:var(--ui);font-weight:600;color:var(--text-primary);text-decoration:none;border:1px solid var(--line);border-radius:999px;padding:.42rem .7rem;white-space:nowrap}
.icon-btn{display:grid;place-items:center;width:38px;height:38px;border-radius:50%;border:1px solid var(--line);background:transparent;color:var(--text-primary);cursor:pointer;flex:none}
.icon-btn svg{display:block}
.icon-btn svg[hidden]{display:none}
main{max-width:74rem;margin:0 auto;padding:0 1rem 3rem}
section{scroll-margin-top:64px;padding:2.2rem 0 .6rem}
.measure{max-width:42rem}
.wide{max-width:74rem}
h1{font:600 clamp(1.9rem,4.6vw,3.1rem)/1.14 var(--serif);color:var(--text-primary);margin:.4rem 0 .7rem;letter-spacing:-.01em}
h2{font:600 clamp(1.45rem,3vw,2rem)/1.22 var(--serif);color:var(--text-primary);margin:0 0 .6rem}
h3{font:600 1.18rem/1.3 var(--serif);color:var(--text-primary);margin:1.2rem 0 .4rem}
.kicker{font:600 .8rem/1.3 var(--ui);letter-spacing:.14em;text-transform:uppercase;color:var(--accent-ink);margin:0}
.cross{color:var(--accent);font-style:normal}
.deck{font-size:1.16rem;line-height:1.6;color:var(--text-body);max-width:44rem}
.muted{color:var(--text-secondary)}
.small{font-size:.92rem}
.num{font-family:var(--mono);font-size:.94em;white-space:nowrap}
.hero{padding-top:2.4rem}
.finding{border-left:4px solid var(--accent);background:var(--bg-surface);padding:1rem 1.1rem;border-radius:0 10px 10px 0;box-shadow:var(--shadow);max-width:46rem}
.finding p{margin:.2rem 0}
.lookup{background:var(--bg-surface);border:1px solid var(--line);border-radius:14px;padding:1.1rem;box-shadow:var(--shadow)}
.lookup label{font:600 .95rem/1.3 var(--ui);color:var(--text-primary);display:block;margin-bottom:.5rem}
.lookup-row{display:flex;gap:.6rem;flex-wrap:wrap}
.lookup input[type="search"]{flex:1 1 16rem;font:500 1.05rem/1.2 var(--ui);padding:.8rem .9rem;border:1.5px solid var(--line);border-radius:10px;background:var(--bg);color:var(--text-primary)}
.btn{font:600 .95rem/1 var(--ui);border:1px solid var(--line);background:var(--bg-soft);color:var(--text-primary);border-radius:10px;padding:.75rem 1rem;cursor:pointer;min-height:44px}
.btn:hover{border-color:var(--accent);color:var(--accent-ink)}
.btn.primary{background:var(--accent);border-color:var(--accent);color:#fff8ee}
html[data-theme="dark"] .btn.primary{color:#1c1208}
@media (prefers-color-scheme:dark){html:not([data-theme="light"]) .btn.primary{color:#1c1208}}
.suggest{display:flex;flex-wrap:wrap;gap:.45rem;margin-top:.7rem}
.suggest button{font:500 .9rem/1 var(--ui);border:1px solid var(--line);background:transparent;color:var(--accent-ink);border-radius:999px;padding:.5rem .8rem;cursor:pointer;min-height:40px}
.result{margin-top:1rem;border-top:1px solid var(--line-soft);padding-top:1rem}
.result .big{font:600 1.35rem/1.3 var(--serif);color:var(--text-primary);margin:.1rem 0 .4rem}
.share-row{display:flex;align-items:center;gap:.45rem;flex-wrap:wrap;margin:.8rem 0}
.share-row .lbl{font:500 .88rem/1 var(--ui);color:var(--text-secondary)}
.share-row a,.share-row button{display:grid;place-items:center;width:40px;height:40px;border-radius:50%;border:1px solid var(--line-soft);background:transparent;color:var(--text-body);cursor:pointer;text-decoration:none}
@media (pointer:coarse){.share-row a,.share-row button{width:44px;height:44px}}
.share-row a:hover,.share-row button:hover{color:var(--accent-ink);border-color:var(--accent)}
.ring-wrap{display:grid;grid-template-columns:1fr;gap:1.2rem;align-items:start}
@media (min-width:980px){.ring-wrap{grid-template-columns:minmax(0,1.55fr) minmax(20rem,1fr)}}
.ring-box{background:var(--bg-surface);border:1px solid var(--line);border-radius:14px;padding:.6rem;box-shadow:var(--shadow)}
.ring-box svg{width:100%;height:auto;display:block}
.day-disc{cursor:pointer}
.day-disc circle.face{fill:var(--disc-soft);stroke:var(--disc);stroke-width:1.2}
.day-disc:hover circle.face,.day-disc:focus-visible circle.face{fill:var(--disc)}
.day-disc text{fill:var(--text-primary);font-family:var(--ui);font-weight:600;pointer-events:none}
.day-disc .dnum{fill:var(--text-secondary);font-family:var(--mono);font-weight:400}
.day-disc[aria-pressed="true"] circle.face{fill:var(--disc);stroke:var(--text-primary);stroke-width:2}
.day-disc[aria-pressed="true"] text{fill:#fff8ee}
.day-disc[aria-pressed="true"] .dnum{fill:#fff1d6}
.ring-track{fill:none;stroke:var(--line);stroke-width:1}
.month-lbl{fill:var(--text-secondary);font-family:var(--ui);font-weight:500}
.day-card{background:var(--bg-surface);border:1px solid var(--line);border-radius:14px;padding:1rem 1.05rem;box-shadow:var(--shadow)}
.day-card h3{margin-top:.1rem}
.day-total{font:600 1.5rem/1.2 var(--serif);color:var(--text-primary)}
.forms{max-height:26rem;overflow:auto;border:1px solid var(--line-soft);border-radius:10px;padding:.4rem .6rem;margin:.7rem 0}
.forms label{display:flex;align-items:baseline;gap:.55rem;padding:.32rem .2rem;border-bottom:1px solid var(--line-soft);font-size:.98rem;cursor:pointer}
.forms label:last-child{border-bottom:none}
.forms input{flex:none;width:1.05rem;height:1.05rem;transform:translateY(.15rem)}
.forms .fname{flex:1;color:var(--text-primary)}
.forms .fcount{font-family:var(--mono);font-size:.9rem;color:var(--text-secondary)}
.forms label.off .fname,.forms label.off .fcount{color:var(--text-secondary);text-decoration:line-through}
table.rank{width:100%;border-collapse:collapse;font-size:.99rem}
table.rank th{font:600 .82rem/1.3 var(--ui);text-align:left;color:var(--text-secondary);border-bottom:2px solid var(--line);padding:.5rem .5rem .5rem 0}
table.rank td{border-bottom:1px solid var(--line-soft);padding:.55rem .5rem .55rem 0;vertical-align:top}
table.rank .r{text-align:right;font-family:var(--mono);font-size:.92rem;white-space:nowrap}
.bar{height:.5rem;background:var(--bg-soft);border-radius:99px;min-width:5rem}
.bar i{display:block;height:100%;background:var(--disc);border-radius:99px}
details.forms-all{border:1px solid var(--line);border-radius:10px;padding:.7rem .9rem;margin:.5rem 0;background:var(--bg-surface)}
details.forms-all summary{cursor:pointer;font:600 .98rem/1.3 var(--ui);color:var(--text-primary)}
details.forms-all table{width:100%;border-collapse:collapse;font-size:.94rem;margin-top:.6rem}
details.forms-all td,details.forms-all th{border-bottom:1px solid var(--line-soft);padding:.3rem .4rem .3rem 0;text-align:left}
details.forms-all .r{text-align:right;font-family:var(--mono)}
.trend{display:grid;grid-template-columns:1fr;gap:.8rem}
@media (min-width:760px){.trend{grid-template-columns:1fr 1fr}}
.trend-card{border:1px solid var(--line);border-radius:12px;padding:.9rem 1rem;background:var(--bg-surface)}
.trend-card h3{margin-top:0}
.delta-down{color:var(--accent-ink);font-weight:600}
.delta-up{color:var(--good);font-weight:600}
.neighbours{display:grid;grid-template-columns:1fr;gap:.8rem}
@media (min-width:760px){.neighbours{grid-template-columns:repeat(3,1fr)}}
.neighbours a{display:block;border:1px solid var(--line);border-radius:12px;padding:.9rem 1rem;background:var(--bg-surface);text-decoration:none;color:var(--text-body)}
.neighbours a b{color:var(--accent-ink)}
footer{border-top:1px solid var(--line);margin-top:3rem;padding:1.4rem 1rem 2.4rem;font:500 .92rem/1.6 var(--ui);color:var(--text-secondary)}
footer .inner{max-width:74rem;margin:0 auto;display:flex;gap:1rem;flex-wrap:wrap;align-items:center}
footer a{color:var(--text-secondary)}
.rail{position:fixed;right:14px;top:50%;transform:translateY(-50%);z-index:40;display:none;flex-direction:column;gap:.55rem}
@media (min-width:1240px){.rail{display:flex}}
.rail a{position:relative;width:12px;height:12px;border-radius:50%;border:1.5px solid var(--text-secondary);background:var(--bg)}
.rail a[aria-current="true"]{background:var(--accent);border-color:var(--accent)}
.rail a span{position:absolute;right:20px;top:50%;transform:translateY(-50%);background:var(--bg-surface);color:var(--text-primary);border:1px solid var(--line);border-radius:6px;padding:.25rem .55rem;font:500 .8rem/1 var(--ui);white-space:nowrap;opacity:0;pointer-events:none}
.rail a:hover span,.rail a:focus-visible span{opacity:1}
@media print{.topbar,.rail,.share-row,.suggest{display:none}body{background:#fff;color:#000}}
/* ---- hero: title beside the name box ---- */
.hero-grid{display:grid;grid-template-columns:1fr;gap:1.2rem;align-items:start}
@media (min-width:1060px){.hero-grid{grid-template-columns:minmax(0,1.15fr) minmax(22rem,1fr);gap:2.2rem}}
.hero .lookup h2{font-size:1.3rem;margin:0 0 .3rem}
.hero .lookup .small.muted{margin:.1rem 0 .7rem}
.hero{padding-bottom:.4rem}
#anul{padding-top:1.2rem}
/* ---- the chandelier stage ---- */
.ring-box{margin:0;background:#0d0d1a;border:1px solid #2c2a3c;border-radius:16px;padding:.5rem .5rem .8rem;box-shadow:0 18px 40px rgba(10,8,20,.35);color:#e9dcbc}
.stage{position:relative}
.stage svg.scene{width:100%;height:auto;display:block;border-radius:12px}
.scene text{pointer-events:none}
.scene .cl{cursor:pointer;outline:none}
.scene .cl .f{--fo:#ffad3f;--fi:#fff1c4;transition:opacity .5s}
.scene .cl .f.out{--fo:#1c1510;--fi:#4a3726;--fh:none;opacity:.9}
.scene .cl .f.me{--fo:#fffaf0;--fi:#ffffff;--fh:url(#fhw)}
.scene .cl .glow{transition:opacity .4s}
.scene .cl:hover .tray,.scene .cl:focus-visible .tray{stroke-opacity:.95;stroke-width:2.2}
.scene .cl:focus-visible .tray{stroke:#9ec5ff}

.scene .cl.sel .tray{stroke:#f7dc8f;stroke-opacity:1;stroke-width:2.6}
.scene .lb{cursor:pointer}
.scene .lb.sel .ln{fill:#fff7e0}
.scene .lb.sel .ld{fill:#ffcf73}
.scene .lnp{display:none}
.scene .badge{display:none}
@media (prefers-reduced-motion:no-preference){
  .scene .cl .glow{animation:breathe 5.5s ease-in-out infinite}
  .scene .cl:nth-of-type(3n) .glow{animation-duration:6.7s;animation-delay:-2s}
  .scene .cl:nth-of-type(3n+1) .glow{animation-duration:4.9s;animation-delay:-1s}
}
@keyframes breathe{0%,100%{opacity:1}50%{opacity:.82}}
.legend{display:flex;flex-wrap:wrap;gap:.35rem 1.1rem;padding:.7rem .6rem .2rem;font:500 .84rem/1.35 var(--ui);color:#d9caa3}
.legend .lg{display:inline-flex;align-items:center;gap:.4rem}
.lg-chain{display:inline-block;width:18px;border-top:2px dashed #c99a3c}
.lg-it{font:italic 600 .95rem/1 var(--serif);color:#f3e3bd}
.lg-florii{display:inline-block;width:20px;border-top:3px dotted #a9c27a}
.lg-maria{display:inline-block;width:18px;height:9px;border:2.4px solid #f0cf7a;border-bottom:none;border-radius:12px 12px 0 0}
.ring-reset{margin:.5rem .6rem 0}
.ring-box .btn{background:#1d1b2b;border-color:#3b3850;color:#f1e4c3}
.ring-box .btn:hover{border-color:#f0cf7a;color:#fff}
.key{display:none;list-style:none;margin:.5rem 0 0;padding:0 .4rem;grid-template-columns:1fr 1fr;gap:.3rem .5rem}
.key button{width:100%;display:flex;align-items:baseline;gap:.4rem;text-align:left;background:transparent;border:1px solid #2f2c40;border-radius:9px;color:#f1e4c3;font:500 .9rem/1.25 var(--ui);padding:.5rem .55rem;min-height:44px;cursor:pointer}
.key button b{font:600 .82rem/1 var(--mono);color:#f0cf7a;min-width:1.4em}
.key button span{margin-left:auto;font:400 .78rem/1 var(--mono);color:#bba979;white-space:nowrap}
.key button[aria-pressed="true"]{border-color:#f0cf7a;background:#221f30}
.ring-phone .key{display:grid}
.ring-phone .scene .lb,.ring-phone .scene .lk,.ring-phone .scene .mar8{display:none}
.ring-phone .scene .badge{display:inline}
.ring-phone .scene .mon{font-size:30px}
/* small card at the cluster */
.pop{position:absolute;z-index:5;width:17.5rem;max-width:calc(100% - 12px);background:rgba(20,18,30,.97);border:1px solid #6b5a33;border-radius:12px;padding:.75rem .9rem .8rem;color:#f3e6c6;box-shadow:0 14px 34px rgba(0,0,0,.5);font-family:var(--ui)}
.pop h4{font:600 1.12rem/1.25 var(--serif);margin:.1rem 1.6rem .3rem 0;color:#fff4dc}
.pop-k{font:600 .72rem/1.2 var(--ui);letter-spacing:.12em;text-transform:uppercase;color:#f0cf7a;margin:0}
.pop-n{margin:.1rem 0;font-size:.92rem}
.pop-n .num{font:600 1.25rem/1.2 var(--mono);color:#ffcf73}
.pop-s{margin:.1rem 0 .6rem;font-size:.85rem;color:#cdbb92}
.pop-x{position:absolute;top:.35rem;right:.4rem;width:36px;height:36px;border:none;background:transparent;color:#f3e6c6;font-size:1.4rem;line-height:1;cursor:pointer;border-radius:50%}
.pop-x:hover{background:#2a2638}
.pop .btn{min-height:40px;padding:.55rem .8rem;font-size:.88rem;background:#2a2638;border-color:#6b5a33;color:#fff3d6}
.pop.sheet{left:6px!important;right:6px;bottom:6px;top:auto!important;width:auto;max-width:none}
.day-card:focus{outline:none}
.day-card:focus-visible{outline:3px solid var(--focus)}
#anul .finding{margin-top:1.2rem}
#anul > h2{margin-top:1.4rem}
/* stage full width; the day card and the caption sit below it */
.ring-wrap{grid-template-columns:1fr!important}
.below-stage{display:grid;grid-template-columns:1fr;gap:1.4rem;margin-top:1.2rem;align-items:start}
@media (min-width:980px){.below-stage{grid-template-columns:minmax(20rem,1fr) minmax(0,1.1fr)}}
.stage-text .finding{margin-top:0}
.stage-text h2{margin-top:1.3rem}
h1{font-size:clamp(1.9rem,3.6vw,2.7rem)}
.legend svg{width:12px!important;height:16px!important;display:inline-block!important;flex:none}
.key li{min-width:0}
.key button{flex-wrap:wrap}
.key button span{white-space:normal}

/* round 2 */
.ring-box{border-color:#7a6232}
html:not([data-theme="dark"]) .ring-box{box-shadow:0 0 0 6px #efe4c8,0 0 0 7px #cdb27c,0 18px 40px rgba(60,40,10,.28)}
@media (prefers-color-scheme:dark){html:not([data-theme="light"]) .ring-box{box-shadow:0 18px 40px rgba(0,0,0,.45)}}
.pop.sheet{position:relative;left:auto!important;right:auto;bottom:auto;top:auto!important;margin:.5rem .2rem 0;width:auto}
.scene .cl .f.me{--fo:#fffdf6;--fi:#ffffff;--fh:none}

/* round 3 */
.scene .cl .f.out{--fo:#6a5c4a;--fi:#2b231b;--fh:none;opacity:.95}
.scene .cl{transition:opacity .35s}
.scene.focus .cl:not(.sel){opacity:.38}
.scene.focus .lb:not(.sel){opacity:.5}
.lg-florii{border-top-color:#b5d07e!important}
@media (max-width:1059px){
  .hero-grid{display:flex;flex-direction:column}
  .hero-text{display:contents}
  .hero .kicker{order:0}.hero h1{order:1}.hero .lookup{order:2}.hero .deck{order:3}#shared-lead{order:4}
}
.pop-me{margin:.15rem 0;font:600 .9rem/1.35 var(--ui);color:#fff8e6}
.scene .cl .f.out{--fo:#8a7a62;--fi:transparent;--fh:none;opacity:.22}
