@import url('https://fonts.googleapis.com/css2?family=Golos+Text:wght@400;500;600&family=Lora:ital,wght@0,400;0,500;1,400&display=swap');
:root{--paper:#f8f5ee;--ink:#30273e;--purple:#695181;--muted:#706778;--line:#ded8df;--lavender:#eee7f3;--gold:#d1a967;--serif:'Lora',Georgia,serif;--sans:'Golos Text',Arial,sans-serif}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:32px}body{margin:0;background:var(--paper);color:var(--ink);font:16px/1.6 var(--sans)}button,textarea{font:inherit}button,a{-webkit-tap-highlight-color:transparent}button{cursor:pointer}a{color:inherit;text-decoration:none}button:focus-visible,a:focus-visible,textarea:focus-visible{outline:3px solid #a88038;outline-offset:5px}button:disabled{cursor:wait;opacity:.7}[hidden]{display:none!important}.wrap{width:calc(100% - 40px);max-width:1180px;margin-inline:auto}.header{min-height:112px;display:flex;align-items:center;justify-content:space-between;gap:20px;border-bottom:1px solid var(--line)}.brand{display:flex;align-items:center;gap:13px;font:500 23px/1.2 var(--serif);letter-spacing:-.8px}.brand-star{font-size:42px;color:var(--purple)}.brand-caption{display:block;font:10px var(--sans);letter-spacing:2px;text-transform:uppercase;margin-top:8px;color:var(--muted)}nav{display:flex;gap:34px;align-items:center}.how-link{font-size:13px;padding-block:14px}.sound{background:none;border:1px solid var(--line);border-radius:30px;padding:11px 16px;display:flex;align-items:center;gap:9px;font-size:12px;color:var(--muted);min-height:44px}.sound[aria-pressed=false] .sound-waves{opacity:.3}.hero{padding-block:65px 55px;display:grid;grid-template-columns:1.2fr 1fr;align-items:center;gap:20px}.eyebrow{font-size:11px;letter-spacing:1.8px;text-transform:uppercase;color:var(--purple);font-weight:500;margin:0 0 25px;display:flex;align-items:center;gap:10px}.tiny-line{width:25px;height:1px;background:var(--purple)}h1,h2,h3,p{margin-top:0}h1,h2,h3{font-family:var(--serif);font-weight:400;line-height:1.15}h1{font-size:clamp(42px,5.2vw,68px);letter-spacing:-2.8px;margin-bottom:25px}em{font-weight:400;color:var(--purple)}h1 em{white-space:nowrap}.intro{font-size:15px;line-height:1.8;color:var(--muted);margin-bottom:30px}.primary{display:inline-flex;align-items:center;justify-content:space-between;gap:28px;background:var(--purple);color:#fff9ef;border:1px solid var(--purple);border-radius:7px;padding:17px 24px;min-height:56px;font-size:14px;font-weight:500;transition:background .2s,transform .2s}.primary:hover{background:#55406b;transform:translateY(-2px)}.primary span:last-child:not(:first-child){font-size:21px;line-height:1}.under-button{font-size:11px;margin:12px 0 0;color:var(--muted)}.scene{position:relative;min-width:0;height:510px;display:flex;justify-content:center;align-items:center;isolation:isolate}.scene-halo{position:absolute;width:370px;height:370px;border-radius:50%;background:#eae2ef;z-index:-2;top:56px}.wizard{width:480px;max-width:118%;height:auto;position:relative;z-index:1;transform:rotate(-3deg);filter:drop-shadow(0 16px 18px #66507816)}.orbit{position:absolute;border:1px solid #d6cbdc;border-radius:50%;width:430px;height:430px;top:22px;z-index:-1}.orbit-one{transform:rotate(-28deg) scaleY(.74)}.orbit-two{width:460px;height:460px;top:4px;transform:rotate(35deg) scaleX(.82);border-style:dashed;opacity:.6}.scene-spark{position:absolute;font-size:42px;color:#9a7c52;z-index:2}.spark-a{left:1%;top:80px}.spark-b{right:3%;top:286px;font-size:24px}.spark-c{left:9%;bottom:90px;font-size:30px}.scene-note{position:absolute;right:-4px;top:4px;z-index:2;font:italic 17px var(--serif);transform:rotate(9deg);color:var(--purple)}.status{position:absolute;bottom:0;border:1px solid #dbd2df;background:var(--paper);padding:8px 17px;border-radius:30px;color:var(--muted);font-size:11px;display:flex;gap:8px;align-items:center;z-index:3}.status i{width:6px;height:6px;background:#788967;border-radius:50%}.divider{display:flex;align-items:center;justify-content:center;gap:24px;border-block:1px solid var(--line);padding:22px 0;color:var(--purple)}.divider p{margin:0;font:italic 16px var(--serif);text-align:center}.divider span{color:var(--gold);font-size:24px}.wish-section{padding-block:85px;display:grid;grid-template-columns:1fr 1.35fr;gap:70px;align-items:start}.wish-heading{padding-top:30px}.wish-heading .eyebrow{margin-bottom:18px}h2{font-size:42px;letter-spacing:-1.4px;margin-bottom:22px}.wish-heading p:not(.eyebrow){font-size:14px;line-height:1.9;color:var(--muted)}.handwritten{margin-top:33px;font:italic 16px var(--serif);color:var(--purple);transform:rotate(-5deg)}.handwritten span{display:inline-block;font-size:35px;vertical-align:middle;margin-left:14px}.wish-panel{background:var(--lavender);padding:32px;border:1px solid #dcd1e5;border-radius:12px;position:relative;min-height:415px}.field-heading{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:13px}.field-heading label{font-family:var(--serif);font-size:23px}#counter{font-size:11px;color:var(--muted)}textarea{width:100%;resize:vertical;min-height:140px;max-height:300px;border:1px solid #d9cede;background:#fcfaf5;color:var(--ink);border-radius:6px;padding:17px 18px;font-size:14px;line-height:1.75;display:block}textarea::placeholder{color:#817788}textarea[aria-invalid=true]{border-color:#9e4545}.suggestions{margin-top:15px}.suggestions>span{font-size:10px;color:var(--muted)}.suggestions>div{display:flex;gap:6px;flex-wrap:wrap;margin-top:7px}.suggestions button{border:1px solid #c7bbd1;border-radius:30px;color:#61506e;background:transparent;font-size:10px;padding:9px 11px;min-height:44px}.suggestions button:hover{background:#fff8}.cast{width:100%;margin-top:12px}.error{margin:7px 0 0;color:#8c3434;font-size:12px}.error:empty{display:none}.privacy{font-size:10px;color:#716579;line-height:1.7;margin:14px 0 0;display:flex;gap:7px;align-items:flex-start}.privacy svg{flex-shrink:0;margin-top:2px}.how{padding:12px 0 75px}.how-heading{text-align:center}.how-heading .eyebrow{justify-content:center;margin-bottom:15px}.how-heading h2{font-size:36px}.steps{display:grid;grid-template-columns:repeat(3,1fr);gap:54px;margin-top:46px}.step-number{font-family:var(--serif);font-size:14px;color:var(--purple);border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding-bottom:14px;margin-bottom:24px}.step-number span{font-size:23px;color:#a4875b}.steps h3{font-size:23px;margin-bottom:13px;letter-spacing:-.4px}.steps p{font-size:13px;color:var(--muted);line-height:1.9;margin:0}.closing{border-block:1px solid var(--line);padding-block:45px;text-align:center}.closing>span{font-size:30px;color:var(--gold)}.closing p{font:32px/1.4 var(--serif);margin:12px 0 15px}.text-button{border:0;border-bottom:1px solid #b6a8c0;background:none;color:var(--purple);padding:10px 0;font-size:12px;display:inline-block;min-height:44px}.closing .text-button span{margin-left:12px}.footer{padding-block:28px;display:flex;align-items:center;justify-content:space-between;gap:20px}.footer>span{font-family:var(--serif);font-size:17px}.footer>span span{color:var(--purple);margin-left:10px}.footer p{font-size:10px;color:var(--muted);line-height:1.8;margin:0}.footer a{font-size:11px;color:var(--muted);padding:12px 0}.skip{position:absolute;left:10px;top:-100px;background:var(--ink);color:white;z-index:100;padding:10px}.skip:focus{top:10px}#sparkles{position:fixed;inset:0;width:100%;height:100%;pointer-events:none;z-index:50}.ritual{text-align:center;min-height:350px;display:flex;align-items:center;justify-content:center;flex-direction:column}.ritual-star{font-size:80px;color:#9c794c;animation:twinkle 1.2s infinite ease-in-out}.ritual p{font-family:var(--serif);font-size:25px;margin:20px 0 10px}.ritual>span:last-child{font-size:12px;color:var(--muted)}@keyframes twinkle{50%{transform:rotate(70deg) scale(1.25);opacity:.5}}.result{text-align:center;outline:none!important}.result .eyebrow{justify-content:center;font-size:9px;letter-spacing:1.5px;margin:10px 0 16px}.seal{display:inline-flex;align-items:center;justify-content:center;width:50px;height:50px;border:1px solid #c8b495;border-radius:50%;color:#a0804b;font-size:30px}.result h3{font-size:33px;margin-bottom:20px;letter-spacing:-1px}.result blockquote{font:italic 19px/1.6 var(--serif);margin:0 0 20px;padding:16px 8px;border-block:1px solid #d6cbdf;overflow-wrap:anywhere}.result blockquote::before{content:'«'}.result blockquote::after{content:'»'}#blessing{font-size:14px;line-height:1.8;color:var(--purple)}.result-note{font-size:11px;line-height:1.8;color:var(--muted)}.result-actions{display:flex;justify-content:center;align-items:center;gap:20px;margin-top:23px}.result-actions .primary{font-size:12px;padding:13px 15px;min-height:48px;gap:15px}.download-note{font-size:10px;color:var(--muted);margin:15px 0 0}.no-script{padding:25px;text-align:center}body.is-casting .scene-halo{box-shadow:0 0 70px 30px #ead89988;transition:box-shadow 1s}
@media(min-width:1400px){.hero{padding-block:85px}.header{min-height:120px}}
@media(max-width:950px){h1{font-size:51px}.scene{height:450px}.scene-halo{width:310px;height:310px;top:65px}.orbit{width:340px;height:340px;top:52px}.orbit-two{width:360px;height:360px;top:40px}.wizard{width:400px}.scene-note{font-size:14px;right:10px;top:35px}.wish-section{gap:30px}.steps{gap:25px}.wish-panel{padding:25px}.spark-a{left:0}}
@media(max-width:700px){.header{min-height:90px}.brand{font-size:20px;gap:9px}.brand-star{font-size:32px}.brand-caption{font-size:8px;letter-spacing:1.6px;margin-top:7px}.how-link{display:none}nav{gap:0}.sound{padding:10px}.sound span{display:none}.hero{display:flex;flex-direction:column;padding-top:38px;padding-bottom:28px;gap:15px}.hero-copy{width:100%}.eyebrow{font-size:9px;letter-spacing:1.4px;margin-bottom:20px}h1{font-size:clamp(39px,10vw,64px);letter-spacing:-1.8px;margin-bottom:20px}.intro{font-size:14px;line-height:1.8;margin-bottom:23px}.hero-action{padding:15px 22px;font-size:13px}.under-button{font-size:10px}.scene{height:365px;width:100%;max-width:400px;margin-top:8px}.wizard{width:345px;max-width:110%}.scene-halo{width:270px;height:270px;top:40px}.orbit{width:310px;height:310px;top:20px}.orbit-two{width:330px;height:330px;top:10px}.scene-note{top:4px;right:0;font-size:13px}.spark-a{top:74px;left:4%;font-size:33px}.spark-b{right:1%;top:230px}.spark-c{left:4%;bottom:68px;font-size:22px}.status{font-size:10px;padding:7px 14px;bottom:0}.divider{padding-block:18px;gap:14px}.divider p{font-size:13px;max-width:260px}.divider span{font-size:19px}.wish-section{display:block;padding-block:46px}.wish-heading{padding:0}.wish-heading .eyebrow{margin-bottom:13px}h2{font-size:36px;margin-bottom:18px}.wish-heading p:not(.eyebrow){font-size:13px}.handwritten{margin:16px 0 27px;font-size:14px;transform:rotate(-3deg)}.handwritten span{font-size:26px}.wish-panel{padding:22px 18px;min-height:400px}.field-heading label{font-size:22px}.field-heading #counter{font-size:10px}textarea{font-size:16px;min-height:160px;padding:13px;line-height:1.6}.suggestions button{min-height:44px;padding:9px 10px;font-size:10px}.cast{font-size:13px;padding:15px 17px}.privacy{font-size:9px}.how{padding:5px 0 42px}.how-heading{text-align:left}.how-heading .eyebrow{justify-content:start}.how-heading h2{font-size:32px;max-width:320px}.steps{display:block;margin-top:25px}.steps article{margin-top:27px}.step-number{padding-bottom:10px;margin-bottom:15px}.steps h3{font-size:24px;margin-bottom:10px}.steps p{font-size:13px}.closing{padding-block:30px}.closing p{font-size:25px}.footer{display:grid;grid-template-columns:1fr auto;padding-block:25px;gap:15px}.footer p{grid-row:2;grid-column:1/-1;font-size:10px}.footer>a{grid-row:1;grid-column:2}.result h3{font-size:30px}.result blockquote{font-size:17px}.result-actions{gap:12px;flex-wrap:wrap}.result-actions .primary{font-size:11px}.ritual p{font-size:22px}.ritual>span:last-child{font-size:11px}.ritual{min-height:350px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation:none!important;transition:none!important}.primary:hover{transform:none}}
/* Keep decorative orbits within narrow screens and text comfortable to read. */
.intro,.wish-heading p:not(.eyebrow),.steps p{font-size:16px}.ritual>span:last-child{font-size:14px}.result-note{font-size:13px}
@media(max-width:700px){.scene{overflow:clip}.scene-note{right:10px}.intro,.wish-heading p:not(.eyebrow),.steps p{font-size:16px}.wish-heading p:not(.eyebrow){line-height:1.7}.ritual>span:last-child{font-size:13px}.suggestions>span{font-size:11px}.privacy{font-size:10px}}
/* Two moods, one little bureau. Only the theme preference is persisted. */
:root{--muted:#5f5668;--panel:#eee7f3;--field:#fcfaf5;--field-line:#c5b7d0;--on-purple:#fff9ef;--halo:#eae2ef;--orbit:#c9bcd1;--chip:#61506e;--gold:#9b753d;--button:#695181;--card-line:#d6cbdf;--error:#8c3434;color-scheme:light}
html[data-theme=night]{--paper:#181421;--ink:#f4ebfa;--purple:#c6aae4;--muted:#c5b9d1;--line:#45384f;--panel:#2c2239;--field:#211b2b;--field-line:#685376;--on-purple:#fff8ff;--halo:#342440;--orbit:#6c507e;--chip:#decaed;--gold:#e6c27e;--button:#77548f;--card-line:#5b466c;--error:#ffb5b5;color-scheme:dark}
body{transition:background-color .25s,color .25s}.magic-controls{display:flex;gap:9px}.magic-controls b{font-size:18px;font-weight:400;line-height:1}.header nav{gap:25px}.sound{color:var(--muted);border-color:var(--line);font-size:11px;padding-inline:13px}.sound[aria-pressed=true]{background:var(--panel);border-color:var(--purple);color:var(--purple)}.primary{background:var(--button);border-color:var(--button);color:var(--on-purple)}.primary:hover{background:#59406d}.scene-halo{background:var(--halo)}.orbit{border-color:var(--orbit)}.status{border-color:var(--line)}.scene-spark,.divider span,.step-number span,.closing>span{color:var(--gold)}.wish-panel{background:var(--panel);border-color:var(--line)}textarea{background:var(--field);border-color:var(--field-line)}textarea::placeholder{color:var(--muted);opacity:1}.suggestions button{color:var(--chip);border-color:var(--field-line);font-size:11px}.suggestions button:hover{background:var(--field)}.privacy{color:var(--muted);font-size:11px}.error{color:var(--error)}.result blockquote{border-color:var(--card-line)}.text-button{border-color:var(--field-line);font-size:13px}.under-button{color:var(--muted);font-size:12px}.footer p,.download-note{font-size:11px;color:var(--muted)}.hero-toad{position:absolute;z-index:4;left:-7px;bottom:38px;display:flex;align-items:end;gap:0;pointer-events:none}.hero-toad img{width:130px;height:auto;transform:rotate(-6deg);filter:drop-shadow(0 6px 8px #26132b16)}.hero-toad span{font:italic 12px/1.5 var(--serif);color:var(--purple);padding:8px 10px;border:1px solid var(--line);border-radius:14px 14px 14px 0;background:var(--paper);transform:rotate(-4deg);margin:0 0 13px -10px}.toad-aside{display:flex;align-items:center;gap:7px;margin:24px 0 0;max-width:350px}.toad-aside img{width:100px;height:auto;flex-shrink:0}.wish-heading .toad-aside p{font:italic 14px/1.7 var(--serif);color:var(--purple);margin:0!important}.handwritten{margin-top:15px}.result-toad{width:105px;height:auto;margin-top:-10px}.result .eyebrow{margin-top:0}.mage-joke{border-left:2px solid var(--gold);padding:5px 12px;margin:21px 0;text-align:left}.mage-joke p{font:italic 14px/1.8 var(--serif);margin:0 0 8px;color:var(--purple)}.mage-joke>span{font-size:10px;color:var(--muted);display:block;line-height:1.7}.result-actions{gap:16px;flex-wrap:wrap}.share-privacy{font-size:10px;line-height:1.7;color:var(--muted);margin:11px auto 0;max-width:350px}.closing-toad{display:block;width:85px;height:auto;margin:0 auto 10px}.closing .closing-quip{display:block;font:italic 13px var(--serif);color:var(--muted)}.constellation{position:absolute;width:180px;height:180px;top:50%;left:50%;transform:translate(-50%,-75%);animation:orbiting 5s linear infinite;pointer-events:none}.constellation span{position:absolute;color:var(--gold);font-size:25px}.constellation span:nth-child(1){top:0;left:50%}.constellation span:nth-child(2){top:50%;right:0}.constellation span:nth-child(3){bottom:0;left:50%}.constellation span:nth-child(4){top:50%;left:0}.ritual{position:relative}.ritual-star{color:var(--gold)}.ritual p,.ritual>span{position:relative;z-index:1}.ritual p{background:var(--panel);padding:6px 12px;border-radius:20px}.is-casting .wizard{animation:wizard-wand 1.3s ease-in-out infinite}.is-casting .hero-toad img{animation:toad-bob 1s ease-in-out infinite}.is-casting .scene-halo{box-shadow:0 0 65px 10px #c8a2e340}.hero-toad:hover img{transform:rotate(4deg)}
@keyframes orbiting{to{transform:translate(-50%,-75%) rotate(360deg)}}@keyframes wizard-wand{50%{transform:rotate(1deg) translateY(-6px)}}@keyframes toad-bob{50%{transform:rotate(4deg) translateY(-6px)}}
@media(max-width:1000px){.header nav{gap:12px}.how-link{display:none}.magic-controls{gap:6px}.sound{padding-inline:10px}.hero-toad img{width:105px}.hero-toad span{font-size:11px;padding:6px}.hero-toad{bottom:34px}}
@media(max-width:700px){.header{gap:10px;min-height:90px}.brand{font-size:18px;gap:7px}.brand-star{font-size:28px}.brand-caption{font-size:7px;letter-spacing:1.3px}.magic-controls{gap:5px}.sound{width:38px;min-width:38px;min-height:44px;padding:8px;justify-content:center}.sound span{display:none}.hero-toad{left:1px;bottom:29px}.hero-toad img{width:98px}.hero-toad span{font-size:10px;margin-left:-14px;margin-bottom:5px;padding:6px 8px}.scene{height:385px}.status{bottom:0;font-size:10px}.toad-aside{margin:15px 0 0}.toad-aside img{width:85px}.wish-heading .toad-aside p{font-size:14px}.handwritten{margin-top:10px}.privacy{font-size:11px}.under-button{font-size:11px}.result-toad{width:90px}.mage-joke p{font-size:14px}.mage-joke>span,.share-privacy{font-size:11px}.result-actions{column-gap:18px;row-gap:8px}.result-actions .primary{width:100%;font-size:13px}.result-actions .text-button{font-size:13px}.closing .closing-quip{font-size:12px}.footer p,.download-note{font-size:11px}.suggestions>span{font-size:11px}.field-heading #counter{font-size:11px}}
@media(prefers-reduced-motion:reduce){body{transition:none}.is-casting .wizard,.is-casting .hero-toad img,.constellation{animation:none}}
/* The wizard, frog and cat each have their own chapter. No duplicate portraits. */
.hero-toad,.result-toad,.closing-toad{display:none}.toad-aside{gap:14px;margin-top:25px}.toad-aside img{width:130px}.wish-heading .toad-aside p{font-size:15px}.result-sigil{height:85px;position:relative;display:inline-flex;align-items:center;justify-content:center;font:70px/1 var(--serif);color:var(--gold);margin-bottom:13px}.result-sigil span{font-size:22px;align-self:start;margin-top:16px;margin-left:2px}
.primary,.hero-action,.cast,.result-actions .primary{font-size:17px;line-height:1.45;font-weight:500;min-height:60px}.result-actions .primary{font-size:16px}.suggestions button{font-size:12px}.text-button{font-size:14px}.under-button,.privacy,.download-note{font-size:12px}.ritual{min-height:385px}.ritual p{max-width:100%;font-size:24px;line-height:1.5}.ritual>span:last-child{font-size:13px}.ritual-star{font-size:85px;z-index:2;filter:drop-shadow(0 0 15px #d6b27044)}.spell-rings{position:absolute;inset:0;pointer-events:none;overflow:hidden;border-radius:12px}.spell-rings i{position:absolute;left:50%;top:38%;width:210px;height:210px;margin:-105px;border:1px solid var(--gold);border-radius:50%;opacity:.24;animation:spell-breathe 3s ease-in-out infinite}.spell-rings i:nth-child(2){width:280px;height:280px;margin:-140px;border-color:var(--purple);animation-delay:.4s}.spell-rings i:nth-child(3){width:330px;height:330px;margin:-165px;border-style:dashed;animation:spell-turn 17s linear infinite}.constellation{width:225px;height:225px;top:46%}.constellation span{font-size:28px}.is-casting .wish-panel{box-shadow:0 0 40px 3px #ba8adc25}
@keyframes spell-breathe{50%{transform:scale(1.15);opacity:.5}}@keyframes spell-turn{to{transform:rotate(360deg)}}
.closing{display:grid;grid-template-columns:.8fr 1.2fr;align-items:center;gap:40px;text-align:left;padding:40px 65px;min-height:330px}.cat-scene{position:relative;display:flex;align-items:center;justify-content:center}.closing-cat{width:270px;max-width:100%;height:auto;filter:drop-shadow(0 10px 18px #291b3a0d)}.cat-moon{position:absolute;right:0;top:3%;font:50px var(--serif);color:var(--gold);transform:rotate(-20deg)}.closing .closing-quip{font-size:16px;color:var(--muted);line-height:1.6}.closing .eyebrow{font-size:10px;margin-bottom:15px}.cat-copy>p:not(.eyebrow){font-size:32px;margin-block:15px}.closing .text-button{font-size:14px}
.night-sky{position:fixed;inset:0;z-index:0;pointer-events:none;overflow:hidden;opacity:.23;transition:opacity .3s}body>.header,body>main,body>.footer{position:relative;z-index:1}body>#sparkles{z-index:50}body>.skip{z-index:60}.sky-star{position:absolute;left:var(--x);top:var(--y);color:var(--gold);font-style:normal;font-size:11px;line-height:1}.sky-star.s1{font-size:7px}.sky-star.s2{font-size:15px}.sky-moon{position:absolute;color:var(--gold);font:40px var(--serif)}.moon-one{left:1%;top:38%;transform:rotate(-25deg)}.moon-two{right:1%;top:72%;font-size:55px;transform:rotate(20deg)}.moon-three{left:43%;top:3%;font-size:27px;opacity:.7}
html[data-theme=night] .night-sky{opacity:.67;background-image:radial-gradient(circle at 18% 19%,#b995ee26 0,transparent 31%),radial-gradient(circle at 85% 73%,#8b6aa51c 0,transparent 27%)}html[data-theme=night] .sky-star{animation:sky-twinkle 6s ease-in-out infinite;animation-delay:var(--d)}html[data-theme=night] .scene-halo{box-shadow:0 0 80px 12px #9163be16}html[data-theme=night] .wish-panel{background:#2c2239f5}html[data-theme=night] .status{background:var(--paper)}
@keyframes sky-twinkle{50%{opacity:.35;transform:scale(.75)}}
@media(max-width:1000px){.closing{padding:35px;gap:22px}.closing-cat{width:240px}}
@media(max-width:700px){.primary,.hero-action,.cast,.result-actions .primary{font-size:17px;min-height:60px;padding:15px 18px}.hero-action{gap:22px}.suggestions button{font-size:12px;padding:10px}.wish-panel{padding:23px 18px}.field-heading label{font-size:23px}.privacy,.download-note{font-size:12px}.under-button{font-size:12px;line-height:1.8}.toad-aside{margin:20px 0 0;gap:12px}.toad-aside img{width:115px}.wish-heading .toad-aside p{font-size:15px;line-height:1.7}.handwritten{font-size:15px}.result-sigil{font-size:60px;height:75px}.result-actions .text-button{font-size:14px}.closing{display:flex;flex-direction:column;gap:20px;text-align:center;padding:35px 0}.closing-cat{width:220px}.cat-scene{width:270px;max-width:100%}.cat-moon{right:3px;top:5%;font-size:42px}.closing .eyebrow{justify-content:center;font-size:9px}.closing .closing-quip{font-size:15px}.cat-copy>p:not(.eyebrow){font-size:26px}.closing .text-button{font-size:14px}.sky-star{font-size:9px}.sky-star.s2{font-size:12px}.sky-moon{font-size:24px}.moon-two{font-size:32px;right:-4px}.moon-one{left:-5px}.moon-three{top:13%;left:91%;font-size:23px}.night-sky{opacity:.18}html[data-theme=night] .night-sky{opacity:.5}.ritual p{font-size:21px}.ritual>span:last-child{font-size:12px}.constellation{width:190px;height:190px}.spell-rings i:nth-child(3){width:260px;height:260px;margin:-130px}.spell-rings i:nth-child(2){width:230px;height:230px;margin:-115px}.spell-rings i{width:170px;height:170px;margin:-85px}}
@media(prefers-reduced-motion:reduce){.night-sky,.spell-rings,.sky-star{transition:none!important;animation:none!important}.spell-rings i{animation:none!important}}
/* A warmer invitation: readable lilac, gentle gold, no pulsing call-to-action. */
#cast{background:#76548f;color:#fffaf3;border-color:#9a78af;box-shadow:0 3px 16px #b88c4433,0 0 0 1px #d0ac6d55;transition:box-shadow .2s,background .2s,transform .2s}#cast:hover{background:#66467e;box-shadow:0 5px 24px #b88c4450,0 0 0 1px #d0ac6d88}html[data-theme=night] #cast{background:#d0b3e8;color:#24152f;border-color:#eddaff;box-shadow:0 0 23px #e1b65d36,0 0 0 1px #d6b27055}html[data-theme=night] #cast:hover{background:#ddc5ef;box-shadow:0 0 30px #e1b65d50,0 0 0 1px #d6b27088}.message-card{text-align:left;padding:20px 0 0}.message-label{font-size:10px;letter-spacing:1.5px;text-transform:uppercase;color:var(--muted);margin-bottom:10px}.message-card h4{font:400 26px/1.3 var(--serif);color:var(--purple);letter-spacing:-.5px;margin:0 0 15px}.message-card #blessing{font-size:15px;line-height:1.9;color:var(--ink);margin:0}.gentle-tip{text-align:left;border-left:2px solid var(--gold);padding:5px 0 5px 15px;margin:25px 0}.gentle-tip>span{font-size:10px;letter-spacing:1px;text-transform:uppercase;color:var(--muted)}.gentle-tip p{font:italic 15px/1.8 var(--serif);margin:8px 0 0;color:var(--purple)}.result-note{font-size:11px;line-height:1.8}.result h3{font-size:32px;line-height:1.25}.result-actions .primary{font-size:15px}
@media(max-width:700px){.message-card h4{font-size:25px}.message-card #blessing{font-size:16px;line-height:1.8}.gentle-tip p{font-size:16px;line-height:1.8}.result h3{font-size:29px}.result-note{font-size:12px}.message-label,.gentle-tip>span{font-size:10px}.result-actions .primary{font-size:16px}}
/* Quiet life, small discoveries: transform-only reactions with native button semantics. */
.character-tap{position:relative;display:block;padding:0;border:0;background:transparent;color:var(--purple);font:inherit;border-radius:24px;touch-action:manipulation;isolation:isolate;min-height:44px;min-width:44px;-webkit-tap-highlight-color:transparent}.character-tap img{display:block;pointer-events:none;transform-origin:50% 83%}.character-tap:hover .character-hint{color:var(--ink)}.character-tap:focus-visible{outline:2px solid var(--gold);outline-offset:7px}.character-hint{display:block;font:italic 11px/1.6 var(--serif);white-space:nowrap;color:var(--muted);padding:4px 0;pointer-events:none}.frog-tap{width:130px;flex:0 0 130px}.toad-aside .frog-tap img{width:100%;height:auto}.cat-tap{width:270px;max-width:100%}.cat-tap .closing-cat{width:100%;height:auto}.wizard.idle-visible{animation:wizard-idle 6s ease-in-out infinite;transform-origin:50% 82%;will-change:transform}.is-casting .wizard.idle-visible{animation:wizard-wand 1.3s ease-in-out infinite}.frog-tap.is-playing img{animation:frog-hop 1s ease-in-out both}.cat-tap.is-playing img{animation:cat-wand 1s ease-in-out both}.cat-sparkles{position:absolute;inset:0;overflow:visible;pointer-events:none}.cat-sparkles i{position:absolute;left:29%;top:30%;font:25px/1 var(--serif);color:var(--gold);font-style:normal;opacity:0}.cat-sparkles i:nth-child(1){--dx:-60px;--dy:-65px;--rot:30deg}.cat-sparkles i:nth-child(2){--dx:5px;--dy:-95px;--rot:-35deg}.cat-sparkles i:nth-child(3){--dx:70px;--dy:-60px;--rot:45deg}.cat-sparkles i:nth-child(4){--dx:125px;--dy:0px;--rot:-20deg}.cat-sparkles i:nth-child(5){--dx:75px;--dy:65px;--rot:40deg}.cat-sparkles i:nth-child(6){--dx:-45px;--dy:25px;--rot:-30deg}.cat-tap.is-playing .cat-sparkles i{animation:cat-magic 1s ease-out both;animation-delay:.12s}.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}
@keyframes wizard-idle{0%,100%{transform:rotate(-3deg) translateY(0)}50%{transform:rotate(-1.5deg) translateY(-5px)}}@keyframes frog-hop{0%,100%{transform:translateY(0) scale(1)}12%{transform:scale(1.06,.92)}40%{transform:translateY(-25px) rotate(-5deg)}62%{transform:translateY(0) scale(1.06,.94)}78%{transform:translateY(-7px) rotate(2deg)}}@keyframes cat-wand{0%,100%{transform:rotate(0)}28%{transform:rotate(-7deg) translateY(-3px)}48%{transform:rotate(5deg)}72%{transform:rotate(-2deg)}}@keyframes cat-magic{0%{opacity:0;transform:translate(0,0) scale(.3)}20%{opacity:1}100%{opacity:0;transform:translate(var(--dx),var(--dy)) rotate(var(--rot)) scale(.7)}}
@media(max-width:1000px){.cat-tap{width:240px}}@media(max-width:700px){.frog-tap{width:115px;flex-basis:115px}.character-hint{font-size:11px;white-space:normal;line-height:1.6}.cat-tap{width:220px}.cat-scene{padding-top:10px}.cat-sparkles i{font-size:23px}}
@media(prefers-reduced-motion:reduce){.wizard.idle-visible,.frog-tap.is-playing img,.cat-tap.is-playing img,.cat-tap.is-playing .cat-sparkles i{animation:none!important}.wizard.idle-visible{will-change:auto}.character-tap.is-playing{outline:2px solid var(--gold);outline-offset:3px}.cat-tap.is-playing .cat-sparkles i:nth-child(2){opacity:1;transform:translateY(-20px)}}
