:root{--bg:#101827;--panel:#182438;--line:#2b3b52;--ink:#f4f6fb;--muted:#aab6c8;--gold:#d9b879;--red:#ff7777}
*{box-sizing:border-box}body{margin:0;background:linear-gradient(145deg,#0c1421,#17253a);color:var(--ink);font:16px/1.5 system-ui,-apple-system,Segoe UI,sans-serif}
.topbar{height:64px;padding:0 5vw;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);background:#101827}
.brand{font-size:13px;letter-spacing:.16em;font-weight:800}.brand span{color:var(--gold)}nav{display:flex;gap:18px}a{color:var(--gold);text-decoration:none}a:hover{text-decoration:underline}
.wrap{max-width:1000px;margin:34px auto;padding:0 18px}.panel{background:var(--panel);border:1px solid var(--line);border-radius:18px;padding:22px;margin:16px 0;box-shadow:0 16px 50px #0002}
h1,h2,h3{line-height:1.2}h1{font-size:clamp(28px,5vw,42px);margin:0 0 8px}h2{font-size:22px;margin:0 0 14px}.muted{color:var(--muted)}.gold{color:var(--gold)}
button,.button{border:0;border-radius:10px;padding:12px 17px;background:var(--gold);color:#1a2230;font-weight:750;cursor:pointer;font-size:15px}button.secondary{background:#2b3b52;color:var(--ink)}button.danger{background:#8c343b;color:white}button:disabled{opacity:.45;cursor:not-allowed}
input,textarea,select{width:100%;padding:12px;border:1px solid var(--line);border-radius:10px;background:#101a29;color:var(--ink);font:inherit;margin:6px 0 14px}label{font-size:13px;color:var(--muted);display:block}
.row{display:flex;gap:12px;flex-wrap:wrap;align-items:center}.row>*{flex:1}.actions{display:flex;gap:10px;flex-wrap:wrap;margin:12px 0}.preview{width:100%;max-height:60vh;object-fit:contain;background:#0b111b;border-radius:12px}.capture{position:relative;max-width:680px;margin:auto}.capture video{width:100%;display:block;border-radius:12px;background:#000}.capture canvas{display:none}
.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:12px}.tile{background:#0e1928;border:1px solid var(--line);border-radius:12px;overflow:hidden}.tile img,.tile video{width:100%;height:180px;object-fit:cover;display:block}.tile p{padding:0 10px;color:var(--muted);font-size:13px}
#liveStage{background:#05080e;min-height:65vh;border-radius:16px;display:grid;place-items:center;position:relative;overflow:hidden}#liveMedia{max-width:100%;max-height:70vh;object-fit:contain}#comments{position:absolute;bottom:0;left:0;right:0;padding:14px;background:linear-gradient(transparent,#000c);display:flex;flex-direction:column;gap:5px;max-height:40%;overflow:auto}.comment{align-self:flex-start;background:#0009;padding:7px 12px;border-radius:12px;text-shadow:0 1px 2px #000}
.status{padding:10px 12px;border-radius:10px;background:#23364d;color:#dce8f7;margin:12px 0}.error{background:#51282e}.success{background:#1e493d}.hidden{display:none!important}.small{font-size:12px;color:var(--muted)}.progress{height:8px;background:#0c1421;border-radius:8px;overflow:hidden}.progress>i{display:block;height:100%;background:var(--gold);width:0}
@media(max-width:600px){.topbar{padding:0 14px}.topbar nav{gap:10px;font-size:13px}.panel{padding:16px}.wrap{margin:20px auto}}

/* Guest camera experience */
.guest-panel{max-width:820px;margin-left:auto;margin-right:auto}.guest-home{text-align:center;padding:12px 0 20px}.mode-choices{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin:26px auto 8px;max-width:620px}.mode-button{min-height:170px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;background:#21334b;color:var(--ink);border:1px solid #3b506d;border-radius:18px}.mode-button:hover{border-color:var(--gold);transform:translateY(-2px)}.mode-icon{font-size:42px;line-height:1;color:var(--gold)}.mode-button strong{font-size:19px}.mode-button small{font-size:12px;color:var(--muted);font-weight:400}.capture-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:16px}.capture-heading h2{margin:0}.frame-picker{display:flex;align-items:center;justify-content:center;gap:18px;margin:10px auto 16px;max-width:420px;touch-action:pan-y;user-select:none}.frame-choice{min-width:170px;text-align:center;display:flex;flex-direction:column;gap:2px}.frame-choice span{font-weight:750;color:var(--gold)}.frame-choice small{font-size:11px;color:var(--muted)}.icon-button{width:42px;height:42px;padding:0;font-size:28px;line-height:1}.camera-stage{position:relative;width:100%;max-height:68vh;aspect-ratio:4/3;background:#05080e;border-radius:16px;overflow:hidden;display:grid;place-items:center}.camera-stage video{width:100%;height:100%;object-fit:contain;background:#05080e}.camera-frame{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;pointer-events:none}.record-timer{position:absolute;top:14px;right:14px;background:#000b;color:#fff;border-radius:8px;padding:7px 11px;font-variant-numeric:tabular-nums;font-weight:800;letter-spacing:.05em}.camera-actions{display:flex;align-items:center;justify-content:center;gap:28px;margin:22px 0 8px;min-height:68px}.small-action{font-size:12px;padding:9px 12px}.shutter-button,.record-button{width:66px;height:66px;border-radius:50%;padding:0;display:grid;place-items:center;background:transparent;border:3px solid #fff;box-shadow:0 0 0 2px #0005}.shutter-button span{width:48px;height:48px;border-radius:50%;background:#fff}.record-button{border-radius:16px;border-color:#fff}.record-button span{width:25px;height:25px;border-radius:4px;background:#fff;transition:all .15s}.record-button.is-recording{border-radius:50%;border-color:#ff444f}.record-button.is-recording span{width:30px;height:30px;border-radius:50%;background:#ff3545}.review-area{margin-top:12px}.capture-result{display:block;width:100%;max-height:68vh;object-fit:contain;background:#05080e;border-radius:14px}.review-actions{display:flex;justify-content:center;gap:12px;margin:18px 0 8px}.review-actions button{min-width:140px}.capture-hint{text-align:center;margin-top:14px}.upload-progress{margin:16px 0}.upload-progress .progress{height:12px}.upload-progress .progress>i{transition:width .15s ease}.hidden{display:none!important}
@media(max-width:600px){.mode-choices{gap:10px}.mode-button{min-height:145px;padding:12px 8px}.mode-button strong{font-size:16px}.mode-icon{font-size:36px}.camera-stage{aspect-ratio:3/4;max-height:65vh}.camera-actions{gap:18px}.review-actions button{min-width:0;flex:1}.capture-heading button{padding:9px 12px}}

.camera-glyph{display:block;font-size:27px;line-height:1;filter:grayscale(1) brightness(2)}

/* Camera switch icon button */
.switch-camera-button{width:48px;height:48px;padding:10px;display:grid;place-items:center;flex:0 0 48px}
.switch-camera-button svg{width:34px;height:34px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}

footer{text-align: center;padding: 20px;font-size: 18px;}
