:root{color-scheme:dark;--ink:#02101d;--deep:#041a2d;--cyan:#7ce1f3;--cyan-soft:#bceef6;--gold:#f5d27c;--white:#f5fbff;--muted:#8eafc1;--line:rgba(152,222,242,.26);--glass:rgba(3,25,43,.82);--radius:7px}
*{box-sizing:border-box}html,body{width:100%;height:100%;margin:0;overflow:hidden;background:#020b14;color:var(--white);font-family:"Segoe UI","PingFang SC","Microsoft YaHei",sans-serif;letter-spacing:0}button,textarea{font:inherit;color:inherit}button{cursor:pointer}button:focus-visible,textarea:focus-visible{outline:2px solid var(--gold);outline-offset:3px}.app{position:relative;width:min(100vw,430px);height:100dvh;min-height:620px;margin:auto;overflow:hidden;background:var(--ink);isolation:isolate;box-shadow:0 0 90px #000}.page{position:absolute;inset:0;visibility:hidden;opacity:0;transform:translateX(22px);transition:opacity .28s ease,transform .28s ease;overflow:hidden}.page.active{visibility:visible;opacity:1;transform:none;z-index:2}.scene{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}.scene-shade{position:absolute;inset:0;background:linear-gradient(180deg,rgba(1,9,18,.48),rgba(2,17,31,.05) 33%,rgba(2,13,25,.2) 61%,rgba(1,10,20,.93) 91%);pointer-events:none}.eyebrow{margin:0 0 3px;color:#91b8ca;font:8px/1.2 Consolas,monospace}.round-button{display:grid;place-items:center;width:38px;height:38px;padding:0;border:1px solid rgba(166,226,246,.4);border-radius:50%;background:rgba(3,28,48,.7);font-size:23px;backdrop-filter:blur(10px)}.home-head,.page-head{position:relative;z-index:8;display:flex;align-items:center;gap:11px;padding:max(18px,env(safe-area-inset-top)) 17px 12px}.home-head h1,.page-head h2{margin:0;font-size:19px;font-weight:650}.home-head .round-button{margin-left:auto}.brand-mark{display:grid;place-items:center;width:38px;height:38px;border:1px solid var(--gold);border-radius:50%;color:var(--gold);font-family:serif;box-shadow:0 0 18px rgba(245,210,124,.18)}.orbit{position:absolute;z-index:3;top:24%;left:50%;width:172px;height:172px;border:1px solid rgba(145,221,243,.17);border-radius:50%;transform:translateX(-50%);animation:orbit 18s linear infinite}.orbit:before,.orbit:after{content:"";position:absolute;border:1px solid rgba(145,221,243,.12);border-radius:50%;inset:17px}.orbit:after{inset:38px;border-color:rgba(245,210,124,.2)}.orbit span{position:absolute;inset:52px;display:grid;place-items:center;border:1px solid rgba(245,210,124,.55);border-radius:50%;background:rgba(3,25,44,.38);color:var(--gold);font:29px serif;box-shadow:0 0 32px rgba(245,210,124,.15)}.orbit i{position:absolute;top:-3px;left:50%;width:6px;height:6px;border-radius:50%;background:var(--cyan);box-shadow:0 0 13px var(--cyan)}.orbit i:nth-child(2){top:auto;bottom:15px;left:14px;background:var(--gold)}.home-copy{position:absolute;z-index:4;top:49%;width:100%;text-align:center;text-shadow:0 2px 10px #000}.home-copy p{margin:0 0 8px;font-family:serif;font-size:20px}.home-copy span{color:#a7c0d0;font-size:11px}.home-actions{position:absolute;z-index:5;left:18px;right:18px;bottom:106px;display:grid;grid-template-columns:1fr 1fr;gap:10px}.ritual-button{min-width:0;padding:15px 8px 14px;border:1px solid var(--line);border-radius:var(--radius);background:rgba(3,29,50,.78);backdrop-filter:blur(14px);box-shadow:inset 0 1px rgba(255,255,255,.08)}.ritual-button.cast{border-color:rgba(245,210,124,.52)}.action-icon{display:grid;place-items:center;width:35px;height:35px;margin:0 auto 9px;border:1px solid currentColor;border-radius:50%;color:var(--gold);font-size:20px}.salvage .action-icon{color:var(--cyan)}.ritual-button strong,.ritual-button small{display:block}.ritual-button strong{font-size:14px}.ritual-button small{margin-top:5px;color:var(--muted);font-size:9px;font-weight:400}.dock{position:absolute;z-index:12;left:12px;right:12px;bottom:max(12px,env(safe-area-inset-bottom));display:grid;grid-template-columns:repeat(4,1fr);height:74px;padding:7px;border:1px solid var(--line);border-radius:var(--radius);background:rgba(2,19,34,.88);backdrop-filter:blur(18px)}.dock.hidden{transform:translateY(110%)}.dock button{border:0;background:transparent;color:#779aad;font-size:10px}.dock button span{display:block;margin-bottom:4px;font-size:18px}.dock button.active{color:var(--gold)}.dock button.active span{text-shadow:0 0 15px var(--gold)}
.inner-page{background:#041727;overflow-y:auto;padding-bottom:98px}.still-scene{position:fixed;inset:0;background:url("assets/river-poster.jpg") center/cover no-repeat;filter:blur(3px) brightness(.45);transform:scale(1.03)}.inner-shade{position:fixed;inset:0;background:linear-gradient(180deg,rgba(1,11,21,.62),#031322 52%,#02101d)}.page-head{padding-bottom:16px}.page-head>div:nth-child(2){flex:1}.quota-badge{padding:7px 9px;border:1px solid rgba(245,210,124,.38);border-radius:999px;color:var(--gold);font-size:10px}.composer{position:relative;z-index:3;margin:10px 17px 30px;padding:25px 18px 18px;border:1px solid var(--line);border-radius:var(--radius);background:rgba(3,27,47,.84);backdrop-filter:blur(18px)}.bottle-seal{display:grid;place-items:center;width:64px;height:64px;margin:0 auto 19px;border:1px solid rgba(245,210,124,.42);border-radius:42% 42% 48% 48%;color:var(--gold);font-family:serif;font-size:22px;box-shadow:0 0 35px rgba(245,210,124,.12),inset 0 0 18px rgba(245,210,124,.08)}.composer label{display:block;margin-bottom:10px;color:var(--cyan-soft);font-family:serif;font-size:15px}.composer textarea,.sheet textarea{width:100%;resize:none;border:0;border-bottom:1px solid var(--line);border-radius:0;background:rgba(0,13,25,.36);color:var(--white);line-height:1.75}.composer textarea{height:126px;padding:15px}.composer textarea::placeholder,.sheet textarea::placeholder{color:#66899c}.composer-meta{display:flex;justify-content:space-between;margin:8px 0 15px;color:#7396a9;font-size:10px}.text-button{padding:0;border:0;background:none;color:var(--gold)}.prompt-list{display:flex;gap:7px;overflow-x:auto;padding-bottom:5px;scrollbar-width:none}.prompt-list button{flex:0 0 auto;max-width:190px;padding:8px 10px;overflow:hidden;border:1px solid rgba(134,205,229,.22);border-radius:999px;background:rgba(13,57,84,.48);color:#9fc1d0;font-size:10px;text-overflow:ellipsis;white-space:nowrap}.setting-row{display:flex;align-items:center;margin:20px 0;padding-top:16px;border-top:1px solid rgba(147,213,236,.12)}.setting-row>div{flex:1}.setting-row strong,.setting-row span{display:block}.setting-row strong{font-size:13px}.setting-row span{margin-top:3px;color:var(--muted);font-size:9px}.switch{position:relative;width:42px;height:24px;border:1px solid var(--line);border-radius:999px;background:#09263c}.switch i{position:absolute;top:3px;left:3px;width:16px;height:16px;border-radius:50%;background:#82a5b6;transition:.2s}.switch.active{border-color:var(--gold);background:#493e23}.switch.active i{left:20px;background:var(--gold)}.primary-button{width:100%;padding:13px 16px;border:1px solid #ffe5a5;border-radius:999px;background:linear-gradient(180deg,#ffe8a8,#e6b94f);color:#122438;font-size:13px;font-weight:650;box-shadow:0 8px 25px rgba(226,182,74,.17)}.success-overlay{position:fixed;z-index:20;inset:0;display:flex;visibility:hidden;flex-direction:column;align-items:center;justify-content:center;padding:30px;background:rgba(2,14,25,.94);opacity:0;transition:.3s;text-align:center}.success-overlay.show{visibility:visible;opacity:1}.flying-bottle{display:grid;place-items:center;width:70px;height:110px;margin-bottom:26px;border:1px solid var(--gold);border-radius:30px 30px 38px 38px;color:var(--gold);font-size:26px;box-shadow:0 0 38px rgba(245,210,124,.24);animation:float 2.2s ease-in-out infinite}.success-overlay p{margin:0 0 9px;font-family:serif;font-size:24px}.success-overlay span{color:var(--muted);font-size:12px}.success-overlay button{margin-top:34px;padding:10px 26px;border:1px solid var(--line);border-radius:999px;background:transparent}
.pick-page{background:#031322}.hit-layer{position:absolute;inset:0;z-index:3;touch-action:manipulation}.debug-canvas{position:absolute;z-index:5;inset:0;display:none;width:100%;height:100%;pointer-events:none}.debug-on .debug-canvas{display:block}.page-head.floating{position:absolute;top:0;left:0;right:0}.page-head.floating .debug-toggle{margin-left:auto}.page-head.floating .debug-toggle.active{border-color:#62e5a9;color:#62e5a9;box-shadow:0 0 14px rgba(98,229,169,.32)}.page-head.floating .debug-toggle+.round-button{margin-left:-5px}.tracking-status{position:absolute;z-index:8;top:72px;left:50%;visibility:hidden;padding:6px 10px;border:1px solid rgba(98,229,169,.42);border-radius:999px;background:rgba(3,27,43,.84);color:#83e5b4;font:9px Consolas,monospace;transform:translateX(-50%);white-space:nowrap}.debug-on .tracking-status{visibility:visible}.focus-ring{position:absolute;z-index:6;display:none;border:2px solid #fff0a9;border-radius:44%;box-shadow:0 0 0 6px rgba(255,226,135,.14),0 0 30px rgba(255,217,113,.88);pointer-events:none;animation:lock .42s ease-out}.focus-ring.show{display:block}.pick-status{position:absolute;z-index:7;left:16px;right:16px;bottom:101px;display:flex;align-items:center;padding:13px 14px;border:1px solid rgba(132,211,245,.36);border-radius:var(--radius);background:rgba(3,27,48,.84);backdrop-filter:blur(12px);pointer-events:none}.pick-status span,.pick-status strong{display:block}.pick-status span{color:#a9c5d6;font-size:9px}.pick-status strong{margin-top:3px;color:var(--gold);font-size:19px}.pick-status p{margin-left:auto;color:#89a6b8;font:10px Consolas,monospace}.pick-shade{background:linear-gradient(180deg,rgba(0,10,20,.48),transparent 18%,transparent 68%,rgba(0,10,20,.82))}.scene.frozen{filter:brightness(.55) saturate(.72)}.pick-transition{position:absolute;z-index:18;inset:0;visibility:hidden;overflow:hidden;background:#031322;opacity:0;pointer-events:none;transition:opacity .22s ease}.pick-transition.open{visibility:visible;opacity:1;pointer-events:auto}.pick-transition video{width:100%;height:100%;object-fit:cover;object-position:center}.transition-shade{position:absolute;inset:0;background:linear-gradient(180deg,rgba(1,10,19,.18),transparent 30%,transparent 72%,rgba(1,10,19,.55));pointer-events:none}.pick-transition p{position:absolute;left:0;right:0;bottom:36px;margin:0;color:#d7f5fb;font-family:serif;font-size:14px;text-align:center;text-shadow:0 2px 12px #000}.pick-transition button{position:absolute;top:max(18px,env(safe-area-inset-top));right:16px;padding:7px 13px;border:1px solid rgba(194,235,246,.44);border-radius:999px;background:rgba(2,21,36,.55);color:#c8dce5;font-size:10px;backdrop-filter:blur(8px)}
.mine-summary{position:relative;z-index:3;display:grid;grid-template-columns:1fr 1px 1fr 1px 1fr;align-items:center;margin:8px 17px 21px;padding:17px 7px;border:1px solid var(--line);border-radius:var(--radius);background:rgba(4,31,52,.76);text-align:center}.mine-summary i{height:28px;background:var(--line)}.mine-summary strong,.mine-summary span{display:block}.mine-summary strong{color:var(--gold);font-size:20px}.mine-summary span{margin-top:4px;color:var(--muted);font-size:9px}.mine-summary > div{cursor:pointer;transition:opacity .15s,background .15s}.mine-summary > div:hover{opacity:.78}.mine-summary > div.active strong{color:#fff;text-shadow:0 0 8px rgba(245,210,124,.45)}.mine-summary > div:focus-visible{outline:1px solid var(--gold);outline-offset:2px;border-radius:2px}.segmented{position:relative;z-index:3;display:grid;grid-template-columns:1fr 1fr;margin:0 17px 14px;padding:3px;border:1px solid var(--line);border-radius:var(--radius);background:rgba(2,19,34,.72)}.segmented button{padding:9px;border:0;border-radius:4px;background:transparent;color:var(--muted);font-size:11px}.segmented button.active{background:rgba(22,76,105,.62);color:var(--white)}.bottle-list{position:relative;z-index:3;display:grid;gap:10px;margin:0 17px}.bottle-item{display:grid;grid-template-columns:42px 1fr auto;gap:12px;align-items:center;padding:14px;border:1px solid rgba(140,207,230,.2);border-radius:var(--radius);background:rgba(4,29,49,.76)}.bottle-glyph{display:grid;place-items:center;width:36px;height:49px;border:1px solid rgba(245,210,124,.5);border-radius:14px 14px 17px 17px;color:var(--gold);font-size:15px}.bottle-item p{display:-webkit-box;margin:0 0 6px;overflow:hidden;color:#dbeaf1;font-family:serif;font-size:13px;line-height:1.45;-webkit-box-orient:vertical;-webkit-line-clamp:2}.bottle-item small{color:#7597a9;font-size:9px}.item-menu{width:32px;height:32px;border:0;background:transparent;color:#87a8b8;font-size:20px}.empty-state{padding:70px 30px;text-align:center}.empty-state span{display:block;margin-bottom:12px;color:var(--gold);font-size:31px}.empty-state p{margin:0;color:var(--muted);font-size:12px}.empty-state button{margin-top:18px;padding:9px 18px;border:1px solid var(--line);border-radius:999px;background:rgba(6,42,65,.6)}.floating-cast{position:fixed;z-index:8;right:20px;bottom:103px;width:48px;height:48px;border:1px solid var(--gold);border-radius:50%;background:#e7bb55;color:#102235;font-size:25px;box-shadow:0 10px 30px rgba(0,0,0,.3)}
.modal,.sheet{position:absolute;z-index:30;inset:0;visibility:hidden;background:rgba(1,9,18,.76);opacity:0;pointer-events:none;transition:.24s;backdrop-filter:blur(7px)}.modal.open,.sheet.open{visibility:visible;opacity:1;pointer-events:auto}.modal{display:grid;place-items:center;padding:20px 17px}.message-card{position:relative;width:100%;padding:27px 21px 19px;border:1px solid var(--cyan);border-radius:var(--radius);background:linear-gradient(155deg,rgba(5,44,73,.99),rgba(2,18,33,.99));box-shadow:0 24px 70px rgba(0,0,0,.55);text-align:center;transform:translateY(18px) scale(.97);transition:.28s}.modal.open .message-card{transform:none}.modal-close{position:absolute;top:10px;right:10px;width:32px;height:32px;border:0;background:none;color:#a9c1cf;font-size:22px}.found-bottle{display:grid;place-items:center;width:62px;height:86px;margin:0 auto 14px;border:1px solid rgba(245,210,124,.68);border-radius:24px 24px 30px 30px;color:var(--gold);font-size:24px;box-shadow:0 0 33px rgba(245,210,124,.19),inset 0 0 20px rgba(245,210,124,.09)}.match-line{margin:0 0 16px;color:#92b6c7;font-size:10px}.match-line strong{color:var(--gold);font-size:14px}.message-card h2{margin:0;font:20px serif}.message-card blockquote{min-height:68px;margin:14px 0 8px;font:16px/1.7 serif}.bottle-meta{margin:0 0 17px;color:#789bad;font-size:9px}.modal-actions{display:grid;grid-template-columns:repeat(3,1fr);margin:0 0 14px;border-top:1px solid rgba(132,209,236,.13);border-bottom:1px solid rgba(132,209,236,.13)}.modal-actions button{padding:10px 2px;border:0;background:transparent;color:#a6c2d0;font-size:16px}.modal-actions span{display:block;margin-top:2px;font-size:9px}.modal-actions button.active{color:var(--gold)}.return-button{margin-top:10px;padding:4px 12px;border:0;background:transparent;color:#7798aa;font-size:10px}.sheet{display:flex;align-items:flex-end}.sheet-panel{width:100%;padding:9px 18px max(25px,env(safe-area-inset-bottom));border-top:1px solid var(--cyan);background:#051c30;transform:translateY(100%);transition:.26s}.sheet.open .sheet-panel{transform:none}.sheet-handle{width:36px;height:3px;margin:0 auto 17px;border-radius:3px;background:#52778a}.sheet-head{display:flex;align-items:center}.sheet h2{margin:0 0 14px;font:19px serif}.sheet-head h2{flex:1}.sheet-head button{width:34px;height:34px;border:0;background:none;font-size:22px}.sheet textarea{height:116px;margin:4px 0 17px;padding:13px}.sheet-panel.compact{text-align:center}.sheet-panel.compact button{width:100%;padding:14px;border:0;border-top:1px solid rgba(132,209,236,.13);background:transparent}.sheet-panel .danger-row{color:#ff9b9b}.toast{position:absolute;z-index:50;left:50%;bottom:100px;max-width:calc(100% - 36px);padding:9px 14px;border:1px solid rgba(126,214,240,.24);border-radius:999px;background:rgba(1,13,25,.94);font-size:11px;opacity:0;pointer-events:none;transform:translate(-50%,10px);transition:.2s;white-space:nowrap}.toast.show{opacity:1;transform:translate(-50%,0)}.loading{position:absolute;z-index:60;inset:0;display:grid;place-content:center;gap:15px;background:#031322;text-align:center;transition:.4s}.loading.done{visibility:hidden;opacity:0;pointer-events:none}.loading-star{color:var(--gold);font-size:31px;animation:pulse 1.3s ease-in-out infinite}.loading span{color:#91afbf;font:10px Consolas,monospace}
.modal{display:flex;align-items:center;overflow-y:auto}.message-card{margin:auto}
@keyframes orbit{to{transform:translateX(-50%) rotate(360deg)}}@keyframes float{50%{transform:translateY(-10px) rotate(2deg)}}@keyframes lock{from{opacity:0;transform:scale(.5)}to{opacity:1;transform:scale(1)}}@keyframes pulse{50%{opacity:.35;transform:scale(.8)}}
@media(max-height:700px){.orbit{top:20%;width:145px;height:145px}.orbit span{inset:44px}.home-copy{top:46%}.home-actions{bottom:94px}.dock{height:66px}.composer{margin-top:0}.bottle-seal{width:54px;height:54px;margin-bottom:12px}.composer textarea{height:102px}}

/* Consistent local SVG controls */
.svg-sprite{position:absolute;width:0;height:0;overflow:hidden}.icon{display:block;width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.75;stroke-linecap:round;stroke-linejoin:round;pointer-events:none}.round-button{font-size:0;color:#c4e4ee;background:linear-gradient(145deg,rgba(14,54,78,.84),rgba(2,22,39,.82));border-color:rgba(166,226,246,.36);box-shadow:inset 0 1px rgba(255,255,255,.1),0 5px 18px rgba(0,0,0,.18)}.round-button .icon{width:18px;height:18px}.round-button:active{transform:translateY(1px);background:rgba(3,28,48,.92)}.icon-muted{display:none}.round-button.muted .icon-playing{display:none}.round-button.muted .icon-muted{display:block}
.action-icon{width:38px;height:38px;font-size:0;background:rgba(245,210,124,.06);box-shadow:inset 0 0 12px rgba(245,210,124,.06),0 0 18px rgba(245,210,124,.09)}.action-icon .icon{width:19px;height:19px}.salvage .action-icon{background:rgba(113,221,245,.05);box-shadow:inset 0 0 12px rgba(113,221,245,.06),0 0 18px rgba(113,221,245,.08)}
.dock button{display:grid;place-items:center;align-content:center;gap:5px}.dock button .icon{width:20px;height:20px}.dock button span{margin:0;font-size:10px}.dock button.active .icon{filter:drop-shadow(0 0 7px rgba(245,210,124,.65))}.dock button.active span{text-shadow:none}
.floating-cast{display:grid;place-items:center;font-size:0;border-color:#ffe5a2;background:linear-gradient(145deg,#f4d478,#c99631);box-shadow:inset 0 1px rgba(255,255,255,.55),0 10px 30px rgba(0,0,0,.3),0 0 22px rgba(231,187,85,.2)}.floating-cast .icon{width:21px;height:21px;stroke-width:2}
.modal-close,.sheet-head button,.item-menu{display:grid;place-items:center;font-size:0}.modal-close .icon,.sheet-head button .icon,.item-menu .icon{width:18px;height:18px}.modal-actions button{display:grid;place-items:center;gap:4px;font-size:0}.modal-actions button .icon{width:20px;height:20px}.modal-actions span{margin:0;font-size:9px}.modal-actions button.active .icon{fill:currentColor;filter:drop-shadow(0 0 6px rgba(245,210,124,.35))}

/* Bottle launch success */
.bottle-flight{position:relative;width:126px;height:174px;margin-bottom:18px;animation:bottle-depart 2.8s cubic-bezier(.45,0,.2,1) infinite}.flying-bottle{position:absolute;z-index:2;left:50%;bottom:0;width:104px;height:auto;margin:0;object-fit:contain;filter:drop-shadow(0 0 8px rgba(221,244,255,.55)) drop-shadow(0 0 20px rgba(245,210,124,.34));transform:translateX(-50%) rotate(-4deg);animation:bottle-drift 2.8s ease-in-out infinite}.bottle-flight:before{content:"";position:absolute;z-index:1;left:50%;bottom:4px;width:92px;height:30px;border:1px solid rgba(125,220,247,.38);border-radius:50%;box-shadow:0 0 24px rgba(95,200,237,.2);transform:translateX(-50%);animation:launch-ripple 2.8s ease-out infinite}.bottle-flight i{position:absolute;z-index:3;width:4px;height:4px;border-radius:50%;background:#ffe39a;box-shadow:0 0 10px #ffe39a;animation:launch-star 2.8s ease-out infinite}.bottle-flight i:nth-child(1){left:12px;bottom:34px}.bottle-flight i:nth-child(2){right:8px;bottom:68px;animation-delay:.35s}.bottle-flight i:nth-child(3){left:27px;bottom:112px;width:3px;height:3px;animation-delay:.7s}@keyframes bottle-depart{0%,12%{transform:translateY(10px) scale(.96);opacity:0}24%,72%{transform:translateY(0) scale(1);opacity:1}100%{transform:translateY(-34px) scale(.82);opacity:0}}@keyframes bottle-drift{0%,100%{transform:translateX(-50%) rotate(-4deg)}50%{transform:translateX(-50%) translateY(-7px) rotate(4deg)}}@keyframes launch-ripple{0%,20%{opacity:0;transform:translateX(-50%) scale(.55)}35%{opacity:1}75%,100%{opacity:0;transform:translateX(-50%) scale(1.42)}}@keyframes launch-star{0%,18%{opacity:0;transform:translateY(12px) scale(.5)}38%{opacity:1}85%,100%{opacity:0;transform:translateY(-45px) scale(1)}}@media(prefers-reduced-motion:reduce){.bottle-flight,.flying-bottle,.bottle-flight:before,.bottle-flight i{animation:none}.bottle-flight{opacity:1}.flying-bottle{transform:translateX(-50%)}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important}}
.starfield{position:absolute;z-index:2;inset:7px;overflow:hidden;border-radius:50%;pointer-events:none}.starfield b{position:absolute;top:50%;left:50%;width:4px;height:4px;border-radius:50%;background:var(--cyan-soft);box-shadow:0 0 8px 2px rgba(188,238,246,.7);opacity:0;animation:star-fly 4.8s ease-in-out infinite}.starfield b:nth-child(2n){width:3px;height:3px;background:var(--gold);box-shadow:0 0 8px 2px rgba(245,210,124,.72)}.starfield b:nth-child(3n){width:2px;height:2px}.starfield b:nth-child(1){--angle:-18deg;--radius:71px;animation-delay:-.3s}.starfield b:nth-child(2){--angle:17deg;--radius:62px;animation-delay:-2.1s}.starfield b:nth-child(3){--angle:49deg;--radius:78px;animation-delay:-3.7s}.starfield b:nth-child(4){--angle:83deg;--radius:65px;animation-delay:-1.4s}.starfield b:nth-child(5){--angle:121deg;--radius:76px;animation-delay:-4.2s}.starfield b:nth-child(6){--angle:157deg;--radius:58px;animation-delay:-2.8s}.starfield b:nth-child(7){--angle:191deg;--radius:79px;animation-delay:-.9s}.starfield b:nth-child(8){--angle:224deg;--radius:64px;animation-delay:-3.2s}.starfield b:nth-child(9){--angle:253deg;--radius:76px;animation-delay:-1.8s}.starfield b:nth-child(10){--angle:287deg;--radius:60px;animation-delay:-4.5s}.starfield b:nth-child(11){--angle:318deg;--radius:80px;animation-delay:-2.4s}.starfield b:nth-child(12){--angle:345deg;--radius:67px;animation-delay:-1.1s}@keyframes star-fly{0%{opacity:0;transform:translate(-50%,-50%) rotate(var(--angle)) translateX(13px) scale(.25)}18%{opacity:.2}48%{opacity:1;transform:translate(-50%,-50%) rotate(calc(var(--angle) + 170deg)) translateX(calc(var(--radius) * .72)) scale(1)}78%{opacity:.38}100%{opacity:0;transform:translate(-50%,-50%) rotate(calc(var(--angle) + 360deg)) translateX(var(--radius)) scale(.35)}}
.bottle-glyph{width:42px;height:54px;border:0;background:transparent}.bottle-glyph img{display:block;width:38px;height:52px;object-fit:contain;filter:drop-shadow(0 0 7px rgba(245,210,124,.22))}
.pick-transition video{object-position:left center}
.success-overlay .flying-bottle{border:0;border-radius:0;background:none;box-shadow:none;filter:brightness(1.32) saturate(.82) drop-shadow(0 0 10px rgba(221,244,255,.72)) drop-shadow(0 0 26px rgba(245,210,124,.5))}
.dock.hidden{visibility:hidden;opacity:0;pointer-events:none}
.home-tools{display:flex;gap:8px;margin-left:auto}.home-tools .round-button{margin-left:0}.debug-reset{color:#9ed9e9}.debug-reset:active .icon{transform:rotate(-35deg)}
.privacy-note{margin:-4px 0 18px;color:#8fb3c4;font-size:10px;text-align:center}.composer-meta strong{color:#d5e7ee;font-size:10px;font-weight:500}.composer-meta .warn{color:#ff9d86;font-weight:700}.prompt-list{display:grid;gap:12px;overflow:visible}.prompt-group{min-width:0}.prompt-group h3{margin:0 0 7px;color:#d3b866;font-size:10px;font-weight:600}.prompt-group>div{display:flex;gap:7px;overflow-x:auto;padding-bottom:2px;scrollbar-width:none}.prompt-group button{max-width:210px}.content-rule{margin:18px 2px 12px;padding-top:14px;border-top:1px solid rgba(147,213,236,.12);color:#7192a3;font-size:9px;line-height:1.55}.primary-button:disabled{cursor:default;filter:saturate(.35);opacity:.48;box-shadow:none}.success-overlay button[hidden]{display:none}
.prompt-group>div{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:7px;overflow:visible;padding:0}.prompt-group button{width:100%;max-width:none;min-height:38px;overflow:visible;line-height:1.45;text-overflow:clip;white-space:normal}.prompt-group button:nth-child(3){grid-column:1/-1}
.home-page .scene-shade{background:radial-gradient(ellipse 78% 31% at 50% 48%,rgba(1,10,19,.68),rgba(1,12,23,.4) 58%,transparent 100%),linear-gradient(180deg,rgba(1,9,18,.5),rgba(2,17,31,.08) 28%,rgba(2,13,25,.24) 64%,rgba(1,10,20,.93) 91%)}.home-copy:before{content:"";position:absolute;z-index:-1;top:50%;left:50%;width:100%;height:112px;background:linear-gradient(90deg,transparent,rgba(1,12,23,.66) 20%,rgba(1,12,23,.78) 50%,rgba(1,12,23,.66) 80%,transparent);filter:blur(8px);transform:translate(-50%,-50%);pointer-events:none}.home-copy p{color:#f4f8f8;font-size:21px;font-weight:600;text-shadow:0 2px 12px #000,0 0 22px rgba(213,240,246,.28)}.home-copy span{color:#bdd4de;text-shadow:0 2px 8px #000}.orbit span{background:rgba(3,25,44,.68);box-shadow:0 0 0 7px rgba(3,20,35,.18),0 0 34px rgba(245,210,124,.27);text-shadow:0 0 13px rgba(245,210,124,.52)}
.message-card .found-bottle{position:relative;width:82px;height:118px;margin:0 auto 10px;border:0;border-radius:0;background:none;box-shadow:none}.message-card .found-bottle:after{content:"";position:absolute;z-index:-1;inset:22px 6px 8px;border-radius:50%;background:rgba(245,210,124,.2);filter:blur(18px)}.message-card .found-bottle img{display:block;width:100%;height:100%;object-fit:contain;filter:brightness(1.2) saturate(.86) drop-shadow(0 0 7px rgba(222,244,255,.5)) drop-shadow(0 0 16px rgba(245,210,124,.3));animation:modal-bottle-float 3s ease-in-out infinite}@keyframes modal-bottle-float{50%{transform:translateY(-5px) rotate(2deg)}}
.still-scene{background-image:url("assets/river-new-poster.png")}
.send-balance{display:flex;justify-content:space-between;align-items:center;margin:14px 0 10px;padding:10px 14px;border:1px solid rgba(124,225,243,.28);border-radius:6px;background:rgba(8,36,58,.6);color:#9fc1d0;font-size:10px}.send-balance b{color:#ffe5a5;font-weight:700;font-size:12px;margin:0 3px}
.exposure-control{display:grid;grid-template-columns:1fr 70px;gap:7px 10px;align-items:center;margin:14px 0;padding:12px 0;border-top:1px solid rgba(147,213,236,.12);color:#a6c2d0;font-size:10px}.exposure-control label{margin:0;color:#d5e7ee;font-family:inherit;font-size:11px}.exposure-control input,.sheet-panel.compact select{min-width:0;padding:8px;border:1px solid rgba(134,205,229,.32);border-radius:4px;background:#08243a;color:var(--white);font:inherit}.exposure-control span{grid-column:1/-1;color:#7396a9;font-size:9px}.quota-purchase{width:100%;margin-top:10px;padding:10px;border:1px solid rgba(124,225,243,.3);border-radius:4px;background:rgba(12,55,80,.55);color:#bceef6;font-size:10px}.pick-purchase{position:absolute;z-index:8;right:16px;bottom:55px;width:auto;margin:0;padding:8px 10px;background:rgba(3,27,48,.84)}.message-list{margin-top:8px;color:#91b8ca;font-size:10px}.message-list summary{cursor:pointer;color:var(--gold)}.message-list p{display:block;margin:6px 0 0;padding-top:6px;border-top:1px solid rgba(132,209,236,.12);font-family:inherit;font-size:10px}.sheet-panel.compact select{width:100%;margin:0 0 12px}.sheet-panel.compact select+button{border-top:1px solid rgba(132,209,236,.13)}
/* 元气红包抽奖 */
.lottery-rule{position:absolute;z-index:8;left:0;right:0;bottom:104px;margin:0;padding:0 18px;text-align:center;color:rgba(245,210,124,.7);font-size:9px;text-shadow:0 1px 4px rgba(0,0,0,.65)}
.redpacket-overlay{position:fixed;z-index:60;inset:0;display:flex;align-items:center;justify-content:center;background:rgba(2,8,16,.9);opacity:0;visibility:hidden;transition:opacity .22s,visibility .22s}
.redpacket-overlay.show{opacity:1;visibility:visible}
.redpacket-card{position:relative;display:flex;flex-direction:column;align-items:center;gap:26px;animation:redpacket-pop .5s cubic-bezier(.2,1.5,.4,1) both}
.redpacket-envelope{position:relative;width:250px;height:320px;border-radius:16px;background:linear-gradient(180deg,#ff6f5e,#e23b2e 58%,#c72b21);box-shadow:0 22px 60px rgba(226,59,46,.55)}
.redpacket-flap{position:absolute;top:0;left:0;right:0;height:118px;background:linear-gradient(180deg,#ff8d77,#ee4435);clip-path:polygon(0 0,100% 0,50% 100%);border-radius:16px 16px 0 0;transform-origin:top;animation:redpacket-flap .5s .35s ease-in-out forwards}
.redpacket-coin{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:76px;height:76px;border-radius:50%;display:grid;place-items:center;background:radial-gradient(circle at 34% 30%,#ffeeb0,#f0bf4a);color:#a4531a;font-size:32px;box-shadow:0 5px 18px rgba(0,0,0,.32);animation:redpacket-coin .45s .55s ease forwards}
.redpacket-open{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;opacity:0;animation:redpacket-open .5s .78s ease forwards}
.redpacket-lucky{color:#ffe9b0;font-size:16px;letter-spacing:1px}
.redpacket-amount{color:#fff3c4;font-size:34px;font-weight:800;text-shadow:0 3px 14px rgba(0,0,0,.4)}
.redpacket-amount b{font-size:64px;animation:redpacket-glow 1.4s 1s ease-in-out infinite}
.redpacket-sub{color:rgba(255,235,180,.74);font-size:12px}
.redpacket-close{padding:8px 24px;border:1px solid rgba(255,235,180,.42);border-radius:999px;background:transparent;color:rgba(255,235,180,.82);font-size:12px}
@keyframes redpacket-pop{from{transform:scale(.4);opacity:0}to{transform:scale(1);opacity:1}}
@keyframes redpacket-flap{from{transform:rotateX(0)}to{transform:rotateX(180deg);opacity:.08}}
@keyframes redpacket-coin{to{opacity:0;transform:translate(-50%,-50%) scale(.35)}}
@keyframes redpacket-open{from{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}
@keyframes redpacket-glow{0%,100%{text-shadow:0 3px 14px rgba(0,0,0,.4)}50%{text-shadow:0 0 26px rgba(255,214,107,.9)}}
