*{box-sizing:border-box}body{margin:0;background:#101318;color:#dce2ea;font:13px 'Segoe UI',Arial,sans-serif}a{color:inherit;text-decoration:none}button,input{font:inherit}button{cursor:pointer}button:disabled{opacity:.35;cursor:not-allowed}button:focus-visible,a:focus-visible,input:focus-visible,label:focus-within{outline:2px solid #f2b84b;outline-offset:3px}.shell{max-width:1480px;margin:auto;padding:0 22px}header{height:64px;display:flex;align-items:center;gap:24px;border-bottom:1px solid #303743}header>strong{font-size:15px;white-space:nowrap}nav{display:flex;gap:22px;margin:auto;font-size:12px;color:#8d98a7}nav .active,nav a:hover{color:#f2b84b}.connection{display:flex;gap:8px;align-items:center;color:#93b69b;font-size:11px;white-space:nowrap}.connection i,.live-tag i,.launch-status i{display:inline-block;width:6px;height:6px;border-radius:50%;background:#8ed39a}.connection.offline{color:#e58a75}.connection.offline i{background:#e58a75}main{padding:18px 0}.console-grid{display:grid;grid-template-columns:minmax(0,2fr) minmax(260px,1fr);gap:14px}.card{background:#191e25;border:1px solid #343b47;border-radius:5px;padding:18px}.card h2,.section-heading h2{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:1px;margin:0 0 16px;color:#a5afbc}.card-top{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:14px}.card-top h2{margin:0}.live-tag{font:10px Consolas,monospace;display:flex;align-items:center;gap:7px}.preview-wrap{aspect-ratio:16/9;position:relative;background:#111916;border:1px solid #39414b}.preview-wrap canvas,canvas{width:100%;height:100%;display:block}.preview-expand{position:absolute;bottom:8px;right:8px;background:#161c22a0;border:1px solid #59606c;padding:5px 9px;border-radius:3px}.instrument-row{display:grid;grid-template-columns:1fr 1fr 2fr;gap:14px;margin-top:16px}.instrument-row>div{border:1px solid #323a45;background:#10151b;padding:11px}.instrument-row span{display:block;font-size:9px;color:#818d9f;margin-bottom:7px;letter-spacing:1px}.instrument-row strong{font:20px Consolas,monospace;color:#dce8d5}.instrument-row>div:last-child strong{font-size:12px;line-height:1.7}.button{display:inline-flex;justify-content:center;align-items:center;gap:6px;border-radius:3px;padding:12px 16px;font-size:12px;font-weight:500;border:1px solid transparent;cursor:pointer}.button:hover:not(:disabled){filter:brightness(1.12)}.gold{background:#edb44e;color:#171b20;border-color:#f7c471}.outline{background:#202731;border-color:#455061;color:#d2dae4}.subtle{background:#28313c;color:#c9d2dd;border-color:#3d4959}.wide{width:100%;margin-bottom:11px}.small{padding:9px 11px;font-size:11px}.cue-card #launch-button{min-height:58px;font-size:17px;text-transform:uppercase;letter-spacing:2px}.divider{height:1px;background:#343c48;margin:15px 0}.demo-actions{display:flex;gap:8px;margin-bottom:13px}.demo-actions .button{flex:1;padding:10px 6px;font-size:10px}.text-button{color:#a3aeba;border:0;background:none;font-size:11px;padding:0}.qr-inner{display:flex;gap:14px;align-items:center}.qr-inner img{width:76px;height:76px}.qr-inner strong{font-size:11px}.qr-inner p,.qr-inner a{font-size:10px;color:#93a1b5;overflow-wrap:anywhere;margin:6px 0}.timing-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:18px}.timing-grid label{font-size:11px;color:#9ea9b8}.timing-grid input{display:block;width:100%;margin-top:7px;background:#0f151d;color:#e8dfbf;border:1px solid #465369;border-radius:3px;padding:10px;font:14px Consolas,monospace}.speed-label{display:flex;align-items:center;gap:13px;font-size:11px;color:#9ea9b8;margin-bottom:17px}.speed-label input{flex:1;accent-color:#f2b84b}.speed-label span{font-family:Consolas,monospace;min-width:27px}#logo-status{display:flex;align-items:center;gap:13px;font-size:12px;color:#aab4c1}#logo-status img{max-width:190px;max-height:85px;object-fit:contain}.photos-card{grid-column:1/-1}.photo-grid{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:8px;max-height:260px;overflow:auto}.photo-tile{aspect-ratio:1;position:relative;background:#202731;overflow:hidden;border-radius:3px}.photo-tile img{width:100%;height:100%;object-fit:cover}.photo-tile button{position:absolute;right:4px;top:4px;border:1px solid #7e869366;border-radius:3px;background:#101720ce;color:white;width:23px;height:23px;font-size:17px}.photo-tile>span{display:none}.empty-gallery{grid-column:1/-1;text-align:center;padding:25px;color:#657185;font:11px Consolas,monospace}.section-heading{display:flex;align-items:center;justify-content:space-between;margin:24px 0 12px}.section-heading h2{margin:0}.section-heading>span{font-size:11px;color:#929caa}.dropzone{border:1px dashed #586576;min-height:210px;display:flex;flex-direction:column;gap:17px;align-items:center;justify-content:center;cursor:pointer;background:#141b24;font-size:11px;color:#96a2b4}.dropzone.dragging,.dropzone:hover{border-color:#edb44e}.upload-demo{display:flex;align-items:center;gap:15px;margin-top:16px}.upload-demo>span{font-size:10px;color:#8390a4}.queue-item{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:12px 0;border-bottom:1px solid #343c48;font-size:11px}.queue-item small{color:#a1be94}.queue-item.error small{color:#e79776}.queue-item button{background:#202731;color:white;border:1px solid #556173;border-radius:3px}.launch-page{max-width:450px;margin:70px auto;text-align:center}.launch-details{display:flex;justify-content:space-between;margin-bottom:25px;color:#97a5b7;font-size:11px}.launch-details b{color:#e4dfc9;font:16px Consolas,monospace}.launch-key{display:block;width:100%;min-height:210px;background:#edb44e;border:2px solid #ffe0a1;border-radius:5px;color:#202731;font-size:38px;text-transform:uppercase;letter-spacing:3px}.launch-status{display:flex;align-items:center;justify-content:center;gap:8px;margin:22px 0;color:#9aac94;font-size:11px}.display-body{overflow:hidden;background:#000}.display-body #app{display:grid;place-items:center;width:100vw;height:100vh}.display-stage{position:relative;width:min(100vw,100vh * 16 / 9);aspect-ratio:16/9}.display-body #wall{width:100%;height:100%}#toast{position:fixed;bottom:24px;left:50%;transform:translateX(-50%);background:#d5dce4;color:#18222c;padding:12px 18px;border-radius:3px;font-size:12px;opacity:0;pointer-events:none;z-index:10;max-width:90vw}#toast.visible{opacity:1}@media(max-width:850px){header{flex-wrap:wrap;height:auto;min-height:65px;padding:13px 0;gap:15px}nav{order:3;width:100%;justify-content:space-between;gap:8px;font-size:11px}.connection{margin-left:auto}.console-grid{grid-template-columns:1fr}.shell{padding:0 12px}.photo-grid{grid-template-columns:repeat(6,1fr)}.card{padding:14px}.photos-card{grid-column:auto}.instrument-row{gap:7px;grid-template-columns:1fr 1fr 1.7fr}.instrument-row>div{padding:8px}.timing-grid{gap:8px}.timing-grid label{font-size:10px}.timing-grid input{padding:9px 7px}.launch-page{margin:45px auto}.launch-key{min-height:190px}}.audio-controls{display:flex;gap:14px;align-items:center;flex-wrap:wrap;font-size:11px;color:#a1adbd}.audio-controls label{display:flex;gap:8px;align-items:center}.audio-controls input{accent-color:#edb44e}.audio-controls #audio-status{width:100%;font-size:10px;color:#9fb38e}.timing-grid{grid-template-columns:repeat(3,1fr)}@media(max-width:500px){.timing-grid{grid-template-columns:repeat(2,1fr)}}

#key-visual-status img{display:block;max-width:100%;max-height:120px;object-fit:contain}

.palm-pad,.palm-burst{position:absolute;top:56%;left:20%;transform:translate(-50%,-50%);width:7%;aspect-ratio:1}
.palm-pad{border:2px solid #f7d384;border-radius:50%;background:#17101ee8;color:#ffdb91;padding:0;display:grid;place-items:center;overflow:hidden;opacity:0;visibility:hidden;pointer-events:none;box-shadow:0 0 1.3vw #e69b5270;touch-action:manipulation}
.palm-pad:nth-of-type(2),.palm-burst:nth-of-type(2){left:40%}.palm-pad:nth-of-type(3),.palm-burst:nth-of-type(3){left:60%}.palm-pad:nth-of-type(4),.palm-burst:nth-of-type(4){left:80%}
.palm-ready .palm-pad{visibility:visible;opacity:1;pointer-events:auto;transition-delay:0s}
.palm-pad svg{width:60%;fill:none;stroke:currentColor;stroke-width:2.5;stroke-linecap:round;stroke-linejoin:round}
.palm-scan-line{position:absolute;left:20%;right:12%;top:15%;height:2px;background:currentColor;box-shadow:0 0 8px currentColor;animation:palm-sweep 2s ease-in-out infinite}
.palm-ready .palm-pad.scanning{color:#baffd5;border-color:currentColor;background:#164b39;box-shadow:0 0 2.4vw #87ffb8}
.palm-pad.scanning .palm-scan-line{animation-duration:.28s}
.palm-ready .palm-pad.scanned{opacity:0;pointer-events:none}
@keyframes palm-sweep{0%,100%{top:15%;opacity:.35}50%{top:85%;opacity:1}}

.palm-preview{position:absolute;inset:0;pointer-events:none}.palm-preview .palm-pad{pointer-events:none;cursor:default}.palm-preview .palm-pad:disabled{opacity:0}.palm-ready .palm-preview .palm-pad:disabled{opacity:1}

.palm-pad{
 border:1px solid #f2cb81;
 background:radial-gradient(circle,#80542155,transparent 64%),repeating-linear-gradient(0deg,#f7d38410 0 1px,transparent 1px 6px),repeating-linear-gradient(90deg,#f7d38410 0 1px,transparent 1px 6px),#17101ef5;
 box-shadow:inset 0 0 1.2vw #e69b5266,0 0 1.2vw #e69b5270;
}
.palm-pad::before,.palm-pad::after{content:'';position:absolute;border-radius:50%;pointer-events:none}
.palm-pad::before{inset:5%;border:1px dashed currentColor;opacity:.65;animation:palm-orbit 12s linear infinite}
.palm-pad::after{inset:12%;border:1px solid currentColor;border-block-color:transparent;opacity:.45;animation:palm-orbit 8s linear infinite reverse}
.palm-pad svg{width:90%;filter:drop-shadow(0 0 5px currentColor)}
.palm-detail{opacity:.45;stroke-width:1.25}
.palm-scan-line{height:14%;left:0;right:0;background:linear-gradient(to bottom,transparent,currentColor);box-shadow:0 3px 12px -3px currentColor;mix-blend-mode:screen}
.palm-ready .palm-pad.scanning{background:radial-gradient(circle,#49976e,#0b2e26 70%);box-shadow:inset 0 0 1.4vw #9affc3,0 0 2.4vw #87ffb8}
.palm-pad.scanning::before,.palm-pad.scanning::after{animation-duration:.65s}
@keyframes palm-orbit{to{transform:rotate(360deg)}}

.palm-activating .palm-pad:not(.scanned){animation:palm-complete 3.55s ease-in-out both}
.palm-activating .palm-pad:not(.scanned) .palm-scan-line{animation:palm-sweep 1.2s ease-in-out 1 both}
.palm-pad.confirmed .palm-scan-line{opacity:0;animation:none}
.palm-activating .palm-pad:not(.scanned) svg{animation:palm-charge 3.55s ease-in-out both}
.palm-ready .palm-pad.confirmed{color:#fff2a9;border-color:#fff6cd;background:radial-gradient(circle,#ad7028,#291728 75%);box-shadow:0 0 1vw #fff3b8,0 0 3vw #ffba4b,inset 0 0 1.4vw #ffce6a}
.palm-pad.confirmed svg{fill:#ffe7a45e;filter:drop-shadow(0 0 10px #fff0ad)}
@keyframes palm-charge{
 0%,28%{fill:transparent}
 46%,100%{fill:#ffe7a45e;filter:drop-shadow(0 0 10px #fff0ad)}
}
@keyframes palm-complete{
 0%,28%{opacity:1;transform:translate(-50%,-50%) scale(1)}
 48%{opacity:1;transform:translate(-50%,-50%) scale(1.08);color:#fff2a9;border-color:#fff6cd;box-shadow:0 0 1vw #fff3b8,0 0 3vw #ffba4b,inset 0 0 1.4vw #ffce6a}
 74%{opacity:1;transform:translate(-50%,-50%) scale(1.04);color:#fff2a9;border-color:#fff6cd;box-shadow:0 0 .8vw #fff3b8,0 0 2.4vw #ffba4b,inset 0 0 1vw #ffce6a}
 100%{opacity:0;transform:translate(-50%,-50%) scale(1.04);color:#fff2a9}
}

.palm-scan-line{animation:none}
.palm-ready .palm-scan-line{animation:palm-sweep 2s ease-in-out infinite;animation-delay:var(--palm-sweep-delay,0ms)}
.palm-ready .palm-pad.scanning .palm-scan-line{animation:palm-sweep 1.2s ease-in-out 1 both}
.palm-ready .palm-pad.confirmed .palm-scan-line{animation:none}

/* Havana console */
:root{--ink:#080f18;--surface:#111d28;--line:#2b3945;--gold:#e8c084;--muted:#8c9cab;--text:#edf0ee}
body{background:radial-gradient(ellipse at 85% 0,#25332666,transparent 45%),var(--ink);color:var(--text);font:14px 'Segoe UI',Arial,sans-serif;line-height:1.5}
.shell{max-width:1560px;padding:0 36px 36px}
header{height:86px;gap:32px;border-bottom:1px solid var(--line)}
header>strong{font-size:18px;font-weight:600;letter-spacing:-.3px}
header>strong:before{content:'';display:inline-block;width:5px;height:22px;background:var(--gold);vertical-align:middle;margin-right:14px;border-radius:4px}
nav{margin-left:auto;margin-right:0;gap:8px}nav>a{padding:10px 15px;border-radius:7px;color:var(--muted);transition:background .2s,color .2s}
nav>a.active{background:#e8c08412;color:var(--gold)}nav>a:hover{background:#ffffff08;color:var(--text)}
.connection{border:1px solid #365044;background:#172d243b;padding:7px 12px;border-radius:30px}
main{padding-top:26px}.console-grid{grid-template-columns:minmax(0,1.9fr) minmax(320px,1fr);gap:22px;align-items:start}
.card{background:linear-gradient(145deg,#15232f,#101b25);border:1px solid var(--line);border-radius:14px;padding:24px;box-shadow:0 10px 35px #00000016}
.card-top{margin-bottom:20px}.card h2,.section-heading h2{font-size:11px;letter-spacing:1.6px;color:#c0c9cf}.section-index{font:11px Consolas,monospace;color:#647480}
.preview-wrap{border-radius:9px;overflow:hidden;border-color:#334134;background:#060e18}
.preview-expand{bottom:12px;right:12px;background:#0b1729c9;border:1px solid #ffffff30;border-radius:7px;padding:6px 13px}
.live-tag{color:var(--gold);font-size:10px;letter-spacing:.5px}.live-tag i{background:var(--gold)}
.instrument-row{gap:0;margin-top:20px;border-top:1px solid var(--line);padding-top:18px}
.instrument-row>div{border:0;border-right:1px solid var(--line);background:none;padding:0 20px}
.instrument-row>div:first-child{padding-left:0}.instrument-row>div:last-child{border-right:0}
.instrument-row span{color:var(--muted);letter-spacing:1.2px;font-size:9px}.instrument-row strong{font:30px 'Segoe UI',sans-serif;color:var(--gold)}.instrument-row>div:last-child strong{color:#c7d4d5;font-size:12px}
.control-note{color:var(--muted);font-size:13px;line-height:1.65;margin:0 0 22px}
.button{border-radius:7px;padding:12px 17px;min-height:43px;transition:background .2s,border-color .2s,transform .15s,box-shadow .2s}
.button:active:not(:disabled){transform:translateY(1px)}
.gold{background:linear-gradient(135deg,#f0d09b,#d6ad6f);border-color:#f0d09b;color:#1d1b17;box-shadow:0 4px 15px #d6ad6f12}
.outline{background:#172734;border-color:#344754;color:#d5dedf}.subtle{background:transparent;border-color:#34434e;color:#a8b8c1}
.button:disabled{opacity:.38;box-shadow:none}.cue-card #launch-button{height:62px;font-size:16px;letter-spacing:1.4px}
#continue-button{background:linear-gradient(135deg,#294e43,#203c35);border-color:#577f67;color:#d7ead8}
.cue-status{font-size:12px;line-height:1.7;color:var(--gold);margin:6px 0 0;min-height:40px}
.divider{background:var(--line);margin:24px 0}
.rehearsal summary{cursor:pointer;color:#a8b8c1;font-size:12px;padding:4px 0;list-style-position:inside}
.rehearsal-content{padding-top:20px}.demo-actions{gap:10px}.text-button{color:#b6c2c9;padding:6px 0}
.qr-inner{gap:20px}.qr-inner img{width:84px;height:84px;background:#f0ebe2;padding:6px;border-radius:6px}
.qr-inner strong{color:#d0d8d9;font-size:12px}.qr-inner p,.qr-inner a{color:var(--muted);line-height:1.5}
.timing-grid{gap:16px;margin-bottom:24px}.timing-grid label{color:#b0bec6;font-size:11px}
.timing-grid input{background:#0b1620;border:1px solid #324654;border-radius:7px;padding:12px;color:var(--gold);font-size:15px}
input:focus{outline:2px solid #e8c08480;outline-offset:2px}.speed-label{gap:16px;color:#a8b8c1}.speed-label input,.audio-controls input{accent-color:var(--gold)}
.audio-controls{gap:18px}.audio-controls #audio-status{padding-top:4px;color:#a5bfa8}
.asset-preview{min-height:112px;border:1px solid #30404b;border-radius:8px;background:#08131c;padding:16px;display:flex;align-items:center;justify-content:center;color:var(--muted)}
#logo-status{color:var(--muted);font-size:11px}#logo-status img{max-width:230px;max-height:110px;filter:drop-shadow(0 0 1px #fff)}#key-visual-status img{max-height:160px;border-radius:4px}
.photos-card{padding-bottom:22px}.photo-grid{grid-template-columns:repeat(10,minmax(0,1fr));gap:12px;max-height:340px}
.photo-tile{border-radius:7px;border:1px solid #32414a}.photo-tile img{transition:filter .2s}.photo-tile:hover img{filter:brightness(1.1)}
.photo-tile button{opacity:0;transition:opacity .2s}.photo-tile:hover button,.photo-tile:focus-within button{opacity:1}
.empty-gallery{padding:48px 20px;color:var(--muted);font:13px 'Segoe UI',sans-serif}
.dropzone{border:1px dashed #5d786d;border-radius:12px;background:radial-gradient(ellipse at top,#365b3c26,transparent 75%),#0d1b26;min-height:300px;gap:18px;color:var(--muted);transition:border-color .2s,background .2s}
.upload-symbol{font-size:38px;font-weight:200;color:var(--gold);width:72px;height:72px;display:grid;place-items:center;border:1px solid #e8c08433;border-radius:50%;background:#e8c08408}
.dropzone:hover,.dropzone.dragging{border-color:var(--gold);background-color:#192b32}
.queue-item{padding:16px 0;gap:20px;border-color:var(--line)}.queue-item small{color:#a6c2a5}
.launch-page{margin:60px auto;max-width:460px}.launch-intro{margin-bottom:40px}.eyebrow{font-size:10px;letter-spacing:2px;color:var(--gold)}.launch-intro h1{font-size:30px;font-weight:400;letter-spacing:-.7px;margin:14px 0;color:#e8ebe6}
.launch-key{border-radius:50%;aspect-ratio:1;min-height:0;width:76%;margin:auto;font-size:30px;letter-spacing:2px;background:radial-gradient(circle at 40% 30%,#f1d7ac,#cba366);border:1px solid #ffe0aa;box-shadow:0 0 0 12px #e8c08408,0 0 0 13px #e8c08415,0 18px 70px #e8c08420;transition:transform .2s,box-shadow .3s}
.launch-key:active:not(:disabled){transform:scale(.98)}.launch-status{margin-top:35px;color:#b2c4b6}
#toast{background:#eee0c9;color:#20251f;border:1px solid #f8e6c7;border-radius:8px;box-shadow:0 8px 35px #0005;transition:opacity .2s}
.display-body{background:#000}
.palm-pad{box-shadow:inset 0 0 1.2vw #e69b5266,0 0 1.2vw #e69b5270}
.palm-ready:not(.palm-activating) .palm-pad:not(.scanning):not(.confirmed):not(.scanned){animation:palm-idle-aura 4s ease-in-out infinite}
@keyframes palm-idle-aura{0%,100%{box-shadow:inset 0 0 .8vw #e69b5244,0 0 .9vw #e69b5244}50%{box-shadow:inset 0 0 1.2vw #e69b5277,0 0 1.5vw #e69b5266}}
@media(max-width:1000px){.shell{padding:0 20px 24px}.console-grid{grid-template-columns:1fr}.card{padding:22px}.photo-grid{grid-template-columns:repeat(8,minmax(0,1fr))}.cue-card{order:0}header{height:auto;min-height:82px;gap:14px;padding:18px 0;flex-wrap:wrap}nav{order:3;justify-content:flex-start;width:100%}.connection{margin-left:auto}.timing-grid{grid-template-columns:repeat(3,1fr)}}
@media(max-width:560px){.shell{padding:0 12px 20px}.card{padding:17px;border-radius:10px}.console-grid{gap:14px}nav{gap:2px}nav>a{padding:8px 10px;font-size:11px}.connection{font-size:10px;padding:6px 9px}header>strong{font-size:16px}.timing-grid{grid-template-columns:repeat(2,1fr);gap:12px}.instrument-row>div{padding:0 10px}.instrument-row strong{font-size:25px}.photo-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}.photo-tile button{opacity:1}.launch-intro h1{font-size:26px}.queue-item{flex-wrap:wrap}.audio-controls{gap:14px}.dropzone{min-height:260px}}
@media(prefers-reduced-motion:reduce){.palm-ready:not(.palm-activating) .palm-pad:not(.scanning):not(.confirmed):not(.scanned){animation:none!important}.button,.photo-tile img{transition:none}}

.remote-panel{max-width:470px;margin:36px auto 0;padding-bottom:30px}
.launch-intro p{font-size:13px;line-height:1.7;color:var(--muted);max-width:330px;margin:0 auto}
.remote-panel .launch-intro{margin-bottom:28px}.remote-panel .launch-details{padding:14px 16px;background:#14232e;border:1px solid var(--line);border-radius:10px;align-items:center;gap:16px;margin-bottom:22px}
.remote-cues{display:grid;gap:16px}.remote-cues button{display:flex;text-align:left;align-items:center;gap:18px;width:100%;min-height:112px;padding:22px;border-radius:14px;border:1px solid #e8c08488;font:inherit;transition:transform .18s,box-shadow .25s,opacity .25s;touch-action:manipulation}
.remote-cues button:active:not(:disabled){transform:scale(.985)}
.remote-primary{background:linear-gradient(120deg,#f1d4a1,#cfa66c);color:#1b241f;box-shadow:0 10px 35px #d6ad6f16}
.remote-continue{background:linear-gradient(120deg,#254a3e,#172e29);color:#e0ebd9;border-color:#7caa8155!important}
.cue-number{display:grid;place-items:center;width:36px;height:36px;border:1px solid currentColor;border-radius:50%;font:12px Consolas,monospace;opacity:.7;flex-shrink:0}
.remote-cues strong{font-size:22px;font-weight:600;display:block;letter-spacing:-.3px}.remote-cues small{display:block;font-size:11px;opacity:.75;margin-top:5px}.remote-cues button>span:last-child{margin-left:auto;font-size:25px}
.remote-cues button:disabled{opacity:.32;box-shadow:none}.remote-panel .launch-status{margin:22px 0;min-height:34px;line-height:1.6}
.remote-reset{border-top:1px solid var(--line);padding-top:22px}.remote-reset .button{width:100%;min-height:50px}.remote-reset p{font-size:11px;color:var(--muted);margin:12px 0 0}
@media(max-width:560px){.remote-panel{margin-top:14px}.remote-cues button{min-height:100px;padding:18px;gap:14px}.remote-panel .launch-intro h1{font-size:29px}.remote-panel .launch-intro{margin-bottom:22px}}

#key-visual-status video{display:block;width:100%;max-height:160px;object-fit:contain;border-radius:4px}

.guest-link-card{display:flex;flex-wrap:wrap;align-items:center;gap:14px}.guest-link-card h2,.guest-link-card p{width:100%;margin:0}.guest-link-card p{font-size:12px;color:var(--muted)}.guest-link-card img{background:#fff;border-radius:8px;padding:8px}.guest-link-card .text-button{font-size:11px}

.approval-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:18px}.approval-photo{padding:12px;border:1px solid #bb975c44;border-radius:14px;background:#102430}.approval-photo img{width:100%;aspect-ratio:1;object-fit:cover;border-radius:8px}.approval-photo p{font-size:12px;color:#becaca;overflow-wrap:anywhere}.approval-actions{display:flex;gap:8px}.approval-actions button{flex:1}.approval-empty{padding:60px 20px;text-align:center;color:#adbdc6}.approval-note{line-height:1.8;color:#b9c8cd;margin-bottom:24px}@media(max-width:600px){header{flex-wrap:wrap;height:auto;padding-block:16px;gap:14px}nav{order:3;width:100%;gap:18px;overflow-x:auto;padding-bottom:5px}.approval-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.approval-photo{padding:8px}.approval-actions{flex-direction:column}}

.screening-stats{padding:20px;border:1px solid #ceab6650;border-radius:14px;background:#091d29;margin-bottom:20px}.screening-heading{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;color:#f2ce8f}.screening-heading span{color:#b2c6c4;font-size:11px}.screening-metrics{display:grid;grid-template-columns:repeat(4,1fr);gap:20px;margin:20px 0}.screening-metrics small{display:block;color:#a7bbc1;margin-bottom:10px}.screening-metrics b{font-size:23px;font-weight:500}.screening-stats p,.screening-setup p{color:#a8bdc5;font-size:12px;line-height:1.7}.screening-stats progress{width:100%;height:7px;accent-color:#ecc785}.screening-setup{border:1px solid #7c735255;border-radius:12px;padding:18px;margin-bottom:22px}.screening-setup summary{cursor:pointer;color:#e7c68c}.screening-setup form>label{display:block;margin:16px 0}.screening-setup input:not([type=checkbox]){display:block;width:100%;margin-top:8px;background:#081923;color:#edf1ee;border:1px solid #61746b;border-radius:6px;padding:12px}.screening-limits{display:grid;grid-template-columns:1fr 1fr;gap:18px}.screening-toggle{display:flex!important;gap:10px}.review-tabs{display:flex;gap:12px;margin:20px 0}.review-checks{font-size:11px!important;line-height:1.8;color:#c3d5d1!important}.flagged-photo{border-color:#de866b}.review-override{display:flex;align-items:flex-start;gap:8px;font-size:11px;line-height:1.6;color:#ffcaad;margin:12px 0}@media(max-width:700px){.screening-metrics{grid-template-columns:1fr 1fr;gap:16px}.screening-stats{padding:15px}.screening-limits{grid-template-columns:1fr}.screening-setup button{margin-bottom:8px}}

/* The two scanners on the left show a left hand; preserve charge scaling. */
.palm-pad svg{scale:1}

.palm-pad .heart-pad-icon{stroke-width:2;fill:#edb44e15}.palm-pad svg{width:76%}

/* Centre the heart artwork optically within the circular scanner. */
.palm-pad svg{translate:0 5%}

/* Heart controls hold visibly until the operator sends Continue. */
.palm-ready:not(.palm-activating) .palm-pad{opacity:1;visibility:visible;cursor:default}

.photo-tile .photo-preview-trigger{position:absolute;inset:0;width:100%;height:100%;padding:0;border:0;opacity:1;cursor:zoom-in;background:transparent}
.photo-preview-trigger:focus-visible{outline-offset:-3px}
#photo-preview{width:min(920px,94vw);max-height:94dvh;padding:14px;border:1px solid #465369;border-radius:12px;background:#141b24;color:#dce2ea;overflow:auto}
#photo-preview::backdrop{background:#050a10d9}
#photo-preview form{display:flex;justify-content:flex-end;margin-bottom:10px}
#photo-preview figure{display:grid;justify-items:center;gap:10px;margin:0}
#photo-preview img{display:block;max-width:100%;max-height:74dvh;object-fit:contain}
#photo-preview figcaption{overflow-wrap:anywhere;text-align:center}

.palm-activating .palm-pad:not(.scanned),.palm-activating .palm-pad:not(.scanned) svg,.palm-activating .palm-pad:not(.scanned) .palm-scan-line{animation-delay:var(--palm-activation-delay,0ms)}

/* Scanner charge, gold confirmation, then a pulse and inward collapse within the 4.2-second cue. */
.palm-activating .palm-pad:not(.scanned){animation:palm-launch 4.2s both;animation-delay:var(--palm-activation-delay,0ms)}
.palm-activating .palm-pad:not(.scanned) svg{animation:palm-launch-icon 4.2s both;animation-delay:var(--palm-activation-delay,0ms)}
.palm-activating .palm-pad:not(.scanned)::before{animation-duration:1.35s}
.palm-activating .palm-pad:not(.scanned)::after{animation-duration:.95s}
@keyframes palm-launch{
 0%{opacity:1;transform:translate(-50%,-50%) scale(1);filter:brightness(1)}
 27%{opacity:1;transform:translate(-50%,-50%) scale(.94);filter:brightness(1.35)}
 37%{opacity:1;transform:translate(-50%,-50%) scale(1.17);filter:brightness(1.8);color:#fff3bb;border-color:#fff1bb;box-shadow:0 0 1.5vw #ffdc94,0 0 4vw #ffad47a8,inset 0 0 1.8vw #ffca64}
 51%{opacity:1;transform:translate(-50%,-50%) scale(1.08);filter:brightness(1.2);color:#fff3bb;border-color:#fff1bb}
 72%{opacity:.97;transform:translate(-50%,-50%) scale(1.06);filter:brightness(1.05);color:#ffe4a0}
 81%{opacity:1;transform:translate(-50%,-50%) scale(1.15);filter:brightness(1.65);color:#fff3bb;box-shadow:0 0 2.8vw #ffd78c,inset 0 0 1.4vw #ffca64;animation-timing-function:cubic-bezier(.55,.05,.9,.5)}
 95%{opacity:1;transform:translate(-50%,-50%) scale(.16);filter:brightness(1.85);color:#fff3bb}
 100%{opacity:0;transform:translate(-50%,-50%) scale(0);filter:brightness(1.85);color:#fff3bb}
}
@keyframes palm-launch-icon{
 0%,26%{fill:transparent;filter:drop-shadow(0 0 5px currentColor)}
 37%{fill:#ffda8166;filter:drop-shadow(0 0 12px #ffe19b)}
 62%,100%{fill:#ffda8133;filter:drop-shadow(0 0 5px currentColor)}
}

/* Bring all four pads online together. */
@media (prefers-reduced-motion:no-preference){
 .palm-ready:not(.palm-activating) .palm-pad:not(.scanning):not(.confirmed):not(.scanned){
  animation:palm-entry 920ms cubic-bezier(.22,.72,.26,1) both,
   palm-idle-aura 4s ease-in-out 920ms infinite;
 }
 .palm-ready:not(.palm-activating) .palm-pad svg{
  animation:palm-icon-entry 640ms ease-out 250ms both;
 }
}
@keyframes palm-entry{
 0%{opacity:0;scale:.48;filter:brightness(.55)}
 32%{opacity:.85;scale:.87;filter:brightness(1.45)}
 60%{opacity:1;scale:1.07;filter:brightness(1.65)}
 100%{opacity:1;scale:1;filter:brightness(1)}
}
@keyframes palm-icon-entry{
 0%{opacity:0;scale:.68}
 64%{opacity:1;scale:1.08}
 100%{opacity:1;scale:1}
}

.palm-burst{pointer-events:none;visibility:hidden}
@media(prefers-reduced-motion:no-preference){
 .palm-activating .palm-burst{visibility:visible}
 .palm-burst::before,.palm-burst::after{
  content:'';position:absolute;inset:0;border-radius:50%;opacity:0;
 }
 .palm-activating .palm-burst::before{
  border:2px solid #ffdc8b;box-shadow:0 0 1vw #ffa845,inset 0 0 .6vw #fff0bd;
  animation:palm-shockwave 900ms ease-out calc(3100ms + var(--palm-activation-delay,0ms)) both;
 }
 .palm-activating .palm-burst::after{
  background:repeating-conic-gradient(from 11deg,transparent 0deg 28deg,#fff0af 30deg 31deg,transparent 34deg 45deg);
  mask-image:radial-gradient(circle,transparent 39%,#000 54%,transparent 72%);
  animation:palm-sparks 850ms ease-out calc(3150ms + var(--palm-activation-delay,0ms)) both;
 }
}
@keyframes palm-shockwave{
 0%{opacity:0;scale:.95}
 18%{opacity:.95}
 100%{opacity:0;scale:2.65}
}
@keyframes palm-sparks{
 0%{opacity:0;scale:.8}
 25%{opacity:1}
 100%{opacity:0;scale:3.1;rotate:14deg}
}
