*{box-sizing:border-box}html{scroll-behavior:smooth;background:#15121d;color:#f4f0eb;font-family:Arial,sans-serif}body{margin:0}button,select,input{font:inherit}a{color:inherit;text-decoration:none}button{cursor:pointer}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible{outline:2px solid #efb08b;outline-offset:4px}[hidden]{display:none!important}header{height:78px;display:flex;align-items:center;justify-content:space-between;padding:0 5%;background:#eeebf5;color:#241e34;border-bottom:2px solid #dca585}.brand{display:flex;gap:12px;align-items:center;font-size:28px;font-weight:800;letter-spacing:-1px}.brand small{display:block;font-size:8px;letter-spacing:3px;margin-top:3px}nav{display:flex;gap:27px;font-size:12px}nav a:hover{color:#a5512e}.phone{font-size:12px}.hero{height:440px;position:relative;overflow:hidden;background:#0c0c10}.hero>img{position:absolute;width:100%;height:100%;object-fit:cover;object-position:74% 56%}.hero:after{content:'';position:absolute;inset:0;background:linear-gradient(90deg,#0b0c10ed,#0b0c1088 45%,transparent 80%);pointer-events:none}.warmth{position:absolute;inset:0;background:radial-gradient(ellipse at 82% 55%,#ef9a6877,transparent 55%);mix-blend-mode:color;z-index:1}.hero-copy{position:relative;z-index:2;padding:56px 6%;max-width:850px}.eyebrow{font-size:10px;letter-spacing:2.6px;color:#e7b08e;font-weight:600}h1{font-size:clamp(38px,4.5vw,66px);line-height:1.06;letter-spacing:-2px;margin:24px 0 18px;font-weight:500}em{font-family:Georgia,serif;font-weight:400;color:#d6c3ed}.hero-copy>p:not(.eyebrow){font-size:14px;color:#c3bdca}.world{display:flex;gap:12px;margin-top:27px}.world button{padding:15px 21px;border:1px solid #ffffff4a;background:#15131ac4;color:#f2e9e3;border-radius:3px;min-width:170px;text-align:left;font-size:13px}.world button[aria-pressed=true]{border-color:#e8a680;background:#e8a6801c}.scroll{position:absolute;bottom:24px;right:5%;z-index:3;font-size:9px;letter-spacing:2px;color:#efbd9b}#studio{padding:54px 5% 28px;scroll-margin-top:20px;max-width:1700px;margin:auto}.section-top{display:flex;align-items:end;justify-content:space-between;margin-bottom:28px}h2{font-size:clamp(28px,3vw,43px);font-weight:400;letter-spacing:-1px;margin:15px 0 0}.section-top label{display:grid;gap:8px;font-size:10px;color:#bbb0c7}select{background:#24202c;border:1px solid #66515c;color:#eee8f5;border-radius:4px;padding:10px;font-size:12px}.studio-grid{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:28px}.viewer{position:relative;min-width:0;height:570px;border:1px solid #b78e7540;border-radius:8px;background:radial-gradient(ellipse at 50% 65%,#3d3446,#1c1924 65%);overflow:hidden}.viewer-top{position:absolute;top:24px;left:25px;right:25px;display:flex;justify-content:space-between;z-index:2;font-size:9px;letter-spacing:1.3px;color:#b4a5c0;pointer-events:none}#badge{color:#edb38f}#canvas{position:absolute;inset:0;touch-action:pan-y}#canvas canvas{display:block;width:100%;height:100%}#fallback{width:100%;height:100%;object-fit:contain}.viewer-bottom{position:absolute;bottom:22px;left:25px;right:25px;display:flex;flex-direction:column;align-items:center;gap:18px;font-size:10px;color:#b7a9c4;pointer-events:none}.rotate{display:flex;gap:12px;pointer-events:auto}.rotate button,#lid{color:#f1c2a5;background:#25202d;border:1px solid #b68a7066;border-radius:25px;padding:11px 18px;font-size:11px}.rotate button:hover,#lid:hover{background:#503a35}#viewer-status{position:absolute;top:50px;left:25px;font-size:11px;color:#ecc2a7}aside>.eyebrow{margin:0 0 15px}.type{display:flex;width:100%;padding:17px 18px;text-align:left;align-items:center;gap:15px;background:transparent;border:1px solid #ffffff28;border-radius:5px;color:#c8bdd2;margin-bottom:10px}.type .icon{font-size:28px;color:#aa96b9;width:35px}.type strong{display:block;font-size:16px;font-weight:400}.type small{display:block;font-size:10px;color:#b4a5c2;margin-top:6px}.type[aria-pressed=true]{border-color:#eab08c;background:#efb08b0e;color:#f6e4d7}.measurement{margin:26px 0 18px;font-size:12px}.measurement output{float:right;color:#f1b68f}input[type=range]{width:100%;margin:19px 0 8px;accent-color:#eab08c}.range-labels{display:flex;justify-content:space-between;font-size:10px;color:#b4a4bf}.unknown{display:flex;align-items:center;gap:8px;font-size:11px;margin-top:18px;color:#bcaec8}.unknown input{accent-color:#edb18c}#lid{width:100%}.selection{margin-top:24px;border-top:1px solid #ffffff20;padding-top:20px}.selection small{font-size:9px;letter-spacing:2px;color:#e5ae8a}.selection p{font-size:13px;line-height:1.6}.selection span,.note{font-size:10px;line-height:1.7;color:#b3a4bf}.end{padding:70px 6% 85px;border-top:1px solid #ffffff10}.end a{display:inline-block;margin-top:30px;color:#eab08c;font-size:12px}footer{display:flex;justify-content:space-between;padding:25px 5%;border-top:1px solid #ffffff16;font-size:9px;letter-spacing:1px;color:#ac9db7}#page{padding:80px 6%;min-height:75vh}@media(max-width:850px){header{height:auto;min-height:76px;flex-wrap:wrap;padding:14px 5%;gap:16px}.phone{display:none}nav{gap:18px;font-size:11px}.brand{font-size:23px}.studio-grid{grid-template-columns:minmax(0,1fr) 250px;gap:18px}.viewer{height:530px}.section-top h2{font-size:30px}}@media(max-width:600px){nav{width:100%;justify-content:space-between;gap:10px;font-size:10px}.hero{height:390px}.hero>img{object-position:68% center}.hero-copy{padding:35px 6%}.hero h1{font-size:41px}.world button{min-width:0;flex:1;padding:13px}.world{max-width:330px}.scroll{bottom:17px;font-size:8px}#studio{padding:33px 5%}.section-top{align-items:start;gap:15px}.section-top h2{font-size:27px;max-width:220px}.section-top .eyebrow{font-size:8px;letter-spacing:1.6px}select{max-width:120px;padding:9px 5px}.studio-grid{display:flex;flex-direction:column}.viewer{height:410px}.viewer-top{left:16px;right:16px;font-size:7px}.viewer-bottom{font-size:9px;bottom:16px}#types{display:flex;gap:8px}.type{padding:13px 9px;display:block}.type .icon{display:block;margin-bottom:7px;font-size:22px}.type strong{font-size:12px}.type small{font-size:9px}.measurement{margin-top:15px}.end{padding:45px 6%}footer{font-size:8px;gap:10px}footer span:nth-child(2){display:none}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}

#canvas>svg{display:block;width:100%;height:100%;background:transparent!important}
/* Restored photographic piano studio and original crescent/waves identity. */
header{position:sticky;top:0;z-index:20;isolation:isolate;background:#f8f7fc;overflow:hidden}.header-flow{position:absolute;inset:0;z-index:-1;pointer-events:none;background:linear-gradient(110deg,#faf9fd 5%,#e8e2f4 55%,#faf9fd 95%)}.header-flow>svg{width:100%;height:100%;display:block}#sound-pattern path{fill:none;stroke:#8066ad;stroke-width:1.5;opacity:.35}#sound-pattern path:nth-child(2){stroke:#8b7cae;stroke-width:2;opacity:.4}#sound-pattern path:nth-child(3){stroke:#a4adbf}.wave-track{animation:music-flow 28s linear infinite}@keyframes music-flow{to{transform:translateX(800px)}}.brand{gap:11px;font-size:30px;letter-spacing:-1.4px}.brand-mark{width:59px;height:39px;flex-shrink:0}.brand small{letter-spacing:3.3px}.viewer{height:620px;border:0;border-radius:0;background:#18131e;overflow:hidden}.studio-grid{gap:36px;grid-template-columns:minmax(0,1fr) 290px}.viewer-top{top:18px;left:20px;right:20px;z-index:2;font-size:9px}.viewer-top>span:last-child{color:#d9b192}#piano-portrait{position:absolute;inset:32px 0 78px;margin:0;overflow:hidden}#piano-image{width:100%;height:100%;object-fit:contain;display:block;transform:scale(1.05);transition:transform .55s ease;mask-image:linear-gradient(0deg,transparent,#000 8%,#000 90%,transparent)}#piano-portrait.detail #piano-image{transform:scale(1.55);transform-origin:50% 55%}.viewer-bottom{bottom:12px;left:20px;right:20px;flex-direction:row;justify-content:space-between;align-items:center;gap:10px;pointer-events:auto}#portrait-caption{font-size:10px;color:#b5a5c1}#views{display:flex;gap:6px}#views button,#detail{font-size:10px;padding:11px 15px;border:1px solid #d6c0e63b;border-radius:24px;background:#221b2b;color:#d6c4e2}#views button[aria-pressed=true]{background:#d6c0e8;color:#292030;border-color:#d6c0e8}#detail{color:#edb392;border-color:#edb39266;background:transparent}#detail:hover{background:#edb39212}.type{padding:10px 12px;gap:12px}.type>img{width:68px;height:68px;object-fit:cover;border-radius:3px}.type strong{font-size:16px}.type small{font-size:10px;line-height:1.4}#viewer-status{z-index:3;top:39px;left:20px;margin:0}aside{padding-top:15px}.selection{margin-top:25px}#studio{background:#18131e;max-width:none}.note{max-width:1000px}.section-top{margin-bottom:22px}
@media(min-width:1600px){.viewer{height:700px}.studio-grid{grid-template-columns:minmax(0,1fr) 330px}#piano-image{transform:scale(1.1)}}
@media(max-width:1050px){.viewer-bottom{flex-wrap:wrap;justify-content:center}#portrait-caption{width:100%;text-align:center}.studio-grid{gap:18px;grid-template-columns:minmax(0,1fr) 250px}.viewer{height:540px}.type>img{width:54px;height:60px}.brand{font-size:26px}.brand-mark{width:49px}}
@media(max-width:600px){header{padding-top:12px;padding-bottom:12px}.brand{font-size:27px}.brand-mark{width:52px}.header-flow>svg{width:220%;max-width:none}.viewer{height:440px;margin-inline:-5.55%}.viewer-top{font-size:8px}.studio-grid{display:flex;gap:20px}#piano-portrait{inset:35px 0 82px}#piano-image{transform:scale(1.06)}#piano-portrait.detail #piano-image{transform:scale(1.6)}.viewer-bottom{bottom:10px;gap:9px}#views button,#detail{padding:10px 13px}.type{display:flex;flex-direction:column;align-items:flex-start;padding:8px;gap:8px}.type>img{width:100%;height:70px;object-fit:cover}.type strong{font-size:13px}.type small{font-size:9px}.section-top{margin-bottom:12px}aside{padding-top:0}}
@media(prefers-reduced-motion:reduce){.wave-track{animation:none}#piano-image{transition:none}}
/* Restore a quiet, photographic presentation. */
.viewer-top,.section-top .eyebrow,#portrait-caption,aside>.eyebrow{display:none!important}
#studio,.viewer{background:#15121d}.viewer{border:0;box-shadow:none}#piano-portrait{inset:0 0 70px}#piano-image{mask-image:none;transform:none;object-fit:contain}#piano-portrait.detail #piano-image{transform:none}.viewer-bottom{justify-content:center}.world button{background:#eee9f5;color:#251e32;border:1px solid #eee9f5;border-radius:6px;font-weight:600;min-width:180px;text-align:center;box-shadow:none}.world button[aria-pressed=true]{background:#e8af8c;color:#211822;border-color:#e8af8c}.world button:hover{background:#f1c4a7;color:#211822}.world{gap:14px}.type{border-color:transparent;border-bottom-color:#ffffff20;border-radius:0}.type[aria-pressed=true]{background:transparent;border-color:transparent;border-bottom-color:#e8af8c}.type>img{display:none}.type{padding:20px 8px}.type strong{font-size:19px}.selection small,.selection>span{display:none}.viewer-bottom button{min-height:42px}.viewer{touch-action:pan-y}#piano-portrait{touch-action:pan-y;cursor:grab}#piano-portrait:active{cursor:grabbing}@media(max-width:600px){.world button{min-width:0}.type{padding:15px 8px}.type strong{font-size:15px}}
#views{align-items:center;gap:22px}.turn-hint{font-size:12px;color:#c3b6d0}#views button{font-size:20px;min-width:48px;background:transparent;border-color:#bda7cf55}#views button:hover{color:#edb392;border-color:#edb392}
.viewer:not(.cutout) #piano-image{mask-image:radial-gradient(ellipse at center,#000 40%,transparent 72%)}
/* White music on midnight: inverse of the main Moonwalk header. */
header{background:#15121d;color:#fff;border-bottom:1px solid #ffffff22}
.header-flow{background:linear-gradient(110deg,#15121d,#211c2b 55%,#15121d)}
#sound-pattern path,#sound-pattern path:nth-child(2),#sound-pattern path:nth-child(3){stroke:#fff;opacity:.17}
#sound-pattern path:nth-child(2){opacity:.23}
.moving-note{fill:none;stroke:#fff;stroke-width:1.6;opacity:.55;filter:drop-shadow(0 0 3px #ffffff40)}
header .brand,header nav,header .phone{position:relative;z-index:1;text-shadow:0 1px 7px #15121d,0 0 14px #15121d}
header nav a:hover{color:#edb392}
@media(prefers-reduced-motion:reduce){.moving-note{display:none}.wave-track{animation:none}}

/* Keep anchor destinations below the existing sticky header. */
html{scroll-padding-top:var(--header-height,78px)}

/* Local violet light falls away toward the dark edges of the studio. */
#studio{background:#15131b}.viewer{background:radial-gradient(ellipse at 50% 67%,#594069 0%,#38283f 30%,#211b2b 53%,#15131b 76%)}
.viewer:not(.cutout) #piano-image{mask-image:radial-gradient(ellipse at center,#000 38%,#000c 52%,transparent 73%)}
.type[aria-pressed=true]{border-bottom-color:#c5a1e5;background:#b581db0b}.measurement output{color:#d6b9ed}input[type=range]{accent-color:#c5a1e5}
header{height:100px}header .brand svg{flex-shrink:0}.private{font-size:9px;color:#a69ab3;letter-spacing:2px}
@media(max-width:850px){header{height:85px;flex-wrap:nowrap}.private{display:none}}@media(max-width:600px){header{height:79px}header nav{width:auto;gap:15px}.brand{font-size:23px}.brand svg{width:42px}}
/* One continuous abyss: light belongs to the page, never a viewer rectangle. */
html,body,#studio{background-color:#15131b}
#studio{background-image:radial-gradient(ellipse at 37% 54%,#36263f 0%,#241c2d 27%,#15131b 65%);background-repeat:no-repeat}
.viewer,.viewer.cutout{background:transparent;border:0;box-shadow:none;overflow:visible}
#piano-portrait{overflow:visible}
.viewer:not(.cutout) #piano-image{mask-image:radial-gradient(ellipse at 50% 48%,#000 30%,#000e 44%,#0008 58%,transparent 72%)}
@media(max-width:600px){#studio{background-image:radial-gradient(ellipse at 50% 35%,#36263f 0%,#241c2d 26%,#15131b 62%)}}
/* Actual alpha cutouts: never fade the instrument or paint an image panel. */
#piano-image,.viewer:not(.cutout) #piano-image{mask-image:none!important;-webkit-mask-image:none!important}
body{background:#15131b radial-gradient(ellipse 75% 600px at 38% 500px,#392940 0%,#211a29 44%,#15131b 85%) no-repeat}
#home,#studio,.viewer,.viewer.cutout,.end,footer{background:transparent!important}
/* A continuous violet carpet plane, with soft contact shadow under the piano. */
.viewer{isolation:isolate}
.viewer::before{content:'';position:absolute;z-index:-1;pointer-events:none;left:-12%;right:-12%;top:57%;bottom:-8%;background:radial-gradient(ellipse at 50% 45%,#4b33564d,transparent 69%),repeating-linear-gradient(7deg,#b89ac408 0 1px,transparent 1px 3px),repeating-linear-gradient(96deg,#09060e16 0 1px,transparent 1px 4px);mask-image:radial-gradient(ellipse at 50% 40%,#000 10%,transparent 70%);transform:perspective(600px) rotateX(38deg);transform-origin:center}
.viewer::after{content:'';position:absolute;z-index:-1;pointer-events:none;left:16%;right:16%;bottom:12%;height:15%;border-radius:50%;background:radial-gradient(ellipse,#030207c9 0%,#08040e91 31%,#0d07134d 52%,transparent 73%);filter:blur(13px);transform:scaleY(.65)}
/* Broader floor contact beneath the grand piano silhouettes. */
.viewer:not(.cutout)::after{left:9%;right:9%;bottom:10%;height:29%;background:radial-gradient(ellipse,#030207d9 0%,#08040eaa 30%,#0d071366 53%,transparent 74%);filter:blur(16px);transform:scaleY(.8)}

/* Match the floor shadow to each instrument footprint; baby grand stays unchanged. */
.viewer[data-piano="Grand"]::after{left:8%;right:7%;bottom:9%;height:42%;transform:scaleY(.85);filter:blur(16px)}
.viewer[data-piano="Upright"]::after{left:13%;right:13%;bottom:10%;height:19%;transform:scaleY(.65);filter:blur(12px);background:radial-gradient(ellipse,#030207d9 0%,#08040eaa 32%,#0d071366 54%,transparent 74%)}

#piano-portrait,#piano-portrait:active{cursor:default}
/* Light header with dark, readable musical details. */
header{background:#f8f7fc;color:#241e34;border-bottom-color:#241e3422}
.header-flow{background:linear-gradient(110deg,#faf9fd 5%,#e8e2f4 55%,#faf9fd 95%)}
#sound-pattern path,#sound-pattern path:nth-child(2),#sound-pattern path:nth-child(3){stroke:#8066ad;opacity:.35}
.moving-note{stroke:#65517f;opacity:.65;filter:none}
header .brand,header nav,header .private{color:#241e34;text-shadow:none}
header nav a.active{color:#241e34}header nav a:hover{color:#8066ad}

/* Announcement and signup offer */
.announcement{position:relative;display:flex;align-items:center;justify-content:center;gap:32px;padding:18px 64px;background:#262037;color:#eee9f5;font-size:15px;line-height:1.5}.announcement[hidden]{display:none}.announcement a{color:#d5c5ec;text-underline-offset:5px;white-space:nowrap}.announcement button,.offer-close{position:absolute;right:18px;top:10px;border:0;background:transparent;color:inherit;font-size:28px;cursor:pointer;padding:3px 10px}
#offer-dialog{box-sizing:border-box;position:fixed;inset:0;width:min(540px,calc(100% - 32px));max-height:90dvh;overflow:auto;margin:auto;padding:48px 40px 28px;border:1px solid #675475;border-radius:12px;background:radial-gradient(ellipse at bottom,#392844,#18131f 80%);color:#f7f1ec;box-shadow:0 30px 100px #0009}#offer-dialog::backdrop{background:#09060cbb;backdrop-filter:blur(5px)}#offer-dialog h2{font-size:34px;line-height:1.2;margin:15px 0 20px}#offer-dialog h2 em{color:#d8bcec}#offer-dialog p{line-height:1.6}#offer-form{display:grid;gap:12px;margin:24px 0 16px}#offer-email{box-sizing:border-box;width:100%;background:#fff;color:#211a2c;border:1px solid #bca3d0;border-radius:5px;padding:14px;font:inherit}.offer-consent{display:flex;gap:10px;align-items:flex-start;font-size:13px;line-height:1.5;color:#d1c5db}.offer-consent input{margin-top:3px;flex-shrink:0}.offer-submit{background:#e6d5f0;color:#241b2e;border:0;padding:15px;border-radius:5px;font:inherit;cursor:pointer}.offer-submit:disabled{opacity:.6;cursor:wait}#offer-status:empty{display:none}#offer-status{margin:0;color:#eccfee;font-size:14px}#offer-dialog small{display:block;font-size:12px;line-height:1.6;color:#bdafc7}.offer-skip{display:block;margin:18px auto 0;background:none;border:0;color:#cabcd3;text-decoration:underline;cursor:pointer;padding:8px}.offer-code{display:block;padding:18px;background:#ffffff0c;border:1px dashed #a78bb9;font-size:23px;text-align:center;letter-spacing:2px;overflow-wrap:anywhere}.offer-reopen{background:none;border:0;color:inherit;font:inherit;text-decoration:underline;cursor:pointer}@media(max-width:600px){.announcement{padding:12px 42px 12px 18px;gap:7px;flex-direction:column;align-items:flex-start;font-size:12px}.announcement button{right:5px;top:8px}#offer-dialog{padding:42px 24px 24px}#offer-dialog h2{font-size:29px}}

/* Brand accent: quiet champagne gold, used sparingly. */
:root{--accent-gold:#c9ad76}
#offer-dialog .offer-gold{color:var(--accent-gold)}

/* Champagne accent on one animated header wave. */
#sound-pattern path:nth-child(2){stroke:var(--accent-gold);opacity:.65}

/* Compact, bright trust banner. */
#announcement{padding:7px 48px;gap:20px;color:#fff;font-size:13px;line-height:1.45}
#announcement a{color:#fff;font-weight:600}
#announcement button{top:50%;transform:translateY(-50%);right:10px;font-size:24px;padding:0 8px;line-height:1.2}
@media(max-width:600px){#announcement{padding:7px 38px 7px 16px;gap:2px;font-size:12px}#announcement button{right:4px}}

header .header-phone-cta{margin-left:auto;display:inline-flex;align-items:center;justify-content:center;gap:9px;flex-shrink:0;padding:12px 18px;min-height:44px;box-sizing:border-box;border:1px solid #d9bf8b;border-radius:4px;background:#d9bf8b;color:#201928;font-size:14px;font-weight:600;text-decoration:none;white-space:nowrap;position:relative;z-index:2}
header .header-phone-cta:hover{background:#e7cfa3}
header .header-phone-cta:focus-visible{outline:2px solid #201928;outline-offset:3px}
@media(max-width:600px){header .header-phone-cta{font-size:12px;padding:9px 10px;gap:5px}header .header-phone-cta svg{width:16px;height:16px}}
header{gap:24px}
@media(max-width:850px){header nav{display:none}}
@media(max-width:600px){header{gap:8px}header .brand{font-size:20px;gap:6px}header .brand svg{width:32px}header .header-phone-cta{font-size:11px;padding:9px 8px}header .header-phone-cta svg{display:none}}

.piano-brand-rotation{margin-top:12px;min-height:28px;color:var(--accent-gold,#c9ad76);font-family:Georgia,serif;font-size:20px;line-height:28px;letter-spacing:.5px}
#rotating-piano-brand{display:inline-block;white-space:nowrap}
@media(max-width:600px){.piano-brand-rotation{font-size:18px;margin-top:9px}}

#studio .section-top h2{font-size:clamp(22px,2vw,28px);line-height:1.2;letter-spacing:-.5px}
.piano-brand-rotation{font-size:clamp(30px,3vw,43px);line-height:1.25;min-height:54px;margin-top:8px;letter-spacing:-.5px}
@media(max-width:600px){.piano-brand-rotation{font-size:30px;min-height:40px;margin-top:6px}}

.piano-brand-rotation{font-size:clamp(40px,4.2vw,60px);min-height:76px}
@media(max-width:600px){.piano-brand-rotation{font-size:clamp(32px,8.4vw,46px);min-height:58px}}

/* Stationary champagne laurels frame the entire moving venue belt. */
.venue-belt{padding:22px 0 20px;background:#17131f;border-block:1px solid #c9ad7629;overflow:hidden}
.venue-belt-heading{margin:0 0 4px;text-align:center;color:#c9ad76;font-size:11px;letter-spacing:2px;text-transform:uppercase}
.venue-belt-frame{position:relative;isolation:isolate;min-height:150px;display:flex;align-items:center}
.venue-laurel{position:absolute;top:0;height:150px;width:84px;color:#c9ad76;z-index:2;pointer-events:none}
.venue-laurel-left{left:2%}.venue-laurel-right{right:2%;transform:scaleX(-1)}
.venue-belt-window{width:100%;overflow:hidden;padding:20px 0;mask-image:linear-gradient(90deg,transparent 6%,#000 15%,#000 85%,transparent 94%)}
.venue-belt-track{display:flex;width:max-content;will-change:transform}
.venue-belt-group{display:flex;align-items:center;justify-content:space-around;flex-shrink:0;min-width:100vw}
.venue-name{display:flex;align-items:center;justify-content:center;width:clamp(260px,25vw,400px);padding:10px 25px;color:#efe8f2;font-family:Georgia,serif;font-size:clamp(23px,2.4vw,36px);text-align:center;line-height:1.2;min-height:80px}
.venue-belt-window:focus-visible{outline:1px solid #c9ad76;outline-offset:-4px}

@media(max-width:600px){.venue-belt{padding:17px 0 12px}.venue-belt-frame{min-height:120px}.venue-laurel{height:120px;width:65px}.venue-laurel-left{left:0}.venue-laurel-right{right:0}.venue-belt-window{mask-image:linear-gradient(90deg,transparent 10%,#000 23%,#000 77%,transparent 90%)}.venue-name{width:280px;font-size:27px}.venue-belt-heading{font-size:10px}}


/* Original job photography on the separate service directory. */
#moving-services{max-width:1700px;margin:auto;padding:72px 5% 90px}
#moving-services>.eyebrow{color:#c9ad76}
#services-title{font-size:clamp(32px,4vw,58px);line-height:1.12;max-width:1000px;margin:24px 0 52px}
.move-services-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:64px 38px}
.move-service{display:block;min-width:0;border-bottom:1px solid #c9ad7633;padding-bottom:28px}
.move-photo{aspect-ratio:4/3;overflow:hidden;border-radius:12px;background:#241e2e}
.move-photo img{display:block;width:100%;height:100%;object-fit:cover;transition:transform 1.1s cubic-bezier(.22,1,.36,1)}
.move-service:hover .move-photo img{transform:scale(1.035)}
.move-tag{font-size:11px;letter-spacing:1.5px;color:#c9ad76;margin:25px 0 12px;line-height:1.6}
.move-service h2{font-size:clamp(25px,2.6vw,36px);margin:0;letter-spacing:-.7px}
.move-description{font-size:16px;line-height:1.65;color:#bfb4ca;margin:15px 0 22px;max-width:620px}
.move-link{display:flex;justify-content:space-between;align-items:center;color:#ddc697;font-size:14px;min-height:30px}.move-link>span{font-size:24px}
.customer-reviews{min-height:180px}.customer-reviews h2{margin:0}
@media(max-width:650px){#moving-services{padding:40px 5% 55px}#services-title{margin-bottom:32px}.move-services-grid{grid-template-columns:1fr;gap:38px}.move-tag{margin-top:20px}.move-description{font-size:15px}}
@media(prefers-reduced-motion:reduce){.move-photo img{transition:none}.move-service:hover .move-photo img{transform:none}}

#customer-reviews-list{margin-top:36px}
.customer-review{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(28px,5vw,76px);align-items:center;max-width:1500px;margin:auto}
.customer-review>img{display:block;width:100%;height:auto;border-radius:10px}
.customer-review blockquote{margin:0;font-family:Georgia,serif;font-size:clamp(18px,1.65vw,24px);line-height:1.65;color:#eee6f2}
.customer-review blockquote p{margin:0 0 20px}
.customer-review-author{color:#d9bf8b;font-size:17px;margin:28px 0 0}
.customer-review-author span{display:block;color:#bfb4ca;font-size:13px;margin-top:7px}
@media(max-width:750px){.customer-review{grid-template-columns:1fr;gap:26px}.customer-review blockquote{font-size:19px}}
.customer-review+.customer-review{margin-top:64px;padding-top:64px;border-top:1px solid #c9ad7629}
.customer-review-photos{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;min-width:0}
.customer-review-photos img{display:block;width:100%;height:auto;border-radius:10px}
@media(max-width:750px){.customer-review+.customer-review{margin-top:40px;padding-top:40px}.customer-review-photos{gap:8px}}
.review-invitation{margin:64px auto 0;padding:40px 24px;border-top:1px solid #c9ad7644;text-align:center;max-width:1500px}
.review-invitation h3{font-family:Georgia,serif;font-weight:400;font-size:32px;margin:0 0 14px}.review-invitation p{color:#cfc3d9;font-size:16px;line-height:1.6}
.end .review-invitation a{display:inline-flex;align-items:center;gap:28px;margin-top:12px;padding:16px 24px;border-radius:5px;background:#d9bf8b;color:#21192b;font-size:15px;font-weight:600}
.review-invitation small{display:block;margin-top:14px;color:#bfb4ca;font-size:12px}
.studio-mobile-menu{display:none;color:#241e34}.studio-mobile-menu summary{list-style:none;font-size:23px;cursor:pointer;padding:8px}.studio-mobile-menu>div{position:absolute;top:100%;left:0;right:0;background:#eeebf5;padding:18px 5%;box-shadow:0 12px 24px #0003;display:grid;gap:5px;z-index:60}.studio-mobile-menu a{padding:10px;font-size:15px}.studio-mobile-menu summary::-webkit-details-marker{display:none}
@media(max-width:850px){.studio-mobile-menu{display:block}header .brand{margin-right:auto}}
@media(max-width:380px){header .brand{font-size:17px}header .brand svg{width:25px}header .header-phone-cta{font-size:10px;padding:8px 6px}header .studio-mobile-menu summary{padding:4px}}
@media(min-width:851px){header nav{gap:18px}}
header{overflow:visible}

/* Compact header and clear brand / venue contrast. */
header{height:76px;padding-top:0;padding-bottom:0}
header .brand{font-size:27px}
header .brand svg{width:49px;height:42px}
header .header-phone-cta{padding:9px 16px}
#studio .section-top h2{color:var(--accent-gold)}
.piano-brand-rotation{color:#fff}
#rotating-piano-brand{font-family:Georgia,"Times New Roman",serif;font-weight:400}
#rotating-piano-brand[data-brand="Yamaha"],#rotating-piano-brand[data-brand="Kawai"]{font-family:Arial,Helvetica,sans-serif;font-weight:700;text-transform:uppercase;letter-spacing:2px;font-size:.85em}
#rotating-piano-brand[data-brand="Fazioli"]{font-family:"Times New Roman",serif;text-transform:uppercase;letter-spacing:5px}
#rotating-piano-brand[data-brand="Bösendorfer"],#rotating-piano-brand[data-brand="Blüthner"]{font-family:"Palatino Linotype",Palatino,Georgia,serif;font-style:italic}
#rotating-piano-brand[data-brand="C. Bechstein"],#rotating-piano-brand[data-brand="Mason & Hamlin"]{font-variant:small-caps;letter-spacing:1px}
.venue-belt{background:linear-gradient(110deg,#faf9fd 5%,#e8e2f4 55%,#faf9fd 95%);border-color:#241e3422}
.venue-belt .venue-name{color:#241e34}
.venue-belt-heading{color:#80652f}
@media(max-width:850px){header{height:68px}}
@media(max-width:600px){header{height:62px;padding-top:0;padding-bottom:0}header .brand{font-size:20px}header .brand svg{width:32px;height:34px}header .header-phone-cta{padding:8px}}
@media(max-width:380px){header .brand{font-size:17px}header .brand svg{width:25px}}

/* Floating golden particles, without a spotlight or floor pool. */
#studio{position:relative;padding-top:54px}
#piano-portrait{isolation:isolate}
#piano-portrait::before,#piano-portrait::after{content:none;display:none}
#piano-image{position:relative;z-index:1;opacity:1;filter:none;transition:opacity .48s ease}
.viewer.portrait-changing #piano-image{opacity:0;transition-duration:.2s}
.piano-golden-dust{position:absolute;inset:-4% -3% 0;z-index:0;pointer-events:none;background:url('/studio-assets/assets/piano-golden-dust.svg') center / 100% 100% no-repeat;opacity:0;transition:opacity .2s ease-out}
.viewer.spotlight-on .piano-golden-dust{opacity:1;transition-duration:.48s}
@media(max-width:600px){#studio{padding-top:38px}}
@media(prefers-reduced-motion:reduce){.piano-golden-dust,.viewer.spotlight-on .piano-golden-dust,#piano-image,.viewer.portrait-changing #piano-image{transition:none}}

/* Depth from fine distant dust, low floating specks, and sparse near particles.
   Fade every edge to prevent the particle field from reading as a rectangle. */
.piano-golden-dust{inset:0;mask-image:linear-gradient(to bottom,transparent 0%,#000 24%,#000 74%,transparent 100%);-webkit-mask-image:linear-gradient(to bottom,transparent 0%,#000 24%,#000 74%,transparent 100%)}
.piano-golden-dust::before{content:"";position:absolute;inset:0;pointer-events:none}
.piano-golden-dust{background:none}
.piano-golden-dust::before{background:url('/studio-assets/assets/piano-golden-dust.svg') center / 100% 100% no-repeat;mask-image:linear-gradient(to right,transparent,#000 14%,#000 86%,transparent);-webkit-mask-image:linear-gradient(to right,transparent,#000 14%,#000 86%,transparent)}
.piano-dust-floor{z-index:2}
.piano-dust-floor::before{background-image:url('/studio-assets/assets/piano-dust-floor.svg');opacity:.8}
.piano-dust-front{z-index:3}
.piano-dust-front::before{background-image:url('/studio-assets/assets/piano-dust-front.svg');opacity:.7;filter:blur(.25px)}

/* A small seasonal hat perched on the original crescent. */
.brand > svg{overflow:visible}

/* A continuous, mixed-format film strip between the studio and venues. */
.move-belt{position:relative;background:#fff;padding:16px 0;overflow:hidden;border-top:1px solid #bca37330}
.move-belt-window{overflow:hidden;contain:layout paint}
.move-belt-track{display:flex;width:max-content;will-change:transform}
.move-belt-group{display:flex;flex-shrink:0;gap:12px;padding-right:12px}
.move-film{display:block;position:relative;flex:none;width:416px;height:234px;padding:0;border:1px solid #d7bd8538;border-radius:8px;overflow:hidden;background:#211b2b;pointer-events:none;color:#fff}
.move-film-portrait{width:132px}
.move-film video{display:block;width:100%;height:100%;object-fit:contain;pointer-events:none}

@media(max-width:600px){.move-belt{padding-top:12px}.move-belt-group{gap:9px;padding-right:9px}.move-film{width:320px;height:180px;border-radius:6px}.move-film-portrait{width:102px}}



/* Keep each landing point in the middle, including narrow portrait clips. */
.move-belt-window, .venue-belt-window { container-type: inline-size; }
.move-belt-track, .venue-belt-track {
  --slot: min(100cqw, 428px);
  margin-inline-start: calc((100cqw - var(--slot)) / 2);
}
.move-belt-group, .venue-belt-group { gap: 0; padding: 0; min-width: 0; }
.move-film, .venue-name { flex: 0 0 var(--slot); width: var(--slot); box-sizing: border-box; }
.move-film { display: grid; place-items: center; padding-inline: 6px; background: transparent; border: 0; }
.move-film video { width: auto; max-width: 100%; height: 100%; aspect-ratio: 16/9; object-fit: contain; border-radius: 6px; }
.move-film-portrait video { aspect-ratio: 9/16; }
@media (max-width: 850px) {
  .move-belt-track, .venue-belt-track { --slot: 100cqw; }
  .venue-name { padding-inline: max(56px, 16cqw); text-wrap: balance; }
}
@media (min-width: 851px) {
  .move-belt-window, .venue-belt-window { max-width: 1284px; margin-inline: auto; }
  .move-belt-track, .venue-belt-track { margin-inline-start: calc((100cqw - var(--slot)) / 2 - var(--slot)); }
}

@media (max-width: 850px), (hover: none) and (max-height: 500px) {
  .move-belt-track { --slot: 100cqw; margin-inline-start: 0; }
  .move-film { padding: 0; border-radius: 0; }
  .move-film video { width: 100%; object-fit: cover; border-radius: 0; }
}

@media (max-width: 850px) and (prefers-reduced-motion: no-preference),
       (hover: none) and (max-height: 500px) and (prefers-reduced-motion: no-preference) {
  .move-belt-track { animation: mobile-film-roll 31.5s linear infinite; }
}

@keyframes mobile-film-roll {
  to { transform: translate3d(-50%, 0, 0); }
}

.move-belt-window {
  padding-block: 11px;
  background-color: #fff;
  background-image: repeating-linear-gradient(90deg, transparent 0 5px, #c5af86 5px 10px, transparent 10px 15px);
  background-size: 100% 4px;
  background-position: left top 3px;
  background-repeat: no-repeat;
  position: relative;
}
.move-belt-window::after {
  content: "";
  position: absolute;
  inset: auto 0 3px;
  height: 4px;
  background-image: inherit;
  pointer-events: none;
}

/* The desktop strip follows the clips’ native proportions. Include the
   trailing gutter in each copy so the loop seam matches every other join. */
@media (min-width: 851px) and (hover: hover), (min-width: 851px) and (min-height: 501px) {
  .move-belt-window { max-width: 3000px; }
  .move-belt-track { margin-inline-start: 0; }
  .move-belt-group { gap: 6px; padding-inline-end: 6px; }
  .move-film { flex: none; width: 416px; height: 234px; padding: 0; }
  .move-film:first-child { order: -2; }
  .move-film-portrait { order: -1; width: 132px; }
  .move-film, .move-film video { border-radius: 0; }
  .move-film video { width: 100%; object-fit: cover; }
}

.header-phone-cta .phone-label { display: grid; line-height: 1.15; text-align: center; gap: 2px; }
.header-phone-cta .phone-label strong { font-size: max(14px, 1.1em); letter-spacing: .02em; }
#studio .quote-bottom .quote-phone-link { flex-direction: column; align-items: flex-start; justify-content: center; gap: 2px; line-height: 1.25; font-size: 14px; }
#studio .quote-phone-link strong { font-size: 17px; }

.film-play, .film-player, .film-close { display: none; }
@media (max-width:850px), (hover:none) and (max-height:500px) {
  .film-play, .is-watching .film-close {
    display: inline-flex; align-items: center; gap: 8px; position: absolute;
    z-index: 2; right: 10px; bottom: 18px; min-height: 44px;
    padding: 0 15px; border: 1px solid #d6be92; border-radius: 24px;
    background: #29222f; color: #fff; font: 600 14px system-ui; cursor: pointer;
  }
  .film-play::before {
    content: ""; border-style: solid; border-width: 6px 0 6px 10px;
    border-color: transparent transparent transparent #e3c898;
  }
  .is-watching .film-play { display: none; }
  .is-watching .move-belt-track { animation-play-state: paused; visibility: hidden; }
  .is-watching .film-player {
    position: absolute; inset: 11px 0; display: block; width: 100%;
    height: calc(100% - 22px); background: #171419; object-fit: cover;
  }
  .is-watching .film-close { top: 16px; bottom: auto; }
}
