:root{--night-900:#070b16;--night-800:#0b1020;--night-700:#131b30;--panel:rgba(255,255,255,0.03);--panel-line:rgba(215,184,119,0.18);--ink:#ece9df;--ink-soft:#bcb9af;--ink-mute:#8a8b96;--brass:#d7b877;--brass-bright:#f0d59a;--brass-deep:#a98842;--calc:#8fc7d4;--danger:#e0a09a;--serif:"Iowan Old Style","Palatino Linotype",Palatino,"URW Palladio L",Georgia,"Times New Roman",serif;--mono:ui-monospace,"SFMono-Regular","SF Mono",Menlo,Consolas,monospace}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;color:var(--ink);background:radial-gradient(1100px 640px at 50% -8%,rgba(120,96,176,.2),transparent 60%),radial-gradient(820px 560px at 88% 12%,rgba(63,112,140,.16),transparent 55%),linear-gradient(180deg,var(--night-800) 0,var(--night-900) 100%);background-attachment:fixed;font-family:var(--serif);font-size:17px;line-height:1.6;-webkit-font-smoothing:antialiased;min-height:100vh}body:before{content:"";position:fixed;inset:0;pointer-events:none;z-index:0;opacity:.55;background-image:radial-gradient(1.4px 1.4px at 18% 28%,rgba(255,255,255,.7),transparent),radial-gradient(1.2px 1.2px at 72% 18%,rgba(255,255,255,.5),transparent),radial-gradient(1px 1px at 42% 72%,rgba(255,255,255,.55),transparent),radial-gradient(1.3px 1.3px at 86% 62%,rgba(255,255,255,.45),transparent),radial-gradient(1px 1px at 10% 82%,rgba(255,255,255,.4),transparent);animation:twinkle 8s ease-in-out infinite alternate}@keyframes twinkle{0%{opacity:.32}to{opacity:.66}}main{position:relative;z-index:1}a{color:var(--brass-bright)}.shell{width:min(680px,92vw);margin:0 auto;padding:7vh 0 6vh}.brand{font-family:var(--serif);font-size:1.05rem;letter-spacing:.18em;margin-bottom:2.4rem}.brand,.kicker{text-transform:uppercase;color:var(--brass);text-align:center}.kicker{font-family:var(--mono);font-size:.7rem;letter-spacing:.3em;margin:0 0 1rem}h1.title{font-family:var(--serif);font-weight:400;font-size:clamp(2.1rem,6vw,3.2rem);line-height:1.05;margin:0 auto 1rem;max-width:16ch;text-wrap:balance;background:linear-gradient(180deg,var(--brass-bright),var(--brass-deep));-webkit-background-clip:text;background-clip:text;color:transparent}.intro,h1.title{text-align:center}.intro{color:var(--ink-soft);max-width:52ch;margin:0 auto 2.4rem}.trust{display:flex;gap:1.4rem;justify-content:center;flex-wrap:wrap;margin:0 0 2.4rem}.trust span{font-family:var(--mono);font-size:.72rem;letter-spacing:.06em;color:var(--ink-mute);display:inline-flex;align-items:center;gap:.45rem}.trust span:before{content:"✦";color:var(--brass-deep)}.card{background:var(--panel);border:1px solid var(--panel-line);border-radius:10px;padding:clamp(1.4rem,4vw,2.4rem);box-shadow:0 30px 80px -50px rgba(0,0,0,.8)}.field{margin-bottom:1.5rem;position:relative}.field>label{display:block;font-family:var(--mono);font-size:.74rem;letter-spacing:.14em;text-transform:uppercase;color:var(--brass);margin-bottom:.5rem}.field .hint{color:var(--ink-mute);font-size:.86rem;margin:.4rem 0 0}.input,input[type=date],input[type=text],input[type=time]{width:100%;font-family:var(--serif);font-size:1.05rem;color:var(--ink);background:rgba(0,0,0,.28);border:1px solid rgba(255,255,255,.12);border-radius:6px;padding:.85rem 1rem;transition:border-color .2s ease,box-shadow .2s ease}.input:focus,input:focus{outline:none;border-color:var(--brass);box-shadow:0 0 0 3px rgba(215,184,119,.15)}input::placeholder{color:var(--ink-mute)}input[type=date],input[type=time]{color-scheme:dark}.row{display:grid;grid-template-columns:1fr 1fr;grid-gap:1rem;gap:1rem}.checkbox{display:inline-flex;align-items:center;gap:.6rem;font-family:var(--serif);font-size:.95rem;color:var(--ink-soft);cursor:pointer;margin-top:.7rem}.checkbox input{width:1.05rem;height:1.05rem;accent-color:var(--brass)}.suggestions{list-style:none;margin:.4rem 0 0;padding:0;border:1px solid var(--panel-line);border-radius:6px;overflow:hidden;background:var(--night-700)}.suggestions li{padding:.7rem 1rem;cursor:pointer;font-size:.92rem;color:var(--ink-soft);border-bottom:1px solid rgba(255,255,255,.05)}.suggestions li:last-child{border-bottom:none}.suggestions li:hover,.suggestions li[aria-selected=true]{background:rgba(215,184,119,.12);color:var(--ink)}.place-chosen{color:var(--calc);font-size:.86rem;margin-top:.45rem;font-family:var(--mono)}.error{color:var(--danger);font-size:.9rem;margin:.6rem 0 0}.btn{width:100%;font-family:var(--mono);font-size:.86rem;letter-spacing:.14em;text-transform:uppercase;border:none;border-radius:6px;padding:1.05rem 1.5rem;cursor:pointer;transition:transform .2s ease,box-shadow .2s ease,opacity .2s ease;background:linear-gradient(180deg,var(--brass-bright),var(--brass));color:#201603;box-shadow:0 14px 36px -16px rgba(215,184,119,.7)}.btn:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 20px 46px -18px rgba(215,184,119,.8)}.btn:disabled{opacity:.65;cursor:progress}.btn.ghost{background:none;border:1px solid var(--panel-line);color:var(--ink);box-shadow:none;margin-top:1rem}.btn.ghost:hover{border-color:var(--brass);color:var(--brass-bright)}.loading{text-align:center;padding:4rem 0}.orbit{width:64px;height:64px;margin:0 auto 1.6rem;border-radius:50%;border:1px solid rgba(215,184,119,.25);position:relative;animation:spin 6s linear infinite}.orbit:after{content:"";position:absolute;top:-4px;left:50%;width:8px;height:8px;border-radius:50%;background:var(--brass-bright);box-shadow:0 0 12px var(--brass);transform:translateX(-50%)}@keyframes spin{to{transform:rotate(1turn)}}.loading p{color:var(--ink-soft);font-style:italic}.result-head{text-align:center;margin-bottom:2.6rem}.factor{border:1px solid var(--panel-line);border-radius:10px;padding:1.5rem 1.6rem;margin-bottom:1.1rem;background:var(--panel)}.factor .observed{font-family:var(--serif);font-size:1.12rem;color:var(--ink);margin:0 0 1rem;display:flex;gap:.7rem;align-items:baseline}.tag{font-family:var(--mono);font-size:.6rem;letter-spacing:.16em;text-transform:uppercase;padding:.2rem .5rem;border-radius:3px;white-space:nowrap}.tag.calc{color:var(--calc);border:1px solid rgba(143,199,212,.35)}.tag.interp{color:var(--brass);border:1px solid rgba(215,184,119,.35)}.factor .interpreted{list-style:none;margin:0;padding:0}.factor .interpreted li{color:var(--ink-soft);padding:.35rem 0 .35rem 1.3rem;position:relative}.factor .interpreted li:before{content:"✧";position:absolute;left:0;color:var(--brass-deep)}.note{text-align:center;color:var(--ink-mute);font-style:italic;margin:2.4rem auto 0;max-width:46ch}@media (max-width:560px){.row{grid-template-columns:1fr}}@media (prefers-reduced-motion:reduce){.orbit,body:before{animation:none}}