:root{color-scheme:dark;--bg:#050810;--panel:#0a1020;--text:#e9ebf6;--muted:#929eb7;--cyan:#65ddf3;--gold:#e8be76;--personal:#65ddf3;--flow:0;font-family:Inter,"Helvetica Neue",Arial,sans-serif;color:var(--text);background:var(--bg)}*{box-sizing:border-box}body{margin:0}button,input,a.button{font:inherit}button,.button{min-height:48px;border:1px solid #344056;background:#121b2d;color:var(--text);padding:14px 20px;border-radius:12px;cursor:pointer;text-decoration:none;transition:background .2s,border-color .2s;display:inline-flex;align-items:center;justify-content:center;gap:12px}button:hover,.button:hover{border-color:var(--cyan);background:#1a2941}button:disabled{opacity:.4;cursor:default}button:focus-visible,a:focus-visible,input:focus-visible{outline:2px solid var(--cyan);outline-offset:4px}[hidden]{display:none!important}.primary{background:var(--cyan);color:#07131b;border-color:var(--cyan);font-weight:600}.primary:hover{background:#a6effc;color:#07131b}.wordmark{font-weight:700;letter-spacing:.25em;font-size:14px;white-space:nowrap}.wordmark i{font-style:normal;color:var(--cyan);margin:0 8px}.eyebrow{font-size:10px;font-weight:500;letter-spacing:.25em;color:var(--cyan);line-height:1.8}.muted,small,.hint{color:var(--muted)}.badge{font-size:11px;border:1px solid #31435c;border-radius:100px;padding:9px 12px;color:#b4d9df}.text-button{background:transparent;border:0;min-height:40px;padding:8px 0;color:#b6c3dc}.message{font-size:13px;line-height:1.6;color:var(--gold);min-height:20px}input{background:#050810;border:1px solid #364662;border-radius:8px;color:var(--text);padding:13px}input[type=checkbox]{accent-color:var(--cyan);width:16px;height:16px}.audience{min-height:100svh;position:relative;overflow-x:hidden;display:flex;flex-direction:column}.audience-header{padding:max(28px,env(safe-area-inset-top)) max(28px,env(safe-area-inset-right)) 16px max(28px,env(safe-area-inset-left));display:flex;justify-content:space-between;align-items:center;z-index:1}.edition{font-size:9px;letter-spacing:.2em;color:var(--muted)}.night{position:fixed;inset:0;pointer-events:none;overflow:hidden;transition:opacity 1.4s,background 2.5s;background:radial-gradient(ellipse at 50% 48%,#10223855,transparent 65%)}.haze{position:absolute;inset:0;opacity:.25;filter:blur(35px);background:radial-gradient(ellipse at 25% 30%,#15345f 0,transparent 50%),radial-gradient(ellipse at 80% 75%,#8b5cf644,transparent 50%);animation:drift 22s ease-in-out infinite alternate}.haze-two{transform:rotate(90deg);animation-delay:-10s}.stars{position:absolute;inset:0;opacity:.6;background-image:radial-gradient(1px 1px at 12% 16%,#b7dce2 98%,transparent),radial-gradient(1px 1px at 75% 30%,#b7dce2 98%,transparent),radial-gradient(1px 1px at 30% 70%,#b7dce2 98%,transparent),radial-gradient(1px 1px at 85% 80%,#b7dce2 98%,transparent),radial-gradient(1px 1px at 66% 53%,#b7dce2 98%,transparent);background-size:280px 350px;animation:drift 35s ease-in-out infinite alternate}.orbit{position:absolute;left:50%;top:43%;border:1px solid #65ddf316;border-radius:50%;width:400px;height:400px;transform:translate(-50%,-50%) rotate(-30deg) scaleX(.8)}.orbit-two{width:550px;height:550px;transform:translate(-50%,-50%) rotate(30deg) scaleX(.8);border-color:#8b5cf612}.audience-main{flex:1;z-index:1;text-align:center;width:min(100%,720px);margin:auto;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:16px 24px}.audience-main>.eyebrow{margin:0 0 12px}.artifact{width:220px;height:220px;position:relative;margin:8px 0 20px;display:grid;place-items:center;transition:transform 2s;--glow:var(--personal)}.halo{position:absolute;inset:8px;border:1px solid #65ddf32c;border-radius:50%;box-shadow:0 0 75px #65ddf318,inset 0 0 50px #65ddf30a;animation:breathe 7s ease-in-out infinite}.halo:after,.halo:before{content:'';position:absolute;inset:18px;border:1px solid #65ddf315;border-radius:50%}.halo:after{inset:-20px;border-style:dashed;opacity:.3}.seed{width:12px;height:12px;background:#e5ffff;border-radius:50%;box-shadow:0 0 20px 5px #65ddf3bb,0 0 65px 20px #65ddf344;animation:breathe 6s ease-in-out infinite}.artifact svg{width:112px;height:112px;color:var(--personal);filter:drop-shadow(0 0 14px var(--personal));display:none}.story{min-height:112px}.symbol-name{font-size:10px;text-transform:uppercase;letter-spacing:.4em;color:var(--personal);min-height:12px;margin:0 0 12px}h1{font-weight:400;font-size:clamp(30px,5vw,48px);letter-spacing:-.035em;line-height:1.15;margin:0}.story>p:last-child{font-size:14px;color:#a8b3c8;line-height:1.7;max-width:300px;margin:16px auto 0}.awaken{margin-top:24px;min-width:260px;justify-content:space-between}.audience-footer{z-index:1;text-align:center;padding:12px 24px max(20px,env(safe-area-inset-bottom));font-size:10px}.audience-footer #connection{color:#7eb9bf;font-size:10px;letter-spacing:.08em}.hint{max-width:320px;line-height:1.6;margin:14px auto}.preferences{display:flex;align-items:center;justify-content:center;gap:20px;flex-wrap:wrap}.preferences label{display:flex;align-items:center;gap:8px;color:var(--muted)}.preferences button{font-size:10px}.audience-footer small{display:block;font-size:9px;margin-top:12px;opacity:.7}.final-actions{display:flex;gap:10px;flex-wrap:wrap;justify-content:center;margin-top:20px}.rays{position:absolute;left:50%;top:43%;width:500px;height:500px;transform:translate(-50%,-50%);background:repeating-conic-gradient(from 12deg,transparent 0 30deg,#65ddf310 31deg 31.2deg,transparent 32deg 60deg);mask-image:radial-gradient(circle,transparent 15%,#000 40%,transparent 70%);opacity:0;transition:opacity 3s}
body:is([data-scene=activated],[data-scene=waiting],[data-scene=symbol],[data-scene=moon],[data-scene=aurora],[data-scene=pulse],[data-scene=warm],[data-scene=climax],[data-scene=brand],[data-scene=final]) .seed{display:none}body:is([data-scene=activated],[data-scene=waiting],[data-scene=symbol],[data-scene=moon],[data-scene=aurora],[data-scene=pulse],[data-scene=warm],[data-scene=climax],[data-scene=brand],[data-scene=final]) .artifact svg{display:block;animation:breathe 8s ease-in-out infinite}body[data-scene=activated] .artifact{animation:grow 2.8s ease-out}body[data-scene=awakening] .rays,body[data-scene=symbol] .rays{opacity:1}body[data-scene=awakening] .seed{transform:scale(2)}body[data-scene=aurora] .haze{opacity:.85;background:linear-gradient(120deg,transparent 15%,#65ddf344 35%,#8b5cf666 50%,#15345f44 70%,transparent);animation:drift 12s ease-in-out infinite alternate}body[data-scene=pulse] .night{animation:softpulse 6s ease-in-out infinite}body[data-scene=warm] .night{background:radial-gradient(ellipse,#e8be7677,transparent 90%)}body[data-scene=climax] .night{background:linear-gradient(120deg,#65ddf3bb,#b8a2eccc);opacity:1}body[data-scene=climax] .artifact{transform:scale(1.2)}body[data-scene=climax] .story>h1{font-size:30px}body[data-scene=brand] .artifact{transform:scale(.8);opacity:.6}body[data-scene=brand] h1{letter-spacing:.15em;font-size:60px}body[data-scene=final] .night{opacity:.6}body[data-scene=blackout]{background:#000}body[data-scene=blackout]>*{visibility:hidden}body[data-scene=left] .night,body[data-scene=left] .artifact{opacity:0}body.gentle .night{opacity:.35}body.gentle *,body.gentle *:before,body.gentle *:after{animation:none!important;transition:none!important}body.gentle[data-scene=climax] .night{background:radial-gradient(ellipse,#264758,#050810);opacity:.7}
@keyframes breathe{0%,100%{opacity:.6;scale:.96}50%{opacity:1;scale:1.04}}@keyframes drift{from{translate:-3% -2%;rotate:-4deg}to{translate:3% 2%;rotate:5deg}}@keyframes grow{from{transform:scale(.2);opacity:.1}to{transform:scale(1);opacity:1}}@keyframes softpulse{0%,100%{background-color:#050810}50%{background-color:#204354}}
.console-header{display:flex;align-items:center;justify-content:space-between;padding:30px 40px;border-bottom:1px solid #1b2638;max-width:1500px;margin:auto}.console-header .eyebrow{margin:8px 0 0}.admin{background:radial-gradient(ellipse at 70% 0,#15345f35,transparent 50%),var(--bg)}.console{max-width:1500px;margin:auto;padding:28px 40px 40px}.panel{background:linear-gradient(120deg,#0c1424,#0a101dcf);border:1px solid #243047;border-radius:18px;padding:24px;margin-bottom:18px}.panel>.eyebrow:first-child{margin-top:0}.login{max-width:600px;margin:60px auto}.login h1{font-size:36px;margin-bottom:30px}.login label{display:block;font-size:13px;margin-bottom:10px}.login-row{display:flex;gap:10px}.login input{min-width:0;flex:1}.login p:last-child{font-size:12px;color:var(--muted);line-height:1.6}.desk-grid{display:grid;grid-template-columns:minmax(0,1fr) 330px;gap:22px}.section-top{display:flex;gap:16px;align-items:center;justify-content:space-between}.section-top .eyebrow{margin:0}.toggle{font-size:12px;display:flex;gap:8px;align-items:center}.scene-row{display:flex;gap:20px;align-items:center;justify-content:space-between;margin:28px 0}.scene-row h1{font-size:36px}.scene-row p{font-size:12px}.timecode{font-size:48px;font-variant-numeric:tabular-nums;letter-spacing:-.06em;color:var(--cyan)}.progress{height:3px;background:#243047;border-radius:3px;overflow:hidden}.progress span{display:block;height:100%;background:var(--cyan);width:0;transition:width .2s}#readiness{font-size:12px;color:var(--gold);margin:18px 0}.metrics{display:grid;grid-template-columns:1fr 1fr;gap:16px;border-top:1px solid #243047;padding-top:20px}.metrics>div{display:flex;gap:12px;align-items:center}.metrics strong{font-size:30px;font-weight:400}.metrics span{font-size:11px;color:var(--muted);max-width:130px;line-height:1.6}.command-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.command-grid button{justify-content:flex-start}.blackout{background:#261622;border-color:#8b405b;color:#ffc4d4;width:100%;margin:14px 0 8px;font-weight:600;min-height:64px}.blackout:hover{background:#4b2034;border-color:#ff7c9f}.manual-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.manual-grid button{font-size:13px}.panel p.muted{font-size:11px;line-height:1.7}.section-top small{font-size:10px}.preview-panel{padding-bottom:16px}.preview-panel iframe{display:block;width:250px;height:505px;max-width:100%;border:7px solid #1b2638;border-radius:34px;margin:22px auto 14px;background:#050810}.qr-panel{text-align:center}.qr-panel img{border-radius:10px;background:white;margin:10px auto 18px;display:block}.qr-panel a{font-size:12px;color:var(--cyan);overflow-wrap:anywhere;display:block;line-height:1.7}.qr-panel p:last-child{font-size:12px;color:var(--muted);line-height:1.6}.rehearsal .live-panel{border-color:#b18348}.rehearsal #modeLabel{color:var(--gold)}
@media(max-width:900px){.console-header{padding:22px}.console{padding:20px}.desk-grid{grid-template-columns:1fr}.desk-grid aside{display:grid;grid-template-columns:1fr 1fr;gap:18px}.panel{padding:20px}.console-header .eyebrow{font-size:8px}}@media(max-width:540px){.edition{display:none}.audience-header{justify-content:center}.audience-header .wordmark{font-size:12px}.audience-main{padding:8px 20px}.artifact{width:160px;height:160px;margin:8px 0 20px}.artifact svg{width:90px;height:90px}.story{min-height:100px}h1{font-size:32px}.awaken{margin-top:20px}.audience-footer{padding-top:0}.audience-footer small{font-size:8px}.console-header{align-items:start;gap:14px}.console-header .wordmark{font-size:11px}.console-header .badge{font-size:9px;padding:8px}.scene-row h1{font-size:27px}.timecode{font-size:36px}.metrics>div{align-items:start;flex-direction:column;gap:4px}.metrics span{max-width:100%}.desk-grid aside{display:block}.manual-grid{grid-template-columns:1fr 1fr}.section-top{flex-wrap:wrap}.command-grid button{font-size:12px;padding:12px}.section-top .toggle{font-size:10px}}
@media(max-height:650px){.audience-header{padding-top:16px}.artifact{width:110px;height:110px;margin:2px 0 12px}.artifact svg{width:65px;height:65px}.audience-main>.eyebrow{font-size:8px}.story{min-height:80px}.story h1{font-size:28px}.story>p:last-child{margin-top:8px;font-size:12px}.awaken{margin-top:10px}.audience-footer .hint{margin:8px auto}.audience-footer small{margin-top:5px}.preferences{gap:10px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important}.audience .night{opacity:.35}.audience[data-scene=climax] .night{background:radial-gradient(ellipse,#264758,#050810)}}

/* Shared clock samples CSS animations; paused timeline keeps the same sample. */
body[data-timeline=true] .night,body[data-timeline=true] .night *,body[data-timeline=true] .artifact *{animation-play-state:paused!important;animation-delay:var(--show-time,0s)!important}
body[data-scene=blackout] .audience-footer{position:fixed;bottom:env(safe-area-inset-bottom);left:0;right:0}
body[data-scene=blackout] #exit{visibility:visible;opacity:0;pointer-events:none}
body[data-scene=blackout].blackout-controls #exit,body[data-scene=blackout] #exit:focus-visible{opacity:1;color:#647080;pointer-events:auto}

.peak-light{position:fixed;inset:0;z-index:3;background:#fff;opacity:var(--peak,0);pointer-events:none}
body[data-scene=blackout] .peak-light,body[data-scene=left] .peak-light{display:none}
body.gentle .peak-light{opacity:calc(var(--peak,0)*.12)}
body[data-scene=climax] .audience-footer,body[data-scene=brand] .audience-footer{z-index:4}
body[data-scene=climax] .audience-footer>*:not(.preferences),body[data-scene=brand] .audience-footer>*:not(.preferences){visibility:hidden}
body[data-scene=climax] .preferences label,body[data-scene=brand] .preferences label{visibility:hidden}
body[data-scene=climax] #exit,body[data-scene=brand] #exit{background:#fff9;color:#243047;padding:8px 12px}


/* Eiva forest: original event artwork, with a portrait crop and readable foreground. */
.audience{background:#030419;isolation:isolate}
.forest-world{position:fixed;inset:0;z-index:-2;pointer-events:none;background:linear-gradient(180deg,#02051a15 0%,#03051c38 25%,#04051cba 58%,#030418f2 100%),url('/eiva-forest.png') 23% center/cover no-repeat}
.audience .night{z-index:-1;background:radial-gradient(ellipse at 50% 42%,#2157ff20,transparent 65%)}
.audience-header{flex-direction:column;gap:8px;padding-top:max(28px,env(safe-area-inset-top))}
.forest-brand{font-family:Didot,'Bodoni MT','Times New Roman',serif;font-size:42px;font-weight:400;letter-spacing:.17em;line-height:1.1;color:#f6edff;text-shadow:0 0 18px #9694ff88}
.brand-moon{display:inline-block;color:#ffe9bd;text-shadow:-3px 0 8px #ffc879,0 0 24px #ad83ff;letter-spacing:.06em}
.forest-caption{font-size:8px;letter-spacing:.29em;color:#c2c9ef}.audience .edition{display:none}
.audience-main{padding-top:28px;padding-bottom:8px}.audience-main>.eyebrow{color:#c0caff;font-size:9px;letter-spacing:.3em}
.audience .artifact{width:190px;height:190px;margin:16px 0 24px}
.audience .halo{inset:10px;border:1px solid #a6d5ff99;border-left:3px solid #fff0cf;box-shadow:-5px 0 16px #ebc28d80,0 0 40px #634bff70,inset 0 0 40px #4070ff35;background:radial-gradient(circle,#06102d70 25%,#2946b91f 60%,transparent 70%)}
.audience .halo:before{inset:12px;border-color:#9cbdff30}.audience .halo:after{inset:-15px;border:1px solid #8eaaff30;opacity:.65}
.audience .seed{width:22px;height:22px;box-shadow:0 0 18px 5px #b8efff,0 0 55px 20px #5f68ff88,0 0 85px 40px #4c2dc84a}
.audience .artifact svg{width:90px;height:90px}.audience .story h1{font-family:Didot,'Times New Roman',serif;font-size:clamp(30px,8vw,42px);letter-spacing:.015em;text-shadow:0 2px 18px #000b;max-width:340px}
.audience .story>p:last-child{color:#bdc6e5;font-size:13px;max-width:270px}.audience .symbol-name{color:#d2c9ff;letter-spacing:.35em}
.audience .awaken{width:min(100%,310px);min-width:0;min-height:56px;border-radius:100px;border:1px solid #c1d4ff99;background:linear-gradient(110deg,#3c56bbbc,#6847b9bc);color:#fff;box-shadow:0 0 28px #4965ef40,inset 0 1px #fff3;padding:16px 25px;font-size:14px;letter-spacing:.04em}
.audience .awaken:hover{background:linear-gradient(110deg,#506cda,#835bd0)}
.audience-footer{padding-bottom:max(20px,env(safe-area-inset-bottom));color:#aab9dd}.audience-footer #connection{color:#becdf3}.audience-footer #connection:before{content:'•';color:#9bd9e8;margin-right:6px}.audience-footer .hint{color:#b0b9d6;font-size:10px;max-width:270px}.audience-footer .preferences label{color:#b0b9d6;font-size:10px}.audience-footer small{max-width:280px;margin:12px auto 0;line-height:1.5}
.audience[data-scene=blackout]{background:#000}.audience[data-scene=blackout] .forest-world{display:none}.audience[data-scene=left] .forest-world{opacity:.25}
@media(min-width:600px){.forest-world{background-position:23% center}.audience-main{max-width:460px;background:radial-gradient(ellipse,#03051b99,transparent 72%)}}
@media(max-height:740px){.audience-header{padding-top:max(18px,env(safe-area-inset-top));gap:6px}.forest-brand{font-size:34px}.audience-main{padding-top:12px}.audience .artifact{width:132px;height:132px;margin:8px 0 18px}.audience .artifact svg{width:68px;height:68px}.audience .story h1{font-size:30px}.audience .story{min-height:90px}.audience .awaken{margin-top:12px;min-height:50px}.audience-footer .hint{margin:8px auto}.audience-footer small{display:none}}

/* White breathing replaces personal symbols and coloured scenes. */
.audience .seed{display:block!important}.audience .artifact{--personal:#fff}
.audience:is([data-scene=invocation],[data-scene=inhale],[data-scene=exhale],[data-scene=climax],[data-scene=release]) .night{background:none;animation:none}
.audience:is([data-scene=inhale],[data-scene=exhale],[data-scene=climax],[data-scene=release]) .forest-world{opacity:1}
.audience:is([data-scene=inhale],[data-scene=exhale],[data-scene=climax],[data-scene=release]){background:#000}
.audience:is([data-scene=inhale],[data-scene=exhale],[data-scene=climax],[data-scene=release]) .audience-header,.audience:is([data-scene=inhale],[data-scene=exhale],[data-scene=climax],[data-scene=release]) .audience-main{visibility:hidden}
.audience:is([data-scene=inhale],[data-scene=exhale],[data-scene=release]) .audience-footer>*:not(.preferences),.audience:is([data-scene=inhale],[data-scene=exhale],[data-scene=release]) .preferences label{visibility:hidden}
.audience:is([data-scene=inhale],[data-scene=exhale],[data-scene=release]) .audience-footer{z-index:4}
.audience:is([data-scene=inhale],[data-scene=exhale],[data-scene=release]) #exit{color:#8190a6}

/* Guest view: artwork, ritual text and primary actions only. */
.audience #connection,.audience #hint,.audience .audience-footer small,.audience .preferences label,.audience .forest-caption,.audience .edition{display:none!important}
.audience #message:empty{display:none}
.audience .audience-footer{padding-top:0}
