@font-face{font-family:Barlow;src:url('/assets/fonts/barlow-400.woff2') format('woff2');font-weight:400;font-display:swap}
@font-face{font-family:Barlow;src:url('/assets/fonts/barlow-600.woff2') format('woff2');font-weight:600;font-display:swap}
@font-face{font-family:'Barlow Condensed';src:url('/assets/fonts/barlow-condensed-700.woff2') format('woff2');font-weight:700;font-display:swap}
@font-face{font-family:'IBM Plex Mono';src:url('/assets/fonts/ibm-plex-mono-400.woff2') format('woff2');font-weight:400;font-display:swap}
:root{color-scheme:dark;--heading:'Barlow Condensed',sans-serif;--mono:'IBM Plex Mono',monospace;--body:Barlow,system-ui,sans-serif;--ink:#edf2e2;--muted:#aabeb7;--lime:#cde3a1;--line:#30454a;--panel:#152329;--background:#0d171b}
*,*::before,*::after{box-sizing:border-box}
[hidden]{display:none!important}
body{margin:0;background:radial-gradient(ellipse at 12% 5%,#1b3031,transparent 44%),var(--background);color:var(--ink);font:16px/1.55 var(--body);min-height:100vh}
a{color:var(--lime)}
button,input,select{font:inherit}
button,select,input{min-height:42px;border:1px solid var(--line);border-radius:6px;color:var(--ink);background:#102025;padding:8px 12px}
button{cursor:pointer;font-weight:600}
button:hover:not(:disabled){border-color:#8ca578;background:#243b37}
button:disabled{opacity:.48;cursor:default}
button.primary{background:var(--lime);border-color:var(--lime);color:#182420}
button.primary:hover:not(:disabled){background:#e1edc8;color:#17251c}
:focus-visible{outline:2px solid var(--lime);outline-offset:3px}
input,select{max-width:100%;min-width:0}
label{display:grid;gap:5px}
.skip{position:absolute;z-index:5;left:8px;top:8px;padding:8px;background:var(--background);transform:translateY(-150%)}
.skip:focus{transform:none}
.masthead{display:flex;align-items:center;gap:20px;justify-content:space-between;border-bottom:1px solid var(--line);padding:15px clamp(16px,4vw,64px);background:#0e1a1e}
.brand,.session,#navigation{display:flex;align-items:center;gap:12px}
.brand{min-width:max-content}
.brand strong{display:block;font:700 28px/.95 var(--heading);letter-spacing:.02em}
.brand small,.eyebrow{font:400 10px/1.5 var(--mono);letter-spacing:.16em;color:var(--lime)}
.brand-mark{display:grid;place-items:center;width:44px;height:44px;border:1px solid #77945e;color:var(--lime);font-size:33px;line-height:1;clip-path:polygon(0 0,78% 0,100% 22%,100% 100%,0 100%)}
#navigation a{padding:9px 12px;text-decoration:none;color:var(--muted);font-weight:600;border-radius:6px;white-space:nowrap}
#navigation a[aria-current=page]{background:#243b37;color:var(--lime)}
.session{justify-content:flex-end;flex-wrap:wrap;gap:7px}
.session button{font-size:13px}
#workspace{width:min(100% - 36px,1420px);margin:0 auto;padding:34px 0 52px}
.feedback{padding:10px 14px;margin:0 0 15px;border:1px solid #597759;border-radius:6px;background:#1a302a;color:var(--ink)}
.feedback[data-error=true]{border-color:#a86a67;background:#342629;color:#f1c8be}
.access-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(290px,.68fr);gap:clamp(22px,5vw,78px);align-items:center;max-width:960px;margin:clamp(24px,8vh,95px) auto 0}
.access-intro h1,.workshop-title{font:700 clamp(42px,6.5vw,78px)/.96 var(--heading);margin:14px 0 16px;letter-spacing:-.02em}
.access-intro em{font-style:normal;color:var(--lime)}
.access-intro p,.workshop-copy{color:var(--muted);max-width:48ch;margin:0}
.protocol-mark{display:flex;align-items:center;gap:16px;width:max-content;margin-top:26px;padding:6px 12px;border-block:1px solid var(--line);font:12px var(--mono);color:#8caca5}
.protocol-mark span:nth-child(2){font-size:31px;color:var(--lime)}
.access-panel,.workshop-panel{background:var(--panel);border:1px solid var(--line);border-radius:9px;padding:clamp(17px,3vw,30px);min-width:0}
.access-panel h2,.workshop-panel h2{font:700 29px/1 var(--heading);margin:0 0 9px}
.access-panel p{color:var(--muted);margin:0 0 16px}
.access-panel form{display:grid;gap:13px}
.access-panel form>button{margin-top:5px}
.workshop-title{font-size:clamp(40px,5vw,59px);margin:6px 0 10px}
.workshop-head{margin-bottom:22px}
.workshop-grid{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(290px,1fr);gap:17px;align-items:start}
.workshop-panel{padding:clamp(15px,2vw,23px)}
.workshop-tools{display:grid;grid-template-columns:minmax(0,2fr) minmax(110px,1fr) minmax(110px,1fr);gap:8px;margin:13px 0}
.workshop-tabs,.workshop-actions,.workshop-page{display:flex;flex-wrap:wrap;align-items:center;gap:7px}
.workshop-tabs button[aria-pressed=true]{color:var(--lime);border-color:#8ca578;background:#263b36}
.workshop-page{justify-content:space-between;margin-top:12px;color:var(--muted);font:11px var(--mono)}
.workshop-page button{font-size:13px}
.card-list{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px}
.card-tile{border:1px solid var(--line);border-radius:6px;background:#101f24;min-width:0;overflow:hidden;display:flex;flex-direction:column}
.card-tile img{width:100%;aspect-ratio:5/7;object-fit:contain;background:#0d171b}
.card-tile strong,.card-tile small{display:block;padding:5px 8px 0;overflow-wrap:anywhere}
.card-tile strong{font-size:14px;line-height:1.25}
.card-tile small{color:var(--muted);font-size:12px;margin-bottom:8px}
.card-tile details{padding:0 8px 8px;color:var(--muted);font-size:12px;overflow-wrap:anywhere}
.card-tile summary{cursor:pointer;color:var(--lime)}
.card-tile details p{margin:5px 0;white-space:pre-line}
.card-tile button{margin:auto 6px 6px;border-radius:4px;font-size:13px}
.roster-top{display:grid;gap:8px}
.workshop-stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px;margin:14px 0}
.workshop-stats div{border:1px solid var(--line);border-radius:5px;background:#102025;padding:7px 9px}
.workshop-stats strong{display:block;color:var(--lime);font:700 23px/1 var(--heading)}
.workshop-stats small,.workshop-info{color:var(--muted);font-size:12px}
.ram-counts{font:12px/1.5 var(--mono);color:var(--lime);display:flex;flex-wrap:wrap;gap:6px 12px;margin-bottom:10px}
.roster-zone{border-top:1px solid var(--line);padding-top:10px;margin-top:10px}
.roster-zone h3{font:700 21px/1 var(--heading);margin:0 0 7px}
.roster-zone ul{list-style:none;padding:0;margin:0;display:grid;gap:5px;max-height:220px;overflow:auto}
.roster-zone li{display:flex;justify-content:space-between;align-items:center;gap:6px;font-size:14px;overflow-wrap:anywhere}
.roster-card{display:flex;align-items:center;gap:9px;min-width:0}
.roster-card img{flex:none;width:34px;height:48px;object-fit:contain;border-radius:3px;background:var(--line)}
.roster-zone li>span:last-child{display:flex;flex:none;gap:4px;align-items:center}
.roster-zone li button{min-width:37px;padding:4px 8px}
.workshop-actions{margin-top:15px}
.workshop-errors{color:#f4c2ad;font-size:13px;padding-left:19px;margin:8px 0}
@media(max-width:920px){.masthead{flex-wrap:wrap}.workshop-grid{grid-template-columns:minmax(0,1fr) minmax(250px,.9fr)}.card-list{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:700px){.masthead{padding:12px 14px;gap:10px}.brand strong{font-size:24px}#navigation{order:3;width:100%}.session button{min-height:44px}.session{margin-left:auto}.access-layout,.workshop-grid{grid-template-columns:minmax(0,1fr)}.access-layout{margin-top:0}.access-intro h1{font-size:clamp(36px,10vw,56px)}.protocol-mark{display:none}#workspace{width:calc(100% - 24px);padding-top:23px}.workshop-grid .roster{order:-1}.workshop-tools{grid-template-columns:repeat(2,minmax(0,1fr))}.workshop-tools label:first-child{grid-column:1/-1}.card-list{grid-template-columns:repeat(3,minmax(0,1fr))}.workshop-actions button{flex:1}button,select,input{min-height:44px}}
@media(max-width:430px){.card-list{grid-template-columns:repeat(2,minmax(0,1fr))}.session button{padding:5px 9px}.brand-mark{width:34px;height:34px;font-size:27px}.brand small{font-size:8px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;animation:none!important;transition:none!important}}
