@import "https://fonts.googleapis.com/css2?family=Noto+Serif+TC:wght@600;900&family=Noto+Sans+TC:wght@400;500;700&display=swap";:root{--void:#0b0806;--void-2:#16100c;--felt:#5c0f16;--felt-2:#3a0a10;--gold:#c9a227;--gold-bright:#f3d675;--gold-dim:#8a6f2a;--paper:#ece2c6;--paper-dim:#a89a78;--neon:#ff4d4d;--line:#c9a22747}*{box-sizing:border-box}html{scroll-behavior:smooth}body{background:var(--void);color:var(--paper);min-height:100vh;margin:0;font-family:Noto Sans TC,system-ui,-apple-system,Segoe UI,sans-serif}.cinematic-bg{z-index:-1;background:var(--void);position:fixed;inset:0;overflow:hidden}.bg-layer{opacity:0;filter:saturate(.85)brightness(.72)sepia(.12);background-position:50%;background-size:cover;animation:21s ease-in-out infinite bg-cycle;position:absolute;inset:-3%}@media (prefers-reduced-motion:reduce){.bg-layer{animation:none}.bg-layer:first-child{opacity:1}}@keyframes bg-cycle{0%{opacity:0;transform:scale(1.02)}6%{opacity:1}27%{opacity:1;transform:scale(1.12)}33%{opacity:0;transform:scale(1.14)}to{opacity:0}}.bg-scrim{background:linear-gradient(#0604038c 0%,#06040359 30%,#060403bf 100%),radial-gradient(90% 70% at 50% 20%,#5c0f1640,#0000 65%);position:absolute;inset:0}.prologue-overlay{z-index:50;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#060403d1;justify-content:center;align-items:center;padding:1.5rem;animation:.6s both prologue-fade-in;display:flex;position:fixed;inset:0}.prologue-panel{background:linear-gradient(180deg, var(--void-2), var(--void));border:1px solid var(--line);text-align:center;border-radius:4px;max-width:640px;max-height:85vh;padding:2.5rem 2.2rem;animation:.7s .15s both rise-in;overflow-y:auto;box-shadow:0 0 0 1px #c9a2271f,0 20px 60px #0009}.prologue-eyebrow{color:var(--gold-dim);letter-spacing:.35em;text-transform:uppercase;margin:0 0 .4rem;font-size:.75rem}.prologue-title{margin:0 0 1.2rem}.prologue-text{color:var(--paper-dim);text-align:justify;text-align-last:left;margin:0 0 1.8rem;font-size:.95rem;line-height:2.1}.prologue-button{min-width:10rem}@media (prefers-reduced-motion:reduce){.prologue-overlay,.prologue-panel{animation:none}}@keyframes prologue-fade-in{0%{opacity:0}to{opacity:1}}h1,h2,h3{color:var(--gold-bright);letter-spacing:.04em;margin:0 0 .6em;font-family:Noto Serif TC,serif}h1{padding-bottom:.5rem;font-size:1.9rem;font-weight:900;position:relative}h1:after{content:"";background:linear-gradient(90deg, var(--gold), transparent);width:3.5rem;height:2px;position:absolute;bottom:0;left:0}h2{color:var(--gold);font-size:1.15rem;font-weight:700}h3{color:var(--paper-dim);text-transform:none;font-size:1rem;font-weight:700}@keyframes rise-in{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.page{max-width:720px;margin:0 auto;padding:2.5rem 1.5rem 4rem;animation:.5s both rise-in}.page-wide{max-width:1400px}.page-narrow{-webkit-backdrop-filter:blur(8px);border:1px solid var(--line);background:#06040399;border-radius:3px;max-width:440px;margin-top:2rem;margin-bottom:2rem}.navbar{-webkit-backdrop-filter:blur(10px);border-bottom:1px solid var(--line);z-index:10;background:#0b08068c;justify-content:space-between;align-items:center;padding:1.1rem 1.75rem;display:flex;position:sticky;top:0;box-shadow:0 1px 24px #00000080}.navbar .brand{letter-spacing:.12em;color:var(--gold-bright);text-shadow:0 0 18px #f3d67559;font-family:Noto Serif TC,serif;font-size:1.25rem;font-weight:900;text-decoration:none}.navbar a{color:var(--paper);border:1px solid var(--line);border-radius:2px;padding:.4rem .9rem;font-size:.9rem;text-decoration:none;transition:border-color .2s,color .2s}.navbar a:hover{border-color:var(--gold);color:var(--gold-bright)}.navbar-actions{align-items:center;gap:.75rem;display:flex}.bgm-toggle{z-index:40;border:1px solid var(--gold-dim);width:3rem;height:3rem;color:var(--gold-bright);-webkit-backdrop-filter:blur(6px);background:#0b0806b8;border-radius:999px;padding:0;font-size:1.3rem;line-height:1;position:fixed;bottom:1.25rem;right:1.25rem;box-shadow:0 4px 18px #00000080}.bgm-toggle:before{display:none}.bgm-toggle:hover:not(:disabled){border-color:var(--gold);transform:translateY(-1px);box-shadow:0 6px 22px #0009}.form{flex-direction:column;gap:1.1rem;display:flex}.profile-summary{border:1px solid var(--line);background:#06040380;border-radius:2px;flex-direction:column;gap:.6rem;margin:1.2rem 0 1.6rem;padding:1.1rem 1.25rem;display:flex}.profile-summary p{margin:0}.button-row{align-items:center;gap:1rem;display:flex}.form label{color:var(--paper-dim);flex-direction:column;gap:.4rem;font-size:.88rem;display:flex}input,select{color:var(--paper);background:#ffffff08;border:1px solid #c9a22759;border-radius:2px;padding:.65rem .8rem;font-family:inherit;font-size:1rem;transition:border-color .2s,box-shadow .2s}input:focus,select:focus{border-color:var(--gold);outline:none;box-shadow:0 0 0 3px #c9a2272e}select option{background:var(--void-2);color:var(--paper)}button{border:1px solid var(--gold-dim);background:linear-gradient(180deg, var(--gold-bright), var(--gold) 60%, var(--gold-dim));color:#241505;letter-spacing:.03em;cursor:pointer;border-radius:2px;padding:.7rem 1.3rem;font-size:1rem;font-weight:700;transition:transform .15s,box-shadow .2s;position:relative;overflow:hidden}button:before{content:"";background:linear-gradient(115deg,#0000 30%,#ffffff8c 45%,#0000 60%);transition:transform .6s;position:absolute;inset:0;transform:translate(-120%)}button:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 4px 18px #c9a22759}button:hover:not(:disabled):before{transform:translate(120%)}button:active:not(:disabled){transform:translateY(0)}button:disabled{color:var(--paper-dim);cursor:not-allowed;background:#ffffff0f;border-color:#ffffff1a}.link-button{color:var(--gold);box-shadow:none;background:0 0;border:none;padding:.5rem 0}.link-button:before{display:none}.link-button:hover:not(:disabled){color:var(--gold-bright);box-shadow:none;text-decoration:underline;transform:none}.error{color:var(--neon);text-shadow:0 0 10px #ff4d4d59}.success{color:#7de08d;font-weight:700}.hint{color:var(--paper-dim);font-size:.85rem}.event-list{flex-direction:column;gap:.9rem;padding:0;list-style:none;display:flex}.event-card{-webkit-backdrop-filter:blur(6px);border:1px solid var(--line);color:inherit;background:linear-gradient(160deg,#5c0f1659,#060403b3);border-radius:2px;padding:1.2rem 1.4rem;text-decoration:none;transition:border-color .2s,transform .2s,box-shadow .2s;display:block}.event-card:hover{border-color:var(--gold);transform:translateY(-2px);box-shadow:0 8px 24px #0006}.event-list-guest{max-width:640px;margin:1rem auto 0}.event-card-guest{border:1px solid var(--gold-dim);background:linear-gradient(160deg,#5c0f1673,#060403d9);padding:2.2rem 2rem 1.6rem;box-shadow:0 0 0 1px #c9a22726,0 20px 50px #00000080}.event-card-guest h2{text-align:center;margin-bottom:0;font-size:1.7rem}.event-card-guest:hover{border-color:var(--gold-bright);box-shadow:0 0 0 1px #c9a2274d,0 24px 60px #0009}.event-card-poster{aspect-ratio:4/5;border:1px solid var(--line);background-position:50%;background-size:cover;border-radius:3px;margin-top:1.4rem}.session-block{margin-top:1.75rem}.venue-map-link{border:1px solid var(--line);color:var(--gold-bright);background:#06040380;border-radius:2px;align-items:center;gap:.4rem;margin:.9rem 0 1.4rem;padding:.55rem 1rem;font-size:.9rem;text-decoration:none;transition:border-color .2s,color .2s;display:inline-flex}.venue-map-link:hover{border-color:var(--gold);color:var(--gold)}.admin-menu{flex-wrap:wrap;gap:1.25rem;margin-top:1.5rem;display:flex}.admin-menu-card{border:1px solid var(--line);color:inherit;background:linear-gradient(160deg,#5c0f1659,#060403b3);border-radius:2px;flex:260px;padding:1.75rem 1.5rem;text-decoration:none;transition:border-color .2s,transform .2s,box-shadow .2s}.admin-menu-card:hover{border-color:var(--gold);transform:translateY(-2px);box-shadow:0 8px 24px #0006}.admin-stats-wrap{max-height:none;margin-bottom:2rem}.batch-block{-webkit-backdrop-filter:blur(6px);border:1px solid var(--line);border-left:3px solid var(--gold-dim);background:#0604039e;border-radius:2px;margin:1.1rem 0;padding:1.1rem 1.25rem}.batch-status{color:var(--paper-dim);letter-spacing:.02em;font-size:.78rem;font-weight:400}.ticket-type-row{border-top:1px dashed #c9a2272e;justify-content:space-between;align-items:center;gap:1rem;padding:.75rem 0;display:flex}.ticket-type-row:first-of-type{border-top:none}.ticket-type-action{align-items:center;gap:.75rem;display:flex}.price{color:var(--gold);margin-left:.75rem;font-family:Noto Serif TC,serif}.badge{background:var(--felt);border:1px solid var(--neon);color:var(--paper);border-radius:999px;margin-left:.75rem;padding:.15rem .6rem;font-size:.72rem}.admin-toolbar{flex-wrap:wrap;align-items:center;gap:.75rem;display:flex}.admin-search{align-items:center;gap:.5rem;display:flex}.admin-search input{min-width:280px}.icon-button{border:1px solid var(--line);color:var(--gold);box-shadow:none;background:0 0;padding:.5rem .7rem;font-size:1.05rem;line-height:1}.icon-button:before{display:none}.icon-button:hover:not(:disabled){border-color:var(--gold);color:var(--gold-bright);box-shadow:none;transform:none}.danger-button{background:linear-gradient(180deg, #e05d5d, var(--neon) 60%, #7a1414);color:#2a0505}.my-ticket-list{flex-direction:column;gap:1rem;margin-top:1.5rem;display:flex}.my-ticket-card{-webkit-backdrop-filter:blur(6px);border:1px solid var(--line);border-left:3px solid var(--gold-dim);background:#0604039e;border-radius:2px;padding:1.1rem 1.25rem}.admin-table-wrap{border:1px solid var(--line);background:#06040380;border-radius:2px;max-height:75vh;margin-top:1.25rem;overflow:auto}.admin-table{border-collapse:collapse;white-space:nowrap;width:100%;font-size:.85rem}.admin-table th,.admin-table td{text-align:left;border-bottom:1px solid #c9a22726;padding:.55rem .75rem}.admin-table thead th{z-index:1;background:var(--void-2);color:var(--gold-dim);border-bottom:1px solid var(--line);font-weight:500;position:sticky;top:0}.admin-table-id{color:var(--paper-dim);font-family:monospace;font-size:.75rem}.admin-note-input{min-width:160px;padding:.3rem .5rem;font-size:.82rem}.admin-subtable{border-collapse:collapse;width:100%;font-size:.82rem}.admin-subtable th,.admin-subtable td{padding:.45rem .65rem}.admin-subtable thead th{background:0 0;border-bottom:1px solid #c9a22740;position:static}.admin-expand-toggle{color:var(--gold-bright);padding:0;font-size:.85rem}.admin-group-detail-row td{white-space:normal;background:#c9a2270f}.admin-group-detail{max-width:900px;color:var(--paper-dim);line-height:1.7}.admin-group-detail span{display:inline}.queue-stage{flex-direction:column;align-items:center;gap:1.5rem;margin-top:1rem;padding:3.5rem 1rem;display:flex;position:relative;overflow:hidden}.queue-embers{pointer-events:none;position:absolute;inset:0}.ember{background:var(--gold-bright);opacity:0;border-radius:50%;width:4px;height:4px;position:absolute;bottom:-10px;box-shadow:0 0 6px 2px #f3d67599}@media (prefers-reduced-motion:no-preference){.ember{animation:5.5s ease-in infinite ember-rise}}@keyframes ember-rise{0%{opacity:0;transform:translateY(0)translate(0)}15%{opacity:.9}to{opacity:0;transform:translateY(-220px) translateX(var(--drift,12px))}}.ember:first-of-type{--drift:10px;animation-delay:0s;left:12%}.ember:nth-of-type(2){--drift:-14px;animation-delay:1.1s;left:30%}.ember:nth-of-type(3){--drift:8px;animation-delay:2.2s;left:50%}.ember:nth-of-type(4){--drift:-10px;animation-delay:.6s;left:68%}.ember:nth-of-type(5){--drift:14px;animation-delay:3s;left:84%}.ember:nth-of-type(6){--drift:-6px;animation-delay:1.8s;left:45%}.queue-seal{background:radial-gradient(circle at 50% 40%, #5c0f168c, var(--void-2) 70%);border:2px solid var(--gold);border-radius:50%;justify-content:center;align-items:center;width:168px;height:168px;display:flex;position:relative;box-shadow:0 0 0 6px #c9a22714,0 0 30px #ff4d4d40,inset 0 0 24px #0009}@media (prefers-reduced-motion:no-preference){.queue-seal{animation:3.2s ease-in-out infinite seal-breathe}}@keyframes seal-breathe{0%,to{box-shadow:0 0 0 6px #c9a22714,0 0 30px #ff4d4d40,inset 0 0 24px #0009}50%{box-shadow:0 0 0 10px #c9a22724,0 0 46px #ff4d4d66,inset 0 0 24px #0009}}.queue-position{color:var(--gold-bright);text-align:center;padding:0 .5rem;font-family:Noto Serif TC,serif;font-size:1.5rem;font-weight:900;line-height:1.3}.queue-caption{color:var(--paper-dim);text-align:center;font-size:.9rem}
