:root{--paper:#f7f1e3;--ink:#2b2a26;--red:#b93a32;--gold:#c9a15a;--cyan:#3f5c66}
*{margin:0;padding:0;box-sizing:border-box;-webkit-tap-highlight-color:transparent}
html,body{height:100%}
.hidden{display:none!important}
body{font-family:"SimSun","宋体","Songti SC","STSong","Noto Serif SC","Noto Serif CJK SC",serif;color:var(--ink); background:#3a3226;display:flex;flex-direction:column;align-items:center;overflow-x:hidden}
#app{position:relative;width:100%;max-width:480px;height:100dvh;overflow:hidden; background:var(--paper);box-shadow:0 0 40px rgba(0,0,0,.5)}
.paper-bg{background-color:var(--paper);background-image: radial-gradient(ellipse 40% 30% at 15% 12%,rgba(150,140,120,.15),transparent 70%), radial-gradient(ellipse 45% 35% at 85% 78%,rgba(150,140,120,.12),transparent 70%), repeating-linear-gradient(0deg,rgba(160,148,125,.09) 0 1px,transparent 1px 5px), repeating-linear-gradient(90deg,rgba(160,148,125,.06) 0 1px,transparent 1px 6px)}
.board-pattern{background-image: linear-gradient(rgba(90,75,55,.10) 1px,transparent 1px), linear-gradient(90deg,rgba(90,75,55,.10) 1px,transparent 1px);background-size:22px 22px}
.screen{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center; padding:26px 16px 96px;opacity:0;pointer-events:none; overflow-y:auto;-webkit-overflow-scrolling:touch}
.screen.active{opacity:1;pointer-events:auto}
.screen.animL{animation:inL .38s ease both}
.screen.animR{animation:inR .38s ease both}
@keyframes inL{from{opacity:0;transform:translateX(48px)}to{opacity:1;transform:none}}
@keyframes inR{from{opacity:0;transform:translateX(-48px)}to{opacity:1;transform:none}}
.illu-bottom{position:absolute;left:0;right:0;bottom:64px;height:30vh;pointer-events:none; opacity:.85; -webkit-mask-image:linear-gradient(180deg,transparent 0,#000 24%); mask-image:linear-gradient(180deg,transparent 0,#000 24%); background-image:linear-gradient(180deg,rgba(247,241,227,0) 0%,rgba(201,161,90,.18) 60%,rgba(185,58,50,.12) 100%), repeating-linear-gradient(45deg,rgba(201,161,90,.10) 0 10px,transparent 10px 20px)}
.illu-bottom.has-pic{background-size:cover;background-position:center top}
.cover-bg{position:absolute;inset:0;background-size:cover;background-position:center 30%; background-image:linear-gradient(180deg,rgba(250,244,228,.95) 0%,rgba(250,244,228,.7) 40%,rgba(247,241,227,.5) 100%), linear-gradient(135deg,#f7f1e3 0%,#f0e4c8 50%,#e8d9b5 100%)}
.cover-bg.has-pic{background-size:cover;background-position:center 30%}
.cover-veil{position:absolute;inset:0;background:linear-gradient(180deg, rgba(250,244,228,.93) 0%,rgba(250,244,228,.72) 44%,rgba(250,244,228,.25) 72%,rgba(250,244,228,.05) 100%)}
.yun{position:absolute;background:rgba(255,255,255,.7);border:1px solid rgba(201,161,90,.55); border-radius:30px;animation:drift 9s ease-in-out infinite}
.yun::before{content:"";position:absolute;width:55%;height:190%;background:inherit; border:inherit;border-radius:50%;top:-95%;left:12%}
.yun::after{content:"";position:absolute;width:38%;height:130%;background:inherit; border:inherit;border-radius:50%;top:-60%;right:10%}
@keyframes drift{0%,100%{transform:translateX(0)}50%{transform:translateX(12px)}}
.seal{display:inline-block;background:var(--red);color:#fff;font-weight:700;letter-spacing:2px; padding:5px 9px;border-radius:4px;font-size:13px;box-shadow:0 2px 8px rgba(185,58,50,.35); transform:rotate(-3deg)}
.vtext{writing-mode:vertical-rl;letter-spacing:.35em;color:rgba(43,42,38,.4); font-size:13px;position:absolute;pointer-events:none}
#music-btn{position:fixed;top:calc(12px + env(safe-area-inset-top));right:14px;z-index:200; width:46px;height:46px;border-radius:50%;border:2px solid var(--gold); background:rgba(255,253,247,.92);box-shadow:0 3px 12px rgba(90,75,55,.3); display:flex;align-items:center;justify-content:center;font-size:20px;cursor:pointer}
#music-btn .disc{animation:spin 4s linear infinite;animation-play-state:paused}
#music-btn.playing .disc{animation-play-state:running}
@keyframes spin{to{transform:rotate(360deg)}}
#music-btn::after{content:"";position:absolute;inset:-7px;border-radius:50%; border:1px solid rgba(201,161,90,.5);animation:ripple 2s infinite; animation-play-state:paused;opacity:.3}
#music-btn.playing::after{animation-play-state:running;opacity:1}
@keyframes ripple{0%{transform:scale(.9);opacity:.7}100%{transform:scale(1.25);opacity:0}}
#music-tip{position:fixed;top:calc(64px + env(safe-area-inset-top));right:12px;z-index:200; background:rgba(43,42,38,.85);color:#ffe9b8;font-size:11px;padding:5px 10px; border-radius:8px;pointer-events:none;transition:opacity .5s}
#loader{position:fixed;inset:0;z-index:999;background:var(--paper); display:flex;flex-direction:column;align-items:center;justify-content:center; gap:16px;transition:opacity .5s;font-size:13px;color:var(--cyan);letter-spacing:3px}
#loader.hide{opacity:0;pointer-events:none}
#loader .stone{width:34px;height:34px;border-radius:50%; background:radial-gradient(circle at 35% 30%,#555,#111); animation:drop .9s cubic-bezier(.55,-0.3,.74,.05) infinite}
@keyframes drop{0%{transform:translateY(-60px);opacity:0} 60%{transform:translateY(0) scale(1,.82)}80%{transform:scale(.94,1.1)}100%{transform:none;opacity:1}}
.petal{position:fixed;top:-20px;width:12px;height:12px;pointer-events:none;z-index:50; background:radial-gradient(circle at 50% 120%,var(--red) 40%,transparent 42%); border-radius:50% 50% 50% 0;opacity:.75;animation:fall linear infinite}
@keyframes fall{to{transform:translateY(110vh) rotate(320deg);opacity:.15}}
h1.title{font-size:28px;letter-spacing:4px;text-align:center;margin:6px 0 2px; background:linear-gradient(180deg,#8f2b24,#c0483d 55%,#8f2b24); -webkit-background-clip:text;background-clip:text;color:transparent; filter:drop-shadow(0 1px 0 rgba(201,161,90,.5))}
.sub{font-size:14px;color:var(--cyan);letter-spacing:2px;text-align:center}
.hr-deco{display:flex;align-items:center;gap:8px;margin:8px 0 12px;width:82%}
.hr-deco::before,.hr-deco::after{content:"";flex:1;height:1px; background:linear-gradient(90deg,transparent,var(--gold))}
.hr-deco::after{background:linear-gradient(90deg,var(--gold),transparent)}
.hr-deco span{color:var(--gold);font-size:14px}
.card{width:100%;max-width:430px;background:rgba(255,253,247,.94); border:1px solid rgba(201,161,90,.6);border-radius:12px;padding:13px 14px;margin:8px 0; position:relative;box-shadow:0 4px 14px rgba(90,75,55,.14),inset 0 0 0 3px rgba(255,255,255,.5)}
.card::before{content:"";position:absolute;inset:4px;border:1px dashed rgba(201,161,90,.5); border-radius:9px;pointer-events:none}
.card h3{color:var(--red);font-size:16px;margin-bottom:6px;letter-spacing:1px}
.card p{font-size:13.5px;line-height:1.85;color:#4a4438;text-align:justify}
.screen.active .card{animation:fadeUp .55s both}
@keyframes fadeUp{from{opacity:0;transform:translateY(18px)}to{opacity:1;transform:none}}
.num-row{display:flex;flex-wrap:wrap;gap:8px;width:100%;max-width:430px}
.num-box{flex:1 1 46%;background:linear-gradient(160deg,#fffdf6,#f4ead2); border:1px solid rgba(201,161,90,.6);border-radius:10px;padding:10px 6px;text-align:center}
.num-box b{display:block;font-size:21px;color:var(--red)}
.num-box span{font-size:11.5px;color:var(--cyan);letter-spacing:1px}
.time-row{display:flex;align-items:center;gap:10px;padding:9px 4px; border-bottom:1px dashed rgba(201,161,90,.55)}
.time-row:last-child{border-bottom:none}
.time-row .day{flex:0 0 52px;color:var(--red);font-weight:700;font-size:15px}
.time-row .tm{flex:0 0 106px;color:var(--cyan);font-size:13px;letter-spacing:1px}
.time-row .nm{flex:1;font-size:15px;letter-spacing:2px}
.btn{background:linear-gradient(160deg,var(--red),#d05a4a);color:#fff;border:none; font-family:inherit;font-size:17px;letter-spacing:3px;padding:13px 34px;border-radius:40px; margin-top:12px;cursor:pointer;animation:breath 2.2s infinite}
@keyframes breath{0%,100%{box-shadow:0 4px 14px rgba(185,58,50,.4)} 50%{box-shadow:0 4px 22px rgba(185,58,50,.8)}}
.qizi{display:inline-block;width:12px;height:12px;border-radius:50%;vertical-align:-2px;margin-right:4px}
.qizi.b{background:radial-gradient(circle at 35% 30%,#555,#111)}
.qizi.w{background:radial-gradient(circle at 35% 30%,#fff,#ddd);border:1px solid #bbb}
.logo-coin{position:relative;width:150px;height:150px;margin:12px auto 12px;filter:drop-shadow(0 12px 26px rgba(93,52,35,.32));animation:coinIn .9s cubic-bezier(.2,.85,.3,1.15) both}
.logo-coin img{width:100%;height:100%;object-fit:contain;display:block; animation:floaty 4.5s ease-in-out 1s infinite}
.ring-dash{position:absolute;inset:-13px;border-radius:50%; border:1.5px dashed rgba(185,58,50,.45);animation:spin 28s linear infinite}
@keyframes coinIn{from{opacity:0;transform:scale(.55) rotate(-8deg)}to{opacity:1;transform:none}}
@keyframes floaty{0%,100%{transform:translateY(0)}50%{transform:translateY(-7px)}}
.brand-title{font-size:34px;letter-spacing:10px;text-indent:10px;color:#6f1a16;font-weight:700; text-shadow:0 0 8px #fffdf6,0 0 18px #fffdf6,0 3px 6px rgba(111,26,22,.28); animation:fadeUp .7s .15s both}
.brand-en{font-size:11px;letter-spacing:5px;color:#8a6a30;font-weight:700;margin-top:6px; text-shadow:0 0 6px #fffdf6,0 0 12px #fffdf6; animation:fadeUp .7s .25s both}
.motto{display:flex;gap:20px;margin:12px auto 10px;justify-content:center; animation:fadeUp .7s .35s both}
.motto span{font-size:19px;letter-spacing:4px;border-top:1px solid var(--gold); border-bottom:1px solid var(--gold);padding:5px 2px;color:#6f1a16;font-weight:700; text-shadow:0 0 6px #fffdf6,0 0 12px #fffdf6}
.game-chips{display:flex;gap:9px;justify-content:center;margin:10px auto 6px;flex-wrap:wrap; animation:fadeUp .7s .45s both}
.game-chips span{font-size:13.5px;letter-spacing:2px;font-weight:700;color:#fff; border-radius:22px;padding:8px 16px;text-shadow:0 1px 2px rgba(0,0,0,.22); border:1px solid rgba(255,255,255,.3); box-shadow:0 3px 9px rgba(93,52,35,.3),inset 0 1px 0 rgba(255,255,255,.35)}
.game-chips span:nth-child(1){background:linear-gradient(160deg,#2f2d29,#5a554b)}
.game-chips span:nth-child(2){background:linear-gradient(160deg,#b93a32,#d05a4a)}
.game-chips span:nth-child(3){background:linear-gradient(160deg,#3f5c66,#5a7a86)}
.game-chips span:nth-child(4){background:linear-gradient(160deg,#8a6d3b,#c9a15a)}
.game-chips span:nth-child(5){background:linear-gradient(160deg,#4a7c59,#6fa284)}
.school-line{font-size:14px;color:#6f1a16;font-weight:700;letter-spacing:1.5px;text-align:center; line-height:1.95;margin-top:10px; text-shadow:0 0 7px #fffdf6,0 0 14px #fffdf6; animation:fadeUp .7s .55s both}
.seal-wrap{margin-top:11px;animation:fadeUp .7s .65s both}
.swipe-hint{margin-top:16px;font-size:12px;color:rgba(43,42,38,.55);letter-spacing:3px; text-shadow:0 0 5px #fffdf6; animation:hintPulse 2.2s ease-in-out infinite}
@keyframes hintPulse{0%,100%{opacity:.5;transform:translateY(0)}50%{opacity:1;transform:translateY(3px)}}
.camp-btn{width:100%;max-width:430px;display:flex;align-items:center;gap:12px; background:rgba(255,253,247,.96);border:1px solid rgba(201,161,90,.6); border-radius:12px;padding:15px 16px;margin:8px 0;cursor:pointer; box-shadow:0 3px 10px rgba(90,75,55,.12);transition:transform .15s; animation:fadeUp .5s both}
.camp-btn:active{transform:scale(.97)}
.camp-btn .no{width:28px;height:28px;border-radius:50%;flex:0 0 28px; background:linear-gradient(160deg,var(--red),#d05a4a);color:#fff; display:flex;align-items:center;justify-content:center;font-size:14px;font-weight:700; box-shadow:0 2px 6px rgba(185,58,50,.35)}
.camp-btn .nm{flex:1;font-size:16.5px;font-weight:700;color:var(--ink);letter-spacing:1.5px}
.camp-btn .chip{font-size:11px;border-radius:10px;padding:2px 8px;white-space:nowrap}
.camp-btn .chip.ok{color:#fff;background:#4a7c59}
.camp-btn .chip.no{color:#9a8f7a;background:#f0e8d4}
.camp-btn .arr{color:var(--gold);font-size:18px;font-weight:700}
.ci-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;width:100%;max-width:430px;margin:10px 0 4px}
.ci-card{position:relative;border-radius:16px;min-height:110px;padding:10px 8px 18px; display:flex;flex-direction:column;align-items:center;justify-content:flex-end;text-align:center; color:#ffd98a;cursor:pointer;overflow:hidden; box-shadow:0 6px 16px rgba(43,42,38,.30),inset 0 0 0 1px rgba(255,217,138,.35); transition:transform .15s;animation:fadeUp .5s both; background-size:cover;background-position:center}
.ci-card::before{content:"";position:absolute;inset:0; background:linear-gradient(180deg,rgba(30,25,18,.10) 0%,rgba(30,25,18,.30) 60%,rgba(30,25,18,.55) 100%); pointer-events:none}
.ci-card>*{position:relative;z-index:1}
.ci-card:active{transform:scale(.95)}
.ci-card .nm{font-size:17px;font-weight:700;letter-spacing:3px;color:#ffd98a; text-shadow:0 1px 3px rgba(43,42,38,.85),0 0 10px rgba(43,42,38,.55)}
.game-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;width:100%;max-width:430px;margin:8px 0}
.game-card{position:relative;border-radius:14px;padding:18px 12px 14px;text-align:center;color:#fff; cursor:pointer;box-shadow:0 5px 14px rgba(43,42,38,.28); transition:transform .15s;animation:fadeUp .5s both;overflow:hidden}
.game-card:active{transform:scale(.96)}
.game-card .ic{width:54px;height:54px;margin:0 auto 8px;border-radius:50%; background:rgba(255,255,255,.96); display:flex;align-items:center;justify-content:center; box-shadow:inset 0 -2px 6px rgba(0,0,0,.18),0 2px 6px rgba(0,0,0,.2)}
.game-card .ic svg{width:40px;height:40px;display:block}
.game-card .nm{font-size:17px;font-weight:700;letter-spacing:3px;text-shadow:0 1px 3px rgba(0,0,0,.3)}
.game-card .ct{display:inline-block;margin-top:7px;font-size:11px; background:rgba(255,255,255,.22);border:1px solid rgba(255,255,255,.45); border-radius:12px;padding:2px 10px;letter-spacing:1px}
.game-card.span2{grid-column:1/-1;display:flex;align-items:center;gap:14px;text-align:left;padding:14px 18px}
.game-card.span2 .ic{margin:0;flex:0 0 54px}
.game-card.span2 .nm{font-size:18px}
#coach-view{width:100%;max-width:430px;display:flex;flex-direction:column;align-items:center}
.back-bar{width:100%;display:flex;align-items:center;gap:10px;margin:2px 0 6px;flex-wrap:wrap}
.back-btn{display:inline-flex;align-items:center;gap:6px; background:#f4ead2;border:1px solid rgba(201,161,90,.7); color:var(--red);border-radius:22px;padding:8px 16px;font-family:inherit; font-size:13.5px;letter-spacing:1px;cursor:pointer}
.back-btn:active{background:#efe0bc}
.game-tag{font-size:14px;color:var(--red);font-weight:700;letter-spacing:2px}
#imgviewer{position:fixed;inset:0;background:rgba(15,12,8,.96);z-index:400; display:none;flex-direction:column}
#imgviewer.show{display:flex}
#viewer-top{display:flex;align-items:center;justify-content:space-between; padding:calc(10px + env(safe-area-inset-top)) 14px 10px;flex:0 0 auto}
#viewer-title{color:#ffe9b8;font-size:14px;letter-spacing:2px;font-weight:700}
#viewer-close{width:40px;height:40px;border-radius:50%;background:rgba(255,233,184,.14); border:1.5px solid rgba(255,233,184,.65);color:#ffe9b8;font-size:19px; display:flex;align-items:center;justify-content:center;cursor:pointer}
#viewer-months{flex:0 0 auto;display:flex;gap:8px;justify-content:center;flex-wrap:wrap; padding:8px 10px 0}
#viewer-months button{background:rgba(255,233,184,.12);border:1px solid rgba(255,233,184,.55); color:#ffe9b8;border-radius:18px;padding:6px 16px;font-family:inherit;font-size:13px; letter-spacing:1px;cursor:pointer}
#viewer-months button.on{background:#c9a15a;color:#3a3226;font-weight:700;border-color:#c9a15a}
#viewer-months:empty{display:none}
#viewer-wrap{flex:1;overflow:auto;-webkit-overflow-scrolling:touch; touch-action:pan-x pan-y;min-height:0;padding:0 8px 12px}
#viewer-body{min-width:100%;background:#fffdf6;border-radius:8px;padding:12px 10px; will-change:transform}
.doc-content{font-size:15px;line-height:1.85;color:#2b2a26;overflow-wrap:normal}
.doc-content p{margin:7px 0}
.doc-content h1,.doc-content h2,.doc-content h3,.doc-content h4{ color:#8f2b24;margin:12px 0 6px;letter-spacing:1px;text-align:center}
.doc-content h2,.doc-content h3{border-bottom:1px solid rgba(201,161,90,.5);padding-bottom:4px}
.doc-content ul,.doc-content ol{margin:6px 0 6px 22px}
.doc-content li{margin:3px 0}
.doc-content img{max-width:100%;border-radius:6px;margin:6px auto;display:block}
.sch-scroll{overflow-x:auto;-webkit-overflow-scrolling:touch;margin:8px -4px;padding:0 4px; touch-action:pan-x pan-y}
#viewer-hint{flex:0 0 auto;text-align:center;color:rgba(255,233,184,.75); font-size:12px;letter-spacing:2px;padding:0 0 calc(14px + env(safe-area-inset-bottom))}
.camp-line{padding:9px 2px;border-bottom:1px dashed rgba(201,161,90,.5)}
.camp-line:last-child{border-bottom:none;padding-bottom:2px}
.cl-head{display:flex;justify-content:space-between;align-items:center;gap:8px;flex-wrap:wrap}
.cl-head b{font-size:14.5px;color:var(--red);letter-spacing:1px}
.cl-tels{display:flex;gap:5px;flex-wrap:wrap}
.cl-tel{font-size:12.5px;color:var(--cyan);text-decoration:none; background:#f4ead2;border:1px solid rgba(201,161,90,.55); border-radius:8px;padding:3px 9px;white-space:nowrap}
.cl-tel:active{background:#fdf3e0}
.cl-addr{font-size:12.5px;color:#6b6353;margin-top:3px;line-height:1.6}
.coach-grid{display:flex;flex-wrap:wrap;gap:10px;width:100%;margin:4px 0}
.coach-item{flex:1 1 30%;min-width:118px;background:rgba(255,253,247,.96); border:1px solid rgba(201,161,90,.6);border-radius:12px;padding:12px 8px; text-align:center;cursor:pointer;box-shadow:0 3px 10px rgba(90,75,55,.12); transition:transform .2s;animation:fadeUp .5s both}
.coach-item:active{transform:scale(.96)}
.coach-photo{width:74px;height:74px;border-radius:50%;object-fit:cover;margin:0 auto 8px; display:block;border:2px solid var(--gold); background:linear-gradient(135deg,#e8d9b5,#d4bf94)}
.coach-item .nm{font-size:15px;font-weight:700;color:var(--red);letter-spacing:1px}
.coach-item .gm{display:inline-block;font-size:10.5px;color:#fff;background:var(--cyan); border-radius:8px;padding:2px 8px;margin:5px 0 3px}
.coach-item .tt{font-size:11px;color:var(--cyan);line-height:1.5}
.modal-mask{position:fixed;inset:0;background:rgba(30,25,18,.55);z-index:290; display:none;align-items:center;justify-content:center;padding:20px}
.modal-mask.show{display:flex}
.modal-box{background:#fffdf6;border:1px solid var(--gold);border-radius:16px; width:100%;max-width:340px;max-height:82vh;overflow-y:auto; padding:20px;position:relative;box-shadow:0 12px 36px rgba(0,0,0,.35)}
.modal-close{position:absolute;top:8px;right:12px;font-size:22px;color:#999; cursor:pointer;line-height:1;z-index:2}
.modal-photo{width:120px;height:120px;border-radius:14px;object-fit:cover; display:block;margin:4px auto 12px;border:2px solid var(--gold); background:linear-gradient(135deg,#e8d9b5,#d4bf94)}
.modal-box h3{color:var(--red);text-align:center;font-size:18px;letter-spacing:2px}
.modal-tag{display:flex;justify-content:center;gap:8px;margin:8px 0 12px;flex-wrap:wrap}
.modal-tag span{font-size:11.5px;background:#f4ead2;border:1px solid rgba(201,161,90,.6); color:var(--cyan);border-radius:10px;padding:3px 10px}
.modal-box p{font-size:13.5px;line-height:1.9;color:#4a4438;text-align:justify}
#ci-photos img{width:100%;border-radius:10px;border:2px solid var(--gold); margin:6px 0 2px;display:block;background:linear-gradient(135deg,#e8d9b5,#d4bf94)}
nav{position:absolute;left:0;right:0;bottom:0;z-index:160;display:flex; background:rgba(43,42,38,.96);backdrop-filter:blur(6px); padding:6px 4px calc(6px + env(safe-area-inset-bottom))}
nav button{flex:1;background:none;border:none;color:#cbbfa8;font-family:inherit; font-size:10.5px;padding:4px 0;border-radius:8px;cursor:pointer}
nav button .ic{display:block;font-size:19px;line-height:1.2}
nav button.on{color:#ffd98a;background:rgba(201,161,90,.18)}
.quiz-modal{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%); background:#fffdf6;border:1px solid var(--gold);border-radius:14px;padding:22px; width:86%;max-width:350px;z-index:300;display:none;box-shadow:0 10px 30px rgba(43,42,38,.35)}
.quiz-modal.show{display:block}
.quiz-modal h3{color:var(--red);margin-bottom:12px;font-size:16px}
.opt{width:100%;padding:11px;margin:7px 0;background:#f6efdd; border:1px solid rgba(201,161,90,.5);border-radius:8px;font-size:15px; font-family:inherit;cursor:pointer;color:var(--ink)}
.opt.correct{background:#4a7c59;color:#fff;border-color:#4a7c59}
.opt.wrong{background:#a33;border-color:#a33;color:#fff}
#toast{position:fixed;bottom:96px;left:50%;transform:translateX(-50%);z-index:300; background:rgba(43,42,38,.9);color:#ffe9b8;font-size:12.5px;padding:9px 16px; border-radius:10px;display:none;max-width:82%;text-align:center;line-height:1.6}
.empty-tip{color:var(--cyan);font-size:13px;text-align:center;padding:30px 20px; line-height:2;letter-spacing:1px}
/* ═══════ A+C 升级：转化层 + 精修 ═══════ */
/* 首页 CTA */
.cta-row{display:flex;gap:12px;justify-content:center;margin:16px auto 4px;animation:fadeUp .7s .6s both;width:100%;max-width:340px}
.btn-cta{flex:1;background:linear-gradient(160deg,var(--red),#d05a4a);color:#fff;border:none; font-family:inherit;font-size:15.5px;font-weight:700;letter-spacing:3px; padding:13px 6px;border-radius:40px;cursor:pointer; box-shadow:0 5px 16px rgba(185,58,50,.45);animation:breath 2.2s infinite}
.btn-ghost{flex:1;background:rgba(255,253,247,.9);color:var(--red);border:1.5px solid var(--red); font-family:inherit;font-size:15.5px;letter-spacing:3px; padding:13px 6px;border-radius:40px;cursor:pointer;font-weight:700}
.btn-cta:active,.btn-ghost:active{transform:scale(.96)}
/* 国手荣誉墙 */
.honor-wall{width:100%;max-width:430px}
.honor-cat{display:flex;align-items:center;gap:8px;margin:13px 0 8px;font-size:14px;color:var(--cyan);font-weight:700;letter-spacing:2px}
.honor-cat::before{content:"";width:3px;height:15px;background:var(--red);border-radius:2px}
.honor-cat em{font-style:normal;font-size:11px;color:#9c8f77;font-weight:400;margin-left:auto}
.honor-grid{display:grid;grid-template-columns:1fr 1fr 1fr;gap:8px}
.honor-card{background:linear-gradient(160deg,#fffdf6,#f8f0dc); border:1px solid rgba(201,161,90,.65);border-radius:10px; padding:9px 4px 8px;text-align:center; position:relative;box-shadow:0 2px 7px rgba(90,75,55,.10)}
.honor-card::after{content:"";position:absolute;inset:2px;border:1px dashed rgba(201,161,90,.4);border-radius:8px;pointer-events:none}
.honor-card b{display:block;font-size:15px;color:var(--red);letter-spacing:1px}
.honor-card span{display:block;font-size:10px;color:var(--cyan);margin-top:3px;line-height:1.45}
.honor-card.gold b{color:#8a6d3b}
/* 悬浮咨询 */
#fab-consult{position:fixed;right:12px;bottom:calc(74px + env(safe-area-inset-bottom));z-index:180; width:52px;height:52px;border-radius:50%; background:linear-gradient(160deg,#1f9d63,#177b4d);color:#fff; display:flex;flex-direction:column;align-items:center;justify-content:center; font-size:19px;line-height:1;cursor:pointer; box-shadow:0 4px 14px rgba(23,123,77,.45);border:2px solid rgba(255,255,255,.55); transition:transform .2s,opacity .25s}
#fab-consult span{font-size:9.5px;letter-spacing:1px;margin-top:1px;font-weight:700}
#fab-consult:active{transform:scale(.9)}
#fab-consult.hide{opacity:0;pointer-events:none;transform:scale(.6)}
/* 报名屏 · 微信咨询主卡 */
.wx-cta-card{width:100%;max-width:430px;background:linear-gradient(160deg,#fffdf6,#eef6f0); border:1.5px solid rgba(31,157,99,.55);border-radius:14px;padding:16px 15px;margin:10px 0 4px; position:relative;box-shadow:0 4px 14px rgba(31,157,99,.14)}
.wx-cta-card::before{content:"";position:absolute;inset:4px;border:1px dashed rgba(31,157,99,.35);border-radius:10px;pointer-events:none}
.wx-cta-card h3{color:#177b4d;font-size:17px;letter-spacing:1px;margin-bottom:5px;text-align:center}
.wx-cta-card p{font-size:12.5px;color:#4a4438;text-align:center;line-height:1.8;margin-bottom:11px}
.btn-wx{width:100%;background:linear-gradient(135deg,#22b06d,#177b4d);color:#fff;border:none; font-family:inherit;font-size:16.5px;font-weight:700;letter-spacing:2px; padding:13px 10px;border-radius:40px;cursor:pointer; box-shadow:0 5px 16px rgba(23,123,77,.4)}
.btn-wx:active{transform:scale(.97);opacity:.9}
/* 留资半屏弹层（前缀 lz-，避免与主站类冲突） */
.lz-mask{position:fixed;inset:0;background:rgba(30,24,16,.55);z-index:320; opacity:0;pointer-events:none;transition:opacity .22s;display:flex;align-items:flex-end;justify-content:center}
.lz-mask.on{opacity:1;pointer-events:auto}
.lz-sheet{width:100%;max-width:480px;background:var(--paper);border-radius:20px 20px 0 0; padding:16px 14px calc(18px + env(safe-area-inset-bottom)); transform:translateY(100%);transition:transform .28s cubic-bezier(.22,.8,.3,1); max-height:86vh;overflow-y:auto}
.lz-mask.on .lz-sheet{transform:translateY(0)}
.lz-bar{width:38px;height:4px;border-radius:2px;background:rgba(201,161,90,.6);margin:0 auto 12px}
.lz-title{font-size:18px;font-weight:700;color:var(--red2,#8f2b24);text-align:center;letter-spacing:2px}
.lz-sub{font-size:12px;color:var(--cyan);text-align:center;margin-top:4px;letter-spacing:.5px}
.lz-row{display:flex;align-items:center;gap:10px;background:#fffdf6; border:1px solid rgba(201,161,90,.55);border-radius:12px;padding:11px 12px;margin-top:9px; box-shadow:0 2px 8px rgba(90,75,55,.08)}
.lz-row .no{flex:0 0 30px;height:30px;border-radius:50%;background:var(--red);color:#fff; display:flex;align-items:center;justify-content:center;font-size:13.5px;font-weight:700}
.lz-row .mid{flex:1;min-width:0}
.lz-row .nm{font-size:15px;font-weight:700;color:var(--ink);letter-spacing:.5px}
.lz-row .lm{font-size:10px;color:var(--cyan);background:#eef3f4;border:1px solid rgba(63,92,102,.3); border-radius:8px;padding:1px 6px;margin-left:5px;vertical-align:1px}
.lz-row .addr{font-size:11.5px;color:#6b6353;margin-top:2px;line-height:1.5}
.lz-row .go{flex:0 0 auto;background:linear-gradient(135deg,#22b06d,#177b4d);color:#fff;border:none; font-family:inherit;font-size:13px;font-weight:700;letter-spacing:1px; border-radius:20px;padding:9px 14px;cursor:pointer;box-shadow:0 3px 9px rgba(23,123,77,.35)}
.lz-row .go:active{transform:scale(.94)}
.lz-row .go.gray{background:linear-gradient(135deg,#bdb6a4,#9c9484);box-shadow:none}
.lz-tels{display:flex;gap:5px;flex-wrap:wrap;margin-top:5px}
.lz-tels a{font-size:11.5px;color:var(--cyan);text-decoration:none;background:#f4ead2; border:1px solid rgba(201,161,90,.55);border-radius:8px;padding:2px 8px}
.lz-note{font-size:11px;color:#9c8f77;text-align:center;margin-top:11px;line-height:1.8}
.lz-close{width:100%;background:none;border:none;color:#9c8f77;font-size:12.5px; padding:8px;font-family:inherit;cursor:pointer;letter-spacing:1px;margin-top:2px}