@font-face{font-family:IsYun;src:url(https://cdn.jsdelivr.net/gh/projectnoonnu/noonfonts_2202-2@1.0/LeeSeoyun.woff)format("woff");font-weight:400;font-display:swap}:root{--ink:#2b2622;--paper:#fff7ea;--night:#1f1b2e;--chalk:#f4ecd8;--pink:#ff9eb5;--yellow:#ffd66b;--mint:#9ee6c9;--sky:#9fd3ff;--lavender:#c8b6ff;--red:#e2524a;--wobbly:255px 15px 225px 15px / 15px 225px 15px 255px;--wobbly-2:15px 255px 15px 225px / 225px 15px 255px 15px;color:var(--ink);background:var(--paper);-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent;font-family:IsYun,Comic Sans MS,Apple SD Gothic Neo,Malgun Gothic,sans-serif;line-height:1.4}*,:before,:after{box-sizing:border-box}body{background:var(--paper);min-width:320px;margin:0;overflow-x:hidden}h1,p{margin:0}button{font:inherit;color:inherit}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.2s!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}.app{background:var(--paper);min-height:100dvh;transition:background .6s}.app--dark{background:var(--night)}.screen{min-height:100dvh;padding:24px 16px calc(24px + env(safe-area-inset-bottom));background:var(--paper);flex-direction:column;justify-content:center;align-items:center;gap:clamp(12px,2.5dvh,24px);animation:.7s ease-out both fade-in;display:flex;position:relative;overflow:hidden}.screen>:not(.doodles):not(.light-flood):not(.bunting){z-index:1;position:relative}.paper{border:3px solid var(--ink);border-radius:var(--wobbly);box-shadow:5px 6px 0 var(--ink);background:#fff}.btn{border:3px solid var(--ink);border-radius:var(--wobbly);min-height:52px;box-shadow:3px 4px 0 var(--ink);cursor:pointer;touch-action:manipulation;background:#fff;padding:.35em 1.4em;font-size:1.45rem;font-weight:700;transition:transform .15s,box-shadow .15s}.btn:hover:not(:disabled){box-shadow:4px 6px 0 var(--ink);transform:translate(-1px,-2px)rotate(-1.5deg)}.btn:active:not(:disabled){box-shadow:1px 1px 0 var(--ink);transform:translate(2px,3px)}.btn:focus-visible,.door__knob:focus-visible{outline:3px dashed var(--pink);outline-offset:5px}.btn:disabled{opacity:.45;cursor:default}.btn--yes{background:var(--yellow)}.btn--no{border-radius:var(--wobbly-2);background:#fff}.btn--blow{background:var(--pink);padding:.35em 1.6em;font-size:1.55rem}.btn--small{min-height:44px;box-shadow:2px 3px 0 var(--ink);padding:.2em 1em;font-size:1.15rem}.btn--icon{min-width:44px;padding:.2em .5em}.doodles{pointer-events:none;color:var(--ink);z-index:0;position:absolute;inset:0}.doodles--chalk{color:#f4ecd873}.doodle{transform:rotate(var(--r));animation:6s ease-in-out infinite float;position:absolute}.bunting{pointer-events:none;z-index:0;width:100%;height:clamp(56px,10dvh,96px);position:absolute;top:0;left:0}.question__card{text-align:center;width:min(100%,440px);padding:28px 22px 20px;transform:rotate(-1deg)}.question__text{word-break:keep-all;font-size:clamp(1.9rem,8vw,2.6rem);font-weight:700;line-height:1.25}.question__buttons{justify-content:center;gap:16px;margin-top:26px;display:flex}.question__buttons .btn{min-width:110px}.question__buttons--swap{flex-direction:row-reverse}.question__buttons--swap .btn--yes{background:#fff}.question__buttons--swap .btn--no{background:var(--yellow)}.question__no{color:#d2476b;word-break:keep-all;min-height:2em;margin-top:16px;font-size:1.35rem;font-weight:700}.secret-room{background:var(--night);color:var(--chalk)}.secret-room__text{text-align:center;word-break:keep-all;transition:opacity .6s}.secret-room__text h1{font-size:clamp(1.7rem,7vw,2.4rem)}.secret-room__text p{opacity:.85;margin-top:6px;font-size:clamp(1.15rem,4.5vw,1.4rem)}.secret-room--opening .secret-room__text{opacity:0}.door{aspect-ratio:200/320;perspective:1100px;width:min(52vw,240px,34dvh);margin-top:12px;position:relative}.door__light{background:radial-gradient(circle at 50% 55%, #fffdf2 0%, var(--yellow) 75%);border-radius:6px;transition:box-shadow 1.2s;position:absolute;inset:2px}.door--open .door__light{box-shadow:0 0 80px 40px #ffd66bb3}.door__panel{transform-origin:100%;cursor:pointer;transition:transform 1.3s cubic-bezier(.55,0,.25,1);position:absolute;inset:0}.door--open .door__panel{cursor:default;transform:rotateY(105deg)}.door__art{width:100%;height:100%;display:block}.door__knob{aspect-ratio:1;border:3.5px solid var(--ink);background:var(--yellow);cursor:pointer;border-radius:42% 58% 47% 53%/55% 43% 57% 45%;width:max(44px,18%);padding:0;transition:transform .2s;position:absolute;top:49%;left:7%;transform:rotate(-6deg)}.door__knob:hover:not(:disabled){transform:rotate(20deg)scale(1.08)}.door__knob:disabled{cursor:default}.door__knob-ring{border:3px dashed var(--yellow);border-radius:50%;animation:1.6s ease-in-out infinite pulse;position:absolute;inset:-10px}.door__knob-hint{white-space:nowrap;color:var(--yellow);text-shadow:2px 2px 0 var(--ink);pointer-events:none;font-size:1.3rem;font-weight:700;animation:1.2s ease-in-out infinite bob;position:absolute;top:50%;right:calc(100% + 12px);transform:rotate(-8deg)}.light-flood{z-index:10;background:radial-gradient(circle at 50% 55%, #fffdf2, var(--paper));opacity:0;pointer-events:none;position:fixed;inset:0}.secret-room--opening .light-flood{animation:.9s ease-in 1.25s forwards flood}.scene{justify-content:flex-start;padding-top:clamp(64px,11dvh,104px)}.scene__header{text-align:center;word-break:keep-all}.scene__title{font-size:clamp(2rem,8vw,2.8rem)}.scene__guide{min-height:1.5em;font-size:clamp(1.2rem,4.8vw,1.5rem);font-weight:700}.cake{width:100%;height:auto;display:block;overflow:visible}.scene__cake,.celebration__cake{mix-blend-mode:multiply}.scene__cake{width:min(84vw,400px,36dvh);animation:.9s cubic-bezier(.3,1.4,.5,1) both cake-in}.scene__cake--done{animation:.5s ease-in-out 3 cake-cheer}.flame{transform-box:fill-box;transform-origin:50% 100%;transition:transform .35s ease-in,opacity .35s ease-in;animation:.9s ease-in-out infinite alternate flicker}.flame--out{opacity:0;animation:none;transform:scale(.1,.05)}.smoke{stroke-dasharray:200;animation:1.6s ease-out forwards smoke}.scene__controls{flex-direction:column;align-items:center;gap:12px;width:min(100%,420px);display:flex}.blow{text-align:center;flex-direction:column;align-items:center;gap:10px;width:100%;display:flex}.blow__row{flex-wrap:wrap;justify-content:center;gap:8px;display:flex}.blow__info{word-break:keep-all;padding:14px 16px;font-size:1.15rem}.blow__info .btn{margin-top:10px}.blow__status{word-break:keep-all;font-size:1.15rem}.meter{border:2.5px solid var(--ink);background:#fff;border-radius:10px 6px 12px 7px;width:180px;height:14px;margin:6px auto 0;overflow:hidden}.meter__bar{background:var(--mint);transform-origin:0;height:100%;transition:transform 80ms linear}.music{justify-content:center;gap:8px;display:flex}.celebration{padding-top:clamp(64px,11dvh,104px)}.celebration__text{text-align:center;word-break:keep-all}.celebration__title{font-size:clamp(1.9rem,8vw,3.1rem);line-height:1.15;animation:.8s cubic-bezier(.3,1.6,.5,1) both title-bounce}.celebration__message{margin-top:10px;font-size:clamp(1.3rem,5.2vw,1.8rem);font-weight:700;animation:.8s ease-out .5s both fade-in}.celebration__message span{background:linear-gradient(transparent 55%, var(--yellow) 55%, var(--yellow) 90%, transparent 90%);-webkit-box-decoration-break:clone;box-decoration-break:clone;padding:0 6px}.celebration__sub{margin-top:6px;font-size:clamp(1.15rem,4.5vw,1.4rem);animation:.8s ease-out .9s both fade-in}.celebration__cake{width:min(64vw,300px,30dvh);animation:.8s ease-out .3s both fade-in}.celebration__buttons{flex-wrap:wrap;justify-content:center;align-items:center;gap:10px;animation:.8s ease-out 1.2s both fade-in;display:flex}@keyframes fade-in{0%{opacity:0;transform:translateY(8px)}}.pop-in{animation:.45s cubic-bezier(.3,1.5,.5,1) both pop-in}@keyframes pop-in{0%{opacity:0;transform:scale(.85)rotate(-2deg)}}.shake{animation:.45s ease-in-out shake}@keyframes shake{20%,60%{transform:translate(-6px)rotate(-1deg)}40%,80%{transform:translate(6px)rotate(1deg)}}.wiggle{animation:.5s ease-in-out wiggle}@keyframes wiggle{25%{transform:rotateY(8deg)}50%{transform:rotateY(3deg)}75%{transform:rotateY(6deg)}}@keyframes float{50%{transform:rotate(var(--r)) translateY(-6px)}}@keyframes pulse{50%{opacity:.4;transform:scale(1.15)}}@keyframes bob{50%{transform:rotate(-8deg)translate(3px,-3px)}}@keyframes flood{to{opacity:1}}@keyframes flicker{0%{transform:scale(1)rotate(-3deg)}50%{transform:scale(.92,1.08)rotate(2deg)}to{transform:scale(1.05,.95)rotate(-1deg)}}@keyframes smoke{0%{stroke-dashoffset:200px;opacity:.9}to{stroke-dashoffset:0;opacity:0;transform:translateY(-80px)}}@keyframes cake-in{0%{opacity:0;transform:translateY(30px)scale(.9)}}@keyframes cake-cheer{50%{transform:translateY(-10px)rotate(-1.5deg)}}@keyframes title-bounce{0%{opacity:0;transform:scale(.6)rotate(-4deg)}}@media (width<=480px){.btn{font-size:1.3rem}.btn--small{padding:.2em .8em;font-size:1.05rem}.question__buttons .btn{min-width:96px}}@media (height<=700px){.scene__cake{width:min(84vw,400px,32dvh)}.celebration__cake{width:min(64vw,300px,24dvh)}}@media (height<=560px){.screen{gap:8px}.scene,.celebration{padding-top:48px}}
