:root{--night-1:#1b1f3b;--night-2:#2c2a55;--night-3:#46407a;--lavender:#b9a9e8;--blue:#a9c8f0;--cream:#fbf5ea;--cream-2:#f2e9da;--gold:#f3cf7a;--gold-deep:#d9a94a;--ink:#2a2640;--ink-soft:#6a6585;--danger:#c4566a;--radius:18px;--shadow:0 10px 30px #0a082859}*{box-sizing:border-box}html,body{min-height:100%;margin:0;padding:0}body{color:var(--cream);background:radial-gradient(120% 80% at 50% 0%, var(--night-3) 0%, var(--night-2) 40%, var(--night-1) 100%) fixed;-webkit-font-smoothing:antialiased;word-break:keep-all;font-family:-apple-system,BlinkMacSystemFont,Apple SD Gothic Neo,Pretendard,Noto Sans KR,sans-serif}a{color:inherit}button,input,textarea,select{font:inherit}.page{max-width:520px;margin:0 auto;padding:16px 16px 48px}.topbar{justify-content:space-between;align-items:center;gap:8px;padding:4px 0 12px;display:flex}.brand{letter-spacing:-.02em;align-items:center;gap:6px;font-weight:700;text-decoration:none;display:flex}.brand .star{color:var(--gold)}.mode-banner{color:var(--gold);background:#f3cf7a24;border:1px solid #f3cf7a59;border-radius:12px;margin-bottom:16px;padding:8px 12px;font-size:12px;line-height:1.5}.card{background:var(--cream);color:var(--ink);border-radius:var(--radius);box-shadow:var(--shadow);padding:20px}.card+.card{margin-top:14px}h1{letter-spacing:-.02em;margin:8px 0;font-size:24px;line-height:1.35}h2{letter-spacing:-.01em;margin:0 0 12px;font-size:18px}.muted{color:var(--ink-soft);font-size:14px;line-height:1.6}.lead{color:#fbf5eac7;margin:0 0 20px;line-height:1.7}.btn{cursor:pointer;border:none;border-radius:999px;justify-content:center;align-items:center;gap:6px;min-height:48px;padding:0 20px;font-weight:600;text-decoration:none;transition:transform .1s,opacity .2s;display:inline-flex}.btn:active{transform:scale(.98)}.btn:disabled{opacity:.5;cursor:default}.btn-primary{background:linear-gradient(180deg, var(--gold) 0%, var(--gold-deep) 100%);color:#3b2a10}.btn-soft{background:var(--cream-2);color:var(--ink)}.btn-ghost{color:var(--cream);background:#ffffff1a;border:1px solid #fff3}.btn-danger{color:var(--danger);background:0 0;border:1px solid #c4566a66}.btn-block{width:100%}.stack{flex-direction:column;gap:12px;display:flex}.row{flex-wrap:wrap;gap:10px;display:flex}.field{flex-direction:column;gap:6px;margin-bottom:16px;display:flex}.field label{font-size:14px;font-weight:600}.field .hint{color:var(--ink-soft);font-size:12px}.input,.textarea,.select{width:100%;color:var(--ink);background:#fff;border:1px solid #ddd2c0;border-radius:12px;padding:12px 14px;font-size:16px}.textarea{resize:vertical;min-height:88px;line-height:1.6}.chips{flex-wrap:wrap;gap:8px;display:flex}.chip{color:var(--ink);cursor:pointer;background:#fff;border:1px solid #ddd2c0;border-radius:999px;padding:8px 14px;font-size:14px}.chip[aria-pressed=true]{background:var(--night-2);border-color:var(--night-2);color:var(--cream)}.error{color:var(--danger);background:#fde8ec;border-radius:12px;justify-content:space-between;align-items:center;gap:10px;margin:12px 0;padding:12px 14px;font-size:14px;line-height:1.5;display:flex}.photo-grid{grid-template-columns:repeat(3,1fr);gap:8px;display:grid}.photo-grid .photo{aspect-ratio:1;background:var(--cream-2);border-radius:12px;position:relative;overflow:hidden}.photo-grid img{object-fit:cover;width:100%;height:100%;display:block}.photo-grid .remove{color:#fff;cursor:pointer;background:#141028a6;border:none;border-radius:50%;width:30px;height:30px;font-size:16px;line-height:1;position:absolute;top:6px;right:6px}.photo-add{aspect-ratio:1;color:var(--ink-soft);cursor:pointer;background:0 0;border:2px dashed #d6c9b2;border-radius:12px;flex-direction:column;justify-content:center;align-items:center;font-size:13px;display:flex}.pet-card{align-items:center;gap:14px;text-decoration:none;display:flex}.pet-card .thumb{background:var(--cream-2);border-radius:50%;flex:none;width:64px;height:64px;overflow:hidden}.pet-card .thumb img{object-fit:cover;width:100%;height:100%}.tag{background:var(--cream-2);color:var(--ink-soft);border-radius:999px;padding:3px 8px;font-size:11px;font-weight:600;display:inline-block}.tag-temp{color:var(--gold);background:#f3cf7a33;border:1px solid #f3cf7a66}.footer-note{color:#fbf5ea8c;text-align:center;margin-top:28px;font-size:12px;line-height:1.7}.center-screen{text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:12px;min-height:60vh;display:flex}.preview-3d{border-radius:var(--radius);background:radial-gradient(circle at 50% 30%,#4a4386 0%,#22254a 100%);height:300px;position:relative;overflow:hidden}.preview-3d .actions{justify-content:center;gap:6px;display:flex;position:absolute;bottom:10px;left:0;right:0}.preview-3d .actions .chip{background:#ffffffd9;padding:6px 12px;font-size:13px}.color-row{border-bottom:1px solid #eee3d1;align-items:center;gap:10px;padding:8px 0;display:flex}.color-row:last-child{border-bottom:none}.color-row .label{flex:1;font-size:14px}.swatch{cursor:pointer;border:2px solid #fff;border-radius:50%;flex:none;width:34px;height:34px;padding:0;box-shadow:0 0 0 1px #d6c9b2}.swatch[aria-pressed=true]{box-shadow:0 0 0 3px var(--night-2)}.picker-photo{cursor:crosshair;touch-action:manipulation;border-radius:14px;position:relative;overflow:hidden}.picker-photo img{object-fit:contain;background:#000;width:100%;max-height:340px;display:block}.picker-dot{pointer-events:none;border:3px solid #fff;border-radius:50%;width:26px;height:26px;margin:-13px 0 0 -13px;position:absolute;box-shadow:0 0 0 1px #0006}.thumb-strip{gap:8px;padding-bottom:4px;display:flex;overflow-x:auto}.thumb-strip button{cursor:pointer;border:2px solid #0000;border-radius:10px;flex:none;width:56px;height:56px;padding:0;overflow:hidden}.thumb-strip button[aria-pressed=true]{border-color:var(--night-2)}.thumb-strip img{object-fit:cover;width:100%;height:100%}input[type=range]{width:100%;accent-color:var(--night-3)}.reunion{background:#0d1030;position:fixed;inset:0}.reunion canvas{touch-action:none}.reunion-caption{left:16px;right:16px;bottom:calc(80px + env(safe-area-inset-bottom));text-align:center;color:var(--cream);text-shadow:0 2px 12px #0009;pointer-events:none;font-size:18px;line-height:1.6;transition:opacity .8s;position:absolute}.reunion-top{top:calc(12px + env(safe-area-inset-top));justify-content:space-between;align-items:center;gap:8px;display:flex;position:absolute;left:16px;right:16px}.reunion-end{text-align:center;background:linear-gradient(#0000 35%,#0d1030d9 75%);flex-direction:column;justify-content:flex-end;align-items:center;gap:14px;padding:24px;animation:1.2s both fadein;display:flex;position:absolute;inset:0;padding-bottom:calc(90px + env(safe-area-inset-bottom))!important}.reunion-end h2{font-size:22px}@keyframes fadein{0%{opacity:0}to{opacity:1}}.reunion-start{text-align:center;background:#0d10308c;flex-direction:column;justify-content:center;align-items:center;gap:16px;padding:24px;display:flex;position:absolute;inset:0}.station{-webkit-user-select:none;user-select:none;background:#121433;position:fixed;inset:0;overflow:hidden}.station canvas{touch-action:none}.station-loading{color:#fbf5eab3;justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.hud-top{top:calc(10px + env(safe-area-inset-top));pointer-events:none;position:absolute;left:16px;right:160px}.hud-title{letter-spacing:-.02em;text-shadow:0 2px 10px #00000080;font-size:17px;font-weight:700}.hud-title .star,.star{color:var(--gold)}.hud-count{color:#fbf5ead9;text-shadow:0 1px 8px #0009;margin-top:4px;font-size:13px;line-height:1.5}.hud-count b{color:var(--gold)}.hud-sub{color:#fbf5ea99;font-size:11px;display:block}.hud-debug{color:#ffb3c1;margin-top:4px;font-size:11px}.hud-right{top:calc(10px + env(safe-area-inset-top));flex-direction:column;align-items:flex-end;gap:8px;display:flex;position:absolute;right:16px}.hud-btn{min-height:38px;color:var(--cream);cursor:pointer;-webkit-backdrop-filter:blur(6px);background:#1b1f3b99;border:1px solid #ffffff40;border-radius:999px;padding:0 14px;font-size:13px;font-weight:600}.hud-btn.gold{color:#3b2a10;background:#f3cf7ae6;border-color:#0000}.hud-mode{top:calc(100px + env(safe-area-inset-top));color:var(--gold);pointer-events:none;background:#f3cf7a24;border:1px solid #f3cf7a59;border-radius:999px;padding:4px 10px;font-size:11px;position:absolute;left:16px}.hud-error{top:calc(130px + env(safe-area-inset-top));color:var(--danger);background:#fde8ec;border-radius:12px;justify-content:space-between;align-items:center;gap:8px;padding:10px 12px;font-size:13px;display:flex;position:absolute;left:16px;right:16px}.hud-error button{background:var(--danger);color:#fff;cursor:pointer;border:none;border-radius:999px;padding:6px 12px;font-size:12px}.hud-hint{left:50%;bottom:calc(34px + env(safe-area-inset-bottom));color:#fbf5eabf;white-space:nowrap;pointer-events:none;background:#1b1f3b8c;border-radius:999px;padding:6px 12px;font-size:12px;position:absolute;transform:translate(-50%)}.hud-footer{left:0;right:0;bottom:calc(8px + env(safe-area-inset-bottom));text-align:center;color:#fbf5ea73;pointer-events:none;font-size:10px;position:absolute}.joystick{left:24px;bottom:calc(40px + env(safe-area-inset-bottom));touch-action:none;background:#ffffff1a;border:1px solid #ffffff40;border-radius:50%;justify-content:center;align-items:center;width:120px;height:120px;display:flex;position:absolute}.joystick-knob{pointer-events:none;background:#fbf5ead9;border-radius:50%;width:52px;height:52px;box-shadow:0 4px 14px #0000004d}.name-tag,.staff-tag,.world-label,.star-label{white-space:nowrap;text-align:center;-webkit-user-select:none;user-select:none;border-radius:999px;padding:3px 9px;font-size:12px;line-height:1.4}.name-tag{color:var(--cream);background:#1b1f3bb3}.name-tag.me{color:#3b2a10;background:#f3cf7aeb;font-weight:700}.staff-tag{color:var(--ink);background:#fbf5eaeb;border-radius:12px;padding:4px 10px}.staff-tag.small{font-size:11px}.staff-tag .temp{color:#7a5a10;background:#f6e1a8;border-radius:999px;margin-left:6px;padding:1px 6px;font-size:10px}.tap-hint{color:#7a5a10;font-size:11px;font-weight:700;animation:1.2s ease-in-out infinite bob}@keyframes bob{0%,to{transform:translateY(0)}50%{transform:translateY(-3px)}}.world-label{color:var(--cream);background:#1b1f3bb3;border-radius:12px;padding:4px 12px;font-weight:700}.world-label span{color:#fbf5eab3;font-size:10px;font-weight:400;display:block}.world-sign{color:#6c5fb0;letter-spacing:.04em;white-space:nowrap;font-size:34px;font-weight:800}.star-label{color:var(--gold);text-shadow:0 0 8px #000000e6;opacity:.75;margin-top:22px;font-weight:700}.star-label.other{color:#4f4290;text-shadow:none;opacity:.9;background:#ffffff8c;font-size:11px;font-weight:700}.star-label.on{opacity:1;background:#f3cf7a2e}.dialog{left:16px;right:16px;bottom:calc(28px + env(safe-area-inset-bottom));max-width:560px;color:var(--ink);box-shadow:var(--shadow);cursor:pointer;background:#fbf5eaf5;border-radius:20px;margin:0 auto;padding:18px 20px 14px;animation:.3s both fadein;position:absolute}.dialog-name{background:var(--gold);color:#3b2a10;border-radius:999px;padding:4px 12px;font-size:13px;font-weight:700;position:absolute;top:-14px;left:18px}.dialog p{margin:4px 0 10px;font-size:16px;line-height:1.6}.dialog-actions{justify-content:space-between;align-items:center;font-size:13px;display:flex}.dialog-next{color:var(--ink-soft);margin-left:auto}.link-btn{color:var(--ink-soft);cursor:pointer;background:0 0;border:none;padding:4px 0;font-size:13px;text-decoration:underline}.sheet-backdrop{background:#0a081e59;justify-content:center;align-items:flex-end;animation:.2s both fadein;display:flex;position:absolute;inset:0}.sheet{background:var(--cream);width:100%;max-width:520px;color:var(--ink);padding:18px 20px calc(24px + env(safe-area-inset-bottom));box-shadow:var(--shadow);border-radius:22px 22px 0 0;max-height:80vh;overflow-y:auto}.sheet-head{justify-content:space-between;align-items:center;margin-bottom:8px;display:flex}.sheet-close{background:var(--cream-2);cursor:pointer;width:32px;height:32px;color:var(--ink);border:none;border-radius:50%;font-size:20px}.sheet-text{margin:4px 0 16px;font-size:15px;line-height:1.7}.sheet-sub{color:var(--ink-soft);margin:4px 0 12px;font-size:13px;line-height:1.6}.star-detail h3{margin:4px 0;font-size:19px}.tag-inline{color:#6b4d12;vertical-align:middle;background:#ffffff8c;border-radius:999px;margin-left:8px;padding:2px 8px;font-size:11px;font-weight:600}.mini-swatch{vertical-align:-2px;border:1px solid #00000026;border-radius:50%;width:14px;height:14px;display:inline-block}input[type=color]{background:#fff;border:1px solid #ddd2c0;border-radius:10px;width:48px;height:36px;padding:2px}.chip:disabled{opacity:.35}.caption-box{left:16px;right:16px;bottom:calc(108px + env(safe-area-inset-bottom));max-width:560px;color:var(--ink);box-shadow:var(--shadow);pointer-events:none;background:#fbf5eaf0;border-radius:18px;margin:0 auto;padding:16px 18px 14px;font-size:15px;line-height:1.6;animation:.4s both fadein;position:absolute}.caption-box .dialog-name{top:-13px}.action-bar{left:16px;right:16px;bottom:calc(26px + env(safe-area-inset-bottom));gap:8px;max-width:560px;margin:0 auto;display:flex;position:absolute}.action-bar button{min-height:62px;color:var(--cream);cursor:pointer;-webkit-backdrop-filter:blur(6px);background:#1b1f3bb8;border:1px solid #ffffff40;border-radius:18px;flex-direction:column;flex:1;justify-content:center;align-items:center;gap:2px;font-size:13px;font-weight:600;display:flex}.action-bar button span{font-size:20px}.action-bar button:disabled{opacity:.6}.float-heart{color:#f7a8b8;pointer-events:none;text-shadow:0 0 8px #ffc8d2cc;font-size:22px;animation:1.1s ease-out forwards heart-up;position:absolute;transform:translate(-50%,-50%)}@keyframes heart-up{0%{opacity:1;transform:translate(-50%,-50%)scale(.6)}to{opacity:0;transform:translate(-50%,-160%)scale(1.3)}}.pet-hand{filter:drop-shadow(0 2px 6px #0006);font-size:34px}.station.hugging:after{content:"";pointer-events:none;animation:.8s both fadein;position:absolute;inset:0;box-shadow:inset 0 0 120px 40px #f3cf7a73}.preview-3d .actions .chip[aria-pressed=true]{background:var(--night-2);color:var(--cream)}.place-title{color:#3b3560;background:#ffffffb3;border-radius:999px;padding:6px 12px;font-size:14px;font-weight:700}.action-bar.with-joystick{left:auto;right:12px;bottom:calc(26px + env(safe-area-inset-bottom));flex-direction:column;width:84px;margin:0}.action-bar.with-joystick button{flex:none;min-height:52px}.bench-btn{left:50%;top:calc(64px + env(safe-area-inset-top));position:absolute;transform:translate(-50%)}.chat-backdrop{align-items:flex-end}.chat-sheet{background:var(--cream);width:100%;max-width:560px;height:min(72vh,620px);color:var(--ink);padding:14px 16px calc(14px + env(safe-area-inset-bottom));box-shadow:var(--shadow);border-radius:22px 22px 0 0;flex-direction:column;display:flex}.ai-notice{color:#5b4a12;background:#fbf0cc;border-radius:10px;margin:4px 0 8px;padding:8px 10px;font-size:12px;line-height:1.5}.chat-list{flex-direction:column;flex:1;gap:8px;padding:4px 2px;display:flex;overflow-y:auto}.bubble{white-space:pre-wrap;border-radius:16px;max-width:82%;padding:10px 13px;font-size:15px;line-height:1.55}.bubble b{color:var(--ink-soft);margin-bottom:2px;font-size:12px;display:block}.bubble.user{background:var(--night-2);color:var(--cream);border-bottom-right-radius:4px;align-self:flex-end}.bubble.assistant{background:#fff;border:1px solid #ece2d0;border-bottom-left-radius:4px;align-self:flex-start}.bubble.typing{color:var(--ink-soft)}.chat-notice{border-radius:12px;margin:6px 0;padding:10px 12px;font-size:13px;line-height:1.6}.chat-notice.crisis{color:#8a2a3c;background:#fde8ec;font-weight:600}.chat-notice.info{color:#3b4a7a;background:#eef2fb}.chat-notice.error{color:#7a5a10;background:#fff4e0}.chat-input{gap:8px;margin-top:6px;display:flex}.chat-input .input{flex:1}.gesture-grid{grid-template-columns:1fr 1fr;gap:10px;margin:8px 0 12px;display:grid}.gesture-grid button{min-height:84px;color:var(--ink);cursor:pointer;background:#fff;border:1px solid #e4d8c3;border-radius:16px;flex-direction:column;justify-content:center;align-items:center;gap:4px;font-size:14px;font-weight:600;display:flex}.gesture-grid button span{font-size:26px}.caption-box.top{top:calc(64px + env(safe-area-inset-top));bottom:auto}.caption-box.top~.bench-btn,.bench-btn{top:calc(150px + env(safe-area-inset-top))}.toast{left:50%;top:calc(110px + env(safe-area-inset-top));color:#3b2a10;pointer-events:none;white-space:nowrap;background:#f3cf7af2;border-radius:999px;padding:10px 16px;font-size:14px;font-weight:700;animation:.3s both fadein;position:absolute;transform:translate(-50%);box-shadow:0 6px 24px #f3cf7a80}.letter-paper{background:linear-gradient(#fffaf0 0%,#fbf3e3 100%);border:1px solid #efe1c4}.sent-note{text-align:center;color:#7a5a10;margin:10px 0 0;font-weight:600;animation:.5s both fadein}.letter-item{border-left:3px solid var(--gold);padding:4px 0 4px 12px}.letter-item p{white-space:pre-wrap;margin:0 0 6px;line-height:1.7}.memorial-head{text-align:center;padding:12px 0 18px}.memorial-star{color:var(--gold);text-shadow:0 0 24px #f3cf7acc;font-size:46px;animation:3s ease-in-out infinite bob}.memory-text{background:var(--cream-2);white-space:pre-wrap;border-radius:12px;padding:12px 14px;line-height:1.7}.viewer{z-index:50;background:#0a081ee6;justify-content:center;align-items:center;padding:16px;display:flex;position:fixed;inset:0}.viewer img{border-radius:12px;max-width:100%;max-height:100%}.char-compare{grid-template-columns:1fr 1fr;gap:10px;display:grid}.char-compare figure{text-align:center;margin:0}.char-compare img,.char-3d{aspect-ratio:1;object-fit:contain;background:#fff;border-radius:16px;width:100%;display:block}.char-3d{background:radial-gradient(circle at 50% 35%,#fff,#e9e3f6);overflow:hidden}.char-compare figcaption{color:#fbf5eab3;margin-top:6px;font-size:12px}.pet-photo-strip{background:#2a2547;border-radius:14px;flex:none;height:150px;margin:2px 0 8px;position:relative;overflow:hidden}.pet-photo-strip.empty{background:var(--cream-2);height:auto;min-height:44px;color:var(--ink-soft);align-items:center;padding:10px 12px;font-size:13px;line-height:1.5;display:flex}.pet-photo-strip .photo-main{cursor:zoom-in;background:0 0;border:none;width:100%;height:100%;padding:0}.pet-photo-strip .photo-main img{object-fit:contain;width:100%;height:100%;animation:.6s both fadein;display:block}.photo-nav{color:#fff;cursor:pointer;background:#14102880;border:none;border-radius:50%;width:32px;height:32px;font-size:22px;line-height:1;position:absolute;top:50%;transform:translateY(-50%)}.photo-nav.prev{left:8px}.photo-nav.next{right:8px}.photo-dots{pointer-events:none;justify-content:center;gap:5px;display:flex;position:absolute;bottom:6px;left:0;right:0}.photo-dots span{background:#ffffff80;border-radius:50%;width:6px;height:6px}.photo-dots span.on{background:#fff}@media (max-height:700px){.pet-photo-strip{height:110px}}.pet-bubble-anchor{padding-bottom:10px}.pet-bubble{color:var(--ink);white-space:nowrap;background:#fff;border-radius:16px;padding:8px 14px;font-size:15px;font-weight:700;line-height:1.4;animation:.35s cubic-bezier(.2,1.6,.4,1) both bubble-pop;display:inline-block;position:relative;box-shadow:0 6px 18px #0a08284d}.pet-bubble:after{content:"";border:8px solid #0000;border-top-color:#fff;border-bottom:0;position:absolute;bottom:-8px;left:50%;transform:translate(-50%)}@keyframes bubble-pop{0%{opacity:0;transform:scale(.6)}to{opacity:1;transform:scale(1)}}.pet-dialog{max-width:560px;color:var(--ink);box-shadow:var(--shadow);cursor:pointer;z-index:3;background:#fbf5eaf7;border-radius:20px;align-items:center;gap:14px;margin:0 auto;padding:14px 16px;animation:.3s both fadein;display:flex;position:absolute;left:16px;right:16px}.pet-dialog.bottom{bottom:calc(100px + env(safe-area-inset-bottom))}.pet-dialog.top{top:calc(64px + env(safe-area-inset-top))}.pet-dialog-photo{background:var(--cream-2);border:3px solid #fff;border-radius:16px;flex:none;justify-content:center;align-items:center;width:84px;height:84px;font-size:30px;display:flex;overflow:hidden;box-shadow:0 3px 10px #0a082833}.pet-dialog-photo img{object-fit:cover;width:100%;height:100%}.pet-dialog-body{flex:1;min-width:0;position:relative}.pet-dialog-body .dialog-name{margin-bottom:6px;display:inline-block;position:static}.pet-dialog-body p{margin:0 0 4px;font-size:17px;font-weight:600;line-height:1.5;animation:.3s both fadein}.pet-dialog-body .dialog-next{text-align:right;font-size:12px;display:block}.pet-bubble{align-items:center;gap:10px;display:inline-flex!important}.pet-bubble img{object-fit:cover;border:2px solid #fff;border-radius:10px;width:40px;height:40px;box-shadow:0 2px 6px #0a082833}.station.dusk{background:#f9d8d2}.station.dusk .hud-title{color:#4a3d7c;text-shadow:0 1px 8px #fffc}.station.dusk .hud-count,.station.dusk .hud-sub{color:#5f5390;text-shadow:0 1px 6px #fffc}.station.dusk .hud-mode{color:#8a6420;background:#fffaf0bf;border-color:#d6aa5080}.station.dusk .hud-footer{color:#4a3d7c8c}.postmaster-hero{align-items:center;gap:14px;margin-bottom:16px;display:flex}.postmaster-hero img{object-fit:contain;background:#fffaf1;border-radius:20px;flex:none;width:92px;height:92px;padding:4px}.postmaster-hero h1{margin:0 0 4px}.bgm-toggle{justify-content:center;align-items:center;width:38px;padding:0;display:inline-flex}.bgm-toggle.floating{z-index:40;top:calc(10px + env(safe-area-inset-top));right:calc(16px + env(safe-area-inset-right));position:fixed}.bgm-icon{font-size:16px;line-height:1}.hud-col{flex-direction:column;align-items:flex-end;gap:8px;display:flex}.reunion-top{align-items:flex-start}.hud-row{align-items:center;gap:8px;display:flex}.station.park .caption-box.top,.station.park .pet-dialog.top{top:calc(108px + env(safe-area-inset-top))}.station.park .bench-btn{top:calc(196px + env(safe-area-inset-top))}.check-row{cursor:pointer;align-items:center;gap:8px;margin-top:10px;font-size:14px;display:inline-flex}.check-row input{accent-color:#a998e0;width:18px;height:18px}.candle-pop-backdrop{z-index:15;position:absolute;inset:0}.candle-pop{white-space:nowrap;color:#5a4528;background:#fffaf1;border:1px solid #e3c07e;border-radius:14px;flex-direction:column;gap:2px;padding:10px 14px;font-size:13px;display:flex;position:absolute;transform:translate(-50%);box-shadow:0 6px 20px #785a282e}.candle-pop span{color:#9a8670;font-size:11px}.gift-list{flex-wrap:wrap;gap:6px;display:flex}.gift-chip{background:#f6efe2;border-radius:999px;align-items:center;gap:6px;padding:6px 10px;font-size:13px;display:inline-flex}.gift-chip button{color:#b0725a;cursor:pointer;background:0 0;border:none;padding:0;font-size:12px;font-weight:700}.letter-open{color:#4a3a26;background:repeating-linear-gradient(#fffaf0 0 39px,#f1e2c6 39px 40px);border-radius:18px;flex-direction:column;width:min(92vw,520px);max-height:80vh;padding:22px 22px 16px;display:flex;box-shadow:0 10px 40px #503c1e40}.letter-open h2{margin:4px 0 10px}.letter-from{color:#c99a4c;margin:0;font-size:12px;font-weight:700}.letter-body{white-space:pre-wrap;flex:1;font-size:16px;line-height:40px;overflow-y:auto}.letter-date{text-align:right;color:#a08e78;font-size:12px}.memorial-album-grid{grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:12px;display:grid}.memorial-album-grid figure{color:#4a3a26;background:#fffaf1;border-radius:14px;margin:0;position:relative;overflow:hidden}.memorial-album-grid img{aspect-ratio:4/3;object-fit:cover;width:100%;display:block}.memorial-album-grid figcaption{justify-content:space-between;gap:6px;padding:8px 10px;font-size:13px;display:flex}.memorial-album-grid figcaption span{color:#9a8670;font-size:12px}.sheet-backdrop.center{align-items:center}.star-room{color:#4a3d6e;background:radial-gradient(at 50% -10%,#fff4d6e6,#0000 55%),radial-gradient(at 0 60%,#ffd2e68c,#0000 50%),radial-gradient(at 100% 40%,#d6c8ff99,#0000 50%),linear-gradient(#efe4ff 0%,#f8eefb 45%,#fff3ea 100%);position:fixed;inset:0;overflow:hidden auto}.star-room-loading{color:#6a5a9a;background:linear-gradient(#efe4ff,#fff3ea)}.star-room-glow{pointer-events:none;filter:blur(60px);opacity:.7;background:conic-gradient(#ffe6f559,#dcd2ff59,#fff4d659,#ffe6f559);animation:40s linear infinite star-room-flow;position:fixed;inset:-20%}@keyframes star-room-flow{to{transform:rotate(360deg)}}.star-room-top{top:calc(10px + env(safe-area-inset-top));z-index:5;pointer-events:none;justify-content:space-between;display:flex;position:fixed;left:12px;right:12px}.star-room-top>*{pointer-events:auto}.star-room-content{z-index:1;max-width:560px;padding:calc(48px + env(safe-area-inset-top)) 16px calc(20px + env(safe-area-inset-bottom));text-align:center;flex-direction:column;align-items:center;margin:0 auto;display:flex;position:relative}.star-room-star{color:#f3c14f;text-shadow:0 0 14px #ffd678f2,0 0 30px #ffd67899;font-size:34px;line-height:1;animation:2.6s ease-in-out infinite star-room-twinkle}@keyframes star-room-twinkle{0%,to{opacity:.9;transform:scale(1)}50%{opacity:1;transform:scale(1.15)}}.star-room-title{letter-spacing:-.01em;color:#4a3d6e;margin:6px 0 0;font-size:26px;font-weight:800}.star-room-age{color:#8f7cc0;margin:2px 0 0;font-size:15px;font-weight:700}.star-room-pair{grid-template-columns:1fr 1fr;gap:14px;width:100%;margin-top:16px;display:grid}.star-photo,.star-letter{aspect-ratio:3/4;border:2px solid #ffffffe6;border-radius:22px;margin:0;animation:6s ease-in-out infinite star-room-float;box-shadow:0 0 0 4px #f3cf7a59,0 0 26px #ffd68c8c,0 10px 26px #785ab426}.star-letter{animation-delay:-3s}@keyframes star-room-float{0%,to{transform:translateY(0)}50%{transform:translateY(-5px)}}.star-photo{background:#fffcf6d9;justify-content:center;align-items:center;display:flex;overflow:hidden}.star-photo img{object-fit:contain;width:100%;height:100%}.star-photo-empty{color:#9a8ab8;font-size:13px;line-height:1.5}.star-photo-empty span{color:#f3c14f;margin-bottom:6px;font-size:30px;display:block}.star-letter{text-align:left;color:#4a3a26;cursor:pointer;font:inherit;background:repeating-linear-gradient(#fffaf0 0 27px,#f3e3c8 27px 28px);flex-direction:column;gap:4px;padding:14px 14px 12px;display:flex;overflow:hidden}.star-letter:disabled{cursor:default}.star-letter-from{color:#c99a4c;font-size:11px;font-weight:700}.star-letter b{font-size:15px}.star-letter-body{white-space:pre-wrap;-webkit-line-clamp:5;-webkit-box-orient:vertical;flex:1;font-size:13px;line-height:28px;display:-webkit-box;overflow:hidden}.star-letter-body.muted-line{color:#a08e78}.star-letter-more{color:#a08e78;text-align:right;font-size:11px}.star-room-date{flex-direction:column;gap:2px;margin-top:18px;display:flex}.star-room-date b{letter-spacing:.04em;color:#6b5aa0;font-size:20px;font-weight:800}.star-room-date span{color:#9a8ab8;font-size:13px;font-weight:600}.star-room-ground{width:100%;height:min(380px,52vh);margin-top:4px}.star-candle-btn{color:#5a4528;cursor:pointer;background:linear-gradient(#fff3cc,#f7d98a);border:none;border-radius:999px;width:100%;max-width:420px;min-height:52px;padding:0 18px;font-size:16px;font-weight:800;box-shadow:0 0 0 3px #ffffffb3,0 6px 22px #f0be5a66}.star-candle-btn:disabled{color:#8a7aa8;cursor:default;background:#fffcf6e6;font-size:13px;font-weight:700;box-shadow:0 0 0 1px #e6dcf6}.star-room .anon-check{color:#7a6a9a;margin-top:6px}.star-circles{justify-content:center;gap:14px;margin-top:16px;display:flex}.star-circles>*{color:#5a4a7c;cursor:pointer;background:radial-gradient(circle at 35% 30%,#fff,#f1e8ff 70%);border:2px solid #fffffff2;border-radius:50%;flex-direction:column;justify-content:center;align-items:center;gap:2px;width:70px;height:70px;font-size:12px;font-weight:800;text-decoration:none;display:flex;box-shadow:0 0 18px #c8b4ff8c}.star-circles span{font-size:24px;line-height:1}.star-room .bgm-toggle.floating{display:none}@media (min-width:600px){.star-room-pair{width:min(100%,max(320px,150dvh - 886px))}}.shop{max-width:620px;min-height:100dvh;padding:calc(56px + env(safe-area-inset-top)) 16px calc(110px + env(safe-area-inset-bottom));color:#4a3d6e;text-align:center;margin:0 auto}body:has(.shop){background:radial-gradient(at 50% 0,#fff4d6f2,#0000 55%),radial-gradient(at 0 70%,#ffd6e899,#0000 50%),radial-gradient(at 100%,#dccdff99,#0000 50%),linear-gradient(#f6eefc,#fff4ea)}.shop-top{top:calc(10px + env(safe-area-inset-top));z-index:10;justify-content:space-between;display:flex;position:fixed;left:12px;right:12px}.shop-sign{color:#6b4f9e;background:#fffaf1;border:2px solid #f3cf7a;border-radius:999px;padding:8px 22px;font-size:26px;font-weight:800;display:inline-block;box-shadow:0 0 22px #f3cf7a99}.shop-sign span{color:#f3c14f;animation:2.4s ease-in-out infinite star-room-twinkle;display:inline-block}.shop-sub{color:#8a78b8;margin:8px 0 0;font-size:14px}.shop-keeper{align-items:center;gap:8px;margin-top:8px;display:flex}.shop-keeper-3d{flex:none;width:150px;height:190px}.shop-bubble{text-align:left;color:#4a3a26;background:#fffaf1;border-radius:18px;flex:1;padding:12px 14px;font-size:14px;line-height:1.55;animation:.25s both fadein;position:relative;box-shadow:0 4px 16px #8c6ec826}.shop-bubble b{color:#7aa04a;margin-bottom:2px;font-size:12px;display:block}.shop-bubble:before{content:"";border:8px solid #0000;border-left:0;border-right-color:#fffaf1;position:absolute;top:40%;left:-8px}.shop-tabs{justify-content:center;gap:8px;margin-top:6px;display:flex}.shop-tabs button{color:#6b5aa0;cursor:pointer;background:#fffaf6;border:2px solid #e7dcf8;border-radius:999px;flex:1;max-width:140px;min-height:42px;font-size:14px;font-weight:800}.shop-tabs button[aria-pressed=true]{color:#fff;background:#b7a5ec;border-color:#b7a5ec}.shop-shelf{grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:10px;margin-top:12px;display:grid}.shop-item{cursor:pointer;color:#4a3d6e;font:inherit;background:#fffcf6eb;border:2px solid #0000;border-radius:18px;flex-direction:column;align-items:center;gap:4px;padding:12px 8px;display:flex;box-shadow:0 3px 12px #8c6ec81f}.shop-item.on{border-color:#f3cf7a;box-shadow:0 0 18px #f3cf7a99}.shop-item-emoji{font-size:34px;line-height:1.1}.shop-item b{font-size:15px}.shop-item-msg{color:#b0688a;font-size:12px}.shop-item-price{color:#9a8ab8;font-size:11px}.shop-detail{text-align:left;background:#fffaf1;border-radius:18px;flex-direction:column;gap:8px;margin-top:12px;padding:14px;display:flex;box-shadow:0 4px 16px #8c6ec81f}.shop-detail-head{align-items:center;gap:10px;display:flex}.shop-detail-head div{flex-direction:column;display:flex}.shop-detail-head span{color:#9a8ab8;font-size:12px}.shop-meaning{margin:0;font-size:14px;line-height:1.7}.shop-meaning span{color:#b0688a;min-width:82px;font-size:12px;font-weight:700;display:inline-block}.shop-desc{color:#5a4a6e;margin:0;font-size:14px;line-height:1.6}.shop-qty{align-items:center;gap:10px;font-size:14px;display:flex}.shop-qty button{cursor:pointer;background:#fff;border:1px solid #e0d4f6;border-radius:50%;width:32px;height:32px;font-size:18px}.shop-error{color:#c0566a;margin:0;font-size:13px}.shop-test-note{color:#9a8ab8;margin:12px 0 0;font-size:12px}.shop-bottom{padding:10px 16px calc(12px + env(safe-area-inset-bottom));background:linear-gradient(#fff6f000,#fff6f0f2 30%);gap:8px;max-width:620px;margin:0 auto;display:flex;position:fixed;bottom:0;left:0;right:0}.shop-buy{color:#5a4528;cursor:pointer;background:linear-gradient(#fff3cc,#f7d98a);border:none;border-radius:999px;flex:1;min-height:52px;font-size:15px;font-weight:800;box-shadow:0 6px 18px #f0be5a59}.shop-buy:disabled{color:#a597c4;box-shadow:none;cursor:default;background:#f3edf9}.shop-box-btn{color:#6b5aa0;cursor:pointer;background:#fffaf6;border:2px solid #e7dcf8;border-radius:999px;min-height:52px;padding:0 16px;font-weight:800;position:relative}.shop-badge{color:#fff;background:#f28b9b;border-radius:999px;place-items:center;min-width:22px;height:22px;padding:0 6px;font-size:12px;display:grid;position:absolute;top:-6px;right:-4px}.shop-box .shop-box-row{align-items:center;gap:8px;padding:6px 0;display:flex}.shop-box-row .shop-item-emoji{font-size:24px}.shop-box-row b{text-align:left;flex:1}.shop-box-qty{color:#8a78b8;font-weight:700}.shop-done{background:#f3fbe9;border-radius:12px;padding:8px 10px}.star-room .sheet-backdrop,.star-room .candle-pop-backdrop{z-index:20;position:fixed}.station.forest .toast{white-space:normal;text-align:center;width:max-content;max-width:calc(100% - 32px);line-height:1.5}.forest-actions{left:50%;bottom:calc(96px + env(safe-area-inset-bottom));flex-wrap:wrap;justify-content:center;gap:10px;width:max-content;max-width:calc(100% - 32px);display:flex;position:absolute;transform:translate(-50%)}.forest-actions .hud-btn{min-height:46px;padding:0 18px;font-size:14px}.forest-actions.static{margin:0 auto;position:static;transform:none}.forest-stare{left:0;right:0;bottom:calc(18px + env(safe-area-inset-bottom));flex-direction:column;align-items:center;gap:10px;padding:0 16px;display:flex;position:absolute}.forest-stare-hint{color:#3b2a10bf;background:#fff6e899;border-radius:999px;margin:0;padding:4px 12px;font-size:12px;animation:6s forwards forest-fade}@keyframes forest-fade{0%,70%{opacity:1}to{opacity:0}}.forest-waiting{left:50%;bottom:calc(150px + env(safe-area-inset-bottom));text-align:center;width:max-content;max-width:calc(100% - 32px);color:var(--cream);-webkit-backdrop-filter:blur(6px);pointer-events:none;background:#1b1f3b99;border-radius:999px;padding:8px 14px;font-size:13px;position:absolute;transform:translate(-50%)}.forest-request{left:50%;bottom:calc(20px + env(safe-area-inset-bottom));background:var(--cream);width:min(420px,100% - 32px);color:var(--ink);border-radius:var(--radius);box-shadow:var(--shadow);text-align:center;z-index:5;padding:16px 18px 12px;animation:.3s both fadein;position:absolute;transform:translate(-50%)}.forest-request p{margin:0 0 12px;line-height:1.5}.forest-request .row{justify-content:center;gap:10px;margin-bottom:6px}.forest-request .row .btn{flex:1;min-height:48px}.forest-volume{color:var(--ink);align-items:center;gap:12px;margin-bottom:12px;font-size:14px;display:flex}.forest-volume input{accent-color:var(--gold-deep);flex:1;height:32px}.forest-textarea{resize:vertical;min-height:110px;font-family:inherit;line-height:1.6}.forest-write-meta{color:var(--ink-soft);justify-content:space-between;margin:6px 2px 10px;font-size:12px;display:flex}.forest-check{color:var(--ink);align-items:center;gap:8px;margin-bottom:8px;font-size:14px;display:flex}.forest-check input{width:18px;height:18px}.note-list{flex-direction:column;gap:8px;max-height:46vh;margin:0 0 12px;padding:0;list-style:none;display:flex;overflow-y:auto}.note-card{text-align:left;cursor:pointer;width:100%;color:var(--ink);background:linear-gradient(#fffaf0 0%,#fbf3e3 100%);border:1px solid #efe1c4;border-radius:14px;flex-direction:column;gap:6px;padding:12px 14px;display:flex}.note-body{white-space:pre-wrap;word-break:keep-all;overflow-wrap:anywhere;-webkit-line-clamp:3;-webkit-box-orient:vertical;font-size:15px;line-height:1.55;display:-webkit-box;overflow:hidden}.note-meta{color:var(--ink-soft);font-size:12px}.note-paper{color:var(--ink);background:linear-gradient(#fffaf0 0%,#fbf3e3 100%);border:1px solid #efe1c4;border-radius:14px;margin-bottom:14px;padding:18px 18px 14px}.note-paper p{white-space:pre-wrap;word-break:keep-all;overflow-wrap:anywhere;margin:0 0 12px;font-size:16px;line-height:1.7}.note-paper span{text-align:right;color:var(--ink-soft);font-size:13px;display:block}.note-comments{border-top:1px dashed #e6d6bb;padding-top:10px}.comment-list{flex-direction:column;gap:8px;max-height:30vh;margin:0 0 10px;padding:0;list-style:none;display:flex;overflow-y:auto}.comment-list li{color:var(--ink);background:#fff;border:1px solid #efe1c4;border-radius:12px;padding:10px 12px}.comment-list p{white-space:pre-wrap;word-break:keep-all;overflow-wrap:anywhere;margin:0 0 4px;font-size:14px;line-height:1.55}.comment-meta{color:var(--ink-soft);justify-content:space-between;align-items:center;font-size:12px;display:flex}.comment-meta .link-btn{font-size:12px}.forest-textarea.small{min-height:64px}.letter-box{flex-direction:column;gap:10px;margin:0;padding:0;list-style:none;display:flex}.letter-box-item{text-align:left;cursor:pointer;width:100%;color:var(--ink);background:linear-gradient(#fffaf0 0%,#fbf3e3 100%);border:1px solid #efe1c4;border-radius:14px;flex-direction:column;gap:8px;padding:14px 16px;display:flex}.letter-box-head{justify-content:space-between;align-items:baseline;gap:8px;display:flex}.letter-box-head span{color:var(--ink-soft);font-size:12px}.letter-box-body{white-space:pre-wrap;word-break:keep-all;overflow-wrap:anywhere;-webkit-line-clamp:3;-webkit-box-orient:vertical;font-size:15px;line-height:1.7;display:-webkit-box;overflow:hidden}.letter-box-item.open .letter-box-body{-webkit-line-clamp:unset;display:block}.letter-box-more{color:#c19a4a;font-size:12px}.note-body.full{-webkit-line-clamp:unset;display:block;overflow:visible}.station.forest .note-list{max-height:52vh}.star-room .star-room-content{width:min(100%,1180px);max-width:none;padding-top:calc(14px + env(safe-area-inset-top))}.star-room-head{flex-direction:column;align-items:center;gap:2px;margin-bottom:10px;display:flex}.star-room-head .star-room-title{align-items:center;gap:8px;margin:0;font-size:24px;display:flex}.star-room-head .star-room-star{font-size:22px;display:inline-block}.star-room-head .star-room-date{color:#8f7cc0;letter-spacing:.02em;margin:0;font-size:14px;font-weight:700}.star-altar{background:radial-gradient(circle at 12% 18%,#ffecaae6 0 1.5px,#0000 2.5px),radial-gradient(circle at 86% 22%,#fffffff2 0 1.5px,#0000 2.5px),radial-gradient(circle at 70% 8%,#ffecaae6 0 1.2px,#0000 2px),radial-gradient(circle at 30% 6%,#ffffffe6 0 1.2px,#0000 2px),linear-gradient(#fffbf4eb 0%,#f8f0ffd9 70%,#f3eaff99 100%);border:2px solid #e2b9648c;border-radius:200px 200px 22px 22px/120px 120px 22px 22px;width:100%;padding:26px 22px 0;position:relative;box-shadow:0 0 0 6px #ffffff59,0 0 40px #ffd69673,0 18px 40px #8264be26}.star-altar:before{content:"✦";color:#f3c14f;text-shadow:0 0 12px #ffd678f2;font-size:24px;position:absolute;top:-14px;left:50%;transform:translate(-50%)}.star-altar-frames{grid-template-columns:1fr;gap:16px;display:grid}.star-altar .star-frame{aspect-ratio:auto;border:6px solid #f6e3b4;border-radius:18px;outline:2px solid #e2b964cc;margin:0;animation:none;box-shadow:0 0 22px #ffd68c80,0 10px 24px #785ab426}.star-altar .star-photo{aspect-ratio:1;background:#fffaf3}.star-altar .star-photo img{object-fit:cover}.star-altar .star-letter{cursor:default;background:repeating-linear-gradient(#fffaf0 0 33px,#f3e3c8 33px 34px);gap:6px;min-height:260px;max-height:70vh;padding:18px 20px 14px}.star-altar .star-letter-from{font-size:13px}.star-altar .star-letter b{font-size:19px}.star-altar .star-letter-body{-webkit-line-clamp:unset;white-space:pre-wrap;word-break:keep-all;overflow-wrap:anywhere;padding-right:4px;font-size:16px;line-height:34px;display:block;overflow-y:auto}.star-altar .star-letter-more{font:inherit;color:#c19a4a;cursor:pointer;background:0 0;border:none;align-self:flex-end;padding:4px 0 0;font-size:13px;font-weight:700}.star-altar .star-room-ground{width:auto;height:clamp(130px,17vw,200px);margin:6px -22px 0}@media (min-width:760px){.star-room .star-room-content{width:min(82vw,1180px)}.star-altar{padding:34px 40px 0}.star-altar-frames{grid-template-columns:1fr 1fr;gap:28px}.star-altar .star-photo,.star-altar .star-letter{aspect-ratio:auto;height:clamp(300px,100dvh - 480px,620px);min-height:0;max-height:none}.star-altar .star-letter{overflow:hidden}.star-altar .star-letter-body{flex:1;min-height:0;font-size:clamp(15px,1.25vw,18px)}.star-altar .star-room-ground{margin:6px -40px 0}}.station.forest .sheet-backdrop{z-index:20}.station.forest .toast{z-index:30}.mind-viewer{z-index:10;color:#4a3f66;flex-direction:column;animation:.45s both fadein;display:flex;position:absolute;inset:0;overflow:hidden}.mind-veil{-webkit-backdrop-filter:blur(14px)saturate(1.05);background:radial-gradient(at 50% 45%,#fff8ee59,#0000 60%),linear-gradient(#d6c4f08c 0%,#ecd6ec73 55%,#cee2c866 100%);position:absolute;inset:0}.mind-sparkles span{pointer-events:none;background:#fff6d6;border-radius:50%;width:4px;height:4px;animation:4.5s ease-in-out infinite mind-twinkle;position:absolute;box-shadow:0 0 8px 2px #ffecaacc}@keyframes mind-twinkle{0%,to{opacity:.15;transform:translateY(0)scale(.7)}50%{opacity:.95;transform:translateY(-14px)scale(1.1)}}.mind-floaters span{color:#5a4c788c;filter:blur(.6px);white-space:nowrap;text-overflow:ellipsis;pointer-events:none;background:#fffcf652;border:1px solid #ffffff80;border-radius:999px;max-width:220px;padding:10px 16px;font-size:13px;line-height:1.4;animation:18s ease-in-out infinite mind-drift;position:absolute;overflow:hidden}@keyframes mind-drift{0%,to{opacity:.55;transform:translate(0)}50%{opacity:.9;transform:translate(18px,-22px)}}.mind-head{padding:calc(18px + env(safe-area-inset-top)) 22px 0;justify-content:space-between;align-items:flex-start;display:flex;position:relative}.mind-head h2{color:#4a3d6e;letter-spacing:-.01em;text-shadow:0 1px 12px #ffffffb3;margin:0;font-size:24px;font-weight:800}.mind-head p{color:#6f6290;margin:4px 0 0;font-size:14px}.mind-close{color:#5a4a7c;cursor:pointer;background:#fffcf699;border:1px solid #ffffffb3;border-radius:50%;width:42px;height:42px;font-size:24px;line-height:1}.mind-stage{touch-action:pan-y;-webkit-user-select:none;user-select:none;flex:1;justify-content:center;align-items:center;min-height:0;display:flex;position:relative}.mind-card{text-align:center;background:radial-gradient(at 50% 35%,#fffdf8f7,#fdf6eeed 70%,#f6eefce6);border:1px solid #e2c8968c;border-radius:48% 48% 44% 44%/30% 30% 26% 26%;flex-direction:column;justify-content:center;align-items:center;width:min(560px,78vw);min-height:min(52vh,420px);max-height:64vh;padding:44px 46px 30px;transition:transform .5s cubic-bezier(.2,.8,.2,1),opacity .5s,filter .5s;display:flex;position:absolute;top:50%;left:50%;box-shadow:0 0 0 8px #ffffff38,0 0 50px #ffe2aa73,0 24px 60px #6e5aa02e}.mind-card.cur{z-index:2;animation:7s ease-in-out infinite mind-float;transform:translate(-50%,-50%)}@keyframes mind-float{0%,to{transform:translate(-50%,-50%)}50%{transform:translate(-50%,calc(-50% - 8px))}}.mind-card.prev,.mind-card.next{z-index:1;opacity:.55;filter:blur(1.5px);cursor:pointer}.mind-card.prev{transform:translate(calc(-50% - min(560px,78vw)/1.28205),-50%)scale(.72)}.mind-card.next{transform:translate(calc(-50% + min(560px,78vw)/1.28205),-50%)scale(.72)}.mind-card.empty{visibility:hidden}.mind-card.mine{border-color:#f3c14fd9}.mind-text{color:#43385e;white-space:pre-wrap;word-break:keep-all;overflow-wrap:anywhere;margin:0;font-size:clamp(18px,2.1vw,24px);line-height:1.75;overflow-y:auto}.mind-meta{color:#8a7ca8;margin:18px 0 0;font-size:14px}.mind-comments{color:#6a5a92;cursor:pointer;background:#fff9;border:1px solid #c8b4e6b3;border-radius:999px;margin-top:16px;padding:8px 16px;font-size:13px;font-weight:700}.mind-arrow{z-index:3;color:#5a4a7c;cursor:pointer;background:#fffcf68c;border:1px solid #ffffffbf;border-radius:50%;width:52px;height:52px;font-size:32px;line-height:1;position:absolute;top:50%;transform:translateY(-50%)}.mind-arrow.left{left:max(12px,50% - min(560px,78vw)/2 - 76px)}.mind-arrow.right{right:max(12px,50% - min(560px,78vw)/2 - 76px)}.mind-arrow:disabled{opacity:.3;cursor:default}.mind-foot{padding:0 16px calc(22px + env(safe-area-inset-bottom));flex-direction:column;align-items:center;gap:8px;display:flex;position:relative}.mind-count{color:#5a4c7899;letter-spacing:.06em;font-size:12px}.mind-tree{color:#5a4c788c;font-size:12px}.mind-write{color:#5a4528;cursor:pointer;background:linear-gradient(#fff3cc,#f7d98a);border:none;border-radius:999px;min-height:50px;padding:0 28px;font-size:16px;font-weight:800;box-shadow:0 0 0 3px #fff9,0 8px 24px #f0be5a59}.mind-write:disabled{opacity:.55;cursor:default}.mind-ghost{color:#6a5a92;cursor:pointer;background:#fff9;border:1px solid #a08cc899;border-radius:999px;min-height:50px;padding:0 24px;font-size:15px;font-weight:700}.mind-card.composer{text-align:left;border-radius:40px;align-items:stretch;gap:12px;width:min(620px,92vw);min-height:0;max-height:none;padding:34px 34px 26px;animation:none}.composer-guide{text-align:center;color:#4a3d6e;margin:0;font-size:17px;font-weight:700}.composer-text{resize:vertical;min-height:150px;font:inherit;color:#43385e;background:#ffffffd9;border:1px solid #e8dcc6;border-radius:20px;padding:16px 18px;font-size:17px;line-height:1.7}.composer-row{color:#6f6290;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;font-size:14px;display:flex}.composer-nick{flex:1;align-items:center;gap:8px;display:flex}.composer-nick span{white-space:nowrap;font-weight:700}.composer-nick input{min-width:0;font:inherit;color:#43385e;background:#ffffffd9;border:1px solid #e8dcc6;border-radius:999px;flex:1;padding:8px 14px;font-size:16px}.composer-nick input:disabled{opacity:.5}.composer-row.checks{justify-content:flex-start;gap:18px}.composer-row.checks label{align-items:center;gap:6px;display:flex}.composer-note{color:#8a7ca8;margin:0;font-size:12px;line-height:1.5}.composer-error{color:var(--danger);margin:0;font-size:14px}.composer-actions{justify-content:center;gap:12px;display:flex}@media (max-width:600px){.mind-card{border-radius:40% 40% 36% 36%/22% 22% 20% 20%;width:82vw;padding:34px 26px 24px}.mind-card.prev{transform:translate(calc(-50% - 70.52vw),-50%)scale(.8)}.mind-card.next{transform:translate(calc(70.52vw - 50%),-50%)scale(.8)}.mind-arrow,.mind-floaters span:nth-child(n+5){display:none}}.station.forest.viewing .world-label,.station.forest.viewing .staff-tag,.station.forest.viewing .name-tag{display:none!important}.mind-card{border-radius:50%/38%;min-height:min(40vh,340px)}@media (max-width:600px){.mind-card{border-radius:46%/30%;min-height:min(46vh,380px)}}.mind-head-actions{align-items:center;gap:8px;display:flex}.star-menu{grid-template-columns:repeat(6,minmax(0,1fr));gap:10px;width:min(100%,720px);margin-top:14px;display:grid}.star-menu>button{aspect-ratio:1;color:#5a4a7c;cursor:pointer;word-break:keep-all;background:radial-gradient(circle at 35% 30%,#fff,#f1e8ff 70%);border:2px solid #fffffff2;border-radius:50%;flex-direction:column;justify-content:center;align-items:center;gap:2px;padding:0;font-size:clamp(10px,2.6vw,13px);font-weight:800;line-height:1.15;display:flex;position:relative;box-shadow:0 0 18px #c8b4ff8c}.star-menu>button span{font-size:clamp(18px,5vw,26px);line-height:1}.star-menu>button.glow{background:radial-gradient(circle at 35% 30%,#fffdf3,#ffe9b0 75%);box-shadow:0 0 22px #ffd278bf}.star-menu>button.accent{color:#7a3f5c;background:radial-gradient(circle at 35% 30%,#fff8fb,#ffd9e8 75%);box-shadow:0 0 22px #ffaac899}.star-menu-count{color:#fff;background:#e98aa8;border-radius:999px;justify-content:center;align-items:center;min-width:20px;height:20px;padding:0 5px;font-size:11px;font-style:normal;display:flex;position:absolute;top:2px;right:2px}.star-notice{color:#7a3f5c;cursor:pointer;text-align:left;background:#fff6faeb;border:1px solid #e98aa880;border-radius:16px;width:min(100%,720px);margin-top:12px;padding:10px 14px;font-size:14px;font-weight:700;box-shadow:0 6px 18px #e98aa840}.star-altar-frames{grid-template-columns:1fr 1fr;gap:clamp(10px,2.5vw,28px)}.star-altar .star-photo,.star-altar .star-letter{aspect-ratio:3/4;height:auto;min-height:0;max-height:none}.star-altar .star-letter.clickable{cursor:pointer}.star-altar .star-letter{flex-direction:column;display:flex;overflow:hidden}.star-altar .star-letter-body{flex:1;min-height:0;overflow:hidden;-webkit-mask-image:linear-gradient(#000 75%,#0000);mask-image:linear-gradient(#000 75%,#0000)}@media (max-width:759px){.star-altar{border-radius:120px 120px 18px 18px/70px 70px 18px 18px;padding:22px 10px 0}.star-altar .star-frame{border-width:4px;border-radius:14px}.star-altar .star-letter{background:repeating-linear-gradient(#fffaf0 0 21px,#f3e3c8 21px 22px);gap:2px;padding:10px 10px 8px}.star-altar .star-letter-from{font-size:10px}.star-altar .star-letter b{font-size:13px}.star-altar .star-letter-body{font-size:12px;line-height:22px}.star-altar .star-letter-more{font-size:11px}.star-altar .star-room-ground{margin:6px -10px 0}.star-menu{gap:6px}}@media (min-width:760px){.star-altar .star-photo,.star-altar .star-letter{aspect-ratio:auto;height:clamp(300px,100dvh - 500px,600px)}}.gb-write .gb-row{align-items:center;gap:10px;margin:8px 0;display:flex}.gb-write .gb-row .input{flex:1}.gb-list{flex-direction:column;gap:10px;max-height:52vh;margin-top:14px;display:flex;overflow-y:auto}.gb-entry{color:var(--ink);background:linear-gradient(#fffaf4,#fbf3ff);border:1px solid #ecdcf3;border-radius:16px;padding:12px 14px}.gb-entry.hidden{opacity:.55}.gb-entry.focus{border-color:#e98aa8;box-shadow:0 0 0 3px #e98aa840}.gb-body{white-space:pre-wrap;word-break:keep-all;overflow-wrap:anywhere;margin:0 0 6px;font-size:15px;line-height:1.65}.gb-meta{color:var(--ink-soft);justify-content:space-between;align-items:center;gap:8px;font-size:12px;display:flex}.gb-actions{gap:10px;display:flex}.gb-actions .link-btn{font-size:12px}.gb-visit{color:#8a6a2a;cursor:pointer;background:#fffaf0;border:1px solid #e6d3a3;border-radius:999px;margin-top:8px;padding:5px 12px;font-size:12px;font-weight:700;text-decoration:none;display:inline-block}.family-list{flex-direction:column;gap:6px;margin:0 0 12px;padding:0;list-style:none;display:flex}.family-list li{color:var(--ink);background:#fff;border:1px solid #ecdcf3;border-radius:12px;justify-content:space-between;align-items:center;padding:8px 12px;font-size:14px;display:flex}.family-link{margin-top:10px}.station-notice{left:50%;top:calc(112px + env(safe-area-inset-top));color:#7a3f5c;cursor:pointer;z-index:3;background:#fff6faf2;border:1px solid #e98aa880;border-radius:999px;width:max-content;max-width:calc(100% - 32px);padding:9px 16px;font-size:13px;font-weight:700;position:absolute;transform:translate(-50%);box-shadow:0 6px 18px #e98aa84d}@media (min-width:760px){.star-menu{gap:14px;width:min(100%,560px)}}.shop-item-art{filter:drop-shadow(0 2px 3px #8c6ec81f);flex:none;display:block}.shop-tabs button{justify-content:center;align-items:center;gap:4px;display:inline-flex}.shop-tab-art{flex:none;margin:-4px 0}.inline-art{vertical-align:middle;margin:-6px 2px -4px 0;display:inline-block}.hud-count.small{opacity:.9;margin-top:2px;font-size:12px}.settings-btn{width:38px;padding:0;font-size:18px}.letter-photo{aspect-ratio:1;background:#fffaf3;border:6px solid #fff;border-radius:20px;width:min(100%,260px);margin:0 auto 14px;overflow:hidden;transform:rotate(-1.5deg);box-shadow:0 0 0 2px #f3d9a8,0 8px 22px #a0785033}.letter-photo img{object-fit:cover;width:100%;height:100%;display:block}.letter-photo-empty{color:var(--ink-soft);text-align:center;margin:0 0 12px;font-size:13px}.gb-heart{color:#d9a6b8;cursor:pointer;background:0 0;border:none;padding:0 2px;font-size:18px;line-height:1}.gb-heart.on{color:#e8577e}.mat-hint{left:50%;bottom:calc(96px + env(safe-area-inset-bottom));color:#fff;white-space:nowrap;pointer-events:none;z-index:5;background:#1b1f3b73;border-radius:999px;margin:0;padding:5px 12px;font-size:12px;position:absolute;transform:translate(-50%)}@media (max-width:560px){.action-bar:not(.with-joystick){flex-wrap:wrap}.action-bar:not(.with-joystick) button{flex:calc(25% - 8px);min-height:54px}}.persona-pick{flex-wrap:wrap;align-items:center;gap:6px;margin:4px 0 10px;display:flex}.persona-tag{color:#7a5a14;background:#f8e7b4;border-radius:999px;padding:2px 8px;font-size:11px;font-weight:700}.gb-staff{color:#a0741a}.report-link{color:var(--muted,#8a8399);font-size:13px}.chip-block{text-align:left;border-radius:12px;width:100%;padding:10px 12px}.staff-menu{border-top:1px dashed #a0741a59;flex-direction:column;gap:8px;margin-top:6px;padding-top:10px;display:flex}.staff-menu .persona-tag{align-self:flex-start;margin:0}.danger-text{color:#c24b4b}.chip-row{flex-wrap:wrap;gap:6px;display:flex}.inbox-head{margin:22px 0 8px;font-size:16px}.inbox-card{margin-bottom:12px}.inbox-title{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.inbox-title .link-btn{margin-left:auto}.inbox-flag{color:#b24646;background:#fbe3e3;border-radius:999px;padding:2px 8px;font-size:11px}.inbox-reasons{flex-wrap:wrap;align-items:center;gap:6px;margin:8px 0;display:flex}.inbox-reason{color:#7a5a14;background:#fff1d6;border-radius:999px;padding:3px 9px;font-size:12px}.inbox-when{font-size:11px}.inbox-text{white-space:pre-wrap;background:#00000009;border-radius:10px;margin:6px 0 10px;padding:10px 12px;font-size:14px}.inbox-photo{border-radius:12px;max-width:100%;max-height:320px;margin:6px 0 10px;display:block}.inbox-photo-btn{margin:4px 0 10px}.inbox-actions{flex-wrap:wrap;gap:8px;display:flex}.legal-doc{max-width:720px;margin:0 auto;padding:8px 0 48px;font-size:15px;line-height:1.75}.legal-doc h1{margin-bottom:4px}.legal-doc h2{margin:28px 0 8px;font-size:17px}.legal-doc ul{padding-left:20px}.legal-doc li{margin:4px 0}.legal-table{border-collapse:collapse;width:100%;margin:10px 0;font-size:13px}.legal-table th,.legal-table td{vertical-align:top;text-align:left;border:1px solid #ffffff2e;padding:8px}.legal-table th{background:#ffffff14}@media (max-width:560px){.legal-table{font-size:12px}.legal-table th,.legal-table td{padding:6px}}.legal-links{text-align:center;margin-top:32px}.legal-foot{justify-content:center;gap:14px;margin-top:14px;font-size:12px;display:flex}.legal-foot a{color:inherit;opacity:.7}.install-steps{margin:4px 0 8px;padding-left:22px;line-height:1.8}.install-icon{background:#0000000f;border-radius:6px;padding:0 6px;display:inline-block}.install-hint{left:50%;top:calc(64px + env(safe-area-inset-top));z-index:6;color:#3a3358;white-space:nowrap;background:#fffaf0f2;border-radius:999px;align-items:center;gap:6px;padding:6px 6px 6px 14px;font-size:13px;font-weight:600;display:flex;position:absolute;transform:translate(-50%);box-shadow:0 6px 18px #1b1f3b40}.install-hint button{cursor:pointer;border:0;border-radius:999px;padding:5px 10px;font-size:12px;font-weight:700}.install-hint .go{color:#fff;background:#3a3358}.install-hint .x{color:#8a8399;background:0 0;padding:5px 8px}.reset-zone{border:1px dashed #c24b4b73;margin-top:28px}.health.warn{border:1px solid #c24b4b73}.health-badge{border-radius:999px;margin-left:auto;padding:2px 9px;font-size:11px}.health-badge.ok{color:#2f7a3a;background:#e2f4e2}.health-badge.warn{color:#b24646;background:#fbe3e3}.health-list{margin:10px 0;padding-left:4px;font-size:13px;line-height:1.7;list-style:none}.health-list code,.health-files code{background:#0000000f;border-radius:6px;padding:1px 6px;font-size:12px}.health-counts{flex-wrap:wrap;gap:6px;margin-bottom:8px;display:flex}.health-counts span{background:#0000000a;border-radius:999px;padding:3px 10px;font-size:12px}.health-files{margin:6px 0 0;padding-left:18px;font-size:12px}.device-note{opacity:.78;background:#ffffff0f;border:1px solid #ffffff1f;border-radius:12px;margin:0 0 14px;padding:8px 12px;font-size:12.5px;line-height:1.6}
