.num-chips{margin:14px 0}
.num-sec{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:14px;margin:16px 0}
.num-sec .box{margin:0}
.num-sec h4{margin:0 0 6px;color:var(--te)}
.num-sec p{margin:0;font-size:15px;color:#e1e5f7}
.oct{width:100%;max-width:470px;height:auto;display:block;margin:0 auto}
.oct .ln{fill:none;stroke:rgba(255,255,255,.38);stroke-width:1.6;stroke-dasharray:1;stroke-dashoffset:1;animation:octdraw 2.2s .15s cubic-bezier(.4,.1,.2,1) forwards}
.oct .ln.sq{stroke:rgba(255,145,71,.75);stroke-width:2.2}
.oct .ln.dm{stroke:rgba(91,140,255,.8);stroke-width:2.2}
@keyframes octdraw{to{stroke-dashoffset:0}}
.oct .nd{cursor:pointer;opacity:0;animation:octpop .6s forwards cubic-bezier(.2,.8,.2,1)}
@keyframes octpop{from{opacity:0;transform:scale(.3)}to{opacity:1;transform:scale(1)}}
.oct .nd{transform-box:fill-box;transform-origin:center}
.oct .nd circle{stroke:#fff;stroke-width:1.5;transition:.2s}
.oct .nd:hover circle,.oct .nd.on circle{stroke-width:3;filter:drop-shadow(0 0 8px #fff)}
.oct text{font-family:var(--sans);font-weight:800;text-anchor:middle;dominant-baseline:central;pointer-events:none}
.oct .lt{font-size:10px;fill:#b9bfdc;font-weight:700}
.oct-cap{min-height:92px;text-align:left}
.oct-cap b{color:var(--ye)}
.arc-badge{display:inline-grid;place-items:center;min-width:34px;height:34px;padding:0 6px;border-radius:50%;background:var(--grad);color:#120d24;font-weight:800;margin-right:8px;vertical-align:middle}
details.arc{border:1px solid var(--bd);border-radius:16px;padding:12px 16px;margin:8px 0;background:rgba(255,255,255,.06)}
details.arc summary{cursor:pointer;font-weight:700}
details.arc[open]{background:rgba(255,255,255,.1)}
details.arc p{margin:8px 0 0;font-size:15px}
.pcell{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;max-width:440px;margin:0 auto}
.pcell .c{position:relative;aspect-ratio:1;border-radius:18px;padding:8px 10px;background:var(--grad-soft);border:1px solid var(--bd);display:flex;flex-direction:column;justify-content:space-between;transition:.3s;cursor:pointer;overflow:hidden}
.pcell .c:hover,.pcell .c.on{border-color:#fff;transform:translateY(-3px)}
.pcell .c small{font-size:11px;color:var(--mu);line-height:1.15}
.pcell .c b{font:700 clamp(22px,5vw,32px)/1 var(--serif);word-break:break-all;letter-spacing:.02em}
.pcell .c .n0{opacity:.35}
.pcell .c i{position:absolute;right:9px;top:6px;font:700 13px var(--sans);font-style:normal;color:var(--te)}
.cyc{width:100%;max-width:440px;display:block;margin:0 auto}
.cal{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:6px;max-width:560px}
.cal div{aspect-ratio:1;border-radius:12px;display:flex;flex-direction:column;align-items:center;justify-content:center;background:rgba(255,255,255,.07);border:1px solid var(--bd);font-size:11px;color:var(--mu);line-height:1.1}
.cal div b{font:700 20px var(--serif);color:#fff}
.cal .h{aspect-ratio:auto;background:none;border:0;font-weight:700}
.cal .today{border-color:var(--ye);box-shadow:0 0 14px rgba(255,209,102,.5)}
.tbl-compact td,.tbl-compact th{padding:6px 8px}
.pairs{display:flex;gap:18px;flex-wrap:wrap;justify-content:center;align-items:center}
.glyphrow{display:flex;flex-wrap:wrap;gap:8px}
.glyphrow span{padding:6px 12px;border-radius:12px;background:rgba(255,255,255,.1);border:1px solid var(--bd);font-weight:700}
.angel-big{font:700 clamp(54px,12vw,110px)/1 var(--serif);text-align:center;background:var(--grad);-webkit-background-clip:text;background-clip:text;color:transparent;filter:drop-shadow(0 0 26px rgba(255,79,168,.55));letter-spacing:.04em}
@media(max-width:560px){.res-head{gap:16px}.orb{width:140px;height:140px}.orb b{font-size:58px}.cal{gap:3px}.cal div b{font-size:16px}}
.letters{display:grid;grid-template-columns:repeat(auto-fill,minmax(42px,1fr));gap:5px;margin:14px 0;max-width:640px}
.letters div{position:relative;border-radius:10px;padding:4px 0;text-align:center;background:rgba(255,255,255,.06);border:1px solid var(--bd);opacity:.55}
.letters div.on{opacity:1;background:var(--grad-soft);border-color:var(--bd2)}
.letters b{display:block;font:700 18px var(--serif)}.letters small{color:var(--te);font-size:11px}
.letters i{position:absolute;top:1px;right:3px;font-size:9px;font-style:normal;color:var(--ye)}
