:root{--gold: #d9c28a;--ink: #c9cde0;--dim: #6f7591;--soft: #6fb6d9;--hard: #e0806c;--sym: "Segoe UI Symbol", "Noto Sans Symbols 2", "Noto Sans Symbols", "Apple Symbols", "DejaVu Sans", sans-serif;--serif: "Iowan Old Style", "Palatino Linotype", Palatino, Georgia, serif;color-scheme:dark}*{box-sizing:border-box}html,body{margin:0;background:radial-gradient(ellipse at 50% 40%,#0d1122,#070912 55%,#04050a) fixed;color:var(--ink);font-family:var(--serif)}#stars{position:fixed;inset:0;width:100%;height:100%;pointer-events:none}.app{position:relative;display:flex;align-items:center;justify-content:center;gap:3vw;height:100dvh;padding:16px;overflow:hidden;opacity:0;transition:opacity 2.4s ease}.ready .app{opacity:1}.side{width:325px;flex:none}@media(min-width:821px)and (orientation:landscape)and (min-height:601px){.side .table{width:250px}}h1{margin:0 0 14px;font-weight:700;font-size:clamp(19px,1.8vw,24px);letter-spacing:.14em;white-space:nowrap;text-transform:uppercase;color:var(--gold)}.row{display:flex;align-items:baseline;gap:10px;padding:5px 0;font-size:15px;border-bottom:1px solid #ffffff0d}.row .g{font-family:var(--sym);width:20px;text-align:center;font-size:17px}.row .n{flex:1;color:var(--dim)}.row .p{font-variant-numeric:tabular-nums;white-space:nowrap}.row .p b{font-family:var(--sym);font-weight:400}.hint{margin-top:14px;font-size:12.5px;line-height:1.7;color:var(--dim)}.clock{position:relative;flex:none;height:min(94dvh,100vw - 425px);aspect-ratio:1;container-type:inline-size}#wheel{width:100%;height:100%;display:block;overflow:visible}#wheel text{text-anchor:middle;dominant-baseline:central;font-family:var(--sym);-webkit-user-select:none;user-select:none}.ring{fill:none;stroke:var(--gold);stroke-opacity:.55;stroke-width:1.2}.ring.faint{stroke-opacity:.14}.ticks{stroke:var(--gold);stroke-opacity:.45;stroke-width:1}.dark-moon{fill:#6b35b0;fill-opacity:.6}.lunation{pointer-events:none}.lunation path{stroke:var(--gold);stroke-opacity:.8;stroke-width:1}.lunation circle{fill:#05060c;stroke:var(--gold);stroke-width:1.4}.lunation.fullMoon circle{fill:#eef2ff;stroke:#fff;stroke-opacity:.7;filter:drop-shadow(0 0 4px #eef2ffbb)}.sign{stroke:var(--gold);stroke-opacity:.35;stroke-width:1;fill-opacity:.07}.signglyph{font-size:31px;fill-opacity:.85}.fire{fill:#e8936a}.earth{fill:#9bc07c}.air{fill:#e6d68a}.water{fill:#74aee0}.cardinal{stroke:var(--gold);stroke-width:1.4;stroke-dasharray:2 7}.hubdisc{fill:#070912;fill-opacity:.88;stroke:var(--gold);stroke-opacity:.3}.aspects line{stroke-linecap:round}.aspects .soft{stroke:var(--soft)}.aspects .hard{stroke:var(--hard)}.aspects .opp{stroke:#d42f2f}.aspects .peak{stroke:#fff;stroke-width:1.4}.aspects .quin{stroke:#7fd08a;stroke-dasharray:3 7}.aspects .soft.exact{stroke:#2f8cff}.aspects .hard.exact{stroke:#ff5a36}.aspects .quin.exact{stroke:#34d058;stroke-dasharray:5 6}.aspects .conj{fill:var(--gold);filter:blur(5px)}.aspects .beam{stroke-width:46;filter:blur(10px);mix-blend-mode:screen}.aspects .surge-sheath{stroke-width:14;filter:blur(4px);mix-blend-mode:screen}.aspects .surge-laser{stroke-linecap:round}.aspects .surge{filter:blur(4px);mix-blend-mode:screen}.aspects .bind{fill:none;stroke:var(--gold);stroke-width:2.5}.planet .glyph.big{font-size:43px}.planet .glyph,.planet .retro,.planet .pct{paint-order:stroke;stroke:#05060c;stroke-width:4px;stroke-linejoin:round;filter:drop-shadow(0 0 3px #000c)}.planet .moon-disc,.planet .moon-lit{filter:drop-shadow(0 0 3px #000c)}[data-sign],[data-body]{cursor:pointer}.sign{transition:fill-opacity .2s,stroke-opacity .2s}.sign:hover,.sign.lit{fill-opacity:.24;stroke-opacity:.8}.signglyph{pointer-events:none}.planet:hover .glyph,.planet:hover .moon-disc{filter:drop-shadow(0 0 3px #000c) drop-shadow(0 0 8px var(--c))}.row[data-body]{cursor:pointer}.row[data-body]:hover .n{color:var(--gold)}.info{position:fixed;top:0;right:0;bottom:0;z-index:10;width:min(400px,92vw);overflow-y:auto;padding:28px 28px 40px;background:#0b0e1cf2;border-left:1px solid #d9c28a33;box-shadow:-20px 0 50px #000a;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);transform:translate(105%);transition:transform .45s cubic-bezier(.22,1,.36,1)}.info.open{transform:none}.i-close{position:absolute;top:12px;right:16px;font-size:28px;line-height:1;color:var(--dim)}.i-close:hover{color:var(--gold)}.i-head{display:flex;align-items:center;gap:16px;margin-bottom:10px}.i-glyph{font-family:var(--sym);font-size:48px;line-height:1}.info h2{margin:0;font-size:26px;font-weight:700;color:#fff}.i-arch{color:var(--gold);font-size:16px;letter-spacing:.05em}.i-facts{color:var(--dim);font-size:13.5px;margin-bottom:22px}.info details{border-top:1px solid #ffffff14;padding:12px 0 6px}.info summary{cursor:pointer;font-size:12px;letter-spacing:.18em;text-transform:uppercase;color:var(--gold);list-style:none}.info summary:before{content:"▸";display:inline-block;width:16px;transition:transform .2s}.info details[open] summary:before{transform:rotate(90deg)}.info ul{margin:10px 0 8px;padding-left:20px}.info li{margin:5px 0;line-height:1.45}.info p{margin:10px 0 8px;line-height:1.6;color:#b9bed2}@media(max-width:600px){.info{top:auto;left:0;width:auto;max-height:72dvh;border-left:0;border-top:1px solid #d9c28a33;border-radius:16px 16px 0 0;transform:translateY(105%)}}.planet .lead{fill:none;stroke:var(--c);stroke-opacity:.6;stroke-width:1.2}.planet .dot{fill:var(--c)}.planet .glyph{fill:var(--c);font-size:32px}.planet .pct{fill:var(--c);font-size:15px;font-family:var(--serif)}.planet .retro{fill:var(--c);font-size:13px;opacity:.8}.planet .sunglow{fill:#fff;opacity:.2;filter:blur(7px)}.moon-disc{fill:#151927;stroke:#c3c9d4;stroke-opacity:.35}.moon-lit{fill:#cfd4dd}.moon-glow{fill:#dfe4ee;filter:blur(8px)}.moon-blood{fill:#b3401f;filter:blur(8px)}.planet .bite{fill:#05060c;stroke:#2a2f3d;stroke-width:.8}.planet .corona{fill:none;stroke:#fffdf6;stroke-width:3.5;filter:blur(1.2px) drop-shadow(0 0 5px #fff) drop-shadow(0 0 12px #e8e4ff)}.planet .streamers{filter:blur(.8px);mix-blend-mode:screen;pointer-events:none}.planet .corona.annular{stroke:#ffc65a;filter:blur(1px) drop-shadow(0 0 6px #ffb02e)}.planet .eclipse-label{font:12px var(--serif);letter-spacing:.06em;fill:#e8b49a;paint-order:stroke;stroke:#05060c;stroke-width:4px;stroke-linejoin:round;pointer-events:none}.moon-new{fill:none;stroke:var(--gold);stroke-width:1.5;stroke-dasharray:2 3}.center{fill:none;stroke:var(--gold);stroke-opacity:.3;stroke-width:1.2}.menu{position:fixed;top:10px;right:14px;z-index:5;display:flex;flex-direction:column;align-items:flex-end;gap:6px}#menuBtn{font-size:22px;line-height:1;padding:2px 8px;color:var(--dim);border-radius:6px}#menuBtn:hover,.menu.open #menuBtn{color:var(--gold)}.panel{display:none;width:max-content;max-width:calc(100vw - 12px);max-height:calc(100dvh - 54px);overflow-y:auto;padding:6px 8px;background:#0d1122ee;border:1px solid #ffffff1f;border-radius:10px}.menu.open .panel{display:block}.opt{display:flex;align-items:center;gap:10px;min-height:36px;padding:2px 6px;font-size:13.5px;color:var(--ink);cursor:pointer;-webkit-user-select:none;user-select:none}.opt.sub{padding-left:32px;color:var(--dim)}.opt:hover{color:var(--gold)}.opt:has(:disabled){opacity:.4;cursor:default}.opt:has(:disabled):hover{color:var(--dim)}.opt input{appearance:none;flex:none;width:16px;height:16px;margin:0;border:1px solid #ffffff40;border-radius:4px;background:#080a14 center / 12px no-repeat;cursor:inherit}.opt input:checked{border-color:var(--gold);background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12'%3E%3Cpath d='M2.5 6.2l2.4 2.4 4.6-5' fill='none' stroke='%23d9c28a' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E")}.opt input:focus-visible{outline:1px solid var(--gold);outline-offset:2px}.row[hidden]{display:none}.hub{position:relative;margin:0 0 20px;display:flex;flex-direction:column;align-items:flex-start;gap:7px}button{font:inherit;color:inherit;background:none;border:0;cursor:pointer;padding:0}.datebox{position:relative}.when{display:flex;justify-content:center;align-items:baseline;gap:12px;min-width:15em;padding:7px 14px;font-size:19px;font-weight:600;color:#fff;background:#0b0e1acc;border:1px solid #d9c28a44;border-radius:8px;transition:color .2s,border-color .2s}.when:hover{color:var(--gold);border-color:#d9c28aaa}#date{letter-spacing:.03em;white-space:nowrap}#date,#time{font-variant-numeric:tabular-nums;white-space:pre}.slot{display:inline-block;text-align:center}.slot.month{min-width:2.4em}.slot.day,.slot.hour{min-width:2.3ch;text-align:right}.slot.year{min-width:4.4ch}.slot.minute,.slot.second{min-width:2ch}.slot.dayPeriod{min-width:2.1em;text-align:left}#edit{display:none;position:absolute;inset:0;width:100%;height:100%;padding:0 12px;font:15px system-ui,sans-serif;color:#fff;background:#0b0e1a;border:1px solid var(--gold);border-radius:8px}.hub.editing .when{visibility:hidden}.hub.editing #edit{display:block}.pills{display:flex;gap:6px}.pill{padding:1px 7px;border:1px solid #d9c28a55;border-radius:6px;font-size:10px;letter-spacing:.1em;text-transform:uppercase;text-align:center;color:var(--gold)}#tz{color:var(--dim);border-color:#ffffff26}.table-head{display:none}.dow{min-width:9.2em}.scrub{display:flex;flex-direction:column;align-items:center;gap:2px;margin-top:38px}.scrubber{position:relative;-webkit-tap-highlight-color:transparent;-webkit-touch-callout:none;width:325px}#dial{display:block;width:100%;touch-action:none;user-select:none;-webkit-user-select:none;-webkit-tap-highlight-color:transparent;outline:none;overflow:visible}.d-backing{fill:#080a14}.scrub-title{font-size:19px;font-weight:600;letter-spacing:.03em;color:#fff;transition:opacity .4s}.scrub:has(.dragging) .scrub-title{opacity:0}.d-track{fill:none;stroke:#d9c28a;stroke-opacity:.1;stroke-width:18}.d-grip{stroke:var(--gold);stroke-opacity:.55;stroke-width:1.3;stroke-linecap:round}.d-knob{pointer-events:none}.d-lens-back{fill:#080a14}.d-lens-glass{fill:var(--gold);fill-opacity:.05}.d-lens-edge{fill:none;stroke:var(--gold);stroke-width:.9}.d-lens-edge.faint{stroke-opacity:.45;stroke-width:.6}.d-lens-mark{fill:var(--gold)}.d-hit{fill:none;stroke:transparent;stroke-width:34;pointer-events:stroke;cursor:grab}.d-hit-area{fill:transparent;cursor:ns-resize}.d-hint{opacity:0;pointer-events:none}.d-hint path{fill:none;stroke:var(--gold);stroke-width:1.6;stroke-linecap:round}.d-head{fill:var(--gold)}.d-hint text{font:12px var(--serif);letter-spacing:.08em;fill:var(--gold);dominant-baseline:central}.scrubber.dragging .d-hint{animation:breathe 2.6s ease-in-out infinite}@keyframes breathe{0%,to{opacity:.12}50%{opacity:.85}}.d-hit:active{cursor:grabbing}.d-arc{fill:none;stroke:var(--gold);stroke-opacity:.4;stroke-width:1.4;stroke-linecap:round}.d-notch{fill:var(--gold);fill-opacity:.7}.d-handle{fill:#0a0c16;stroke:var(--gold);stroke-width:2.5}.d-label{font:13px var(--serif);fill:var(--dim);dominant-baseline:central;pointer-events:none}.d-label.on{fill:var(--gold)}.d-events{pointer-events:none}.d-events circle{fill:#0a0c16;stroke:var(--gold);stroke-width:1.4}.d-events circle.full{fill:#e8ebf5;stroke:#e8ebf5}.d-stop{fill:none;stroke:var(--gold);stroke-opacity:.4;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;transition:stroke .2s,stroke-opacity .2s}.d-stop.hidden{display:none}.d-stop-icon{pointer-events:none}.d-stop-icon circle{stroke:none}.d-stop-icon .corona line{stroke:#ffe9b0;stroke-width:1.1;stroke-linecap:round;opacity:.85}.d-stop-icon .sun-dark{fill:#07070d;stroke:#ffd86b;stroke-width:1.2;filter:drop-shadow(0 0 2px #ffd86b)}.d-stop-icon .fire{fill:#07070d;stroke:#ffa23a;stroke-width:2.2;filter:drop-shadow(0 0 2.5px #ff7a1a)}.d-stop-icon .sun{fill:#ffd86b;filter:drop-shadow(0 0 2px #ffd86b)}.d-stop-icon .cover{fill:#07070d;stroke:#ffd86b;stroke-opacity:.35;stroke-width:.6}.d-stop-icon .blood{fill:#b8321f;filter:drop-shadow(0 0 2.5px #000)}.d-stop-icon .shade{fill:#3b3437}.d-stop-icon .tinge{fill:#e2735a}.d-sabbat{opacity:.6;transition:opacity .2s,filter .2s}.d-sabbat.on{opacity:1;filter:drop-shadow(0 0 2.5px #d9c28a99)}.d-sabbat path,.d-sabbat ellipse{stroke-linecap:round;stroke-linejoin:round}.d-sabbat .star{fill:var(--gold)}.d-sabbat .pine{fill:#6f9e7c}.d-sabbat .wood{fill:#8a6a44}.d-sabbat .wax{fill:#ece4cc}.d-sabbat .wick{fill:none;stroke:#3a3530;stroke-width:.8}.d-sabbat .flame{fill:#ffd86b}.d-sabbat .blaze{fill:#e0806c}.d-sabbat .soil{fill:none;stroke:#8a6a44;stroke-width:1.2}.d-sabbat .stalk{fill:none;stroke:#9cc97a;stroke-width:1.2}.d-sabbat .sprout{fill:#9cc97a}.d-sabbat .rays{fill:none;stroke:#ffd86b;stroke-width:1.2}.d-sabbat .straw{fill:none;stroke:#d9b45a;stroke-width:1}.d-sabbat .grain{fill:#d9b45a}.d-sabbat .apple{fill:#c4553a}.d-sabbat .twig{fill:none;stroke:#8a6a44;stroke-width:1.2}.d-sabbat .leaf{fill:#8fa860}.d-sabbat .gourd{fill:#d9772e}.d-sabbat .rib{fill:none;stroke:#8f4416;stroke-width:.7}.d-sabbat .sigil,.d-sabbat .sigil circle{fill:none;stroke:var(--gold);stroke-width:.85}.scrubber.pointing .d-grip{display:none}.d-center{fill:var(--gold);fill-opacity:0;cursor:pointer;transition:fill-opacity .2s;touch-action:none;-webkit-touch-callout:none}.d-center:hover{fill-opacity:.06}.d-icon{fill:none;stroke:var(--gold);stroke-width:1.5;stroke-linecap:round}.d-icon .solid{fill:var(--gold);stroke:none}.d-mode,.d-event-name{pointer-events:none;transition:opacity .2s}.d-event-name{font:11px var(--serif);letter-spacing:.06em;fill:var(--dim);text-anchor:middle;dominant-baseline:central}.d-event-name.on{fill:var(--gold)}.d-fan{opacity:0;pointer-events:none;transition:opacity .15s}.scrubber.fanning .d-fan{opacity:1}.scrubber.fanning .d-mode,.scrubber.fanning .d-event-name{opacity:0}.d-fan-bg{fill:#05060c;fill-opacity:.55}.d-spot circle{fill:#0d1122;stroke:#d9c28a77;stroke-width:1.2;transition:r .12s}.d-spot.hot circle{r:21;fill:#1a1d2e;stroke:var(--gold)}.d-spot text{font:9px var(--serif);fill:var(--ink);text-anchor:middle;dominant-baseline:central;paint-order:stroke;stroke:#05060c;stroke-width:3px}.d-spot.hot text{fill:var(--gold)}.d-spokes line{stroke:var(--gold);stroke-opacity:.35;stroke-width:1.2;stroke-dasharray:2 3;stroke-linecap:round;transition:stroke-opacity .12s}.d-spokes line.hot{stroke-opacity:1;stroke-dasharray:none;stroke-width:1.8}.cap{font-size:12px;color:var(--dim)}.hint{text-align:center}@media(max-height:800px){.hint{display:none}.row{padding:3px 0}}@media(max-width:820px),(orientation:portrait){.app{display:grid;grid-template-columns:1fr auto 270px 1fr;grid-template-areas:"title title title title" "hub hub hub hub" "clock clock clock clock" ". scrub table .";justify-content:center;justify-items:center;align-items:center;height:auto;min-height:100dvh;overflow:visible;gap:8px 22px;padding:10px 10px 20px}.side{display:contents}h1{grid-area:title;margin:2px 0 0;font-size:22px}.hub{grid-area:hub;margin:0;align-items:center}.when,.scrub-title{font-size:18px}.clock{grid-area:clock;height:auto;width:min(100vw - 20px,100dvh - 395px);min-width:min(100vw - 20px,340px)}.scrub{grid-area:scrub;margin:0}.scrubber{width:290px}.table{grid-area:table;width:100%}.row{font-size:12.5px;gap:6px;padding:1.5px 0}.row .g{font-size:14px}.hint{display:none}}@media(max-width:600px){.app{grid-template-columns:100%;grid-template-areas:"title" "hub" "clock" "scrub";gap:6px;padding:8px 6px 24px}h1{font-size:16px;margin-top:2px;letter-spacing:.12em}.when{font-size:15px;gap:10px;padding:5px 12px}.scrub-title{display:none}.clock{width:calc(100vw - 12px);min-width:0}.cap{font-size:12.5px}.table-head{position:fixed;left:0;right:0;bottom:0;z-index:4;display:flex;align-items:center;justify-content:center;gap:8px;height:calc(46px + env(safe-area-inset-bottom,0px));padding-bottom:env(safe-area-inset-bottom,0px);font-size:16px;font-weight:600;letter-spacing:.03em;color:#fff;background:#080a14f2;border-top:1px solid #d9c28a44}.table-head .chev{width:8px;height:8px;border:solid var(--gold);border-width:0 1.5px 1.5px 0;transform:translateY(2px) rotate(-135deg);transition:transform .25s}.table-head[aria-expanded=true] .chev{transform:translateY(-2px) rotate(45deg)}.table{position:fixed;left:0;right:0;bottom:calc(46px + env(safe-area-inset-bottom,0px));z-index:3;display:grid;grid-template-columns:1fr 1fr;column-gap:14px;max-height:60dvh;overflow-y:auto;padding:12px 14px 10px;background:#080a14f2;border-top:1px solid #d9c28a33;border-radius:14px 14px 0 0;transform:translateY(calc(100% + 50px));transition:transform .3s ease}.table.open{transform:none}.app{padding-bottom:calc(56px + env(safe-area-inset-bottom,0px))}.pills{display:none}.scrub{margin-top:0}.row{font-size:13px;gap:6px;padding:4px 2px}.row .n{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.row .p{flex:none}.signglyph{font-size:54px}.planet .glyph:not(.big){font-size:38px}.menu{top:6px;right:6px}}@media(orientation:landscape)and (max-height:600px){.app{display:grid;grid-template-columns:auto auto auto;grid-template-rows:auto auto 1fr;grid-template-areas:"title clock scrub" "hub clock scrub" "table clock scrub";justify-content:center;align-items:start;height:100dvh;min-height:0;overflow:hidden;gap:2px 22px;padding:8px 12px}.side{display:contents}h1{grid-area:title;font-size:17px;margin:2px 0 0}.hub{grid-area:hub;margin:0 0 6px}.when{font-size:14px;gap:8px;padding:5px 10px}.scrub-title{font-size:14px}.table{grid-area:table;display:block;width:210px;padding:0;margin:0}.row{font-size:11.5px;padding:1px 0}.row .n{display:inline}.clock{grid-area:clock;align-self:center;height:calc(100dvh - 16px);width:auto;min-width:0}.scrub{grid-area:scrub;align-self:center;margin:0}.scrubber{width:240px}.hint{display:none}}@media(min-width:821px)and (orientation:landscape)and (min-height:601px){.app{--left: 400px;--right: 260px;display:grid;grid-template-columns:var(--left) auto var(--right);grid-template-rows:auto 1fr auto auto 1fr;grid-template-areas:". title ." ". clock table" "hub clock table" "scrub clock table" ". clock table";justify-content:center;gap:0 3vw}.side{display:contents}h1{grid-area:title;justify-self:center;margin:0 0 10px;font-size:clamp(22px,2vw,30px)}.hub{grid-area:hub;justify-self:center;align-items:center;margin:0}.when{font-size:22px}#edit{font-size:17px;padding:0 16px}.table{grid-area:table;align-self:center;justify-self:center}.scrub{grid-area:scrub;margin-top:30px}.scrub-title{display:none}.scrubber{width:var(--left)}.clock{grid-area:clock;height:min(100dvh - 84px,100vw - var(--left) - var(--right) - 6vw - 40px)}@media(max-width:1500px){.app{--left: 340px;--right: 250px}}}
