@font-face{font-family:Berkshire Swash;src:url(/assets/fonts/berkshire-swash.ttf) format("truetype");font-display:swap}:root{font-family:ui-rounded,Arial Rounded MT Bold,Trebuchet MS,system-ui,sans-serif;color-scheme:light;background:#dff3ff;font-synthesis:none}*{box-sizing:border-box}html,body,app-root{width:100%;min-height:100%;margin:0}html{scroll-behavior:smooth}body{overflow-x:hidden}body.experience-open{position:fixed;inset:0;width:100%;height:100dvh;overflow:hidden;overscroll-behavior:none}body{background:radial-gradient(circle at 12% 18%,rgba(255,255,255,.8) 0 5%,transparent 5.2%),radial-gradient(circle at 87% 22%,rgba(255,255,255,.65) 0 7%,transparent 7.2%),linear-gradient(160deg,#d9f4ff,#efe6ff,#ffe7ec)}button{font:inherit;-webkit-tap-highlight-color:transparent}button:focus-visible{outline:5px solid #ffcb3f;outline-offset:4px}.icon-button{display:grid;width:64px;height:64px;min-width:56px;min-height:56px;place-items:center;padding:0;border:5px solid #fff8d5;border-radius:22px;background:#fffbf4eb;color:#705287;box-shadow:inset 0 0 0 2px #ffd36973,0 7px #663a2642;font-size:2rem;line-height:1;cursor:pointer}.icon-button:active{box-shadow:inset 0 0 0 2px #ffd36973,0 3px #663a2642;transform:translateY(4px)}.icon-button svg{width:58%;height:58%;fill:none;stroke:currentColor;stroke-width:2.4;stroke-linecap:round;stroke-linejoin:round}@media(max-width:560px){.icon-button{width:58px;height:58px;border-radius:19px;font-size:1.65rem}}.fairy-screen{--top: clamp(84px, 22vh, 168px);position:relative;display:flex;width:100%;height:100%;min-height:0;flex-direction:column;overflow:hidden;padding:0 max(14px,env(safe-area-inset-right)) max(10px,env(safe-area-inset-bottom)) max(14px,env(safe-area-inset-left));background:radial-gradient(ellipse at 50% 60%,rgba(255,240,214,.2),transparent 60%),#b98fc6 url(/assets/scene/puzzle-background.webp) center / cover no-repeat;color:#4e3266}.fairy-top{position:relative;z-index:2;display:grid;width:min(1180px,100%);height:var(--top);flex:0 0 auto;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:center;align-self:center;padding-top:max(8px,env(safe-area-inset-top))}.fairy-top>.icon-button{z-index:3;align-self:start;justify-self:start}.fairy-top app-fairy-title{z-index:2;grid-column:2;height:calc(var(--top) * .82)}.fairy-hero{position:absolute;z-index:1;bottom:0;height:calc(var(--top) * 1.02);object-fit:contain;filter:drop-shadow(0 8px 8px rgba(64,34,82,.3));pointer-events:none;transform:translateY(var(--hands, 7%))}.fairy-top .hero-left{right:calc(50% + var(--top) * 1.22);--hands: 6%}.fairy-top .hero-right{left:calc(50% + var(--top) * 1.24)}.fairy-panel{position:relative;z-index:1;min-height:0;border:6px solid transparent;border-radius:34px;background:linear-gradient(180deg,#fffaeef7,#f6e9cdf7) padding-box,linear-gradient(180deg,#fff2b8,#e9b650 35%,#b8792a 70%,#f4cf74) border-box;box-shadow:inset 0 0 0 3px #ffffffb3,0 12px 26px #381a5252}.fairy-scroll{overflow-y:auto;overscroll-behavior:contain;scrollbar-color:#b48be0 transparent;scrollbar-width:thin}.fairy-pill{display:inline-flex;min-height:52px;align-items:center;justify-content:center;gap:10px;padding:0 26px;border:4px solid #ffd973;border-radius:30px;background:linear-gradient(160deg,#9a62d8,#6438b0);color:#fff;box-shadow:inset 0 0 0 2px #ffffff40,0 6px #4c287e,0 10px 18px #381a524d;font-size:1.15rem;font-weight:900;cursor:pointer}.fairy-pill:active{box-shadow:inset 0 0 0 2px #ffffff40,0 2px #4c287e;transform:translateY(4px)}.fairy-pill svg{width:1.1em;height:1.1em;fill:none;stroke:currentColor;stroke-width:3;stroke-linecap:round;stroke-linejoin:round}@media(max-height:540px)and (orientation:landscape){.fairy-screen{--top: clamp(70px, 21vh, 92px)}.fairy-top .icon-button{width:44px;height:44px;min-width:44px;min-height:44px;border-width:3px;border-radius:14px;box-shadow:inset 0 0 0 2px #ffd36973,0 4px #663a2642}.fairy-panel{border-width:4px;border-radius:24px}.fairy-pill{min-height:40px;padding:0 18px;border-width:3px;font-size:.95rem}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;animation-duration:1ms!important;animation-iteration-count:1!important;transition-duration:1ms!important}}
