:root{--blue-900:#16324A;--blue-700:#365E7D;--blue-500:#7196AF;--blue-200:#C8D8E2;--blue-50:#EEF3F5;--off:#F7F7F3;--ink:#172027;--yellow:#D8DF55;
 --w:var(--off);--blue:var(--blue-700);--lime:var(--yellow);--g1:var(--blue-50);--g2:var(--blue-200);--g3:#62727e;--red:#b3402a;
 --font:"Inter","Geist","Helvetica Neue",Helvetica,"Noto Sans SC","PingFang SC","Hiragino Sans GB","Microsoft YaHei",Arial,sans-serif;
 --display:"Inter","Geist","Helvetica Neue",Helvetica,"Arial Narrow","Noto Sans SC","PingFang SC",Arial,sans-serif;
 --r:14px;--glass:rgba(247,247,243,.62);--glass-hi:rgba(255,255,255,.72);--glass-lo:rgba(255,255,255,.48);
 --glass-border:1px solid rgba(255,255,255,.45);--glass-shadow:0 8px 32px rgba(20,45,65,.06);--ease:cubic-bezier(.2,.7,.2,1);--t:280ms}
*{box-sizing:border-box;margin:0;padding:0;-webkit-tap-highlight-color:transparent}
html{scroll-behavior:smooth}
body{font-family:var(--font);background:var(--off);color:var(--ink);font-size:15px;line-height:1.6;font-weight:400;padding-bottom:84px;overflow-x:clip;-webkit-font-smoothing:antialiased}
a{color:inherit;text-decoration:none}
button,input,select,textarea{font:inherit;color:inherit}
button{cursor:pointer;border:0;background:none}
h1,h2,h3{font-weight:500;line-height:1.18;letter-spacing:-.015em;color:var(--blue-900)}
b,strong{font-weight:600}
.wrap{max-width:1360px;margin:0 auto;padding:0 clamp(18px,4vw,56px)}
.eyebrow{font-size:11px;letter-spacing:.2em;text-transform:uppercase;color:var(--g3);font-weight:500}
/* icons */
.ic{width:24px;height:24px;stroke:currentColor;fill:none;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round;flex:none;display:inline-block;vertical-align:middle;transition:color var(--t) var(--ease),transform var(--t) var(--ease)}
.ic.s{width:18px;height:18px}.ic.l{width:32px;height:32px}
.ic-blue{color:var(--blue-700)}
/* top bar */
.top{position:fixed;top:0;left:0;right:0;z-index:40;background:rgba(247,247,243,.86);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);border-bottom:var(--glass-border);transition:background var(--t) var(--ease),color var(--t) var(--ease),border-color var(--t) var(--ease),backdrop-filter var(--t) var(--ease)}
.top .wrap{display:flex;align-items:center;gap:28px;height:64px}
.logo{font-family:var(--display);font-weight:600;font-size:19px;letter-spacing:-.02em;text-transform:uppercase;display:flex;align-items:center;gap:8px;color:var(--blue-900)}
.logoimg{height:24px;width:auto}
.dnav{display:none;gap:30px;margin-left:auto;align-items:center}
.dnav a{font-size:11.5px;letter-spacing:.16em;text-transform:uppercase;font-weight:500;color:var(--blue-700);padding:6px 0;border-bottom:1.5px solid transparent;transition:color var(--t) var(--ease),border-color var(--t) var(--ease)}
.dnav a:hover{color:var(--blue-900)}
.dnav a.on{color:var(--blue-900);border-bottom-color:var(--yellow)}
.join{display:inline-flex;align-items:center;gap:6px;font-size:11.5px;letter-spacing:.14em;text-transform:uppercase;font-weight:600;background:var(--yellow);color:var(--ink);padding:9px 16px;border-radius:999px;transition:transform var(--t) var(--ease)}
.join:hover .ic{transform:translateX(3px)}
.top .who{margin-left:auto;display:flex;align-items:center}
@media(min-width:860px){.dnav{display:flex}.top .who{margin-left:0}}
body.home:not(.scrolled) .top{background:transparent;border-bottom-color:transparent;-webkit-backdrop-filter:none;backdrop-filter:none}
body.home:not(.scrolled) .logo,body.home:not(.scrolled) .dnav a,body.home:not(.scrolled) .dnav a:hover,body.home:not(.scrolled) .dnav a.on{color:#fff}
/* bottom tabs */
.tabs{position:fixed;left:0;right:0;bottom:0;z-index:40;background:var(--glass);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);border-top:var(--glass-border);display:flex;padding-bottom:env(safe-area-inset-bottom,0)}
.tabs a{flex:1;text-align:center;padding:9px 0 8px;font-size:10.5px;letter-spacing:.04em;color:var(--blue-700);display:flex;flex-direction:column;align-items:center;gap:3px;position:relative;transition:color var(--t) var(--ease)}
.tabs a .ic{width:22px;height:22px}
.tabs a.on{color:var(--blue-900);font-weight:600}
.tabs a.on:before{content:"";position:absolute;top:0;left:50%;width:22px;height:2px;margin-left:-11px;background:var(--yellow)}
@media(min-width:860px){.tabs{display:none}body{padding-bottom:0}}
/* common */
main{padding:92px 0 56px;min-height:70vh}
body.home main{padding-top:0}
.sec{margin:56px 0 20px;display:flex;align-items:end;justify-content:space-between;gap:10px}
.sec h2{font-size:clamp(24px,3vw,34px)}
.sec a,.sec button{font-size:12px;letter-spacing:.1em;text-transform:uppercase;font-weight:500;color:var(--blue-700);display:inline-flex;align-items:center;gap:6px}
.sec a:hover .ic{transform:translateX(4px)}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:11px 20px;border-radius:10px;background:var(--blue-900);color:var(--off);font-weight:500;font-size:14px;border:1px solid var(--blue-900);transition:background var(--t) var(--ease),transform var(--t) var(--ease),color var(--t) var(--ease),opacity var(--t) var(--ease)}
.btn:hover{background:var(--blue-700);border-color:var(--blue-700)}
.btn:hover .ic{transform:translateX(4px)}
.btn:active{opacity:.85}
.btn.lime{background:var(--yellow);color:var(--ink);border-color:var(--yellow);border-radius:999px}
.btn.lime:hover{background:#e3e96c;border-color:#e3e96c}
.btn.blue{background:var(--blue-700);border-color:var(--blue-700)}
.btn.ghost{background:var(--glass-lo);color:var(--blue-900);border:1px solid rgba(54,94,125,.28)}
.btn.ghost:hover{background:var(--glass-hi);border-color:var(--blue-700)}
.btn.sm{padding:6px 13px;font-size:12px;border-radius:8px}
.btn[disabled]{opacity:.4;pointer-events:none}
.chip{display:inline-block;padding:3px 10px;border-radius:6px;background:var(--blue-50);font-size:12px;font-weight:500;border:1px solid var(--blue-200);color:var(--blue-900)}
.chip.blue{background:var(--blue-700);color:var(--off);border-color:var(--blue-700)}
.chip.lime{background:var(--yellow);border-color:var(--yellow);color:var(--ink)}
.chip.dark{background:var(--blue-900);color:var(--off);border-color:var(--blue-900)}
.chips{display:flex;gap:6px;flex-wrap:wrap}
.filters{display:flex;gap:8px;flex-wrap:wrap;padding:2px 0 8px}
.filters button{white-space:nowrap;padding:8px 16px;border-radius:8px;border:1px solid rgba(54,94,125,.25);font-weight:500;font-size:13px;background:var(--glass-lo);transition:background var(--t) var(--ease),color var(--t) var(--ease)}
.fbtn{white-space:nowrap;padding:8px 16px;border-radius:8px;border:1px solid rgba(54,94,125,.25);font-weight:500;font-size:13px;background:var(--glass-lo);display:inline-flex;align-items:center;gap:6px;transition:background var(--t) var(--ease),color var(--t) var(--ease)}
.fbtn:hover,.filters button:hover{background:var(--glass-hi)}
.fbtn small{opacity:.55}.fbtn.on,.filters button.on{background:var(--blue-900);color:var(--off);border-color:var(--blue-900)}
.fgroup{position:relative;display:inline-block}
.fdrop.open{background:var(--blue-900);color:var(--off);border-color:var(--blue-900)}
.fdrop .ic{width:14px;height:14px}
.fpanel{position:absolute;top:calc(100% + 6px);left:0;z-index:8;background:rgba(247,247,243,.94);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);border:1px solid var(--blue-200);border-radius:12px;padding:10px;display:flex;flex-wrap:wrap;gap:6px;width:max-content;max-width:280px;box-shadow:var(--glass-shadow)}
.fopt{padding:7px 13px;border-radius:8px;border:1px solid rgba(54,94,125,.25);font-weight:500;font-size:13px;background:var(--off);white-space:nowrap;display:inline-flex;align-items:center;gap:6px}
.fopt.on{background:var(--blue-700);color:var(--off);border-color:var(--blue-700)}
.grid{display:grid;gap:20px;grid-template-columns:repeat(auto-fill,minmax(280px,1fr))}
.card{background:var(--glass-lo);border:1px solid rgba(54,94,125,.14);box-shadow:inset 0 0 0 1px rgba(255,255,255,.45),var(--glass-shadow);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);border-radius:var(--r);overflow:hidden;display:flex;flex-direction:column;transition:transform var(--t) var(--ease),background var(--t) var(--ease),box-shadow var(--t) var(--ease);text-align:left}
a.card:hover,button.card:hover{transform:translateY(-4px);background:var(--glass-hi);box-shadow:inset 0 0 0 1px rgba(255,255,255,.6),0 14px 36px rgba(20,45,65,.1)}
.card .in{padding:16px 18px 18px;display:flex;flex-direction:column;gap:6px;flex:1}
.card h3{font-size:17px;font-weight:600}
.muted{color:var(--g3);font-size:13px}
.muted .ic{width:16px;height:16px;margin-right:4px;margin-top:-2px;color:var(--blue-700)}
.stars{color:var(--blue-700);letter-spacing:1px;font-size:13px}
.ph{aspect-ratio:16/10;width:100%;display:block;background:var(--blue-50);object-fit:cover}
.gallery{display:flex;gap:8px;overflow-x:auto;margin-top:8px;padding-bottom:2px}
.gvideo{width:100%;max-height:360px;border-radius:var(--r);margin-top:10px;background:#000;display:block}
.gallery .gimg{width:110px;height:74px;flex:none;object-fit:cover;border-radius:10px;background:var(--blue-50);cursor:pointer;border:2px solid transparent;transition:opacity var(--t) var(--ease)}
.gallery .gimg:hover{opacity:.85}
.gallery .gimg.on{border-color:var(--blue-700)}
/* ===== home ===== */
.bleed{width:100vw;margin-left:calc(50% - 50vw)}
.hero2{position:relative;min-height:min(94vh,880px);display:flex;flex-direction:column;justify-content:flex-end;color:var(--off);background:var(--blue-900);overflow:hidden;isolation:isolate}
.hero2 .art,.hero2 .herobg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:-2}
.hero2 .herobg{z-index:-1}
.hero2:after{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(90deg,rgba(22,50,74,.82) 0%,rgba(22,50,74,.38) 48%,rgba(22,50,74,.04) 100%),linear-gradient(0deg,rgba(22,50,74,.55) 0%,rgba(22,50,74,0) 40%)}
.hero2>.wrap,.band>.wrap{width:100%}
@media(max-width:859px){.hero2{min-height:calc(100svh - 72px)}}
.hero2 .in{padding:140px clamp(18px,4vw,56px) 56px}
.hero2 h1{font-family:var(--display);font-weight:600;text-transform:uppercase;letter-spacing:-.045em;line-height:.9;font-size:clamp(44px,9.2vw,150px);color:var(--off);max-width:11em}
.hero2 .zh{font-size:clamp(26px,3.4vw,44px);font-weight:500;letter-spacing:.14em;margin-top:28px;color:var(--off)}
.hero2 .sub{font-size:12px;letter-spacing:.28em;text-transform:uppercase;margin-top:12px;color:var(--blue-200)}
.hero2 .cta{margin-top:32px}
.cta-btn{display:inline-flex;align-items:center;gap:10px;background:var(--yellow);color:var(--ink);font-size:12px;letter-spacing:.16em;text-transform:uppercase;font-weight:600;padding:15px 24px;border-radius:999px;transition:transform var(--t) var(--ease),background var(--t) var(--ease)}
.cta-btn:hover{background:#e3e96c}.cta-btn:hover .ic{transform:translateX(4px)}
.strip{border-top:1px solid rgba(255,255,255,.28);background:rgba(22,50,74,.28);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px)}
.strip .wrap{display:flex;gap:10px 26px;flex-wrap:wrap;padding-top:16px;padding-bottom:16px;font-size:11.5px;letter-spacing:.2em;text-transform:uppercase;color:var(--blue-200)}
.strip b{color:var(--off);font-weight:600}
.weekhead{display:flex;justify-content:space-between;align-items:end;gap:12px;margin:72px 0 24px}
.weekhead h2{font-size:clamp(30px,4vw,48px);margin-top:6px}
.weekhead a{font-size:12px;letter-spacing:.1em;text-transform:uppercase;color:var(--blue-700);display:inline-flex;gap:6px;align-items:center}
.weekhead a:hover .ic{transform:translateX(4px)}
.evgrid{display:grid;gap:20px;grid-template-columns:repeat(auto-fill,minmax(300px,1fr))}
.ev{position:relative;padding:22px 24px 20px;border-radius:var(--r);background:var(--glass-lo);border:1px solid rgba(54,94,125,.14);box-shadow:inset 0 0 0 1px rgba(255,255,255,.45),var(--glass-shadow);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);display:flex;flex-direction:column;gap:16px;min-height:230px;transition:transform var(--t) var(--ease),background var(--t) var(--ease)}
.ev:hover{transform:translateY(-4px);background:var(--glass-hi)}
.ev .top-row{display:flex;justify-content:space-between;align-items:baseline;gap:12px}
.ev .day{font-size:12px;letter-spacing:.2em;text-transform:uppercase;color:var(--blue-700);font-weight:600}
.ev .day small{letter-spacing:.06em;color:var(--g3);font-weight:400;margin-left:6px}
.ev .time{font-size:22px;font-weight:500;color:var(--blue-900);font-variant-numeric:tabular-nums}
.ev .lvl{font-size:clamp(22px,2.4vw,30px);font-weight:600;letter-spacing:-.01em;color:var(--blue-900);line-height:1.1;margin-top:auto}
.ev .meta{display:flex;flex-direction:column;gap:4px;font-size:13px;color:var(--g3)}
.ev .meta span{display:flex;align-items:center;gap:8px}
.ev .meta .ic{width:18px;height:18px;color:var(--blue-700)}
.ev .go{position:absolute;right:20px;bottom:18px;width:34px;height:34px;border-radius:10px;border:1px solid rgba(54,94,125,.28);display:grid;place-items:center;color:var(--blue-700);transition:transform var(--t) var(--ease),background var(--t) var(--ease)}
.ev:hover .go{transform:translateX(4px);background:var(--yellow);border-color:var(--yellow);color:var(--ink)}
.ev .spots{font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--g3)}
.evempty{padding:44px 24px;border:1px dashed rgba(54,94,125,.3);border-radius:var(--r);text-align:center;color:var(--g3);display:flex;flex-direction:column;align-items:center;gap:14px}
.explore{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));border-top:1px solid var(--blue-200);margin-top:72px}
.explore a{display:flex;align-items:center;gap:14px;padding:24px 8px;border-bottom:1px solid var(--blue-200);color:var(--blue-900);transition:padding var(--t) var(--ease),background var(--t) var(--ease)}
.explore a:hover{padding-left:16px;background:rgba(255,255,255,.45)}
.explore a .t{font-size:17px;font-weight:500}.explore a .arr{margin-left:auto;color:var(--blue-700)}
.explore a:hover .arr{transform:translateX(4px)}
.explore .qimg{width:28px;height:28px}
.phil{display:grid;grid-template-columns:1fr;gap:0;margin-top:96px;align-items:stretch}
@media(min-width:900px){.phil{grid-template-columns:1.05fr .95fr}}
.phil .txt{padding:clamp(8px,4vw,56px) clamp(0px,3vw,48px) clamp(8px,4vw,56px) 0;display:flex;flex-direction:column;justify-content:center}
.phil h2{font-size:clamp(22px,2.6vw,38px);font-weight:500;line-height:1.5;letter-spacing:.01em;margin-top:18px}
.phil .rule{width:48px;height:1px;background:var(--blue-700);margin:26px 0}
.phil p.zh2{font-size:clamp(18px,1.8vw,22px);color:var(--blue-700);line-height:1.8}
.phil .en{font-size:10.5px;letter-spacing:.2em;text-transform:uppercase;color:var(--g3);margin-top:26px;line-height:2}
.phil .img{min-height:360px;position:relative;overflow:hidden;border-radius:var(--r)}
.phil .img>*{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.pmg{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:0;margin-top:96px;border-top:1px solid var(--blue-200)}
.pmg a{padding:44px 24px;text-align:center;display:flex;flex-direction:column;align-items:center;gap:12px;border-right:1px solid var(--blue-200);transition:background var(--t) var(--ease)}
.pmg a:last-child{border-right:0}
.pmg a:hover{background:rgba(255,255,255,.5)}
.pmg .ring{width:84px;height:84px;border-radius:50%;border:1.5px solid var(--blue-700);display:grid;place-items:center;color:var(--blue-700);transition:background var(--t) var(--ease),border-color var(--t) var(--ease),color var(--t) var(--ease)}
.pmg a:hover .ring{background:var(--yellow);border-color:var(--yellow);color:var(--ink)}
.pmg .ring .ic{width:34px;height:34px}
.pmg h3{font-family:var(--display);font-size:15px;letter-spacing:.2em;text-transform:uppercase;font-weight:700}
.pmg h3 small{display:block;font-family:var(--font);letter-spacing:.06em;text-transform:none;font-size:16px;font-weight:500;margin-top:4px}
.pmg p{color:var(--g3);font-size:13.5px;line-height:1.9}
.guides{border-top:1px solid var(--blue-200)}
.guides a{display:grid;grid-template-columns:44px 1fr auto;gap:16px;align-items:center;padding:22px 6px;border-bottom:1px solid var(--blue-200);transition:padding var(--t) var(--ease),background var(--t) var(--ease)}
.guides a:hover{padding-left:16px;background:rgba(255,255,255,.5)}
.guides .n{font-size:12px;letter-spacing:.2em;color:var(--g3);font-variant-numeric:tabular-nums}
.guides .t{font-size:clamp(18px,2vw,24px);font-weight:500;color:var(--blue-900)}
.guides .s{color:var(--g3);font-size:13px;margin-top:2px}
.guides .arr{color:var(--blue-700)}.guides a:hover .arr{transform:translateX(4px)}
.band{position:relative;min-height:340px;display:flex;align-items:center;color:var(--off);overflow:hidden;isolation:isolate;background:var(--blue-900);margin-top:96px}
.band>.art,.band>.bgimg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:-2}
.band>.bgimg{z-index:-1}
.band:after{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(90deg,rgba(22,50,74,.8),rgba(22,50,74,.1))}
.band h2{color:var(--off);font-size:clamp(26px,3.4vw,44px);font-weight:500;line-height:1.4;margin:14px 0 22px}
.band .eyebrow{color:var(--blue-200)}
.band a.lk{display:inline-flex;gap:8px;align-items:center;font-size:13px;letter-spacing:.06em;border-bottom:1px solid rgba(255,255,255,.5);padding-bottom:3px}
.band a.lk:hover .ic{transform:translateX(4px)}
.moments{display:grid;grid-template-columns:repeat(5,1fr);gap:10px}
@media(max-width:700px){.moments{grid-template-columns:repeat(2,1fr)}.moments a:nth-child(5){grid-column:span 2}}
.moments a{aspect-ratio:1;position:relative;overflow:hidden;border-radius:10px;background:var(--blue-200)}
.moments a>*{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform var(--t) var(--ease)}
.moments a:hover>*{transform:scale(1.02)}
.joinband{position:relative;border-radius:var(--r);overflow:hidden;padding:clamp(28px,5vw,56px);color:var(--off);background:var(--blue-700);isolation:isolate;display:flex;justify-content:space-between;align-items:center;gap:20px;flex-wrap:wrap;margin-top:56px}
.joinband>.art{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:-2}
.joinband:after{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(90deg,rgba(22,50,74,.66),rgba(22,50,74,.2))}
.joinband h2{color:var(--off);font-size:clamp(22px,3vw,34px);font-weight:500;margin:8px 0 6px}
.joinband p{color:var(--blue-200);font-size:14px}
/* footer */
.foot{background:var(--blue-900);color:var(--blue-200);padding:56px 0 40px;margin-top:0}
.foot .wrap{display:flex;flex-direction:column;gap:28px}
.foot .big{font-family:var(--display);font-weight:600;text-transform:uppercase;letter-spacing:-.04em;font-size:clamp(34px,6vw,76px);line-height:.95;color:var(--off)}
.foot .row2{display:flex;justify-content:space-between;gap:20px;flex-wrap:wrap;align-items:center}
.foot nav{display:flex;gap:26px;flex-wrap:wrap}
.foot nav a{font-size:12px;letter-spacing:.14em;text-transform:uppercase;display:inline-flex;gap:8px;align-items:center;transition:color var(--t) var(--ease)}
.foot nav a:hover{color:var(--yellow)}
.foot .small{font-size:11px;letter-spacing:.06em;color:var(--blue-500);border-top:1px solid rgba(255,255,255,.14);padding-top:18px}
@media(max-width:859px){.foot{padding-bottom:110px}}
/* detail */
.back{display:inline-flex;align-items:center;gap:6px;font-weight:500;font-size:13px;letter-spacing:.06em;color:var(--blue-700);margin-bottom:18px}
.back:hover{color:var(--blue-900)}
.detail{display:grid;gap:32px}
@media(min-width:860px){.detail{grid-template-columns:1.1fr 1fr}}
.field{border-top:1px solid var(--blue-200);padding:16px 0}
.field h4{font-size:11px;font-weight:600;color:var(--blue-700);letter-spacing:.18em;text-transform:uppercase;margin-bottom:6px}
.field p,.field a{font-size:15px}
.field a.lnk,a.lnk{color:var(--blue-700);font-weight:500;text-decoration:underline;text-underline-offset:3px;word-break:break-all}
.map{width:100%;aspect-ratio:16/10;border:0;border-radius:var(--r);background:var(--blue-50)}
.review{background:var(--blue-900);color:var(--off);border-radius:var(--r);padding:16px 18px;margin:14px 0}
.review h4{color:var(--yellow);font-size:11px;margin-bottom:6px;letter-spacing:.18em;text-transform:uppercase;font-weight:600;display:flex;align-items:center;gap:8px}
/* segmented */
.seg{display:flex;gap:28px;border-bottom:1px solid var(--blue-200);margin-bottom:26px}
.seg a{padding:10px 0;font-weight:500;font-size:14px;color:var(--g3);border-bottom:1.5px solid transparent;margin-bottom:-1px;transition:color var(--t) var(--ease),border-color var(--t) var(--ease)}
.seg a:hover{color:var(--blue-900)}
.seg a.on{color:var(--blue-900);border-bottom-color:var(--yellow)}
/* forms */
label{display:block;font-weight:500;font-size:12px;letter-spacing:.04em;margin:14px 0 6px;color:var(--blue-900)}
input,select,textarea{width:100%;padding:11px 14px;border:1px solid rgba(54,94,125,.3);border-radius:10px;background:rgba(255,255,255,.7);outline:0;transition:border-color var(--t) var(--ease),background var(--t) var(--ease)}
input:focus,select:focus,textarea:focus{border-color:var(--blue-700);background:#fff}
.row{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.pills{display:flex;flex-wrap:wrap;gap:8px}
.pills label{margin:0;font-weight:500}
.pills input{display:none}
.pills span{display:inline-block;padding:7px 14px;border-radius:8px;border:1px solid rgba(54,94,125,.3);font-size:13px;cursor:pointer;background:rgba(255,255,255,.5);transition:background var(--t) var(--ease),color var(--t) var(--ease)}
.pills input:checked+span{background:var(--blue-900);border-color:var(--blue-900);color:var(--off)}
/* modal */
.mask{position:fixed;inset:0;background:rgba(22,50,74,.5);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);z-index:60;display:flex;align-items:flex-end;justify-content:center;animation:fadein 240ms var(--ease)}
@media(min-width:860px){.mask{align-items:center}}
.modal{background:rgba(247,247,243,.96);width:100%;max-width:480px;max-height:92vh;overflow:auto;border-radius:16px 16px 0 0;padding:24px 22px 28px;box-shadow:0 24px 60px rgba(20,45,65,.2);animation:rise 280ms var(--ease)}
@media(min-width:860px){.modal{border-radius:16px}}
@keyframes fadein{from{opacity:0}to{opacity:1}}
@keyframes rise{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}
.modal h3{font-size:22px;margin-bottom:4px;display:flex;align-items:center;gap:10px}
.modal .acts{display:flex;gap:10px;margin-top:20px}.modal .acts .btn{flex:1}
.toast{position:fixed;left:50%;bottom:100px;transform:translateX(-50%);background:var(--blue-900);color:var(--off);padding:11px 20px;border-radius:10px;font-weight:500;font-size:14px;z-index:70;box-shadow:0 8px 24px rgba(20,45,65,.25);animation:rise 260ms var(--ease)}
/* lists */
.item{border:1px solid rgba(54,94,125,.14);border-radius:var(--r);padding:16px 18px;display:flex;flex-direction:column;gap:8px;background:var(--glass-lo);box-shadow:inset 0 0 0 1px rgba(255,255,255,.45),var(--glass-shadow);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px)}
.item.full{border-color:var(--blue-700)}
.bar{height:4px;background:var(--blue-200);border-radius:4px;overflow:hidden}.bar i{display:block;height:100%;background:var(--blue-700)}
.item.full .bar i{background:var(--yellow)}
.reveal{background:var(--blue-50);border:1px solid var(--blue-200);border-left:3px solid var(--yellow);border-radius:10px;padding:10px 14px;font-weight:500;font-size:14px}
.lock{background:var(--blue-50);border-radius:10px;padding:10px 14px;font-size:13px;color:var(--g3);display:flex;align-items:center;gap:8px}
.lock .ic{width:18px;height:18px}
.list{display:flex;flex-direction:column;gap:14px}
.ad{border:1px dashed var(--blue-500)}
.avatar{width:38px;height:38px;border-radius:50%;background:var(--blue-900);color:var(--off);display:grid;place-items:center;font-weight:600;flex:none}
.pr{display:flex;gap:12px;align-items:center}
.meCard{background:var(--blue-900);color:var(--off);border-radius:var(--r);padding:24px;display:flex;gap:18px;align-items:center;margin-bottom:18px}
.meCard h2{color:var(--off)}
.meCard .avatar{width:64px;height:64px;font-size:26px;background:var(--off);color:var(--blue-900)}
.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-bottom:18px}
.stats div{background:var(--blue-50);border-radius:12px;padding:12px 4px;text-align:center}.stats b{display:block;font-size:24px;font-weight:500;color:var(--blue-900)}.stats small{font-size:11px;color:var(--g3);letter-spacing:.08em}
.badge{display:flex;gap:14px;align-items:center;padding:14px;border-radius:var(--r);border:1px solid var(--blue-200);background:rgba(255,255,255,.4)}
.badge.got{background:rgba(216,223,85,.26);border-color:var(--yellow)}
.badge .em{color:var(--blue-500);opacity:.55}.badge.got .em{color:var(--blue-900);opacity:1}
.badge .em .ic{width:30px;height:30px}
.itin{display:flex;flex-direction:column;gap:0;margin:6px 0}
.itin div{display:flex;gap:14px;padding:12px 0;border-bottom:1px solid var(--blue-200)}
.itin b{background:var(--blue-900);color:var(--off);border-radius:6px;padding:2px 10px;height:fit-content;font-size:11px;letter-spacing:.12em;white-space:nowrap;font-weight:500}
ul.dot{padding-left:18px}ul.dot li{margin:4px 0}
.price{font-size:34px;font-weight:500;color:var(--blue-900);font-variant-numeric:tabular-nums}.price small{font-size:14px;color:var(--g3)}
.empty{text-align:center;padding:40px 10px;color:var(--g3)}
.note{font-size:12px;color:var(--g3);margin-top:40px;border-top:1px solid var(--blue-200);padding-top:12px}
.pagehead h1{font-size:clamp(32px,5vw,56px);font-weight:500;letter-spacing:-.025em}
.pagehead{margin-bottom:22px}
@media(prefers-reduced-motion:reduce){*{transition-duration:1ms!important;animation-duration:1ms!important}}
/* 管理员模式：前台页面上多出来的管理按钮 */
.admin-badge{font-size:10.5px;letter-spacing:.18em;text-transform:uppercase;font-weight:600;background:var(--yellow);color:var(--ink);padding:3px 9px;border-radius:6px}
.admbtn{font-size:11px;letter-spacing:.1em;text-transform:uppercase;font-weight:500;padding:5px 11px;border:1px dashed var(--blue-700);border-radius:6px;color:var(--blue-900);background:rgba(216,223,85,.2);display:inline-flex;align-items:center;gap:6px;transition:background var(--t) var(--ease)}
.admbtn:hover{background:var(--yellow)}
.admrow{display:flex;gap:8px;flex-wrap:wrap;align-items:center;border-top:1px dashed rgba(54,94,125,.25);padding-top:10px;margin-top:2px}
.admrow:before{content:"ADMIN";font-size:10px;letter-spacing:.18em;color:var(--g3);margin-right:2px}
.top .who{gap:12px}
