:root{--ink:#f4f1ea;--ink-dim:#c9cfd8;--glass:#121a289e;--glass-strong:#121a28e0;--line:#ffffff29;--accent:#f2c96d;font-family:system-ui,-apple-system,Apple SD Gothic Neo,Noto Sans KR,sans-serif}html,body,#root{height:100%;margin:0}body{color:var(--ink);background:#142033;overflow:hidden}.entry{text-align:center;box-sizing:border-box;background:linear-gradient(#1b2b4a,#33507a 60%,#6d8a6a);flex-direction:column;justify-content:center;align-items:center;gap:18px;min-height:100%;padding:24px 16px;display:flex}.entry-title{letter-spacing:.04em;margin:0;font-size:clamp(2rem,8vw,3rem)}.entry-sub{color:var(--ink-dim);margin:0}.entry-hint{color:var(--ink-dim);margin:0;font-size:.9rem}.entry-note{color:#ffd9a0;margin:0}.dev-tag{color:#ffe2a8;background:#6b4b0099;border-radius:999px;margin:0;padding:4px 10px;font-size:.8rem}button.primary{background:var(--accent);color:#2a2a2a;min-width:160px;min-height:48px;font:inherit;cursor:pointer;border:none;border-radius:999px;font-weight:700}button.primary:disabled{opacity:.45;cursor:default}.world{position:fixed;inset:0}.world-canvas{touch-action:none;inset:0;position:absolute!important}.hud{pointer-events:none;position:absolute;inset:0}.hud>*{pointer-events:auto}.hud-top{padding:max(10px, env(safe-area-inset-top)) 16px 0;pointer-events:none;justify-content:space-between;align-items:flex-start;gap:8px;display:flex;position:absolute;top:0;left:0;right:0}.hud-top>*{pointer-events:auto}.hud-info{background:var(--glass);border-radius:12px;max-width:min(560px,70vw);padding:8px 12px;font-size:.85rem;line-height:1.5}.hud-sub{color:var(--ink-dim)}.hud-right{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:8px;display:flex}.pill{color:#ffe2a8;background:#6b4b00bf;border-radius:999px;margin-left:6px;padding:0 7px;font-size:.75rem;display:inline-block}.pill.warn{color:#ffe0d6;background:#8a3b2b}.pill.dev{white-space:nowrap;margin:0;padding:4px 10px}.hud button,.panel button{border:1px solid var(--line);background:var(--glass-strong);min-height:44px;color:var(--ink);font:inherit;cursor:pointer;border-radius:999px;padding:8px 14px}.hud button:focus-visible,.panel button:focus-visible,button.primary:focus-visible,.panel a:focus-visible{outline:3px solid var(--accent);outline-offset:2px}.hud-actions{left:50%;bottom:max(20px, env(safe-area-inset-bottom));flex-wrap:wrap;justify-content:center;gap:8px;max-width:calc(100% - 32px);display:flex;position:absolute;transform:translate(-50%)}.chip{background:var(--glass);border-radius:999px;padding:8px 14px;font-size:.9rem}.joystick{border:1px solid var(--line);touch-action:none;background:#ffffff1f;border-radius:50%;justify-content:center;align-items:center;width:88px;height:88px;display:flex;position:absolute;bottom:90px;left:20px}.joystick-knob{pointer-events:none;background:#ffffff8c;border-radius:50%;width:38px;height:38px}.panel-backdrop{background:#00000040;justify-content:flex-end;display:flex;position:absolute;inset:0}.panel{box-sizing:border-box;background:var(--glass-strong);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);width:min(380px,100%);height:100%;padding:16px;overflow-y:auto}.panel-head{justify-content:space-between;align-items:center;display:flex}.panel h2{margin:0;font-size:1.15rem}.panel h3{color:var(--ink-dim);margin:18px 0 8px;font-size:.95rem}.panel-grid{grid-template-columns:1fr 1fr;gap:8px;display:grid}.panel-grid button[aria-checked=true]{border-color:var(--accent);color:var(--accent)}.panel-text{color:var(--ink-dim);margin:0;font-size:.88rem;line-height:1.6}.panel a{color:var(--accent)}@media (width<=520px){.hud-info{max-width:calc(100vw - 120px);font-size:.78rem}.wide-only{display:none}}@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}.compass{top:max(10px, env(safe-area-inset-top));pointer-events:none;flex-direction:column;align-items:center;gap:2px;display:flex;position:absolute;left:50%;transform:translate(-50%)}.compass-dial{background:var(--glass);border:1px solid var(--line);width:52px;height:52px;color:var(--ink-dim);--az:0;transform:rotate(calc(var(--az) * -1deg));border-radius:50%;font-size:.68rem;position:relative}.compass-dial span{text-align:center;width:16px;margin:-8px 0 0 -8px;line-height:16px;position:absolute;top:50%;left:50%}.compass-dial .n{transform:translateY(-18px) rotate(calc(var(--az) * 1deg));color:var(--accent);font-weight:700}.compass-dial .s{transform:translateY(18px) rotate(calc(var(--az) * 1deg))}.compass-dial .e{transform:translateX(18px) rotate(calc(var(--az) * 1deg))}.compass-dial .w{transform:translateX(-18px) rotate(calc(var(--az) * 1deg))}.compass-text{background:var(--glass);border-radius:999px;padding:1px 8px;font-size:.75rem}@media (width<=520px){.compass{inset:auto 16px 200px auto;transform:none}}.preview-banner{white-space:nowrap;background:#3c2e6ed9;border-radius:999px;align-items:center;gap:10px;padding:6px 8px 6px 16px;font-size:.9rem;display:flex;position:absolute;top:96px;left:50%;transform:translate(-50%)}.preview-banner button{min-height:36px}.sky-panel{box-sizing:border-box;background:var(--glass-strong);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);width:min(380px,100%);padding:16px;position:absolute;top:0;bottom:0;right:0;overflow-y:auto}.sky-panel h2{margin:0;font-size:1.15rem}.sky-panel h3{color:var(--ink-dim);margin:16px 0 6px;font-size:.95rem}.sky-panel button{border:1px solid var(--line);background:var(--glass-strong);min-height:40px;color:var(--ink);font:inherit;cursor:pointer;border-radius:999px;padding:6px 12px}.sky-panel button[aria-pressed=true]{border-color:var(--accent);color:var(--accent)}.sky-panel button:focus-visible{outline:3px solid var(--accent);outline-offset:2px}.sky-time{color:var(--accent);margin:4px 0 8px;font-size:.9rem}.chips{flex-wrap:wrap;gap:6px;display:flex}.sky-list ul{flex-direction:column;gap:4px;margin:0;padding:0;list-style:none;display:flex}.target-head{text-align:left;justify-content:space-between;gap:8px;width:100%;display:flex;border-radius:10px!important}.target-status{color:var(--ink-dim);white-space:nowrap;font-size:.8rem}.status-recommended .target-status{color:#b6e3a0}.status-below .target-name{color:var(--ink-dim)}.target-detail{padding:8px 10px 10px;font-size:.88rem;line-height:1.55}.target-detail dl{grid-template-columns:max-content 1fr;gap:2px 10px;margin:0 0 6px;display:grid}.target-detail dt{color:var(--ink-dim)}.target-detail dd{margin:0}.target-detail p{margin:4px 0}.target-detail .look{border-color:var(--accent);color:var(--accent)}.muted{color:var(--ink-dim);font-size:.88rem}.small{margin-top:16px;font-size:.78rem}@media (width<=520px){.sky-panel{border-radius:16px 16px 0 0;width:100%;height:58%;top:auto}.preview-banner{font-size:.8rem;top:auto;bottom:80px}}.entry.light{justify-content:flex-start;height:100%;overflow-y:auto}.light-sky{text-align:left;background:var(--glass);box-sizing:border-box;border-radius:14px;width:min(520px,100%);padding:12px 16px}.light-sky h2{color:var(--accent);margin:0 0 4px;font-size:1rem}.light-sky h3{color:var(--ink-dim);margin:14px 0 6px;font-size:.95rem}.light-sky button{border:1px solid var(--line);background:var(--glass-strong);min-height:40px;color:var(--ink);font:inherit;cursor:pointer;padding:6px 12px}.chip.hint{color:var(--ink-dim);font-size:.8rem}.panel-actions{flex-wrap:wrap;gap:8px;margin-top:14px;display:flex}.panel button.accent{border-color:var(--accent);color:var(--accent)}.panel button.danger{color:#ffc2b6;border-color:#e08a7a}.panel-error{color:#ffcbb0;margin:8px 0 0;font-size:.88rem}.panel-grid button[aria-pressed=true]{border-color:var(--accent);color:var(--accent)}.wish-write{flex-direction:column;gap:6px;margin-top:12px;display:flex}.wish-write textarea{box-sizing:border-box;resize:vertical;border:1px solid var(--line);width:100%;color:var(--ink);font:inherit;background:#00000040;border-radius:10px;padding:8px}.wish-write textarea:focus-visible,.check input:focus-visible,.sliders input:focus-visible{outline:3px solid var(--accent);outline-offset:2px}.wish-count{color:var(--ink-dim);align-self:flex-end;font-size:.8rem}.check{align-items:center;gap:8px;min-height:40px;display:flex}.check input{width:20px;height:20px}.wish-list{flex-direction:column;gap:8px;margin:8px 0;padding:0;list-style:none;display:flex}.wish-list li{background:#ffffff0f;border-radius:10px;padding:8px 10px}.wish-list p{white-space:pre-wrap;overflow-wrap:anywhere;margin:0 0 6px}.wish-list div{justify-content:space-between;align-items:center;display:flex}.sliders{flex-direction:column;gap:6px;margin:8px 0;display:flex}.sliders label{color:var(--ink-dim);grid-template-columns:88px 1fr;align-items:center;gap:8px;font-size:.88rem;display:grid}.sliders input{width:100%;min-height:32px}.sr-only{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.toast{background:var(--glass-strong);border-radius:999px;padding:8px 16px;font-size:.9rem;position:absolute;top:90px;left:50%;transform:translate(-50%)}.support{border-top:1px solid var(--line);text-align:center;margin-top:22px;padding-top:14px}.support p{color:var(--ink-dim);margin:0 0 6px;font-size:.88rem;line-height:1.6}.support img{object-fit:contain;background:#fff;border-radius:10px;width:160px;height:160px;margin:8px auto;display:block}.support .qr-missing{color:var(--ink-dim);margin:8px 0;font-size:.8rem}.support a{color:var(--accent);margin-top:6px;display:inline-block}.hud-weather{color:var(--ink-dim);font-size:.8rem}.clear-banner{background:#264c6ee0;top:140px}.panel.prompt{border-radius:16px;align-self:center;width:min(420px,100% - 32px);height:auto;margin:0 auto}.panel.prompt h2{font-size:1.02rem;line-height:1.5}.panel-backdrop:has(.prompt){justify-content:center;align-items:center}.weather-note{margin:6px 0}@media (width<=520px){.clear-banner{top:auto;bottom:130px}}.preview-banner button{border:1px solid var(--line);background:var(--glass-strong);min-height:36px;color:var(--ink);font:inherit;cursor:pointer;border-radius:999px;padding:4px 12px}.preview-banner button:focus-visible{outline:3px solid var(--accent);outline-offset:2px}.letter-backdrop{justify-content:center;align-items:center}.letter-panel{background:linear-gradient(160deg,#2c2552f5,#1c183af5);border:1px solid #d9b56a59;border-radius:18px;width:min(520px,100% - 24px);height:auto;max-height:92%}.zodiac-grid{grid-template-columns:repeat(auto-fill,minmax(104px,1fr));gap:8px;margin-top:10px;display:grid}.panel .zodiac-card{background:#b9a8e814;border-color:#d9b56a59;border-radius:12px;flex-direction:column;align-items:center;gap:2px;min-height:84px;display:flex}.zodiac-symbol{color:#e7cf95;font-size:1.4rem}.zodiac-symbol.big{font-size:2.6rem}.zodiac-dates{color:var(--ink-dim);font-size:.7rem}.letter-card{perspective:900px;margin-top:12px}.letter-envelope{background:linear-gradient(160deg,#efe3c8,#e3d2ae);border-radius:10px;height:190px;transition:transform .9s,opacity .9s;position:relative;overflow:hidden;box-shadow:0 8px 22px #00000059}.envelope-flap{clip-path:polygon(0 0,100% 0,50% 100%);background:linear-gradient(#e8d9b8,#dcc8a0);border-bottom:1px solid #785a3240;height:58%;position:absolute;inset:0 0 auto}.wax-seal{color:#f6d9a8;background:radial-gradient(circle at 35% 30%,#d4544a,#9e2a22 70%);border-radius:50%;justify-content:center;align-items:center;width:52px;height:52px;font-size:1.4rem;display:flex;position:absolute;top:52%;left:50%;transform:translate(-50%,-50%);box-shadow:0 2px 6px #00000059,inset 0 0 0 4px #0000001f}.envelope-to{text-align:center;color:#5a4632;width:100%;font-family:Nanum Myeongjo,AppleMyungjo,Batang,serif;font-size:1.05rem;position:absolute;bottom:14px}.letter-card.open .letter-envelope{opacity:0;height:0;margin:0;transform:translateY(18px)rotateX(70deg)}.letter-card.still .letter-envelope{transition:none}.letter-paper{color:#3b3024;background:repeating-linear-gradient(#0000 0 31px,#9678502e 31px 32px),linear-gradient(#fbf5e6,#f4ead3);border-radius:6px;padding:22px 22px 18px;font-family:Nanum Myeongjo,AppleMyungjo,Batang,Noto Serif KR,serif;line-height:2;animation:.6s paper-in;position:relative;box-shadow:0 10px 24px #00000059,inset 0 0 40px #aa82461f}@keyframes paper-in{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}.letter-paper h3{color:#4a2f6b;margin:0 0 6px;font-size:1.15rem}.letter-paper p{margin:0 0 8px}.letter-date{text-align:right;color:#8a7458;margin:0;font-size:.85rem}.letter-words{color:#3b3024;font-size:1.04rem}.letter-sign{text-align:right;color:#7a5a3a;font-style:italic}.letter-traits{color:#5a4a3a;border-top:1px dashed #785a3266;margin-top:10px;padding-top:8px;font-size:.9rem;line-height:1.75}.letter-traits h4{color:#8a3a2f;letter-spacing:.04em;margin:0 0 4px;font-size:.9rem}.letter-note{color:#8a7a68;font-size:.75rem;line-height:1.5;margin-top:8px!important}@media (prefers-reduced-motion:reduce){.letter-paper{animation:none}}.hud button.accent-btn{color:#f0d79e;border-color:#d9b56a}.social-top{pointer-events:none;gap:6px;display:flex;position:absolute;top:96px;left:16px}.social-top .pill{background:var(--glass-strong);color:var(--ink);margin:0;padding:4px 10px;font-size:.78rem}.social-top .pill.people{background:#3c5a46d9}.greet-wrap{flex-direction:column;align-items:flex-end;display:flex;position:absolute;bottom:90px;right:16px}.greet-wrap button,.peer-menu button{border:1px solid var(--line);background:var(--glass-strong);min-height:40px;color:var(--ink);font:inherit;cursor:pointer;border-radius:999px;padding:6px 12px}.greet-wrap button:disabled{opacity:.6;cursor:default}.greet-wrap button:focus-visible,.peer-menu button:focus-visible{outline:3px solid var(--accent);outline-offset:2px}.greet-picker{background:var(--glass);border-radius:14px;grid-template-columns:1fr 1fr;gap:6px;max-width:340px;padding:10px;display:grid}.peer-menu{background:var(--glass-strong);border-radius:14px;flex-direction:column;align-items:stretch;gap:8px;padding:14px;font-size:.9rem;display:flex;position:absolute;top:40%;left:50%;transform:translate(-50%,-50%)}@media (width<=520px){.social-top{top:150px}.greet-wrap{bottom:190px}}.hud-actions{display:none}.bottom-bar{left:50%;bottom:max(14px, env(safe-area-inset-bottom));-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#cdbeb28c;border:1px solid #ffffff73;border-radius:22px;gap:2px;max-width:calc(100% - 24px);padding:8px 10px;display:flex;position:absolute;overflow-x:auto;transform:translate(-50%)}.bottom-bar .bar-item{color:#2e2a28;min-width:64px;min-height:60px;font:inherit;cursor:pointer;background:0 0;border:none;border-radius:14px;flex-direction:column;justify-content:center;align-items:center;gap:4px;padding:4px 8px;font-size:.82rem;display:flex}.bottom-bar .bar-item[aria-pressed=true]{background:#ffffff73}.bottom-bar .bar-item.accent{color:#6b4a12}.bottom-bar .bar-item.red{color:#c0392b;font-weight:700}.bottom-bar .bar-item:focus-visible{outline-offset:1px;outline:3px solid #f2c96d}.bar-panel{left:50%;bottom:calc(max(14px, env(safe-area-inset-bottom)) + 92px);box-sizing:border-box;background:var(--glass-strong);border:1px solid var(--line);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-radius:18px;width:min(460px,100% - 24px);padding:12px;position:absolute;transform:translate(-50%)}.bar-panel button{border:1px solid var(--line);min-height:42px;color:var(--ink);font:inherit;cursor:pointer;background:#ffffff0f;border-radius:12px;padding:6px 12px}.bar-panel button:focus-visible{outline:3px solid var(--accent);outline-offset:2px}.bar-panel button:disabled{opacity:.5;cursor:default}.bar-panel-head{justify-content:space-between;align-items:center;gap:8px;margin-bottom:10px;display:flex}.bar-panel .tabs{gap:6px;display:flex}.bar-panel .tabs button[aria-selected=true]{border-color:var(--accent);color:var(--accent)}.bar-panel .close{border-radius:999px;min-height:36px}.greet-grid,.move-grid{grid-template-columns:1fr 1fr;gap:6px;display:grid}.move-grid button{text-align:left;flex-direction:column;align-items:flex-start;gap:2px;display:flex}.move-grid small{color:var(--ink-dim);font-size:.75rem}.bar-hint{color:var(--ink-dim);margin:8px 2px 0;font-size:.8rem}.full-note{justify-content:space-between;align-items:center;gap:8px;margin-top:10px;font-size:.88rem;display:flex}.wait-chip{background:var(--glass-strong);white-space:nowrap;border-radius:999px;align-items:center;gap:8px;padding:6px 8px 6px 14px;font-size:.88rem;display:flex;position:absolute;top:92px;left:50%;transform:translate(-50%)}.wait-chip button{border:1px solid var(--line);min-height:34px;color:var(--ink);font:inherit;cursor:pointer;background:#ffffff14;border-radius:999px;padding:4px 12px}.wait-chip.ready{background:#3c5a46eb}.photo-modal img{border-radius:12px;width:100%;margin:8px 0 12px;display:block}.profile-row{gap:6px;margin-top:8px;display:flex}.profile-row input{border:1px solid var(--line);min-width:0;min-height:40px;color:var(--ink);font:inherit;background:#00000040;border-radius:10px;flex:1;padding:0 10px}.profile-row input:focus-visible{outline:3px solid var(--accent)}@media (width<=520px){.bottom-bar{padding:6px}.bottom-bar .bar-item{min-width:52px;padding:4px;font-size:.72rem}.joystick{bottom:120px}.wait-chip{top:auto;bottom:110px}}.panel.paper-panel{color:#3e2f1f;background:radial-gradient(at 15% 10%,#fffaeb8c,#0000 45%),radial-gradient(at 85% 90%,#96693738,#0000 50%),radial-gradient(circle at 70% 25%,#a0733c1a 0 3%,#0000 4%),radial-gradient(circle at 25% 75%,#a0733c14 0 4%,#0000 5%),linear-gradient(170deg,#efe1bf,#e3cd9c 60%,#d7bd86);border:1px solid #78552d73;border-radius:4px;width:min(440px,100% - 32px);height:auto;max-height:90%;padding:24px 22px 20px;font-family:Nanum Myeongjo,AppleMyungjo,Batang,Noto Serif KR,serif;box-shadow:0 14px 34px #00000073,inset 0 0 50px #78501e59,inset 0 0 6px #5a3c1466}.paper-panel h2{color:#5a3a1c;letter-spacing:.06em}.paper-panel .panel-text,.paper-panel .muted,.paper-panel .wish-count,.paper-panel label{color:#6b5233}.paper-panel button{color:#4a3520;background:#fff8e473;border:1px solid #6e4b2880;font-family:inherit}.paper-panel button:hover{background:#fff8e4bf}.paper-panel .panel-grid button[aria-checked=true]{color:#8a3a2f;background:#fff8e4cc;border-color:#8a3a2f}.paper-panel button.accent{color:#fff6e6;background:#8a3a2f;border-color:#8a3a2f}.paper-panel button.accent:hover{background:#9c4537}.paper-panel button.accent:disabled{opacity:.5}.paper-panel button.danger{color:#a0392b;border-color:#a0392b}.paper-panel .wish-write textarea{color:#3e2f1f;background:repeating-linear-gradient(#0000 0 27px,#78552d40 27px 28px),#fffaec80;border:1px solid #6e4b2873;font-family:inherit;line-height:28px}.paper-panel .wish-write textarea::placeholder{color:#9a8262}.paper-panel .wish-list li{border-color:#6e4b284d}.paper-panel :focus-visible{outline-color:#8a3a2f!important}.paper-panel .panel-error{color:#8a2a1f}.panel.support-popup{border-radius:16px;width:min(400px,100% - 32px);height:auto;max-height:90%}.support-popup .support{text-align:center}.support-popup .support img{border-radius:8px;width:min(240px,70%);height:auto;margin:8px auto;display:block}.panel-grid.single{grid-template-columns:1fr;margin-top:16px}.profile-name{margin:8px 0}.profile-row select{background:var(--glass-strong);min-height:40px;color:var(--ink);border:1px solid var(--line);font:inherit;border-radius:10px;flex:1;padding:0 10px}.profile-row:has(select){align-items:center}.menu-instagram{text-align:center;margin:10px 0 4px}.support-popup .support-link{text-underline-offset:3px;margin-top:4px;font-weight:600;text-decoration:underline;display:inline-block}
