:root{--orange: #ff7a1f;--orange-d: #e2621a;--cream: #fff3e3;--cream-2: #f6e9d6;--navy: #1d2752;--navy-2: #121a3e;--ink: #23264a;--muted: #7a7590;--glass: rgba(18, 26, 62, .72);--r: 18px;font-family:Pretendard,Apple SD Gothic Neo,Noto Sans KR,Malgun Gothic,system-ui,sans-serif;color-scheme:light}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body,#root{margin:0;height:100%;overflow:hidden;background:var(--navy-2)}body{-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;overscroll-behavior:none}input,textarea{-webkit-user-select:text;user-select:text}button{font-family:inherit}.app{position:fixed;top:0;right:0;bottom:0;left:0}.stage{position:absolute;top:0;right:0;bottom:0;left:0}.stage canvas{display:block;touch-action:none;outline:none}.fatal{position:fixed;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;text-align:center;color:var(--cream);padding:24px;line-height:1.7;background:var(--navy-2)}.start{position:absolute;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;padding:16px;overflow:auto;z-index:20;background:radial-gradient(120% 80% at 50% 110%,#c4633b,#6a3550 38%,#1a2250 70%,#0e1433)}.start-sky{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;opacity:.8;background-image:radial-gradient(1.5px 1.5px at 20% 30%,#fff 50%,transparent 51%),radial-gradient(1px 1px at 70% 20%,#fff 50%,transparent 51%),radial-gradient(1.5px 1.5px at 40% 70%,#ffe 50%,transparent 51%),radial-gradient(1px 1px at 85% 60%,#fff 50%,transparent 51%),radial-gradient(1.2px 1.2px at 10% 85%,#fff 50%,transparent 51%),radial-gradient(1px 1px at 55% 45%,#fff 50%,transparent 51%);background-size:300px 300px}.start-card{position:relative;width:min(420px,100%);background:var(--cream);color:var(--ink);border-radius:28px;padding:26px 22px 20px;box-shadow:0 30px 80px #00000059;text-align:center}.start-kicker{font-size:13px;font-weight:700;color:var(--orange-d);letter-spacing:.04em}.start-card h1{margin:6px 0 4px;font-size:clamp(30px,8vw,40px);letter-spacing:.08em;color:var(--navy);font-weight:900}.start-sub{margin:0 0 18px;color:var(--muted);font-size:14px}.field{display:block;text-align:left;margin-bottom:8px}.field span{display:block;font-size:13px;font-weight:700;color:var(--navy);margin-bottom:6px}.field input{width:100%;font-size:16px;padding:13px 14px;border-radius:14px;border:2px solid #ecd9c0;background:#fff;color:var(--ink);outline:none}.field input:focus{border-color:var(--orange)}.err{color:#d23a2a;font-size:13px;text-align:left;margin:-2px 0 8px}.pick{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:16px}.pick-card{border:2px solid #ecd9c0;background:#fff;border-radius:18px;padding:10px 6px 8px;cursor:pointer;display:grid;justify-items:center;gap:2px;color:var(--ink);font-weight:700;font-size:14px}.pick-card.on{border-color:var(--orange);background:#fff1e2;box-shadow:0 0 0 3px #ff7a1f2e}.note{font-size:12px;color:var(--muted);margin:10px 0 0}.btn{border:0;border-radius:999px;background:var(--orange);color:#fff;font-weight:800;font-size:15px;padding:12px 20px;cursor:pointer;text-decoration:none;display:inline-block;box-shadow:0 6px 18px #ff7a1f4d}.btn:active{transform:scale(.97)}.btn:disabled{opacity:.45}.btn.big{width:100%;font-size:17px;padding:16px}.btn.ghost{background:transparent;color:var(--navy);box-shadow:inset 0 0 0 2px #e6d3ba}.hud-top{position:absolute;left:0;right:0;top:0;display:flex;justify-content:space-between;align-items:flex-start;gap:8px;padding:calc(12px + env(safe-area-inset-top)) 16px 0;pointer-events:none;z-index:5}.chip{pointer-events:auto;background:var(--glass);color:var(--cream);font-weight:800;font-size:14px;padding:9px 15px;border-radius:999px;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);max-width:60vw;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.hud-btns{display:flex;gap:8px;pointer-events:auto}.icon-btn{width:40px;height:40px;border-radius:50%;border:0;background:var(--glass);color:var(--cream);font-weight:900;font-size:17px;display:grid;place-items:center;cursor:pointer;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px)}.help{position:absolute;left:16px;top:calc(62px + env(safe-area-inset-top));z-index:5;background:var(--glass);color:var(--cream);font-size:13px;line-height:1.6;padding:10px 14px;border-radius:14px;max-width:calc(100vw - 32px);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px)}.help b{color:#ffc56b;margin-right:4px}.toast{position:absolute;left:50%;bottom:calc(168px + env(safe-area-inset-bottom));transform:translate(-50%);z-index:6;background:#121a3edb;color:var(--cream);padding:11px 18px;border-radius:16px;font-size:15px;font-weight:700;text-align:center;max-width:min(86vw,520px);line-height:1.45;pointer-events:none;animation:pop .25s ease}@keyframes pop{0%{opacity:0;transform:translate(-50%,6px)}to{opacity:1;transform:translate(-50%)}}.actions{position:absolute;right:16px;bottom:calc(24px + env(safe-area-inset-bottom));display:flex;flex-direction:column;align-items:flex-end;gap:10px;z-index:5;max-width:52vw}.act{border:0;border-radius:999px;background:var(--orange);color:#fff;font-weight:800;font-size:16px;padding:14px 20px;min-width:128px;cursor:pointer;box-shadow:0 6px 20px #00000047}.act.sub{background:var(--cream);color:var(--navy)}.act:active{transform:scale(.96)}.joy{position:absolute;left:20px;bottom:calc(24px + env(safe-area-inset-bottom));width:128px;height:128px;border-radius:50%;background:#fff3e324;border:2px solid rgba(255,243,227,.32);z-index:5;touch-action:none;display:grid;place-items:center}.knob{width:56px;height:56px;border-radius:50%;background:#fff3e3d9;box-shadow:0 4px 12px #00000040}.vert{position:absolute;right:16px;bottom:calc(150px + env(safe-area-inset-bottom));display:flex;flex-direction:column;gap:8px;z-index:5}.vbtn{width:64px;height:56px;border-radius:18px;border:0;background:#6fb0ffe6;color:#fff;font-weight:900;font-size:18px;display:grid;place-items:center;line-height:1;touch-action:none}.vbtn span{font-size:11px;font-weight:700}.skip{position:absolute;right:16px;bottom:calc(24px + env(safe-area-inset-bottom));z-index:6;border:0;border-radius:999px;padding:12px 20px;background:var(--glass);color:var(--cream);font-weight:800;font-size:15px;cursor:pointer}.bubble3d{position:absolute;transform:translate(-50%,-100%);background:var(--cream);color:var(--navy);padding:10px 14px;border-radius:16px;font-weight:800;font-size:14px;white-space:normal;text-align:center;line-height:1.35;z-index:4;pointer-events:none;box-shadow:0 6px 18px #00000040;width:max-content;max-width:min(78vw,300px)}.bubble3d:after{content:"";position:absolute;left:50%;bottom:-8px;margin-left:-8px;border-width:8px 8px 0;border-style:solid;border-color:var(--cream) transparent transparent}.bubble3d.hidden{display:none}.fade{position:fixed;top:0;right:0;bottom:0;left:0;background:#070a1d;opacity:0;pointer-events:none;transition:opacity .38s ease;z-index:30}.fade.on{opacity:1}.flash{position:fixed;top:0;right:0;bottom:0;left:0;background:#fff;opacity:0;pointer-events:none;transition:opacity .25s;z-index:31}.flash.on{opacity:.9;transition:none}.loading{position:fixed;left:50%;top:50%;transform:translate(-50%,-50%);z-index:32;color:var(--cream);font-weight:700;display:grid;justify-items:center;gap:12px}.spinner{width:34px;height:34px;border-radius:50%;border:4px solid rgba(255,243,227,.25);border-top-color:var(--orange);animation:spin .9s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.modal-wrap{position:fixed;top:0;right:0;bottom:0;left:0;z-index:20;background:#080c2073;display:grid;place-items:center;padding:16px}.modal{width:min(460px,100%);max-height:min(84vh,720px);overflow:auto;background:var(--cream);color:var(--ink);border-radius:24px;padding:18px 18px 20px;box-shadow:0 24px 70px #0006;animation:up .22s ease}@keyframes up{0%{transform:translateY(12px);opacity:0}to{transform:none;opacity:1}}.modal-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:10px}.modal-head h2{margin:0;font-size:18px;color:var(--navy)}.x{border:0;background:#f0e1cc;color:var(--navy);width:34px;height:34px;border-radius:50%;font-size:22px;line-height:1;cursor:pointer;flex:none}.desc{margin:0 0 12px;color:#5d5870;font-size:14px;line-height:1.55}.ta{width:100%;font-size:16px;padding:12px;border-radius:14px;border:2px solid #ecd9c0;background:#fff;resize:none;font-family:inherit;color:var(--ink);outline:none}.ta:focus{border-color:var(--orange)}.row{display:flex;gap:10px;align-items:center;margin-top:12px}.row.between{justify-content:space-between}.row.center{justify-content:center}.list{list-style:none;margin:0;padding:0;display:grid;gap:8px}.list li{background:#fff;border-radius:14px;padding:10px 12px}.list li p{margin:4px 0 0;font-size:14px;line-height:1.55}.list li.sample{background:#fbf4ea}.li-top{display:flex;gap:8px;align-items:center;font-size:13px;color:var(--muted)}.li-top b{color:var(--navy);font-size:14px}.li-top span:last-child{margin-left:auto}.tag{background:#ffe1c4;color:var(--orange-d);font-weight:800;font-size:11px;padding:2px 7px;border-radius:999px}.books li{padding:0}.book{width:100%;text-align:left;border:0;background:#fff;border-radius:14px;padding:12px;cursor:pointer;display:flex;justify-content:space-between;gap:8px;color:var(--ink);font-size:14px}.book span{color:var(--muted);font-size:12px}.read p{line-height:1.7;font-size:15px}.media{width:100%;border-radius:16px;display:block;aspect-ratio:4 / 3;object-fit:cover;background:#f3dfc4}.media.placeholder{display:grid;place-items:center;align-content:center;gap:6px;color:var(--navy);text-align:center;padding:16px;background:linear-gradient(160deg,#ffd9a8,#ff9a5a)}.media.placeholder span{font-size:13px;opacity:.8}.ph-dot{width:46px;height:46px;border-radius:50%;background:var(--orange);box-shadow:0 0 0 10px #ffffffb3;margin-bottom:8px}.meta{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:12px 0 6px}.meta div{background:#fff;border-radius:12px;padding:8px 10px;display:grid;gap:2px}.meta span{font-size:12px;color:var(--muted)}.meta b{font-size:14px;color:var(--navy)}.big-msg{font-size:20px;font-weight:800;color:var(--navy);text-align:center;margin:16px 0 8px;line-height:1.5}.scope-wrap{background:#050818d1}.scope{position:relative;width:min(420px,100%);display:grid;justify-items:center;gap:14px}.scope-x{position:absolute;right:0;top:-8px;z-index:2}.lens{position:relative;width:min(82vw,360px);aspect-ratio:1;border-radius:50%;overflow:hidden;border:10px solid #f6e9d6;box-shadow:0 0 0 6px var(--orange),0 20px 60px #00000080;background:#0d1433}.lens .media{height:100%;aspect-ratio:auto;border-radius:0}.lens-label{position:absolute;left:0;right:0;bottom:14%;display:grid;justify-items:center;color:#fff;text-shadow:0 2px 8px rgba(0,0,0,.6);font-size:13px}.lens-label b{font-size:16px}.cap{position:absolute;top:0;right:0;bottom:0;left:0;background:radial-gradient(circle at 50% 50%,#ff8a3a,#e2621a);transform:translateY(-105%);transition:transform .6s cubic-bezier(.6,0,.3,1);display:grid;place-items:center}.lens.capped .cap{transform:translateY(0)}.memo{background:#fff6d8;color:var(--navy);padding:16px 18px;border-radius:6px;transform:rotate(-4deg);box-shadow:0 8px 18px #00000040;display:grid;gap:6px;text-align:center;animation:up .3s ease}.memo b{font-size:18px}.memo span{font-size:13px;color:#6a5a40}.places{display:flex;flex-wrap:wrap;gap:8px;justify-content:center}.pl{border:0;border-radius:999px;padding:9px 14px;background:#fff3e326;color:var(--cream);font-weight:700;font-size:14px;cursor:pointer}.pl.on{background:var(--cream);color:var(--navy)}.scope .btn.ghost{color:var(--cream);box-shadow:inset 0 0 0 2px #fff3e366}.map-svg{width:100%;height:auto;display:block;margin-bottom:12px}.map-list{display:grid;grid-template-columns:1fr 1fr;gap:8px}.map-go{border:0;border-radius:14px;background:#fff;padding:10px;text-align:left;display:grid;gap:2px;cursor:pointer;color:var(--navy)}.map-go b{font-size:14px}.map-go span{font-size:12px;color:var(--orange-d);font-weight:700}.map-go.off{opacity:.5;cursor:default}.map-go.off span{color:var(--muted)}@media (max-width: 420px){.act{font-size:15px;padding:13px 16px;min-width:112px}.chip{font-size:13px}}@media (prefers-reduced-motion: reduce){*{animation:none!important;transition:none!important}}
