:root{--bg:#f3f1e8;--panel:#fffef9;--panel2:#e9f0e8;--text:#202721;--muted:#6d786f;--gold:#7fae35;--gold2:#5d8f29;--line:rgba(37,75,56,.14);--radius:20px}
html{background:#dfe6dd}body{color:var(--text);background:radial-gradient(circle at 15% 10%,rgba(111,158,112,.12),transparent 28%),repeating-linear-gradient(0deg,rgba(67,88,67,.018) 0,rgba(67,88,67,.018) 1px,transparent 1px,transparent 5px),var(--bg)}
.app-shell{background:var(--bg)}.topbar{background:linear-gradient(#f5f3eb 84%,rgba(245,243,235,0));color:#223e31}.topbar>div{position:absolute;left:50%;transform:translateX(-50%);width:282px;text-align:center}.topbar h1{font-family:"Songti SC","STSong",serif;font-size:12.5px;letter-spacing:0;white-space:nowrap}.topbar .eyebrow{color:#668576;text-align:center}.icon-button{display:grid;place-items:center;padding:0;line-height:1;background:#fffef9;color:#3c7059;border-color:#cad8cf}.back-button{padding-bottom:4px}
main{padding-top:8px}.brand-gate{display:none}.brand-avatar{width:48px;height:48px;flex:0 0 48px;border:2px solid #39735a;border-radius:50%;object-fit:cover;object-position:50% 32%;box-shadow:0 5px 14px rgba(31,74,52,.18)}.brand-tree-gate{position:relative;margin-bottom:18px;padding:15px 14px 18px;border:1px solid #d7ded7;border-radius:24px;background:linear-gradient(180deg,rgba(255,255,252,.96),rgba(248,247,239,.9));box-shadow:0 10px 28px rgba(50,75,56,.08);overflow:hidden}.brand-tree-gate:before{content:"";position:absolute;inset:auto -20px -18px -20px;height:135px;background:radial-gradient(ellipse at 50% 100%,rgba(111,158,112,.17),transparent 70%);pointer-events:none}.tree-gate-copy{position:relative;z-index:2;display:flex;align-items:center;gap:11px;margin-bottom:8px}.tree-gate-copy .eyebrow{color:#47725f;margin-bottom:2px}.tree-gate-copy h2{font-family:"Songti SC","STSong",serif;font-size:16px;line-height:1.28;margin:0 0 4px;color:#1e3f31}.tree-gate-copy p:not(.eyebrow){margin:0;color:#66766c;font-size:12px;line-height:1.45}.tree-map{position:relative;border-radius:20px;background:#fff;overflow:hidden;min-height:505px;border:1px solid #edf0ec}.tree-map>img{display:block;width:142%;max-width:none;margin:0 0 0 -21%;padding-top:4px}.tree-entry{position:absolute;z-index:3;width:132px;padding:10px 11px;border:1px solid rgba(43,118,94,.35);border-radius:16px;background:rgba(255,255,252,.94);color:#285d49;text-align:left;box-shadow:0 10px 24px rgba(35,78,54,.14);backdrop-filter:blur(8px)}.tree-entry:before{content:"";position:absolute;height:2px;background:repeating-linear-gradient(90deg,#6ba08a 0,#6ba08a 6px,transparent 6px,transparent 11px);transform-origin:left center}.tree-entry:after{content:"";position:absolute;width:8px;height:8px;border-radius:50%;background:#d96868;box-shadow:0 0 0 4px rgba(217,104,104,.14)}.tree-entry span{display:block;font-family:"Songti SC","STSong",serif;font-size:17px;font-weight:800}.tree-entry small{display:block;margin-top:3px;font-size:10px;line-height:1.35;color:#6b7c70}.entry-literacy{left:13px;bottom:185px}.entry-literacy:before{left:103px;top:22px;width:74px;transform:rotate(12deg)}.entry-literacy:after{right:-83px;top:27px}.entry-culture{right:13px;bottom:98px}.entry-culture:before{right:105px;top:21px;width:86px;transform:rotate(180deg)}.entry-culture:after{left:-91px;top:17px}.tree-entry.active{background:#1f7652;color:white;border-color:#1f7652}.tree-entry.active small{color:#dcece3}.tree-note{position:relative;z-index:3;min-height:20px;margin:9px 4px 0;color:#47725f;font-size:12px;text-align:center}
.hero{min-height:390px;justify-content:flex-start;padding:18px 24px 24px;background:linear-gradient(180deg,rgba(8,42,25,.16),rgba(231,239,220,.9) 68%),radial-gradient(circle at 72% 18%,rgba(85,133,83,.4),transparent 30%),linear-gradient(145deg,#174f32,#397957 42%,#86a878);color:#17231b;border:1px solid rgba(24,78,49,.3);box-shadow:0 16px 38px rgba(28,70,43,.2)}.hero:before{content:"天台山";top:92px;right:18px;color:#f1f6e9;opacity:.22;font-family:"Songti SC",serif;font-size:54px;font-weight:700;z-index:0}.hero:after{display:none;content:none}.hero>*{position:relative;z-index:1}.hero-ribbon{position:absolute!important;z-index:3;right:-39px;top:22px;width:140px;transform:rotate(45deg)!important;text-align:center;background:#83b63c;color:#17331f;padding:5px;font-size:12px;font-weight:800}.hero-topline{display:flex;align-items:center;gap:13px;margin-bottom:18px;min-height:72px}.hero-topline>div{display:flex;flex-direction:column;justify-content:center;align-items:flex-start;min-height:72px}.hero-avatar{width:70px;height:70px;border-radius:50%;object-fit:cover;object-position:50% 32%;border:3px solid rgba(255,255,245,.95);box-shadow:0 8px 22px rgba(13,62,42,.24)}.hero .series-badge{margin:0 0 5px!important}.hero .eyebrow{display:inline-block;margin:0;padding:4px 9px;border-radius:999px;background:rgba(255,255,245,.76);color:#184532;font-weight:800;letter-spacing:.08em;text-shadow:none}.hero h2{font-family:"Songti SC","STSong",serif;font-size:37px;color:#13271c}.hero>p:not(.eyebrow){color:#405b4c}.hero .tag-row{margin-bottom:22px}.series-badge{background:#1d6848;color:white;border-radius:6px}.tag{background:rgba(255,255,252,.82);border-color:#bed0c1;color:#275d45}.primary-button{background:#216c4a;color:white;border-radius:8px;box-shadow:0 8px 20px rgba(21,79,52,.25)}
.section-heading h2,.archive-heading span{font-family:"Songti SC","STSong",serif;color:#203a2e}.section-heading span,.archive-heading small{color:#748279}.game-card{background:#fffef9;border-color:#dae2da;box-shadow:0 10px 28px rgba(50,75,56,.08)}.game-art{background:linear-gradient(0deg,rgba(27,57,42,.72),rgba(39,91,64,.08)),linear-gradient(140deg,#537e5c,#b6c99c)}.game-art.alt{background:linear-gradient(0deg,rgba(37,61,49,.55),transparent),linear-gradient(145deg,#8faf83,#d9dfc7)}.game-body p{color:#748078}.status-ribbon{background:#83b63c;color:#17331f}.host-lockup p{color:#e6f4dd}.host-lockup img{border-color:#f4f1db}.archive-card{background:#fffef9;border-color:#dae2da;color:#758078}.archive-no{color:#789d87}.archive-card h3{font-family:"Songti SC",serif;color:#31463a}.archive-card p{color:#98a198}.finished-mark{border-color:#cbd7cd;color:#789080;background:#eff4ef}
.mission-header,.mission,.empty-card{background:#fffef9;border-color:#d8e1d9;color:#26382e}.mission-header h2,.mission h3{font-family:"Songti SC","STSong",serif}.muted,.mission p{color:#707d74}.timeline:before{background:#b8c9ba}.mission:before{border-color:#f3f1e8}.mission-action{background:#edf4ed!important;border-left-color:#5f9277;color:#405b4d!important}.mission-action strong{color:#2e7154}.clue-image{background:linear-gradient(135deg,#edf1e9,#dfe9df);border-color:#b9cbbb;color:#789080}.secondary-button{border-color:#65947b;color:#3f765e}.progress-track{background:#dce4dc}.progress-fill{background:#5e9877}.mission-state,.feedback{color:#397457}
.bottom-nav{background:rgba(255,254,249,.97);border-color:#d2ddd4;box-shadow:0 10px 30px rgba(42,68,50,.18)}.bottom-nav button{color:#66776c}.bottom-nav .active{background:#39785c;color:white}.bottom-nav span{font-family:serif}.phone-status{background:#f5f3eb!important;color:#273d31}.dynamic-island{background:#151915}.dialog-close{color:#718076}dialog{background:#fffef9;color:#24372c;border-color:#ccd9ce}input{background:#f4f5ef;border-color:#c5d3c7;color:#23372b}
@media(min-width:700px){body{background:radial-gradient(circle at 50% 16%,#b5c9b3 0,transparent 30%),linear-gradient(135deg,#d9e0d7,#aebcad)}.app-shell{background:var(--bg)}}

/* 完整设计稿首页：用透明热区承接点击 */
.portal-view .bottom-nav,.portal-view .topbar{display:none}.portal-view .app-shell{padding-bottom:0;background:#08251d}.portal-view main{padding:0}.poster-home{position:relative;width:100%;background:#08251d;overflow:hidden}.poster-home-image{display:block;width:100%;height:auto}.poster-hotspot{position:absolute;z-index:4;border:0;background:rgba(255,255,255,0);border-radius:10px;cursor:pointer;-webkit-tap-highlight-color:rgba(255,241,112,.25);transition:transform .18s ease,background .18s ease,box-shadow .18s ease}.poster-hotspot:before{content:"";position:absolute;inset:-3px;border-radius:12px;background:rgba(255,246,128,0);box-shadow:0 0 0 rgba(255,238,91,0);transition:background .18s ease,box-shadow .18s ease}.poster-hotspot:hover,.poster-hotspot:focus-visible{transform:translateY(-1px) scale(1.035);animation:button-wiggle .42s ease-in-out}.poster-hotspot:hover:before,.poster-hotspot:focus-visible:before{background:rgba(255,246,128,.28);box-shadow:0 0 18px rgba(255,238,91,.55),0 0 0 2px rgba(255,255,210,.45)}.poster-hotspot:active{transform:scale(.97);background:rgba(255,241,112,.16)}.poster-hotspot:active:before{background:rgba(255,224,78,.38);box-shadow:0 0 22px rgba(255,229,92,.7),0 0 0 2px rgba(255,255,210,.55)}.poster-home .tree-note{position:absolute;left:8%;right:8%;bottom:4.2%;z-index:5;margin:0;min-height:22px;color:#fff4c5;text-align:center;font-size:12px;text-shadow:0 2px 10px rgba(0,0,0,.55)}
.poster-toast{position:absolute;left:50%;top:50%;z-index:8;transform:translate(-50%,-50%) scale(.94);padding:13px 18px;border-radius:999px;background:rgba(16,54,40,.9);color:#fff8cf;font-size:16px;font-weight:800;letter-spacing:.06em;box-shadow:0 14px 35px rgba(0,0,0,.35);opacity:0;pointer-events:none;transition:opacity .18s ease,transform .18s ease}.poster-toast.show{opacity:1;transform:translate(-50%,-50%) scale(1)}
@keyframes button-wiggle{0%,100%{transform:translateY(-1px) scale(1.035) rotate(0)}25%{transform:translateY(-1px) scale(1.035) rotate(-1.2deg)}75%{transform:translateY(-1px) scale(1.035) rotate(1.2deg)}}
.hotspot-poetry,.hotspot-classic,.hotspot-etymology,.hotspot-culture{left:4.4%;width:19.1%;height:3.15%}.hotspot-partner,.hotspot-hardpen,.hotspot-softpen,.hotspot-literacy{left:75.15%;width:19.1%;height:3.15%}
.hotspot-poetry,.hotspot-partner{top:57.62%}.hotspot-classic,.hotspot-hardpen{top:62.02%}.hotspot-etymology,.hotspot-softpen{top:66.48%}.hotspot-culture,.hotspot-literacy{top:70.95%}
@media(min-width:700px){.portal-view .app-shell{overflow-y:auto}.poster-home-image{width:100%;height:auto;min-height:0;object-fit:contain}}

/* 进入秘境：体验游客 / 正式学员 */
.access-gate{padding:24px 20px;border-radius:24px;background:linear-gradient(180deg,rgba(255,255,249,.96),rgba(232,241,229,.94));border:1px solid #d5e1d6;box-shadow:0 14px 36px rgba(38,76,52,.12)}.access-gate h2{font-family:"Songti SC","STSong",serif;font-size:30px;color:#173f30;margin-bottom:10px}.access-options{display:grid;gap:13px;margin:20px 0}.access-card{width:100%;padding:18px 16px;text-align:left;border-radius:18px;border:1px solid #bfd3c4;background:#fffef9;color:#1d4f3c;box-shadow:0 8px 22px rgba(42,77,54,.08)}.access-card span{display:block;font-size:20px;font-weight:900;font-family:"Songti SC","STSong",serif}.access-card small{display:block;margin-top:6px;color:#6f7d73;font-size:12px}.access-card.official{background:linear-gradient(135deg,#1f7652,#2f8b67);color:#fff}.access-card.official small{color:#dceee5}.code-panel{display:grid;gap:10px;margin-top:10px;padding:14px;border-radius:18px;background:rgba(255,255,252,.78);border:1px solid #d5e1d6}.code-panel.hidden{display:none}.access-switch{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:14px;padding-top:12px;border-top:1px solid #d9e4da}.access-switch span{font-size:12px;color:#527061}.access-switch .secondary-button{padding:8px 12px;font-size:12px}.unlock-card{margin-top:14px;padding:20px;border-radius:20px;background:#fffef9;border:1px solid #d8e1d9;box-shadow:0 10px 28px rgba(50,75,56,.08)}.unlock-card h3{font-family:"Songti SC","STSong",serif;color:#173f30;margin-bottom:8px}.unlock-card p{color:#6f7d73;line-height:1.7}

/* 身份选择页视觉强化 */
main#app>.access-gate{min-height:calc(100vh - 230px);display:flex!important;align-items:center;justify-content:center;padding:30px 18px!important;border-radius:28px!important;background:radial-gradient(circle at 50% 8%,rgba(132,179,123,.22),transparent 34%),linear-gradient(180deg,rgba(255,255,249,.98),rgba(235,243,232,.96))!important;border:1px solid #d6e2d8!important;box-shadow:0 18px 46px rgba(38,76,52,.13)!important}.access-inner{width:100%;max-width:360px;text-align:center}.access-inner .eyebrow{display:inline-block;margin-bottom:8px;color:#39785c!important;letter-spacing:.22em}.access-inner h2{font-family:"Songti SC","STSong",serif!important;font-size:31px!important;line-height:1.18;margin:0 0 12px!important;color:#173f30!important}.access-lead{margin:0 auto 22px!important;color:#63776a!important;font-size:13px!important;line-height:1.7!important;max-width:360px;text-align:center}.access-lead span{display:block;white-space:nowrap}.access-gate .access-options{display:grid!important;grid-template-columns:1fr!important;gap:14px!important;margin:0!important}.access-gate .access-card{display:block!important;width:100%!important;min-height:78px;padding:16px 18px!important;border-radius:20px!important;text-align:center!important;border:1px solid rgba(76,126,93,.22)!important;background:rgba(255,255,249,.92)!important;color:#1d4f3c!important;box-shadow:0 10px 26px rgba(42,77,54,.1)!important}.access-gate .access-card span{display:block!important;font-family:"Songti SC","STSong",serif!important;font-size:21px!important;font-weight:900!important;line-height:1.2}.access-gate .access-card small{display:block!important;margin-top:7px!important;font-size:12px!important;line-height:1.35!important;color:#6b7c70!important}.access-gate .access-card.guest{background:rgba(247,252,246,.96)!important}.access-gate .access-card.official{background:linear-gradient(135deg,#1e6f4f,#328865)!important;color:white!important;border-color:rgba(255,255,255,.28)!important;box-shadow:0 12px 30px rgba(24,96,67,.22)!important}.access-gate .access-card.official small{color:#e2f2e8!important}.access-gate .access-card:active{transform:scale(.985)}.access-gate .code-panel{margin-top:16px!important;text-align:left}.access-gate .code-panel .primary-button{width:100%}

/* 序章关卡：天文开篇 */
.prologue-mission{padding:20px 18px!important;background:linear-gradient(180deg,#fffef9,#f3f6ec)!important}.prologue-panel{margin:14px 0 14px;display:grid;gap:14px}.prologue-cover{position:relative;padding:18px 16px 16px;border-radius:22px;overflow:hidden;background:radial-gradient(circle at 80% 8%,rgba(255,239,153,.38),transparent 28%),linear-gradient(145deg,#143f31,#2f785a 52%,#dce9d5);box-shadow:inset 0 0 0 1px rgba(255,255,255,.25),0 12px 26px rgba(24,76,52,.18)}.prologue-cover:after{content:"三垣\A二十八宿";white-space:pre;position:absolute;right:16px;top:22px;color:#fff;opacity:.18;font-family:"Songti SC","STSong",serif;font-size:34px;line-height:1.35;letter-spacing:.08em}.prologue-cover .eyebrow{position:relative;z-index:1;color:#e7f4df!important}.prologue-cover h3{position:relative;z-index:1;margin:7px 0 14px!important;color:#fff!important;font-size:28px!important;text-shadow:0 2px 14px rgba(0,0,0,.24)}.audio-guide{position:relative;z-index:2;display:flex;align-items:center;gap:10px;width:100%;padding:10px 12px;border:1px solid rgba(255,255,255,.36);border-radius:999px;background:rgba(255,255,249,.86);color:#184532;text-align:left;box-shadow:0 8px 20px rgba(12,51,35,.16)}.audio-guide img{width:42px;height:42px;border-radius:50%;object-fit:cover;object-position:50% 32%;border:2px solid #fffef4}.audio-guide span{flex:1}.audio-guide strong,.audio-guide small{display:block}.audio-guide strong{font-size:14px}.audio-guide small{margin-top:2px;color:#6a7a70;font-size:11px}.audio-guide b{width:30px;height:30px;border-radius:50%;display:grid;place-items:center;background:#1f7652;color:white;font-size:12px}.opening-poem{padding:16px 12px 18px;border-radius:18px;background:#fffaf0;border:1px solid #eadfca;text-align:center;color:#173f30;box-shadow:0 8px 20px rgba(80,67,37,.06)}.opening-poem h4{margin:0 0 12px;font-family:"Songti SC","STSong",serif;font-size:16px;color:#8b5d2b;letter-spacing:.12em}.poem-line{display:flex;align-items:flex-start;justify-content:center;margin:5px 0 7px;color:#173f30;font-family:"Songti SC","STSong",serif;font-size:19px;line-height:1.1;letter-spacing:.04em}.poem-char{position:relative;display:inline-flex;flex-direction:column;align-items:center;width:1.35em;min-height:2.15em}.poem-char .word{display:block}.poem-punct{display:inline-block;width:.8em}.tone-mark{position:relative;display:block;width:14px;height:12px;margin-top:5px}.tone-ping .tone-mark:before{content:"";position:absolute;left:1px;right:1px;top:5px;height:2px;border-radius:2px;background:#245944}.tone-ze .tone-mark:before{content:"";position:absolute;left:50%;top:0;width:2px;height:12px;margin-left:-1px;border-radius:2px;background:#245944}.tone-ru .tone-mark:before{content:"";position:absolute;left:50%;top:0;width:2px;height:8px;margin-left:-1px;border-radius:2px;background:#245944}.tone-ru .tone-mark:after{content:"";position:absolute;left:50%;bottom:0;width:4px;height:4px;margin-left:-2px;border-radius:50%;background:#245944}.prologue-story{padding:16px 16px 2px;border-radius:20px;background:rgba(255,255,252,.78);border:1px solid #d8e4d8}.prologue-story p{margin:0 0 13px!important;color:#40594d!important;font-size:14px;line-height:1.86;text-align:justify}.knowledge-box,.family-task{padding:15px 16px;border-radius:18px;background:#edf4ed;border:1px solid #d3e1d5;color:#41594d}.knowledge-box h4,.family-task h4{margin:0 0 8px;font-family:"Songti SC","STSong",serif;font-size:17px;color:#1d4f3c}.knowledge-box ul{margin:0;padding-left:18px}.knowledge-box li{margin:5px 0;color:#587064;font-size:13px;line-height:1.7}.family-task p{margin:0!important;color:#40594d!important;font-size:14px;line-height:1.8}.family-task strong{color:#1f7652}

.sky-map-card{padding:15px;border-radius:20px;background:linear-gradient(180deg,#123c31,#0b241f);color:#f5f4dc;box-shadow:0 12px 26px rgba(12,45,33,.18);overflow:hidden}.sky-map-title{display:flex;align-items:flex-end;justify-content:space-between;gap:10px;margin-bottom:12px}.sky-map-title span{font-family:"Songti SC","STSong",serif;font-size:17px;font-weight:900}.sky-map-title small{color:#cfe0c8;font-size:10px;text-align:right}.sky-map{position:relative;height:230px;border-radius:18px;background:radial-gradient(circle at 50% 42%,rgba(255,232,139,.18),transparent 12%),radial-gradient(circle at 50% 42%,rgba(92,163,126,.22),transparent 38%),linear-gradient(180deg,rgba(255,255,255,.04),rgba(255,255,255,.02));border:1px solid rgba(255,255,255,.14);overflow:hidden}.orbit{position:absolute;left:50%;top:42%;border:1px solid rgba(230,244,210,.42);border-radius:50%;transform:translate(-50%,-50%)}.orbit-inner{width:72px;height:72px}.orbit-middle{width:132px;height:132px;border-style:dashed}.orbit-outer{width:198px;height:198px;border-style:dotted}.star-dot{position:absolute;width:4px;height:4px;border-radius:50%;background:#f9df7a;box-shadow:0 0 10px #f9df7a}.s1{left:18%;top:24%}.s2{left:74%;top:20%}.s3{left:28%;top:70%}.s4{left:82%;top:58%}.s5{left:48%;top:17%}.sky-label{position:absolute;padding:5px 7px;border-radius:999px;background:rgba(255,255,232,.12);border:1px solid rgba(255,255,232,.22);color:#f8f2c9;font-size:12px;text-align:center;line-height:1.25;backdrop-filter:blur(4px)}.sky-label small{font-size:9px;color:#d9e6cf}.ziwei{left:50%;top:42%;transform:translate(-50%,-50%);background:rgba(250,231,142,.24)}.taiwei{left:14%;top:46%}.tianshi{right:12%;top:46%}.xiu{left:50%;top:6%;transform:translateX(-50%);letter-spacing:.08em}.taisu{right:17%;top:27%;background:rgba(131,182,60,.28);color:#fffbd0}.connect-line{position:absolute;right:35%;top:39%;width:2px;height:86px;background:linear-gradient(#f4dd75,#f4dd75 55%,transparent);transform:rotate(27deg);transform-origin:top}.earth-label{position:absolute;left:50%;bottom:16px;transform:translateX(-50%);padding:8px 18px;border-radius:999px;background:rgba(237,244,237,.92);color:#154232;font-family:"Songti SC","STSong",serif;font-weight:900;box-shadow:0 8px 18px rgba(0,0,0,.18)}.sky-map-tabs{display:grid;gap:8px;margin-top:10px}.sky-map-tabs details{border-radius:14px;background:rgba(255,255,245,.1);border:1px solid rgba(255,255,230,.14);padding:9px 11px}.sky-map-tabs summary{cursor:pointer;color:#fff8d6;font-weight:800;font-size:13px}.sky-map-tabs p{margin:7px 0 0!important;color:#dce8d5!important;font-size:12px!important;line-height:1.65!important;text-align:left!important}

.sky-map-card .sky-map-tabs details{background:rgba(255,255,249,.92)!important;border:1px solid #c9d9cc!important;box-shadow:0 4px 12px rgba(31,74,52,.06)!important}.sky-map-card .sky-map-tabs summary{color:#1d4f3c!important;font-weight:900!important;list-style-position:inside}.sky-map-card .sky-map-tabs p{color:#526a5f!important}

.audio-guide.playing b{background:#9c6b22;color:#fff}.audio-guide.playing{box-shadow:0 8px 20px rgba(156,107,34,.18),0 0 0 2px rgba(255,232,153,.42)}
.audio-progress{display:block;width:100%;height:4px;margin-top:6px;border-radius:999px;background:rgba(29,79,60,.16);overflow:hidden}.audio-progress em{display:block;width:0;height:100%;border-radius:999px;background:linear-gradient(90deg,#1f7652,#9c6b22);transition:width .18s linear}

/* 十五关秘境地图 */
.map-intro{margin-bottom:14px}.quest-map{position:relative;margin:0 0 18px;border-radius:28px;overflow:hidden;background:#e9f0e4;border:1px solid rgba(44,97,67,.25);box-shadow:0 18px 42px rgba(25,61,42,.18)}.quest-map-image{display:block;width:100%;height:auto}.quest-node{position:absolute;z-index:3;width:12%;aspect-ratio:1/1;border:0;border-radius:50%;background:rgba(255,255,255,0);padding:0;transform:translate(-50%,-50%);-webkit-tap-highlight-color:rgba(255,238,92,.22);cursor:pointer}.quest-node:before{content:"";position:absolute;left:50%;top:50%;width:62%;height:62%;border-radius:50%;border:3px solid rgba(255,246,154,0);background:rgba(255,246,154,0);box-shadow:0 0 0 rgba(255,230,92,0);transform:translate(-50%,-50%);transition:background .18s ease,border-color .18s ease,box-shadow .18s ease,transform .18s ease}.quest-node:hover:before,.quest-node:focus-visible:before{border-color:rgba(255,239,111,.88);background:rgba(255,241,112,.16);box-shadow:0 0 18px rgba(255,231,92,.58),0 0 0 5px rgba(255,255,220,.2);animation:map-hotspot-pulse .5s ease-in-out}.quest-node:active:before{transform:translate(-50%,-50%) scale(.9)}.quest-node.done:before{border-color:rgba(207,164,65,.96);background:rgba(255,232,128,.08);box-shadow:0 0 12px rgba(207,164,65,.56),0 0 0 4px rgba(255,255,220,.16)}.quest-node.locked{opacity:.55}.quest-node.locked:before{border-color:rgba(255,255,255,0)}@keyframes map-hotspot-pulse{0%,100%{transform:translate(-50%,-50%) scale(1)}50%{transform:translate(-50%,-50%) scale(1.08)}}.node-1{left:69.7%;top:75.0%}.node-2{left:65.9%;top:83.7%}.node-3{left:49.4%;top:85.4%}.node-4{left:31.1%;top:82.1%}.node-5{left:28.4%;top:71.3%}.node-6{left:42.9%;top:63.9%}.node-7{left:21.7%;top:58.6%}.node-8{left:52.8%;top:53.9%}.node-9{left:68.6%;top:47.5%}.node-10{left:45.4%;top:41.6%}.node-11{left:63.2%;top:31.5%}.node-12{left:45.4%;top:26.3%}.node-13{left:32.4%;top:20.6%}.node-14{left:55.8%;top:17.7%}.node-15{left:83.0%;top:19.7%}
.mini-toast{position:fixed;left:50%;bottom:96px;z-index:9999;transform:translateX(-50%) translateY(10px);max-width:78vw;padding:11px 16px;border-radius:999px;background:rgba(20,64,47,.92);color:#fff8d6;font-size:14px;font-weight:800;box-shadow:0 12px 28px rgba(0,0,0,.22);opacity:0;pointer-events:none;transition:opacity .18s ease,transform .18s ease}.mini-toast.show{opacity:1;transform:translateX(-50%) translateY(0)}
.unlock-card .tag-row{margin:18px 0}.guest-consult-button{width:100%;padding-left:10px;padding-right:10px;font-size:13px;white-space:nowrap}
