:root{color-scheme:dark;box-sizing:border-box;padding-top:env(safe-area-inset-top,0px);padding-bottom:env(safe-area-inset-bottom,0px);
--bg:#050810;--tx:#e8f1ff;--mu:#8da2c0;--ac:#38e8ff;--ac2:#8b7bff;--bl:24px;--gl:rgba(255,255,255,.07);--bd:rgba(255,255,255,.16);--ok:#3dffa8;--bad:#ff5c7a}
*{box-sizing:border-box}
html{scroll-padding-top:env(safe-area-inset-top,0px)}
html{background:var(--bg)}body{margin:0;color:var(--tx);font-family:-apple-system,"SF Pro Text","Noto Sans TC","PingFang TC","Microsoft JhengHei",sans-serif;min-height:100vh;overflow-x:hidden}
.orb{position:fixed;border-radius:50%;filter:blur(90px);z-index:0;pointer-events:none;opacity:.5;transition:background .4s}
.o1{width:380px;height:380px;background:var(--ac);top:-120px;left:-100px}
.o2{width:340px;height:340px;background:var(--ac2);bottom:-100px;right:-80px}
.glass{position:relative;background:linear-gradient(135deg,rgba(255,255,255,.2),rgba(255,255,255,.05) 40%,rgba(255,255,255,.1));border:1px solid rgba(255,255,255,.2);border-radius:28px;-webkit-backdrop-filter:blur(var(--bl)) saturate(210%) brightness(1.1);backdrop-filter:blur(var(--bl)) saturate(210%) brightness(1.1);box-shadow:0 12px 40px rgba(0,0,0,.38),inset 0 1.5px 0 rgba(255,255,255,.6),inset 0 -1.5px 0 rgba(255,255,255,.14),inset 1.5px 0 0 rgba(255,255,255,.28),inset -1px 0 0 rgba(255,255,255,.1),inset 0 0 36px rgba(255,255,255,.07)}
.glass::before{content:"";position:absolute;inset:0;border-radius:inherit;pointer-events:none;background:radial-gradient(120% 55% at 18% -8%,rgba(255,255,255,.3),transparent 55%),radial-gradient(70% 45% at 100% 115%,color-mix(in srgb,var(--ac) 26%,transparent),transparent 65%);opacity:.9}
.glass>*{position:relative;z-index:1}
nav{position:sticky;top:env(safe-area-inset-top,0px);z-index:5;margin:12px;padding:8px 14px;display:flex;align-items:center;justify-content:space-between;gap:8px}
nav b{display:flex;align-items:center;gap:10px;letter-spacing:.06em;font-size:15px}
.lg{border-radius:50%;object-fit:cover;display:block}
nav .lg{width:34px;height:34px}
nav div{display:flex;gap:4px;align-items:center;flex-wrap:wrap}
nav a,.btn{cursor:pointer;color:var(--tx);text-decoration:none;font-size:14px;padding:8px 14px;border-radius:12px;border:1px solid transparent;background:none;font-family:inherit}
nav a:hover,nav a.on{background:rgba(255,255,255,.1);border-color:var(--bd)}
.btn{border-color:var(--bd);background:rgba(255,255,255,.08);display:inline-block}
.btn.p{background:linear-gradient(135deg,var(--ac),var(--ac2));color:#021018;font-weight:700;border:0}
.btn.s{padding:6px 12px;font-size:13px}
.btn.on{border-color:var(--ac);background:rgba(255,255,255,.16)}
main{position:relative;z-index:1;max-width:980px;margin:0 auto;padding:12px 14px 40px}
.pg{display:none}.pg.on{display:block}
.hero{padding:40px 24px;text-align:center;margin-top:16px}
.logo{width:170px;height:170px;margin:0 auto 20px;border:2px solid var(--ac);box-shadow:0 0 0 8px rgba(255,255,255,.07),0 0 50px color-mix(in srgb,var(--ac) 55%,transparent)}
.tag{font-family:ui-monospace,Menlo,monospace;color:var(--ac);font-size:12px;letter-spacing:.2em}
h1{font-size:clamp(28px,7vw,48px);margin:12px 0;line-height:1.2;background:linear-gradient(120deg,#fff,var(--ac) 60%,var(--ac2));-webkit-background-clip:text;background-clip:text;color:transparent}
p.sub{color:var(--mu);max-width:520px;margin:0 auto 24px;line-height:1.7}
.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:14px;margin-top:16px}
.card{padding:20px}
.card h3{margin:0 0 6px;font-size:17px}
.card p{margin:0;color:var(--mu);font-size:14px;line-height:1.6}
.ico{font-size:26px;margin-bottom:8px}
.login{max-width:380px;margin:50px auto;padding:30px 26px}
label{display:block;font-size:13px;color:var(--mu);margin:14px 0 6px}
input,select{width:100%;padding:12px 14px;border-radius:12px;border:1px solid var(--bd);background:rgba(0,0,0,.3);color:var(--tx);font-size:15px;font-family:inherit;outline:none}
input:focus,select:focus{border-color:var(--ac);box-shadow:0 0 0 3px rgba(255,255,255,.12)}
.msg{min-height:20px;font-size:13px;color:var(--bad);margin-top:10px;line-height:1.6}
.msg.ok{color:var(--ok)}
.tbl{overflow-x:auto;padding:6px 10px}
table{width:100%;border-collapse:collapse;font-size:14px;min-width:460px}
th{color:var(--mu);font-weight:500;text-align:left}
th,td{padding:11px 8px;border-bottom:1px solid rgba(255,255,255,.08)}
tr:last-child td{border-bottom:0}
.st{font-size:12px;padding:3px 10px;border-radius:99px;border:1px solid}
.st.in{color:var(--ok);border-color:var(--ok)}.st.out{color:var(--bad);border-color:var(--bad)}
.row{display:flex;gap:8px;flex-wrap:wrap;align-items:end}
.row>*{flex:1;min-width:120px}.row .btn{flex:0 0 auto}
.crumb{color:var(--mu);font-size:13px;margin:0 0 4px;line-height:1.8}
.crumb a{color:var(--ac);text-decoration:none}
h2.t{margin:0 0 14px;font-size:24px}
.soon{opacity:.55}
.sw{display:flex;gap:8px;flex-wrap:wrap}
.gap{margin-top:14px}
.works a{color:var(--ac)}
.y{font-family:ui-monospace,Menlo,monospace;color:var(--ac);font-size:13px}
nav{flex-wrap:wrap}
.bn{line-height:1.25}.bn small{display:block;font-size:9px;letter-spacing:.14em;color:var(--mu);font-weight:500;margin-top:2px}
.hb{display:flex;gap:14px;justify-content:center;flex-wrap:wrap}
.hb .btn{padding:16px 38px;font-size:17px;border-radius:16px;min-width:170px;text-align:center}
.avw{position:relative;margin-left:6px}
.av{width:36px;height:36px;border-radius:50%;border:2px solid var(--ac);background:linear-gradient(135deg,var(--ac),var(--ac2));color:#021018;font-weight:700;font-size:15px;cursor:pointer;padding:0;font-family:inherit}
.menu{display:none;position:absolute;right:0;top:46px;min-width:190px;padding:8px;flex-direction:column;gap:2px;z-index:9;background:rgba(14,20,36,.88);border-radius:16px}
.menu.open{display:flex}
.menu a,.menu .btn{display:block;text-align:left;width:100%}
.menu .btn{border:0;background:none}
.mh{padding:8px 14px 10px;font-size:12px;color:var(--mu);border-bottom:1px solid var(--bd);margin-bottom:4px;line-height:1.5}
.mn{display:block;color:var(--tx);font-size:14px}
.auth{display:grid;grid-template-columns:1.05fr 1fr;max-width:900px;margin:36px auto;overflow:hidden}
.ab{padding:44px 36px;background:linear-gradient(160deg,rgba(255,255,255,.1),rgba(255,255,255,.02));border-right:1px solid var(--bd);display:flex;flex-direction:column;justify-content:center}
.ab .lg{width:96px;height:96px;margin-bottom:22px;border:2px solid var(--ac)}
.ab h2{margin:0;font-size:24px;line-height:1.3}
.ab small{color:var(--mu);letter-spacing:.14em;font-size:11px;margin-top:6px;display:block}
.ab ul{list-style:none;padding:0;margin:26px 0 0;display:grid;gap:12px;color:var(--mu);font-size:14px}
.ab li::before{content:"✓";color:var(--ac);margin-right:10px}
.af{padding:44px 36px}
.af h3{margin:0 0 4px;font-size:26px}
.af p.d{color:var(--mu);font-size:14px;margin:0 0 6px}
.pw{position:relative}.pw input{padding-right:64px}
.pw button{position:absolute;right:6px;top:50%;transform:translateY(-50%);background:none;border:0;color:var(--ac);cursor:pointer;font-size:13px;padding:8px;font-family:inherit}
.btn.big{display:block;width:100%;text-align:center;padding:14px;font-size:16px;margin-top:18px;border-radius:14px}
.or{display:flex;align-items:center;gap:12px;color:var(--mu);font-size:12px;margin:20px 0 14px}
.or::before,.or::after{content:"";flex:1;height:1px;background:var(--bd)}
details{color:var(--mu);font-size:12px;margin-top:16px;line-height:1.7;cursor:pointer}
textarea{width:100%;min-height:90px;padding:12px 14px;border-radius:12px;border:1px solid var(--bd);background:rgba(0,0,0,.3);color:var(--tx);font-size:15px;font-family:inherit;outline:none;resize:vertical}
textarea:focus{border-color:var(--ac)}
.st.wt{color:var(--ac);border-color:var(--ac)}
@media(max-width:720px){.auth{grid-template-columns:1fr;margin:16px auto}.ab{border-right:0;border-bottom:1px solid var(--bd);padding:26px 24px}.af{padding:26px 24px}.ab ul{display:none}}
nav{border-radius:32px;padding:8px 14px 8px 10px}
nav a{border-radius:99px}
nav a.brand{display:flex;align-items:center;gap:10px;padding:0 4px!important;border:0!important;background:none!important}
.hm{display:none;width:40px;height:40px;border-radius:50%;border:1px solid rgba(255,255,255,.28);background:linear-gradient(180deg,rgba(255,255,255,.22),rgba(255,255,255,.06));box-shadow:inset 0 1px 0 rgba(255,255,255,.5);color:var(--tx);font-size:19px;cursor:pointer;align-items:center;justify-content:center;padding:0}
.nl{gap:10px!important;flex-wrap:nowrap!important}
.btn{border-radius:99px;background:linear-gradient(180deg,rgba(255,255,255,.2),rgba(255,255,255,.06));border:1px solid rgba(255,255,255,.26);box-shadow:inset 0 1px 0 rgba(255,255,255,.5),inset 0 -1px 0 rgba(255,255,255,.08),0 4px 14px rgba(0,0,0,.25);transition:transform .35s cubic-bezier(.34,1.56,.64,1),filter .2s}
.btn:hover{filter:brightness(1.15)}
.btn:active{transform:scale(.95)}
.btn.p{box-shadow:inset 0 1px 0 rgba(255,255,255,.7),0 6px 22px color-mix(in srgb,var(--ac) 45%,transparent)}
input,select,textarea{background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.2);box-shadow:inset 0 2px 8px rgba(0,0,0,.25),inset 0 1px 0 rgba(255,255,255,.12);border-radius:14px}
a.card{transition:transform .45s cubic-bezier(.34,1.56,.64,1)}
a.card:hover{transform:translateY(-4px)}
tr:hover td{background:rgba(255,255,255,.04)}
.tabs{display:flex;gap:6px;flex-wrap:wrap;margin:6px 0 16px}
.sg{grid-template-columns:repeat(auto-fit,minmax(120px,1fr))}
.stat{padding:14px 18px}.stat p{font-size:12px}.stat h3{font-size:28px;margin:4px 0 0}
.tbl input,.tbl select{padding:8px 10px;font-size:14px;min-width:110px}
.scrim{position:fixed;inset:0;background:rgba(0,0,0,.45);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);opacity:0;pointer-events:none;transition:opacity .3s;z-index:20}
.scrim.open{opacity:1;pointer-events:auto}
.drawer{position:fixed;top:0;left:0;bottom:0;width:min(300px,84vw);z-index:21;border-radius:0 30px 30px 0;padding:calc(env(safe-area-inset-top,0px) + 18px) 14px 24px;transform:translateX(-106%);transition:transform .45s cubic-bezier(.32,1.15,.4,1);overflow-y:auto}
.drawer.open{transform:none}
.dh{display:flex;gap:12px;align-items:center;padding:6px 8px 14px;border-bottom:1px solid var(--bd);margin-bottom:6px}
.dg{font-size:11px;letter-spacing:.14em;color:var(--mu);padding:16px 12px 6px}
.di{display:flex;align-items:center;gap:12px;padding:11px 12px;border-radius:16px;color:var(--tx);text-decoration:none;font-size:15px}
.di:hover,.di.on{background:rgba(255,255,255,.14);box-shadow:inset 0 1px 0 rgba(255,255,255,.3)}
.di.on{color:var(--ac)}
.menu{position:fixed;right:12px;left:auto;top:calc(env(safe-area-inset-top,0px) + 70px);min-width:200px;max-width:calc(100vw - 24px);background:linear-gradient(135deg,rgba(255,255,255,.24),rgba(255,255,255,.07) 45%,rgba(255,255,255,.14)),rgba(16,28,56,.32);text-shadow:0 1px 6px rgba(0,0,0,.35);z-index:22}
.o3{width:300px;height:300px;background:#ff6bd6;top:45%;left:55%;opacity:.28}
@keyframes drift{0%,100%{transform:translate(0,0)}50%{transform:translate(40px,30px)}}
.orb{animation:drift 18s ease-in-out infinite}.o2{animation-duration:23s;animation-direction:reverse}
@media (prefers-reduced-motion:reduce){.orb{animation:none}.drawer,.btn{transition:none}}
nav.in{flex-wrap:nowrap}.nl{min-width:0}.bn{white-space:nowrap}
.menu a,.menu button{display:block;width:100%;text-align:left;padding:11px 14px;border-radius:14px;border:0;background:none;box-shadow:none;color:var(--tx);font-size:15px;font-family:inherit;cursor:pointer;text-decoration:none}
.menu a:hover,.menu button:hover{background:rgba(255,255,255,.14);filter:none}
@media(max-width:480px){.bn{font-size:12px}.bn small{font-size:7px;letter-spacing:.04em}nav .lg{width:30px;height:30px}nav{padding:8px 10px 8px 8px}}
nav{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;overflow:hidden}
nav .nl{justify-content:flex-start}
#links{justify-content:flex-end}
nav a.brand{justify-self:center;transition:transform .4s cubic-bezier(.34,1.56,.64,1)}
nav a.brand:active{transform:scale(.95)}
.bn{text-align:left}
.shine{position:absolute!important;inset:0;z-index:0!important;border-radius:inherit;overflow:hidden;pointer-events:none}
.shine::after{content:"";position:absolute;top:-10%;bottom:-10%;width:38%;left:-60%;background:linear-gradient(100deg,transparent,rgba(255,255,255,.32),transparent);transform:skewX(-18deg);animation:sweep 7s ease-in-out infinite}
@keyframes sweep{0%,60%{left:-60%}100%{left:130%}}
nav .lg{animation:glow 4s ease-in-out infinite}
@keyframes glow{0%,100%{box-shadow:0 0 0 2px rgba(255,255,255,.22),0 0 10px color-mix(in srgb,var(--ac) 40%,transparent)}50%{box-shadow:0 0 0 3px rgba(255,255,255,.4),0 0 24px color-mix(in srgb,var(--ac) 85%,transparent)}}
.glass::after{content:"";position:absolute;inset:0;border-radius:inherit;pointer-events:none;background:radial-gradient(200px circle at var(--mx,50%) var(--my,50%),rgba(255,255,255,.2),transparent 65%);opacity:0;transition:opacity .35s}
.glass:hover::after{opacity:1}
@media(max-width:700px){nav:not(.in){grid-template-columns:1fr;justify-items:center;row-gap:6px}nav:not(.in) .nl{display:none}nav:not(.in) #links{justify-content:center}}
@media(prefers-reduced-motion:reduce){.shine::after,nav .lg{animation:none}}
.pw button{opacity:0;pointer-events:none;transition:opacity .2s;display:flex;align-items:center;padding:6px;border-radius:50%;box-shadow:none}
.pw.on button{opacity:1;pointer-events:auto}
.pw input{padding-right:46px}
main{padding-bottom:96px}
.fab{position:fixed;right:16px;bottom:calc(env(safe-area-inset-bottom,0px) + 16px);width:56px;height:56px;border-radius:50%;z-index:18;display:none;align-items:center;justify-content:center;font-size:24px;color:var(--tx);cursor:pointer;padding:0;transition:transform .4s cubic-bezier(.34,1.56,.64,1)}
.fab:hover{transform:scale(1.08)}.fab:active{transform:scale(.92)}
.fab b{position:absolute;top:-4px;right:-4px;min-width:20px;height:20px;padding:0 5px;border-radius:99px;background:var(--bad);color:#fff;font-size:12px;line-height:20px;text-align:center;display:none}
.cw{position:fixed;right:12px;bottom:calc(env(safe-area-inset-bottom,0px) + 84px);width:min(370px,calc(100vw - 24px));height:min(70vh,520px);z-index:19;display:none;flex-direction:column;padding:0;overflow:hidden}
.cw.open{display:flex}
.ch{display:flex;align-items:center;gap:8px;padding:14px 16px;border-bottom:1px solid var(--bd);font-size:15px}
.ch b{flex:1}
.ch button{background:none;border:0;color:var(--tx);font-size:18px;cursor:pointer;padding:4px 8px;font-family:inherit}
.cb{flex:1;overflow-y:auto;padding:10px 14px}
.cf{display:flex;gap:8px;padding:10px;border-top:1px solid var(--bd)}
.cf input{flex:1;min-width:0;border-radius:99px}
.mb{width:fit-content;max-width:82%;padding:8px 13px;border-radius:18px;margin:6px 0;line-height:1.5;font-size:14px;word-break:break-word;white-space:pre-wrap;background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.18)}
.mb.me{margin-left:auto;background:linear-gradient(135deg,var(--ac),var(--ac2));color:#021018;border:0}
.mb small{display:block;font-size:11px;color:var(--mu);white-space:normal}
.mb.me small{color:rgba(2,16,24,.65)}
.cs{text-align:center;color:var(--mu);font-size:12px;margin:10px 0;line-height:1.6}
.ci{display:flex;gap:10px;align-items:center;padding:10px 6px;border-radius:14px;cursor:pointer}
.ci:hover{background:rgba(255,255,255,.1)}
.ci .av{flex:none;cursor:pointer}
.ci .tx{flex:1;min-width:0}
.ci .tx p{margin:0;font-size:12px;color:var(--mu);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.un{font-style:normal;background:var(--bad);color:#fff;font-size:12px;border-radius:99px;padding:1px 7px}

.pg.on.ctr{display:flex;align-items:center;justify-content:center;min-height:calc(100vh - 150px);min-height:calc(100svh - 150px)}
.ctr .auth{width:100%;margin:0 auto}

.hm-ed{text-align:right;margin:8px 0 0}
.hm-d{margin-top:-8px}
.hm-cta{display:flex;gap:10px;justify-content:center;flex-wrap:wrap;margin-top:6px}
.hm-b{padding:11px 20px}
.hm-h{font-size:22px;margin:34px 0 14px;text-align:center}
.hm-g{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:14px}
.hm-c{padding:22px 20px}.hm-c h3{margin:0 0 8px;font-size:17px}.hm-c p{margin:0;color:var(--mu);font-size:14px;line-height:1.7}
.hm-i{font-size:30px;margin-bottom:10px}
.hm-n{width:34px;height:34px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-weight:700;color:#021018;background:linear-gradient(135deg,var(--ac),var(--ac2));margin-bottom:12px}
.hm-l{padding:8px 20px}.hm-r{display:flex;gap:16px;padding:14px 0;border-bottom:1px solid rgba(255,255,255,.08)}.hm-r:last-child{border-bottom:0}.hm-r p{margin:4px 0 0;color:var(--mu);font-size:14px;line-height:1.7}
.hm-ct{margin-top:14px;text-align:center}
.er{padding:14px;border:1px solid var(--bd);border-radius:14px;margin-top:12px}.er .btn{margin-top:10px}
textarea{width:100%;padding:12px 14px;border-radius:12px;border:1px solid var(--bd);background:rgba(0,0,0,.3);color:var(--tx);font-size:15px;font-family:inherit;outline:none;resize:vertical}
.hm-bar{display:flex;gap:8px;flex-wrap:wrap;margin-top:14px}
