:root{--font:-apple-system, BlinkMacSystemFont, "SF Pro Text", "SF Pro Display", "Segoe UI", "PingFang TC", "Noto Sans TC", "Microsoft JhengHei", system-ui, sans-serif;--radius-lg:28px;--radius:20px;--radius-sm:14px;--ease:cubic-bezier(.2, .8, .2, 1);--accent:#0a84ff;--accent-2:#5e5ce6}[data-theme=dark]{--bg:#0b0d14;--text:#f5f5f7;--muted:#ebebf599;--glass:#ffffff12;--glass-strong:#ffffff1f;--glass-border:#ffffff24;--glass-highlight:#ffffff38;--shadow:0 20px 60px #00000073;--input:#ffffff0f;--blob-1:#0a84ff;--blob-2:#bf5af2;--blob-3:#30d5c8;--blob-opacity:.45}[data-theme=light]{--bg:#eef1f7;--text:#1d1d1f;--muted:#3c3c43a6;--glass:#ffffff8c;--glass-strong:#ffffffbf;--glass-border:#fffc;--glass-highlight:#fffffff2;--shadow:0 20px 50px #1f26871f;--input:#ffffffb3;--blob-1:#64b5ff;--blob-2:#d7a6ff;--blob-3:#8ef0e2;--blob-opacity:.7}*{box-sizing:border-box}html,body{background:var(--bg);min-height:100%;color:var(--text);font-family:var(--font);-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent;transition:background-color .4s var(--ease), color .4s var(--ease);margin:0;line-height:1.5}a{color:inherit;text-decoration:none}button,input,textarea{font:inherit;color:inherit}.muted{color:var(--muted)}.small{font-size:13px}.center{place-items:center;min-height:60vh;display:grid}.bg{z-index:-1;pointer-events:none;position:fixed;inset:0;overflow:hidden}.blob{filter:blur(80px);width:60vmax;height:60vmax;opacity:var(--blob-opacity);will-change:transform;border-radius:50%;position:absolute}.b1{background:radial-gradient(circle, var(--blob-1), transparent 65%);animation:22s ease-in-out infinite alternate drift1;top:-25vmax;left:-15vmax}.b2{background:radial-gradient(circle, var(--blob-2), transparent 65%);animation:26s ease-in-out infinite alternate drift2;top:10vmax;right:-25vmax}.b3{background:radial-gradient(circle, var(--blob-3), transparent 65%);animation:30s ease-in-out infinite alternate drift3;bottom:-30vmax;left:5vmax}.grain{opacity:.06;background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='160' height='160'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' stitchTiles='stitch'/></filter><rect width='100%' height='100%' filter='url(%23n)'/></svg>");position:absolute;inset:0}@keyframes drift1{to{transform:translate(12vmax,10vmax)scale(1.1)}}@keyframes drift2{to{transform:translate(-14vmax,8vmax)scale(.9)}}@keyframes drift3{to{transform:translate(10vmax,-12vmax)scale(1.15)}}.glass{background:var(--glass);border:1px solid var(--glass-border);box-shadow:inset 0 1px 0 var(--glass-highlight), var(--shadow);-webkit-backdrop-filter:blur(28px)saturate(180%)}.page{max-width:560px;padding:calc(env(safe-area-inset-top) + 72px) 18px calc(env(safe-area-inset-bottom) + 40px);margin:0 auto}.topbar{top:calc(env(safe-area-inset-top) + 14px);z-index:20;gap:8px;display:flex;position:fixed;right:14px}.pill{border:1px solid var(--glass-border);background:var(--glass-strong);-webkit-backdrop-filter:blur(20px)saturate(180%);cursor:pointer;min-width:38px;height:38px;transition:transform .2s var(--ease);border-radius:999px;place-items:center;padding:0 14px;font-size:14px;font-weight:600;display:inline-grid}.pill.icon{padding:0}.pill:active{transform:scale(.94)}.reveal{animation:rise .7s var(--ease) both}@keyframes rise{0%{opacity:0;transform:translateY(16px)scale(.98)}}.pass{border-radius:var(--radius-lg);padding:20px 22px 22px;position:relative;overflow:hidden}.pass:before{content:"";background:linear-gradient(135deg, var(--accent), var(--accent-2) 55%, transparent 90%);opacity:.22;pointer-events:none;height:120px;position:absolute;inset:0 0 auto}.pass.skeleton{height:300px;animation:1.4s ease-in-out infinite pulse}@keyframes pulse{50%{opacity:.6}}.pass-head{justify-content:space-between;align-items:center;gap:12px;display:flex;position:relative}.pass-org{letter-spacing:.2px;color:var(--muted);font-size:13px;font-weight:600}.pass-qr{border:1px solid var(--glass-border);background:var(--glass-strong);cursor:pointer;border-radius:12px;flex:none;place-items:center;width:40px;height:40px;display:grid}.pass-primary{justify-content:space-between;align-items:center;gap:16px;margin-top:22px;display:flex;position:relative}.pass-name{letter-spacing:-.5px;margin:0;font-size:clamp(28px,8vw,36px);font-weight:700;line-height:1.1}.pass-alt{color:var(--muted);margin:4px 0 0;font-size:15px}.pass-avatar{object-fit:cover;border:1px solid var(--glass-border);border-radius:22px;flex:none;width:84px;height:84px;box-shadow:0 8px 24px #00000040}.pass-fields{border-top:1px solid var(--glass-border);grid-template-columns:1fr 1fr;gap:12px;margin:22px 0 0;padding-top:16px;display:grid}.pass-fields dt{text-transform:uppercase;letter-spacing:1px;color:var(--muted);font-size:11px}.pass-fields dd{margin:2px 0 0;font-size:15px;font-weight:500}.tags,.chips{flex-wrap:wrap;gap:6px;margin:16px 0 0;padding:0;list-style:none;display:flex}.tags li,.chips li{background:var(--glass-strong);border:1px solid var(--glass-border);border-radius:999px;padding:4px 10px;font-size:12px;font-weight:500}.chips{margin-top:10px}.actions{grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:10px;margin-top:16px;display:grid}.btn{border-radius:var(--radius-sm);cursor:pointer;border:1px solid var(--glass-border);min-height:50px;transition:transform .2s var(--ease), background-color .2s;justify-content:center;align-items:center;gap:8px;padding:0 16px;font-size:15px;font-weight:600;display:flex}.btn:active{transform:scale(.97)}.btn.glass:hover{background:var(--glass-strong)}.btn.primary{color:#fff;background:linear-gradient(135deg, var(--accent), var(--accent-2));border:none;grid-column:1/-1;box-shadow:0 10px 30px #0a84ff59}.btn.primary:disabled{opacity:.6;cursor:progress}.section{margin-top:28px}.section h2{text-transform:uppercase;letter-spacing:1.2px;color:var(--muted);margin:0 0 10px 6px;font-size:13px;font-weight:600}.panel{border-radius:var(--radius);padding:18px 20px}.panel>p{margin:0;font-size:16px}.timeline{gap:18px;margin:0;list-style:none;display:grid}.timeline li{padding-left:18px;position:relative}.timeline li:before{content:"";background:linear-gradient(135deg, var(--accent), var(--accent-2));border-radius:50%;width:8px;height:8px;position:absolute;top:8px;left:0;box-shadow:0 0 0 4px #0a84ff26}.timeline li+li:after{content:"";background:var(--glass-border);width:1px;height:18px;position:absolute;top:-14px;left:3.5px}.tl-head{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:8px;display:flex}.timeline h3,.project h3{margin:0;font-size:17px;font-weight:600}.tl-role{color:var(--accent);margin:2px 0 0;font-size:14px;font-weight:500}.tl-desc{margin:6px 0 0;font-size:15px}.link{color:var(--accent);align-items:center;gap:4px;margin-top:6px;font-size:14px;display:inline-flex}.project-grid{gap:12px;display:grid}.project{border-radius:var(--radius);transition:transform .25s var(--ease);display:block;overflow:hidden}a.project:hover{transform:translateY(-2px)}.project img{aspect-ratio:16/9;object-fit:cover;width:100%;display:block}.project-body{padding:16px 20px 18px}.project h3{justify-content:space-between;align-items:center;gap:8px;display:flex}.project-arrow{color:var(--muted);flex:none}.project p{margin:6px 0 0;font-size:15px}.form{gap:12px;display:grid}.form>p{margin:0 0 4px;font-size:14px}.form label{color:var(--muted);gap:6px;font-size:13px;font-weight:500;display:grid}.form input:not([type=checkbox]),.form textarea{border:1px solid var(--glass-border);background:var(--input);resize:vertical;border-radius:12px;outline:none;width:100%;padding:12px 14px;font-size:16px;transition:border-color .2s,box-shadow .2s}.form input:focus,.form textarea:focus{border-color:var(--accent);box-shadow:0 0 0 4px #0a84ff2e}.form .consent{align-items:flex-start;gap:10px;font-weight:400;line-height:1.45;display:flex}.form .consent input{width:18px;height:18px;accent-color:var(--accent);flex:none;margin-top:3px}.form .hp{width:1px;height:1px;position:absolute;left:-9999px;overflow:hidden}.form .btn.primary{margin-top:4px}.turnstile{min-height:65px}.error{color:#ff453a;margin:0;font-size:14px}.sent{color:#30d158;align-items:center;gap:8px;margin:0;font-weight:500;display:flex}.modal-backdrop{z-index:50;-webkit-backdrop-filter:blur(6px);background:#00000059;place-items:center;padding:24px;animation:.25s both fade;display:grid;position:fixed;inset:0}.modal{border-radius:var(--radius-lg);text-align:center;width:min(340px,100%);animation:rise .35s var(--ease) both;padding:28px 24px 22px;position:relative}.modal-title{margin:0 0 16px;font-weight:600}.modal-close{background:var(--glass-strong);cursor:pointer;border:none;border-radius:50%;place-items:center;width:34px;height:34px;display:grid;position:absolute;top:12px;right:12px}.qr{background:#fff;border-radius:18px;width:236px;margin:0 auto 12px;padding:16px;line-height:0}.qr svg{width:100%;height:auto}@keyframes fade{0%{opacity:0}}.toast{left:50%;bottom:calc(env(safe-area-inset-bottom) + 24px);z-index:60;color:var(--text);background:var(--glass-strong);border:1px solid var(--glass-border);-webkit-backdrop-filter:blur(20px);animation:rise .3s var(--ease) both;border-radius:999px;padding:10px 18px;font-size:14px;font-weight:500;position:fixed;transform:translate(-50%)}.footer{color:var(--muted);flex-wrap:wrap;justify-content:center;gap:4px 14px;margin-top:36px;font-size:12px;display:flex}.admin{max-width:880px;margin:0 auto;padding:28px 18px 60px}.admin-head{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-bottom:18px;display:flex}.admin-head h1{margin:0;font-size:24px}.tabs{border-radius:999px;gap:4px;padding:4px;display:inline-flex}.tabs button{cursor:pointer;color:var(--muted);background:0 0;border:none;border-radius:999px;padding:8px 16px;font-size:14px;font-weight:600}.tabs button[aria-selected=true]{background:var(--glass-strong);color:var(--text)}.admin .panel+.panel{margin-top:14px}.admin h2{margin:0 0 12px;font-size:16px}.grid-2{grid-template-columns:1fr 1fr;gap:10px;display:grid}@media (width<=600px){.grid-2{grid-template-columns:1fr}}.admin .form label>span em{opacity:.7;font-style:normal}.list-item{border:1px dashed var(--glass-border);border-radius:14px;gap:10px;padding:14px;display:grid}.list-item+.list-item{margin-top:10px}.row-btns{flex-wrap:wrap;justify-content:flex-end;gap:8px;display:flex}.btn.sm{background:var(--glass-strong);min-height:36px;padding:0 12px;font-size:13px}.btn.danger{color:#ff453a}.sticky-save{border-radius:18px;justify-content:flex-end;align-items:center;gap:10px;margin-top:16px;padding:10px;display:flex;position:sticky;bottom:16px}.sticky-save .btn.primary{grid-column:auto}.table-wrap{overflow-x:auto}table{border-collapse:collapse;width:100%;font-size:14px}th,td{text-align:left;border-bottom:1px solid var(--glass-border);vertical-align:top;padding:10px 8px}th{color:var(--muted);text-transform:uppercase;letter-spacing:.6px;font-size:12px;font-weight:600}.notice{font-size:14px}@media (width>=720px){.page{max-width:680px}.project-grid{grid-template-columns:repeat(2,1fr)}}@media (width>=960px){.page.layout{grid-template-columns:400px minmax(0,1fr);align-items:start;gap:32px;max-width:1120px;padding-top:88px;display:grid}.side{position:sticky;top:88px}.layout .content>.section:first-child{margin-top:0}.footer{justify-content:flex-start}.topbar{top:24px;right:24px}}@media (hover:hover){.pass-qr:hover,.pill:hover{background:var(--glass)}.btn.primary:hover{filter:brightness(1.08)}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition:none!important;animation:none!important}}
