:root{--cream: #fdf3e7;--peach: #f3d9c0;--terra: #d98b6f;--terra-dk: #c4765a;--ink: #4a3f3a;--ink-soft: #8a7b72;--ocean: #9fcfcf;--glow: #ffce5c;--white: #fff9f1}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif;color:var(--ink);background:var(--cream);-webkit-font-smoothing:antialiased;overscroll-behavior:none}.screen{height:100dvh;width:100%;overflow:hidden;position:relative}.center{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:24px;gap:14px}.gate-screen{display:flex;flex-direction:column;align-items:center;justify-content:flex-start;text-align:center;padding:clamp(40px,12dvh,130px) 24px 24px;--lead-scale: .65;--lead-opacity: .7}.gate-bg{position:absolute;top:0;right:0;bottom:0;left:0;z-index:0;background:url(/art/landing-bg.webp) center / cover no-repeat;transform-origin:center;transform:scale(1);will-change:transform}.gate-content{position:relative;z-index:1;display:flex;flex-direction:column;align-items:center;gap:16px;width:100%;max-width:360px}.gate-content:before{content:"";position:absolute;top:-8%;right:-6%;bottom:-4%;left:-6%;background:radial-gradient(ellipse at 50% 42%,#fff9f161,#fff9f126 55%,#fff9f100 82%);z-index:-1;pointer-events:none}.title-block{display:flex;flex-direction:column;align-items:center}.lead-in{margin:0 0 1px;font-style:italic;font-weight:500;line-height:1.1;color:var(--ink);opacity:var(--lead-opacity);font-size:calc(2.4rem * var(--lead-scale));text-shadow:0 1px 8px rgba(255,250,244,.7)}.gate-screen .title{line-height:1.05;text-shadow:0 1px 10px rgba(255,250,244,.75),0 1px 3px rgba(255,250,244,.9)}.gate-screen .subtitle{color:var(--ink);text-shadow:0 1px 8px rgba(255,250,244,.75)}.gate-screen.intro-armed .gate-bg{transform:scale(var(--bg-zoom-from))}.gate-screen.intro-playing .gate-bg{animation:introBgDrift var(--bg-zoom-dur) cubic-bezier(.2,0,.8,1) both}@keyframes introBgDrift{0%{transform:scale(var(--bg-zoom-from))}to{transform:scale(1)}}.gate-screen.intro-armed .lead-in,.gate-screen.intro-armed .title,.gate-screen.intro-armed .subtitle,.gate-screen.intro-armed .btn{opacity:0}.gate-screen.intro-playing .lead-in{animation:introLead var(--lead-dur) cubic-bezier(.22,1,.36,1) var(--lead-delay) both}@keyframes introLead{0%{opacity:0;transform:translateY(14px)}to{opacity:var(--lead-opacity);transform:translateY(0)}}.gate-screen.intro-playing .title{animation:introTitle var(--title-dur) cubic-bezier(.22,1,.36,1) var(--title-delay) both}@keyframes introTitle{0%{opacity:0;transform:scale(.955)}to{opacity:1;transform:scale(1)}}.gate-screen.intro-playing .subtitle{animation:introSoft var(--btn-dur) ease-out var(--sub-delay) both}.gate-screen.intro-playing .btn{animation:introSoft var(--btn-dur) ease-out both}.gate-screen.intro-playing .btn:nth-child(1){animation-delay:var(--btns-delay)}.gate-screen.intro-playing .btn:nth-child(2){animation-delay:calc(var(--btns-delay) + var(--btn-stagger))}.gate-screen.intro-playing .btn:nth-child(3){animation-delay:calc(var(--btns-delay) + 2 * var(--btn-stagger))}@keyframes introSoft{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.gate-screen.intro-armed .button-stack,.gate-screen.intro-playing .button-stack{pointer-events:none}.skip-hint{position:absolute;left:50%;bottom:calc(18px + env(safe-area-inset-bottom));transform:translate(-50%);z-index:3;margin:0;font-size:.8rem;letter-spacing:.3px;color:var(--ink);opacity:.55;text-shadow:0 1px 6px rgba(255,250,244,.85);pointer-events:none;animation:introSkipHint 1.2s ease-out 1.2s both}@keyframes introSkipHint{0%{opacity:0}to{opacity:.55}}.intro-media-layer{position:absolute;top:0;right:0;bottom:0;left:0;z-index:5;background:#000;animation:fadeIn .4s ease both}.intro-media{width:100%;height:100%;object-fit:cover;display:block}@media (prefers-reduced-motion: reduce){.gate-bg,.gate-screen .lead-in,.gate-screen .title,.gate-screen .subtitle,.gate-screen .btn,.skip-hint,.intro-media-layer{animation:none!important}.gate-bg{transform:scale(1)!important}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.fade-in{animation:fadeIn .6s ease both}.title{font-size:2.4rem;font-weight:600;margin:0;letter-spacing:.5px}.title-sm{font-size:1.6rem;font-weight:600;margin:0}.subtitle{color:var(--ink-soft);margin:0;font-size:1.05rem;line-height:1.5}.hint{color:var(--ink-soft);font-size:.95rem;margin:6px 0 0;text-align:center}.error{color:#b5503f;font-size:.9rem;margin:0}.big-emoji{font-size:3rem;margin:0}.button-stack{display:flex;flex-direction:column;gap:12px;width:100%;max-width:320px;margin-top:8px}.btn{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:none;border-radius:16px;padding:16px 20px;font-size:1.05rem;font-weight:600;color:var(--white);background:var(--terra);cursor:pointer;transition:transform .12s ease,background .2s ease}.btn:active{transform:scale(.97)}.btn:hover{background:var(--terra-dk)}.btn:disabled{opacity:.6;cursor:default}.btn-ghost{background:transparent;color:var(--ink-soft);border:1.5px solid var(--peach)}.btn-ghost:hover{background:var(--peach);color:var(--ink)}.btn-link{background:none;border:none;color:var(--ink-soft);font-size:.95rem;cursor:pointer;padding:8px}.input,.textarea{width:100%;border:1.5px solid var(--peach);border-radius:14px;padding:14px 16px;font-size:1.05rem;font-family:inherit;color:var(--ink);background:var(--white);outline:none}.input:focus,.textarea:focus{border-color:var(--terra)}.textarea{resize:none;line-height:1.5}.code-input{text-align:center;font-size:1.5rem;letter-spacing:.4em;font-variant-numeric:tabular-nums}.island-screen{background:linear-gradient(180deg,#fbe7d6,#cfe5e2)}.island-stage{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:max(100vw,100vh);height:max(100vw,100vh);z-index:2}.sky-group{position:absolute;top:0;right:0;bottom:0;left:0;isolation:isolate}.island-bg-layer{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:max(100vw,100vh);height:max(100vw,100vh)}.ambient{position:absolute;top:0;right:0;bottom:0;left:0;overflow:hidden;pointer-events:none}.amb-cloud,.amb-bird{position:absolute;left:0;height:auto;will-change:transform;-webkit-user-select:none;user-select:none;-webkit-user-drag:none}.amb-cloud{width:var(--cw, 24vw);mix-blend-mode:screen;animation-name:cloudDrift;animation-timing-function:linear;animation-iteration-count:infinite}@keyframes cloudDrift{0%{transform:translate(calc(-1 * var(--cw, 24vw) - 4vw))}to{transform:translate(104vw)}}.amb-bird{width:var(--bw, 7vw);mix-blend-mode:multiply;animation-name:birdCross;animation-timing-function:linear;animation-iteration-count:infinite}@keyframes birdCross{0%{transform:translate3d(106vw,0,0)}35%{transform:translate3d(calc(-1 * var(--bw, 7vw) - 6vw),-7vh,0)}to{transform:translate3d(calc(-1 * var(--bw, 7vw) - 6vw),-7vh,0)}}.petals{position:absolute;top:0;right:0;bottom:0;left:0;z-index:3;overflow:hidden;pointer-events:none}.amb-petal{position:absolute;top:0;height:auto;will-change:transform,opacity;animation-name:petalFall;animation-timing-function:linear;animation-iteration-count:infinite;-webkit-user-select:none;user-select:none;-webkit-user-drag:none}@keyframes petalFall{0%{transform:translate3d(0,-12vh,0) rotate(0);opacity:0}8%{opacity:var(--petal-opacity, .9)}25%{transform:translate3d(var(--sway, 20px),22vh,0) rotate(120deg)}50%{transform:translate3d(0,50vh,0) rotate(210deg)}75%{transform:translate3d(calc(-1 * var(--sway, 20px)),78vh,0) rotate(300deg)}92%{opacity:var(--petal-opacity, .9)}to{transform:translate3d(0,110vh,0) rotate(400deg);opacity:0}}@media (prefers-reduced-motion: reduce){.amb-cloud,.amb-bird{animation:none!important}.petals{display:none}}.island-bg{width:100%;height:100%;display:block;user-select:none;-webkit-user-select:none;-webkit-user-drag:none}.avatar-josh,.avatar-kim{position:absolute;transform:translate(-50%,-100%) scale(var(--s, .14));transform-origin:50% 100%;z-index:2;pointer-events:none}.avatar-josh{--s:.137;width:419px;height:1126px}.avatar-josh .shadow{position:absolute;left:50%;bottom:2px;transform:translate(-50%);width:335px;height:54px;border-radius:50%;filter:blur(2px);background:radial-gradient(ellipse at center,#2819287a,#28192800 70%);z-index:0}.avatar-josh img{position:absolute;left:0}.avatar-josh .lower{top:544px;z-index:1}.avatar-josh .drift,.avatar-josh .sway,.avatar-josh .breath{position:absolute;left:0;top:0;height:570px;transform-origin:50% 100%}.avatar-josh .drift{z-index:2;animation:drift-josh 10s ease-in-out infinite}.avatar-josh .sway{animation:sway-josh 7.1s ease-in-out infinite}.avatar-josh .breath{animation:breath-josh 4.7s ease-in-out infinite}@keyframes drift-josh{0%,to{transform:rotate(-.35deg)}50%{transform:rotate(.35deg)}}@keyframes sway-josh{0%,to{transform:rotate(-.45deg)}50%{transform:rotate(.45deg)}}@keyframes breath-josh{0%,to{transform:scaleY(1)}50%{transform:scaleY(1.021) scaleX(.9948)}}@media (prefers-reduced-motion:reduce){.avatar-josh .drift,.avatar-josh .sway,.avatar-josh .breath{animation:none}}.avatar-kim{--s:.141;width:390px;height:1112px}.avatar-kim .shadow{position:absolute;left:50%;bottom:2px;transform:translate(-50%);width:312px;height:50px;border-radius:50%;filter:blur(2px);background:radial-gradient(ellipse at center,#2819287a,#28192800 70%);z-index:0}.avatar-kim img{position:absolute;left:0}.avatar-kim .lower{top:537px;z-index:1}.avatar-kim .drift,.avatar-kim .sway,.avatar-kim .breath{position:absolute;left:0;top:0;height:563px;transform-origin:50% 100%}.avatar-kim .drift{z-index:2;animation:drift-kim 10s ease-in-out infinite}.avatar-kim .sway{animation:sway-kim 6.5s ease-in-out infinite}.avatar-kim .breath{animation:breath-kim 3.7s ease-in-out infinite}@keyframes drift-kim{0%,to{transform:rotate(-.35deg)}50%{transform:rotate(.35deg)}}@keyframes sway-kim{0%,to{transform:rotate(-.55deg)}50%{transform:rotate(.55deg)}}@keyframes breath-kim{0%,to{transform:scaleY(1)}50%{transform:scaleY(1.018) scaleX(.9955)}}@media (prefers-reduced-motion:reduce){.avatar-kim .drift,.avatar-kim .sway,.avatar-kim .breath{animation:none}}.dog{position:absolute;transform:translate(-50%,-50%);pointer-events:none;line-height:0}.dog-figure{position:relative;width:100%;transform-origin:50% 100%;animation:dogBreathe 6.5s ease-in-out infinite}@keyframes dogBreathe{0%,to{transform:translateY(0)}50%{transform:translateY(-1.5px)}}.dog-img{width:100%;height:auto;transform:scaleX(var(--dog-flip, 1));-webkit-user-select:none;user-select:none;-webkit-user-drag:none;transition:opacity var(--night-fade, 1.5s) ease}.dog-awake{position:relative;opacity:calc(1 - var(--night-on, 0))}.dog-asleep{position:absolute;left:0;bottom:0;opacity:var(--night-on, 0)}.dog-shadow{position:absolute;left:50%;bottom:0;transform:translate(-50%);width:78%;height:15%;border-radius:50%;filter:blur(2px);background:radial-gradient(ellipse at center,#2819286b,#28192800 70%)}@media (prefers-reduced-motion: reduce){.dog-figure{animation:none}.dog-img{transition:none}}.kid{position:absolute;transform:translate(-50%,-50%);pointer-events:none;line-height:0}.kid-figure{position:relative;width:100%;transform-origin:50% 100%;animation:kidBob 5.8s ease-in-out infinite;animation-delay:var(--kid-delay, 0s)}@keyframes kidBob{0%,to{transform:translateY(0)}50%{transform:translateY(-1.5px)}}.kid-img{width:100%;height:auto;transform:scaleX(var(--kid-flip, 1));-webkit-user-select:none;user-select:none;-webkit-user-drag:none;opacity:calc(1 - var(--night-on, 0));transition:opacity var(--night-fade, 1.5s) ease}.kid-shadow{position:absolute;left:50%;bottom:0;transform:translate(-50%);width:70%;height:6%;border-radius:50%;filter:blur(2px);background:radial-gradient(ellipse at center,#2819286b,#28192800 70%);opacity:calc(1 - var(--night-on, 0));transition:opacity var(--night-fade, 1.5s) ease}@media (prefers-reduced-motion: reduce){.kid-figure{animation:none}.kid-img,.kid-shadow{transition:none}}.presence-line{position:absolute;top:calc(14px + env(safe-area-inset-top));left:50%;transform:translate(-50%);z-index:4;color:var(--ink);background:#fff9f1cc;padding:8px 16px;border-radius:999px;font-size:.9rem;white-space:nowrap;box-shadow:0 4px 14px #00000014;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.owl-knock-card{position:absolute;left:50%;bottom:calc(18px + env(safe-area-inset-bottom));transform:translate(-50%);z-index:5;width:min(92%,360px);background:#fff9f1eb;border-radius:18px;padding:14px 16px;box-shadow:0 6px 20px #0000001f;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);text-align:center;animation:owl-knock-in .4s ease both}@keyframes owl-knock-in{0%{opacity:0;transform:translate(-50%) translateY(8px)}to{opacity:1;transform:translate(-50%) translateY(0)}}.owl-knock-text{margin:0;font-size:.95rem;line-height:1.45;color:var(--ink)}.owl-knock-steps{display:block;margin-top:4px;font-size:.85rem;color:var(--ink-soft)}.owl-knock-actions{display:flex;gap:10px;justify-content:center;align-items:center;margin-top:10px}.owl-knock-yes{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:none;border-radius:999px;min-height:44px;padding:10px 18px;font-size:.95rem;font-weight:600;font-family:inherit;color:var(--white);background:var(--terra);cursor:pointer}.owl-knock-yes:hover{background:var(--terra-dk)}.owl-knock-yes:disabled{opacity:.6;cursor:default}.owl-knock-dismiss{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:none;border:none;min-height:44px;padding:10px 14px;font-family:inherit;color:var(--ink-soft);font-size:.9rem;cursor:pointer}@media (prefers-reduced-motion: reduce){.owl-knock-card{animation:none}}.owl-hub{position:absolute;transform:translate(-50%,-50%);padding:0;border:none;background:none;cursor:pointer;line-height:0;z-index:3}.owl-hub:active{transform:translate(-50%,-50%) scale(.95)}.owl-hub.is-flipped{transform:translate(-50%,-50%) scaleX(-1)}.owl-hub.is-flipped:active{transform:translate(-50%,-50%) scaleX(-1) scale(.95)}.owl-art{width:100%;height:auto;display:block;filter:drop-shadow(0 6px 8px rgba(0,0,0,.25))}.owl-art.owl-waking{animation:owlWake var(--owl-wake-dur, .4s) ease-out both}@keyframes owlWake{0%{transform:scale(1)}45%{transform:scale(var(--owl-wake-scale, 1.12))}to{transform:scale(1)}}.owl-art.owl-awake{animation:owlIdle var(--owl-idle-dur, 6s) ease-in-out infinite}.owl-art.owl-awake-still{animation:none}@keyframes owlIdle{0%,to{transform:translateY(0) rotate(0) scaleY(1)}8%{transform:translateY(calc(-1 * var(--owl-bob, 3.5px)))}16%{transform:translateY(0)}24%{transform:translateY(calc(-1 * var(--owl-bob, 3.5px)))}32%{transform:translateY(0)}40%{transform:translateY(0) rotate(-4deg) scaleY(.95)}44%{transform:translateY(-2px) rotate(3deg) scaleY(1.02)}48%{transform:translateY(0) rotate(0) scaleY(1)}62%{transform:translateY(calc(-1 * var(--owl-bob, 3.5px)))}74%{transform:translateY(0)}86%{transform:translateY(calc(-.7 * var(--owl-bob, 3.5px)))}}.owl-art.owl-fly-off{animation:owlFlyOff var(--owl-fly-dur, 1.2s) cubic-bezier(.4,0,1,1) forwards}@keyframes owlFlyOff{0%{transform:translateY(0) rotate(0);opacity:1}to{transform:translateY(-80vh) rotate(-8deg);opacity:0}}.owl-art.owl-fly-back{animation:owlFlyBack var(--owl-back-dur, .5s) ease-out both}@keyframes owlFlyBack{0%{transform:translateY(-10px);opacity:0}to{transform:translateY(0);opacity:1}}@media (prefers-reduced-motion: reduce){.owl-art.owl-waking,.owl-art.owl-awake,.owl-art.owl-fly-off,.owl-art.owl-fly-back{animation:none!important;transform:none;opacity:1}}.owl-halo{position:absolute;top:-22%;right:-22%;bottom:-22%;left:-22%;border-radius:50%;background:radial-gradient(circle,#ffce5cb3,#ffce5c00 68%);z-index:-1;pointer-events:none;animation:halo 2s ease-in-out infinite}@keyframes halo{0%,to{opacity:.45;transform:scale(.9)}50%{opacity:1;transform:scale(1.12)}}.owl-glow{position:absolute;top:-22%;right:-22%;bottom:-22%;left:-22%;border-radius:50%;background:radial-gradient(circle,#ffffffc4,#fff0 68%);z-index:-1;pointer-events:none;animation:halo 2s ease-in-out infinite}@media (prefers-reduced-motion: reduce){.owl-glow{animation:none}}.path-hotspot{position:absolute;transform:translate(-50%,-50%);width:18%;height:16%;min-width:54px;min-height:54px;border:none;background:none;cursor:pointer;display:flex;align-items:center;justify-content:center;z-index:3}.path-hotspot:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;border-radius:50%;background:radial-gradient(circle,#ffffff8c,#fff0 70%);animation:halo 2.6s ease-in-out infinite}.path-arrow{position:relative;font-size:1.7rem;font-weight:700;color:#fff;text-shadow:0 1px 5px rgba(0,0,0,.45);animation:floatArrow 1.8s ease-in-out infinite}@keyframes floatArrow{0%,to{transform:translate(0);opacity:.8}50%{transform:translate(4px);opacity:1}}.path-flip .path-arrow{animation-name:floatArrowBack}@keyframes floatArrowBack{0%,to{transform:translate(0);opacity:.8}50%{transform:translate(-4px);opacity:1}}.panel-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#281e1959;display:flex;align-items:flex-end;z-index:10;animation:fadeIn .25s ease both}.panel{width:100%;background:var(--white);border-radius:26px 26px 0 0;padding:12px 20px calc(20px + env(safe-area-inset-bottom));max-height:82dvh;display:flex;flex-direction:column;animation:slideUp .3s ease both}@keyframes slideUp{0%{transform:translateY(100%)}to{transform:translateY(0)}}.panel-handle{width:44px;height:5px;border-radius:999px;background:var(--peach);margin:4px auto 14px}.panel-head{display:flex;align-items:center;justify-content:space-between;gap:12px}.panel-title{margin:0;font-size:1.3rem;font-weight:600;color:var(--ink)}.btn-compose{border:none;border-radius:999px;padding:10px 18px;font-size:.95rem;font-weight:600;color:var(--white);background:var(--terra);cursor:pointer;white-space:nowrap;transition:transform .12s ease,background .2s ease}.btn-compose:hover{background:var(--terra-dk)}.btn-compose:active{transform:scale(.97)}.btn-compose:disabled{opacity:.5;cursor:default}.panel-back{align-self:flex-start;background:none;border:none;color:var(--ink-soft);font-size:.95rem;font-weight:600;cursor:pointer;padding:4px 0}.panel-back:hover{color:var(--ink)}.tab-body{display:flex;flex-direction:column;gap:12px}.notes-list{overflow-y:auto;max-height:60dvh;overscroll-behavior:contain}.note{text-align:left;border:none;background:var(--cream);border-radius:14px;padding:14px 16px;display:flex;flex-direction:column;gap:6px;cursor:pointer;width:100%}.note-body{color:var(--ink);line-height:1.45;white-space:pre-wrap;font-size:1rem}.note-time{color:var(--ink-soft);font-size:.8rem}.note.unread{background:#fff3d6;box-shadow:inset 0 0 0 2px var(--glow)}.panel-close{margin-top:14px;background:none;border:none;color:var(--ink-soft);font-size:.95rem;cursor:pointer;padding:8px;align-self:center}.stranger{background:var(--ink)}.stranger-text{color:var(--cream);font-size:1.5rem;line-height:1.6;font-weight:500}.demo-bar{position:fixed;left:50%;bottom:calc(14px + env(safe-area-inset-bottom));transform:translate(-50%);z-index:8;display:flex;align-items:center;gap:8px;padding:7px 10px;background:#281e19d1;border-radius:999px;box-shadow:0 6px 18px #00000040;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.demo-tag{color:#fff7ea;font-size:.8rem;font-weight:600;padding-left:6px;white-space:nowrap}.demo-btn{border:none;border-radius:999px;padding:7px 12px;font-size:.8rem;font-weight:700;color:var(--ink);background:var(--peach);cursor:pointer;white-space:nowrap}.demo-btn:active{transform:scale(.96)}.demo-exit{background:transparent;color:#ffd9c9}.world-field{position:absolute;top:0;right:0;bottom:0;left:0;z-index:0;background-image:url(/art/world-bg.webp),linear-gradient(180deg,#cfe4f6,#e7d8f0,#fde3dc);background-size:cover,cover;background-position:center,center;background-repeat:no-repeat,no-repeat}.world-mist{position:absolute;top:0;right:0;bottom:0;left:0;z-index:1;pointer-events:none;overflow:hidden}.mist-puff{position:absolute;border-radius:50%;background:radial-gradient(ellipse at center,#ffffffbd,#fff0 74%);filter:blur(17px)}.mist-island{position:absolute;transform:translate(-50%,-50%);width:58vw;max-width:440px;height:34vw;max-height:260px;border-radius:50%;background:radial-gradient(ellipse at center,#ffffffe0,#fff0 68%);filter:blur(18px);animation:mistDriftB 24s ease-in-out infinite;animation-delay:calc(var(--mi, 0) * -6s)}.mist-a{left:-10%;top:56%;width:70%;height:26%;animation:mistDriftA 26s ease-in-out infinite}.mist-b{left:40%;top:28%;width:60%;height:22%;animation:mistDriftB 32s ease-in-out infinite}.mist-c{left:8%;top:76%;width:55%;height:20%;animation:mistDriftA 22s ease-in-out infinite reverse}@keyframes mistDriftA{0%,to{transform:translate(-3%);opacity:.7}50%{transform:translate(6%);opacity:1}}@keyframes mistDriftB{0%,to{transform:translate(4%);opacity:.85}50%{transform:translate(-5%);opacity:.6}}.world-trail{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;z-index:2;pointer-events:none}.world-trail path{fill:none;stroke:#ffffffbf;stroke-width:2.5;stroke-linecap:round;stroke-dasharray:.5 7;vector-effect:non-scaling-stroke}.map-stone{position:absolute;transform:translate(-50%,-50%);width:calc(min(11vw,92px) * var(--stone-scale, 1));pointer-events:none}.stone-sprite{display:block;width:100%;height:auto;transform:scaleX(var(--flip, 1)) rotate(var(--tilt, 0deg));filter:drop-shadow(0 4px 5px rgba(40,25,40,.18));animation:stoneBob calc(6s + var(--phase, 0) * 3s) ease-in-out infinite,stoneBreathe calc(8s + var(--phase, 0) * 3s) ease-in-out infinite;animation-delay:calc(var(--phase, 0) * -7s),calc(var(--phase, 0) * -5s);-webkit-user-select:none;user-select:none;-webkit-user-drag:none}@keyframes stoneBob{0%,to{translate:0 0}50%{translate:0 -3px}}@keyframes stoneBreathe{0%,to{scale:1}50%{scale:1.012}}.stone-wisp{position:absolute;left:50%;bottom:-8%;transform:translate(-50%);width:150%;height:85%;border-radius:50%;background:radial-gradient(ellipse at center,#ffffffc7,#fff0 66%);filter:blur(7px);pointer-events:none;animation:mistDriftA 18s ease-in-out infinite;animation-delay:calc(var(--phase, 0) * -9s)}.map-island{position:absolute;transform:translate(-50%,-50%);min-width:44px;min-height:44px;display:flex;align-items:center;justify-content:center;padding:0;border:none;background:none;cursor:pointer;-webkit-tap-highlight-color:transparent}.island-bob{position:relative;display:inline-block;animation:islandBob calc(6s + var(--i, 0) * 1s) ease-in-out infinite;animation-delay:calc(var(--i, 0) * -1.6s)}.island-sprite{display:block;width:calc(min(30vw,240px) * var(--isl-scale, 1));height:auto;filter:drop-shadow(0 10px 12px rgba(40,25,40,.24));animation:islandBreathe calc(8s + var(--i, 0) * 1.3s) ease-in-out infinite;animation-delay:calc(var(--i, 0) * -2.2s);-webkit-user-select:none;user-select:none;-webkit-user-drag:none}@keyframes islandBob{0%,to{transform:translateY(0)}50%{transform:translateY(-6px)}}@keyframes islandBreathe{0%,to{transform:scale(1)}50%{transform:scale(1.02)}}.map-island:not(.is-locked):active{transform:translate(-50%,-50%) scale(1.06)}.island-emblem{position:absolute;left:50%;bottom:94%;transform:translate(-50%);width:calc(42% * var(--emblem-scale, 1));height:auto;filter:drop-shadow(0 4px 6px rgba(40,25,40,.28));-webkit-user-select:none;user-select:none;-webkit-user-drag:none}.map-island.is-locked{cursor:default}.is-locked .island-sprite{opacity:.55;filter:grayscale(.4) brightness(1.03) drop-shadow(0 10px 12px rgba(40,25,40,.16))}.island-sprite[src$="template-island.webp"]{-webkit-mask-image:radial-gradient(ellipse 52% 55% at 48% 46%,#000 52%,transparent 78%);mask-image:radial-gradient(ellipse 52% 55% at 48% 46%,#000 52%,transparent 78%)}.island-lock{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:30px;height:30px;display:flex;align-items:center;justify-content:center;font-size:.95rem;border-radius:50%;background:#fff9f1cc;animation:lockPulse 2s ease-in-out infinite}@keyframes lockPulse{0%,to{box-shadow:0 2px 6px #2819282e,0 0 #ffe4968c}50%{box-shadow:0 2px 6px #2819282e,0 0 13px 5px #ffe496e6}}.lock-msg{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);z-index:2000;max-width:74%;text-align:center;color:var(--ink);background:#fff9f1f0;padding:14px 20px;border-radius:16px;font-size:.95rem;line-height:1.35;box-shadow:0 10px 26px #28192833;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);cursor:pointer;animation:lockMsgIn .3s ease-out both}@keyframes lockMsgIn{0%{opacity:0;transform:translate(-50%,-44%)}to{opacity:1;transform:translate(-50%,-50%)}}.map-island.is-locked:active{animation:lockWiggle .4s ease-in-out}@keyframes lockWiggle{0%,to{rotate:0deg}25%{rotate:-2.5deg}75%{rotate:2.5deg}}.world-back{position:absolute;top:calc(14px + env(safe-area-inset-top));left:14px;z-index:5;color:var(--ink);background:#fff9f1d1;border:none;padding:8px 16px;border-radius:999px;font-size:.9rem;cursor:pointer;box-shadow:0 4px 14px #00000014;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.world-map-btn{position:absolute;top:calc(14px + env(safe-area-inset-top));right:14px;z-index:5;width:66px;height:66px;display:flex;align-items:center;justify-content:center;font-size:1.875rem;line-height:1;color:var(--ink);background:#fff9f1d1;border:none;border-radius:999px;cursor:pointer;box-shadow:0 6px 20px #00000014,0 0 14px 2px #ffce5c4d;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);animation:compassGlow 2.8s ease-in-out infinite}@keyframes compassGlow{0%,to{box-shadow:0 6px 20px #00000014,0 0 11px 2px #ffce5c38}50%{box-shadow:0 6px 20px #00000014,0 0 22px 6px #ffce5c9e}}@media (prefers-reduced-motion: reduce){.world-map-btn{animation:none}}.memory-scene{position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(180deg,#f7e8d8,#efd6e4 58%,#d9c8ef)}.memory-caption{position:absolute;left:50%;bottom:16%;transform:translate(-50%);text-align:center;color:var(--ink);background:#fff9f1cc;padding:12px 22px;border-radius:18px;box-shadow:0 6px 18px #0000001a;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.memory-title{margin:0;font-size:1.3rem}.memory-date{margin:4px 0 0;font-size:.85rem;color:var(--ink-soft)}@media (prefers-reduced-motion: reduce){.mist-puff,.mist-island,.stone-wisp,.stone-sprite,.island-bob,.island-sprite,.island-lock,.lock-msg{animation:none!important}.map-island:not(.is-locked):active{transform:translate(-50%,-50%)}.map-island.is-locked:active{animation:none}}.ejection{position:fixed;top:0;right:0;bottom:0;left:0;z-index:50;overflow:hidden;background:#000;cursor:pointer;--ej-plum: #4b2545;animation:ejFadeIn .22s ease both}@keyframes ejFadeIn{0%{opacity:0}to{opacity:1}}.ej-bg{position:absolute;top:0;right:0;bottom:0;left:0;z-index:0;background:url(/art/landing-bg.webp) center / cover no-repeat}.ej-island{position:absolute;left:50%;bottom:var(--ej-island-bottom);z-index:1;width:var(--ej-island-w);height:auto;transform:translate(-50%);pointer-events:none;-webkit-user-select:none;user-select:none;-webkit-user-drag:none}.ej-stranger{position:absolute;left:var(--ej-stranger-left);bottom:var(--ej-stranger-bottom);z-index:2;width:var(--ej-stranger-w);height:auto;margin-left:calc(var(--ej-stranger-w) / -2);transform-origin:center bottom;will-change:transform,opacity;pointer-events:none;-webkit-user-select:none;user-select:none;-webkit-user-drag:none;animation:ejEject var(--ej-stranger-dur) linear both}@keyframes ejEject{0%{opacity:1;transform:translateY(var(--ej-start-y)) scale(1);animation-timing-function:cubic-bezier(.16,.84,.44,1)}32%{transform:translateY(var(--ej-lip-y)) scale(1);animation-timing-function:ease-out}44%{transform:translateY(var(--ej-peek-y)) rotate(-3deg);animation-timing-function:ease-in-out}52%{opacity:1;transform:translate(var(--ej-recoil-x),var(--ej-recoil-y)) rotate(9deg) scale(.97);animation-timing-function:cubic-bezier(.5,0,.9,.35)}to{opacity:0;transform:translate(var(--ej-fling-x),var(--ej-fling-y)) rotate(var(--ej-fling-rot)) scale(var(--ej-fling-scale))}}.ej-gust{position:absolute;top:0;right:0;bottom:0;left:0;z-index:3;pointer-events:none;overflow:hidden}.ej-streak{position:absolute;width:40vw;height:2px;border-radius:2px;background:linear-gradient(90deg,transparent,rgba(255,255,255,.92),transparent);filter:blur(1.5px);opacity:0;transform:rotate(var(--ej-gust-tilt)) translate(-12vw);animation:ejStreak var(--ej-gust-dur) ease-out var(--ej-gust-delay) both}.ej-streak:nth-child(1){top:40%;left:16%;animation-delay:calc(var(--ej-gust-delay) + 0s)}.ej-streak:nth-child(2){top:47%;left:30%;animation-delay:calc(var(--ej-gust-delay) + .05s)}.ej-streak:nth-child(3){top:53%;left:22%;animation-delay:calc(var(--ej-gust-delay) + .1s)}.ej-streak:nth-child(4){top:44%;left:40%;animation-delay:calc(var(--ej-gust-delay) + .16s)}.ej-streak:nth-child(5){top:58%;left:34%;animation-delay:calc(var(--ej-gust-delay) + .22s)}@keyframes ejStreak{0%{opacity:0;transform:rotate(var(--ej-gust-tilt)) translate(-12vw)}30%{opacity:.85}to{opacity:0;transform:rotate(var(--ej-gust-tilt)) translate(34vw)}}.ej-flash{position:absolute;top:0;right:0;bottom:0;left:0;background:#fff;opacity:0;animation:ejFlash var(--ej-flash-dur) ease-out var(--ej-flash-delay) both}@keyframes ejFlash{0%{opacity:0}40%{opacity:var(--ej-flash-peak)}to{opacity:0}}.ej-petals{position:absolute;top:0;right:0;bottom:0;left:0;z-index:4;pointer-events:none;overflow:hidden}.ej-petal{position:absolute;width:5vw;height:auto;opacity:0;will-change:transform,opacity;-webkit-user-select:none;user-select:none;-webkit-user-drag:none;animation:ejPetalBlow var(--ej-petal-dur) ease-out var(--ej-petal-delay) both}.ej-petal:nth-child(1){left:38%;bottom:42%;animation-delay:calc(var(--ej-petal-delay) + 0s)}.ej-petal:nth-child(2){left:50%;bottom:38%;animation-delay:calc(var(--ej-petal-delay) + .08s)}.ej-petal:nth-child(3){left:56%;bottom:45%;animation-delay:calc(var(--ej-petal-delay) + .16s)}.ej-petal:nth-child(4){left:44%;bottom:48%;animation-delay:calc(var(--ej-petal-delay) + .22s)}.ej-petal:nth-child(5){left:60%;bottom:40%;animation-delay:calc(var(--ej-petal-delay) + .3s)}.ej-petal:nth-child(6){left:34%;bottom:47%;animation-delay:calc(var(--ej-petal-delay) + .38s)}@keyframes ejPetalBlow{0%{opacity:0;transform:translate(0) rotate(0) scale(.9)}15%{opacity:.95}to{opacity:0;transform:translate(40vw,-36vh) rotate(280deg) scale(.5)}}.ej-text{position:absolute;top:20%;left:50%;z-index:5;width:min(90vw,460px);margin:0;text-align:center;font-family:Georgia,Times New Roman,serif;font-size:clamp(1.35rem,6vw,2rem);line-height:1.45;font-weight:600;color:var(--ej-plum);text-shadow:0 1px 10px rgba(255,250,244,.85),0 2px 22px rgba(255,250,244,.7);opacity:0;transform:translate(-50%);animation:ejText var(--ej-text-dur) ease-out var(--ej-text-delay) both}.ej-text:before{content:"";position:absolute;top:-45%;right:-22%;bottom:-45%;left:-22%;z-index:-1;background:radial-gradient(ellipse at center,#fffaf4b8,#fffaf45c 45%,#fffaf400 75%);pointer-events:none}@keyframes ejText{0%{opacity:0;transform:translate(-50%) scale(.92)}20%{opacity:1;transform:translate(-50%) scale(1)}72%{opacity:1;transform:translate(-50%) scale(1)}to{opacity:0;transform:translate(-50%) scale(1.02)}}.ejection-reduced .ej-stranger{animation:none;transform:none}.ejection-reduced .ej-text{animation:ejTextReduced var(--ej-text-dur) ease-out .2s both}@keyframes ejTextReduced{0%{opacity:0;transform:translate(-50%)}18%{opacity:1;transform:translate(-50%)}80%{opacity:1;transform:translate(-50%)}to{opacity:0;transform:translate(-50%)}}@media (prefers-reduced-motion: reduce){.ej-stranger{animation:none!important;transform:none!important}.ej-gust,.ej-petals{display:none!important}.ejection{animation:ejFadeIn .22s ease both}.ej-text{animation:ejTextReduced var(--ej-text-dur) ease-out .2s both!important}}.intro-video-layer{position:fixed;top:0;right:0;bottom:0;left:0;z-index:60;background:var(--peach, #f3d9c0);opacity:1;transition:opacity var(--intro-fade, .6s) ease}.intro-video-layer.is-leaving{opacity:0}.intro-video{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;object-fit:cover;display:block;user-select:none;-webkit-user-select:none}.intro-skip{position:absolute;top:calc(env(safe-area-inset-top,0px) + 14px);right:calc(env(safe-area-inset-right,0px) + 14px);min-width:44px;min-height:44px;padding:8px 20px;border:0;border-radius:999px;font:inherit;font-weight:600;color:var(--ink, #4a3f3a);background:#fff9f1d1;box-shadow:0 4px 14px #0000002e;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);cursor:pointer}.intro-skip:active{transform:scale(.96)}@media (prefers-reduced-motion: reduce){.intro-video-layer{transition:none}.intro-skip:active{transform:none}}.night-layer{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none}.night-tint,.night-stars,.night-moon{opacity:0;transition:opacity var(--night-fade, 1.5s) ease}.night-layer.is-night .night-tint{opacity:var(--night-tint-opacity, .4)}.night-layer.is-night .night-stars-1{opacity:.9}.night-layer.is-night .night-stars-2{opacity:.7}.night-layer.is-night .night-moon{opacity:1}.night-home{--night-tint-opacity: .4}.night-map{z-index:3;isolation:isolate;--night-tint-opacity: .45}.night-tint{position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(to bottom,#261a40,#40264ef5 40%,#784654a8 78%,#e89e6e6b)}.night-stars{position:absolute;top:-12%;right:-12%;bottom:-12%;left:-12%;background-position:center;background-size:cover;background-repeat:no-repeat;mix-blend-mode:screen;will-change:transform}.night-stars-1{background-image:url(/art/starfield1.webp);animation:starDriftA var(--star-dur-1, 120s) ease-in-out infinite}.night-stars-2{background-image:url(/art/starfield2.webp);animation:starDriftB var(--star-dur-2, 200s) ease-in-out infinite}@keyframes starDriftA{0%,to{transform:translate3d(-1.5%,-1%,0)}50%{transform:translate3d(1.5%,1%,0)}}@keyframes starDriftB{0%,to{transform:translate3d(1.2%,1%,0)}50%{transform:translate3d(-1.2%,-.6%,0)}}.night-moon{position:absolute;width:18vw;max-width:140px;height:auto;translate:-50% -50%;animation:moonBob 9s ease-in-out infinite;-webkit-user-select:none;user-select:none;-webkit-user-drag:none}@keyframes moonBob{0%,to{translate:-50% -50%}50%{translate:-50% calc(-50% - 2px)}}@media (prefers-reduced-motion: reduce){.night-stars-1,.night-stars-2,.night-moon{animation:none!important}}.night-glows{position:absolute;width:max(100vw,100vh);height:max(100vw,100vh);left:calc(50% - (max(100vw,100vh)/2));top:calc(50% - (max(100vw,100vh)/2));pointer-events:none}.night-glow{position:absolute;width:var(--g-size, 4%);height:var(--g-size, 4%);translate:-50% -50%;border-radius:50%;background:radial-gradient(circle closest-side,var(--g-color, #ffd98a) 0%,transparent 70%);mix-blend-mode:screen;opacity:calc(var(--night-progress, 0) * var(--g-intensity, .8));transition:opacity var(--night-fade, 1.5s) ease}.glow-lantern{animation:glowFlicker calc(3.2s + var(--g-i, 0) * .4s) ease-in-out infinite;animation-delay:calc(var(--g-i, 0) * -.7s)}@keyframes glowFlicker{0%,to{filter:brightness(1)}25%{filter:brightness(.85)}50%{filter:brightness(1.13)}72%{filter:brightness(.92)}}.glow-canopy{animation:glowTwinkle calc(2.6s + var(--g-i, 0) * .5s) ease-in-out infinite;animation-delay:calc(var(--g-i, 0) * -.83s)}@keyframes glowTwinkle{0%,to{filter:brightness(.6);scale:.8}50%{filter:brightness(1.35);scale:1.12}}.shooting-star{position:absolute;width:13vw;height:2px;background:linear-gradient(to right,transparent 0%,rgba(255,247,228,.85) 88%,rgba(255,252,246,.98) 100%);border-radius:2px;transform-origin:left center;mix-blend-mode:screen;pointer-events:none;animation:shootStar var(--ss-dur, 1.25s) ease-in forwards}.shooting-star:after{content:"";position:absolute;right:-1px;top:50%;width:4px;height:4px;border-radius:50%;background:#fffaf0fa;box-shadow:0 0 7px 2px #fff3ded9;transform:translateY(-50%)}@keyframes shootStar{0%{transform:rotate(var(--ss-angle, 28deg)) translate(-8vw);opacity:0}12%{opacity:1}82%{opacity:1}to{transform:rotate(var(--ss-angle, 28deg)) translate(var(--ss-travel, 52vw));opacity:0}}@media (prefers-reduced-motion: reduce){.glow-lantern,.glow-canopy{animation:none!important;filter:none;scale:1}.shooting-star{display:none!important}}.quiet-star{position:absolute;translate:-50% -50%;width:56px;height:56px;padding:0;border:none;background:none;cursor:pointer;line-height:0;pointer-events:auto;z-index:3}.quiet-star-core{position:absolute;left:50%;top:50%;translate:-50% -50%;width:10px;height:10px;border-radius:50%;background:#fffdf4;box-shadow:0 0 8px 3px rgba(255,253,242,calc(.55 + .4 * var(--night-progress, 0))),0 0 calc(24px + 24px * var(--night-progress, 0)) calc(6px + 8px * var(--night-progress, 0)) rgba(255,246,218,calc(.35 + .5 * var(--night-progress, 0)));animation:quietStarBreathe 7s ease-in-out infinite}.quiet-star-core:before,.quiet-star-core:after{content:"";position:absolute;left:50%;top:50%;translate:-50% -50%;opacity:calc(.7 + .3 * var(--night-progress, 0))}.quiet-star-core:before{width:2.5px;height:calc(32px + 20px * var(--night-progress, 0));background:linear-gradient(to bottom,transparent,rgba(255,253,244,.95),transparent)}.quiet-star-core:after{height:2.5px;width:calc(32px + 20px * var(--night-progress, 0));background:linear-gradient(to right,transparent,rgba(255,253,244,.95),transparent)}@keyframes quietStarBreathe{0%,to{opacity:1}50%{opacity:.72}}.star-note-scrim{position:fixed;top:0;right:0;bottom:0;left:0;z-index:30;display:flex;align-items:center;justify-content:center;padding:24px;background:#18101873;border:none;cursor:pointer;animation:starNoteIn .4s ease both}.star-note-scrim.is-closing{animation:starNoteOut .4s ease both;pointer-events:none}.star-note-card{max-width:min(320px,80vw);padding:22px 30px;background:#fff9f1cc;backdrop-filter:blur(5px);-webkit-backdrop-filter:blur(5px);border:1px solid rgba(255,218,158,.75);color:var(--ink);font-family:Bradley Hand,Segoe Script,Comic Sans MS,cursive;font-size:1.25rem;line-height:1.5;text-align:center;border-radius:14px;box-shadow:0 8px 28px #00000038}@keyframes starNoteIn{0%{opacity:0}to{opacity:1}}@keyframes starNoteOut{0%{opacity:1}to{opacity:0}}@media (prefers-reduced-motion: reduce){.quiet-star-core,.star-note-scrim,.star-note-scrim.is-closing{animation:none}}.inz-screen{background:#17100c}.inz-stage{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:max(100vw,100vh);height:max(100vw,100vh)}.inz-bg{width:100%;height:100%;display:block;-webkit-user-select:none;user-select:none;-webkit-user-drag:none}.inz-figure{position:absolute;transform:translate(-50%,-100%);aspect-ratio:.45;pointer-events:none;line-height:0}.inz-shadow{position:absolute;left:50%;bottom:-.5%;transform:translate(-50%);width:105%;height:5%;border-radius:50%;filter:blur(3px);background:radial-gradient(ellipse at center,#0a050580,#0a050500 70%)}.inz-breathe{position:absolute;top:0;right:0;bottom:0;left:0;animation:inzBreathe 5.6s ease-in-out infinite;animation-delay:calc(var(--i, 0) * -1.3s)}@keyframes inzBreathe{0%,to{transform:translateY(0)}50%{transform:translateY(-1.5px)}}.inz-sprite{position:absolute;left:50%;bottom:0;transform:translate(-50%);height:100%;width:auto;-webkit-user-select:none;user-select:none;-webkit-user-drag:none}.inz-sway{position:absolute;top:0;right:0;bottom:0;left:0;transform-origin:50% 100%;animation:inzSway 3.2s ease-in-out infinite}@keyframes inzSway{0%,to{transform:rotate(-1.2deg)}50%{transform:rotate(1.2deg)}}.inz-dance-1{animation:inzDanceA var(--dance-cycle, 1.4s) linear infinite}.inz-dance-2{animation:inzDanceB var(--dance-cycle, 1.4s) linear infinite}@keyframes inzDanceA{0%{opacity:1}43%{opacity:1}57%{opacity:0}93%{opacity:0}to{opacity:1}}@keyframes inzDanceB{0%{opacity:0}43%{opacity:0}57%{opacity:1}93%{opacity:1}to{opacity:0}}.inz-floor-glow{position:absolute;left:50%;top:76%;transform:translate(-50%,-50%);width:72%;height:42%;border-radius:50%;background:radial-gradient(ellipse at center,#ffba6e42,#ffba6e00 70%);mix-blend-mode:screen;pointer-events:none;animation:inzGlowBreathe 7s ease-in-out infinite}@keyframes inzGlowBreathe{0%,to{opacity:.75}50%{opacity:1}}.inz-dapple{position:absolute;aspect-ratio:1.6;border-radius:50%;background:radial-gradient(ellipse at center,#ffd6962b,#ffd69600 65%);mix-blend-mode:screen;pointer-events:none;animation:inzDappleDrift 16s ease-in-out infinite alternate;animation-delay:calc(var(--i, 0) * -5.5s)}@keyframes inzDappleDrift{0%{transform:translate(-50%,-50%)}to{transform:translate(-50%,-50%) translate(26px,-10px)}}.inz-glint{position:absolute;width:5px;height:5px;border-radius:50%;background:#fffcf4f2;box-shadow:0 0 6px 2px #fff8e6b3;opacity:0;pointer-events:none;z-index:900;animation:inzGlintBlink 3.8s linear infinite;animation-delay:calc(var(--i, 0) * .95s)}@keyframes inzGlintBlink{0%,88%,to{opacity:0}92%{opacity:1}96%{opacity:.3}}.inz-hotspot{position:absolute;transform:translate(-50%,-50%);min-width:44px;min-height:44px;background:transparent;border:none;padding:0;cursor:pointer;z-index:920;-webkit-tap-highlight-color:transparent}.inz-burst{position:absolute;transform:translate(-50%,-50%);width:4px;height:4px;pointer-events:none;z-index:950;animation:inzBurstFade .85s ease-out forwards}.inz-burst i{position:absolute;left:0;top:0;width:5px;height:5px;border-radius:50%;background:#fffcf4f2;box-shadow:0 0 7px 2px #fff4d6cc;animation:inzSparkFly .7s ease-out forwards}.inz-burst i:nth-child(1){--dx: -46px;--dy: -20px}.inz-burst i:nth-child(2){--dx: 44px;--dy: -26px}.inz-burst i:nth-child(3){--dx: -30px;--dy: 34px;animation-delay:.05s}.inz-burst i:nth-child(4){--dx: 34px;--dy: 30px;animation-delay:.05s}.inz-burst i:nth-child(5){--dx: -10px;--dy: -44px;animation-delay:.1s}.inz-burst i:nth-child(6){--dx: 12px;--dy: 46px;animation-delay:.1s}@keyframes inzSparkFly{0%{transform:translate(0) scale(1);opacity:1}to{transform:translate(var(--dx, 20px),var(--dy, -20px)) scale(.2);opacity:0}}@keyframes inzBurstFade{0%{opacity:1}to{opacity:0}}.inz-card-scrim{position:absolute;top:0;right:0;bottom:0;left:0;z-index:40;display:flex;align-items:center;justify-content:center;padding:24px;background:#120b0773;border:none;cursor:pointer;animation:inzCardIn .3s ease}.inz-memory-card{max-width:min(340px,82vw);padding:26px 30px;background:var(--white);color:var(--ink);font-family:Bradley Hand,Segoe Script,Comic Sans MS,cursive;font-size:1.2rem;line-height:1.5;text-align:center;border-radius:16px;box-shadow:0 14px 40px #00000059;transform:rotate(-1.5deg)}@keyframes inzCardIn{0%{opacity:0}to{opacity:1}}.inz-back{min-height:44px;min-width:64px}.inz-entrance{position:absolute;top:0;right:0;bottom:0;left:0;z-index:60;background:#0d0906;animation:inzEntranceFade .55s ease 1.5s forwards}.inz-entrance-bulb{position:absolute;transform:translate(-50%,-50%);width:clamp(70px,12vw,130px);aspect-ratio:1;border-radius:50%;background:radial-gradient(circle at center,#ffd082cc,#ffd08200 68%);opacity:0;filter:blur(1px);animation:inzBulbOn .7s ease-out forwards;animation-delay:calc(.12s + var(--i, 0) * .16s)}@keyframes inzBulbOn{0%{opacity:0}35%{opacity:.6}55%{opacity:.15}to{opacity:.9}}@keyframes inzEntranceFade{0%{opacity:1}to{opacity:0}}.inz-outside{background:linear-gradient(180deg,#d9c8ef,#f3d3d8 55%,#fbe0c4)}.inz-outside-sky{position:absolute;top:0;right:0;bottom:0;left:0;background:url(/art/world-bg.webp) center / cover no-repeat}.inz-outside-island{position:absolute;left:50%;top:47%;transform:translate(-50%,-50%);z-index:2;width:min(88vw,72vh);background:none;border:none;padding:0;cursor:pointer;-webkit-tap-highlight-color:transparent}.inz-outside-island img{width:100%;height:auto;display:block;-webkit-user-select:none;user-select:none;-webkit-user-drag:none;filter:drop-shadow(0 16px 26px rgba(60,30,60,.22));animation:inzIslandBob 6.5s ease-in-out infinite}@keyframes inzIslandBob{0%,to{transform:translateY(0)}50%{transform:translateY(-8px)}}.inz-outside-hint{position:absolute;left:50%;bottom:9%;transform:translate(-50%);margin:0;color:var(--ink);background:#fff9f1d1;padding:8px 18px;border-radius:999px;font-size:.9rem;white-space:nowrap;box-shadow:0 4px 14px #00000014;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}@media (prefers-reduced-motion: reduce){.inz-breathe,.inz-sway,.inz-floor-glow{animation:none!important}.inz-dance-1{animation:none!important;opacity:1!important}.inz-dance-2,.inz-dapple,.inz-glint,.inz-burst,.inz-entrance{display:none!important}.inz-card-scrim,.inz-outside-island img{animation:none}}.pool-screen{background:#9fd0d6}.pool-stage{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:max(100vw,100vh);height:max(100vw,100vh)}.pool-bg{width:100%;height:100%;display:block;-webkit-user-select:none;user-select:none;-webkit-user-drag:none}.pool-figure{position:absolute;transform:translate(-50%,-100%);aspect-ratio:var(--ar, .45);pointer-events:none;line-height:0}.pool-shadow{position:absolute;left:50%;bottom:-.5%;transform:translate(-50%);width:100%;height:6%;border-radius:50%;filter:blur(3px);background:radial-gradient(ellipse at center,#2d1e1466,#2d1e1400 70%)}.pool-bob{position:absolute;top:0;right:0;bottom:0;left:0;animation:poolBob 5.8s ease-in-out infinite;animation-delay:calc(var(--i, 0) * -1.15s)}@keyframes poolBob{0%,to{transform:translateY(0)}50%{transform:translateY(-2px)}}.pool-sprite{position:absolute;left:50%;bottom:0;transform:translate(-50%);height:100%;width:auto;-webkit-user-select:none;user-select:none;-webkit-user-drag:none}.pool-day-fade{opacity:calc(1 - var(--night-on, 0));transition:opacity var(--night-fade, 1.5s) ease}.pool-night-fade{opacity:var(--night-on, 0);transition:opacity var(--night-fade, 1.5s) ease}.pool-glow{position:absolute;left:50%;top:63%;width:60%;height:38%;translate:-50% -50%;border-radius:50%;background:radial-gradient(ellipse at center,#8cf4fca8,#70e2ec57 42%,#70e2ec00 72%);pointer-events:none;opacity:calc(var(--night-on, 0) * 1);transition:opacity var(--night-fade, 1.5s) ease;animation:poolGlowPulse 6s ease-in-out infinite}@keyframes poolGlowPulse{0%,to{filter:brightness(1)}50%{filter:brightness(1.45)}}.pool-ball{position:absolute;transform:translate(-50%,-50%);aspect-ratio:1;pointer-events:none;z-index:910}.pool-ball-hop{position:absolute;top:0;right:0;bottom:0;left:0;overflow:hidden;transform-origin:50% 100%;-webkit-mask-image:radial-gradient(circle,#000 55%,transparent 72%);mask-image:radial-gradient(circle,#000 55%,transparent 72%);animation:poolBallHop .6s ease-out forwards}.pool-ball-hop img{position:absolute;-webkit-user-select:none;user-select:none;-webkit-user-drag:none}@keyframes poolBallHop{0%{transform:translateY(0) scale(1)}18%{transform:translateY(0) scale(1.12,.82)}45%{transform:translateY(-30%) scale(.94,1.1)}70%{transform:translateY(0) scale(1.08,.9)}85%{transform:translateY(0) scale(.97,1.04)}to{transform:translateY(0) scale(1)}}.pool-entrance{position:absolute;top:0;right:0;bottom:0;left:0;z-index:60;background:#fff6e2;animation:poolEntranceFade 1.15s ease .35s forwards}.pool-shimmer{position:absolute;left:-45%;top:46%;width:42%;height:34%;background:linear-gradient(100deg,#fff0,#fffffff2,#fff0);filter:blur(2px);animation:poolShimmer 1.25s ease-out .2s forwards}@keyframes poolShimmer{0%{transform:translate(0)}to{transform:translate(360%)}}@keyframes poolEntranceFade{0%{opacity:1}to{opacity:0}}@media (prefers-reduced-motion: reduce){.pool-bob,.pool-glow{animation:none!important}.pool-day-fade,.pool-night-fade{transition:none!important}.pool-entrance,.pool-ball{display:none!important}}
