@font-face{font-family:Montserrat;src:url('/assets/Montserrat-Regular.ttf') format('truetype');font-weight:400;font-display:swap}
@font-face{font-family:Montserrat;src:url('/assets/Montserrat-SemiBold.ttf') format('truetype');font-weight:600;font-display:swap}
@font-face{font-family:Montserrat;src:url('/assets/Montserrat-Bold.ttf') format('truetype');font-weight:700;font-display:swap}
@font-face{font-family:MetalMania;src:url('/assets/MetalMania-Regular.ttf') format('truetype');font-display:swap}
:root{color-scheme:dark;--ink:#f4efe4;--muted:#bec5bc;--panel:#151b19;--border:#35403a;--amber:#e8a14b;--error:#ffd3c8;font-family:Montserrat,system-ui,sans-serif;color:var(--ink);background:#0a0d0c}
*{box-sizing:border-box}body{margin:0;min-height:100svh;background:linear-gradient(#08100dd9,#07100de8),url('/assets/crypt.png') center/cover fixed}button,input,textarea,select{font:inherit}button,a,input,textarea,select{-webkit-tap-highlight-color:transparent}button{cursor:pointer}button:disabled{cursor:wait;opacity:.5}button:focus-visible,a:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible{outline:3px solid var(--amber);outline-offset:4px}a{color:var(--amber)}[hidden]{display:none!important}h1,h2,p{margin:0}button{color:var(--ink)}.sr-only{position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.mobile-event,.mobile-art{display:none}.event-art,.mobile-art{background-image:url('/assets/pumpkins.png');background-repeat:no-repeat;mask-image:radial-gradient(ellipse at 45% 55%,#000 38%,#000d 59%,transparent 76%)}.event-art{width:252px;max-width:100%;aspect-ratio:3/2;background-size:200% 200%;background-position:0 100%;margin:8px 0 0;filter:drop-shadow(0 9px 12px #050a0744)}.registration-shell{position:relative;z-index:1;display:grid;grid-template-columns:320px minmax(0,700px);gap:48px;max-width:1140px;margin:auto;padding:32px 28px;min-height:100svh;align-items:start}.event-rail{padding:12px 0 16px;position:relative}.brand{display:flex;align-items:center;gap:12px;text-decoration:none;color:var(--ink);font-size:11px;font-weight:700;letter-spacing:1.6px;margin-bottom:24px}.brand img{width:60px;height:64px;object-fit:contain}.eyebrow{font-size:11px;letter-spacing:2px;color:var(--amber);font-weight:700}.event-rail h1{font-family:MetalMania,serif;font-weight:400;font-size:61px;line-height:1.1;margin-top:12px;color:#e9e0c9}.rail-intro{font-size:13px;line-height:1.6;color:var(--muted);margin-top:12px}.date-lockup{display:flex;gap:17px;align-items:center;margin:16px 0 18px}.date-lockup strong{font-size:60px;font-weight:700;letter-spacing:-3px;line-height:1;color:var(--amber)}.date-lockup div{display:flex;flex-direction:column;gap:7px;font-size:12px;font-weight:700;letter-spacing:1.2px}.date-lockup div span:last-child{font-size:10px;color:var(--muted)}.schedule-list{list-style:none;padding:0;margin:0;border-top:1px solid var(--border)}.schedule-list li{display:flex;gap:18px;padding:12px 0;border-bottom:1px solid #35403a88}.schedule-list time{font-weight:700;font-size:20px;min-width:67px;direction:ltr}.schedule-list span{display:flex;flex-direction:column;gap:6px}.schedule-list b{font-size:13px}.schedule-list small{font-size:11px;color:var(--muted)}.time-note{font-size:10px;color:var(--muted);line-height:1.5;margin-top:13px}.prize-note{font-size:31px;font-weight:700;margin-top:18px}.prize-note span{font-size:10px;letter-spacing:1.2px;color:var(--muted);vertical-align:middle;margin-inline-start:8px}.rail-actions{display:flex;gap:12px;margin:14px 0}.rail-actions button{background:transparent;border:1px solid var(--border);border-radius:9px;padding:11px 15px;font-size:12px;min-height:44px}.social{font-size:12px;text-decoration:none;color:var(--muted)}
.chat-panel{min-width:0;border:1px solid var(--border);border-radius:20px;background:var(--panel);box-shadow:0 24px 80px #03090799,0 1px 0 #52604f44 inset;display:flex;flex-direction:column;height:calc(100dvh - 64px);max-height:960px;min-height:500px;overflow:hidden}.chat-header{background:linear-gradient(110deg,#252c20,#151b19 65%);display:flex;gap:12px;align-items:center;padding:22px 24px;border-bottom:1px solid #35403a88;flex-shrink:0}.maya-avatar{display:grid;place-items:center;width:43px;height:43px;flex-shrink:0;background:#e8a14b;color:#17120c;border-radius:14px;font-family:MetalMania,serif;font-size:29px}.chat-identity{flex:1;min-width:0}.chat-identity h2{font-size:18px}.chat-identity p{font-size:11px;margin-top:5px;color:var(--muted);line-height:1.5}.icon-button{border:1px solid var(--border);background:transparent;padding:5px;width:34px;height:34px;border-radius:8px;font-size:18px}.stage-bar{padding:15px 24px 13px;display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:8px;flex-shrink:0;font-size:11px;color:var(--muted)}#stage-count{font-size:10px}.stage-track{height:3px;width:100%;background:#35403a88;border-radius:3px;overflow:hidden}.stage-track span{display:block;background:var(--amber);height:100%;width:0;transition:width .3s}.messages{scrollbar-color:#59604a #151b19;scrollbar-width:thin;padding:16px 24px 20px;overflow:auto;min-height:0;flex:1;overscroll-behavior:contain;scroll-behavior:smooth}.message{max-width:92%;width:fit-content;padding:15px 17px;margin:0 0 14px;border-radius:13px;background:#202a24;border:1px solid #45514399;font-size:15px;box-shadow:0 2px 8px #02070433;line-height:1.65;white-space:pre-wrap;overflow-wrap:anywhere}.message.user{margin-inline-start:auto;background:#3a3325;border-color:#96734788}.message-label{display:block;font-size:9px;text-transform:uppercase;letter-spacing:1px;color:var(--muted);margin-bottom:7px;font-weight:700}.message img{display:block;max-width:210px;max-height:170px;object-fit:contain;border-radius:8px;margin-top:9px}.message a{overflow-wrap:anywhere}.suggestions{display:flex;gap:8px;overflow:auto;flex-wrap:wrap;padding:0 24px 10px;flex-shrink:0}.suggestions button{max-width:100%;overflow-wrap:anywhere;background:#202921;border:1px solid #64725b;border-radius:9px;padding:10px 13px;color:var(--ink);font-size:12px;line-height:1.35;text-align:start}.suggestions button:hover{border-color:var(--amber);background:#343327}.request-status{font-size:12px;color:var(--muted);padding:0 24px 12px}.request-status::before{content:'';display:inline-block;width:6px;height:6px;background:var(--amber);border-radius:50%;margin-inline-end:8px;animation:pulse 1s ease-in-out infinite}.error-message{background:#402822;color:var(--error);padding:12px 15px;margin:0 24px 12px;border:1px solid #895341;border-radius:9px;font-size:12px;line-height:1.6}.error-message button{display:block;margin-top:8px;background:transparent;border:1px solid #bc8b79;border-radius:6px;padding:5px 10px}
.composer{padding:14px 24px max(14px,env(safe-area-inset-bottom));background:#111713;border-top:1px solid var(--border);flex-shrink:0}.composer-row{display:flex;gap:10px;align-items:end}.composer textarea{background:#1e2821;border:1px solid #52604f;border-radius:10px;padding:13px 14px;resize:none;color:var(--ink);font-size:15px;line-height:1.5;min-height:50px;max-height:130px;flex:1;min-width:0}.composer textarea::placeholder{color:#c1c6bc}.send-button{background:var(--amber);color:#17120c;border:0;border-radius:10px;width:48px;height:50px;font-size:29px;font-weight:700;flex-shrink:0}.composer-hint{font-size:9px;color:#b8c1b3;margin-top:9px;line-height:1.4}.upload-control{margin-bottom:12px;display:flex;flex-direction:column;gap:7px}.upload-control label{font-size:12px;font-weight:700}.upload-control input{width:100%;font-size:12px}.upload-control input::file-selector-button{border:1px solid #69755f;background:#283327;color:var(--ink);border-radius:7px;padding:8px 11px;margin-inline-end:10px}.upload-control small{font-size:9px;color:var(--muted)}
.review-card,.confirmation-card{overflow:auto;min-height:0;flex:1;max-height:none;padding:18px 24px;flex-shrink:1;font-size:12px;line-height:1.6;border-top:1px solid var(--border)}.review-card h3,.confirmation-card h3{font-size:19px;margin:0 0 14px}.review-section{border-bottom:1px solid var(--border);padding:12px 0}.review-section:first-child{padding-top:0}.review-section>header{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:6px}.review-section button{border:0;background:transparent;color:var(--amber);font-size:11px;text-decoration:underline}.review-section dl{margin:0;display:grid;grid-template-columns:100px 1fr;gap:5px 12px}.review-section dt{color:var(--muted)}.review-section dd{margin:0;overflow-wrap:anywhere}.player-row{display:grid;grid-template-columns:1fr auto;gap:3px 10px;padding:9px 0;border-bottom:1px solid #35403a55}.player-row small{color:var(--muted)}.player-row code{font-family:inherit;direction:ltr;unicode-bidi:isolate}.player-row img{width:45px;height:45px;object-fit:cover;border-radius:6px;grid-column:2;grid-row:1/3}.review-actions{display:flex;flex-direction:column;gap:10px;margin-top:15px}.primary-action,.join-group{display:block;text-align:center;background:var(--amber);color:#17120c;border:0;padding:13px 15px;border-radius:10px;text-decoration:none;font-weight:700;font-size:13px}.secondary-action{border:1px solid var(--border);background:transparent;padding:10px;border-radius:8px;font-size:12px}.confirmation-card p{margin:10px 0}.confirmation-meta{color:var(--muted);font-size:11px}.entry-badge{font-size:10px;border:1px solid #886738;border-radius:20px;padding:4px 9px;color:var(--amber);margin-inline-start:7px}.confirmation-card .join-group{margin:17px 0 9px}.confirmation-card .download-link{display:inline-block;margin:8px 8px 8px 0}
dialog{max-width:600px;width:calc(100% - 32px);max-height:85svh;border:1px solid var(--border);border-radius:17px;padding:23px;background:var(--panel);color:var(--ink);font-size:14px;line-height:1.7}dialog::backdrop{background:#000b}dialog>header{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:17px}dialog h2{font-size:20px}dialog h3{font-size:15px;margin:17px 0 8px}dialog p{margin:9px 0}dialog ul{padding-inline-start:20px}dialog table{width:100%;border-collapse:collapse;font-size:12px}dialog th,dialog td{padding:7px;border-bottom:1px solid var(--border);text-align:start}dialog time{direction:ltr}
.admin-shell{max-width:1120px;margin:auto;padding:34px 22px;position:relative;z-index:1}.admin-shell h1{font-size:27px}.admin-shell .subtitle{color:var(--muted);margin:9px 0 24px;font-size:13px}.admin-panel{border:1px solid var(--border);background:var(--panel);border-radius:14px;padding:22px;margin:18px 0}.admin-panel h2{font-size:18px;margin-bottom:18px}.admin-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px}.admin-panel label{display:block;margin:12px 0 5px;font-size:12px}.admin-panel input,.admin-panel select{display:block;width:100%;background:#1e2821;border:1px solid #52604f;border-radius:8px;padding:11px;color:var(--ink);font-size:13px}.admin-panel button{margin-top:17px}.admin-actions{display:flex;gap:12px;align-items:center;flex-wrap:wrap}.admin-actions a{font-size:12px}.invite-result{background:#252f24;padding:15px;border-radius:8px;margin-top:16px;overflow-wrap:anywhere;font-size:12px}.invite-result input{margin-bottom:6px}.admin-table{overflow:auto}.admin-table table{width:100%;border-collapse:collapse;font-size:12px}.admin-table th,.admin-table td{padding:12px 10px;border-bottom:1px solid var(--border);text-align:start;white-space:nowrap}.admin-table th{color:var(--muted)}.admin-table td:first-child{white-space:normal;min-width:160px}.notice{font-size:12px;line-height:1.7;color:var(--muted)}.admin-message{padding:13px 16px;border:1px solid var(--border);border-radius:10px;background:#263324;margin-top:12px;font-size:12px;line-height:1.5}.admin-error{background:#402822;color:var(--error)}
@keyframes pulse{50%{opacity:.35}}
.roster-card{scrollbar-color:#59604a #151b19;scrollbar-width:thin;overflow:auto;min-height:0;flex:1;padding:18px 24px;border-top:1px solid var(--border);font-size:12px;line-height:1.6}.roster-card h3{font-size:19px;margin:0 0 6px}.roster-card>p{color:var(--muted);margin-bottom:15px}.roster-open .messages{flex:0 1 110px;min-height:55px}.roster-open .composer{padding-block:9px}.roster-player{background:#19211c;margin:0 0 16px;padding:15px;border:1px solid #4c5746;border-radius:10px;display:grid;grid-template-columns:1fr 1fr;gap:12px}.roster-player legend{font-weight:700;color:var(--amber);padding-inline:5px}.roster-player label{display:flex;flex-direction:column;gap:5px;min-width:0;color:var(--muted)}.roster-player label:last-of-type{grid-column:1/-1}.roster-player input,.roster-player select{width:100%;min-height:44px;background:#1e2821;color:var(--ink);border:1px solid #52604f;border-radius:7px;padding:9px;font-size:16px}.roster-player button{grid-column:1/-1}.roster-actions{position:sticky;bottom:0;background:var(--panel);border-top:1px solid var(--border);padding-top:12px;display:flex;gap:10px;flex-wrap:wrap;padding-bottom:8px}.roster-actions button{flex:1;min-height:44px}.roster-open .suggestions{display:none}
.review-logo{object-fit:contain}.admin-panel input.inline-check{display:inline;width:auto}
.maya-avatar{background:#202a22;border:1px solid #6a593f}.maya-avatar img{width:31px;height:33px;object-fit:contain}.icon-button{width:44px;height:44px;flex-shrink:0}.test-notice{background:#352b1d;color:#f0c790;font-size:10px;padding:9px 24px;line-height:1.5;border-bottom:1px solid #70593d}.new-reply{background:#2b392d;color:var(--ink);border:1px solid #607657;border-radius:8px;font-size:11px;align-self:center;padding:8px 13px;margin:0 0 9px}.rules-open{display:block;border:1px solid var(--border);background:#283327;color:var(--ink);border-radius:8px;padding:10px 15px;margin-top:18px}
@media(max-width:1000px){.registration-shell{gap:22px;grid-template-columns:270px minmax(0,1fr);padding:28px 20px}.event-rail h1{font-size:53px}.chat-panel{height:calc(100dvh - 56px);min-height:480px}}
@media(max-width:720px){body{background:#0a0d0c}.mobile-event{display:block;font-family:MetalMania,serif;font-size:clamp(19px,5.5vw,24px);line-height:1.1;color:#e9e0c9;font-weight:400;margin-bottom:7px;white-space:nowrap}.mobile-event small{display:block;font-family:Montserrat,sans-serif;font-size:8.5px;letter-spacing:.5px;color:var(--amber);font-weight:700;margin-top:4px}.registration-shell{display:block;padding:0;min-height:100dvh}.event-rail{display:none}.chat-panel{border:0;border-radius:0;min-height:0;height:100dvh;background:var(--panel)}.chat-header{padding:14px 16px;padding-top:max(14px,env(safe-area-inset-top));gap:10px}.chat-identity h2{font-size:14px}.chat-identity p{font-size:10px;line-height:1.4}.maya-avatar{width:40px;height:40px}.stage-bar{padding:12px 16px 10px}.messages{padding:10px 16px 28px;scroll-padding-bottom:28px}.message{max-width:94%;padding:13px 14px;font-size:15px}.suggestions{padding:0 16px 10px}.suggestions button{font-size:12px}.composer{padding:12px 16px max(12px,env(safe-area-inset-bottom))}.composer textarea{font-size:16px}.mobile-art{display:block;width:60px;height:40px;flex:0 0 60px;background-size:200% 200%;background-position:0 100%}.error-message{margin-inline:16px}.request-status{padding-inline:16px}.review-card,.confirmation-card,.roster-card{padding:16px;max-height:none}.roster-player{padding:12px;gap:10px}.admin-grid{grid-template-columns:1fr}.admin-shell{padding:24px 14px}.admin-panel{padding:17px}dialog{padding:18px}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;animation:none!important;transition:none!important}}

/* Keep decoration inside its composition, with clear text and touch targets. */
.schedule-list time,.date-lockup strong,#stage-count,.prize-note{font-variant-numeric:tabular-nums}
.chat-panel:has(.review-card:not([hidden])) .messages,.chat-panel:has(.confirmation-card:not([hidden])) .messages{flex:0 1 100px;min-height:50px}
button,a,input,textarea,select{transition:background-color .18s,border-color .18s,box-shadow .18s}
button:active:not(:disabled){transform:translateY(1px)}
.rail-actions button:hover,.secondary-action:hover,.icon-button:hover{background:#293127;border-color:#877044}
.primary-action:hover,.send-button:hover,.join-group:hover{background:#f0b565}
@media(max-width:360px){.chat-header{gap:8px;padding-inline:12px}.mobile-art{width:50px;height:34px;flex-basis:50px}.chat-identity p{font-size:9px}.maya-avatar{width:35px;height:35px}.maya-avatar img{width:27px;height:29px}.mobile-event small{font-size:7.5px;letter-spacing:.1px}.roster-player{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}}
@media(max-height:640px) and (min-width:721px){.chat-panel{min-height:390px}.registration-shell{padding-block:16px}.chat-panel{height:calc(100dvh - 32px)}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;animation:none!important;transition:none!important}}

@media(max-height:900px) and (min-width:721px){.event-art{width:228px}}

@media(max-width:360px){.roster-actions .primary-action{font-size:12px;padding:11px 9px}}

.photo-identification{display:flex;align-items:center;gap:14px;padding:12px 24px;margin-bottom:8px;border-block:1px solid var(--border);background:#1c251e;flex-shrink:0}.photo-identification img{width:76px;height:76px;object-fit:contain;border-radius:8px;background:#111713}.photo-identification p{font-size:13px;line-height:1.6;overflow-wrap:anywhere}.photo-naming-hint{font-size:12px;line-height:1.6;color:#e5c79a;margin-bottom:12px}.review-section .photo-naming-hint{margin-block:9px 0}
@media(max-width:720px){.photo-identification{padding-inline:16px}.photo-identification img{width:64px;height:64px}}

.mystery-avatar{display:grid;place-items:center;width:48px;height:58px;border:1px solid #70593d;border-radius:10px;background:#1c251f;color:#e6ae60;font-family:MetalMania,serif;font-size:34px;flex-shrink:0}

.roster-photo-upload{grid-column:1/-1;display:flex;flex-direction:column;gap:9px}.roster-photo-upload input{font-size:12px}.roster-photo-upload img{width:80px;height:96px;object-fit:cover;border-radius:8px;border:1px solid #70593d}.roster-photo-upload small{color:var(--muted)}
