/* Carte vive: the public site's layered studio surfaces. */
:root {
  --gutter:clamp(20px,5.5vw,88px);
  --cv-glass:rgb(16 25 30 / .82);
  --cv-edge:rgb(190 224 232 / .19);
  --cv-shadow:0 22px 60px rgb(0 0 0 / .22);
  --cv-soft-shadow:0 8px 28px rgb(0 0 0 / .12);
  --cv-radius:28px;
  --cv-sheet: #101a1f;
}
:root[data-theme="bright"] {
  --mvm-background:#e7eff2;
  --mvm-surface:#f6f9fa;
  --mvm-raised:#dde8ec;
  --cv-glass:rgb(246 249 250 / .85);
  --cv-edge:rgb(44 90 107 / .18);
  --cv-shadow:0 22px 60px rgb(32 73 90 / .11);
  --cv-soft-shadow:0 8px 28px rgb(32 73 90 / .07);
  --cv-sheet:#f3f8fa;
}
html { scroll-padding-top:112px; scrollbar-gutter:stable; }
body { overflow-x:clip; }
body.sheet-open { overflow:hidden; }
.wrap { max-width:1440px; }
.header { position:relative; z-index:20; background:transparent; }
.header-inner { min-height:108px; padding-block:24px; }
.brand { --brand-size:42px; position:relative; gap:12px; }
.brand img { width:42px; height:42px; }
.brand-word { font-size:16px; letter-spacing:-.035em; }
.brand-subtitle { font-size:11px; }
.nav a { font-size:13px; }
.portal-button { background:var(--cv-glass); backdrop-filter:blur(18px); -webkit-backdrop-filter:blur(18px); border-color:var(--cv-edge); box-shadow:inset 0 1px 0 rgb(255 255 255 / .08),var(--cv-soft-shadow); top:25px; }
.primary,.secondary { min-height:52px; padding:14px 25px; font-size:14px; font-weight:600; }
:root .primary { box-shadow:inset 0 1px 0 rgb(255 255 255 / .24),0 5px 16px rgb(19 120 139 / .12); }
.secondary { background:var(--mvm-surface); border-color:var(--cv-edge); }
.hero { position:relative; isolation:isolate; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:clamp(48px,7vw,112px); padding-block:46px 88px; min-height:700px; }
.hero-copy { position:relative; z-index:1; padding-block:16px; }
.hero .hero-scene { position:absolute; inset:12px 0 42px; z-index:-1; margin:0; min-height:0; border:0; border-radius:36px; background:var(--mvm-background); overflow:hidden; pointer-events:none; }
.hero .hero-scene img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; object-position:center 48%; filter:grayscale(.65) contrast(1.08); opacity:.62; }
.hero .hero-scene::after { content:""; position:absolute; inset:0; background:linear-gradient(90deg,var(--mvm-background) 0%,color-mix(in srgb,var(--mvm-background) 92%,transparent) 26%,color-mix(in srgb,var(--mvm-background) 40%,transparent) 58%,color-mix(in srgb,var(--mvm-background) 70%,transparent) 100%),linear-gradient(0deg,var(--mvm-background),transparent 20%,transparent 85%,var(--mvm-background)); }
.hero .studio-caption { position:absolute; z-index:2; bottom:22px; left:var(--gutter); padding:9px 14px; border:1px solid var(--cv-edge); border-radius:999px; background:var(--cv-glass); color:var(--mvm-text); backdrop-filter:blur(12px); -webkit-backdrop-filter:blur(12px); font-size:11px; }
.studio-current { position:absolute; z-index:1; left:30%; bottom:19%; width:62%; height:110px; border-top:1px solid color-mix(in srgb,var(--mvm-accent) 48%,transparent); border-radius:50%; rotate:-12deg; opacity:.55; box-shadow:0 -2px 9px rgb(121 214 225 / .12); animation:studio-current 8s ease-in-out infinite alternate; }
@keyframes studio-current { from { translate:0 8px; scale:1 .8; opacity:.3; } to { translate:0 -8px; scale:1.04 1; opacity:.65; } }
.hero-copy h1 { max-width:9.5ch; font-size:clamp(52px,5.6vw,83px); line-height:1.08; letter-spacing:-.065em; margin-bottom:26px; text-wrap:balance; }
.hero-copy h1 span { display:inline; }
.hero-lead { max-width:37ch; font-size:16px; line-height:1.7; margin-bottom:28px; }
.hero-foot { margin-top:26px; font-size:12px; }
@keyframes mark-current { from { background-position:0% 50%; } to { background-position:100% 50%; } }

.hero .service-browser { position:relative; z-index:2; padding:0; min-width:0; scroll-margin-top:24px; }
.deck-heading { display:flex; justify-content:space-between; align-items:center; gap:16px; margin-bottom:20px; padding-inline:8px; }
.deck-heading h2 { font-size:16px; letter-spacing:-.025em; line-height:1.4; }
.deck-heading p { font-size:12px; color:var(--mvm-muted); margin:0; }
.service-deck { display:flex; flex-direction:column; gap:0; padding:0 8px 5px; isolation:isolate; }
.service-deck .service { position:relative; text-align:left; margin:0; --tile-color:var(--mvm-accent); --tile-ink:var(--mvm-accent); }
.service-deck .service:nth-child(1) { z-index:3; --card-tilt:-2deg; }
.service-deck .service:nth-child(2) { z-index:2; margin-top:-15px; margin-inline:9px -2px; --card-tilt:1.5deg; }
.service-deck .service:nth-child(3) { z-index:1; margin-top:-15px; margin-inline:17px 6px; --card-tilt:-1deg; }
.service-card { position:relative; isolation:isolate; display:block; width:100%; min-height:160px; padding:28px; overflow:hidden; text-align:left; border:1px solid var(--cv-edge); border-radius:var(--cv-radius); background:var(--cv-glass); backdrop-filter:blur(12px); -webkit-backdrop-filter:blur(12px); color:var(--mvm-text); rotate:var(--card-tilt,0deg); box-shadow:inset 0 1px 0 rgb(255 255 255 / .18),0 12px 26px rgb(0 0 0 / .24),var(--cv-shadow); transition:rotate 550ms var(--ease),translate 550ms var(--ease),scale 220ms var(--ease),border-color 300ms var(--ease),box-shadow 300ms var(--ease); }
.service-deck .service:first-child .service-card { min-height:218px; border-color:color-mix(in srgb,var(--mvm-accent) 58%,var(--cv-edge)); }
.service-deck .service:not(:first-child) .service-card { padding-top:32px; }
.service-card::after { content:""; position:absolute; z-index:-1; left:-35%; bottom:-125px; width:170%; height:180px; border-radius:46% 54% 0 0 / 58% 70% 0 0; border-top:2px solid rgb(121 214 225 / .75); pointer-events:none; background:linear-gradient(180deg,rgb(121 214 225 / .24),rgb(121 214 225 / .06) 24%,transparent 62%); box-shadow:0 -7px 22px rgb(121 214 225 / .18),inset 0 6px 18px rgb(121 214 225 / .16); opacity:.42; transform-origin:50% 100%; animation:card-flow 8.5s ease-in-out infinite alternate; }
.service-deck .service:first-child .service-card::after { opacity:.8; animation-duration:6.5s; }
.service-deck .service:nth-child(2) .service-card::after { animation-delay:-3.5s; }
.service-deck .service:nth-child(3) .service-card::after { animation-delay:-6s; animation-duration:10s; }
@keyframes card-flow { 0% { transform:translate3d(-4%,10px,0) rotate(-9deg) scaleX(.98); } 48% { transform:translate3d(2%,-8px,0) rotate(-1deg) scaleX(1.03); } 100% { transform:translate3d(5%,4px,0) rotate(8deg) scaleX(1); } }
.motion-paused .service-card::after,.motion-paused .service-card::before { animation-play-state:paused; }
.service-deck .service:first-child .service-card::before { content:""; position:absolute; z-index:1; inset:0; border:1px solid transparent; border-radius:inherit; pointer-events:none; background:linear-gradient(115deg,transparent 15%,rgb(121 214 225 / .15) 30%,rgb(200 250 255 / .9) 42%,rgb(121 214 225 / .2) 55%,transparent 75%) border-box; background-size:230% 100%; -webkit-mask:linear-gradient(#fff 0 0) padding-box,linear-gradient(#fff 0 0); mask:linear-gradient(#fff 0 0) padding-box,linear-gradient(#fff 0 0); -webkit-mask-composite:xor; mask-composite:exclude; animation:card-current 7s ease-in-out infinite alternate; }
@keyframes card-current { from { background-position:0% 50%; opacity:.6; } to { background-position:100% 50%; opacity:1; } }
.service-art { position:absolute; inset:0; z-index:-2; margin:0; overflow:hidden; }
.service-art::before { content:""; position:absolute; z-index:1; inset:0; pointer-events:none; opacity:.065; background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180' viewBox='0 0 180 180'%3E%3Cfilter id='grain'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.75' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Cpath fill='%23fff' filter='url(%23grain)' d='M0 0h180v180H0z'/%3E%3C/svg%3E"); background-size:180px 180px; }
.service-art::after { content:""; position:absolute; inset:0; background:linear-gradient(90deg,rgb(8 13 16 / .97) 0%,rgb(8 13 16 / .85) 36%,rgb(8 13 16 / .26) 100%); }
.hero .service-art img { position:static; display:block; width:100%; height:100%; object-fit:cover; object-position:center 45%; opacity:.85; filter:grayscale(1); }
.service-card-content { position:relative; display:block; padding-right:45px; }
:root .service-card .service-icon { display:block; width:32px; height:32px; min-height:0; border:0; border-radius:0; background:none; color:var(--mvm-accent); box-shadow:none; overflow:visible; margin-bottom:12px; aspect-ratio:auto; }
:root .service-card .service-icon::before,:root .service-card .service-icon::after { display:none; }
:root .service-card .service-icon svg { display:block; width:100%; height:100%; fill:none; stroke:currentColor; stroke-width:1.5; stroke-linecap:round; stroke-linejoin:round; }
.service-card-title { display:block; font-family:var(--mvm-heading); font-weight:500; font-size:clamp(21px,2.1vw,28px); letter-spacing:-.045em; line-height:1.2; margin-bottom:7px; }
.service-card-description { display:block; max-width:28ch; font-size:13px; line-height:1.5; color:var(--mvm-muted); margin:0; }
.service-open { position:absolute; right:24px; bottom:24px; display:grid; place-items:center; width:42px; height:42px; border-radius:50%; border:1px solid var(--cv-edge); background:var(--cv-glass); color:var(--mvm-text); font-size:23px; }
.service-open svg { width:18px; height:18px; fill:none; stroke:currentColor; stroke-width:1.6; stroke-linecap:round; stroke-linejoin:round; }
.service-open { transition:background-color 250ms var(--ease),color 250ms var(--ease),translate 350ms var(--ease),border-color 250ms var(--ease); }
[data-theme="bright"] .service-art::after { background:linear-gradient(90deg,rgb(246 249 250 / .98) 0%,rgb(246 249 250 / .9) 36%,rgb(246 249 250 / .18) 100%); }
[data-theme="bright"] .service-card::after { border-top-color:rgb(19 120 139 / .64); background:linear-gradient(180deg,rgb(23 170 192 / .2),rgb(19 120 139 / .05) 24%,transparent 62%); box-shadow:0 -7px 20px rgb(19 120 139 / .14),inset 0 6px 18px rgb(23 170 192 / .15); opacity:.38; }
[data-theme="bright"] .service-deck .service:first-child .service-card::after { opacity:.68; }
[data-theme="bright"] .service-art::before { opacity:.045; }
.service-shortcuts { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:12px; margin:20px 9px 0; }
.service-shortcut { display:flex; flex-direction:column; align-items:center; justify-content:center; gap:10px; min-width:0; min-height:94px; padding:16px 8px; color:var(--mvm-text); border:1px solid var(--cv-edge); border-radius:20px; background:var(--mvm-surface); box-shadow:inset 0 1px 0 rgb(255 255 255 / .05); font-size:12px; }
.service-shortcut svg,.service-shortcut .service-icon svg { width:26px; height:26px; fill:none; stroke:currentColor; stroke-width:1.5; stroke-linecap:round; stroke-linejoin:round; }
:root .service-shortcut .service-icon { display:block; width:26px; height:26px; color:var(--mvm-accent); }
.service-shortcut .service-icon::before,.service-shortcut .service-icon::after { content:none; }
.service-shortcut { transition:translate 400ms var(--ease),scale 200ms var(--ease),border-color 250ms var(--ease),background-color 250ms var(--ease),box-shadow 350ms var(--ease); }
#custom-project { display:block; width:fit-content; max-width:100%; min-height:44px; margin:12px auto 0; padding:12px 6px; border:0; background:none; color:var(--mvm-muted); font-size:12px; text-align:center; text-underline-offset:4px; }
section { padding-block:92px; }
.section-head { gap:36px; margin-bottom:40px; }
.section-head h2,.community h2,.studio-grid h2 { max-width:17ch; font-size:clamp(32px,3.7vw,51px); line-height:1.14; letter-spacing:-.055em; text-wrap:balance; }
.micro { font-size:12px; margin-bottom:14px; }
#spazi { border-top:0; }
.rooms { gap:24px; }
.room { padding:0 0 8px; border:0; }
.room .studio-photo { border:1px solid var(--cv-edge); border-radius:26px; aspect-ratio:4/4.5; margin-bottom:24px; box-shadow:var(--cv-soft-shadow); }
.room .studio-photo img { filter:grayscale(.7) contrast(1.02); }
.room .number { margin-bottom:10px; color:var(--mvm-accent); }
.room h3 { font-size:23px; line-height:1.25; margin-bottom:12px; }
.room p { font-size:14px; line-height:1.7; }
.text-link { font-size:13px; }
.faq { margin:72px auto 0; max-width:880px; padding:32px; background:var(--mvm-surface); border:1px solid var(--cv-edge); border-radius:var(--cv-radius); }
.faq h3 { font-size:24px; margin-bottom:16px; }
.faq details { border-bottom-color:var(--cv-edge); padding-block:16px; }
.faq details:last-child { border:0; padding-bottom:0; }
.faq summary { font-size:14px; line-height:1.5; }
.faq summary::after { display:grid; place-items:center; flex-shrink:0; width:28px; height:28px; background:var(--mvm-raised); border-radius:50%; font-size:20px; }
.faq p { font-size:13px; margin-bottom:0; }
.community { margin-inline:var(--gutter); padding-block:64px; border:1px solid var(--cv-edge); border-radius:36px; background:var(--mvm-surface); box-shadow:inset 0 1px 0 rgb(255 255 255 / .06); }
.community .wrap { padding-inline:clamp(24px,4vw,64px); }
.community-grid { grid-template-columns:1fr 1fr; gap:64px; }
.community p:not(.micro),.studio-grid p:not(.micro) { font-size:14px; }
.community .secondary { margin-top:6px; }
.studio-grid { gap:64px; align-items:center; }
.map { height:340px; border-color:var(--cv-edge); border-radius:28px; opacity:.85; }
.footer { padding-block:32px 40px; border-color:var(--cv-edge); }
.footer-brand { font-size:17px; }
:root .theme-switch { font-size:11px; min-height:42px; right:24px; box-shadow:inset 0 1px 0 #fff9,var(--cv-soft-shadow); }

/* A single native dialog owns the service journey; only its panel moves. */
.service-sheet { position:fixed; inset:0; width:100vw; height:100dvh; max-width:none; max-height:none; margin:0; padding:24px; border:0; background:transparent; color:var(--mvm-text); overflow:hidden; }
.service-sheet:not([open]) { display:none; }
.service-sheet[open] { display:grid; place-items:center; }
.service-sheet::backdrop { background:rgb(3 10 14 / .6); backdrop-filter:blur(16px); -webkit-backdrop-filter:blur(16px); }
[data-theme="bright"] .service-sheet::backdrop { background:rgb(32 61 73 / .28); }
.sheet-shell { position:relative; isolation:isolate; display:flex; flex-direction:column; width:min(100%,620px); max-height:calc(100dvh - 48px); min-height:0; overflow:hidden; border:1px solid var(--cv-edge); border-radius:32px; background:var(--cv-sheet); box-shadow:inset 0 1px 0 rgb(255 255 255 / .16),0 32px 100px rgb(0 0 0 / .3); }
.sheet-shell::after { content:""; position:absolute; z-index:3; inset:0; border:1px solid transparent; border-radius:inherit; pointer-events:none; background:linear-gradient(125deg,transparent 20%,color-mix(in srgb,var(--mvm-accent) 75%,transparent) 44%,transparent 65%) border-box; background-size:220% 100%; -webkit-mask:linear-gradient(#fff 0 0) padding-box,linear-gradient(#fff 0 0); mask:linear-gradient(#fff 0 0) padding-box,linear-gradient(#fff 0 0); -webkit-mask-composite:xor; mask-composite:exclude; animation:card-current 9s ease-in-out infinite alternate; }
.sheet-bar { display:flex; flex-shrink:0; align-items:center; gap:12px; min-height:76px; padding:16px 24px 10px; }
.sheet-bar button { display:grid; place-items:center; flex-shrink:0; width:40px; height:40px; padding:10px; border:1px solid var(--cv-edge); border-radius:50%; color:var(--mvm-text); background:var(--mvm-surface); }
.sheet-bar button svg { width:18px; height:18px; fill:none; stroke:currentColor; stroke-width:1.6; stroke-linecap:round; stroke-linejoin:round; }
#sheet-context { flex:1; color:var(--mvm-muted); font-size:12px; }
.sheet-shell #booking-form { display:flex; flex-direction:column; min-height:0; margin:0; padding:0; border:0; border-radius:0; background:transparent; overflow:hidden; }
.sheet-body { min-height:0; overflow-y:auto; overscroll-behavior:contain; scrollbar-width:thin; scrollbar-color:var(--mvm-border) transparent; padding:12px 32px 24px; }
.sheet-body section { padding:0; }
.sheet-body h2 { font-size:clamp(28px,4vw,38px); line-height:1.15; letter-spacing:-.05em; text-wrap:balance; margin:0 0 18px; outline-offset:5px; }
.sheet-description { color:var(--mvm-muted); font-size:14px; line-height:1.65; }
.sheet-service-art { height:150px; margin:0 0 24px; overflow:hidden; border-radius:20px; border:1px solid var(--cv-edge); background:var(--mvm-surface); }
.sheet-service-art img { width:100%; height:100%; object-fit:cover; filter:grayscale(.65); }
.sheet-body .choice-grid { gap:12px; grid-template-columns:1fr; }
.sheet-body .choice { padding:22px; min-height:112px; border-color:var(--cv-edge); border-radius:22px; background:var(--mvm-surface); }
.sheet-body .choice input { margin-top:5px; width:17px; height:17px; }
.sheet-body .choice strong { font-size:17px; letter-spacing:-.025em; }
.sheet-body .choice small { font-size:13px; line-height:1.6; max-width:38ch; }
:root .sheet-body .choice:has(input:checked) { background:var(--mvm-accent-soft); border-color:var(--mvm-accent); box-shadow:inset 0 0 0 1px var(--mvm-accent); }
:root .sheet-body .choice.is-active { background:var(--mvm-accent-soft); border-color:var(--mvm-accent); box-shadow:inset 0 0 0 1px var(--mvm-accent); }
.sheet-body .choice { transition:border-color 250ms var(--ease),background-color 300ms var(--ease),box-shadow 300ms var(--ease),scale 220ms var(--ease); }
.project-summary { display:flex; flex-direction:column; gap:6px; padding:17px 19px; margin:0 0 24px; background:var(--mvm-raised); border-radius:18px; }
.project-summary strong { font-size:15px; font-weight:600; }
.project-summary span { color:var(--mvm-muted); font-size:12px; }
.sheet-body .field { font-size:13px; line-height:1.5; margin-bottom:20px; }
.sheet-body .field textarea,.sheet-body .field input,.sheet-body .field select { padding:13px 15px; border-radius:15px; background:var(--mvm-surface); }
.sheet-body .field textarea { min-height:100px; }
.optional-timing { margin-top:6px; padding:16px 0 0; border-top:1px solid var(--cv-edge); }
.optional-timing summary { min-height:40px; font-size:13px; color:var(--mvm-muted); cursor:pointer; }
.optional-timing[open] summary { margin-bottom:14px; color:var(--mvm-text); }
.sheet-body .form-grid { gap:12px; }
.sheet-body .form-grid .field { margin-bottom:8px; }
.sheet-body .help,.sheet-body .notice { font-size:12px; }
.sheet-footer { flex-shrink:0; padding:16px 32px 24px; border-top:1px solid var(--cv-edge); background:var(--cv-sheet); }
.sheet-footer .primary { width:100%; min-height:54px; }
.sheet-footnote { font-size:11px; line-height:1.6; color:var(--mvm-muted); text-align:center; margin:12px auto 0; max-width:48ch; }
.sheet-body .form-result { margin-bottom:0; }
.primary,.secondary,.portal-button,.sheet-bar button,.theme-switch { transition:scale 220ms var(--ease),translate 350ms var(--ease),box-shadow 350ms var(--ease),border-color 250ms var(--ease),background-color 250ms var(--ease),color 250ms var(--ease); }
:is(.primary,.secondary,.portal-button,.sheet-bar button,.theme-switch,.service-shortcut,.choice):active { scale:.97; }
.service-card:active { scale:.98; rotate:0deg; }
.nav a { transition:background-color 250ms var(--ease),color 250ms var(--ease),translate 350ms var(--ease); }
.text-link { text-decoration-thickness:1px; transition:color 250ms var(--ease),text-underline-offset 300ms var(--ease); }
.text-link:hover,.text-link:focus-visible { text-underline-offset:8px; }
.sheet-body .field:focus-within { color:var(--mvm-accent); }
.sheet-body .field :is(input,select,textarea) { transition:border-color 250ms var(--ease),box-shadow 250ms var(--ease),background-color 250ms var(--ease); }
.sheet-body .field :is(input,select,textarea):focus { box-shadow:0 0 0 3px var(--mvm-accent-soft); }
.faq summary::after { transition:rotate 350ms var(--ease),background-color 250ms var(--ease),color 250ms var(--ease); }
.faq details[open] summary::after { rotate:180deg; color:var(--mvm-on-accent); background:var(--mvm-accent); }
.motion-ready [data-reveal] { transition:opacity 700ms var(--ease),translate 900ms var(--ease),filter 700ms var(--ease); }
.motion-ready [data-reveal]:not(.is-visible) { opacity:0; translate:0 18px; filter:blur(4px); }
.motion-ready [data-reveal].is-visible { opacity:1; translate:0 0; filter:blur(0); }
@media (hover:hover) {
  .service-card:hover { rotate:0deg; translate:0 -5px; border-color:var(--mvm-accent); box-shadow:inset 0 1px 0 rgb(255 255 255 / .2),0 24px 54px rgb(0 0 0 / .19),0 0 0 1px color-mix(in srgb,var(--mvm-accent) 25%,transparent); }
  .service-card:hover .service-open { color:var(--mvm-on-accent); background:var(--mvm-accent); border-color:var(--mvm-accent); }
  .service-shortcut:hover { translate:0 -4px; border-color:var(--mvm-accent); background:var(--mvm-accent-soft); box-shadow:var(--cv-soft-shadow); }
  #custom-project:hover { color:var(--mvm-accent); }
  .sheet-bar button:hover { background:var(--mvm-raised); border-color:var(--mvm-accent); }
  .primary:hover,.secondary:hover,.portal-button:hover { translate:0 -2px; }
  .nav a:hover { translate:0 -1px; }
  .service-card:hover .service-open { translate:3px 0; }
}
.service-card:focus-visible,.service-shortcut:focus-visible { outline:2px solid var(--mvm-accent); outline-offset:4px; }
@media (min-width:1441px) { .portal-button { right:max(5.5vw,calc((100vw - 1440px)/2 + 80px)); } }
@media (max-width:1050px) {
  .hero { gap:40px; padding-top:32px; }
  .hero-copy h1 { font-size:clamp(48px,6vw,65px); }
  .service-card { padding:24px; }
  .service-card-content { padding-right:40px; }
  .service-card-description { font-size:12px; }
  .rooms { gap:20px; }
  .room h3 { font-size:21px; }
}
@media (max-width:760px) {
  html { scroll-padding-top:24px; }
  .header-inner { min-height:126px; padding-block:20px 8px; gap:12px; }
  .brand { --brand-size:37px; gap:10px; }
  .brand img { width:37px; height:37px; }
  .brand-word { font-size:15px; }
  .brand-subtitle { font-size:10px; }
  .portal-button { top:20px; min-height:44px; right:var(--gutter); }
  .nav { gap:2px; }
  .nav a { padding-inline:12px; font-size:12px; }
  .hero { grid-template-columns:1fr; gap:28px; padding-block:24px 52px; min-height:0; }
  .hero .hero-scene { inset:6px 0 auto; height:286px; border-radius:26px; }
  .hero .hero-scene img { object-position:65% center; opacity:.8; }
  .hero .hero-scene::after { background:linear-gradient(90deg,var(--mvm-background) 0%,color-mix(in srgb,var(--mvm-background) 90%,transparent) 30%,color-mix(in srgb,var(--mvm-background) 24%,transparent) 72%),linear-gradient(0deg,var(--mvm-background) 2%,color-mix(in srgb,var(--mvm-background) 95%,transparent) 20%,transparent 65%); }
  .hero .studio-caption { top:12px; right:12px; left:auto; bottom:auto; max-width:112px; padding:7px 9px; border-radius:12px; font-size:9px; line-height:1.5; }
  .hero .studio-current { left:35%; bottom:28%; width:68%; height:64px; }
  .hero-copy { padding:0; }
  .hero-copy h1 { max-width:11ch; font-size:clamp(44px,9.2vw,64px); margin-bottom:16px; }
  .hero-lead { max-width:39ch; font-size:14px; line-height:1.6; margin-bottom:18px; }
  .hero-foot { margin-top:14px; font-size:11px; }
  .hero .service-browser { width:100%; max-width:520px; justify-self:center; }
  .deck-heading { display:block; margin-bottom:17px; }
  .deck-heading h2 { margin-bottom:7px; }
  .deck-heading p { max-width:40ch; line-height:1.6; }
  .service-deck { padding-inline:0; }
  .service-deck .service:first-child { --card-tilt:-1.6deg; }
  .service-deck .service:nth-child(2) { --card-tilt:1.3deg; }
  .service-deck .service:nth-child(3) { --card-tilt:-.8deg; }
  .service-card { min-height:120px; padding:20px 22px; border-radius:25px; }
  .service-deck .service:first-child .service-card { min-height:170px; }
  .service-deck .service:not(:first-child) .service-card { padding-top:26px; }
  .service-card-title { font-size:22px; }
  .service-card-description { font-size:12px; }
  :root .service-card .service-icon { width:27px; height:27px; margin-bottom:8px; }
  .service-deck .service:not(:first-child) .service-card-content { padding-left:38px; }
  :root .service-deck .service:not(:first-child) .service-icon { position:absolute; top:0; left:0; }
  .service-open { right:18px; bottom:18px; }
  .service-shortcuts { margin-inline:6px; gap:10px; }
  .service-shortcut { min-height:90px; border-radius:18px; }
  section { padding-block:60px; }
  .section-head { margin-bottom:28px; }
  .section-head>p { font-size:14px; margin-top:18px; }
  .section-head h2,.community h2,.studio-grid h2 { font-size:clamp(31px,7.2vw,43px); }
  .rooms { grid-template-columns:1fr; gap:36px; }
  .room .studio-photo { aspect-ratio:4/3; margin-bottom:20px; }
  .room h3 { font-size:23px; }
  .room .number { margin-bottom:10px; }
  .faq { margin-top:44px; padding:24px; border-radius:24px; }
  .faq summary { font-size:13px; gap:12px; }
  .community { padding-block:34px; border-radius:28px; }
  .community .wrap { padding-inline:24px; }
  .community-grid,.studio-grid { grid-template-columns:1fr; gap:28px; }
  .community h2 { margin-bottom:0; }
  .map { height:280px; border-radius:24px; }
  .footer-inner { gap:20px; }
  .footer p { font-size:11px; }
  :root .theme-switch { right:16px; bottom:max(16px,env(safe-area-inset-bottom)); }
  .service-sheet { padding:12px 12px max(12px,env(safe-area-inset-bottom)); align-items:end; }
  .service-sheet[open] { place-items:end center; }
  .sheet-shell { max-height:calc(100dvh - 24px - env(safe-area-inset-bottom)); border-radius:28px; }
  .sheet-bar { min-height:68px; padding:14px 20px 8px; }
  .sheet-body { padding:12px 24px 24px; }
  .sheet-body h2 { font-size:31px; }
  .sheet-body .field :is(input,select,textarea) { font-size:16px; }
  .sheet-service-art { height:130px; }
  .sheet-footer { padding:16px 24px 20px; }
  .sheet-body .choice { min-height:110px; padding:18px; }
  .sheet-body .form-grid { grid-template-columns:1fr 1fr; }
}
@media (max-width:380px) {
  :root { --gutter:18px; }
  .brand-subtitle { max-width:120px; }
  .brand-word { font-size:14px; }
  .portal-button { padding-inline:12px; gap:6px; font-size:12px; }
  .hero-copy h1 { font-size:44px; }
  .service-card { padding:20px; }
  .service-card-description { font-size:12px; }
  .service-open { width:36px; height:36px; }
  .service-card-content { padding-right:34px; }
  .service-shortcut { font-size:11px; }
  .community .wrap { padding-inline:20px; }
  .faq { padding:20px; }
  .sheet-body { padding-inline:20px; }
  .sheet-body h2 { font-size:28px; }
  .sheet-footer { padding-inline:20px; }
  .sheet-body .form-grid { grid-template-columns:1fr; }
}
@media (prefers-reduced-motion:reduce) {
  .brand::before { animation:none; background-position:45% 50%; }
  .service-card,.service-card:hover,.service-card:active { rotate:0deg; translate:none; scale:1; }
  .studio-current { animation:none; }
  .motion-ready [data-reveal],.motion-ready [data-reveal]:not(.is-visible) { opacity:1; translate:none; filter:none; }
  *,*::before,*::after { animation:none!important; transition:none!important; scroll-behavior:auto!important; }
}
