:root{--bg:#07070f;--gold:#e8c47a;--gold-soft:#e8c47ab8;--rose:#f0c4c0;--ink:#f4efe6;--mute:#f4efe68c;--ui:#c9c2b4;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}body.theme-pink{--bg:#160a12;--gold:#ff6da5;--gold-soft:#ff6da5b8;--rose:#ff9cbd;--ink:#fff5f8;--mute:#fff5f88c}*,:before,:after{box-sizing:border-box}body{background:var(--bg);min-height:100%;color:var(--ink);cursor:none;min-height:100dvh;margin:0;font-family:Outfit,system-ui,sans-serif;transition:background-color 2s,color 2s;overflow:hidden}body.has-coarse-pointer,body.has-coarse-pointer button,body.has-coarse-pointer textarea{cursor:auto}#sky{z-index:0;width:100%;height:100%;position:fixed;inset:0}.constellation{z-index:0;pointer-events:none;opacity:1;width:60vw;max-width:600px;height:auto;position:fixed;top:5%;right:15%;transform:rotate(15deg)}.cline{stroke:var(--gold-soft);stroke-width:.15px;stroke-linecap:round;opacity:0;transition:stroke 2s,opacity 1.5s}.cline.is-lit{opacity:.5;stroke-width:.3px}.constellation-nodes circle{fill:var(--gold);opacity:.35;filter:none;transition:fill 2s,opacity 1.5s,filter 1.5s}.constellation-nodes circle.is-lit{opacity:.95;filter:drop-shadow(0 0 6px var(--gold))}.floating-heart{pointer-events:none;z-index:10;-webkit-user-select:none;user-select:none;will-change:transform, opacity;font-size:clamp(1rem,3vw,1.8rem);line-height:1;position:fixed;bottom:0}.celestial-orbit-container{z-index:1;pointer-events:none;will-change:transform;place-items:center;display:grid;position:fixed;inset:0;overflow:hidden}.orbital-ring{pointer-events:none;will-change:transform;border-radius:50%;position:absolute}.orbital-ring-1{border:1px dashed #e8c47a2e;width:min(750px,85vw);height:min(750px,85vw);animation:90s linear infinite spinSlow}.orbital-ring-2{border:1px solid #f0c4c01a;width:min(550px,65vw);height:min(550px,65vw);animation:60s linear infinite reverse spinSlow}.orbital-ring-3{border:1px dotted #e8c47a38;width:min(360px,45vw);height:min(360px,45vw);animation:40s linear infinite spinSlow}.floating-sparks{pointer-events:none;position:absolute;inset:0}.spark{color:var(--gold);opacity:.45;filter:drop-shadow(0 0 8px var(--gold));font-size:clamp(.8rem,2vw,1.4rem);transition:color 2s,filter 2s;animation:8s ease-in-out infinite alternate floatSpark;position:absolute}.spark-1{animation-delay:0s;top:22%;left:18%}.spark-2{animation-delay:2s;top:72%;left:82%}.spark-3{animation-delay:4s;top:78%;left:22%}.spark-4{animation-delay:1.5s;top:28%;left:78%}@keyframes spinSlow{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes floatSpark{0%{opacity:.3;transform:translateY(0)rotate(0)scale(.9)}to{opacity:.8;transform:translateY(-24px)rotate(45deg)scale(1.25)}}.grain,.vignette{pointer-events:none;z-index:2;position:fixed;inset:0}.grain{opacity:.07;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.8' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='180' height='180' filter='url(%23n)' opacity='.9'/%3E%3C/svg%3E")}.vignette{background:radial-gradient(#0000 40%,#0000008c 100%)}.mute{top:max(16px, env(safe-area-inset-top));right:max(16px, env(safe-area-inset-right));z-index:20;color:var(--ui);letter-spacing:.14em;text-transform:uppercase;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);cursor:none;background:#07070f73;border:1px solid #e8c47a47;border-radius:999px;padding:.55rem .8rem;font:500 .75rem Outfit,sans-serif;position:fixed}.mute:focus-visible{outline:1px solid var(--gold)}#stage{z-index:3;min-height:100dvh;position:relative}.scene{text-align:center;opacity:0;visibility:hidden;pointer-events:none;align-content:center;justify-items:center;padding:18vh 8vw 16vh;display:grid;position:fixed;inset:0}.scene.is-active{opacity:1;visibility:visible;pointer-events:auto}.eyebrow{letter-spacing:.42em;text-transform:uppercase;color:var(--gold-soft);margin:0 0 1.4rem;font-family:Outfit,sans-serif;font-size:.72rem}.sub,.hint,.choice-sub,.send-status,.config-warn,.continue{color:var(--mute);font-weight:300}h1,.name-hero,.line,.lyric,.name-line{margin:0;font-family:Cormorant Garamond,Georgia,serif;font-weight:500}h1{letter-spacing:.04em;font-size:clamp(3.2rem,10vw,7.5rem);font-weight:600;line-height:1.1}.title-sub{letter-spacing:.15em;color:var(--mute);margin-top:.5rem;font-family:Outfit,sans-serif;font-size:clamp(.9rem,2.5vw,1.4rem);font-weight:300;display:block}.sub{letter-spacing:.04em;margin:1rem 0 2.4rem;font-size:1rem}.line{max-width:18ch;font-size:clamp(1.7rem,4.6vw,3.35rem);line-height:1.25}.line.secondary{color:var(--rose);max-width:24ch;margin-top:1.4rem;font-size:clamp(1.2rem,3vw,2rem)}.line.compact{max-width:22ch;margin-bottom:.6rem}.lyric{max-width:22ch;margin:0 auto 1.1rem;font-size:clamp(1.35rem,3.4vw,2.4rem);line-height:1.35}.lyric.italic{font-style:italic}.love-line{color:var(--gold);letter-spacing:.08em;font-weight:600}blockquote{border:0;margin:1.6rem 0 0;padding:0}.name-line{letter-spacing:.18em;text-transform:uppercase;color:var(--mute);font-size:clamp(1.6rem,4vw,2.6rem);font-weight:400}.name-hero{letter-spacing:.06em;color:var(--gold);text-shadow:0 0 48px #e8c47a47;margin-top:.2rem;font-size:clamp(4rem,14vw,9rem);font-weight:600}.enter,.send{appearance:none;color:var(--gold);letter-spacing:.28em;text-transform:uppercase;background:0 0;border:1px solid #e8c47a80;border-radius:999px;min-width:160px;min-height:48px;padding:.95rem 1.7rem;font-family:Outfit,sans-serif;font-size:.82rem}.enter:hover,.send:hover{background:#e8c47a1a}.hint{max-width:36ch;margin:.4rem 0 1.8rem;font-size:.92rem}.choices{gap:.85rem;width:min(440px,100%);display:grid}.choice{text-align:left;min-height:72px;color:var(--ink);background:#ffffff08;border:1px solid #e8c47a38;border-radius:16px;justify-items:start;gap:.2rem;padding:1rem 1.1rem 1rem 1.35rem;display:grid;position:relative;overflow:hidden}.choice.is-selected{border-color:var(--gold);box-shadow:0 0 0 1px #e8c47a59}.choice.is-dim{opacity:.35}.choice-label{font-family:Cormorant Garamond,Georgia,serif;font-size:1.55rem}.choice-sub{font-size:.82rem}.choice-ring{transform-origin:0;pointer-events:none;background:linear-gradient(90deg,#e8c47a2e,#f0c4c01f);position:absolute;inset:0;transform:scaleX(0)}.note-panel{gap:.8rem;width:min(440px,100%);margin-top:1.4rem;display:grid}.note-panel[hidden]{display:none}.selected-label{color:var(--gold);letter-spacing:.08em;text-transform:uppercase;margin:0;font-size:.78rem}textarea{resize:vertical;width:100%;min-height:88px;color:var(--ink);background:#00000047;border:1px solid #e8c47a38;border-radius:14px;padding:.9rem 1rem;font:400 1rem Outfit,sans-serif}.config-warn,.send-status{margin:0;font-size:.85rem}.config-warn{color:#f0c4c0}.send{background:var(--gold);color:var(--bg);border:none;border-radius:20px;padding:.8rem;font-family:inherit;font-size:1.1rem;font-weight:500}.back-choice{color:var(--gold);border:1px solid var(--gold);background:0 0;border-radius:20px;padding:.6rem;font-family:inherit;font-size:.95rem;transition:opacity .3s}.back-choice:hover{opacity:.8}.continue{bottom:max(24px, env(safe-area-inset-bottom));z-index:8;text-align:center;letter-spacing:.22em;text-transform:uppercase;pointer-events:none;margin:0;font-size:.78rem;position:fixed;left:0;right:0}.progress{z-index:8;background:#e8c47a1f;height:2px;position:fixed;bottom:0;left:0;right:0}.progress:after{content:"";height:100%;width:var(--p,0%);background:var(--gold);transition:width .45s;display:block}.word{opacity:0;filter:blur(6px);display:inline-block;transform:translateY(.5em)}.sr-only{clip:rect(0, 0, 0, 0);border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.cursor-root{pointer-events:none;z-index:50;opacity:0;position:fixed;inset:0}.cursor-root.is-on{opacity:1}.cursor-dot,.cursor-spark{will-change:transform;border-radius:50%;position:absolute;top:0;left:0}.cursor-dot{background:var(--gold);width:6px;height:6px;box-shadow:0 0 10px var(--gold);margin:-3px 0 0 -3px}.cursor-spark{border:1px solid #e8c47a8c;width:22px;height:22px;margin:-11px 0 0 -11px}@media (pointer:coarse){body{cursor:auto}.cursor-root{display:none}.mute,.enter,.send,.choice{cursor:pointer}}@media (prefers-reduced-motion:reduce){.word{opacity:1;filter:none;transform:none}.progress:after{transition:none}}@media (width<=640px){.scene{align-content:center;padding:16vh 6vw 18vh}.choices{width:100%}}
