@import "https://fonts.googleapis.com/css2?family=Anton&family=Oswald:wght@400;500;600;700&family=Inter:wght@400;500;600;700&family=DM+Mono:wght@400;500&display=swap";:root{--ink:#000;--ink-900:#0b0b0b;--ink-800:#161616;--ink-700:#2c2c2c;--ink-600:#444;--ink-500:#6b6b6b;--ink-400:#8c8c8c;--ink-300:#b5b5b5;--ink-200:#d6d2c7;--bone:#fff;--bone-50:#fafaf8;--bone-100:#f4ecdb;--bone-200:#e6dcc4;--bone-300:#d5c9ab;--bone-900:#1a1a1a;--dust:#c8b89a;--dust-dark:#8c7e63;--rally:#e25a1c;--rally-dark:#b8430f;--rally-light:#f38545;--warn:#e8b021;--warn-dark:#b68615;--rust:#9a2a1f;--rust-dark:#6e1c14;--moss:#5b6b3a;--bg:var(--bone);--bg-alt:var(--bone-100);--bg-inverse:var(--ink);--fg:var(--ink);--fg-2:var(--ink-700);--fg-3:var(--ink-500);--fg-on-dark:var(--bone);--fg-on-dark-2:var(--bone-200);--border:var(--ink-700);--border-soft:var(--bone-300);--border-on-dark:var(--bone-900);--accent:var(--rally);--accent-fg:var(--bone);--danger:var(--rust);--warning:var(--warn);--success:var(--moss);--font-display:"Anton", "Druk Wide", "Steelfish", Impact, sans-serif;--font-sub:"Oswald", "Bebas Neue", Impact, sans-serif;--font-body:"Inter", system-ui, -apple-system, "Helvetica Neue", sans-serif;--font-mono:"DM Mono", ui-monospace, "SF Mono", Menlo, monospace;--fs-hero:clamp(56px, 8vw, 112px);--fs-display-1:clamp(40px, 5.5vw, 72px);--fs-display-2:clamp(32px, 4vw, 52px);--fs-h1:clamp(28px, 3vw, 40px);--fs-h2:24px;--fs-h3:20px;--fs-h4:16px;--fs-lead:18px;--fs-body:15px;--fs-small:13px;--fs-micro:11px;--tracking-tight:-.02em;--tracking-normal:0;--tracking-wide:.06em;--tracking-caps:.12em;--tracking-display:-.01em;--lh-tight:1.02;--lh-display:1.06;--lh-snug:1.2;--lh-body:1.55;--lh-loose:1.7;--w-regular:400;--w-medium:500;--w-semi:600;--w-bold:700;--space-0:0;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:24px;--space-6:32px;--space-7:48px;--space-8:64px;--space-9:96px;--space-10:128px;--radius-0:0;--radius-1:2px;--radius-pill:999px;--border-1:1px solid var(--border);--border-2:2px solid var(--border);--border-on-dark-1:1px solid var(--border-on-dark);--shadow-poster:4px 4px 0 var(--ink);--shadow-poster-sm:2px 2px 0 var(--ink);--shadow-poster-rally:4px 4px 0 var(--rally);--shadow-poster-bone:4px 4px 0 var(--bone);--ease-out:cubic-bezier(.16, .84, .44, 1);--dur-fast:.12s;--dur-base:.18s;--dur-slow:.26s}html,body{background:var(--bg);color:var(--fg);font-family:var(--font-body);font-size:var(--fs-body);line-height:var(--lh-body);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.tc-text-hero,h1.hero{font-family:var(--font-display);font-weight:400;font-size:var(--fs-hero);line-height:var(--lh-tight);letter-spacing:var(--tracking-display);text-transform:uppercase;margin:0}.tc-display-1,h1{font-family:var(--font-display);font-weight:400;font-size:var(--fs-display-1);line-height:var(--lh-display);letter-spacing:var(--tracking-display);text-transform:uppercase;margin:0}.tc-display-2,h2{font-family:var(--font-display);font-weight:400;font-size:var(--fs-display-2);line-height:var(--lh-display);letter-spacing:var(--tracking-display);text-transform:uppercase;margin:0}.tc-h1{font-family:var(--font-sub);font-weight:var(--w-bold);font-size:var(--fs-h1);line-height:var(--lh-snug);letter-spacing:var(--tracking-normal);text-transform:uppercase;margin:0}h3,.tc-h2{font-family:var(--font-sub);font-weight:var(--w-semi);font-size:var(--fs-h2);line-height:var(--lh-snug);text-transform:uppercase;letter-spacing:var(--tracking-wide);margin:0}h4,.tc-h3{font-family:var(--font-body);font-weight:var(--w-bold);font-size:var(--fs-h3);line-height:var(--lh-snug);margin:0}p,.tc-body{font-family:var(--font-body);font-size:var(--fs-body);line-height:var(--lh-body);margin:0}.tc-lead{font-size:var(--fs-lead);line-height:var(--lh-body)}.tc-small{font-size:var(--fs-small);line-height:var(--lh-body)}.tc-eyebrow,.eyebrow{font-family:var(--font-mono);font-size:var(--fs-micro);letter-spacing:var(--tracking-caps);text-transform:uppercase;font-weight:var(--w-medium);color:var(--fg-2)}.tc-label{font-family:var(--font-sub);font-weight:var(--w-semi);font-size:var(--fs-small);letter-spacing:var(--tracking-caps);text-transform:uppercase}code,.tc-mono,pre{font-family:var(--font-mono);font-size:var(--fs-small)}a{color:inherit;text-underline-offset:3px;transition:color var(--dur-fast) var(--ease-out);text-decoration:underline;text-decoration-thickness:1px}a:hover{color:var(--rally)}html,body{background:#f0eee9;margin:0;padding:0}.tc-app{font-family:var(--font-body);color:var(--bone);background:var(--ink);flex-direction:column;height:100%;display:flex;position:relative;overflow:hidden}.tc-app.light{background:var(--bone);color:var(--ink)}.tc-app-body{-webkit-overflow-scrolling:touch;flex:1;overflow:hidden auto}.tc-app-body::-webkit-scrollbar{display:none}.tc-display{font-family:var(--font-display);text-transform:uppercase;letter-spacing:var(--tracking-display);font-weight:400;line-height:1}.tc-sub{font-family:var(--font-sub);text-transform:uppercase;letter-spacing:var(--tracking-wide);font-weight:600}.tc-mono{font-family:var(--font-mono);letter-spacing:var(--tracking-caps);text-transform:uppercase}.tc-eyebrow{font-family:var(--font-mono);letter-spacing:.16em;text-transform:uppercase;color:var(--bone);opacity:.55;font-size:10px;font-weight:500}.tc-app.light .tc-eyebrow{color:var(--ink);opacity:.6}.tc-pill{font-family:var(--font-mono);letter-spacing:.12em;text-transform:uppercase;color:inherit;white-space:nowrap;background:0 0;border:1px solid;border-radius:0;align-items:center;gap:6px;padding:4px 10px 5px;font-size:10px;font-weight:500;display:inline-flex}.tc-pill.solid{background:var(--bone);color:var(--ink);border-color:var(--bone)}.tc-pill.solid-ink{background:var(--ink);color:var(--bone);border-color:var(--ink)}.tc-pill.rally{background:var(--rally);color:var(--bone);border-color:var(--rally)}.tc-pill.warn{background:var(--warn);color:var(--ink);border-color:var(--warn)}.tc-pill.rust{background:var(--rust);color:var(--bone);border-color:var(--rust)}.tc-btn{border:1px solid var(--bone);color:inherit;font-family:var(--font-sub);letter-spacing:.14em;text-transform:uppercase;cursor:pointer;transition:transform var(--dur-fast) var(--ease-out), background var(--dur-fast) var(--ease-out), box-shadow var(--dur-fast) var(--ease-out);background:0 0;border-radius:0;justify-content:center;align-items:center;gap:8px;padding:14px 18px;font-size:14px;font-weight:700;display:inline-flex}.tc-btn:hover{transform:translate(-1px,-1px)}.tc-btn:active{transform:translate(1px,1px)}.tc-btn.primary{background:var(--bone);color:var(--ink);border-color:var(--bone)}.tc-btn.primary.on-light{background:var(--ink);color:var(--bone);border-color:var(--ink)}.tc-btn.accent{background:var(--rally);color:var(--bone);border-color:var(--rally)}.tc-btn.danger{background:var(--rust);color:var(--bone);border-color:var(--rust)}.tc-btn.ghost{background:0 0}.tc-btn.block{width:100%}.tc-btn.lg{padding:18px 22px;font-size:16px}.tc-classbadge{font-family:var(--font-display);text-transform:uppercase;letter-spacing:.04em;background:var(--bone);color:var(--ink);border-radius:0;align-items:center;gap:8px;padding:5px 10px 6px;font-size:15px;line-height:1;display:inline-flex}.tc-classbadge.rally{background:var(--rally);color:var(--bone)}.tc-classbadge.warn{background:var(--warn);color:var(--ink)}.tc-classbadge.rust{background:var(--rust);color:var(--bone)}.tc-classbadge.bone{background:var(--bone);color:var(--ink)}.tc-card{background:var(--ink-900);border:1px solid #ffffff2e;border-radius:0;padding:16px}.tc-card.light{background:var(--bone);color:var(--ink);border-color:#00000029}.tc-row{border-top:.5px solid #ffffff14;align-items:center;gap:12px;padding:14px 18px;display:flex}.tc-app.light .tc-row{border-top-color:#00000014}.tc-topbar{z-index:2;justify-content:space-between;align-items:center;padding:8px 18px 12px;display:flex;position:relative}.tc-topbar .tc-wordmark{height:18px}.tc-tabbar{background:var(--ink);border-top:1px solid #ffffff1f;grid-template-columns:repeat(4,1fr);gap:0;padding:10px 8px 30px;display:grid}.tc-app.light .tc-tabbar{background:var(--bone);border-top-color:#0000001a}.tc-tab{color:inherit;opacity:.45;font-family:var(--font-mono);letter-spacing:.16em;text-transform:uppercase;cursor:pointer;background:0 0;border:0;flex-direction:column;align-items:center;gap:4px;padding:6px 2px;font-size:9px;display:flex}.tc-tab.active{opacity:1}.tc-tab .dot{justify-content:center;align-items:center;width:18px;height:18px;display:flex}.tc-hero{background:var(--accent);color:var(--bone);padding:22px 20px 24px;position:relative;overflow:hidden}.tc-hero .ribbon{background:var(--ink);color:var(--bone);font-family:var(--font-mono);letter-spacing:.14em;text-transform:uppercase;padding:4px 10px;font-size:9px;position:absolute;top:0;right:0}.tc-hero .countdown{font-family:var(--font-display);letter-spacing:-.02em;font-feature-settings:"tnum";font-size:92px;line-height:.95}.tc-hero .countdown.smaller{font-size:72px}.tc-hero .label{font-family:var(--font-mono);letter-spacing:.18em;text-transform:uppercase;opacity:.85;font-size:10px}@keyframes tc-pulse{0%,to{opacity:1}50%{opacity:.3}}@keyframes tc-strobe-bg{0%,to{background:var(--rally)}50%{background:var(--rust)}}.tc-pulse{animation:1s ease-in-out infinite tc-pulse}.tc-strobe{animation:.9s ease-in-out infinite tc-strobe-bg}.tc-sched{flex-direction:column;display:flex}.tc-sched-row{border-top:.5px solid #ffffff14;grid-template-columns:56px 1fr auto;align-items:start;gap:12px;padding:14px 18px;display:grid;position:relative}.tc-sched-row .time{font-family:var(--font-mono);letter-spacing:.08em;opacity:.8;padding-top:2px;font-size:13px}.tc-sched-row .label{font-family:var(--font-sub);letter-spacing:.06em;text-transform:uppercase;font-size:15px;font-weight:700;line-height:1.15}.tc-sched-row .detail{font-family:var(--font-mono);letter-spacing:.06em;opacity:.65;text-transform:uppercase;margin-top:4px;font-size:11px}.tc-sched-row .stat{border:1.5px solid #fff6;width:12px;height:12px;margin-top:4px}.tc-sched-row[data-status=done]{opacity:.45}.tc-sched-row[data-status=done] .stat{background:#fff6}.tc-sched-row[data-status=racing] .stat{background:var(--warn);border-color:var(--warn);animation:1.2s ease-in-out infinite tc-pulse}.tc-sched-row[data-status=next]{background:var(--rally);color:var(--bone)}.tc-sched-row[data-status=next] .stat{background:var(--bone);border-color:var(--bone)}.tc-sched-row[data-status=next] .detail{opacity:.9}.tc-input{width:100%;color:var(--bone);font-family:var(--font-mono);letter-spacing:.04em;background:#ffffff0d;border:1px solid #ffffff29;border-radius:0;outline:none;padding:14px;font-size:13px}.tc-input:focus{border-color:var(--rally);background:#ffffff14}.tc-input::placeholder{color:#ffffff59}.tc-input-label{font-family:var(--font-mono);letter-spacing:.16em;text-transform:uppercase;color:#ffffff8c;margin-bottom:6px;font-size:10px;display:block}.tc-stamp{font-family:var(--font-display);text-transform:uppercase;letter-spacing:.04em;border:1.5px solid;padding:3px 8px;display:inline-block}.tc-wordmark{display:block}.tc-noise{background-image:radial-gradient(circle at 20% 30%,#ffffff0a 0,#0000 40%),radial-gradient(circle at 80% 70%,#e25a1c0f 0,#0000 40%),url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='240' height='240'><filter id='n'><feTurbulence baseFrequency='0.9' numOctaves='2' stitchTiles='stitch'/><feColorMatrix values='0 0 0 0 1  0 0 0 0 1  0 0 0 0 1  0 0 0 0.08 0'/></filter><rect width='100%25' height='100%25' filter='url(%23n)' opacity='0.6'/></svg>")}.tc-qr{background:var(--bone);border:4px solid var(--bone);padding:14px;display:inline-block}.tc-qr svg{display:block}.tc-ticket-tear{opacity:.4;background-image:linear-gradient(90deg,currentColor 50%,#0000 50%);background-position:50%;background-repeat:repeat-x;background-size:10px 1px;height:1px;margin:16px 0}.tc-steps{align-items:center;gap:6px;margin-bottom:14px;display:flex}.tc-steps i{background:#ffffff2e;flex:1;height:3px;display:block}.tc-steps i.on{background:var(--rally)}.tc-steps i.done{background:var(--bone)}.tc-lock-notif{-webkit-backdrop-filter:blur(30px)saturate(180%);color:#fff;background:#28282c8c;border-radius:20px;align-items:flex-start;gap:12px;padding:12px 14px;display:flex}.tc-lock-notif.critical{background:#e25a1cc7}.tc-lock-notif.warn{color:var(--ink);background:#e8b021c7}.tc-lock-app-icon{background:var(--ink);background-image:url(/assets/logo-terra-crest.jpg);background-position:50%;background-size:cover;border-radius:8px;flex:0 0 38px;width:38px;height:38px;box-shadow:0 1px 2px #0000004d}.tc-halftone{background-color:var(--ink);background-image:radial-gradient(#ffffff0f 1px,#0000 1.2px);background-size:6px 6px}html,body,#root{height:100%;margin:0}.shell{height:100%;color:var(--bone);background-color:#0a0a0c;background-image:radial-gradient(at 25% 15%,#e25a1c29 0%,#0000 55%),radial-gradient(at 85% 90%,#e8b0210d 0%,#0000 50%),url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='240' height='240'><filter id='n'><feTurbulence baseFrequency='0.9' numOctaves='2' stitchTiles='stitch'/><feColorMatrix values='0 0 0 0 1  0 0 0 0 1  0 0 0 0 1  0 0 0 0.05 0'/></filter><rect width='100%25' height='100%25' filter='url(%23n)' opacity='0.5'/></svg>");background-position:0 0;background-repeat:repeat;background-size:auto;background-attachment:scroll;background-origin:padding-box;background-clip:border-box;display:flex;overflow:hidden}.stage{flex:1;justify-content:center;align-items:center;min-width:0;display:flex;overflow:hidden}.phone-scale{transform-origin:50%;transition:transform .12s var(--ease-out)}.panel{-webkit-backdrop-filter:blur(12px);width:320px;transition:flex-basis .2s var(--ease-out), width .2s var(--ease-out);background:#08080aeb;border-left:1px solid #ffffff1f;flex-direction:column;flex:0 0 320px;display:flex;overflow:hidden}.panel.closed{flex-basis:56px;width:56px}.panel.closed .panel-body,.panel.closed .panel-head>span:first-child{display:none}.panel-head{color:var(--bone);cursor:pointer;text-align:left;background:0 0;border:0;border-bottom:1px solid #ffffff1f;justify-content:space-between;align-items:center;gap:10px;padding:18px 18px 16px;display:flex}.panel-kicker{font-family:var(--font-mono);letter-spacing:.2em;text-transform:uppercase;color:var(--rally);font-size:9px;display:block}.panel-title{font-family:var(--font-display);letter-spacing:.01em;text-transform:uppercase;margin-top:3px;font-size:26px;line-height:.9;display:block}.panel-caret{color:#fff9;font-size:14px}.panel-body{flex:1;padding:8px 18px 28px;overflow-y:auto}.panel-body::-webkit-scrollbar{width:6px}.panel-body::-webkit-scrollbar-thumb{background:#ffffff2e}.panel-section{border-top:1px solid #ffffff12;padding:14px 0}.panel-section:first-child{border-top:0}.panel-label{font-family:var(--font-mono);letter-spacing:.16em;text-transform:uppercase;color:#ffffff80;margin-bottom:10px;font-size:10px}.panel-hint{font-family:var(--font-mono);letter-spacing:.08em;text-transform:uppercase;color:#ffffff59;margin-top:8px;font-size:9px}.screen-list{flex-direction:column;gap:4px;display:flex}.screen-btn{text-align:left;color:#ffffffb3;font-family:var(--font-sub);letter-spacing:.04em;text-transform:uppercase;cursor:pointer;transition:transform var(--dur-fast) var(--ease-out), background var(--dur-fast) var(--ease-out);background:0 0;border:1px solid #ffffff1f;padding:9px 12px;font-size:12px;font-weight:600}.screen-btn:hover{border-color:#ffffff4d;transform:translate(2px)}.screen-btn.active{background:var(--rally);border-color:var(--rally);color:var(--bone)}.seg{grid-template-columns:repeat(4,1fr);gap:0;display:grid}.seg.seg-2{grid-template-columns:1fr 1fr;gap:6px}.seg button{color:var(--bone);font-family:var(--font-sub);letter-spacing:.08em;text-transform:uppercase;cursor:pointer;background:0 0;border:1px solid #ffffff2e;margin-left:-1px;padding:11px 6px;font-size:11px;font-weight:700}.seg.seg-2 button,.seg button:first-child{margin-left:0}.seg button.on{background:var(--bone);border-color:var(--bone);color:var(--ink)}.swatches{gap:10px;display:flex}.swatch{cursor:pointer;border:2px solid #ffffff40;width:40px;height:40px;padding:0}.swatch.on{border-color:var(--bone);box-shadow:var(--shadow-poster-bone)}@media (width<=720px){.shell{flex-direction:column}.panel,.panel.closed{border-top:1px solid #ffffff1f;border-left:0;flex-basis:auto;width:100%;max-height:45vh}.panel.closed{max-height:56px}}.auth-shell{background:var(--ink,#0c0c0c);z-index:100;justify-content:center;align-items:center;padding:24px;display:flex;position:fixed;inset:0}.auth-card{color:#f5efe4;width:min(360px,100%);font-family:var(--font-body,system-ui, sans-serif);background:#161616;border:1px solid #ffffff14;flex-direction:column;gap:14px;padding:32px 28px 24px;display:flex}.auth-kicker{letter-spacing:.32em;color:#b8b2a4;font-size:11px}.auth-title{font-family:var(--font-display,"Anton", "Oswald", sans-serif);letter-spacing:.04em;margin:0 0 4px;font-size:44px;font-weight:800;line-height:1}.auth-sub{color:#c4bcab;margin:0 0 12px;font-size:14px}.auth-field{letter-spacing:.16em;color:#b8b2a4;text-transform:uppercase;flex-direction:column;gap:6px;font-size:12px;display:flex}.auth-field input{color:#f5efe4;font:inherit;letter-spacing:normal;text-transform:none;background:#0c0c0c;border:1px solid #ffffff24;outline:none;padding:12px 14px;font-size:15px}.auth-field input:focus{border-color:var(--rally,#e25a1c)}.auth-error{color:#ffd9c5;background:#e25a1c1f;border:1px solid #e25a1c66;padding:10px 12px;font-size:13px}.auth-submit{background:var(--rally,#e25a1c);color:#0c0c0c;font-family:var(--font-display,"Anton", "Oswald", sans-serif);letter-spacing:.16em;cursor:pointer;border:0;margin-top:8px;padding:14px 16px;font-size:16px;font-weight:800}.auth-submit:disabled{opacity:.6;cursor:progress}.auth-toggle{color:#b8b2a4;cursor:pointer;background:0 0;border:0;padding:6px 0 0;font-size:12px;text-decoration:underline}.auth-logout{color:var(--bone,#f5efe4);cursor:pointer;letter-spacing:.18em;background:0 0;border:1px solid #ffffff2e;padding:8px 12px;font-size:11px}.admin-shell{color:#f5efe4;font-family:var(--font-body,system-ui, sans-serif);background:#0c0c0c;flex-direction:column;display:flex;position:fixed;inset:0;overflow:hidden}.admin-header{background:#161616;border-bottom:1px solid #ffffff1a;grid-template-columns:auto 1fr auto;align-items:center;gap:24px;padding:16px 24px;display:grid}.admin-kicker{letter-spacing:.32em;color:#b8b2a4;font-size:11px}.admin-title{font-family:var(--font-display,sans-serif);letter-spacing:.04em;margin:2px 0 0;font-size:22px}.admin-nav{gap:8px;display:flex}.admin-nav-link{color:#f5efe4;letter-spacing:.18em;text-transform:uppercase;border:1px solid #ffffff1f;padding:8px 14px;font-size:12px;text-decoration:none}.admin-nav-link.active{background:var(--rally,#e25a1c);color:#0c0c0c;border-color:var(--rally,#e25a1c)}.admin-user{color:#c4bcab;align-items:center;gap:12px;font-size:13px;display:flex}.admin-link{color:var(--rally,#e25a1c);font-weight:600;text-decoration:none}.admin-link:hover{text-decoration:underline}.admin-main{flex:1;padding:24px 32px 48px;overflow-y:auto}.admin-page{flex-direction:column;gap:20px;max-width:1100px;margin:0 auto;display:flex}.admin-page-head{justify-content:space-between;align-items:end;gap:16px;display:flex}.admin-page-head h2{font-family:var(--font-display,sans-serif);letter-spacing:.06em;margin:0;font-size:28px}.admin-breadcrumb{letter-spacing:.16em;color:#b8b2a4;font-size:12px}.admin-muted{color:#b8b2a4;font-size:14px}.admin-card{background:#161616;border:1px solid #ffffff14;padding:18px 20px 22px}.admin-card h3{letter-spacing:.2em;color:#b8b2a4;text-transform:uppercase;margin:0 0 12px;font-size:13px}.admin-form-grid{grid-template-columns:repeat(auto-fit,minmax(200px,1fr));align-items:end;gap:12px 16px;display:grid}.admin-form-grid label{letter-spacing:.16em;color:#b8b2a4;text-transform:uppercase;flex-direction:column;gap:6px;font-size:11px;display:flex}.admin-form-grid input,.admin-form-grid select,.admin-table input,.admin-table select{color:#f5efe4;font:inherit;text-transform:none;letter-spacing:normal;background:#0c0c0c;border:1px solid #ffffff24;padding:10px 12px}.admin-form-grid input:focus,.admin-form-grid select:focus{border-color:var(--rally,#e25a1c);outline:none}.admin-primary{background:var(--rally,#e25a1c);color:#0c0c0c;font-family:var(--font-display,sans-serif);letter-spacing:.14em;cursor:pointer;border:0;padding:12px 16px;font-weight:700}.admin-primary:disabled{opacity:.6;cursor:progress}.admin-search{gap:8px;display:flex}.admin-search input{color:#f5efe4;background:#0c0c0c;border:1px solid #ffffff24;padding:10px 12px}.admin-search button{color:#f5efe4;cursor:pointer;background:#ffffff14;border:1px solid #ffffff1f;padding:10px 16px}.admin-table{border-collapse:collapse;background:#161616;width:100%}.admin-table th,.admin-table td{text-align:left;vertical-align:middle;border-bottom:1px solid #ffffff0f;padding:10px 12px;font-size:13px}.admin-table th{letter-spacing:.18em;color:#b8b2a4;text-transform:uppercase;font-size:11px}.admin-table tr.is-disabled td{opacity:.55}.admin-row-actions{align-items:center;gap:8px;display:flex}.admin-row-actions button,.admin-row-actions a{color:#f5efe4;cursor:pointer;background:#ffffff14;border:1px solid #ffffff1f;padding:6px 10px;font-size:12px;text-decoration:none}.admin-row-actions button:disabled{opacity:.6;cursor:progress}.admin-row-actions button.danger{color:#ffd9c5;background:#e25a1c1f;border-color:#e25a1c80}.admin-table button.danger{color:#ffd9c5;cursor:pointer;background:#e25a1c1f;border:1px solid #e25a1c80;padding:6px 10px}.admin-error{color:#ffd9c5;background:#e25a1c1f;border:1px solid #e25a1c73;padding:10px 14px;font-size:13px}.admin-loading{text-align:center;color:#b8b2a4;padding:24px}.admin-empty{text-align:center;color:#8a8478;padding:24px}.public-site{background:var(--bone);min-height:100vh;color:var(--ink);font-family:var(--font-body)}.public-header{z-index:10;background:var(--ink);color:var(--bone);border-bottom:4px solid var(--rally);justify-content:space-between;align-items:center;gap:24px;padding:18px clamp(18px,4vw,56px);display:flex;position:sticky;top:0}.public-brand{color:inherit;font-family:var(--font-display);text-transform:uppercase;align-items:center;gap:14px;font-size:22px;text-decoration:none;display:flex}.public-brand img{width:94px;height:auto}.public-nav{font-family:var(--font-mono);letter-spacing:.12em;text-transform:uppercase;align-items:center;gap:18px;font-size:12px;display:flex}.public-nav a{color:inherit;text-decoration:none}.public-hero,.event-landing{min-height:calc(100vh - 72px);color:var(--bone);background:linear-gradient(90deg,#000000db,#00000080),url(/assets/logo-terra-crest.jpg) 50%/cover;grid-template-columns:minmax(0,1fr) minmax(320px,520px);align-items:end;gap:clamp(28px,5vw,64px);padding:clamp(40px,6vw,88px) clamp(18px,5vw,72px);display:grid}.public-hero-copy,.event-landing-copy{max-width:820px}.public-kicker{font-family:var(--font-mono);letter-spacing:.18em;text-transform:uppercase;color:var(--rally);margin-bottom:12px;font-size:12px;display:block}.public-hero h1,.public-page-head h1,.event-landing h1{font-family:var(--font-display);text-transform:uppercase;max-width:980px;margin:0;font-size:clamp(56px,8vw,126px);line-height:.95}.public-hero p,.public-page-head p,.event-tagline{color:#ffffffc7;max-width:680px;margin:20px 0 0;font-size:clamp(17px,2vw,22px);line-height:1.45}.public-page-head p{color:var(--ink-600)}.public-actions{flex-wrap:wrap;gap:12px;margin-top:28px;display:flex}.public-btn{min-height:48px;color:inherit;font-family:var(--font-sub);letter-spacing:.12em;text-transform:uppercase;background:0 0;border:2px solid;justify-content:center;align-items:center;padding:0 20px;font-weight:700;text-decoration:none;display:inline-flex}.public-btn.primary{background:var(--rally);border-color:var(--rally);color:var(--bone)}.public-hero-panel{align-self:stretch;align-items:end;display:flex}.public-page{padding:clamp(36px,6vw,82px) clamp(18px,5vw,72px)}.public-page-head{max-width:900px;margin-bottom:34px}.public-section{background:var(--bone);color:var(--ink);padding:clamp(40px,6vw,78px) clamp(18px,5vw,72px)}.public-section.split{border-top:1px solid var(--ink-200);grid-template-columns:minmax(220px,360px) 1fr;align-items:start;gap:clamp(24px,5vw,70px);display:grid}.public-section-head{justify-content:space-between;align-items:end;gap:24px;margin-bottom:22px;display:flex}.public-section h2{font-family:var(--font-display);text-transform:uppercase;margin:0;font-size:clamp(34px,5vw,72px);line-height:1}.event-grid,.class-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;display:grid}.event-grid.wide{grid-template-columns:repeat(auto-fit,minmax(280px,1fr))}.event-card,.class-card{min-height:250px;color:inherit;border:2px solid var(--ink);background:var(--bone);box-shadow:4px 4px 0 var(--ink);flex-direction:column;justify-content:space-between;align-items:flex-start;gap:16px;padding:24px;text-decoration:none;display:flex}.event-card.featured{background:var(--bone);width:100%;min-height:360px;color:var(--ink)}.event-card h3{font-family:var(--font-display);text-transform:uppercase;margin:0;font-size:clamp(38px,5vw,72px);line-height:.95}.event-card p,.class-card p{color:var(--ink-600);margin:0}.event-card-cta,.class-card-cta{font-family:var(--font-mono);letter-spacing:.14em;text-transform:uppercase;color:var(--rally);font-size:12px}.public-pill,.class-tag{font-family:var(--font-mono);letter-spacing:.12em;text-transform:uppercase;border:1px solid;padding:5px 10px;font-size:11px;display:inline-flex}.public-pill.rally,.class-tag.rally{background:var(--rally);color:var(--bone);border-color:var(--rally)}.public-pill.warn,.class-tag.warn{background:var(--warn);color:var(--ink);border-color:var(--warn)}.public-pill.rust,.class-tag.rust{background:var(--rust);color:var(--bone);border-color:var(--rust)}.event-landing{min-height:620px}.event-meta{font-family:var(--font-mono);letter-spacing:.12em;text-transform:uppercase;margin-top:16px}.event-facts{background:#ffffff40;border:1px solid #ffffff40;grid-template-columns:repeat(3,1fr);gap:1px;display:grid}.event-facts div{background:#000000b8;padding:18px}.event-facts span,.event-facts small{font-family:var(--font-mono);letter-spacing:.12em;text-transform:uppercase;color:#ffffff9e;font-size:11px;display:block}.event-facts strong{font-family:var(--font-display);text-transform:uppercase;margin:8px 0;font-size:36px;line-height:1;display:block}.class-card{min-height:300px}.class-card.selected{border-color:var(--rally);box-shadow:4px 4px 0 var(--rally)}.class-stats{flex-wrap:wrap;gap:8px;display:flex}.class-stats span{background:var(--ink);color:var(--bone);font-family:var(--font-mono);letter-spacing:.08em;text-transform:uppercase;padding:6px 8px;font-size:11px}.rules-list{border-top:1px solid var(--ink);gap:0;margin:0;padding:0;list-style:none;display:grid}.rules-list li{border-bottom:1px solid var(--ink-200);grid-template-columns:52px 1fr;gap:20px;padding:18px 0;font-size:17px;display:grid}.rules-list span{font-family:var(--font-mono);color:var(--rally)}.public-alert,.public-loading{border:1px solid var(--rally);color:var(--rust);font-family:var(--font-mono);letter-spacing:.1em;text-transform:uppercase;background:#e25a1c14;margin:18px clamp(18px,5vw,72px);padding:14px 16px;font-size:12px}@media (width<=860px){.public-header{padding:14px 16px;position:static}.public-brand span{display:none}.public-nav{gap:12px;font-size:11px}.public-hero,.event-landing{background:linear-gradient(#000000d1,#0000009e),url(/assets/logo-terra-crest.jpg) 50%/cover;grid-template-columns:1fr;min-height:auto;padding:32px 16px}.public-hero h1,.public-page-head h1,.event-landing h1{font-size:clamp(48px,15vw,78px)}.public-hero p,.public-page-head p,.event-tagline{font-size:16px}.public-page,.public-section{padding:32px 16px}.public-section-head,.public-section.split{display:block}.event-grid,.event-grid.wide,.class-grid{grid-template-columns:1fr}.event-card,.class-card{min-height:220px;box-shadow:3px 3px 0 var(--ink);padding:20px}.event-facts{grid-template-columns:1fr}.rules-list{margin-top:18px}}
