:root{--ground:#12122b;--ground-2:#1b1840;--ink:#eeeaff;--muted:#b3add6;--gold:#f3d58a;--gold-ink:#221a3f;--purple:#b9a4ff;--line:#d6c8ff47;--field:#0a081e99;--error:#ff9f8a;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*{box-sizing:border-box}html,body{margin:0}body{background:radial-gradient(120% 60% at 50% 0%, #2d2466 0%, var(--ground) 60%) fixed, var(--ground);min-height:100vh;color:var(--ink);padding-inline:16px;font:16px/1.5 Mulish,system-ui,sans-serif}.page{flex-direction:column;gap:20px;max-width:440px;margin:0 auto;padding-block:16px 112px;display:flex}#birth{flex-direction:column;gap:20px;display:flex}#birth[hidden]{display:none}.brand{text-align:center;flex-direction:column;gap:2px;display:flex}h1{letter-spacing:.2em;text-transform:uppercase;color:var(--gold);text-shadow:0 0 18px #f3d58a73;margin:0;font:400 30px/1.1 Marcellus,Georgia,serif}h2{margin:0;font:400 26px/1.2 Marcellus,Georgia,serif}.hook{text-wrap:balance;margin:0;font:400 20px/1.3 Marcellus,Georgia,serif}.revealed .hook{display:none}.hook span{color:var(--muted);font:15px/1.4 Mulish,system-ui,sans-serif}.card{border:1px solid var(--line);background:#ffffff0f;border-radius:20px;flex-direction:column;gap:14px;padding:18px;display:flex}.field{border:0;flex-direction:column;gap:6px;min-width:0;margin:0;padding:0;display:flex}.row{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;display:grid}label,legend{color:var(--muted);padding:0;font-size:14px;font-weight:700}.opt{font-weight:400}.hint{color:var(--muted);margin:-2px 0 2px;font-size:13px}input[type=text],input[type=email],input[type=date],input[type=time],select{border:1px solid var(--line);background:var(--field);width:100%;min-width:0;height:48px;color:var(--ink);font:inherit;border-radius:12px;padding:0 14px;font-size:16px}input:disabled{opacity:.45}.check{min-height:32px;color:var(--ink);cursor:pointer;align-items:center;gap:10px;font-weight:600;display:flex}.check input{width:20px;height:20px;accent-color:var(--purple);margin:0}.seg{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;display:grid}.seg label{cursor:pointer;position:relative}.seg input{opacity:0;margin:0;position:absolute;inset:0}.seg span{border:1px solid var(--line);background:var(--field);height:48px;color:var(--muted);border-radius:12px;justify-content:center;align-items:center;font-size:15px;font-weight:700;display:flex}.seg input:checked+span{border-color:var(--purple);color:#fff;background:#b9a4ff4d}.seg input:focus-visible+span{outline:2px solid var(--gold);outline-offset:2px}button{font:inherit;cursor:pointer;transition:transform .12s}button:active{transform:scale(.97)}button:disabled{opacity:.55;cursor:progress}button:focus-visible,input:focus-visible,select:focus-visible{outline:2px solid var(--gold);outline-offset:2px}.primary{background:var(--gold);height:54px;color:var(--gold-ink);border:0;border-radius:999px;padding:0 20px;font:400 19px Marcellus,Georgia,serif;box-shadow:0 0 0 4px #f3d58a2e,0 10px 32px #f3d58a4d}.secondary{height:50px;color:var(--ink);background:0 0;border:1px solid #d6c8ff80;border-radius:999px;padding:0 18px;font-weight:700}.ghost{height:50px;color:var(--purple);background:0 0;border:0;padding:0 14px;font-weight:700}.fine{color:var(--muted);text-align:center;margin:0;font-size:12px}.error{color:var(--error);margin:0;font-size:14px;font-weight:700}.stage{aspect-ratio:9/16;border:1px solid var(--line);background:#07061a;border-radius:22px;max-width:100%;height:min(58svh,640px);margin:0 auto;position:relative;overflow:hidden;box-shadow:0 0 60px #b9a4ff4d}.stage canvas{width:100%;height:100%;display:block}#result{flex-direction:column;gap:12px;display:flex}#result .status:empty{min-height:0;margin-top:-12px}#result[hidden],#next[hidden]{display:none}.actions{grid-template-columns:2fr 1fr;gap:10px;display:grid}.replay{border:1px solid var(--line);width:40px;height:40px;color:var(--ink);background:#07061a8c;border-radius:50%;place-items:center;display:grid;position:absolute;top:10px;right:10px}.replay svg{fill:none;stroke:currentColor;stroke-width:2.2px;stroke-linecap:round;stroke-linejoin:round}.omen{background:linear-gradient(#f3d58a1a,#ffffff0a);border-color:#f3d58a99;box-shadow:0 0 36px #f3d58a24}.omen h2{text-wrap:balance;font-size:23px}.omen p{color:var(--muted);margin:0}.omen.pulse{animation:1.4s ease-out 2 omen-pulse}@keyframes omen-pulse{0%{box-shadow:0 0 #f3d58a8c,0 0 36px #f3d58a24}to{box-shadow:0 0 0 16px #f3d58a00,0 0 36px #f3d58a24}}#edit{margin-top:-8px}#edit[hidden]{display:none}.dock{z-index:10;padding:24px 16px calc(14px + env(safe-area-inset-bottom));background:linear-gradient(#12122b00,#12122beb 40%);transition:transform .3s,opacity .3s;position:fixed;inset:auto 0 0}.dock .primary{width:100%;max-width:440px;margin:0 auto;display:block}.dock[hidden]{opacity:0;pointer-events:none;display:block;transform:translateY(110%)}.note{color:#8fe3c8;background:#8fe3c81f;border-radius:12px;margin:0;padding:10px 14px;font-size:14px}.status{min-height:1.5em;color:var(--muted);text-align:center;margin:0;font-size:14px}.progress{flex-direction:column;align-items:center;gap:6px;display:flex}.progress[hidden]{display:none}.track{background:#ffffff1f;border-radius:4px;width:100%;height:8px;overflow:hidden}.bar{background:linear-gradient(90deg, #8a6ae6, var(--gold));width:0;height:100%;transition:width .2s}.label{color:var(--muted);font-size:13px}.inline{gap:8px;display:flex}.inline input{flex:1}.inline .primary{height:48px;font-size:17px}.divider{background:var(--line);height:1px}.foot{color:var(--muted);text-align:center;font-size:12px}.visually-hidden{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}@media (prefers-reduced-motion:reduce){button,.dock{transition:none}.omen.pulse{animation:none}}.dial{border:0;flex-direction:column;gap:10px;min-width:0;margin:0;padding:0;display:flex}.luopan-wrap{width:min(100%,440px);margin:0 auto;position:relative}.drag-hint{color:var(--gold);letter-spacing:.04em;white-space:nowrap;pointer-events:none;background:#0c0a22d1;border:1px solid #f3d58a73;border-radius:16px;flex-direction:column;align-items:center;gap:0;padding:4px 14px 8px;font-size:13px;font-weight:800;transition:opacity .4s;display:flex;position:absolute;bottom:17%;left:50%;transform:translate(-50%)}.drag-hint svg{fill:none;stroke:var(--gold);stroke-width:2.4px;stroke-linecap:round;stroke-linejoin:round;animation:1.6s ease-in-out infinite hint-swing}.drag-hint.gone{opacity:0}@keyframes hint-swing{0%,to{transform:translate(-8px)}50%{transform:translate(8px)}}.dial-extras{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:4px 12px;display:flex}.dial-extras .link{align-self:auto;padding:0}.ring-tabs{grid-template-columns:repeat(4,minmax(0,1fr));gap:6px;display:grid}.ring-tab{border:1px solid var(--line);background:var(--field);min-height:48px;color:var(--ink);border-radius:12px;flex-direction:column;justify-content:center;align-items:center;gap:1px;padding:4px;display:flex}.ring-tab .k{letter-spacing:.12em;text-transform:uppercase;color:var(--muted);font-size:11px;font-weight:800}.ring-tab .v{white-space:nowrap;font:400 16px Marcellus,Georgia,serif}.ring-tab[aria-pressed=true]{border-color:var(--gold);background:#f3d58a1f;box-shadow:0 0 18px #f3d58a2e}.ring-tab[aria-pressed=true] .k{color:var(--gold)}.ring-tab:disabled{opacity:.4}.luopan{aspect-ratio:1;touch-action:none;-webkit-user-select:none;user-select:none;width:100%}.luopan svg{cursor:grab;border-radius:50%;width:100%;height:100%;display:block;overflow:visible}.luopan svg:active{cursor:grabbing}.luopan svg:focus-visible{outline:2px solid var(--gold);outline-offset:6px}.lp-disc{filter:drop-shadow(0 0 28px #b9a4ff59)}.lp-rim{stroke:var(--gold);stroke-width:2px}.lp-sep{stroke:#f3d58a59;stroke-width:1px}.lp-band{stroke:#ffffff06;transition:stroke .25s}.lp-band.active{stroke:#f3d58a1a}.lp-band.disabled{stroke:#00000040}.lp-tick{stroke:#f3d58a73;stroke-width:1px}.lp-tri{stroke:var(--gold);stroke-width:1.6px;stroke-linecap:round;opacity:.8}.lp-deco{transform-box:view-box;transform-origin:200px 200px;animation:120s linear infinite lp-turn}@keyframes lp-turn{to{transform:rotate(360deg)}}.lp-label{fill:#d6c8ff8c;pointer-events:none;font-family:Mulish,system-ui,sans-serif;font-size:11px;font-weight:700;transition:fill .15s}.lp-label-year{font-family:Marcellus,Georgia,serif;font-size:14px;font-weight:400}.lp-label-month{letter-spacing:.08em;font-size:12px}.lp-label-day{font-size:12px}.lp-label-hour{letter-spacing:.04em;font-size:11px}.lp-ring.active .lp-label{fill:#eeeaffd9}.lp-label.sel{filter:drop-shadow(0 0 6px #f3d58ae6);font-size:1.12em;fill:var(--gold)!important}.lp-label.off{opacity:.2}.lp-ring.disabled{opacity:.25}.lp-thread{stroke:#e5645a;stroke-width:1.2px;opacity:.7;pointer-events:none}.lp-window{fill:#f3d58a17;stroke:#f3d58a47;stroke-width:1px;pointer-events:none}.luopan.idle .lp-window{animation:1.8s ease-in-out infinite alternate lp-glow}@keyframes lp-glow{to{fill:#f3d58a3d;stroke:#f3d58ab3}}.lp-thread-h{opacity:.35}.lp-pointer{fill:#e5645a;filter:drop-shadow(0 0 6px #e5645ae6)}.lp-needle{transform-box:view-box;transform-origin:200px 200px;pointer-events:none;transition:transform .7s cubic-bezier(.3,1.8,.5,1)}.lp-needle-n{fill:#e5645a}.lp-needle-s{fill:var(--gold);opacity:.8}.lp-pin{fill:#fff3c9}.summary{text-align:center;flex-direction:column;align-items:center;gap:0;min-height:2.8em;margin:0;display:flex}.summary .d{color:var(--ink);font:400 20px/1.3 Marcellus,Georgia,serif}.summary .h{color:var(--gold);font-size:14px;font-weight:700}.link{min-height:40px;color:var(--purple);text-underline-offset:3px;background:0 0;border:0;align-self:center;padding:0 8px;font-weight:700;text-decoration:underline}#typed[hidden]{display:none}@media (prefers-reduced-motion:reduce){.lp-deco,.drag-hint svg,.luopan.idle .lp-window{animation:none}.lp-needle{transition:none}}.free-note{color:var(--muted);text-align:center;margin:-4px 0 0;font-size:13px}.deeper{border:1px dashed var(--line);border-radius:20px;flex-direction:column;gap:10px;padding:16px 18px;display:flex}.deeper[hidden]{display:none}.deeper-head{justify-content:space-between;align-items:center;gap:10px;display:flex}.deeper h2{font-size:20px}.deeper p{color:var(--muted);margin:0;font-size:14px}.soon{letter-spacing:.12em;text-transform:uppercase;color:var(--purple);background:#b9a4ff29;border-radius:999px;flex-shrink:0;padding:3px 10px;font-size:11px;font-weight:800}.deeper .secondary{height:46px;font-size:15px}.foot a{color:var(--muted);text-underline-offset:3px}.foot a:hover{color:var(--gold)}
