.ph-sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.ph-tool{--ph-sun:var(--planet-sun);--ph-moon:var(--planet-moon);--ph-mercury:var(--planet-mercury);--ph-venus:var(--planet-venus);--ph-mars:var(--planet-mars);--ph-jupiter:var(--planet-jupiter);--ph-saturn:var(--planet-saturn);max-width:var(--layout-tool-workspace-max);margin:0 auto 38px}.ph-tool [data-planet=sun]{--ph-planet:var(--ph-sun)}.ph-tool [data-planet=moon]{--ph-planet:var(--ph-moon)}.ph-tool [data-planet=mercury]{--ph-planet:var(--ph-mercury)}.ph-tool [data-planet=venus]{--ph-planet:var(--ph-venus)}.ph-tool [data-planet=mars]{--ph-planet:var(--ph-mars)}.ph-tool [data-planet=jupiter]{--ph-planet:var(--ph-jupiter)}.ph-tool [data-planet=saturn]{--ph-planet:var(--ph-saturn)}.ph-glyph{display:inline-flex;color:var(--ph-planet);font-family:"Times New Roman",var(--font-serif);font-weight:400;line-height:1;font-variant-emoji:text}.ph-context-bar,.ph-glyph{align-items:center;justify-content:center}.ph-context-bar{display:flex;gap:10px;width:fit-content;max-width:100%;min-height:42px;margin:0 auto 16px;padding:0 14px;border:1px solid var(--border-subtle);border-radius:10px;background:color-mix(in srgb,var(--surface) 76%,transparent);color:var(--text-secondary);font-size:12.5px}.ph-location-icon{width:16px;height:16px;flex:0 0 auto;fill:none;stroke:var(--text-secondary);stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}.ph-context-place{max-width:330px;overflow:hidden;color:var(--text-primary);text-overflow:ellipsis;white-space:nowrap}.ph-context-dot,.ph-context-guess{color:var(--text-tertiary)}.ph-context-guess{flex:0 1 auto;min-width:0;overflow:hidden;font:400 10.5px/1.4 var(--font-mono);text-overflow:ellipsis;white-space:nowrap}.ph-context-bar button{display:inline-flex;align-items:center;gap:5px;margin-left:2px;padding:6px 0 6px 4px;border:0;background:transparent;color:var(--ui-accent);font:500 12.5px var(--font-sans);cursor:pointer}.ph-chevron{width:14px;height:14px;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round;transition:transform .18s ease}.ph-chevron[data-open=true]{transform:rotate(180deg)}.ph-current,.ph-form,.ph-loading,.ph-timeline,.ph-unavailable{border:1px solid var(--border-subtle);border-radius:14px;background:var(--surface)}.ph-loading{display:grid;grid-template-columns:minmax(180px,.8fr) minmax(0,1.25fr);align-items:center;gap:clamp(26px,5vw,60px);min-height:330px;padding:clamp(28px,4vw,40px);overflow:hidden;border-color:color-mix(in srgb,var(--ui-accent) 28%,var(--border-subtle))}.ph-loading-wheel{position:relative;width:min(100%,270px);aspect-ratio:1;justify-self:center;border:1px solid color-mix(in srgb,var(--ui-accent) 38%,transparent);border-radius:50%;background:repeating-conic-gradient(color-mix(in srgb,var(--ui-accent) 20%,transparent) 0 1deg,transparent 1deg 30deg),radial-gradient(circle,transparent 0 39%,color-mix(in srgb,var(--ui-accent) 15%,transparent) 39.5% 40%,transparent 40.5% 77%,color-mix(in srgb,var(--ui-accent) 18%,transparent) 77.5% 78%,transparent 78.5%)}.ph-loading-wheel span{position:absolute;inset:20%;border:1px solid color-mix(in srgb,var(--ui-accent) 15%,transparent);border-radius:50%}.ph-loading-wheel span:nth-child(2){inset:33%}.ph-loading-wheel span:nth-child(3){inset:44%;border:0;background:color-mix(in srgb,var(--ui-accent) 12%,var(--surface))}.ph-loading-copy{display:grid;gap:15px}.ph-loading-copy span{display:block;height:12px;border-radius:999px;background:linear-gradient(90deg,color-mix(in srgb,var(--border-subtle) 76%,transparent),color-mix(in srgb,var(--ui-accent) 16%,var(--border-subtle)),color-mix(in srgb,var(--border-subtle) 76%,transparent));background-size:220% 100%;animation:ph-loading-shimmer 1.4s ease-in-out infinite}.ph-loading-copy span:first-child{width:35%}.ph-loading-copy span:nth-child(2){width:78%;height:36px}.ph-loading-copy span:nth-child(3){width:48%;height:26px}.ph-loading-copy span:nth-child(4){width:100%;height:6px;margin-top:12px}@keyframes ph-loading-shimmer{0%{background-position:100% 0}to{background-position:-120% 0}}.ph-form{max-width:760px;margin:0 auto 16px;padding:18px}.ph-form label{display:grid;gap:6px;color:var(--text-secondary);font-size:13px}.ph-form input{box-sizing:border-box;width:100%;min-height:42px;padding:9px 11px;border:1px solid var(--border-subtle);border-radius:8px;outline:0;background:var(--base);color:var(--text-primary);font:400 14px var(--font-sans);transition:border-color .16s ease,box-shadow .16s ease}.ph-form input:focus-visible{border-color:var(--gold-border);box-shadow:0 0 0 3px color-mix(in srgb,var(--ui-accent) 12%,transparent)}.ph-form input::placeholder{color:var(--text-tertiary)}.ph-place-row{gap:12px}.ph-date-row,.ph-place-row{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:end}.ph-date-row{gap:16px;margin-top:12px}.ph-place-actions{display:flex;flex-wrap:wrap;gap:10px;min-height:42px;align-items:center;color:var(--text-tertiary);font-size:12px;white-space:nowrap}.ph-quiet-button{border:0;padding:0;background:transparent;color:var(--ui-accent);font:500 12.5px var(--font-sans);cursor:pointer}.ph-now-button{min-height:42px;padding-inline:4px;white-space:nowrap}.ph-suggestions{position:relative;z-index:2;max-height:226px;overflow:auto;border:1px solid var(--border-subtle);border-top:0;border-radius:0 0 8px 8px;background:var(--base)}.ph-suggestions button{display:block;width:100%;padding:9px 11px;border:0;background:transparent;color:var(--text-secondary);text-align:left;cursor:pointer;font:400 13px var(--font-sans)}.ph-suggestions button:hover{background:var(--surface);color:var(--ui-accent)}.ph-submit{display:inline-flex;align-items:center;justify-content:center;min-height:42px;margin-top:16px;padding:0 19px;border:1px solid var(--gold-border);border-radius:999px;background:var(--ui-accent);color:var(--base);font:650 13px var(--font-sans);text-decoration:none;cursor:pointer;transition:transform .16s ease,filter .16s ease}.ph-submit:hover{filter:brightness(1.06);transform:translateY(-1px)}.ph-submit:disabled{opacity:.65;cursor:wait;transform:none}.ph-error{margin:11px 0 0;color:var(--negative);font-size:13px}.ph-result{display:grid;gap:18px}.ph-current{--ph-planet:var(--ui-accent);position:relative;display:grid;grid-template-columns:minmax(210px,.86fr) minmax(0,1.35fr);gap:clamp(22px,5vw,54px);min-height:330px;padding:clamp(24px,4vw,38px);overflow:hidden;border-color:color-mix(in srgb,var(--ui-accent) 38%,var(--border-subtle));background:radial-gradient(circle at 22% 50%,color-mix(in srgb,var(--ph-planet) 8%,transparent),transparent 36%),var(--surface)}.ph-current-glyph{display:grid;place-items:center;width:min(100%,240px);aspect-ratio:1;align-self:center;justify-self:center;color:var(--ph-planet);font:400 clamp(130px,20vw,210px)/1 Times New Roman,var(--font-serif);filter:drop-shadow(0 0 24px color-mix(in srgb,var(--ph-planet) 22%,transparent))}.ph-current-copy{align-self:center;min-width:0}.ph-kicker{margin:0 0 7px;color:var(--ui-accent);font:500 11px var(--font-mono);letter-spacing:.12em;text-transform:uppercase}.ph-current h3{margin:0;color:var(--ph-planet);font:400 clamp(36px,6vw,54px)/1.04 var(--font-serif);letter-spacing:-.025em}.ph-current-meaning{max-width:46ch;margin:10px 0 0;color:var(--text-secondary);font:400 14.5px/1.55 var(--font-sans)}.ph-current-window{margin:8px 0 12px;color:var(--text-primary);font:400 clamp(29px,5vw,43px)/1.08 var(--font-serif);letter-spacing:-.015em}.ph-day-ruler{display:flex;align-items:center;gap:9px;margin:0 0 18px;color:var(--text-secondary);font-size:14px}.ph-day-ruler .ph-glyph{font-size:25px}.ph-progress-labels{display:flex;justify-content:space-between;gap:12px;margin-bottom:7px;color:var(--text-secondary);font:11px var(--font-sans)}.ph-progress{position:relative;height:6px;overflow:visible;border-radius:999px;background:color-mix(in srgb,var(--text-tertiary) 40%,transparent)}.ph-progress span{display:block;width:var(--ph-progress);height:100%;border-radius:inherit;background:var(--ph-planet);transition:width .4s ease}.ph-progress span:after{content:"";position:absolute;top:50%;left:var(--ph-progress);width:11px;height:11px;border:3px solid var(--ph-planet);border-radius:50%;background:var(--surface);transform:translate(-50%,-50%)}.ph-secondary{margin:-6px 0 0;text-align:center}.ph-electional{display:inline-flex;align-items:center;color:var(--ui-accent);font:500 12.5px var(--font-sans);text-decoration:underline;text-underline-offset:3px}.ph-electional>span{margin-left:7px}.ph-timeline{overflow:hidden;border-color:color-mix(in srgb,var(--ui-accent) 24%,var(--border-subtle))}.ph-timeline-title{display:flex;align-items:baseline;justify-content:space-between;gap:16px;padding:16px 18px 11px}.ph-timeline-title h3{margin:0;color:var(--ui-accent);font:500 11px var(--font-mono);letter-spacing:.12em;text-transform:uppercase}.ph-timeline-title p{margin:0;color:var(--text-tertiary);font-size:12px}.ph-hour-groups{display:grid;grid-template-columns:1fr 1fr;border-top:1px solid var(--border-subtle)}.ph-hour-group+.ph-hour-group{border-left:1px solid var(--border-subtle)}.ph-period-heading{position:relative;display:flex;align-items:center;gap:12px;min-height:62px;padding:10px 16px 12px;border-bottom:1px solid color-mix(in srgb,var(--ui-accent) 38%,var(--border-subtle));background:linear-gradient(90deg,color-mix(in srgb,var(--ui-accent) 6%,var(--surface)),transparent 66%)}.ph-period-heading:after{content:"";position:absolute;left:16px;bottom:-1px;width:54px;height:2px;background:var(--ui-accent)}.ph-period-heading h4{margin:0 0 3px;color:var(--text-primary);font:500 12px var(--font-mono);letter-spacing:.11em;text-transform:uppercase}.ph-period-heading p{margin:0;color:var(--text-secondary);font:10.5px var(--font-mono)}.ph-period-glyph{display:grid;place-items:center;width:34px;height:34px;flex:0 0 auto;border:1px solid color-mix(in srgb,var(--ui-accent) 38%,transparent);border-radius:50%;color:var(--ui-accent);font:21px Times New Roman,var(--font-serif)}.ph-hour-row{--ph-planet:var(--text-secondary);position:relative;display:grid;grid-template-columns:27px minmax(70px,1fr) 26px auto;align-items:center;gap:7px;min-height:41px;padding:0 12px;border-bottom:1px solid color-mix(in srgb,var(--border-subtle) 72%,transparent);color:var(--text-tertiary)}.ph-hour-row:last-child{border-bottom:0}.ph-hour-row .ph-glyph{font-size:21px}.ph-hour-row strong{color:var(--text-primary);font:500 13px var(--font-serif)}.ph-hour-number{display:inline-grid;place-items:center;width:21px;height:21px;border:1px solid color-mix(in srgb,var(--ui-accent) 48%,var(--border-subtle));border-radius:50%;color:var(--text-secondary);font:9.5px var(--font-mono)}.ph-hour-row time{color:var(--text-tertiary);font:10.5px var(--font-mono);white-space:nowrap}.ph-hour-row.is-active{z-index:1;margin:-1px 6px 0;padding:0 7px;border:1px solid var(--ph-planet);border-radius:7px;background:color-mix(in srgb,var(--ph-planet) 10%,var(--surface))}.ph-hour-row.is-active strong{color:var(--text-primary)}.ph-hour-row.is-active time{color:var(--text-secondary)}.ph-hour-row.is-active .ph-hour-number{border-color:var(--ph-planet);color:var(--text-secondary)}.ph-unavailable{margin-top:14px;padding:18px}.ph-unavailable h3{margin:0 0 7px;color:var(--text-primary);font:400 clamp(22px,4vw,28px) var(--font-serif)}.ph-unavailable p{margin:0;color:var(--text-tertiary);font-size:14px;line-height:1.55}@media (prefers-reduced-motion:reduce){.ph-chevron,.ph-progress span,.ph-submit{transition:none}.ph-loading-copy span{animation:none}}@media (max-width:760px){.ph-current{grid-template-columns:150px minmax(0,1fr);min-height:260px;gap:22px}.ph-current-glyph{width:150px;font-size:132px}.ph-current h3{font-size:clamp(32px,7vw,44px)}.ph-current-window{font-size:clamp(25px,6vw,36px)}.ph-hour-groups{grid-template-columns:1fr}.ph-hour-group+.ph-hour-group{border-top:1px solid color-mix(in srgb,var(--ui-accent) 34%,var(--border-subtle));border-left:0}.ph-hour-row{grid-template-columns:28px minmax(80px,1fr) 28px minmax(92px,auto)}}@media (max-width:640px){.ph-context-bar{justify-content:flex-start;gap:7px;width:auto;padding:8px 11px;flex-wrap:wrap}.ph-context-place{max-width:min(58vw,270px)}.ph-context-bar button{margin-left:auto}.ph-place-row{grid-template-columns:1fr;gap:7px}.ph-place-actions{min-height:auto}.ph-current{grid-template-columns:104px minmax(0,1fr);gap:16px;padding:22px 17px}.ph-current-glyph{width:104px;font-size:94px}.ph-kicker{font-size:9px}.ph-current h3{font-size:clamp(29px,8vw,38px)}.ph-current-window{font-size:clamp(23px,7vw,31px)}.ph-day-ruler{margin-bottom:14px;font-size:12px}.ph-progress-labels{font-size:9.5px}.ph-timeline-title{align-items:flex-start;flex-direction:column;gap:4px}}@media (max-width:500px){.ph-form{padding:15px}.ph-date-row{grid-template-columns:minmax(0,1fr) auto;gap:12px}.ph-current{grid-template-columns:96px minmax(0,1fr);gap:13px;padding:19px 14px;border-radius:12px}.ph-current-glyph{width:96px;font-size:86px}.ph-current h3{font-size:clamp(26px,8vw,34px)}.ph-current-window{margin-top:5px;font-size:clamp(21px,7vw,28px)}.ph-day-ruler .ph-glyph{font-size:20px}.ph-progress-labels span:first-child{display:none}.ph-progress-labels{justify-content:flex-end}.ph-hour-row{grid-template-columns:25px minmax(64px,1fr) 24px auto;gap:5px;padding:0 9px}.ph-hour-row strong{font-size:12px}.ph-hour-row time{font-size:9.5px}.ph-loading{grid-template-columns:84px minmax(0,1fr);min-height:210px;gap:16px;padding:20px 14px}.ph-loading-wheel{width:84px}.ph-loading-copy span:nth-child(2){height:26px}}