:root{--ink:#233428;--ink-soft:#5d6b61;--green:#2f4a3a;--green-2:#3f6450;--green-soft:#e3ece4;--cream:#fbf8f1;--cream-2:#f3eee2;--line:#2334281f;--gold:#e7b65c;--rose:#d9776d;--glass:#fbf8f1db;--shadow:0 10px 30px #1e281e2e;--radius:18px;--safe-b:env(safe-area-inset-bottom,0px);color:var(--ink);-webkit-tap-highlight-color:transparent;font-family:Gowun Dodum,system-ui,-apple-system,Apple SD Gothic Neo,Malgun Gothic,sans-serif}*{box-sizing:border-box}html,body{background:#1d1a16;height:100%;margin:0;overflow:hidden}button,input,select,textarea{font:inherit;color:inherit}button{cursor:pointer;background:0 0;border:0}[hidden]{display:none!important}a{color:var(--green-2)}.muted{color:var(--ink-soft)}.sm{font-size:12.5px}.row{align-items:center;gap:8px;display:flex}.row.wrap{flex-wrap:wrap}.grow{flex:1}.center{text-align:center}#app{-webkit-user-select:none;user-select:none;position:fixed;inset:0;overflow:hidden}#scene{position:absolute;inset:0}#scene canvas{touch-action:none;display:block}.glass{background:var(--glass);-webkit-backdrop-filter:blur(14px)saturate(1.2);box-shadow:var(--shadow);border:1px solid #fff9}.topbar{z-index:20;border-radius:16px;align-items:center;gap:6px;max-width:calc(100vw - 20px);padding:6px 8px;display:flex;position:absolute;top:10px;left:10px}.brand{color:var(--green);align-items:center;gap:6px;padding:0 6px;font-family:Jua,sans-serif;font-size:20px;text-decoration:none;display:flex}.chip{color:var(--ink-soft);white-space:nowrap;border-radius:10px;padding:6px 10px;font-size:13px}.chip:hover{background:#2f4a3a14}.chip.live .dot{background:#7bc47f;border-radius:50%;width:7px;height:7px;margin-right:6px;display:inline-block;box-shadow:0 0 0 3px #7bc47f40}.chip.toggle{background:var(--green-soft);color:var(--green)}.chip.toggle[aria-pressed=true]{background:var(--green);color:#fff}.music{align-items:center;gap:6px;display:flex}.music input{width:70px;accent-color:var(--green)}.icon-btn{width:34px;height:34px;color:var(--ink-soft);border-radius:50%;flex:none;place-items:center;font-size:18px;display:grid}.icon-btn:hover{background:#2f4a3a14}.icon-btn.sm{width:26px;height:26px;font-size:15px}.avatar-btn{box-shadow:inset 0 0 0 1px var(--line);background:#fff}.avatar-btn.signed{background:var(--green);color:#fff}.rail{z-index:15;flex-direction:column;gap:10px;display:flex;position:absolute;top:64px}.rail.left{left:10px}.rail.right{bottom:120px;right:10px}.rail-spacer{flex:1}.rail-btn{background:var(--glass);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);width:50px;min-height:44px;box-shadow:var(--shadow);color:var(--green);border:1px solid #fff9;border-radius:14px;flex-direction:column;justify-content:center;align-items:center;gap:2px;padding:6px 0;font-size:11px;display:flex}.rail-btn.tall{min-height:56px}.rail-btn svg{fill:none;stroke:currentColor;stroke-width:1.7px;stroke-linecap:round;stroke-linejoin:round;width:22px;height:22px}.rail-btn:hover{transform:translateY(-1px)}.rail-btn span{text-overflow:ellipsis;white-space:nowrap;max-width:46px;overflow:hidden}.pop{z-index:30;border-radius:14px;flex-direction:column;gap:8px;padding:14px 16px;font-size:14px;display:flex;position:absolute;bottom:175px;right:70px}.notice{z-index:14;border-radius:14px;align-items:center;gap:16px;max-width:min(460px,100vw - 140px);padding:12px 18px;font-size:14px;display:flex;position:absolute;top:70px;left:50%;transform:translate(-50%)}.notice p{margin:0;line-height:1.5}.link{color:var(--ink-soft);white-space:nowrap}.context-bar{left:50%;bottom:calc(92px + var(--safe-b));z-index:16;flex-wrap:wrap;justify-content:center;gap:8px;max-width:calc(100vw - 150px);display:flex;position:absolute;transform:translate(-50%)}.context-bar .act{background:var(--green);color:#fff;box-shadow:var(--shadow);border-radius:999px;padding:10px 16px;font-size:14px;animation:.25s pop-in}.context-bar .act.soft{background:var(--glass);color:var(--green);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.context-bar .act.gold{background:#b9852f}.context-bar .act[aria-pressed=true]{outline:2px solid var(--gold)}@keyframes pop-in{0%{opacity:0;transform:translateY(8px)}}.zone-title{color:#fff;text-shadow:0 2px 12px #00000080;opacity:0;pointer-events:none;z-index:12;font-family:Jua,sans-serif;font-size:26px;transition:opacity .6s;position:absolute;top:120px;left:50%;transform:translate(-50%)}.zone-title.show{opacity:1}.joystick{left:18px;bottom:calc(18px + var(--safe-b));-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);z-index:16;touch-action:none;background:#ffffff40;border:1px solid #fff6;border-radius:50%;width:96px;height:96px;position:absolute}.joystick .knob{pointer-events:none;background:#ffffffd9;border-radius:50%;width:34px;height:34px;margin:-17px;position:absolute;top:50%;left:50%;box-shadow:0 3px 10px #0003}.jbtn{color:#ffffffe6;width:26px;height:26px;font-size:13px;position:absolute}.jbtn.up{top:2px;left:35px}.jbtn.down{bottom:2px;left:35px}.jbtn.left{top:35px;left:2px}.jbtn.right{top:35px;right:2px}.dock{left:50%;bottom:calc(12px + var(--safe-b));z-index:18;border-radius:16px;align-items:center;gap:2px;padding:5px;display:flex;position:absolute;transform:translate(-50%)}.dock-btn{color:var(--ink-soft);border-radius:12px;flex-direction:column;align-items:center;gap:3px;min-width:64px;padding:7px 12px;font-size:12px;text-decoration:none;display:flex;position:relative}.dock-btn svg{fill:none;stroke:currentColor;stroke-width:1.6px;stroke-linecap:round;stroke-linejoin:round;width:21px;height:21px}.dock-btn[aria-pressed=true]{background:var(--green-soft);color:var(--green)}.dock-btn:hover{color:var(--green)}.dock-sep{background:var(--line);width:1px;height:30px;margin:0 4px}.badge{background:var(--rose);border-radius:50%;width:9px;height:9px;position:absolute;top:4px;right:14px;box-shadow:0 0 0 2px #fff}.panel{background:var(--cream);width:min(380px,100vw - 20px);box-shadow:var(--shadow);z-index:40;-webkit-user-select:text;user-select:text;border-radius:22px;flex-direction:column;animation:.25s slide-in;display:flex;position:absolute;top:10px;bottom:10px;right:10px}@keyframes slide-in{0%{opacity:0;transform:translate(30px)}}.panel-head{align-items:center;gap:6px;padding:18px 18px 8px 22px;display:flex}.panel-head h2{color:var(--green);flex:1;margin:0;font-family:Jua,sans-serif;font-size:21px;font-weight:400}.panel-head .icon-btn{background:var(--green-soft);color:var(--green)}.panel-body{overscroll-behavior:contain;touch-action:pan-y;-webkit-overflow-scrolling:touch;scrollbar-width:thin;flex:1;min-height:0;padding:6px 22px 22px;overflow-y:auto}.panel-body h3{color:var(--green);margin:18px 0 8px;font-size:15px}.panel-body p{line-height:1.6}.field{color:var(--ink-soft);flex-direction:column;gap:6px;margin:10px 0;font-size:13px;display:flex}.field>span{color:var(--ink);font-weight:600}input[type=text],input[type=date],input[type=search],select,textarea{border:1px solid var(--line);background:#fff;border-radius:12px;outline:none;width:100%;padding:11px 12px;font-size:14px}input:focus,select:focus,textarea:focus{border-color:var(--green-2);box-shadow:0 0 0 3px #3f645026}textarea{resize:vertical;min-height:110px;line-height:1.6}.btn{background:var(--green);color:#fff;text-align:center;border-radius:12px;padding:11px 16px;font-size:14px}.btn:hover{background:var(--green-2)}.btn:disabled{opacity:.5;cursor:default}.btn.ghost{background:var(--green-soft);color:var(--green)}.btn.block{width:100%;display:block}.btn.sm{border-radius:10px;padding:7px 11px;font-size:13px}.btn.kakao{color:#191600;background:#fee500}.btn.google{color:#333;box-shadow:inset 0 0 0 1px var(--line);background:#fff}.stats{color:var(--ink-soft);margin:2px 0 10px;font-size:12.5px}.grid2{grid-template-columns:1fr 1fr;gap:8px;display:grid}.locker-card{background:#f0f2ec;border-radius:14px;flex-direction:column;display:flex;overflow:hidden}.locker-card .lc-main{text-align:left;flex:1;padding:12px}.locker-card .lc-id{color:var(--ink-soft);font-size:11px}.locker-card .lc-name{margin:4px 0;font-size:15px;font-weight:700}.tier-tag{vertical-align:1px;color:#5a4a36;background:#efe6d6;border:1px solid #ddcfb6;border-radius:999px;margin-left:6px;padding:1px 7px;font-size:10.5px;font-weight:700;display:inline-block}.tier-tag.premium{color:#6b4a14;background:linear-gradient(#f7e6bf,#e9cf93);border-color:#c9a25b}.tier-tag.royal{color:#fff6e0;background:linear-gradient(135deg,#7a2f36,#4a1820);border-color:#d9b46a;box-shadow:inset 0 0 0 1px #ffdc9659}.tier-legend{flex-wrap:wrap;gap:6px;margin:4px 0 10px;display:flex}.tier-legend .tier-tag{margin-left:0;padding:3px 9px;font-size:11.5px}.tier-note{color:var(--ink-soft);background:#00000008;border-radius:10px;margin:0 0 2px;padding:8px 10px;font-size:12.5px}.tier-note.premium{background:#c9a25b1f}.tier-note.royal{background:#7a2f361a}.locker-card .lc-state{color:var(--ink-soft);font-size:11.5px}.locker-card.free{box-shadow:inset 0 0 0 1px var(--line);background:#fff}.locker-card.free .lc-state{color:var(--green-2);font-weight:700}.locker-card .lc-foot{border-top:1px solid var(--line);text-align:center;color:var(--ink-soft);padding:9px;font-size:13px}.locker-card .lc-foot:hover{color:var(--green);background:#2f4a3a0f}.memorial-photo{aspect-ratio:4/3;object-fit:cover;background:linear-gradient(135deg,#efe8da,#e2d7c3);border-radius:16px;place-items:center;width:100%;font-size:54px;display:grid}.pet-tabs{flex-wrap:wrap;gap:6px;margin:10px 0;display:flex}.pet-tab{background:var(--green-soft);color:var(--green);border-radius:999px;padding:6px 12px;font-size:13px}.pet-tab[aria-pressed=true]{background:var(--green);color:#fff}.memorial-name{color:var(--ink);margin:10px 0 2px;font-family:Jua,sans-serif;font-size:26px}.memorial-dates{color:var(--ink-soft);font-size:13px}.memorial-intro{white-space:pre-wrap;background:#fff;border-radius:14px;margin:12px 0;padding:12px 14px;font-size:14px}.tribute-row{color:var(--ink-soft);gap:12px;margin:10px 0;font-size:13px;display:flex}.action-grid{grid-template-columns:repeat(4,1fr);gap:6px;margin:14px 0;display:grid}.action-grid button{box-shadow:inset 0 0 0 1px var(--line);background:#fff;border-radius:14px;flex-direction:column;align-items:center;gap:4px;padding:10px 2px;font-size:12px;display:flex}.action-grid button b{font-size:22px;font-weight:400}.action-grid button:hover{box-shadow:inset 0 0 0 1px var(--green-2)}.gift-shelf{background:#fff;border-radius:14px;flex-wrap:wrap;gap:4px;min-height:48px;padding:10px;font-size:22px;display:flex}.letter{background:#fff;border-radius:14px;margin:8px 0;padding:12px 14px;font-size:14px}.letter .meta{color:var(--ink-soft);justify-content:space-between;margin-bottom:6px;font-size:12px;display:flex}.letter p{white-space:pre-wrap;margin:0;line-height:1.6}.letter .to{color:var(--green-2);cursor:pointer}.shop-grid{grid-template-columns:repeat(2,1fr);gap:8px;display:grid}.shop-item{box-shadow:inset 0 0 0 1px var(--line);background:#fff;border-radius:14px;flex-direction:column;align-items:center;gap:4px;padding:14px 8px;display:flex}.shop-item b{font-size:30px;font-weight:400}.shop-item:hover{box-shadow:inset 0 0 0 2px var(--green-2)}.hand-list{flex-wrap:wrap;gap:4px;min-height:36px;font-size:22px;display:flex}.place-list{grid-template-columns:1fr 1fr;gap:6px;display:grid}.place-list button{text-align:left;box-shadow:inset 0 0 0 1px var(--line);background:#fff;border-radius:12px;padding:11px 12px;font-size:13.5px}.place-list button:hover{box-shadow:inset 0 0 0 1px var(--green-2)}.help-list{padding-left:18px;font-size:14px;line-height:1.8}kbd{border:1px solid var(--line);background:#fff;border-bottom-width:2px;border-radius:6px;padding:0 6px;font-size:12px}.tree-card{background:#fff;border-radius:14px;align-items:center;gap:12px;margin:8px 0;padding:12px;display:flex}.tree-card .tree-ico{font-size:30px}.tree-card .bar{background:var(--green-soft);border-radius:3px;height:6px;margin:6px 0;overflow:hidden}.tree-card .bar i{background:var(--green-2);height:100%;display:block}.dialog{background:var(--cream);box-shadow:var(--shadow);width:min(420px,100vw - 24px);max-height:calc(100vh - 40px);color:var(--ink);border:0;border-radius:22px;padding:0}.dialog::backdrop{-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background:#14181473}.dialog-inner{max-height:calc(100vh - 40px);padding:24px;position:relative;overflow:auto}.dialog-x{position:absolute;top:12px;right:12px}.dialog h2{color:var(--green);margin:0 0 6px;font-family:Jua,sans-serif;font-size:23px;font-weight:400}.dialog p{line-height:1.6}.seg{background:var(--green-soft);border-radius:12px;padding:3px;display:flex}.seg label{text-align:center;cursor:pointer;color:var(--green);border-radius:10px;flex:1;padding:8px;font-size:14px}.seg input{display:none}.seg label:has(input:checked){background:#fff;font-weight:700;box-shadow:0 1px 4px #00000014}.swatches{flex-wrap:wrap;gap:6px;display:flex}.swatches label{cursor:pointer;border-radius:50%;width:28px;height:28px;box-shadow:inset 0 0 0 1px #00000026}.swatches input{display:none}.swatches label:has(input:checked){outline:3px solid var(--green-2);outline-offset:2px}.photo-pick{align-items:center;gap:12px;display:flex}.photo-pick img,.photo-pick .ph{object-fit:cover;background:var(--cream-2);border-radius:14px;place-items:center;width:72px;height:72px;font-size:26px;display:grid}.preview3d{background:linear-gradient(#efe9dc,#e3dac8);border-radius:14px;width:100%;height:150px}.pebble-view{text-align:center;padding:18px 6px}.pebble-stone{color:#3c3a34;white-space:pre-wrap;background:radial-gradient(circle at 35% 30%,#f3efe7,#c9c1b2 70%,#a99f8f);border-radius:48% 52% 45% 55%/55% 50% 50% 45%;place-items:center;width:220px;min-height:130px;margin:10px auto 16px;padding:26px;font-size:15px;line-height:1.6;display:grid;box-shadow:inset -8px -10px 18px #0000001f,0 10px 20px #00000026}.chat{flex-direction:column;gap:8px;max-height:46vh;padding:6px 2px;display:flex;overflow:auto}.bubble{white-space:pre-wrap;border-radius:16px;max-width:82%;padding:10px 13px;font-size:14px;line-height:1.55}.bubble.pet{background:#fff;border-bottom-left-radius:4px;align-self:flex-start}.bubble.me{background:var(--green);color:#fff;border-bottom-right-radius:4px;align-self:flex-end}.bubble time{opacity:.6;margin-top:3px;font-size:10.5px;display:block}.chat-empty{text-align:center;color:var(--ink-soft);padding:22px 0;font-size:14px}.social-pop{z-index:35;border-radius:16px;width:236px;padding:12px;position:absolute}.social-pop header{justify-content:space-between;align-items:center;margin-bottom:8px;display:flex}.social-actions{grid-template-columns:1fr 1fr;gap:6px;display:grid}.social-actions button,.social-presets button{box-shadow:inset 0 0 0 1px var(--line);background:#fff;border-radius:10px;padding:8px 6px;font-size:13px}.social-actions button:hover,.social-presets button:hover{background:var(--green-soft)}.social-presets{flex-wrap:wrap;gap:5px;display:flex}.social-pop p{margin:10px 0 6px}#labels{pointer-events:none;z-index:5;position:absolute;inset:0;overflow:hidden}.nametag{transform-origin:50% 100%;white-space:nowrap;color:#fff;text-shadow:0 1px 3px #000000bf,0 0 1px #000;pointer-events:auto;cursor:pointer;will-change:transform;font-family:Jua,sans-serif;font-size:15px;position:absolute;top:0;left:0}.nametag.me{color:#ffe7a8}.nametag .status{text-align:center;color:#ffd9e0;font-size:11px;display:block}.floater{color:#fff;text-shadow:0 2px 6px #0009;white-space:nowrap;pointer-events:none;font-family:Jua,sans-serif;font-size:22px;animation:2.6s ease-out forwards float-up;position:absolute;top:0;left:0}@keyframes float-up{0%{opacity:0;translate:0 10px}12%{opacity:1}to{opacity:0;translate:0 -70px}}.petting{z-index:50;background:radial-gradient(circle at 50% 40%,#fdf6e8,#e8dcc4);position:absolute;inset:0}#petting-canvas{position:absolute;inset:0}#petting-canvas canvas{touch-action:none;display:block}.petting-top{text-align:center;pointer-events:none;position:absolute;top:22px;left:0;right:0}.petting-top strong{color:var(--green);font-family:Jua,sans-serif;font-size:28px}.petting-top p{margin:4px 0;font-size:13.5px}.petting-meter{color:var(--ink-soft);background:#ffffffb3;border-radius:999px;padding:5px 12px;font-size:13px;position:absolute;top:96px;left:50%;transform:translate(-50%)}.petting-switch{justify-content:center;gap:6px;display:flex;position:absolute;bottom:86px;left:0;right:0}#petting-close{bottom:calc(24px + var(--safe-b));padding:12px 34px;position:absolute;left:50%;transform:translate(-50%)}.fade{opacity:0;pointer-events:none;z-index:60;background:#0f0d0b;transition:opacity .45s;position:absolute;inset:0}.fade.on{opacity:1}.toasts{z-index:70;pointer-events:none;flex-direction:column;align-items:center;gap:8px;display:flex;position:absolute;top:120px;left:50%;transform:translate(-50%)}.toast{color:#fff;box-shadow:var(--shadow);text-align:center;background:#233428eb;border-radius:12px;max-width:calc(100vw - 40px);padding:10px 16px;font-size:14px;animation:3.6s forwards toast}@keyframes toast{0%{opacity:0;transform:translateY(-6px)}8%,85%{opacity:1;transform:none}to{opacity:0}}.loading{z-index:90;color:var(--green);background:#f6f1e6;flex-direction:column;justify-content:center;align-items:center;gap:8px;font-family:Jua,sans-serif;font-size:18px;transition:opacity .6s;display:flex;position:absolute;inset:0}.loading img{animation:1.8s ease-in-out infinite breathe}.loading.done{opacity:0;pointer-events:none}@keyframes breathe{50%{transform:scale(1.08)}}.seo{z-index:17;max-width:340px;color:var(--ink);font-size:13px;position:fixed;bottom:18px;right:70px}.seo summary{clip:rect(0 0 0 0);width:1px;height:1px;position:absolute;overflow:hidden}.seo[open]{background:var(--cream);box-shadow:var(--shadow);border-radius:16px;padding:16px 18px;bottom:70px}.seo h1{color:var(--green);margin:0 0 8px;font-size:16px}.install-card{z-index:30;border-radius:18px;grid-template-columns:auto 1fr;gap:10px 12px;width:min(340px,100vw - 32px);padding:16px;display:grid;position:fixed;bottom:120px;right:16px}.install-card strong{margin-bottom:2px;display:block}.install-card p{margin:0}.install-card .row{grid-column:1/-1;justify-content:flex-end}@media (width<=720px){.hide-sm,.music input,.brand span{display:none}.dock{left:auto;right:8px;bottom:calc(8px + var(--safe-b));transform:none}.dock-btn{min-width:0;padding:6px 7px;font-size:10.5px}.dock-sep{display:none}.joystick{bottom:calc(80px + var(--safe-b));width:88px;height:88px;left:12px}.context-bar{bottom:calc(80px + var(--safe-b));justify-content:flex-end;max-width:calc(100vw - 120px);left:auto;right:10px;transform:none}.notice{max-width:calc(100vw - 130px);font-size:13px;top:60px}.panel{border-radius:22px;width:auto;height:72vh;inset:auto 8px 8px}.seo{bottom:80px;right:64px}}:root{--glass:#fcf9f3c7;--shadow:0 1px 0 #ffffffb3 inset, 0 12px 32px -8px #1c160e59, 0 2px 6px #1c160e1f;--gold-grad:linear-gradient(135deg, #e9c477, #c99a45);--green-grad:linear-gradient(180deg, #3d5d4a, #2c4637)}.glass{background:linear-gradient(#fffdf8db,#f7f1e6c7);border:1px solid #ffffffbf}.topbar{border-radius:18px;gap:4px;padding:6px 10px}.brand span{letter-spacing:.5px}.chip{border-radius:999px;transition:background .2s}.chip.toggle{background:#2f4a3a1a}.chip.toggle[aria-pressed=true]{background:var(--green-grad);box-shadow:0 2px 8px #2f4a3a59}.rail-btn{background:linear-gradient(#fffdf8e6,#f6efe3d1);border-radius:16px;transition:transform .18s,box-shadow .18s}.rail-btn:hover{transform:translateY(-2px);box-shadow:0 16px 30px -10px #1c160e73}.rail-btn:active{transform:translateY(0)scale(.97)}.dock-btn{border-radius:14px;transition:background .2s,color .2s,transform .15s}.dock-btn:active{transform:scale(.95)}.dock-btn[aria-pressed=true]{background:var(--green-grad);color:#fff;box-shadow:0 4px 12px #2f4a3a59}.context-bar .act{background:var(--green-grad);letter-spacing:.2px;border:1px solid #ffffff2e;font-weight:600;transition:transform .15s;box-shadow:0 8px 22px -6px #1c281e8c}.context-bar .act:hover{transform:translateY(-2px)}.context-bar .act.gold{background:var(--gold-grad);color:#3a2608}.context-bar .act.soft{color:var(--green);background:#fcf9f3e0;border-color:#fffc}.panel{background:radial-gradient(120% 60% at 100% 0,#e7b65c1f,#0000 60%),linear-gradient(#fdfaf4,#f7f1e6);border:1px solid #fffc;box-shadow:0 30px 60px -20px #1c160e80,0 4px 12px #1c160e1a}.panel-head{border-bottom:1px solid var(--line);margin:0 4px;padding-bottom:14px}.panel-head h2{font-size:22px}.panel-body{padding-top:14px}.panel-body h3{align-items:center;gap:8px;display:flex}.panel-body h3:before{content:"";background:var(--gold-grad);border-radius:2px;width:4px;height:14px}.btn{background:var(--green-grad);font-weight:600;transition:transform .12s,filter .2s;box-shadow:inset 0 1px #ffffff26,0 6px 14px -6px #1c281e99}.btn:hover{background:var(--green-grad);filter:brightness(1.08)}.btn:active{transform:scale(.98)}.btn.ghost{background:#2f4a3a14;font-weight:500;box-shadow:inset 0 0 0 1px #2f4a3a1f}.btn.ghost:hover{filter:none;background:#2f4a3a24}.btn.warn{background:linear-gradient(#c2645a,#a24a41)}.locker-card{background:#fff;border:1px solid #2334280f;transition:transform .15s,box-shadow .15s;box-shadow:inset 0 1px #fffc,0 4px 12px -6px #1c160e40}.locker-card:hover{transform:translateY(-2px);box-shadow:0 12px 22px -10px #1c160e59}.locker-card.free{background:linear-gradient(#fbfdf9,#f2f6ef);box-shadow:inset 0 0 0 1px #3f64502e}.locker-card.mine{box-shadow:inset 0 0 0 2px #e3b04f,0 8px 18px -8px #c8963c99}.memorial-photo{border:6px solid #fff;border-radius:20px;box-shadow:0 14px 30px -14px #1c160e99}.memorial-name{font-size:30px}.action-grid button{background:linear-gradient(#fff,#faf6ee);border-radius:16px;transition:transform .15s,box-shadow .15s}.action-grid button:hover{box-shadow:inset 0 0 0 1px var(--green-2), 0 8px 16px -8px #1c281e66;transform:translateY(-2px)}.letter,.memorial-intro,.gift-shelf,.tree-card,.shop-item,.place-list button{border:1px solid #2334280f;box-shadow:inset 0 1px #ffffffe6,0 3px 10px -6px #1c160e40}.shop-item{transition:transform .15s}.shop-item:hover{transform:translateY(-2px)}.dialog{background:radial-gradient(120% 50% at 100% 0,#e7b65c1f,#0000 60%),linear-gradient(#fdfaf4,#f7f1e6);border:1px solid #ffffffd9;box-shadow:0 40px 80px -24px #14100a99}.dialog[open]{animation:.22s dlg-in}@keyframes dlg-in{0%{opacity:0;transform:translateY(10px)scale(.98)}}.code-box{letter-spacing:1px;text-align:center;word-break:break-all;-webkit-user-select:all;user-select:all;color:var(--green);background:#fff;border:1px dashed #2f4a3a59;border-radius:12px;margin:12px 0 8px;padding:14px;font-family:ui-monospace,Cascadia Mono,Consolas,monospace;font-size:15px}.nametag{text-shadow:0 1px 2px #000000e6,0 0 6px #00000073;font-size:16px}.loading strong{letter-spacing:1px;font-family:Jua,sans-serif;font-size:34px}.loading p{color:#cdbb98;margin:0;font-family:Gowun Dodum,sans-serif;font-size:14px}.loading-messages{text-align:center;display:grid}.loading-messages p{opacity:0;grid-area:1/1;animation:9s linear infinite loading-message}.loading-messages p:nth-child(2){animation-delay:3s}.loading-messages p:nth-child(3){animation-delay:6s}@keyframes loading-message{0%,30%{opacity:1}33.333%,to{opacity:0}}@media (prefers-reduced-motion:reduce){.loading-messages p{animation:none}.loading-messages p:first-child{opacity:1}}.loading img{filter:drop-shadow(0 0 24px #e7b65c73);border-radius:18px}.loading-track{background:#ffffff1f;border-radius:2px;width:min(260px,70vw);height:4px;margin-top:8px;overflow:hidden}.loading-track i{background:var(--gold-grad);width:0;height:100%;transition:width .25s;display:block;box-shadow:0 0 12px #e7b65ccc}.loading{color:#60574b;background:#f4f0e8;gap:0}.loading:before{content:"";pointer-events:none;border:1px solid #d6cbbd;position:absolute;inset:13px}.loading img{filter:none;border-radius:13px;width:58px;height:58px;margin-bottom:29px;animation:none;box-shadow:0 8px 28px #957e6330}.loading strong{color:#60574b;letter-spacing:.04em;font:700 31px Gowun Batang,serif}.loading-subtitle,.loading-footer{letter-spacing:.24em;color:#8a775d;font:500 11px Cormorant Garamond,Georgia,serif}.loading-subtitle{margin-top:12px;animation:3s ease-in-out infinite loading-subtitle-drift}@keyframes loading-subtitle-drift{0%,to{opacity:.7;transform:translateY(0)}50%{opacity:1;transform:translateY(-3px)}}@media (prefers-reduced-motion:reduce){.loading-subtitle{animation:none}}.loading-divider{background:#c1ac90;width:1px;height:44px;margin-top:26px}.loading-messages{min-height:24px;margin-top:22px;padding:0 24px}.loading-messages p{color:#60574b;font:400 14px/1.7 Gowun Batang,serif}.loading-track{background:#cdbfae;border-radius:0;width:100px;height:1px;margin-top:31px}.loading-track i{box-shadow:none;background:#8a775d}.loading-footer{bottom:calc(31px + var(--safe-b));position:absolute}.zone-title{letter-spacing:1px;text-shadow:0 2px 18px #0009,0 0 2px #0009;font-size:30px}.toast{background:linear-gradient(#2f4a3af2,#23382cf2);border:1px solid #ffffff1f;border-radius:14px}.name-wall{flex-wrap:wrap;gap:6px;display:flex}.name-wall button{color:#5a4320;background:linear-gradient(#fffaf0,#f3e7cf);border-radius:999px;padding:6px 12px;font-family:Jua,sans-serif;font-size:15px;box-shadow:inset 0 0 0 1px #c8a05a66}.name-wall button:hover{box-shadow:inset 0 0 0 1px #c9a25b,0 4px 10px -4px #966e2880}.music-pop{z-index:35;border-radius:18px;flex-direction:column;gap:10px;width:min(370px,100vw - 20px);max-height:calc(100dvh - 76px);padding:14px 16px;font-size:13.5px;display:flex;position:absolute;top:60px;left:10px;overflow-y:auto;box-shadow:0 24px 48px -16px #14100a8c}.music-pop[hidden]{display:none!important}.music-pop-head{justify-content:space-between;align-items:flex-start;gap:8px;display:flex}.music-pop-head p{margin:2px 0 0}.music-mode-bar{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.music-track-list{flex-direction:column;gap:6px;max-height:290px;padding-right:4px;display:flex;overflow-y:auto}.music-track-item{text-align:left;background:#ffffffb8;border:1px solid #2f4a3a1f;border-radius:12px;justify-content:space-between;align-items:center;gap:10px;padding:9px 11px;transition:transform .12s,background .15s,border-color .15s;display:flex}.music-track-item:hover{background:#fff;transform:translateY(-1px)}.music-track-item.active{background:linear-gradient(#fffdf7,#f4ebd8);border-color:#d4a64a;box-shadow:inset 0 0 0 1px #d4a64a73}.music-track-info{flex:1;min-width:0}.music-track-title{color:var(--ink);align-items:center;gap:6px;font-size:14px;font-weight:700;display:flex}.music-track-badge{color:var(--green);background:#2f4a3a1a;border-radius:999px;padding:2px 7px;font-size:11px;font-weight:600}.music-track-item.active .music-track-badge{background:var(--green);color:#fff}.music-track-desc{color:var(--ink-soft);white-space:nowrap;text-overflow:ellipsis;margin:2px 0 0;font-size:12px;overflow:hidden}.music-track-actions{flex:none;align-items:center;gap:4px;display:flex}.music-play-pill{background:var(--green-soft);color:var(--green);border-radius:999px;padding:5px 10px;font-size:12px;font-weight:600}.music-track-item.active .music-play-pill{background:var(--green-grad);color:#fff}.music-scrubber{border-top:1px solid var(--line);flex-direction:column;gap:4px;padding-top:8px;display:flex}.music-scrubber-top{justify-content:space-between;align-items:center;font-size:12.5px;font-weight:600;display:flex}.music-scrubber input[type=range]{width:100%;accent-color:var(--green)}.action-grid.six{grid-template-columns:repeat(3,1fr)}.decor-items{grid-template-columns:repeat(4,1fr);gap:6px;display:grid}.decor-items button{box-shadow:inset 0 0 0 1px var(--line);background:#fff;border-radius:12px;flex-direction:column;align-items:center;gap:2px;padding:8px 2px;font-size:11.5px;display:flex}.decor-items button b{font-size:22px;font-weight:400}.decor-items button[aria-pressed=true]{box-shadow:inset 0 0 0 2px var(--gold);background:#fff8e8}.hud-top{z-index:20;pointer-events:none;justify-content:space-between;align-items:center;display:flex;position:absolute;top:12px;left:12px;right:12px}.hud-top>*{pointer-events:auto}.hud-pill{border-radius:999px;align-items:center;gap:4px;height:44px;padding:0 6px 0 8px;display:flex}.hud-pill .brand{gap:7px;padding:0 4px;font-size:18px}.hud-pill .live{height:30px;color:var(--ink-soft);background:#2f4a3a0f;border-radius:999px;align-items:center;gap:6px;padding:0 11px;font-size:12.5px;transition:background .2s;display:flex}.hud-pill .live:hover{background:#2f4a3a1f}.hud-pill .live .dot{background:#6cbf73;border-radius:50%;width:7px;height:7px;box-shadow:0 0 0 3px #6cbf7338}.hud-right{gap:8px;display:flex}.round-btn{width:44px;height:44px;color:var(--green);border-radius:50%;place-items:center;transition:transform .15s,background .2s;display:grid}.round-btn:hover{transform:translateY(-1px)}.round-btn:active{transform:scale(.95)}.round-btn svg{fill:none;stroke:currentColor;stroke-width:1.8px;stroke-linecap:round;stroke-linejoin:round;width:20px;height:20px}#music-btn .on{display:none}#music-btn[aria-pressed=true]{background:var(--green-grad);color:#fff;border-color:#0000}#music-btn[aria-pressed=true] .on{display:block}#music-btn[aria-pressed=true] .off{display:none}#menu-btn[aria-expanded=true]{background:var(--green);color:#fff}.menu-sheet{z-index:36;transform-origin:100% 0;border-radius:18px;flex-direction:column;width:264px;padding:6px;animation:.18s pop-in;display:flex;position:absolute;top:64px;right:12px;box-shadow:0 24px 48px -16px #14100a80}.menu-sheet[hidden]{display:none}.menu-group{flex-direction:column;padding:4px 0;display:flex}.menu-group+.menu-group{border-top:1px solid var(--line)}.menu-item{width:100%;color:var(--ink);text-align:left;border-radius:11px;align-items:center;gap:10px;padding:9px 10px;font-size:14px;transition:background .15s;display:flex}.menu-item:hover{background:#2f4a3a12}.menu-item b{text-align:center;width:22px;font-size:16px;font-weight:400}.menu-item span{flex:1}.menu-item small{color:var(--ink-soft);text-overflow:ellipsis;white-space:nowrap;max-width:90px;font-size:11.5px;overflow:hidden}.menu-volume{color:var(--ink-soft);align-items:center;gap:10px;padding:4px 10px 8px 42px;font-size:12px;display:flex}.menu-volume input{accent-color:var(--green);flex:1}.menu-sns{flex-direction:column;gap:8px;padding:8px 10px 6px 42px;font-size:12.5px;display:flex}.menu-sns p{color:var(--ink-soft);margin:0}.menu-sns a{color:var(--ink-soft);text-decoration:none}.menu-sns a:hover{color:var(--green)}.music-pop{top:64px;left:auto;right:12px}.dock{border-radius:22px;gap:2px;padding:6px}.dock-btn{min-width:76px;color:var(--ink-soft);gap:4px;padding:8px 12px;font-size:12px}.dock-btn:hover{color:var(--green);background:#2f4a3a0f}.dock-btn svg{width:22px;height:22px}.dock .badge{right:22px}.notice{border-radius:999px;gap:8px;max-width:min(520px,100vw - 420px);height:44px;padding:0 6px 0 16px;font-size:13px;top:12px}.notice p{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.walk-chip{z-index:16;height:34px;color:var(--green);border-radius:999px;align-items:center;gap:8px;padding:0 8px 0 14px;font-size:13px;display:flex;position:absolute;top:66px;left:50%;transform:translate(-50%)}.walk-chip[hidden]{display:none}.walk-chip i{background:#2f4a3a1a;border-radius:50%;place-items:center;width:20px;height:20px;font-size:13px;font-style:normal;display:grid}@media (hover:hover) and (pointer:fine){.joystick{display:block}}@media (width<=720px){.hud-top{top:8px;left:8px;right:8px}.hud-pill .brand span{display:none}.notice{border-radius:16px;max-width:none;height:auto;min-height:40px;padding:8px 6px 8px 14px;top:60px;left:8px;right:8px;transform:none}.notice p{white-space:normal}.walk-chip{top:110px}.menu-sheet,.music-pop{top:58px;right:8px}.dock{justify-content:space-around;left:8px;right:8px;transform:none}.dock-btn{flex:1;min-width:0;padding:7px 4px;font-size:11px}}.server-btn{height:30px;color:var(--green);background:#2f4a3a14;border-radius:999px;align-items:center;gap:2px;padding:0 6px 0 10px;font-size:12.5px;font-weight:600;transition:background .2s;display:flex}.server-btn:hover,.server-btn[aria-expanded=true]{background:#2f4a3a26}.server-btn svg{fill:none;stroke:currentColor;stroke-width:2px;stroke-linecap:round;stroke-linejoin:round;width:15px;height:15px}.server-pop{z-index:36;border-radius:18px;flex-direction:column;gap:12px;width:min(360px,100vw - 24px);padding:14px;animation:.18s pop-in;display:flex;position:absolute;top:64px;left:12px;box-shadow:0 24px 48px -16px #14100a80}.server-pop[hidden]{display:none}.server-head{justify-content:space-between;align-items:flex-start;display:flex}.server-head p{margin:2px 0 0}.server-list{grid-template-columns:repeat(5,1fr);gap:6px;max-height:min(52vh,360px);padding:2px;display:grid;overflow-y:auto}.server-choice{box-shadow:inset 0 0 0 1px var(--line);background:#ffffffb3;border-radius:12px;flex-direction:column;align-items:center;gap:1px;padding:8px 2px 10px;transition:transform .12s,box-shadow .15s;display:flex;position:relative;overflow:hidden}.server-choice:hover:not(:disabled){box-shadow:inset 0 0 0 1.5px var(--green);transform:translateY(-1px)}.server-choice b{color:var(--ink);font-size:15px}.server-choice span{color:var(--ink-soft);font-size:11px}.server-choice i{background:#8cc792;border-radius:0 2px 2px 0;height:3px;position:absolute;bottom:0;left:0}.server-choice.busy i{background:#e2b25a}.server-choice.full i{background:var(--rose)}.server-choice.full{opacity:.45}.server-choice.empty span{color:#5d6b6199}.server-choice.here{background:var(--green-grad);box-shadow:none}.server-choice.here b,.server-choice.here span{color:#fff}.server-choice.here i{background:#ffffff8c}.server-foot{justify-content:space-between;display:flex}@media (width<=720px){.server-pop{top:58px;left:8px}}.date-input{align-items:center;gap:6px;display:flex}.date-input input{letter-spacing:1.5px;font-variant-numeric:tabular-nums;flex:1}.date-input .chip{background:#2f4a3a14;padding:8px 12px}.date-hint{min-height:1em;color:var(--green);font-size:12px}.date-hint.bad{color:#b4544b}.menu-season{color:var(--ink);align-items:center;gap:10px;padding:9px 10px 4px;font-size:14px;display:flex}.menu-season b{text-align:center;width:22px;font-size:16px;font-weight:400}.season-seg{flex-wrap:wrap;gap:4px;padding:2px 10px 8px 42px;display:flex}.season-seg button{color:var(--ink-soft);background:#2f4a3a0f;border-radius:999px;padding:4px 9px;font-size:12px}.season-seg button[aria-pressed=true]{background:var(--green);color:#fff}.dock:has([data-open=quick-claim]){align-items:stretch}.dock [data-open=quick-claim] span{word-break:keep-all;line-height:1.4}.hud-pill .brand span{white-space:nowrap;display:inline}#presence-btn,#server-refresh,#server-total,.server-choice span,.server-choice i{display:none}@media (width<=380px){.hud-pill .brand{gap:4px;font-size:16px}.server-btn{padding-left:6px;font-size:11px}}#server-auto{display:none}.server-choice span{display:block}.server-foot{display:none}html,body{overscroll-behavior:none}.menu-group[hidden]{display:none}.menu-item[href]{text-decoration:none}.camera-joystick{left:auto;right:18px}.camera-joystick:after{content:"시점";color:#fff;text-shadow:0 1px 4px #000b;pointer-events:none;white-space:nowrap;font-size:11px;position:absolute;bottom:-21px;left:50%;transform:translate(-50%)}.browser-notice{z-index:10000;background:#10181399;place-items:center;padding:20px;display:grid;position:fixed;inset:0}.browser-notice-card{color:#233428;background:#fbf8f1;border-radius:22px;width:min(100%,380px);padding:26px 22px 20px;box-shadow:0 12px 38px #0003}.browser-notice-card h2{margin:0 0 12px;font-size:20px}.browser-notice-card p{margin:0 0 14px;font-size:14px;line-height:1.55}.browser-notice-hint{color:#5d6b61}.browser-notice-actions{gap:8px;display:grid}.browser-notice-primary,.browser-notice-close{text-align:center;width:100%;font:inherit;border-radius:12px;padding:13px;font-weight:700;text-decoration:none;display:block}.browser-notice-primary{color:#fff;background:#2f4a3a}.browser-notice-close{color:#2f4a3a;background:#e9eee7}@media (width<=720px){#app{top:var(--visible-top,0px);height:var(--visible-height,100dvh);bottom:auto}.dock{bottom:max(12px, env(safe-area-inset-bottom,0px))}.joystick{bottom:calc(110px + max(12px, env(safe-area-inset-bottom,0px)))}.camera-joystick{left:auto;right:12px}.context-bar{justify-content:center;max-width:none;left:108px;right:108px}.context-bar .act{max-width:100%}}.sprint-button{color:#294334;width:100%;min-height:44px;font:inherit;touch-action:manipulation;cursor:pointer;background:#ffffffeb;border:1px solid #ffffffb3;border-radius:16px;font-size:12px;font-weight:700;position:absolute;bottom:calc(100% + 10px);left:0;box-shadow:0 3px 12px #0002}.sprint-button[aria-pressed=true]{color:#fff;background:#294e38}.sprint-button:focus-visible{outline-offset:3px;outline:3px solid #d8b365}.sit-button{bottom:calc(100% + 64px)}.photo-editor{grid-template-columns:repeat(auto-fill,minmax(85px,1fr));gap:10px;width:100%;display:grid}.photo-editor-item{aspect-ratio:1;min-width:0;position:relative}.photo-editor-item img{object-fit:cover;border-radius:10px;width:100%;height:100%}.photo-editor-item button{color:#334c3e;cursor:pointer;background:#fffaf0;border:0;border-radius:50%;min-width:36px;min-height:36px;font-size:24px;position:absolute;top:0;right:0}.photo-form-error{color:#a43b32;min-height:1em}.photo-file-picker{text-align:center;position:relative;overflow:hidden}.photo-file-picker .photo-file-input{opacity:0;cursor:pointer;width:100%;height:100%;margin:0;padding:0;position:absolute;inset:0}.photo-file-picker:focus-within{outline:2px solid var(--green);outline-offset:2px}.photo-file-picker.disabled{opacity:.5;cursor:default}.photo-replace-picker{background:#fffaf0f0;min-height:36px;padding:6px 4px;font-size:12px;position:absolute;bottom:4px;left:4px;right:4px}.memorial-gallery{aspect-ratio:1.6;background:#e8dfcf;border-radius:12px;width:100%;margin:0 auto 14px;position:relative;overflow:hidden}.memorial-gallery button{cursor:pointer;background:0 0;border:0;padding:0;position:absolute;overflow:hidden}.memorial-gallery img{object-fit:cover;width:100%;height:100%;display:block}.memorial-gallery button:focus-visible{outline-offset:-3px;outline:3px solid #c49538}.memorial-full-photo{object-fit:contain;max-width:100%;max-height:70vh;margin:auto;display:block}.field input[type=tel],.field input[type=email],.field input[type=password]{border:1px solid var(--line);background:#fff;border-radius:12px;outline:none;width:100%;padding:11px 12px;font-size:14px}.walk-pets{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:18px 0;display:grid}.walk-pet{border:1px solid var(--line);cursor:pointer;text-align:center;border-radius:16px;flex-direction:column;justify-content:center;align-items:center;gap:5px;min-height:104px;padding:9px 8px;display:flex;position:relative}.walk-pet:has(input:checked){border-color:var(--green);background:var(--green-soft)}.walk-pet:focus-within{outline:2px solid var(--green);outline-offset:3px}.walk-pet input{width:16px;height:16px;accent-color:var(--green);margin:0;position:absolute;top:9px;left:9px}.walk-pet img,.walk-pet-icon{object-fit:cover;border-radius:12px;width:42px;height:42px}.walk-pet-icon{background:#eee7da;place-items:center;font-size:30px;display:grid}.walk-pet-label{white-space:nowrap;flex-direction:column;align-items:center;gap:2px;min-width:0;display:flex}.walk-pet-label small{color:var(--ink-soft);font-size:12px}.walk-preview{z-index:2;height:150px;color:var(--ink-soft);text-align:center;background:linear-gradient(#edf4e9,#d9e8d8);border-radius:16px;place-items:center;display:grid;position:sticky;top:0;overflow:hidden}.walk-preview canvas{width:100%;height:100%;display:block}.walk-custom{gap:10px;margin:14px 0 18px;display:grid}.walk-custom label{align-items:center;gap:12px;min-height:42px;display:flex}.walk-custom label span{min-width:58px;font-size:14px;font-weight:700}.walk-custom input[type=color]{border:1px solid var(--line);background:#fff;border-radius:8px;width:54px;height:38px;padding:2px}.walk-custom input[type=range],.walk-custom select{flex:1;min-width:0}.dialog:has(.walk-preview){overflow:hidden}.menu-item b.donation-heart{color:#df3d46;font-size:23px;line-height:1}.donation{text-align:center;color:var(--green);padding:4px 0}.donation .donation-description{color:var(--green);letter-spacing:-.4px;word-break:keep-all;margin:0 0 17px;font-size:15px;line-height:1.7}.donation-qr-card{background:#f7f8fa;border:1px solid #eeeee7;border-radius:18px;width:234px;max-width:100%;margin:0 auto 16px;padding:16px}.donation-qr-brand{text-align:left;color:#131a1a;margin:0 0 12px;font-family:sans-serif;font-size:13px;font-weight:900}.donation-qr-window{aspect-ratio:1;background:#f7f8fa;position:relative;overflow:hidden}.donation-qr-window img{width:170.6%;max-width:none;position:absolute;top:-44.5%;left:-35.3%}.donation-pay{color:#191919;background:#fee500;border:1px solid #fee500;border-radius:14px;justify-content:center;align-items:center;gap:9px;min-height:52px;padding:12px;font-size:16px;font-weight:700;text-decoration:none;display:flex}.donation-pay:hover{background:#f5db00}.donation-pay:focus-visible{outline:3px solid var(--green);outline-offset:3px}.donation-bubble{flex:none;display:flex}.donation-bubble svg{width:23px;height:23px}.donation-bank{text-align:left;background:#f0f1e8;border:1px solid #dce0d1;border-radius:14px;margin-top:12px;padding:13px 16px}.donation-bank-head{color:#687565;justify-content:space-between;align-items:center;gap:12px;font-size:13px;display:flex}.donation-bank-head strong{color:var(--green)}.donation-bank-number{letter-spacing:.5px;font-variant-numeric:tabular-nums;overflow-wrap:anywhere;margin-top:6px;font-size:21px;font-weight:700;display:block}.donation-foot{color:#717d70;border-top:1px solid #dddccf;margin-top:16px;padding-top:12px;font-size:12px;line-height:1.8}.donation .donation-thanks{color:#596a52;margin:0;font-family:Gowun Batang,serif;font-size:13px}@media (width<=720px){#panel:has(.donation){height:min(660px,100dvh - 16px);max-height:calc(100dvh - 16px);top:auto;bottom:8px}}@media (height<=720px){.donation .donation-description{margin-bottom:12px;font-size:14px}.donation-qr-card{width:204px;margin-bottom:12px;padding:14px}.donation-qr-brand{margin-bottom:9px}.donation-bank{padding-top:11px;padding-bottom:11px}.donation-foot{margin-top:12px;padding-top:10px}}.wish-heading{align-items:center;gap:10px;display:flex}.wish-heading h2{margin:0}.wish-heading-icon{color:#b8874c;background:#f7ead3;border-radius:50%;place-items:center;width:38px;height:38px;font-size:22px;display:grid}.wish-description{color:#64736a;margin:14px 0 18px;line-height:1.6}.wish-note{color:#6e7c72;margin:4px 0 0;font-size:12px;line-height:1.5}.wish-error{color:#b43e37;min-height:1em;margin:6px 0;font-size:13px}.wish-actions{justify-content:flex-end;margin-top:16px}.wish-flight{z-index:12000;pointer-events:none;animation:8s both wish-scene;position:fixed;inset:0;overflow:hidden}.wish-flight-sky{background:radial-gradient(at 50% 100%,#9e623c47,#0000 62%),linear-gradient(#142439eb,#3a4654db 62%,#685e59a8);position:absolute;inset:0}.wish-flight-stars{opacity:.65;background-image:radial-gradient(#fff8e8 1px,#0000 1.5px),radial-gradient(#ffe3ae 1px,#0000 1.5px);background-position:18px 12px,72px 53px;background-size:93px 111px,157px 143px;position:absolute;inset:0}.wish-lantern{filter:drop-shadow(0 0 26px #ffbe5ab8);width:132px;height:174px;animation:7.5s cubic-bezier(.35,.05,.55,1) both wish-rise;position:absolute;bottom:5%;left:50%;transform:translate(-50%)}.wish-lantern-paper{background:linear-gradient(90deg,#d68c4e,#ffe1a1 27%,#fff2c7 50%,#ffd08a 77%,#cf7d3e);border:1px solid #d99450;border-radius:24% 24% 18% 18%/14% 14% 27% 27%;justify-content:center;align-items:center;padding:19px 16px;display:flex;position:absolute;inset:0 0 13px;box-shadow:inset 0 0 20px #c26c3977,inset 0 -24px 25px #efaa5b55}.wish-lantern-paper:before,.wish-lantern-paper:after{content:"";background:#b6714270;width:1px;position:absolute;top:8%;bottom:8%}.wish-lantern-paper:before{left:21%}.wish-lantern-paper:after{right:21%}.wish-lantern-message{z-index:1;white-space:pre-wrap;overflow-wrap:anywhere;text-align:center;color:#75452e;max-height:100%;font-size:12px;font-weight:600;line-height:1.35;position:relative;overflow:hidden}.wish-lantern-message.long{font-size:10px;line-height:1.2}.wish-lantern-base{background:#a65f38;border-radius:50%;height:9px;position:absolute;bottom:9px;left:24%;right:24%}.wish-lantern-flame{background:#ffe6a1;border-radius:75% 20% 65% 45%;width:10px;height:18px;position:absolute;bottom:4px;left:50%;transform:translate(-50%)rotate(45deg);box-shadow:0 0 18px 5px #fcb65c}.wish-flight-caption{text-align:center;color:#fff4dc;letter-spacing:.06em;text-shadow:0 2px 8px #262026;width:100%;font-size:14px;animation:5s both wish-caption;position:absolute;bottom:12%}@keyframes wish-rise{0%{opacity:0;transform:translate(-50%,20%)scale(.95)}12%{opacity:1}35%{transform:translate(-52%,-20vh)scale(.9)}to{opacity:.15;transform:translate(-40%,-100vh)scale(.25)}}@keyframes wish-caption{0%,to{opacity:0}20%,65%{opacity:1}}@keyframes wish-scene{0%{opacity:0}7%,85%{opacity:1}to{opacity:0}}@media (prefers-reduced-motion:reduce){.wish-flight{animation-duration:4s}.wish-lantern{animation:none;bottom:35%}.wish-flight-caption{animation-duration:3s}}
