:root{
  --black:#020505;
  --charcoal:#071011;
  --panel:#0b1516;
  --panel-2:#101d1e;
  --aqua:#54e0dc;
  --aqua-soft:#8ef7f0;
  --aqua-deep:#187e82;
  --white:#f5f3ec;
  --paper:#cdbf9f;
  --paper-dim:#9c927d;
  --copper:#a66d43;
  --copper-hi:#d2a17c;
  --line:#25484a;
  --danger:#ffb6b6;
  --shadow:0 18px 55px rgba(0,0,0,.62);
}
*{box-sizing:border-box}
html{background:var(--black);min-height:100%}
body{margin:0;min-height:100vh;background:
  radial-gradient(ellipse at 50% -5%,rgba(26,104,108,.25),transparent 38%),
  linear-gradient(#061011 0,#030707 52%,#010303 100%);
  color:var(--white);font-family:Georgia,'Times New Roman',serif;overflow-x:hidden}
body:after{content:"";position:fixed;inset:0;pointer-events:none;z-index:20;opacity:.06;
  background-image:repeating-linear-gradient(0deg,rgba(255,255,255,.35) 0,rgba(255,255,255,.35) 1px,transparent 1px,transparent 4px)}
#aquaMist{position:fixed;z-index:0;inset:auto -18vw -28vh -18vw;height:68vh;filter:blur(22px);opacity:.8;pointer-events:none;
  background:
    radial-gradient(ellipse at 20% 55%,rgba(63,240,233,.22),transparent 30%),
    radial-gradient(ellipse at 80% 58%,rgba(40,188,190,.19),transparent 34%),
    radial-gradient(ellipse at 50% 80%,rgba(62,241,231,.10),transparent 38%)}
.app-shell{position:relative;z-index:1;max-width:780px;min-height:100vh;margin:0 auto;padding:env(safe-area-inset-top) 18px calc(88px + env(safe-area-inset-bottom))}
.screen{min-height:calc(100vh - 1px);display:flex;flex-direction:column;justify-content:center;padding:26px 0}.screen.top{justify-content:flex-start;padding-top:26px}
.archive-kicker{font:700 10px/1.3 Arial,sans-serif;letter-spacing:.33em;text-transform:uppercase;color:var(--aqua);text-align:center}
.archive-title{font-size:clamp(30px,8vw,48px);line-height:.95;letter-spacing:.035em;text-transform:uppercase;text-align:center;margin:10px 0 7px;text-shadow:0 0 22px rgba(66,221,215,.11)}
.archive-subtitle{text-align:center;color:#c4ccc8;font:600 12px Arial,sans-serif;letter-spacing:.22em;text-transform:uppercase}
.building-wrap{position:relative;margin:20px -8px 2px;min-height:250px;display:flex;align-items:flex-end;justify-content:center}
.building-wrap:before{content:"";position:absolute;inset:12% -10% -8%;background:radial-gradient(ellipse at 50% 66%,rgba(53,223,216,.29),transparent 46%);filter:blur(10px)}
.building{position:relative;width:100%;max-height:42vh;object-fit:contain;object-position:center bottom;filter:brightness(.73) contrast(1.1) saturate(.82) drop-shadow(0 15px 24px rgba(0,0,0,.85));mix-blend-mode:screen}
.archive-rule{height:1px;background:linear-gradient(90deg,transparent 0,rgba(84,224,220,.2) 12%,var(--aqua) 50%,rgba(84,224,220,.2) 88%,transparent 100%);box-shadow:0 0 14px rgba(84,224,220,.5);margin:20px 0}
.restricted-stamp{align-self:center;border:1px solid var(--copper);color:var(--copper-hi);padding:7px 12px 6px;transform:rotate(-1.2deg);font:700 10px Arial,sans-serif;letter-spacing:.22em;text-transform:uppercase;box-shadow:inset 0 0 14px rgba(166,109,67,.08)}
.copy{text-align:center;color:#cbd2ce;font:14px/1.65 Arial,sans-serif;max-width:520px;margin:12px auto 0}.tiny{text-align:center;color:#7e908d;font:11px/1.5 Arial,sans-serif}
.choice-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:20px}
.choice{background:linear-gradient(155deg,rgba(14,31,32,.97),rgba(4,10,10,.98));border:1px solid var(--line);box-shadow:var(--shadow);padding:19px 16px;min-height:145px;border-radius:3px;display:flex;flex-direction:column;justify-content:flex-end;cursor:pointer}
.choice:hover,.choice:focus-visible{border-color:var(--aqua);outline:none}.choice .icon{font-size:28px;margin-bottom:auto;color:var(--aqua)}.choice strong{font:700 13px Arial,sans-serif;letter-spacing:.12em;text-transform:uppercase}.choice span{margin-top:7px;color:#9fb0ad;font:12px/1.4 Arial,sans-serif}
.panel{background:linear-gradient(145deg,rgba(13,27,28,.98),rgba(5,11,12,.99));border:1px solid var(--line);box-shadow:var(--shadow);padding:20px;border-radius:3px;margin-top:18px;position:relative;overflow:hidden}
.panel:before{content:"";position:absolute;left:0;top:0;bottom:0;width:2px;background:linear-gradient(transparent,var(--aqua),transparent);opacity:.65}
.form-label{display:block;color:#cad8d5;font:700 10px Arial,sans-serif;letter-spacing:.18em;text-transform:uppercase;margin-bottom:8px}
.code-input{width:100%;border:1px solid #315b5d;background:#020606;color:white;padding:16px 14px;border-radius:2px;font:700 18px Arial,sans-serif;letter-spacing:.18em;text-transform:uppercase;outline:none}.code-input:focus{border-color:var(--aqua);box-shadow:0 0 0 2px rgba(84,224,220,.1),0 0 24px rgba(84,224,220,.1)}
.btn{width:100%;border:1px solid #3f7779;background:linear-gradient(#153234,#0a1b1c);color:#efffff;padding:14px 15px;margin-top:11px;border-radius:2px;font:700 11px Arial,sans-serif;letter-spacing:.18em;text-transform:uppercase;cursor:pointer}.btn:hover,.btn:focus-visible{border-color:var(--aqua);outline:none}.btn.secondary{background:#070d0e;border-color:#314546;color:#b9c4c1}.btn.small{width:auto;margin:0;padding:9px 11px}.error{min-height:20px;margin:9px 0 0;color:var(--danger);font:12px Arial,sans-serif;text-align:center}.success-glow{color:var(--aqua);text-shadow:0 0 18px rgba(84,224,220,.5)}
.grant{padding-top:7vh}.grant-mark{width:68px;height:68px;border:1px solid var(--aqua);border-radius:50%;margin:0 auto 20px;display:grid;place-items:center;color:var(--aqua);font:700 27px Arial,sans-serif;box-shadow:0 0 38px rgba(84,224,220,.18),inset 0 0 22px rgba(84,224,220,.06)}
.case-id{margin:20px auto 0;max-width:520px;background:linear-gradient(150deg,#151b1a,#0b0e0d);border:1px solid #5f5748;padding:18px;box-shadow:0 15px 40px #0008;transform:rotate(-.2deg)}
.case-id .micro{font:700 9px Arial,sans-serif;letter-spacing:.18em;color:var(--paper-dim);text-transform:uppercase}.case-id h2{margin:7px 0 2px;color:#e0d8c4;text-transform:uppercase;font-size:27px;line-height:1}.case-id .subject{font:700 14px Arial,sans-serif;letter-spacing:.12em;color:var(--aqua);text-transform:uppercase}.case-id .line{height:1px;background:#564f42;margin:14px 0}
.topbar{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:16px}.team-tag{font:700 10px Arial,sans-serif;color:var(--aqua);letter-spacing:.17em;text-transform:uppercase}.brand-mini{font:700 10px Georgia,serif;letter-spacing:.12em;text-transform:uppercase;color:#d6d3c9}.section-title{font-size:31px;line-height:.98;margin:8px 0 4px;text-transform:uppercase}.section-desc{color:#9fb0ad;font:13px/1.55 Arial,sans-serif;margin-top:7px}
.dashboard-grid{display:grid;grid-template-columns:1fr 1fr;gap:11px;margin-top:18px}.dash-card{min-height:132px;padding:15px;border:1px solid var(--line);background:linear-gradient(155deg,#102122,#061011);box-shadow:0 12px 34px #0007;cursor:pointer;border-radius:2px;display:flex;flex-direction:column;justify-content:flex-end}.dash-card:hover,.dash-card:focus-visible{border-color:var(--aqua);outline:none}.dash-card .num{font:700 10px Arial,sans-serif;color:var(--copper-hi);letter-spacing:.16em;margin-bottom:auto}.dash-card strong{font:700 12px Arial,sans-serif;letter-spacing:.12em;text-transform:uppercase}.dash-card span{font:11px/1.4 Arial,sans-serif;color:#8fa09d;margin-top:5px}
.archive-list{display:grid;gap:10px;margin-top:17px}.archive-item{border:1px solid var(--line);background:#071011;padding:15px;display:flex;align-items:center;gap:13px;cursor:pointer}.archive-item:hover{border-color:#478082}.file-badge{min-width:48px;height:58px;border:1px solid #5d594e;background:linear-gradient(#c6b896,#9c8f70);color:#262016;display:grid;place-items:center;font:700 11px Arial,sans-serif;transform:rotate(-1deg)}.archive-item strong{display:block;font:700 12px Arial,sans-serif;letter-spacing:.08em;text-transform:uppercase}.archive-item span{display:block;color:#81918e;font:11px/1.4 Arial,sans-serif;margin-top:4px}.coming{color:#d4c29c}
.map-list{display:grid;gap:9px;margin-top:18px}.map-row{display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid #1f383a;padding:13px 4px}.level{font:700 11px Arial,sans-serif;color:var(--aqua);letter-spacing:.18em}.floor{font:700 12px Arial,sans-serif;letter-spacing:.08em;text-transform:uppercase}.muted{color:#82918f}
.bottom-nav{position:fixed;z-index:15;left:50%;transform:translateX(-50%);bottom:0;width:min(780px,100%);padding:8px 12px calc(8px + env(safe-area-inset-bottom));background:linear-gradient(transparent,#020505 28%,#020505 100%);display:flex;gap:7px}.nav-btn{flex:1;border:1px solid #1e393a;background:#071011;color:#9fb0ad;padding:11px 4px;font:700 9px Arial,sans-serif;letter-spacing:.08em;text-transform:uppercase}.nav-btn.active{color:var(--aqua);border-color:#397072}
.note{border-left:2px solid var(--copper);padding:10px 12px;margin-top:16px;background:rgba(166,109,67,.06);font:12px/1.55 Arial,sans-serif;color:#c6bda9}
@media(max-width:420px){.app-shell{padding-left:14px;padding-right:14px}.building-wrap{min-height:215px}.choice-grid,.dashboard-grid{gap:9px}.choice{min-height:132px;padding:15px 13px}.dash-card{min-height:123px}}
@media(min-width:700px){.screen{padding-left:40px;padding-right:40px}.building{max-width:680px}.dashboard-grid{grid-template-columns:repeat(4,1fr)}}
.evidence-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}.evidence-card{border:1px solid #315255;background:#091314;padding:8px;cursor:pointer}.evidence-card img{display:block;width:100%;aspect-ratio:8.5/11;object-fit:cover;object-position:top;background:#020404}.evidence-card .ev-label{font:700 11px Arial,sans-serif;letter-spacing:.12em;color:#62ded9;padding:8px 3px 2px;text-transform:uppercase}.viewer{position:fixed;z-index:99;inset:0;background:#000;overflow:auto;overscroll-behavior:contain;touch-action:pinch-zoom}.viewer img{display:block;width:100%;height:auto;min-height:100%;object-fit:contain}.viewer-close{position:fixed;z-index:100;top:max(12px,env(safe-area-inset-top));right:12px;width:auto!important;margin:0!important;background:#071112e8!important}.building{filter:drop-shadow(0 18px 30px #000) drop-shadow(0 0 22px #40dcd855)}
.viewer-toolbar{position:fixed;top:0;left:0;right:0;z-index:3;display:flex;align-items:center;justify-content:space-between;padding:12px;background:linear-gradient(180deg,rgba(0,0,0,.92),rgba(0,0,0,.35),transparent)}
.viewer-count{font-size:12px;letter-spacing:.16em;text-transform:uppercase;color:#d9f8f5;padding-right:10px;text-shadow:0 0 12px rgba(45,224,213,.45)}
.viewer-image-wrap{width:100%;min-height:100%;display:flex;align-items:flex-start;justify-content:center;padding:70px 8px 86px;overflow:auto;-webkit-overflow-scrolling:touch}
.viewer-image-wrap img{max-width:100%;height:auto;display:block;touch-action:pinch-zoom}
.viewer-nav{position:fixed;left:0;right:0;bottom:0;z-index:3;display:grid;grid-template-columns:1fr 1fr;gap:10px;padding:12px;background:linear-gradient(0deg,rgba(0,0,0,.94),rgba(0,0,0,.55),transparent)}
.viewer-nav .btn{margin:0}.viewer-nav .btn:disabled{opacity:.3}
.expo-lockup{margin:18px 0 4px;padding:18px;border:1px solid #315255;background:radial-gradient(circle at 50% 120%,rgba(84,224,220,.14),transparent 55%),linear-gradient(145deg,#0b191a,#040909);text-align:center;box-shadow:0 14px 38px #0008}.expo-lockup .micro{font:700 9px Arial,sans-serif;letter-spacing:.3em;color:var(--aqua)}.expo-lockup h2{margin:6px 0 4px;text-transform:uppercase;font-size:25px}.expo-lockup>div:last-child{font:700 10px Arial,sans-serif;letter-spacing:.16em;color:#a9bbb8}.disabled-card{cursor:default;opacity:.68}.disabled-card:hover{border-color:var(--line)}
.filter-row{display:flex;gap:8px;overflow-x:auto;padding:12px 0 5px;scrollbar-width:none}.filter-row::-webkit-scrollbar{display:none}.filter-chip{white-space:nowrap;border:1px solid #29494b;background:#071011;color:#a9b8b5;padding:9px 11px;font:700 9px Arial,sans-serif;letter-spacing:.08em;text-transform:uppercase;border-radius:20px}.filter-chip.active{border-color:var(--aqua);color:var(--aqua);box-shadow:0 0 15px rgba(84,224,220,.1)}
.session-list,.presentation-list{display:grid;gap:10px;margin-top:12px}.session-card{display:grid;grid-template-columns:86px 1fr;border:1px solid #28484a;background:linear-gradient(145deg,#0c191a,#050b0c);box-shadow:0 10px 28px #0006}.session-time{padding:15px 10px;border-right:1px solid #28484a;color:var(--aqua);font:700 11px/1.35 Arial,sans-serif;letter-spacing:.04em}.session-main{padding:13px}.session-speaker,.presentation-speaker{font:700 10px Arial,sans-serif;letter-spacing:.1em;text-transform:uppercase;color:#c7d1ce}.session-main h3{font-size:17px;line-height:1.15;margin:5px 0 10px;color:#f1eee5}.session-meta{display:flex;align-items:center;gap:8px;flex-wrap:wrap;font:700 9px Arial,sans-serif;letter-spacing:.09em;text-transform:uppercase;color:#8fa5a1}.ticket-badge{border:1px solid var(--copper);color:var(--copper-hi);padding:4px 6px;font:700 8px Arial,sans-serif;letter-spacing:.08em;text-transform:uppercase}.presentation-card{border:1px solid #29494b;background:linear-gradient(150deg,#101b1a,#070b0b);padding:16px;box-shadow:0 12px 30px #0006}.presentation-kicker{font:700 9px Arial,sans-serif;letter-spacing:.12em;text-transform:uppercase;color:var(--aqua)}.presentation-card h2{font-size:20px;line-height:1.08;margin:8px 0;color:#eee9dc}.ticket-badge.standalone{display:inline-block;margin-top:11px}.public-nav{justify-content:center}.public-nav .nav-btn{max-width:210px}
@media(max-width:420px){.session-card{grid-template-columns:76px 1fr}.session-time{padding-left:8px;padding-right:8px}.session-main h3{font-size:16px}}

/* Public vendor directory + expo maps */
.public-dashboard{grid-template-columns:repeat(2,1fr)}
.vendor-tools{position:sticky;top:0;z-index:8;padding:8px 0 12px;background:linear-gradient(#020505 75%,transparent)}
.vendor-search{width:100%;border:1px solid #315b5d;background:#020809;color:#fff;padding:13px 14px;border-radius:2px;font:600 14px Arial,sans-serif;outline:none}
.vendor-search:focus{border-color:var(--aqua);box-shadow:0 0 0 2px rgba(84,224,220,.08)}
.vendor-ready-count{margin-top:7px;color:#7e9794;font:700 9px Arial,sans-serif;letter-spacing:.12em;text-transform:uppercase}.vendor-card.asset-ready{border-color:#397375}.vendor-card.asset-ready .vendor-art{cursor:zoom-in}
.vendor-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:11px;margin-top:5px}
.vendor-card{border:1px solid #29494b;background:linear-gradient(150deg,#0d1919,#050909);box-shadow:0 10px 28px #0006;overflow:hidden}
.vendor-art{position:relative;aspect-ratio:1/1;background:radial-gradient(circle at 50% 70%,rgba(84,224,220,.10),transparent 55%),#050b0b;overflow:hidden}
.vendor-art img{width:100%;height:100%;object-fit:cover;display:block}
.vendor-placeholder{display:none;position:absolute;inset:0;place-items:center;text-align:center;border-bottom:1px solid #29494b}
.vendor-placeholder span,.map-placeholder span{display:block;font:700 8px Arial,sans-serif;letter-spacing:.22em;color:#79908d}.vendor-placeholder strong,.map-placeholder strong{display:block;font:700 34px Georgia,serif;color:var(--aqua);margin:5px 0;text-shadow:0 0 20px rgba(84,224,220,.22)}.vendor-placeholder small,.map-placeholder small{font:700 7px Arial,sans-serif;letter-spacing:.16em;color:#9aa8a5}
.vendor-meta{padding:11px}.vendor-meta h3{margin:6px 0 4px;font-size:14px;color:#efeade}.vendor-meta p{margin:0;color:#82928f;font:10px/1.4 Arial,sans-serif}
.expo-map-grid{display:grid;grid-template-columns:1fr;gap:14px;margin-top:16px}.expo-map-card{border:1px solid #315255;background:#091314;padding:8px;cursor:pointer}.expo-map-art{position:relative;aspect-ratio:8.5/11;background:#040909;overflow:hidden}.expo-map-art img{width:100%;height:100%;object-fit:contain;display:block}.map-placeholder{display:none;position:absolute;inset:0;place-items:center;text-align:center;background:radial-gradient(circle at 50% 60%,rgba(84,224,220,.10),transparent 55%)}
.public-nav{overflow-x:auto;justify-content:flex-start;scrollbar-width:none}.public-nav::-webkit-scrollbar{display:none}.public-nav .nav-btn{min-width:74px;max-width:none}
@media(min-width:700px){.vendor-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.expo-map-grid{grid-template-columns:repeat(3,1fr)}.public-dashboard{grid-template-columns:repeat(4,1fr)}}

/* Expo sponsor footer */
.sponsor-block{margin:28px 0 16px;padding:24px;border:1px solid rgba(103,232,249,.24);border-radius:18px;background:linear-gradient(180deg,rgba(8,20,25,.92),rgba(5,12,16,.96));text-align:center;box-shadow:0 0 30px rgba(34,211,238,.06)}
.sponsor-block h2{margin:6px 0 8px;font-size:clamp(1.6rem,6vw,2.4rem);letter-spacing:.08em;text-transform:uppercase}
.sponsor-block p{margin:0;opacity:.72}
.team-label{margin-top:12px;font-size:.78rem;letter-spacing:.12em;text-transform:uppercase;color:var(--aqua,#57e8e3);font-weight:800}.team-gallery{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px;margin-top:9px}.team-member{appearance:none;border:1px solid rgba(91,231,226,.28);background:rgba(0,0,0,.28);padding:0;border-radius:10px;overflow:hidden;color:inherit;text-align:left;cursor:pointer}.team-member img{display:block;width:100%;aspect-ratio:4/5;object-fit:cover}.team-member span{display:block;padding:7px 8px;font-size:.76rem;font-weight:700}.team-member:focus-visible{outline:2px solid #fff;outline-offset:2px}
