@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Space+Grotesk:wght@400;500;600;700&display=swap');

:root{font-family:'DM Sans',sans-serif;color:#f7f2e9;background:#11101b;font-synthesis:none}
*{box-sizing:border-box}body{margin:0}button,input,select{font:inherit}button{cursor:pointer}a{color:inherit;text-decoration:none}code{font-family:'Space Grotesk',monospace}.hidden{display:none!important}
.studio-body{min-height:100vh;background:radial-gradient(circle at 88% 0%,#302445 0,#11101b 42%),#11101b}.studio{max-width:1400px;padding:0 38px;margin:auto}.topbar{height:82px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid #ffffff19}.brand{display:inline-flex;align-items:center;gap:12px;font-family:'Space Grotesk',sans-serif;font-size:18px;font-weight:700;letter-spacing:.08em}.brand em{font-style:normal;color:#cbb8ff}.brand-mark{display:grid;place-items:center;width:32px;height:32px;border:1px solid #a88cff;border-radius:9px;color:#c7a9ff;font-size:22px;box-shadow:0 0 25px #9b71e35b}.topbar-right{display:flex;gap:10px}.chip{border:1px solid #ffffff2c;background:#ffffff0b;border-radius:100px;color:#c9c0d4;padding:8px 12px;font-size:10px;letter-spacing:.14em;font-weight:700;white-space:nowrap}.chip i{display:inline-block;width:6px;height:6px;border-radius:100%;margin-right:5px;background:#f18b94;box-shadow:0 0 10px #f18b94}.chip.connected{color:#a8f6d4;border-color:#4fbf9166;background:#18372a}.chip.connected i{background:#6bf4b8;box-shadow:0 0 10px #6bf4b8}.chip.reconnecting{color:#ffe6a6}
.hero{display:flex;justify-content:space-between;align-items:center;min-height:315px;padding:42px 3px 35px;overflow:hidden}.eyebrow{font-family:'Space Grotesk',sans-serif;color:#b590ff;font-size:11px;letter-spacing:.18em;font-weight:700;margin:0 0 14px}.hero h1,.showcase-intro h1{font-family:'Space Grotesk',sans-serif;font-size:clamp(46px,5vw,73px);line-height:1;letter-spacing:-.055em;margin:0}.hero h1 span,.showcase-intro h1 span{color:#bb9aff}.hero-copy{max-width:515px;color:#b8b1c1;font-size:15px;line-height:1.6;margin:20px 0 0}.hero-glyph{position:relative;width:250px;height:250px;display:grid;place-items:center;margin-right:80px;color:#b693ff;transform:rotate(-11deg)}.hero-glyph span{font-size:110px;z-index:2;text-shadow:0 0 30px #ad7dff}.hero-glyph i{position:absolute;inset:22px;border:2px solid #ae81ff79;border-radius:50%;box-shadow:0 0 25px #8457d972, inset 0 0 25px #8457d955}.hero-glyph i:nth-of-type(2){inset:0;border-style:dashed;animation:rotate 18s linear infinite}.hero-glyph i:nth-of-type(3){inset:48px;border-color:#f3b4ff8a;transform:rotate(25deg)}@keyframes rotate{to{transform:rotate(360deg)}}
.notice{background:#2d2450;border:1px solid #8c78c0;border-radius:12px;padding:13px 16px;margin-bottom:16px;color:#e9dcff;font-size:13px}.notice a{text-decoration:underline}.notice.error{background:#4d242f;border-color:#ce738a;color:#ffe0e5}
.grid-main{display:grid;grid-template-columns:minmax(0,1.12fr) minmax(380px,.88fr);gap:20px}.left-stack,.right-stack{display:flex;flex-direction:column;gap:20px}.panel{background:#1b1928;border:1px solid #ffffff1c;border-radius:18px;padding:22px;box-shadow:0 16px 50px #00000019}.panel-heading{display:flex;justify-content:space-between;align-items:center;gap:15px;margin-bottom:18px}.panel-heading .eyebrow{margin-bottom:5px}.panel h2{font-family:'Space Grotesk',sans-serif;font-size:23px;letter-spacing:-.04em;margin:0}.button{border:0;border-radius:10px;padding:11px 14px;font-family:'Space Grotesk',sans-serif;font-size:12px;font-weight:700;white-space:nowrap;transition:transform .15s,filter .15s}.button:hover:not(:disabled){transform:translateY(-2px);filter:brightness(1.1)}.button:disabled{opacity:.45;cursor:not-allowed}.button.primary{background:#b69cff;color:#21152c;box-shadow:0 3px 16px #b69cff33}.button.subtle{background:#322e44;border:1px solid #ffffff20;color:#eee6fa}.button.ghost{background:transparent;color:#bcb0ca}.button.full{width:100%;margin-top:18px;padding:14px}
.camera-map{position:relative;aspect-ratio:16/9;border-radius:12px;overflow:hidden;background:radial-gradient(circle at 45% 45%,#332849,#14121d 70%);border:1px solid #73688177;cursor:crosshair}.camera-map video{width:100%;height:100%;object-fit:cover;display:none}.camera-on video{display:block}.camera-placeholder{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;color:#70677f;gap:6px;letter-spacing:.13em;font-size:12px;font-weight:700;background:linear-gradient(90deg,transparent 49.8%,#ffffff0a 50%,transparent 50.2%),linear-gradient(transparent 49.8%,#ffffff0a 50%,transparent 50.2%);background-size:50% 50%}.camera-on .camera-placeholder{display:none}.camera-placeholder .camera-icon{font-size:58px;font-weight:400;color:#8d78aa}.camera-placeholder small{letter-spacing:0;font-weight:400}.preview-overlay{position:absolute;inset:0;width:100%;height:100%;border:0;pointer-events:none}.anchor-layer{position:absolute;inset:0;pointer-events:none}.anchor-pin{position:absolute;transform:translate(-50%,-50%);display:grid;place-items:center;width:58px;height:58px;border:2px dashed var(--pin-color);background:#180e29a8;border-radius:50%;font-size:25px;box-shadow:0 0 20px var(--pin-color);opacity:.7}.anchor-pin.active{opacity:1;width:68px;height:68px;border-style:solid}.anchor-pin.active:after{content:'+';position:absolute;right:-11px;top:-9px;color:#fff;font-size:15px}.viewfinder{position:absolute;width:21px;height:21px;border-color:#bdadcf99;pointer-events:none}.top-left{left:12px;top:12px;border-left:2px solid;border-top:2px solid}.top-right{right:12px;top:12px;border-right:2px solid;border-top:2px solid}.bottom-left{left:12px;bottom:12px;border-left:2px solid;border-bottom:2px solid}.bottom-right{right:12px;bottom:12px;border-right:2px solid;border-bottom:2px solid}.camera-hint{font-size:11px;color:#9d94a8;margin:12px 0 16px}.camera-hint span{color:#b99fff;margin-right:5px}.object-list{display:grid;grid-template-columns:repeat(3,1fr);gap:9px}.object-row{background:#242134;border:1px solid #ffffff1a;border-radius:10px;padding:8px;display:flex;align-items:center;gap:2px}.object-row.selected{border-color:#aa8cff;box-shadow:0 0 0 1px #aa8cff55}.object-row.disabled{opacity:.45}.object-select{border:0;background:none;color:#fff;text-align:left;flex:1;min-width:0;display:grid;grid-template-columns:30px 1fr;align-items:center;column-gap:3px;padding:0}.object-select .object-icon{font-size:22px;grid-row:span 2}.object-select strong{font-size:11px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.object-select small{font-size:9px;color:#958ba3;white-space:nowrap}.object-toggle{border:1px solid #ffffff20;background:#3b344f;border-radius:5px;color:#e0d5f4;font-size:9px;font-weight:700;padding:4px}
.setup-step{display:flex;gap:14px;align-items:flex-start;padding:14px 0;border-top:1px solid #ffffff17}.setup-step:first-of-type{border-top:0}.step-num{display:grid;place-items:center;width:25px;height:25px;flex:none;background:#332748;border-radius:7px;color:#b996ff;font-family:'Space Grotesk';font-size:12px;font-weight:700}.setup-step div{flex:1;min-width:0}.setup-step strong{font-family:'Space Grotesk';font-size:13px}.setup-step p{color:#a79faf;font-size:11px;line-height:1.5;margin:5px 0}.setup-step p code{color:#d9c5ff}.setup-step .button{margin-top:1px}.url-box{display:block;white-space:nowrap;overflow:auto;background:#14121f;color:#bca5e7;border:1px solid #ffffff1a;padding:7px;border-radius:6px;font-size:10px}
.count{font-size:11px;color:#c7b2e3;border:1px solid #ffffff2b;border-radius:100px;padding:6px 9px}.current-round{border-radius:13px;padding:22px;background:radial-gradient(circle at 90% 10%,#473267,#282139 65%);border:1px solid #9876c86b;min-height:220px}.current-round.empty{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;background:#211e2e;border:1px dashed #695974}.empty-symbol{font-size:38px;color:#ab8aca;margin-bottom:10px}.current-round.empty strong{font-family:'Space Grotesk';font-size:15px}.current-round.empty p{max-width:230px;font-size:11px;color:#9e94a9;line-height:1.5;margin:6px 0}.round-top{display:flex;justify-content:space-between;gap:8px;align-items:center}.source-tag,.round-status,.review-mode{font-family:'Space Grotesk';font-size:9px;font-weight:700;letter-spacing:.08em;color:#cab0ff}.source-tag{color:#7fedbf}.round-status{color:#e7d3ff}.current-round h3{font-family:'Space Grotesk';font-size:24px;margin:13px 0 2px}.caster{font-size:11px;color:#b5a5c6;margin:0 0 15px}.challenge-copy{font-family:'Space Grotesk';font-size:16px;line-height:1.35;margin:14px 0}.review{background:#160f248a;border:1px solid #ffffff20;border-radius:8px;padding:10px;margin:13px 0}.review p{font-size:10px;line-height:1.4;color:#d5cbe1;margin:5px 0}.review p.approved{color:#a3e6c4}.review p.vetoed{color:#ffbdc4}.round-actions{display:flex;flex-wrap:wrap;gap:7px;margin-top:15px}.round-actions .button{font-size:11px}.queue-list{display:flex;flex-direction:column;gap:5px;max-height:154px;overflow:auto;margin-top:12px}.queue-item{display:flex;align-items:center;gap:10px;background:#262234;border:1px solid #ffffff12;border-radius:8px;padding:8px}.queue-icon{font-size:17px}.queue-item strong{font-size:11px}.queue-item code{color:#cbb5e8;font-size:10px;margin-left:auto}.queue-item small{font-size:8px;color:#9c8cb2}.demo-control{margin-top:19px;border-top:1px solid #ffffff1b;padding-top:14px}.demo-control>span{font-size:9px;letter-spacing:.14em;font-weight:700;color:#a593ba}.demo-control>div{display:flex;gap:6px;margin:8px 0}.demo-control input,.demo-control select{background:#15131f;border:1px solid #ffffff29;color:#ece3f5;border-radius:7px;padding:8px;min-width:0;font-size:11px}.demo-control input{flex:1}.demo-control select{width:90px}.demo-control small{color:#857d90;font-size:10px;line-height:1.4;display:block}
.ledger-icon{font-size:24px;color:#b796ef}.stats{display:grid;grid-template-columns:repeat(3,1fr);border:1px solid #ffffff1a;border-radius:10px;overflow:hidden}.stats>div{padding:12px;border-right:1px solid #ffffff1a;display:flex;flex-direction:column;gap:3px}.stats>div:last-child{border:0}.stats b{font-family:'Space Grotesk';font-size:22px;color:#e8d7ff}.stats span{font-size:8px;letter-spacing:.12em;color:#988cab;font-weight:700}.history-list{margin-top:13px;min-height:32px}.muted{font-size:11px;color:#897f96}.history-row{display:flex;gap:9px;align-items:center;padding:8px 0;border-top:1px solid #ffffff13}.history-result{font-size:18px;color:#c8a8ff}.history-result.success{color:#83f2bd}.history-row strong{font-size:11px;font-weight:500}.history-row small{margin-left:auto;font-size:9px;color:#a29aae}.studio footer{text-align:center;color:#716a7c;font-size:10px;padding:35px}.studio footer span{color:#9d84bd;margin:0 12px}.studio footer a{text-decoration:underline}

/* OBS surface — transparent by design */
.overlay-body{margin:0;background:transparent!important;overflow:hidden}.overlay-stage{position:relative;width:100vw;height:100vh;aspect-ratio:16/9;overflow:hidden;font-family:'Space Grotesk',sans-serif;color:#fff}.showcase-label{position:absolute;top:3%;left:3%;font-size:1.5vw;letter-spacing:.17em;font-weight:700;color:#fff;background:#3e256dc4;border:1px solid #c8a2ff;padding:.6vw 1vw;border-radius:100px;z-index:10}.haunt-marker{position:absolute;transform:translate(-50%,-50%);width:15vw;height:15vw;max-width:22vh;max-height:22vh;filter:drop-shadow(0 0 2vw var(--object-accent,#c9a6ff));z-index:2}.haunt-marker .outer-ring,.haunt-marker .inner-ring{position:absolute;inset:0;border:4px dashed var(--object-accent,#c9a6ff);border-radius:50%;animation:rotate 12s linear infinite}.haunt-marker .inner-ring{inset:12%;border:2px solid #fff;animation:rotate 8s linear infinite reverse;opacity:.8}.marker-symbol{position:absolute;inset:0;display:grid;place-items:center;color:#fff;font-size:6vw;text-shadow:0 0 1vw var(--object-accent,#c9a6ff);animation:pulse 1.5s ease-in-out infinite}.marker-label{position:absolute;top:105%;left:50%;transform:translateX(-50%);white-space:nowrap;background:#211532dd;border:1px solid var(--object-accent,#c9a6ff);color:#fff;border-radius:100px;padding:.3vw .7vw;font-size:.75vw;font-weight:700;letter-spacing:.14em}@keyframes pulse{50%{transform:scale(1.2);opacity:.75}}
.spell-card{position:absolute;right:3%;bottom:5%;width:34%;min-height:23%;background:linear-gradient(135deg,#211433ed,#41265fe8);border:2px solid #c7a2ff;border-radius:1.2vw;box-shadow:0 0 3vw #a279f099, inset 0 0 3vw #a279f022;overflow:hidden;padding:1.2vw 1.5vw;z-index:3}.spell-top{display:flex;align-items:center;gap:.5vw;font-size:.76vw;letter-spacing:.16em;font-weight:700;color:#decaff}.spell-top span:last-child{margin-left:auto;color:#a68cbd}.live-dot{width:.6vw;height:.6vw;border-radius:50%;background:#ff8baa;box-shadow:0 0 .8vw #ff8baa;animation:pulse 1s infinite}.spell-title{display:flex;gap:1vw;align-items:flex-start;margin:1.3vw 0}.spell-title>span{font-size:2.6vw}.spell-title p{color:#d1baff;font-size:.75vw;letter-spacing:.17em;font-weight:700;margin:0 0 .4vw}.spell-title h1{font-size:1.45vw;line-height:1.18;letter-spacing:-.03em;margin:0;font-weight:700}.spell-bottom{display:flex;align-items:end;justify-content:space-between;border-top:1px solid #ffffff3d;padding-top:.8vw}.spell-bottom>div:first-child{display:flex;flex-direction:column;gap:.2vw}.spell-bottom small{font-size:.7vw;letter-spacing:.13em;color:#b8a5d2;font-weight:700}.spell-bottom strong{font-size:1.15vw;color:#fff}.timer{display:flex;align-items:baseline;gap:.3vw}.timer span{font-size:2.65vw;line-height:1;font-weight:700;color:#fff}.timer small{color:#f4d2fd}.timer-bar{height:.35vw;background:linear-gradient(90deg,#ffc8ef,#b98fff);position:absolute;bottom:0;left:0;transition:width .2s linear}.spell-card.urgent{border-color:#ff8b98;box-shadow:0 0 3vw #ff607999}.spell-card.urgent .timer span{color:#ffabb9}.result-card{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);text-align:center;background:#221430ed;border:2px solid #c5a0ff;border-radius:1.5vw;padding:1.4vw 3vw;box-shadow:0 0 5vw #a682ef}.result-sigil{font-size:4vw;color:#d3b5ff;text-shadow:0 0 2vw #ba82ff}.result-card p{font-size:2vw;font-weight:700;letter-spacing:.12em;margin:.2vw 0}.result-card strong{font-size:1vw;letter-spacing:.16em;color:#dfc8ff}

.showcase-body{background:radial-gradient(circle at 80% 5%,#3f2d56,#15111d 60%);min-height:100vh}.showcase-top{max-width:1320px;margin:auto;padding:0 34px}.showcase-main{max-width:1320px;margin:auto;padding:60px 34px 80px}.showcase-intro{text-align:center;max-width:760px;margin:0 auto 40px}.showcase-intro h1{font-size:clamp(42px,6vw,82px)}.showcase-intro>p:last-child{font-size:15px;line-height:1.6;color:#b8adca;max-width:640px;margin:22px auto}.showcase-intro code{color:#e7c7ff}.showcase-frame{aspect-ratio:16/9;position:relative;border:2px solid #a684c6;border-radius:18px;overflow:hidden;box-shadow:0 25px 75px #0008,0 0 45px #9e6ac044}.showcase-frame iframe{position:absolute;inset:0;width:100%;height:100%;border:0}.fake-desk{position:absolute;inset:0;background:radial-gradient(circle at 36% 36%,#67516b,#2a253d 54%,#191726 100%)}.fake-desk:after{content:'';position:absolute;left:0;right:0;bottom:0;height:43%;background:linear-gradient(#624647,#483337);box-shadow:0 -12px 30px #1a102366}.fake-shadow{position:absolute;left:19%;top:48%;width:27%;height:17%;background:#1a1526;border-radius:50%;filter:blur(20px);z-index:2}.fake-mug{position:absolute;left:24%;top:42%;width:13%;height:21%;border-radius:8% 8% 30% 30%;background:linear-gradient(90deg,#d8a58b,#f4c5ab 45%,#b27977);box-shadow:inset 0 10px #7b4b50,0 18px 25px #1d1027aa;z-index:3}.fake-mug:after{content:'';position:absolute;left:85%;top:13%;width:35%;height:52%;border:1.1vw solid #e8b4a0;border-left:0;border-radius:0 70% 70% 0}.fake-notebook{position:absolute;left:49%;top:67%;width:22%;height:17%;background:#c0a5a1;border:8px solid #e3ccc7;transform:rotate(-10deg);z-index:3;box-shadow:0 13px 20px #1d1027aa}.fake-plush{position:absolute;right:17%;top:36%;width:13%;height:25%;display:grid;place-items:center;background:#a687b2;border-radius:45% 45% 35% 35%;color:#e8d0f5;font-size:5vw;z-index:3;box-shadow:0 20px 30px #1d1027aa}.frame-corner{position:absolute;width:30px;height:30px;border-color:#ffffffaa;z-index:5}.tl{top:20px;left:20px;border-top:2px solid;border-left:2px solid}.tr{top:20px;right:20px;border-top:2px solid;border-right:2px solid}.bl{bottom:20px;left:20px;border-bottom:2px solid;border-left:2px solid}.br{bottom:20px;right:20px;border-bottom:2px solid;border-right:2px solid}.showcase-caption{display:flex;justify-content:space-between;margin:14px 4px;color:#a897b9;font-size:10px;letter-spacing:.12em;font-weight:700}.showcase-caption a{color:#ddc7ff}.showcase-how{display:grid;grid-template-columns:repeat(3,1fr);gap:15px;margin-top:55px}.showcase-how>div{background:#211b2e;border:1px solid #ffffff19;border-radius:13px;padding:23px}.showcase-how span{color:#ba94f3;font-size:12px}.showcase-how strong{display:block;font-family:'Space Grotesk';letter-spacing:.1em;font-size:13px;margin:10px 0}.showcase-how p{color:#ad9fb9;font-size:12px;line-height:1.5;margin:0}.showcase-how code{color:#dbc0fd}
.auth-body{min-height:100vh;display:grid;place-items:center;background:radial-gradient(circle,#38274f,#12101c)}.auth-card{background:#201a2f;border:1px solid #9e7ac0;border-radius:18px;text-align:center;padding:40px;max-width:450px}.auth-card .brand-mark{margin:auto}.auth-card h1{font-family:'Space Grotesk'}.auth-card p{color:#c4b2d8}.auth-card a{color:#d5b5ff;text-decoration:underline}
@media(max-width:920px){.studio{padding:0 18px}.hero-glyph{margin-right:0;opacity:.35}.grid-main{grid-template-columns:1fr}.object-list{grid-template-columns:repeat(3,1fr)}}@media(max-width:600px){.topbar{height:65px}.brand{font-size:13px}.topbar-right .chip:first-child{display:none}.hero{min-height:250px}.hero-glyph{display:none}.hero h1{font-size:52px}.panel{padding:17px}.object-list{grid-template-columns:1fr}.setup-step{flex-wrap:wrap}.showcase-main{padding:40px 17px}.showcase-how{grid-template-columns:1fr}.showcase-caption{font-size:8px;gap:10px}}
.fake-notebook{left:44%;top:74%;width:17%;height:15%}
.overlay-html{background:transparent!important}
