:root{--accent:oklch(0.78 0.18 25);--bg:#000}*{box-sizing:border-box;margin:0;padding:0}#root,body,html{height:100%;width:100%;overflow:hidden;background:#000;color:#fff;font-family:Inter,system-ui,sans-serif;letter-spacing:-.01em;cursor:none}body.show-cursor{cursor:default}.party{position:fixed;inset:0;display:flex;align-items:center;justify-content:center;background:#000;overflow:hidden;-moz-user-select:none;user-select:none;-webkit-user-select:none;outline:none}.room-glow{position:absolute;inset:-10%;background:radial-gradient(circle at 50% 50%,oklch(.3 .12 30),oklch(.1 .08 280) 60%,#000 90%);filter:blur(60px);opacity:.5;z-index:0;animation:roomdrift 32s ease-in-out infinite alternate}@keyframes roomdrift{0%{transform:scale(1) rotate(0deg)}to{transform:scale(1.2) rotate(8deg)}}.party-stage{pointer-events:none}.party-empty{pointer-events:auto}.party-canvas{pointer-events:none;position:relative;background:#000;z-index:1;box-shadow:0 0 0 1px hsla(0,0%,100%,.06),0 60px 120px rgba(0,0,0,.6)}.p-tile{position:absolute;overflow:hidden;background:#050505}.p-tile,.p-tile .tile-media,.p-tile iframe,.p-tile video{pointer-events:none}.p-tile-bg{position:absolute;inset:0;background-position:50%;background-size:cover;transition:transform .5s linear}.p-tile-bg:after{content:"";position:absolute;inset:0;background:repeating-linear-gradient(0deg,transparent 0 3px,hsla(0,0%,100%,.03) 3px 4px);mix-blend-mode:overlay}.p-tile-num{position:absolute;top:14px;left:14px;font-family:JetBrains Mono,monospace;font-size:12px;letter-spacing:.12em;color:hsla(0,0%,100%,.5);text-shadow:0 1px 8px rgba(0,0,0,.7);font-weight:500;opacity:0;transition:opacity .4s}.party.chrome-on .p-tile-num{opacity:1}.party-top{position:absolute;top:0;left:0;right:0;padding:28px 40px;display:flex;align-items:flex-start;justify-content:space-between;gap:24px;z-index:10;pointer-events:none;opacity:0;transition:opacity .6s}.party.chrome-on .party-top{opacity:1}.party-title{display:flex;flex-direction:column;gap:4px}.party-title .eyebrow{font-family:JetBrains Mono,monospace;font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:hsla(0,0%,100%,.5);display:flex;align-items:center;gap:10px}.party-title .dot{width:6px;height:6px;background:var(--accent);border-radius:50%;animation:blink 1.6s infinite}@keyframes blink{50%{opacity:.3}}.party-title h1{font-size:clamp(24px,3.4vw,56px);font-weight:600;letter-spacing:-.025em;text-wrap:balance;line-height:1.05;text-shadow:0 2px 30px rgba(0,0,0,.8)}.party-title .author{font-size:clamp(13px,1.2vw,18px);color:hsla(0,0%,100%,.6);margin-top:6px}.party-counter,.party-title .author{font-family:JetBrains Mono,monospace}.party-counter{text-align:right}.party-counter .big{font-size:clamp(28px,3.6vw,56px);font-weight:500;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;letter-spacing:-.02em;line-height:1}.party-counter .label{font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:hsla(0,0%,100%,.5);margin-top:6px}.party-bottom{position:absolute;bottom:0;left:0;right:0;padding:24px 40px;display:flex;align-items:flex-end;justify-content:space-between;gap:24px;z-index:10;pointer-events:none;opacity:0;transition:opacity .6s}.party.chrome-on .party-bottom{opacity:1}.party-qr{display:flex;align-items:center;gap:18px;background:rgba(0,0,0,.55);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border:1px solid hsla(0,0%,100%,.08);padding:14px 20px 14px 14px}.qr-art{width:88px;height:88px;background:#fff;display:grid;grid-template-columns:repeat(11,1fr);grid-template-rows:repeat(11,1fr);padding:6px;grid-gap:1px;gap:1px;flex-shrink:0}.qr-art i{background:#000}.qr-art i.off{background:#fff}.qr-info .label{font-family:JetBrains Mono,monospace;font-size:10px;letter-spacing:.18em;text-transform:uppercase;color:hsla(0,0%,100%,.5)}.qr-info h3{font-size:clamp(14px,1.4vw,20px);font-weight:600;letter-spacing:-.01em;margin-top:4px;line-height:1.15}.qr-info .url{font-family:JetBrains Mono,monospace;font-size:12px;color:var(--accent);margin-top:6px}.party-progress{flex:1 1;max-width:50%}.party-progress .pp-row{display:flex;align-items:center;gap:14px;margin-bottom:8px}.party-progress .pp-time{font-family:JetBrains Mono,monospace;font-size:11px;color:hsla(0,0%,100%,.6);letter-spacing:.1em;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.party-progress .pp-bar{flex:1 1;height:2px;background:hsla(0,0%,100%,.12);position:relative}.party-progress .pp-bar-fill{position:absolute;left:0;top:0;bottom:0;background:var(--accent)}.party-progress .pp-tiles{display:flex;gap:6px;font-family:JetBrains Mono,monospace;font-size:10px;color:hsla(0,0%,100%,.4);letter-spacing:.08em;text-transform:uppercase;flex-wrap:wrap}.party-progress .pp-tiles .pp-tile{display:inline-flex;align-items:center;gap:6px}.party-progress .pp-tiles .pp-tile:before{content:"";width:6px;height:6px;background:var(--tile-color,hsla(0,0%,100%,.3))}.title-card{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:18px;background:rgba(0,0,0,.85);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);z-index:20;pointer-events:none;text-align:center;padding:40px;opacity:0;transition:opacity .6s}.title-card.show{opacity:1}.title-card .eyebrow{font-family:JetBrains Mono,monospace;font-size:13px;letter-spacing:.24em;text-transform:uppercase;color:var(--accent)}.title-card h1{font-size:clamp(40px,7vw,120px);font-weight:700;letter-spacing:-.035em;line-height:.95;text-wrap:balance;max-width:16ch}.title-card .author{font-size:clamp(15px,1.6vw,22px);color:hsla(0,0%,100%,.7);font-family:JetBrains Mono,monospace;margin-top:4px}.title-card .meta{display:flex;gap:32px;margin-top:16px;font-family:JetBrains Mono,monospace;font-size:12px;letter-spacing:.12em;text-transform:uppercase;color:hsla(0,0%,100%,.5)}.title-card .meta b{display:block;font-size:22px;color:#fff;letter-spacing:-.01em;text-transform:none;font-weight:500;margin-top:4px}.settings{position:absolute;top:50%;right:24px;transform:translateY(-50%);display:flex;flex-direction:column;gap:6px;z-index:80;opacity:1;pointer-events:auto}.settings button{opacity:0;pointer-events:none;transition:opacity .3s}.party.chrome-on .settings button{opacity:.7;pointer-events:auto}.party.chrome-on .settings:hover button{opacity:1}.settings [data-action=back-watch],.settings [data-action=party-help]{opacity:.85;pointer-events:auto;z-index:90}.party.chrome-on .settings [data-action=back-watch]{opacity:1}.settings a,.settings button{width:40px;height:40px;display:flex;align-items:center;justify-content:center;background:rgba(0,0,0,.55);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border:1px solid hsla(0,0%,100%,.08);color:#fff;cursor:pointer;text-decoration:none;box-sizing:border-box;flex-shrink:0}.settings a:hover,.settings button:hover{background:hsla(0,0%,100%,.08)}.settings button.active{background:var(--accent);color:#000;border-color:var(--accent)}.help{position:absolute;inset:auto 76px 24px auto;padding:16px 20px;background:rgba(0,0,0,.7);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid hsla(0,0%,100%,.08);font-family:JetBrains Mono,monospace;font-size:11px;color:hsla(0,0%,100%,.7);z-index:30;display:none}.help.show{display:block}.help h4{font-size:10px;letter-spacing:.12em;text-transform:uppercase;color:hsla(0,0%,100%,.5);margin-bottom:8px;font-weight:600}.help dl{display:grid;grid-template-columns:auto 1fr;grid-gap:4px 14px;gap:4px 14px}.help kbd{display:inline-block;padding:1px 5px;border:1px solid hsla(0,0%,100%,.2);border-radius:2px;font-size:10px;color:#fff}.p-tile .tile-media{position:absolute;inset:0}.p-tile-seam{position:absolute;bottom:0;left:0;height:2px;background:var(--accent,oklch(.78 .18 25));pointer-events:none;z-index:2}.qr-art.qr-real{display:block;padding:6px}.qr-art.qr-real svg{width:100%;height:100%;display:block}.party-empty{position:relative;z-index:2;display:flex;flex-direction:column;align-items:center;text-align:center;gap:12px;padding:32px}.party-empty .qr-art{width:180px;height:180px}.party-empty h2{font-size:28px;font-weight:600;letter-spacing:-.03em}.party-empty p{color:hsla(0,0%,100%,.55);font-size:14px;max-width:36ch;line-height:1.4}.party-empty .url{font-family:JetBrains Mono,monospace;font-size:12px;color:var(--accent)}