:root{color-scheme:dark;--background: #141315;--surface: #201e21;--panel: #262326;--line: #403a3e;--muted: #b6acaa;--text: #f4eae4;--red: #e45344;--red-deep: #b83227;--paper: #fffefa;font:15px/1.5 system-ui,sans-serif}*,*:before,*:after{box-sizing:border-box}body{margin:0;color:var(--text);background:var(--background)}[hidden]{display:none!important}button,input,select,textarea{font:inherit}button,a,.file-action{-webkit-tap-highlight-color:transparent}a{color:inherit}:focus-visible{outline:2px solid #ff9c8d;outline-offset:4px}button:disabled{opacity:.52;cursor:wait}button,.action{cursor:pointer}.gate-page{background:radial-gradient(ellipse at 48% 84%,#211a14c9,transparent 64%),radial-gradient(ellipse at 51% 46%,#11101930,#0a090cda 86%),url(/gate-texture.webp) center / cover,#131215}.gate{min-height:100svh;display:grid;place-items:center;padding:62px 22px 87px}.gate-content{width:min(100%,820px);text-align:center}.gate-logo{display:block;width:clamp(80px,11vw,116px);height:auto;margin:0 auto 24px;border:1px solid #766260;border-radius:7px;box-shadow:0 10px 36px #0008}.gate-content h1{margin:0;color:var(--red);font:800 clamp(2.65rem,7.7vw,6.4rem)/.98 Georgia,serif;letter-spacing:-.075em;text-wrap:balance;overflow-wrap:anywhere;text-shadow:0 4px 28px #350a0890}.gate-caption{margin:21px 0 36px;color:#fa7e6b;font:600 .72rem Georgia,serif;letter-spacing:.38em}.gate-instruction{max-width:330px;margin:0 auto;color:#f4ebe4;font:italic 550 clamp(1.16rem,2.3vw,1.55rem)/1.36 Georgia,serif}.gate-actions,.dialog-actions{display:flex;justify-content:center;gap:12px;flex-wrap:wrap}.gate-actions{margin-top:42px}.action{border:1px solid #a7473f;border-radius:2px;padding:11px 17px;min-height:43px;background:#1a1719;color:#fff5ee;display:inline-flex;align-items:center;justify-content:center;gap:8px;text-decoration:none;line-height:1.25;font-weight:650}.action:hover{border-color:#f38474;background:#332226}.action.primary{color:#fff;background:var(--red-deep);border-color:#e5614f}.action.primary:hover{background:#cb3e31}.action.subtle{border-color:var(--line)}.action.danger{color:#f6a192;border-color:#8d4a43}.gate-actions .action{min-width:162px;font:650 .78rem/1.2 Georgia,serif;letter-spacing:.17em;text-transform:uppercase;padding:14px 20px}.gate-actions .primary{box-shadow:0 0 34px #a12a2340}.scan-icon{width:17px;height:17px;flex:none}.gate-code{margin:24px auto 0;width:min(100%,410px);text-align:left}.gate-code label{display:block;margin-bottom:5px;font-size:.83rem;color:var(--muted)}.gate-code div{display:flex;gap:7px}.gate-code input{min-width:0;flex:1;text-transform:uppercase;letter-spacing:.13em}.gate-status{margin:16px 0 0;min-height:1.5em;font-size:.85rem}[data-error=true]{color:#ff9a89!important}.access-dialog{padding:22px;border:1px solid #544548;border-radius:8px;background:#201c20;color:var(--text);width:min(460px,calc(100vw - 32px));max-height:calc(100svh - 32px);overflow:auto;box-shadow:0 24px 90px #000b}.access-dialog::backdrop{background:#09080bd4}.dialog-head{display:flex;align-items:start;justify-content:space-between;gap:15px}.dialog-head h2{margin:0;font:400 1.65rem/1.12 Georgia,serif}.close-dialog{width:36px;height:36px;font-size:23px;line-height:1;border:1px solid var(--line);border-radius:4px;background:#2e282d;color:var(--text)}.dialog-actions{justify-content:flex-start}.scan-camera{position:relative;margin-top:12px;background:#0c0b0e}.scan-camera video{width:100%;display:block;max-height:42vh;object-fit:cover}.scan-reticle{position:absolute;width:46%;max-width:160px;aspect-ratio:1;inset:50% auto auto 50%;translate:-50% -50%;border:2px solid #ff9487;border-radius:7px;box-shadow:0 0 0 60vw #0002;pointer-events:none}.scan-camera{overflow:hidden}.file-action{position:relative;overflow:hidden}.file-action input{position:absolute;inset:0;width:100%;height:100%;opacity:0;cursor:pointer}.file-action:focus-within{outline:2px solid #ff9c8d;outline-offset:4px}.admin-page{background:radial-gradient(ellipse at 75% -45%,#3d252a,transparent 62%),#161518}.admin-wrap{width:min(1200px,100% - 44px);margin-inline:auto}.admin-bar{display:flex;justify-content:space-between;align-items:center;gap:18px;flex-wrap:wrap;padding-block:25px 19px;border-bottom:1px solid var(--line)}.admin-brand{display:inline-flex;align-items:center;gap:10px;color:#f28170;font:700 1.1rem/1 Georgia,serif}.admin-brand img{display:block;flex:none;border:1px solid var(--line);border-radius:4px}.admin-bar h1{margin:4px 0 0;font:500 2.25rem/1.07 Georgia,serif;letter-spacing:-.035em}.admin-nav{display:flex;gap:6px;flex-wrap:wrap;padding:17px 0;align-items:center}.admin-nav button{padding:8px 12px;min-height:39px;border:1px solid transparent;border-radius:4px;background:transparent;color:#d9ccca;font-weight:600}.admin-nav button[aria-current=page]{background:#382729;color:#ffd1c6;border-color:#8d4942}.admin-nav button:hover{border-color:#794640}.admin-main{padding-bottom:64px}.admin-main h2{margin:0 0 8px;font:500 1.85rem/1.12 Georgia,serif}.admin-main h3{margin:0 0 10px;font:500 1.36rem/1.15 Georgia,serif}.admin-main p{margin:0 0 12px}.admin-main p:last-child{margin-bottom:0}.admin-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin-top:18px}.admin-card{padding:17px;background:var(--surface);border:1px solid var(--line);border-radius:7px;min-width:0}.admin-small{color:var(--muted);font-size:.83rem}.admin-row{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.admin-form{display:grid;gap:10px}.admin-form .action{justify-self:start}.admin-form label,.admin-field{display:grid;gap:5px;font-size:.87rem;font-weight:600}.admin-form input[type=checkbox]{margin:0}.admin-form .check-line{display:flex;align-items:center;gap:8px;margin-top:3px}input:not([type=file]):not([type=checkbox]),select,textarea{min-height:41px;background:#171518;color:var(--text);border:1px solid #5c4e51;border-radius:4px;padding:8px 10px;width:100%}input[type=file]{display:block;max-width:100%;color:var(--muted)}input::file-selector-button{background:#37292c;color:var(--text);padding:6px 10px;border:1px solid #63494d;border-radius:3px;font:inherit;margin-right:9px;cursor:pointer}select{padding-right:28px}textarea{resize:vertical;min-height:84px}.admin-login{min-height:100svh;display:grid;place-items:center;padding:24px}.admin-login .admin-card{width:min(100%,424px);padding:23px;text-align:center}.admin-login .admin-form label{text-align:left}.admin-login .admin-form .action{justify-self:center;min-width:98px}.admin-login h1{margin:9px 0 17px;font:500 2rem/1.1 Georgia,serif}.admin-login .admin-small{margin:14px 0 0}.admin-list{display:grid;gap:10px;margin-top:13px}.admin-list-item{padding:10px;min-width:0;border:1px solid var(--line);border-radius:5px;background:#242125;overflow-wrap:anywhere}.admin-list-item strong{display:block;font-size:.98rem}.admin-list-item .admin-small{display:block;margin-top:2px}.admin-list-item .admin-row{margin-top:9px}.admin-list-item audio{width:100%;height:34px;margin:8px 0 0;display:block}.admin-list-item .action,.frame-card .action,.folder-sidebar .action{min-height:35px;padding:7px 10px;font-size:.82rem}.admin-list-item form{display:flex;flex-wrap:wrap;gap:8px;margin-top:8px}.admin-list-item form input{flex:1;min-width:130px}.access-preview{max-width:480px;margin-top:14px}.pass-card{display:grid;gap:9px;text-align:center;padding:16px;margin:14px 0;background:#faf7f1;border-radius:5px;color:#20161a}.pass-card strong{font:600 1.2rem Georgia,serif}.pass-card code{font-size:clamp(1rem,4vw,1.7rem);letter-spacing:.08em;overflow-wrap:anywhere}.pass-card img{width:min(100%,270px);margin:0 auto;height:auto;display:block}.pass-card small{overflow-wrap:anywhere}.pass-details{margin:10px 0;color:var(--muted);font-size:.84rem}.pass-edit .admin-form{margin-top:16px}.pass-edit .admin-small,.pass-edit-error{margin:0}.pass-edit-error{color:#ff9a89;font-size:.84rem}.pass-edit .admin-small:empty,.pass-edit-error:empty{display:none}.file-grid{grid-template-columns:minmax(200px,295px) minmax(0,1fr)}.folder-links{display:grid;gap:6px;margin:0 0 13px}.folder-links .action{justify-content:flex-start;overflow-wrap:anywhere;text-align:left}.folder-links .action[aria-pressed=true]{border-color:#b76254;background:#3a2b2f}.frame-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.frame-card img{display:block;width:auto;height:147px;max-width:100%;object-fit:cover;border:1px solid var(--line);border-radius:4px;margin-bottom:10px}.frame-size{color:#f7bea9;font-size:.87rem;font-weight:650}.frame-card p:empty{display:none}.guitar-backing-form{border-bottom:1px solid var(--line);padding-bottom:16px;margin-bottom:16px}.plaque-editor{margin-top:14px;padding-top:11px;border-top:1px solid var(--line)}.plaque-editor summary{cursor:pointer;color:#f4c79f;font-weight:650}.plaque-preview{display:block;width:auto;max-width:100%;max-height:164px;margin:11px auto;border-radius:2px}.lookup-settings{margin-top:16px}.riff-tutorial{margin-top:9px}.lookup-settings summary,.riff-tutorial summary{color:#f3c8ba;cursor:pointer;font-weight:650}.lookup-settings[open] summary,.riff-tutorial[open] summary{margin-bottom:10px}.riff-tutorial .admin-form{display:grid;gap:8px;border-top:1px solid var(--line);padding-top:10px}#admin-status{position:fixed;bottom:16px;right:18px;max-width:min(540px,calc(100% - 36px));z-index:3;margin:0;padding:9px 14px;border-radius:5px;background:#292326;border:1px solid #615253;box-shadow:0 6px 18px #0008;overflow-wrap:anywhere}#admin-status:empty{display:none}@media(max-width:850px){.frame-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:620px){.gate{padding-block:42px 52px}.admin-wrap{width:calc(100% - 28px)}.admin-grid{grid-template-columns:minmax(0,1fr)}.admin-bar h1{font-size:1.9rem}.gate-actions{margin-top:30px}.gate-actions .action{min-width:132px;padding-inline:12px;font-size:.7rem}}@media print{:root{color-scheme:light}body{background:#fff;color:#000}#admin-app,#admin-status,.dialog-head,.dialog-actions,.pass-details,.pass-edit{display:none!important}.pass-dialog[open]{display:block;position:static;padding:0;margin:0 auto;width:100%;max-width:480px;border:0;box-shadow:none;background:#fff}.pass-dialog::backdrop{display:none}.pass-card{padding:20px;border:1px solid #111;color:#000;background:#fff}}
