:root{--bg:#0f0d10;--panel:#17141a;--panel-2:#1f1b23;--line:#2e2833;--text:#efe6d4;--muted:#a89f93;--red:#ff3d6e;--gold:#e3b95c;--radius:14px;--ease:cubic-bezier(.2, .8, .2, 1);--display:"Pirata One", Georgia, serif;--body:"DM Sans", system-ui, -apple-system, Segoe UI, Roboto, sans-serif}*{box-sizing:border-box}html,body{height:100%;margin:0}body{background:var(--bg);color:var(--text);font-family:var(--body);-webkit-font-smoothing:antialiased;font-size:15px;line-height:1.5;overflow:hidden}button{font:inherit;color:inherit;cursor:pointer}:focus-visible{outline:2px solid var(--gold);outline-offset:2px}#scene{touch-action:none;cursor:grab;width:100%;height:100%;display:block;position:fixed;inset:0}#scene.dragging{cursor:grabbing}#scene.pointer{cursor:pointer}#overlay{pointer-events:none;position:fixed;inset:0;overflow:hidden}.tag,.bubble{will-change:transform;white-space:nowrap;position:absolute;top:0;left:0}.tag{letter-spacing:.04em;border:1px solid var(--c,var(--gold));color:var(--c,var(--gold));background:#0f0d10c7;border-radius:99px;padding:2px 8px;font-size:11px;font-weight:700;transform:translate(-50%,-100%)}.bubble{color:#141214;opacity:0;transition:opacity .18s var(--ease);background:#fffaf0;border:2px solid #141214;border-radius:10px;padding:5px 10px;font-size:13px;font-weight:500;box-shadow:3px 3px #00000059}.bubble:after{content:"";background:#fffaf0;border-bottom:2px solid #141214;border-right:2px solid #141214;width:12px;height:12px;position:absolute;bottom:-9px;left:50%;transform:translate(-50%)rotate(45deg)}.bubble.show{opacity:1}#tooltip{pointer-events:none;border:1px solid var(--line);color:var(--text);opacity:0;z-index:5;white-space:nowrap;background:#0f0d10eb;border-radius:8px;padding:6px 10px;font-size:13px;font-weight:500;transition:opacity .12s;position:fixed;top:0;left:0;transform:translate(14px,14px)}#tooltip.show{opacity:1}#tooltip small{color:var(--gold);font-size:11px;display:block}.hud-top{pointer-events:none;z-index:4;background:linear-gradient(#0f0d10e6,#0f0d1000);justify-content:space-between;align-items:center;gap:16px;padding:16px 24px;display:flex;position:fixed;top:0;left:0;right:0}.hud-top>*{pointer-events:auto}.brand{color:var(--text);flex-direction:column;line-height:1;text-decoration:none;display:flex}.brand-name{font-family:var(--display);color:var(--text);text-shadow:0 0 18px #ff3d6e73;font-size:36px}.brand-tag{letter-spacing:.22em;text-transform:uppercase;color:var(--gold);margin-top:4px;font-size:11px}.hud-actions{gap:8px;display:flex}.btn{border:1px solid var(--line);background:var(--panel);min-height:40px;transition:background .15s, border-color .15s, transform .15s var(--ease);color:var(--text);border-radius:99px;justify-content:center;align-items:center;gap:8px;padding:0 18px;font-size:14px;font-weight:700;text-decoration:none;display:inline-flex}.btn:hover{border-color:#4a4250}.btn:active{transform:scale(.97)}.btn.primary{background:var(--red);border-color:var(--red);color:#fff}.btn.primary:hover{background:#ff577f}.btn.ghost{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#17141abf}.btn.block{width:100%;min-height:48px}.hud-bottom{padding:16px 24px calc(16px + env(safe-area-inset-bottom));pointer-events:none;z-index:4;justify-content:space-between;align-items:flex-end;gap:12px;display:flex;position:fixed;bottom:0;left:0;right:0}.hud-bottom>*{pointer-events:auto}.artist-chips{flex-wrap:wrap;gap:8px;display:flex}.chip{border:1px solid var(--line);text-align:left;transition:border-color .15s, transform .15s var(--ease);background:#17141ae0;border-radius:99px;align-items:center;gap:10px;padding:5px 14px 5px 5px;display:flex}.chip:hover{border-color:var(--c);transform:translateY(-2px)}.chip img{border:2px solid var(--c);object-fit:cover;background:#2a2430;border-radius:50%;width:34px;height:34px}.chip b{font-size:13px;line-height:1.1;display:block}.chip span{color:var(--muted);font-size:11px;line-height:1.2;display:block}.cam-controls{flex-direction:column;gap:6px;display:flex}.icon-btn{border:1px solid var(--line);background:#17141ae0;border-radius:10px;place-items:center;width:40px;height:40px;font-size:20px;line-height:1;display:grid}.icon-btn:hover{border-color:#4a4250}.hint{border:1px solid var(--line);max-width:min(640px,100vw - 32px);color:var(--muted);z-index:4;transition:opacity .3s, transform .3s var(--ease);background:#17141aeb;border-radius:12px;align-items:center;gap:12px;padding:10px 12px 10px 16px;font-size:13px;display:flex;position:fixed;top:84px;left:50%;transform:translate(-50%)}.hint strong{color:var(--gold);white-space:nowrap}.hint b{color:var(--text);font-weight:500}.hint.hide{opacity:0;pointer-events:none;transform:translate(-50%,-10px)}.hint-close{color:var(--muted);background:0 0;border:0;border-radius:8px;flex:none;width:32px;height:32px}.hint-close:hover{background:var(--panel-2);color:var(--text)}.panel{background:var(--panel);border-left:1px solid var(--line);z-index:10;width:min(480px,100vw);transition:transform .35s var(--ease);flex-direction:column;display:flex;position:fixed;top:0;bottom:0;right:0;transform:translate(100%);box-shadow:-20px 0 60px #00000073}.panel.open{transform:none}.panel-close{border:1px solid var(--line);z-index:2;background:#0f0d10b3;border-radius:10px;width:40px;height:40px;font-size:16px;position:absolute;top:14px;right:14px}.panel-close:hover{border-color:#4a4250}.panel-body{overscroll-behavior:contain;flex:1;overflow-y:auto}.panel-hero{background:radial-gradient(120% 90% at 20% 0%, color-mix(in srgb, var(--c,var(--red)) 30%, transparent), transparent 70%), var(--panel-2);border-bottom:1px solid var(--line);padding:32px 24px 24px;position:relative}.panel-hero .eyebrow{letter-spacing:.2em;text-transform:uppercase;color:var(--c,var(--gold));font-size:11px;font-weight:700}.panel-hero h2{font-family:var(--display);margin:6px 0 4px;font-size:44px;font-weight:400;line-height:1}.panel-hero .alias{color:var(--muted);font-style:italic}.artist-head{align-items:center;gap:16px;display:flex}.artist-head img{border:3px solid var(--c);object-fit:cover;background:#2a2430;border-radius:50%;flex:none;width:96px;height:96px}.tags{flex-wrap:wrap;gap:6px;margin-top:12px;display:flex}.tags span{border:1px solid var(--line);background:#00000040;border-radius:99px;padding:3px 10px;font-size:12px}.section{border-bottom:1px solid var(--line);padding:20px 24px}.section:last-child{border-bottom:0}.section h3{letter-spacing:.18em;text-transform:uppercase;color:var(--gold);margin:0 0 12px;font-size:12px}.section p{color:#d8cfc1;margin:0 0 10px}.quote{font-family:var(--display);color:var(--c,var(--text));margin:0;font-size:22px;line-height:1.2}.stats{grid-template-columns:repeat(3,1fr);gap:8px;display:grid}.stat{background:var(--panel-2);border:1px solid var(--line);border-radius:10px;padding:10px 12px}.stat b{font-size:18px;display:block}.stat span{color:var(--muted);font-size:11px}.gallery{grid-template-columns:repeat(3,1fr);gap:8px;display:grid}.gallery button{aspect-ratio:1;background:0 0;border:0;border-radius:10px;padding:0;position:relative;overflow:hidden}.gallery img{object-fit:cover;width:100%;height:100%;transition:transform .3s var(--ease);display:block}.gallery button:hover img{transform:scale(1.06)}.gallery button span{text-align:left;opacity:0;background:linear-gradient(#0000,#000000bf);padding:16px 8px 6px;font-size:11px;font-weight:500;transition:opacity .2s;position:absolute;bottom:0;left:0;right:0}.gallery button:hover span,.gallery button:focus-visible span{opacity:1}.panel-cta{padding:16px 24px calc(16px + env(safe-area-inset-bottom));background:linear-gradient(to top, var(--panel) 70%, transparent);gap:8px;display:flex;position:sticky;bottom:0}.kv{grid-template-columns:1fr auto;gap:6px 16px;margin:0;display:grid}.kv dt{color:#d8cfc1}.kv dd{text-align:right;margin:0;font-weight:700}.steps{counter-reset:s;gap:12px;margin:0;padding:0;list-style:none;display:grid}.steps li{counter-increment:s;grid-template-columns:32px 1fr;gap:12px;display:grid}.steps li:before{content:counter(s);color:#141214;background:var(--gold);border-radius:50%;place-items:center;width:32px;height:32px;font-weight:700;display:grid}.steps b{display:block}.steps span{color:var(--muted);font-size:14px}details{border:1px solid var(--line);background:var(--panel-2);border-radius:10px;margin-bottom:8px}summary{cursor:pointer;justify-content:space-between;gap:8px;padding:12px 14px;font-weight:500;list-style:none;display:flex}summary:after{content:"+";color:var(--gold);font-weight:700}details[open] summary:after{content:"–"}details p{color:var(--muted);margin:0;padding:0 14px 12px}.team{gap:8px;display:grid}.team button{border:1px solid var(--line);background:var(--panel-2);text-align:left;border-radius:12px;align-items:center;gap:12px;padding:8px;display:flex}.team button:hover{border-color:var(--c)}.team img{border:2px solid var(--c);background:#2a2430;border-radius:50%;width:48px;height:48px}.team b{display:block}.team span{color:var(--muted);font-size:13px}.fine{color:var(--muted);font-size:12px}.modal{z-index:20;visibility:hidden;place-items:center;padding:16px;display:grid;position:fixed;inset:0}.modal.open{visibility:visible}.modal-backdrop{opacity:0;background:#080609b3;transition:opacity .25s;position:absolute;inset:0}.modal.open .modal-backdrop{opacity:1}.modal-card{background:var(--panel);border:1px solid var(--line);opacity:0;width:min(620px,100%);max-height:calc(100dvh - 32px);transition:opacity .25s, transform .3s var(--ease);border-radius:18px;position:relative;overflow:hidden auto;transform:translateY(16px)scale(.98);box-shadow:0 30px 80px #0009}.modal.open .modal-card{opacity:1;transform:none}.modal-head{padding:24px 24px 8px}.modal-head h2{font-family:var(--display);margin:0;font-size:38px;font-weight:400;line-height:1}.modal-head p{color:var(--muted);margin:6px 0 0}form.booking{gap:16px;padding:8px 24px 24px;display:grid}.row{grid-template-columns:1fr 1fr;gap:12px;display:grid}.field{gap:6px;min-width:0;display:grid}.field input[type=file]{font-size:13px}.field>label,.field>.label{font-size:13px;font-weight:500}.field .opt{color:var(--muted);font-weight:400}.field input,.field select,.field textarea{width:100%;font:inherit;color:var(--text);background:var(--panel-2);border:1px solid var(--line);border-radius:10px;min-height:44px;padding:10px 12px;transition:border-color .15s}.field textarea{resize:vertical;min-height:92px}.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--gold);outline:none}.field.invalid input,.field.invalid select,.field.invalid textarea{border-color:#ff5a5a}.field .err{color:#ff8a8a;min-height:0;font-size:12px}.field .help{color:var(--muted);font-size:12px}.pick-artist{grid-template-columns:repeat(3,1fr);gap:8px;display:grid}.pick-artist label{border:1px solid var(--line);background:var(--panel-2);cursor:pointer;text-align:center;border-radius:12px;flex-direction:column;align-items:center;gap:4px;padding:10px 6px;font-size:13px;transition:border-color .15s,background .15s;display:flex}.pick-artist label small{color:var(--muted);font-size:11px}.pick-artist img{border:2px solid var(--c);background:#2a2430;border-radius:50%;width:48px;height:48px}.pick-artist>div{position:relative}.field .pick-artist input,.field .slots input{opacity:0;pointer-events:none;width:1px;height:1px;min-height:0;padding:0;position:absolute}.pick-artist input:checked+label{border-color:var(--c);background:color-mix(in srgb, var(--c) 14%, var(--panel-2))}.pick-artist input:focus-visible+label{outline:2px solid var(--gold);outline-offset:2px}.slots{flex-wrap:wrap;gap:6px;display:flex;position:relative}.slots input{opacity:0;pointer-events:none;position:absolute}.slots label{border:1px solid var(--line);background:var(--panel-2);cursor:pointer;border-radius:99px;align-items:center;min-height:36px;padding:8px 14px;font-size:13px;display:inline-flex}.slots input:checked+label{border-color:var(--gold);color:var(--gold);background:#e3b95c26}.slots input:focus-visible+label{outline:2px solid var(--gold);outline-offset:2px}.check{color:#d8cfc1;align-items:flex-start;gap:10px;font-size:13px;display:flex}.check input{width:18px;height:18px;accent-color:var(--red);flex:none;margin-top:2px}.confirm{text-align:center;padding:32px 24px}.confirm .seal{border:2px solid var(--red);background:radial-gradient(circle,#ff3d6e40,#0000 70%);border-radius:50%;place-items:center;width:88px;height:88px;margin:0 auto 16px;font-size:40px;display:grid}.confirm h2{font-family:var(--display);margin:0 0 8px;font-size:40px;font-weight:400}.summary{text-align:left;background:var(--panel-2);border:1px solid var(--line);border-radius:12px;margin:20px 0;padding:14px 16px}.summary .kv dd{font-weight:500}.code{color:var(--gold);letter-spacing:.1em;font-family:ui-monospace,Consolas,monospace}.lightbox{z-index:30;opacity:0;visibility:hidden;background:#080609eb;place-items:center;padding:24px;transition:opacity .2s,visibility .2s;display:grid;position:fixed;inset:0}.lightbox.open{opacity:1;visibility:visible}.lightbox figure{max-width:min(640px,100%);margin:0}.lightbox img{border-radius:12px;width:100%;display:block}.lightbox figcaption{color:var(--muted);justify-content:space-between;gap:12px;margin-top:12px;font-size:14px;display:flex}.lightbox figcaption b{color:var(--text);font-size:16px}.loader{z-index:50;background:var(--bg);place-items:center;transition:opacity .6s,visibility .6s;display:grid;position:fixed;inset:0}.loader.done{opacity:0;visibility:hidden}.loader-inner{text-align:center}.loader-title{font-family:var(--display);text-shadow:0 0 24px #ff3d6e99;font-size:56px}.loader-bar{background:var(--line);border-radius:3px;width:220px;height:3px;margin:16px auto 10px;overflow:hidden}.loader-bar span{background:var(--red);width:40%;height:100%;animation:1.1s ease-in-out infinite load;display:block}.loader-text{color:var(--muted);font-size:13px}@keyframes load{0%{transform:translate(-100%)}to{transform:translate(260%)}}.toast{background:var(--panel-2);border:1px solid var(--line);z-index:40;opacity:0;transition:opacity .2s, transform .25s var(--ease);pointer-events:none;border-radius:10px;padding:10px 16px;font-size:14px;position:fixed;bottom:96px;left:50%;transform:translate(-50%,20px)}.toast.show{opacity:1;transform:translate(-50%)}body.at-street .hud-top,body.at-street .hud-bottom,body.at-street .hint,body.at-street #overlay,body.at-street #tooltip{opacity:0;visibility:hidden}.hud-top,.hud-bottom,.hint,#overlay{transition:opacity .8s .4s,visibility .8s .4s}.intro{z-index:6;padding:96px clamp(20px, 5vw, 64px) calc(clamp(24px, 6vh, 56px) + env(safe-area-inset-bottom));pointer-events:none;background:linear-gradient(#0000 0%,#08080e99 45%,#08080eeb 100%);position:fixed;bottom:0;left:0;right:0}.intro-inner{pointer-events:auto;max-width:560px}.intro>.intro-inner>*{opacity:0;transition:opacity .7s var(--ease), transform .8s var(--ease);transform:translateY(14px)}.intro.show>.intro-inner>*{opacity:1;transform:none}.intro.show>.intro-inner>:nth-child(2){transition-delay:.12s}.intro.show>.intro-inner>:nth-child(3){transition-delay:.24s}.intro.show>.intro-inner>:nth-child(4){transition-delay:.36s}.intro.leaving{opacity:0;transition:opacity .4s, transform .5s var(--ease);pointer-events:none;transform:translateY(20px)}.intro-eyebrow{letter-spacing:.22em;text-transform:uppercase;color:var(--gold);margin:0 0 10px;font-size:12px;font-weight:700}.intro-title{font-family:var(--display);margin:0;font-size:clamp(44px,7vw,76px);font-weight:400;line-height:.95}.intro-sub{color:#d8cfc1;max-width:42ch;margin:14px 0 0;font-size:16px}.intro-actions{flex-wrap:wrap;align-items:center;gap:16px;margin-top:24px;display:flex}.intro-cta{min-height:52px;padding:0 28px;font-size:16px;box-shadow:0 0 32px #ff3d6e73}.intro-cta span{transition:transform .2s var(--ease)}.intro-cta:hover span{transform:translate(4px)}.intro-hint{color:var(--muted);font-size:13px}.intro-credit{color:var(--muted);margin-top:22px;font-size:12.5px}.intro-credit a{color:inherit;text-underline-offset:3px;text-decoration:underline}.intro-credit a:hover{color:#fff}.fade{z-index:7;pointer-events:none;opacity:0;background:radial-gradient(circle,#fff3dc 0%,#ffcf8a 45%,#3a1e14 100%);position:fixed;inset:0}.fade.out{transition:opacity 1.1s ease-out;opacity:0!important}@media (width<=720px){.hud-top{padding:12px 16px}.brand-name{font-size:28px}.brand-tag{font-size:9px}.hud-actions .ghost{display:none}.hud-bottom{padding:12px 16px calc(12px + env(safe-area-inset-bottom))}.artist-chips{scrollbar-width:none;flex-wrap:nowrap;max-width:calc(100vw - 88px);overflow-x:auto}.chip{flex:none;padding-right:10px}.chip span{display:none}.hint{font-size:12px;top:70px}.hint strong{display:none}.row{grid-template-columns:1fr}.intro-sub{font-size:15px}.intro-hint{display:none}.panel-hero h2{font-size:36px}.artist-head img{width:72px;height:72px}.modal{place-items:end center;padding:0}.modal-card{border-radius:18px 18px 0 0;max-height:92dvh}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important}}
