:root{--bg: #f7f5f1;--ink: #141414;--muted: #5e5a54;--line: #ddd8ce;--gold: #8a6a32;--gold-soft: rgba(138, 106, 50, .12);--paper: #fffcf7;--panel: #1a1917;--panel-2: #242220;--panel-line: rgba(255, 255, 255, .1);--panel-text: #f0ebe3;--panel-muted: #9a948a;--head-h: 72px;--panel-w: 320px;--sans: "Avenir Next", "Segoe UI", system-ui, sans-serif;--serif: Georgia, "Iowan Old Style", "Palatino Linotype", serif}*{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;min-height:100%;background:var(--bg);color:var(--ink);font-family:var(--sans);font-weight:400;line-height:1.45;-webkit-font-smoothing:antialiased}button,input,textarea,select{font:inherit;color:inherit}button{cursor:pointer}img{max-width:100%;display:block}a{color:inherit}.app{min-height:100%;display:flex;flex-direction:column}.masthead{position:sticky;top:0;z-index:40;display:flex;align-items:center;justify-content:space-between;gap:24px;min-height:var(--head-h);padding:10px 22px 10px 18px;background:var(--bg);border-bottom:1px solid var(--line)}.brand{display:flex;align-items:center;gap:14px;text-decoration:none;min-width:0;max-width:min(720px,70vw)}.brand-mark{flex:none;width:52px;height:52px;border-radius:50%;background:#fff;border:1px solid var(--line);display:grid;place-items:center;overflow:hidden}.brand-mark img{width:44px;height:44px;object-fit:contain}.brand-copy{display:flex;flex-direction:column;gap:2px;min-width:0}.brand-name{font-family:var(--serif);font-size:1.35rem;font-weight:500;letter-spacing:-.02em;line-height:1.1}.brand-desc{color:var(--muted);font-size:.82rem;line-height:1.35;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.masthead-end{display:flex;align-items:center;gap:14px;flex:none}.family-tag{font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}.panel-toggle{border:1px solid var(--line);background:#fff;border-radius:999px;padding:8px 16px;font-size:13px;font-weight:500}.panel-toggle:hover{border-color:var(--gold);color:var(--gold)}.shell{flex:1;display:grid;grid-template-columns:minmax(0,1fr) var(--panel-w);min-height:calc(100vh - var(--head-h));position:relative}.shell--both{grid-template-columns:220px minmax(0,1fr) var(--panel-w)}.left-nav{position:sticky;top:var(--head-h);height:calc(100vh - var(--head-h));overflow-y:auto;display:flex;flex-direction:column;gap:16px;padding:18px 10px 24px 12px;background:#1c1b19;color:var(--panel-text);border-right:1px solid var(--panel-line);z-index:34}.left-nav-head{padding:0 6px}.explore-nav--left{display:flex;flex-direction:column;gap:4px}.left-nav .explore-link{display:flex;flex-direction:column;align-items:flex-start;gap:2px;padding:10px 12px;border:none;border-radius:8px;background:transparent;color:var(--panel-muted);text-align:left;width:100%}.left-nav .explore-link strong{font-size:14px;font-weight:500;color:#eceae6}.left-nav .explore-link em{font-style:normal;font-size:12px;color:var(--panel-muted)}.left-nav .explore-link:hover{background:#ffffff0a}.left-nav .explore-link[aria-current=page]{background:#8a6a3238;box-shadow:inset 3px 0 0 var(--gold);border-radius:8px}.stage{min-width:0;min-height:calc(100vh - var(--head-h));background:var(--bg);position:relative}.right-panel{position:sticky;top:var(--head-h);height:calc(100vh - var(--head-h));overflow-y:auto;background:var(--panel);color:var(--panel-text);border-left:1px solid var(--panel-line);padding:18px 16px 32px;display:flex;flex-direction:column;gap:22px;z-index:35}.panel-head{display:flex;justify-content:space-between;align-items:flex-start;gap:8px}.panel-kicker{margin:0;font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:var(--panel-muted)}.panel-title{margin:4px 0 0;font-family:var(--serif);font-size:1.45rem;font-weight:500}.panel-close{display:none;border:none;background:transparent;color:var(--panel-muted);font-size:16px;padding:4px 8px}.panel-block h3{margin:0 0 10px;font-size:12px;letter-spacing:.12em;text-transform:uppercase;color:var(--panel-muted);font-weight:500}.field{display:flex;flex-direction:column;gap:6px;margin-bottom:10px}.field span{font-size:12px;color:var(--panel-muted)}.field input,.field textarea{width:100%;border:1px solid var(--panel-line);background:var(--panel-2);border-radius:8px;padding:9px 11px;color:var(--panel-text)}.field input:focus,.field textarea:focus{outline:none;border-color:var(--gold)}.upload-form{display:flex;flex-direction:column;gap:2px}.file-drop{position:relative;display:grid;place-items:center;min-height:110px;margin-bottom:10px;border:1px dashed var(--panel-line);border-radius:10px;background:var(--panel-2);color:var(--panel-muted);font-size:13px;overflow:hidden;cursor:pointer}.file-drop input{position:absolute;inset:0;opacity:0;cursor:pointer}.upload-preview{width:100%;height:140px;object-fit:cover}.btn-gold{margin-top:6px;border:none;border-radius:8px;padding:10px 14px;background:var(--gold);color:#fff;font-weight:500}.btn-gold:disabled{opacity:.45;cursor:not-allowed}.btn-gold:not(:disabled):hover{filter:brightness(1.05)}.lesson-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}.lesson-card{width:100%;text-align:left;border:1px solid var(--panel-line);background:var(--panel-2);border-radius:10px;padding:10px 12px;color:var(--panel-text);display:flex;flex-direction:column;gap:4px}.lesson-card:hover,.lesson-card--active{border-color:var(--gold)}.lesson-top{display:flex;justify-content:space-between;gap:8px;align-items:flex-start}.lesson-top strong{font-size:13px;font-weight:500;line-height:1.3}.lesson-meta{font-size:11px;color:var(--panel-muted)}.lesson-blurb{font-size:12px;color:var(--panel-muted);line-height:1.35}.badge{flex:none;font-size:10px;letter-spacing:.06em;text-transform:uppercase;padding:3px 7px;border-radius:999px}.badge--free{background:#508c6433;color:#9ed0b0}.badge--prem{background:var(--gold-soft);color:#e0c48a}.lesson-embed{margin-top:10px;border-radius:10px;overflow:hidden;border:1px solid var(--panel-line);aspect-ratio:16 / 9;background:#000}.lesson-embed iframe{width:100%;height:100%;border:0}.explore-nav{display:flex;flex-direction:column;gap:6px}.explore-link{display:flex;flex-direction:column;align-items:flex-start;gap:2px;padding:10px 12px;border:none;border-radius:8px;background:transparent;color:var(--panel-muted);text-align:left}.explore-link strong{font-size:14px;font-weight:500;color:var(--panel-text)}.explore-link em{font-style:normal;font-size:12px}.explore-link:hover{background:#ffffff0a}.explore-link[aria-current=page]{background:#8a6a322e;box-shadow:inset 3px 0 0 var(--gold)}.scrim{display:none;position:fixed;inset:var(--head-h) 0 0 0;background:#14141459;z-index:30}.gallery-wrap{position:absolute;inset:0;background:#e8e2d6;touch-action:none;-webkit-user-select:none;user-select:none}.gallery-wrap canvas{display:block;width:100%!important;height:100%!important}.crosshair{position:absolute;left:50%;top:50%;width:14px;height:14px;margin:-7px 0 0 -7px;pointer-events:none;opacity:.7}.crosshair:before,.crosshair:after{content:"";position:absolute;background:var(--ink)}.crosshair:before{left:6px;top:0;width:2px;height:14px}.crosshair:after{left:0;top:6px;width:14px;height:2px}.gallery-hint{position:absolute;left:50%;bottom:18px;transform:translate(-50%);max-width:92%;padding:8px 14px;border-radius:999px;background:#f7f5f1eb;border:1px solid var(--line);color:var(--muted);font-size:12px;text-align:center;pointer-events:none;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.room{height:100%;overflow:auto;padding:28px 32px 48px}.room-head{max-width:52rem;margin-bottom:28px}.room-kicker{margin:0 0 8px;font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:var(--gold)}.room-head h1{margin:0;font-family:var(--serif);font-weight:500;font-size:clamp(2rem,4vw,2.8rem);letter-spacing:-.03em;line-height:1.05}.room-lead{margin:12px 0 0;max-width:40rem;color:var(--muted);font-size:1.02rem}.music-layout{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(240px,.7fr);gap:20px;align-items:stretch}.music-layout--3d{min-height:0}.music-canvas-wrap{position:relative;min-height:440px;height:min(58vh,560px);border-radius:18px;border:1px solid var(--line);overflow:hidden;background:#ebe3d4}.music-canvas-wrap canvas{display:block;width:100%!important;height:100%!important}.music-3d-hint{position:absolute;left:50%;bottom:12px;transform:translate(-50%);z-index:2;pointer-events:none}.music-3d-hint span{display:inline-block;padding:6px 12px;border-radius:999px;background:#fffcf5e0;border:1px solid rgba(0,0,0,.08);font-size:12px;color:var(--ink)}.music-stage{display:flex;flex-direction:column;gap:8px;min-width:0}.now-playing.now-playing--bar{margin:0;padding:8px 12px;border-radius:10px;background:#1c1b19;color:#f7f0e4;display:flex;align-items:baseline;gap:10px;font-size:13px;max-width:100%;border:1px solid rgba(232,200,119,.25)}.now-playing.now-playing--bar strong{font-size:10px;letter-spacing:.12em;text-transform:uppercase;color:#e8c877;flex:none}.now-playing--bar span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.now-playing--overlay{position:absolute;top:12px;right:12px;left:auto;z-index:2;margin:0;padding:8px 12px;border-radius:10px;background:#1c1b19c7;color:#f5efe4;text-align:left;display:flex;flex-direction:column;gap:2px;font-size:13px;max-width:min(48%,280px);pointer-events:none;box-shadow:0 6px 18px #00000038}.now-playing--overlay strong{font-size:10px;letter-spacing:.12em;text-transform:uppercase;color:#e8c877}.now-playing{margin:0;text-align:center;display:flex;flex-direction:column;gap:2px;font-size:13px;color:var(--ink)}.now-playing strong{font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--gold)}.music-side h2,.film-strip h2{margin:0 0 12px;font-family:var(--serif);font-weight:500;font-size:1.35rem}.record-list,.film-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}.record,.film{width:100%;display:flex;gap:12px;align-items:center;text-align:left;padding:10px 12px;border-radius:10px;border:1px solid var(--line);background:var(--paper);color:var(--ink)}.record span:last-child,.film{display:flex;flex-direction:column;gap:2px;align-items:flex-start}.record strong,.film strong{font-size:14px;font-weight:500}.record em,.film em{font-style:normal;font-size:12px;color:var(--muted)}.film span{color:var(--muted);font-weight:400}.record:hover,.film:hover,.record--active,.film--active{border-color:var(--gold);box-shadow:0 0 0 3px var(--gold-soft)}.record-vinyl{flex:none;width:36px;height:36px;border-radius:50%;background:radial-gradient(circle at center,#d4b56a 0 8px,#1a1a1a 9px 100%)}.room-head--cinema{display:flex;justify-content:space-between;gap:16px;align-items:flex-end;flex-wrap:wrap}.lights-btn{flex:none;padding:10px 16px;border-radius:999px;border:1px solid #3a342e;background:#1c1a18;color:#f0e6d4;font-size:13px;letter-spacing:.04em}.lights-btn:hover{border-color:var(--gold);color:#fff}.theater-view{position:relative;border-radius:16px;border:1px solid #2a2622;background:#0a0908;overflow:hidden;min-height:420px;height:min(58vh,540px)}.theater-view--fullscreen{position:fixed;inset:0;z-index:80;border-radius:0;border:0;height:100vh;min-height:100vh;background:#000}.theater-stage{position:absolute;inset:0;display:flex;flex-direction:column;background:radial-gradient(ellipse at 50% 18%,rgba(80,60,40,.35),transparent 55%),linear-gradient(180deg,#14110f,#0b0a09 55%,#050504)}.projector-beam{position:absolute;left:50%;top:0;width:55%;height:42%;transform:translate(-50%);background:linear-gradient(180deg,rgba(255,230,180,.14),transparent 70%);clip-path:polygon(38% 0,62% 0,100% 100%,0 100%);pointer-events:none;z-index:1}.haze{position:absolute;inset:0;background:radial-gradient(ellipse at 50% 30%,rgba(255,220,160,.06),transparent 60%);pointer-events:none;z-index:1}.screen-frame{position:relative;z-index:2;margin:4% auto 0;width:min(78%,920px);aspect-ratio:16 / 9;padding:10px;border-radius:6px;background:linear-gradient(160deg,#3a342e,#1a1612);box-shadow:0 0 60px #ffd28c2e,0 20px 50px #0000008c}.screen-surface{width:100%;height:100%;background:#000;border-radius:2px;overflow:hidden;position:relative}.film-player-host,.screen-surface iframe,.screen-surface>div{width:100%!important;height:100%!important;border:0}.auditorium{position:absolute;left:0;right:0;bottom:0;height:46%;z-index:3;display:flex;flex-direction:column;justify-content:flex-end;align-items:center;padding-bottom:2%;pointer-events:none;background:linear-gradient(180deg,transparent,rgba(0,0,0,.55) 40%,rgba(0,0,0,.85))}.th-row{display:flex;gap:7px;margin-top:-6px;transform-origin:center bottom}.th-seat{width:22px;height:18px;border-radius:5px 5px 3px 3px;background:linear-gradient(180deg,#4a3428,#2a1c16 70%,#1a100c);box-shadow:inset 0 1px #ffdcb41f,inset 0 -3px #1a100c,0 2px 4px #0006;position:relative}.th-seat:after{content:"";position:absolute;left:2px;right:2px;top:3px;height:4px;border-radius:2px;background:#ffdcb414}.th-seat--aisle{opacity:.35;width:14px;background:transparent;box-shadow:none}.th-seat--aisle:after{display:none}.aisle-lights{position:absolute;left:50%;bottom:8%;transform:translate(-50%);display:flex;flex-direction:column;gap:14px;z-index:4}.aisle-lights span{width:5px;height:5px;border-radius:50%;background:#e8c877;box-shadow:0 0 8px #e8c877;opacity:.55}.vignette{position:absolute;inset:0;background:radial-gradient(ellipse at center,transparent 40%,rgba(0,0,0,.55) 100%);pointer-events:none}.lights-exit{position:absolute;top:16px;right:16px;z-index:5;padding:8px 14px;border-radius:999px;border:1px solid rgba(255,255,255,.2);background:#0000008c;color:#f5efe4;font-size:12px}.film-strip{margin-top:18px}.film-strip-list{list-style:none;margin:0;padding:0 0 6px;display:flex;gap:10px;overflow-x:auto}.film-chip{flex:none;width:220px;text-align:left;padding:10px 12px;border-radius:10px;border:1px solid var(--line);background:var(--paper);color:var(--ink);display:flex;flex-direction:column;gap:2px}.film-chip strong{font-size:13px;font-weight:500}.film-chip em{font-style:normal;font-size:11px;color:var(--muted)}.film-chip span{color:var(--muted);font-weight:400}.film-chip:hover,.film-chip--active{border-color:var(--gold);box-shadow:0 0 0 3px var(--gold-soft)}.provider-note{margin:16px 0 0;font-size:12px;color:var(--muted)}.lesson-playing-note{margin:8px 0 0;font-size:11px;color:var(--panel-muted)}.yt-music-host{position:fixed;width:1px;height:1px;left:-9999px;top:0;overflow:hidden;opacity:0;pointer-events:none}.activity-dock{position:fixed;right:18px;bottom:18px;z-index:60;pointer-events:none}.dock-btn{pointer-events:auto;display:flex;align-items:center;gap:10px;max-width:min(320px,calc(100vw - 36px));padding:10px 14px 10px 12px;border-radius:999px;border:1px solid rgba(232,200,119,.35);background:#1c1b19eb;color:#f5efe4;box-shadow:0 10px 30px #00000059;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);text-align:left}.dock-btn:hover{border-color:var(--gold)}.dock-note{flex:none;width:34px;height:34px;border-radius:50%;display:grid;place-items:center;font-size:18px;background:#e8c87726;color:#e8c877}.dock-note--pulse{animation:note-pulse 1.1s ease-in-out infinite}.dock-note--muted{opacity:.75}.dock-note--struck{position:relative}.dock-note--struck:after{content:"";position:absolute;left:6px;right:6px;top:50%;height:2px;background:#e8c877;transform:rotate(-28deg);box-shadow:0 0 0 1px #1c1b1966}.dock-glyph{flex:none;width:34px;height:34px;border-radius:50%;display:grid;place-items:center;font-size:14px;background:#e8c87726;color:#e8c877}.dock-meta{display:flex;flex-direction:column;gap:1px;min-width:0}.dock-meta strong{font-size:12px;font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.dock-meta em{font-style:normal;font-size:11px;color:#f5efe4a6;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}@keyframes note-pulse{0%,to{transform:scale(1)}50%{transform:scale(1.08)}}.trade-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:16px}.trade-card{display:flex;flex-direction:column;gap:10px;padding:0;border:1px solid var(--line);border-radius:12px;background:var(--paper);overflow:hidden;text-align:left;color:var(--ink);transition:border-color .16s ease,transform .16s ease}.trade-card:hover{border-color:var(--gold);transform:translateY(-2px)}.trade-thumb{position:relative;aspect-ratio:4 / 3;background:#ebe6dc}.trade-thumb img{width:100%;height:100%;object-fit:cover}.trade-tag{position:absolute;top:8px;left:8px;font-size:10px;letter-spacing:.08em;text-transform:uppercase;background:var(--gold);color:#fff;padding:3px 7px;border-radius:999px}.trade-meta{display:flex;flex-direction:column;gap:2px;padding:0 12px 14px}.trade-meta strong{font-size:14px;font-weight:500;line-height:1.3}.trade-meta em{font-style:normal;font-size:12px;color:var(--muted)}.trade-price{margin-top:4px;font-size:13px;color:var(--gold);font-weight:500}.overlay{position:fixed;inset:0;z-index:60;display:grid;place-items:center;padding:24px}.overlay-scrim{position:absolute;inset:0;border:none;background:#14120e8c;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.overlay-card{position:relative;z-index:1;display:grid;grid-template-columns:minmax(0,1.1fr) minmax(220px,.9fr);width:min(860px,100%);max-height:min(86vh,640px);background:var(--paper);border-radius:16px;border:1px solid var(--line);overflow:hidden;box-shadow:0 24px 60px #00000040}.overlay-close{position:absolute;top:10px;right:10px;z-index:2;border:none;background:#f7f5f1e6;border-radius:999px;width:32px;height:32px}.overlay-media{background:#ebe6dc;min-height:280px}.overlay-media img{width:100%;height:100%;object-fit:contain;background:#ebe6dc}.overlay-body{padding:28px 24px;overflow:auto}.overlay-artist{margin:0;font-size:12px;letter-spacing:.1em;text-transform:uppercase;color:var(--gold)}.overlay-body h2{margin:8px 0 0;font-family:var(--serif);font-weight:500;font-size:1.6rem;letter-spacing:-.02em;line-height:1.15}.overlay-year{margin:6px 0 0;color:var(--muted);font-size:13px}.overlay-price{margin:14px 0 0;font-size:1.15rem;color:var(--ink);font-weight:500}.overlay-desc{margin:12px 0 0;color:var(--muted);font-size:.98rem}.overlay-link{display:inline-block;margin-top:18px;color:var(--gold);text-decoration:none;font-size:14px}.overlay-link:hover{text-decoration:underline}.overlay-note{margin:10px 0 0;font-size:11px;color:var(--muted)}@media(max-width:980px){.shell{grid-template-columns:minmax(0,1fr)}.right-panel{position:fixed;top:var(--head-h);right:0;width:min(360px,92vw);transform:translate(105%);transition:transform .2s ease;box-shadow:-12px 0 40px #00000040}.right-panel--open{transform:translate(0)}.panel-close,.scrim{display:block}.family-tag{display:none}.music-layout{grid-template-columns:1fr}.music-canvas-wrap{height:420px;min-height:380px}.overlay-card{grid-template-columns:1fr;max-height:90vh}}@media(max-width:640px){.masthead{padding:10px 14px}.brand-desc{display:none}.room{padding:20px 16px 36px}.gallery-hint{font-size:11px;bottom:12px}}.gallery-loading{display:grid;place-items:center;color:var(--muted);font-family:var(--serif);font-size:1.2rem}.your-art-toggle{width:100%;display:flex;align-items:center;justify-content:space-between;gap:8px;padding:10px 12px;border:1px solid var(--panel-line);border-radius:8px;background:var(--panel-2);color:var(--panel-text);font-size:13px;letter-spacing:.08em;text-transform:uppercase}.your-art-toggle:hover{border-color:var(--gold)}.chevron{transition:transform .16s ease;color:var(--panel-muted)}.chevron--open{transform:rotate(180deg)}.your-art-body{margin-top:12px}.form-kicker{margin:0 0 8px;font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--gold)}.price-note{display:block;margin:4px 0 8px;font-size:11px;line-height:1.35;color:var(--panel-muted)}.trade-meta .price-note,.overlay-disclaimer,.room-lead .price-note{color:var(--muted)}.overlay-disclaimer{margin:6px 0 0}.door-tip{position:absolute;left:50%;top:18%;transform:translate(-50%);padding:8px 14px;border-radius:8px;background:#1c1b19e6;color:#f0ebe3;font-size:13px;pointer-events:none;border:1px solid rgba(138,106,50,.45)}@media(max-width:1100px){.shell--both{grid-template-columns:minmax(0,1fr) var(--panel-w)}.left-nav{position:fixed;top:var(--head-h);left:0;width:min(260px,88vw);transform:translate(-105%);transition:transform .2s ease;box-shadow:12px 0 40px #00000040}.left-nav--open{transform:translate(0)}}@media(max-width:980px){.shell--both{grid-template-columns:minmax(0,1fr)}}
