:root{color:#392f35;font-synthesis:none;--pink:#f7b6c8;--coral:#ed789b;--cream:#fff3cd;--mint:#bfe6d3;--ink:#392f35;--white:#fffdfd;background:#fff9fb;font-family:Nunito,Segoe UI,Arial,sans-serif}*{box-sizing:border-box}html,body,#root{min-height:100%;margin:0}body{min-width:320px;overflow-x:hidden}button{font:inherit;color:inherit}button:focus-visible,a:focus-visible{outline-offset:4px;outline:4px solid #6f4a9e}.app{background:radial-gradient(circle at 15% 15%,#fff 0 6%,#0000 7%),linear-gradient(145deg,#fff9fb,#fff1f5);min-height:100vh;transition:background .6s;position:relative;overflow:hidden}.scene-shell{z-index:2;min-height:100vh;position:relative}.scene{place-items:center;width:min(1120px,100%);min-height:100vh;margin:auto;padding:72px 20px 92px;animation:.65s both scene-in;display:grid}.scene-heading{text-align:center;align-self:end}.scene-heading h2{margin:.2rem 0}h1,h2,p{overflow-wrap:break-word}h2{margin:.4em 0;font-family:Comic Sans MS,Segoe Print,cursive;font-size:clamp(2.2rem,6vw,4rem);line-height:.95}.eyebrow{letter-spacing:.15em;color:#b94e70;font:700 .75rem Courier New,monospace}.card-shadow{box-shadow:9px 10px #392f35}.primary-btn,.secondary-btn{border:3px solid var(--ink);cursor:pointer;border-radius:14px;padding:14px 22px;font-weight:800;transition:transform .18s,box-shadow .18s}.primary-btn{background:var(--pink);box-shadow:4px 4px 0 var(--ink)}.secondary-btn{background:var(--white);box-shadow:4px 4px 0 var(--ink)}.primary-btn:hover,.secondary-btn:hover{box-shadow:7px 7px 0 var(--ink);transform:translate(-2px,-2px)}.text-btn{text-underline-offset:4px;cursor:pointer;background:0 0;border:0;padding:10px;font-weight:700;text-decoration:underline}.skip-link{z-index:99;background:#fff;border:2px solid;padding:12px;position:fixed;top:-60px;left:20px}.skip-link:focus{top:20px}.landing{align-content:center}.terminal{border:4px solid var(--ink);background:#fff;border-radius:18px;width:min(720px,100%);position:relative;overflow:hidden}.terminal-bar{border-bottom:3px solid var(--ink);background:var(--pink);align-items:center;gap:8px;height:48px;padding:0 15px;font:500 .75rem DM Mono;display:flex}.terminal-bar i{background:#fff3cd;border:2px solid;border-radius:50%;width:12px;height:12px}.terminal-bar i:nth-child(2){background:#bfe6d3}.terminal-bar i:nth-child(3){background:#f08ca8}.terminal-bar span{margin-left:auto}.terminal-body{padding:clamp(25px,6vw,60px)}.terminal h1{margin:0 0 28px;font:500 clamp(1.65rem,5vw,3.3rem) DM Mono}.cursor{color:#ed789b;animation:.8s step-end infinite blink}.terminal-copy{min-height:150px;font:500 clamp(.8rem,2.5vw,1rem)/1.65 DM Mono}.terminal-copy p{opacity:0;animation:.45s forwards type-in;animation-delay:var(--delay)}.launch-btn{width:100%;margin-top:16px;font-size:1.1rem}.pixel-bow{color:#ed789b;margin:-60px 0 0 min(650px,75vw);font:700 5rem Gaegu;position:absolute;transform:rotate(9deg)}.tiny-caption{text-align:center;margin-top:35px;font-family:Gaegu;font-size:1.25rem}.patch-window{background:#fff;border:3px solid;border-radius:24px;width:min(680px,100%);padding:clamp(25px,6vw,55px);position:relative}.sticker{text-align:center;background:#fff3cd;border:3px solid;border-radius:50%;padding:14px;font:700 .65rem DM Mono;position:absolute;top:-28px;right:18px;transform:rotate(8deg)}.patch-window h2{font-size:clamp(2rem,6vw,3.5rem)}.progress-shell{background:#fff;border:3px solid;border-radius:8px;height:26px;padding:3px}.progress-fill{background:repeating-linear-gradient(45deg,#f08ca8 0 10px,#f7b6c8 10px 20px);border-radius:3px;height:100%;transition:width .5s}.progress-meta{justify-content:space-between;margin:8px 0 24px;font:500 .72rem DM Mono;display:flex}.status-list{height:250px;overflow:hidden}.status-list p{border-bottom:1px dashed #ecc;margin:0;padding:7px;font-family:DM Mono;font-size:clamp(.72rem,2.7vw,.9rem)}.status-list span{color:#ed789b;margin-right:10px}.status-list .current{background:#fff4f7;font-weight:700;animation:.35s status-in}.adventure{grid-template-rows:auto minmax(310px,1fr) auto auto;gap:10px;padding-bottom:35px;display:grid}.game-world{background:linear-gradient(#eefcff 0 66%,#daf2df 66%);border:3px solid;border-radius:30px;align-self:stretch;width:min(900px,100%);min-height:310px;position:relative;overflow:hidden;box-shadow:8px 8px #bfe6d3}.girl-step{z-index:3;filter:drop-shadow(0 5px #392f351f);width:145px;height:auto;transition:left .7s cubic-bezier(.2,.8,.2,1);position:absolute;bottom:35px;left:2%}.girl-step.step-1{left:22%}.girl-step.step-2{left:44%}.girl-step.step-3{left:65%}.flowers-row{justify-content:space-around;align-items:end;display:flex;position:absolute;bottom:38px;left:32%;right:4%}.flower-button{cursor:pointer;z-index:2;background:0 0;border:0;transition:transform .3s;position:relative}.flower-button .flower{width:70px}.flower-button span{background:#fff;border:2px solid;border-radius:10px;padding:3px;font:700 .65rem DM Mono;display:block}.flower-button:hover{transform:translateY(-8px)}.flower-button.collected{pointer-events:none;animation:.45s forwards flower-pop}.grass{background:repeating-linear-gradient(80deg,#87ca9e 0 8px,#a9dbae 9px 16px);width:100%;height:40px;position:absolute;bottom:0}.cloud{background:#fff;border:3px solid;border-radius:30px;width:100px;height:30px;position:absolute;top:30px}.cloud:before{content:"";background:#fff;border:3px solid;border-bottom:0;border-radius:50%;width:38px;height:38px;position:absolute;top:-25px;left:30px}.cloud-one{animation:8s ease-in-out infinite cloud;left:10%}.cloud-two{animation:10s ease-in-out infinite reverse cloud;top:85px;right:12%;transform:scale(.7)}.flower-message{text-align:center;min-height:32px;font-family:Gaegu;font-size:clamp(1.2rem,4vw,1.7rem);font-weight:700}.heart-pop{color:#ed789b;animation:.7s infinite heart-pop}.quest-dots{gap:8px;display:flex}.quest-dots i{border:2px solid;border-radius:50%;width:13px;height:13px}.quest-dots i.done{background:#f08ca8}.desktop-hint{display:none}.apology-layout{grid-template-columns:minmax(180px,330px) minmax(0,650px);align-items:center;gap:25px;display:grid}.character-stage{position:relative}.character-stage .pixel-girl{filter:drop-shadow(8px 8px #f9d6df);width:100%}.sparkle{color:#ed789b;font-size:2rem;animation:1.4s infinite sparkle;position:absolute}.s1{top:15%;left:10%}.s2{animation-delay:.5s;top:45%;right:5%}.paper-card{clip-path:polygon(0 2%,3% 0,6% 2%,9% 0,12% 2%,15% 0,18% 2%,21% 0,24% 2%,27% 0,30% 2%,33% 0,36% 2%,39% 0,42% 2%,45% 0,48% 2%,51% 0,54% 2%,57% 0,60% 2%,63% 0,66% 2%,69% 0,72% 2%,75% 0,78% 2%,81% 0,84% 2%,87% 0,90% 2%,93% 0,96% 2%,100% 0,100% 100%,0 100%);background:#fffdf7;border:3px solid;border-radius:25px;padding:clamp(28px,5vw,58px);position:relative}.tape{background:#fff0a9aa;width:90px;height:25px;position:absolute;top:0;left:42%;transform:rotate(-3deg)}.apology-copy>*{opacity:0;animation:.55s forwards line-in;animation-delay:calc(var(--line) * .4s)}.apology-copy h2{font-size:clamp(2rem,5vw,3.5rem)}.apology-copy p{line-height:1.6}.signature{text-align:right;color:#b94e70;margin:18px;font-family:Gaegu;font-size:1.4rem}.paper-card .primary-btn{width:100%}.question-card,.ending-content{text-align:center;background:#fff;border:3px solid;border-radius:30px;width:min(700px,100%);padding:clamp(28px,5vw,56px)}.question-card h2{max-width:580px;margin:.35em auto;font-size:clamp(2.15rem,5vw,3.4rem)}.question-card>p:not(.eyebrow):not(.funny-caption){max-width:470px;margin-inline:auto}.mini-heart,.resting-heart{color:#ed789b;font-size:4rem;animation:1.5s infinite pulse}.choice-buttons{flex-wrap:wrap;justify-content:center;gap:15px;margin-top:24px;display:flex}.funny-caption{color:#b94e70;font-family:Gaegu;font-size:1.4rem}.ending{background:radial-gradient(circle,#fffdf7 0 35%,#ffe3eb 36% 100%);width:100%;padding-block:28px}.ending-content{border:3px solid var(--ink);background:#fffdf7;width:min(640px,100%);padding:clamp(22px,4vw,38px);box-shadow:8px 8px #f7b6c8}.ending-content .bloom{width:clamp(120px,18vw,155px);height:clamp(112px,17vw,145px);margin:0 auto 4px;animation:.9s cubic-bezier(.2,1.5,.5,1) bloom}.ending-content .bouquet{width:100%;height:100%;display:block;overflow:visible}.ending-content h2{max-width:560px;margin:.22em auto;font-size:clamp(2.2rem,5vw,3.45rem);line-height:.95}.ending-content p{max-width:520px;margin:.55em auto}.ending-content .lead{font:700 clamp(1.2rem,3vw,1.55rem) Gaegu}.ending-content strong{color:#b94e70;margin:16px auto;font:700 clamp(1.65rem,4vw,2.35rem) Gaegu;display:block}.ending-content .secondary-btn{margin:14px auto 0;display:block}.resting-heart{font-size:clamp(4rem,9vw,5.5rem);line-height:1}.confetti{pointer-events:none;position:absolute;inset:0}.confetti i{left:calc((var(--i) * 47) % 100 * 1%);background:hsl(calc(var(--i) * 43) 70% 75%);width:10px;height:16px;animation:confetti calc(2.5s + (var(--i) % 4)*.4s) linear infinite;animation-delay:calc(var(--i)*-.13s);position:absolute;top:-20px}.floating-hearts button{z-index:4;color:#f08ca8;font-size:calc(14px + (var(--i) % 3)*5px);left:calc(4% + var(--i)*18%);top:calc(10% + (var(--i) % 3)*30%);opacity:.42;cursor:pointer;animation:float calc(4s + var(--i)*.3s) ease-in-out infinite;background:0 0;border:0;position:fixed}.hug-button{z-index:8;background:#fff3cd;border:2px solid;border-radius:20px;padding:9px 14px;font-weight:800;position:fixed;bottom:18px;right:18px;box-shadow:3px 3px}.toast{z-index:20;color:#fff;text-align:center;background:#392f35;border-radius:15px;width:min(90%,430px);padding:16px 45px 16px 20px;position:fixed;bottom:25px;left:50%;transform:translate(-50%);box-shadow:6px 6px #f7b6c8}.toast button,.overlay-close{color:inherit;cursor:pointer;background:0 0;border:0;font-size:1.8rem;position:absolute;top:5px;right:10px}.hug-overlay{z-index:30;text-align:center;background:#fff9fbea;place-content:center;justify-items:center;padding:20px;animation:.3s scene-in;display:grid;position:fixed;inset:0}.hug-overlay .pixel-girl{width:min(260px,60vw)}.hug-overlay h2{margin:.1em}.overlay-close{color:#392f35;top:20px;right:25px}.secret-heart{z-index:50;pointer-events:none;text-align:center;color:#ed789b;text-shadow:5px 5px #f7b6c8;place-content:center;display:grid;position:fixed;inset:0}.secret-heart span{font-size:25vw;animation:2s both secret}.secret-heart small{background:#fff;border:2px solid;border-radius:12px;padding:8px;font:700 1rem DM Mono}@keyframes scene-in{0%{opacity:0;transform:translateY(15px)}to{opacity:1;transform:none}}@keyframes blink{50%{opacity:0}}@keyframes type-in{0%{opacity:0;transform:translate(-8px)}to{opacity:1;transform:none}}@keyframes status-in{0%{opacity:0;transform:translate(-15px)}}@keyframes flower-pop{50%{opacity:1;transform:scale(1.3)rotate(12deg)}to{opacity:0;transform:translateY(-80px)scale(.2)}}@keyframes heart-pop{50%{transform:scale(1.3)}}@keyframes cloud{50%{transform:translate(25px)}}@keyframes sparkle{50%{opacity:.5;transform:scale(1.5)rotate(45deg)}}@keyframes line-in{to{opacity:1;transform:none}0%{opacity:0;transform:translateY(8px)}}@keyframes pulse{50%{transform:scale(1.12)}}@keyframes bloom{0%{opacity:0;transform:scale(.1)rotate(-15deg)}}@keyframes confetti{to{transform:translateY(110vh)rotate(560deg)}}@keyframes float{50%{transform:translateY(-15px)rotate(8deg)}}@keyframes secret{0%{transform:scale(0)}30%{transform:scale(1.2)}75%{opacity:1}to{opacity:0;transform:scale(.8)}}.game-world{background:linear-gradient(#eafaff 0%,#f8fdff 64%,#dff3e5 64% 100%)}.game-world:after{content:"";pointer-events:none;background:linear-gradient(115deg,#ffffff8c,#0000 35%);position:absolute;inset:0}.cloud{z-index:1;filter:drop-shadow(0 5px #bfe6d359);background:0 0;border:0;border-radius:0;height:auto;position:absolute;overflow:visible}.cloud-one{width:150px;animation:6s ease-in-out infinite cloud-float;top:18px;left:8%}.cloud-two{width:108px;animation:7.5s ease-in-out -2s infinite cloud-float;top:72px;right:10%;transform:none}.hill{z-index:0;background:#c9ebd5;border:3px solid #392f35;border-bottom:0;border-radius:50% 50% 0 0;position:absolute;bottom:34px}.hill-one{width:360px;height:105px;left:-90px}.hill-two{background:#b9e2c8;width:430px;height:90px;right:-100px}.sky-sparkle{z-index:1;color:#f2b9cb;font-size:1.25rem;animation:1.8s ease-in-out infinite sparkle;position:absolute}.sky-sparkle-one{top:42px;left:45%}.sky-sparkle-two{animation-delay:.7s;top:96px;left:61%}.girl-step{transform-origin:bottom;animation:1.3s ease-in-out infinite character-bob}.grass{z-index:4;background:repeating-linear-gradient(78deg,#80cda5 0 8px,#a9e0bc 8px 17px);border-top:3px solid #392f35;height:38px}.hug-overlay{background:radial-gradient(circle,#fffdf8 0 30%,#fff1f5ed 31% 100%)}.hug-overlay .pixel-girl{filter:drop-shadow(0 10px #f9d6df);width:min(245px,58vw)}.hug-overlay .hug-arm-left{transform-origin:76px 145px;animation:1.1s ease-in-out infinite hug-left}.hug-overlay .hug-arm-right{transform-origin:124px 145px;animation:1.1s ease-in-out infinite hug-right}.hug-overlay .hug-heart{transform-origin:100px 160px;animation:1s ease-in-out infinite pulse}.hug-overlay h2{max-width:700px;margin:.15em;font-size:clamp(2rem,5vw,3.4rem);line-height:1}.hug-overlay p{margin:.5em;font-weight:700}@keyframes cloud-float{50%{transform:translate(12px,-7px)}}@keyframes character-bob{50%{transform:translateY(-4px)rotate(-1deg)}}@keyframes hug-left{50%{transform:rotate(-8deg)translate(-3px)}}@keyframes hug-right{50%{transform:rotate(8deg)translate(3px)}}.game-world:before{content:"";z-index:0;pointer-events:none;background:url(/assets/flower-quest/background-hills.svg) bottom/100% 100% no-repeat;height:43%;position:absolute;bottom:36px;left:0;right:0}.hill{display:none}.pixel-girl{object-fit:contain}.pixel-girl-sprite{aspect-ratio:4/5;display:block;overflow:visible}.girl-frame{object-fit:contain;opacity:0;width:100%;height:100%;position:absolute;inset:0}.girl-frame-one{animation:.44s step-end infinite walk-frame-one}.girl-frame-two{animation:.44s step-end infinite walk-frame-two}.flower-button .flower{object-fit:contain;filter:drop-shadow(0 4px #392f351a);height:96px}.character-stage .pixel-girl{object-fit:contain;max-height:470px;margin:auto;display:block}.hug-overlay .pixel-girl{aspect-ratio:1;object-fit:contain}@keyframes walk-frame-one{0%,49%{opacity:1}50%,to{opacity:0}}@keyframes walk-frame-two{0%,49%{opacity:0}50%,to{opacity:1}}.secondary-btn.time-btn{transform:translate(var(--dodge-x,0),var(--dodge-y,0)) rotate(var(--dodge-rotate,0));will-change:transform;transition:transform .2s cubic-bezier(.2,.9,.3,1.25),box-shadow .18s}.secondary-btn.time-btn:hover{transform:translate(var(--dodge-x,0),var(--dodge-y,0)) rotate(var(--dodge-rotate,0));box-shadow:7px 7px 0 var(--ink)}.secondary-btn.time-btn:active{transform:translate(var(--dodge-x,0),calc(var(--dodge-y,0) + 2px)) rotate(var(--dodge-rotate,0));box-shadow:2px 2px 0 var(--ink)}.paper-card{clip-path:none;border-radius:28px;overflow:visible}.paper-card:before{content:"";z-index:0;pointer-events:none;background:repeating-radial-gradient(circle at 10px 0,#fffdf7 0 8px,#0000 9px 20px);height:12px;position:absolute;top:-3px;left:24px;right:24px}.paper-card>*{z-index:1;position:relative}.paper-card .tape{z-index:2}.game-world:before{background-size:100% 100%;height:46%;bottom:0}.grass{display:none}.girl-step.pixel-girl-sprite{aspect-ratio:auto;background:url(/assets/flower-quest/girl-idle.png) bottom/contain no-repeat;width:158px;height:198px}.girl-step.pixel-girl-sprite .girl-frame{width:100%;height:100%;display:block}.paper-card:before{display:none}.paper-card>*{position:static}.paper-card .tape{z-index:2;position:absolute}.game-world:before{display:none}.meadow{z-index:1;filter:drop-shadow(0 -2px #392f3514);width:100%;height:49%;position:absolute;bottom:0;left:0;right:0;overflow:visible}@media (width>=700px){.desktop-hint{display:inline}.terminal-copy{min-height:130px}}@media (width<=699px){.scene{padding:55px 16px 80px}.apology-layout{grid-template-columns:1fr}.character-stage{text-align:center;height:170px}.character-stage .pixel-girl{width:180px}.paper-card{box-shadow:6px 7px}.girl-step{width:105px}.girl-step.pixel-girl-sprite{width:112px;height:140px}.flowers-row{left:24%}.flower-button .flower{width:55px;height:80px}.game-world{min-height:290px}.choice-buttons>*{width:100%}.pixel-bow{display:none}.status-list{height:260px}.card-shadow{box-shadow:6px 7px #392f35}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}.terminal-copy p,.apology-copy>*{opacity:1}.floating-hearts button{animation:none}}
