:root{--bg0: #07090e;--bg1: #0d1018;--panel: rgba(12, 15, 22, .92);--ink: #e7e9ee;--ink-dim: #9aa3b2;--muted: #5d6675;--teal: #7dd3c0;--teal-dim: #4f8f84;--rust: #c6603f;--line: rgba(125, 211, 192, .18);--shadow: 0 10px 40px rgba(0, 0, 0, .6);--font: "Pretendard", "Apple SD Gothic Neo", "Noto Sans KR", system-ui, sans-serif;--serif: "Nanum Myeongjo", "Noto Serif KR", Georgia, serif}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}html,body{touch-action:manipulation}body{background:var(--bg0);color:var(--ink);font-family:var(--font);-webkit-font-smoothing:antialiased;overflow:hidden}.app{position:relative;width:100vw;height:100dvh;overflow:hidden}.version-badge{position:fixed;left:8px;bottom:6px;font-size:11px;color:var(--muted);letter-spacing:.04em;z-index:50;pointer-events:none}.title-screen{position:absolute;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;background:radial-gradient(120% 90% at 70% 10%,#11202a 0%,var(--bg0) 60%),var(--bg0)}.title-rain{position:absolute;top:0;right:0;bottom:0;left:0;background-image:repeating-linear-gradient(100deg,rgba(125,211,192,.05) 0px,rgba(125,211,192,.05) 1px,transparent 1px,transparent 9px);animation:rain .6s linear infinite;opacity:.5;pointer-events:none}@keyframes rain{to{background-position:-40px 120px}}.title-inner{position:relative;text-align:center;z-index:1}.title-logo{font-family:var(--serif);font-size:clamp(120px,34vw,300px);font-weight:700;line-height:.9;margin:0;letter-spacing:.02em;color:var(--ink);text-shadow:0 0 48px rgba(125,211,192,.35),0 6px 30px rgba(0,0,0,.6)}.title-name{font-family:var(--serif);color:var(--ink);letter-spacing:.06em;font-size:clamp(18px,4.5vw,26px);margin:10px 0 2px}.title-tag{color:var(--ink-dim);letter-spacing:.2em;font-size:14px;margin:4px 0 36px}.title-menu{display:flex;flex-direction:column;gap:12px;width:260px;margin:0 auto}.title-btn{background:#ffffff08;border:1px solid var(--line);color:var(--ink);padding:13px 18px;font-size:15px;letter-spacing:.1em;cursor:pointer;transition:all .15s ease}.title-btn:hover{border-color:var(--teal);background:#7dd3c014;color:var(--teal)}.title-btn.primary{border-color:var(--teal-dim);color:var(--teal)}.auth-status{position:absolute;top:max(14px,env(safe-area-inset-top));right:max(14px,env(safe-area-inset-right));z-index:5;display:flex;align-items:center;gap:10px;font-size:13px}.auth-name{color:var(--ink-dim);letter-spacing:.04em}.auth-btn{display:inline-block;padding:7px 14px;border:1px solid var(--line);border-radius:999px;color:var(--ink-dim);text-decoration:none;letter-spacing:.06em;background:#0a0c1280;-webkit-tap-highlight-color:transparent;transition:border-color .15s,color .15s,background .15s}.auth-btn:hover{border-color:var(--teal-dim);color:var(--teal)}.auth-btn.login{border-color:var(--teal-dim);color:var(--teal);background:#7dd3c014}.title-btn.locked{opacity:.55;border-style:dashed}.title-locked-hint{margin:18px auto 0;max-width:320px;color:var(--rust);font-size:13px;line-height:1.6;letter-spacing:.02em}.title-locked-hint b{color:var(--teal)}.title-foot{margin-top:40px;color:var(--muted);font-size:12px;letter-spacing:.08em}.game{position:absolute;top:0;right:0;bottom:0;left:0}.stage{position:absolute;top:0;right:0;bottom:0;left:0;overflow:hidden;z-index:1;isolation:isolate;background:radial-gradient(120% 100% at 50% 0%,#16202b,#070a10 70%),var(--bg1)}.stage-bg{position:absolute;top:0;right:0;bottom:0;left:0;background-size:cover;background-position:center;will-change:opacity}.stage-bg.fade-in{animation:bgfade .55s ease both}@keyframes bgfade{0%{opacity:0}to{opacity:1}}.stage-vignette{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;background:radial-gradient(120% 90% at 50% 38%,transparent 40%,rgba(0,0,0,.72) 100%)}.char{position:absolute;left:50%;bottom:18vh;height:56vh;width:100%;transform:translate(-50%);filter:drop-shadow(0 12px 30px rgba(0,0,0,.6));transition:filter .4s ease;animation:spritein .45s ease both,idle-breathe 6s ease-in-out .45s infinite}.char.pos-center{left:50%;width:100%;height:56vh}.char.pos-left{left:27%;width:54%;height:50vh}.char.pos-right{left:73%;width:54%;height:50vh}.char.active{z-index:2}.char.inactive{z-index:1;filter:brightness(.5) saturate(.85) drop-shadow(0 12px 30px rgba(0,0,0,.6))}.char-frame{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;object-fit:contain;object-position:bottom center;transition:opacity .28s ease;will-change:opacity}.stage-cg{position:absolute;bottom:21vh;left:50%;transform:translate(-50%);height:34vh;max-width:60%;object-fit:contain;object-position:center;z-index:3;pointer-events:none;filter:drop-shadow(0 16px 44px rgba(0,0,0,.7));animation:cgin .5s ease both}@keyframes cgin{0%{opacity:0;transform:translate(-50%,14px) scale(.97)}to{opacity:1;transform:translate(-50%) scale(1)}}@keyframes spritein{0%{opacity:0;transform:translate(-50%,12px)}to{opacity:1;transform:translate(-50%)}}@keyframes idle-breathe{0%,to{transform:translate(-50%) scale(1)}50%{transform:translate(-50%,-3px) scale(1.006)}}@media (prefers-reduced-motion: reduce){.char{animation:spritein .45s ease both}}.game-click{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;justify-content:flex-end;cursor:pointer;z-index:2}.game-bottom{padding:env(safe-area-inset-top) max(20px,5vw) max(20px,4vh,env(safe-area-inset-bottom));max-height:100%;overflow-y:auto}.dialogue{background:linear-gradient(180deg,#080b1166,#080b11f2);border-top:1px solid var(--line);border-radius:10px;padding:20px 26px 26px;max-width:980px;margin:0 auto;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);box-shadow:var(--shadow);min-height:132px}.dialogue.narration{background:linear-gradient(180deg,#080b1133,#080b11db);font-style:italic;color:var(--ink-dim)}.dialogue-name{font-weight:700;letter-spacing:.06em;margin-bottom:8px;font-size:16px;color:var(--teal)}.dialogue-text{font-size:clamp(16px,2.1vw,20px);line-height:1.85;white-space:pre-wrap}.caret{display:inline-block;width:8px;height:1.05em;vertical-align:-.18em;margin-left:2px;background:var(--teal);animation:blink .8s steps(2) infinite}.advance-mark{margin-left:8px;color:var(--teal-dim);animation:bob 1.1s ease-in-out infinite;font-size:.8em}@keyframes blink{50%{opacity:0}}@keyframes bob{50%{transform:translateY(3px);opacity:.5}}.choices{max-width:720px;margin:0 auto;display:flex;flex-direction:column;gap:12px;padding-bottom:12px}.choices-prompt{text-align:center;color:var(--ink-dim);letter-spacing:.08em;margin-bottom:4px}.choices-list{display:flex;flex-direction:column;gap:12px}.choice-btn{background:#0d1118eb;border:1px solid var(--line);color:var(--ink);padding:16px 22px;font-size:16px;text-align:left;cursor:pointer;border-radius:8px;transition:all .15s ease}.choice-btn:hover{border-color:var(--teal);background:#7dd3c01a;transform:translate(4px)}.toolbar{position:absolute;top:max(12px,env(safe-area-inset-top));right:max(14px,env(safe-area-inset-right));display:flex;gap:6px;z-index:30}.tool{background:#080b11b3;border:1px solid var(--line);color:var(--ink-dim);padding:7px 11px;font-size:12px;letter-spacing:.08em;cursor:pointer;border-radius:6px;transition:all .12s ease;white-space:nowrap;flex:0 0 auto}.tool:hover{color:var(--teal);border-color:var(--teal)}.tool.on{color:var(--bg0);background:var(--teal);border-color:var(--teal)}.tool-group{display:flex;gap:6px}.tool-more-btn{display:none;font-size:14px;line-height:1;padding:7px 12px}@media (max-width: 600px){.toolbar{top:max(8px,env(safe-area-inset-top));right:max(8px,env(safe-area-inset-right))}.tool-more-btn{display:inline-block}.tool-group{display:none;position:absolute;top:calc(100% + 6px);right:0;flex-direction:column;gap:6px;background:var(--panel);border:1px solid var(--line);border-radius:8px;padding:6px;box-shadow:var(--shadow);min-width:132px}.tool-group.open{display:flex}.tool-group .tool{width:100%;text-align:left;padding:10px 12px;font-size:13px}}.overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:#04060ab8;display:grid;place-items:center;z-index:40;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.panel{background:var(--panel);border:1px solid var(--line);border-radius:12px;width:min(720px,92vw);max-height:84vh;display:flex;flex-direction:column;box-shadow:var(--shadow)}.panel-head{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;border-bottom:1px solid var(--line)}.panel-head h2{margin:0;font-size:18px;letter-spacing:.08em;color:var(--teal)}.x{background:none;border:none;color:var(--ink-dim);font-size:18px;cursor:pointer}.muted{color:var(--muted)}.backlog-list,.clue-list,.slot-list{overflow-y:auto;padding:16px 20px;display:flex;flex-direction:column;gap:12px}.backlog-entry{border-left:2px solid var(--line);padding-left:12px}.backlog-name{display:block;color:var(--teal);font-size:13px;font-weight:700;margin-bottom:2px}.backlog-text{color:var(--ink);line-height:1.6}.clue-card{border:1px solid var(--line);border-radius:8px;padding:14px 16px;background:#ffffff05}.clue-title{color:var(--teal);font-weight:700;margin-bottom:6px;letter-spacing:.04em}.clue-body{color:var(--ink-dim);line-height:1.7;font-size:14px}.slot{display:flex;align-items:center;justify-content:space-between;border:1px solid var(--line);border-radius:8px;padding:12px 14px;gap:12px}.slot.auto{border-style:dashed}.slot-info{display:flex;flex-direction:column;gap:2px;min-width:0}.slot-tag{color:var(--teal);font-size:12px;letter-spacing:.06em}.slot-label{color:var(--ink);font-size:14px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:60vw}.slot-time{color:var(--muted);font-size:11px}.slot-actions{display:flex;gap:6px;flex-shrink:0}.slot-act,.slot-del{background:#ffffff08;border:1px solid var(--line);color:var(--ink-dim);padding:7px 12px;font-size:12px;border-radius:6px;cursor:pointer}.slot-act:hover{color:var(--teal);border-color:var(--teal)}.slot-del:hover{color:var(--rust);border-color:var(--rust)}.settings-panel{padding-bottom:8px}.setting-row{display:flex;align-items:center;justify-content:space-between;padding:14px 20px;gap:16px;border-bottom:1px solid rgba(125,211,192,.08)}.setting-row label{color:var(--ink-dim);font-size:14px;white-space:nowrap;flex-shrink:0}.setting-control{display:flex;align-items:center;gap:12px;min-width:0}.setting-control input[type=range]{width:180px;max-width:100%;accent-color:var(--teal)}@media (max-width: 600px){.setting-row{flex-direction:column;align-items:stretch;gap:8px}.setting-control{width:100%}.setting-control input[type=range]{flex:1;width:auto}}.setting-val{width:56px;text-align:right;color:var(--teal);font-size:13px}.mute-btn{background:#ffffff0a;border:1px solid var(--line);color:var(--ink-dim);width:36px;height:30px;border-radius:6px;cursor:pointer;font-size:14px;flex-shrink:0}.mute-btn.on{color:var(--rust);border-color:var(--rust)}.cipher{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:20px 24px;max-width:980px;margin:0 auto;box-shadow:var(--shadow);cursor:default}.cipher-head{font-family:var(--serif);font-size:20px;color:var(--teal);letter-spacing:.1em;margin-bottom:6px}.cipher-intro{color:var(--ink-dim);font-size:14px;line-height:1.7;margin:0 0 14px}.cipher-cols{display:grid;grid-template-columns:1fr 280px;gap:20px}@media (max-width: 760px){.cipher{padding:16px}.cipher-cols{grid-template-columns:1fr}.cipher-side{border-left:none;padding-left:0;border-top:1px solid var(--line);padding-top:14px}.cipher-controls{flex-wrap:wrap}.cipher-text,.cipher-decoded{font-size:16px;letter-spacing:.02em;padding:12px}.cipher-answer{flex-wrap:wrap}.cipher-answer input{min-width:0}.cipher-submit{padding:12px 18px}}.cipher-label{font-size:12px;letter-spacing:.12em;color:var(--muted);margin:12px 0 6px}.cipher-text{font-family:D2Coding,Courier New,monospace;background:#05070b;border:1px solid var(--line);border-radius:6px;padding:14px;font-size:19px;letter-spacing:.08em;line-height:1.7;color:var(--rust);word-break:keep-all;overflow-wrap:anywhere;white-space:normal}.cipher-controls{display:flex;align-items:flex-end;gap:8px;margin:12px 0}.cipher-controls label{display:flex;flex-direction:column;gap:4px;color:var(--ink-dim);font-size:12px}.cipher-controls input{width:90px;background:#05070b;border:1px solid var(--line);color:var(--ink);padding:9px 10px;border-radius:6px;font-size:15px}.cipher-step{background:#ffffff0a;border:1px solid var(--line);color:var(--ink);width:38px;height:38px;font-size:18px;border-radius:6px;cursor:pointer}.cipher-step:hover{border-color:var(--teal);color:var(--teal)}.cipher-decoded{font-family:D2Coding,Courier New,monospace;background:#05070b;border:1px dashed var(--line);border-radius:6px;padding:14px;font-size:19px;letter-spacing:.08em;line-height:1.7;color:var(--ink-dim);word-break:keep-all;overflow-wrap:anywhere;white-space:normal;min-height:52px}.cipher-wet-tag{color:var(--rust);font-style:italic;letter-spacing:.06em}.cipher-text.wet,.cipher-decoded.wet{background-image:radial-gradient(120% 80% at 30% 20%,rgba(80,110,120,.12),transparent 60%),radial-gradient(90% 70% at 80% 90%,rgba(60,90,100,.1),transparent 55%)}.cipher-blot{display:inline-block;color:#6f7a82;background:#28343a8c;border-radius:3px;margin:0 .02em;filter:blur(.7px);text-shadow:0 0 6px rgba(120,150,160,.6);transform:translateY(.04em);opacity:.85}.cipher-answer{display:flex;gap:8px;margin-top:14px}.cipher-answer input{flex:1;background:#05070b;border:1px solid var(--line);color:var(--ink);padding:12px 14px;border-radius:6px;font-size:16px}.cipher-submit{background:#ffffff0a;border:1px solid var(--line);color:var(--ink);padding:0 22px;border-radius:6px;cursor:pointer;font-size:15px;letter-spacing:.08em}.cipher-submit.solved{background:var(--teal);color:var(--bg0);border-color:var(--teal)}.cipher-feedback{margin-top:10px;color:var(--teal);font-size:14px;min-height:20px}.cipher-side{border-left:1px solid var(--line);padding-left:18px}.cipher-clue{border:1px solid var(--line);border-radius:6px;padding:10px 12px;margin-bottom:8px;background:#ffffff05}.cipher-clue-title{color:var(--teal);font-size:13px;font-weight:700;margin-bottom:4px}.cipher-clue-body{color:var(--ink-dim);font-size:13px;line-height:1.6}.cipher-hint-btn{margin-top:12px;width:100%;background:#c6603f1a;border:1px solid rgba(198,96,63,.4);color:var(--rust);padding:9px;border-radius:6px;cursor:pointer;font-size:13px}.cipher-hint-btn:disabled{opacity:.4;cursor:default}.cipher-hint{margin-top:8px;font-size:13px;color:var(--ink-dim);line-height:1.6;border-left:2px solid var(--rust);padding-left:10px}.loading-screen{position:absolute;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;background:radial-gradient(120% 90% at 50% 20%,#11202a 0%,var(--bg0) 65%),var(--bg0)}.loading-inner{display:flex;flex-direction:column;align-items:center;gap:16px;width:min(320px,70vw)}.loading-spinner{width:44px;height:44px;border-radius:50%;border:3px solid rgba(125,211,192,.18);border-top-color:var(--teal);animation:spin .9s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.loading-label{color:var(--ink-dim);letter-spacing:.16em;font-size:14px}.loading-bar{width:100%;height:4px;background:#7dd3c01f;border-radius:999px;overflow:hidden}.loading-bar-fill{height:100%;background:var(--teal);border-radius:999px;transition:width .2s ease}.loading-pct{color:var(--teal);font-size:12px;letter-spacing:.1em}.ending-screen{position:absolute;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;background:var(--bg0);overflow:hidden}.ending-cg{position:absolute;top:0;right:0;bottom:0;left:0;background-size:cover;background-position:center;background-repeat:no-repeat;animation:endingCgIn 1.4s ease both}@keyframes endingCgIn{0%{opacity:0;transform:scale(1.06)}to{opacity:1;transform:scale(1)}}.ending-scrim{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none}.ending-screen.has-cg .ending-scrim{background:linear-gradient(180deg,#05070c8c,#05070c26,#05070c73 64%,#05070ceb)}.ending-inner{position:relative;z-index:2;text-align:center;padding:0 24px}.ending-screen.has-cg .ending-inner{align-self:end;margin-bottom:clamp(28px,8vh,84px);text-shadow:0 2px 18px rgba(0,0,0,.9)}.ending-subtitle{color:var(--ink-dim);letter-spacing:.08em;font-size:clamp(13px,3.4vw,16px);margin:-8px 0 16px}.ending-kicker{color:var(--teal);letter-spacing:.4em;font-size:13px}.ending-title{font-family:var(--serif);font-size:clamp(32px,6vw,56px);margin:10px 0 18px}.ending-note{color:var(--ink-dim);margin-bottom:30px}.ending-actions{display:flex;gap:12px;justify-content:center;flex-wrap:wrap;margin-bottom:10px}.title-btn.kakao{background:#fee500;border-color:#fee500;color:#181600;font-weight:700}.title-btn.kakao:hover{background:#ffe600;color:#181600}.title-btn .hint{font-weight:400;font-size:11px;opacity:.6}.toast{position:fixed;left:50%;bottom:12%;transform:translate(-50%);background:var(--panel);border:1px solid var(--line);color:var(--ink);padding:12px 20px;border-radius:10px;font-size:14px;letter-spacing:.04em;box-shadow:var(--shadow);z-index:60;animation:toastin .2s ease}@keyframes toastin{0%{opacity:0;transform:translate(-50%,8px)}}.notice-modal{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:28px 32px;display:flex;flex-direction:column;align-items:center;gap:18px;box-shadow:var(--shadow)}.notice-text{color:var(--ink);font-size:16px;letter-spacing:.06em}.tool-badge{display:inline-block;margin-left:6px;padding:0 6px;border-radius:999px;background:#7dd3c02e;color:var(--teal);font-size:11px;font-weight:700;line-height:1.5}.tool.on .tool-badge{background:#07090e4d;color:var(--bg0)}.cipher-skip-btn{margin-top:12px;width:100%;padding:9px 12px;background:#d9a4411a;border:1px solid var(--rust);color:var(--rust);border-radius:6px;cursor:pointer;font-size:13px;letter-spacing:.04em}.cipher-skip-btn:hover{background:#d9a4412e}.cipher-skip-qty{display:inline-block;margin-left:4px;padding:0 6px;border-radius:999px;background:#d9a44138;font-weight:700;font-size:11px}.save-quota{margin:-4px 0 14px;padding:8px 12px;background:#7dd3c00f;border:1px solid var(--line);border-radius:6px;color:var(--ink-dim);font-size:13px;letter-spacing:.02em}.save-quota b{color:var(--teal)}.save-quota-sub{color:var(--muted);font-size:12px}.slot.locked{opacity:.6}.slot-extra-tag{color:var(--rust);font-size:11px}.slot-act.buy{border-color:var(--rust);color:var(--rust)}.shop-notice .notice-text{text-align:center;line-height:1.6}.shop-notice-actions{display:flex;gap:10px;flex-wrap:wrap;justify-content:center}.shop-notice-actions .title-btn{text-decoration:none}.tool-badge.lock{background:#d9a4412e;color:var(--rust)}.cipher-hint-cost{display:inline-block;margin-left:6px;padding:0 6px;border-radius:999px;background:#7dd3c029;color:var(--teal);font-size:11px;font-weight:700}.hint-draw{position:absolute;top:0;right:0;bottom:0;left:0;z-index:30;display:grid;place-items:center;background:#04060bd1;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);animation:fadeIn .2s ease both}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.hint-draw-inner{text-align:center;padding:16px;max-width:92vw}.hint-draw-title{color:var(--ink);font-family:var(--serif);font-size:clamp(16px,4vw,22px);margin-bottom:18px;letter-spacing:.04em}.hint-cards{display:flex;gap:14px;justify-content:center;flex-wrap:wrap;perspective:1200px}.hint-card{position:relative;width:clamp(96px,22vw,150px);aspect-ratio:2 / 3;border:none;background:none;padding:0;cursor:pointer;transform-style:preserve-3d;transition:transform .5s cubic-bezier(.4,.1,.2,1),opacity .4s ease}.hint-card:not(:disabled):hover{transform:translateY(-8px)}.hint-card.flipped{transform:rotateY(180deg)}.hint-card.dimmed{opacity:.25;filter:grayscale(.6)}.hint-card-face{position:absolute;top:0;right:0;bottom:0;left:0;backface-visibility:hidden;border-radius:12px;display:grid;place-items:center;overflow:hidden}.hint-card-back img{width:100%;height:100%;object-fit:contain;display:block;filter:drop-shadow(0 6px 20px rgba(0,0,0,.6))}.hint-card-front{transform:rotateY(180deg);background:linear-gradient(160deg,#0f1620,#0a0e15);border:1px solid var(--teal-dim);padding:12px;box-shadow:0 0 24px #7dd3c033}.hint-card-text{color:var(--ink);font-size:clamp(11px,2.6vw,13px);line-height:1.5;letter-spacing:.01em}.hint-draw-close{margin-top:22px}.reward-toast{position:absolute;top:18%;left:50%;transform:translate(-50%);z-index:40;color:var(--teal);font-family:var(--serif);font-size:clamp(34px,9vw,64px);font-weight:700;text-shadow:0 0 24px rgba(125,211,192,.6),0 2px 8px rgba(0,0,0,.8);pointer-events:none;animation:rewardPop 1.8s ease both}.reward-toast-sub{font-family:var(--font);font-size:.34em;margin-left:6px;letter-spacing:.1em;color:var(--ink-dim)}@keyframes rewardPop{0%{opacity:0;transform:translate(-50%,14px) scale(.7)}18%{opacity:1;transform:translate(-50%) scale(1.05)}32%{transform:translate(-50%) scale(1)}78%{opacity:1;transform:translate(-50%,-10px)}to{opacity:0;transform:translate(-50%,-42px)}}.install-sheet-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:50;display:flex;align-items:flex-end;justify-content:center;background:#04060b8c;animation:fadeIn .2s ease both}.install-sheet{width:100%;max-width:460px;margin:0 10px calc(10px + env(safe-area-inset-bottom));background:var(--panel);border:1px solid var(--line);border-radius:16px;padding:14px 22px 22px;box-shadow:var(--shadow);animation:sheetUp .32s cubic-bezier(.2,.8,.2,1) both}@keyframes sheetUp{0%{transform:translateY(40px);opacity:.4}to{transform:translateY(0);opacity:1}}.install-sheet-grip{width:40px;height:4px;border-radius:2px;background:var(--line);margin:0 auto 14px}.install-sheet-title{font-family:var(--serif);font-size:19px;color:var(--ink);margin-bottom:8px}.install-sheet-body{color:var(--ink-dim);font-size:14px;line-height:1.6}.install-sheet-body b{color:var(--ink)}.install-ios-steps{margin-top:10px;padding:10px 12px;background:#7dd3c00f;border:1px solid var(--line);border-radius:8px;font-size:13px}.install-ios-icon{font-size:1.1em}.install-sheet-actions{display:flex;gap:10px;align-items:center;margin-top:18px;flex-wrap:wrap}.install-never{margin-left:auto;background:none;border:none;color:var(--muted);font-size:12px;cursor:pointer;text-decoration:underline;letter-spacing:.02em}.collection-panel{width:min(880px,94vw);max-height:88vh;display:flex;flex-direction:column}.collection-body{overflow-y:auto;padding:4px 2px 8px}.stat-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-bottom:22px}.stat-card{background:#7dd3c00d;border:1px solid var(--line);border-radius:10px;padding:14px 12px;text-align:center}.stat-num{font-family:var(--serif);font-size:clamp(26px,7vw,38px);color:var(--teal);line-height:1}.stat-den{font-size:.5em;color:var(--ink-dim)}.stat-label{margin-top:6px;font-size:12px;color:var(--ink-dim);letter-spacing:.04em}.stat-sub{display:block;color:var(--muted);font-size:11px;margin-top:2px}.collection-ep{margin-bottom:22px}.collection-ep-head{display:flex;justify-content:space-between;align-items:baseline;border-bottom:1px solid var(--line);padding-bottom:6px;margin-bottom:12px}.collection-ep-title{font-family:var(--serif);color:var(--ink);font-size:16px}.collection-ep-count{color:var(--teal);font-size:13px}.ending-gallery{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:12px}.gallery-cell{background:none;border:1px solid var(--line);border-radius:10px;padding:0;overflow:hidden;cursor:pointer;text-align:left;transition:border-color .15s,transform .15s}.gallery-cell:not(:disabled):hover{border-color:var(--teal);transform:translateY(-3px)}.gallery-cell.locked{cursor:default;opacity:.7}.gallery-thumb{display:block;width:100%;aspect-ratio:16 / 9;background-size:cover;background-position:center;background-color:#05070b}.locked-thumb{display:grid;place-items:center;color:var(--muted);font-family:var(--serif);font-size:36px;background:repeating-linear-gradient(45deg,#0a0e15,#0a0e15 8px,#0c1118 8px,#0c1118 16px)}.gallery-caption{display:flex;justify-content:space-between;align-items:center;padding:8px 10px;font-size:13px;color:var(--ink)}.gallery-cell.locked .gallery-caption{color:var(--muted)}.gallery-badge{color:var(--teal);font-size:12px;font-weight:700}.cg-lightbox{position:fixed;top:0;right:0;bottom:0;left:0;z-index:60;display:grid;place-items:center;background:#020408eb;padding:16px;animation:fadeIn .2s ease both}.cg-lightbox img{max-width:96vw;max-height:80vh;border-radius:8px;box-shadow:0 12px 50px #000000b3}.cg-lightbox-cap{position:absolute;bottom:max(24px,env(safe-area-inset-bottom));text-align:center;text-shadow:0 2px 10px rgba(0,0,0,.9)}.cg-lightbox-title{font-family:var(--serif);font-size:clamp(20px,5vw,30px);color:var(--ink)}.cg-lightbox-sub{color:var(--ink-dim);font-size:13px;margin-top:4px}
