/* Interaction and reading surfaces. Palette remains bound to the brand tokens. */
:root{--chat-surface:var(--brand-plum);--chat-message:var(--brand-paper);--chat-user:color-mix(in srgb,var(--brand-primary) 25%,var(--brand-paper))}
button,a,input,textarea{-webkit-tap-highlight-color:transparent}
button:focus-visible,a:focus-visible,[tabindex]:focus-visible{outline:2px solid var(--brand-primary);outline-offset:3px}
button:disabled{cursor:default}
.photo-arrow[hidden]{display:none!important}
.photo-arrow:disabled{opacity:.35!important;pointer-events:none}
.photo-dots{flex-wrap:nowrap!important;min-width:0;max-width:100%;overflow-x:auto;justify-content:safe center!important;scrollbar-width:none;color:inherit}
.photo-dots button{flex:0 0 44px!important;min-width:44px!important;width:44px!important;min-height:44px!important;height:44px!important}
.photo-gallery:has(.photo-slide:only-of-type)>.photo-dots{display:none!important}
#palazzo-butera .photo-dots,.exterior-panel .photo-dots{color:var(--brand-white)}
.photo-stage{overflow:hidden}
.project-board img,.photo-slide.is-current{cursor:zoom-in}
.photo-slide:not(.is-current){pointer-events:none}
.mobile-project-list summary{cursor:pointer;min-height:44px;padding:12px 16px;font-size:14px;color:var(--brand-muted)}
.mobile-project-list summary:focus-visible{outline:2px solid var(--brand-primary);outline-offset:-2px;border-radius:10px}
.mobile-project-list .mobile-furniture-projects{padding-left:12px}
.approach-image img{object-fit:contain!important;background:var(--brand-muted)}

/* Chat: one visual system and one bounded scroller in every host. */
:is(#chatbot-section,#chatbot-dock) #chatbot-panel{display:flex;flex-direction:column;min-width:0;min-height:0;color:var(--brand-white);background:var(--brand-glass-plum);font:400 16px/1.5 var(--brand-font);isolation:isolate}
#chatbot-dock[data-mode=popup]{bottom:24px!important;right:var(--page-margin)!important;left:auto!important;transform:none!important;width:min(480px,calc(100vw - 32px));z-index:100}
#chatbot-dock[data-mode=popup] #chatbot-panel{height:min(640px,calc(100dvh - 150px));max-height:calc(100dvh - 150px)!important;background:var(--brand-plum)}
:is(#chatbot-section,#chatbot-dock) #chatbot-panel .chatbot-header{display:flex;flex:none;min-height:64px;gap:8px;padding:12px 18px;border-bottom:var(--brand-border-width) solid var(--brand-border);background:transparent;color:var(--brand-white)}
:is(#chatbot-section,#chatbot-dock) #chatbot-panel .chatbot-header strong{font:500 21px/1.2 var(--brand-font);letter-spacing:-.025em;color:inherit}
#chatbot-panel .chatbot-tools button{min-width:44px;min-height:44px;flex:none}
#chatbot-panel .chatbot-tools [data-cb=compact]{font-size:26px;line-height:1}
#chatbot-panel .chatbot-body{position:relative;display:flex!important;flex:1 1 0!important;min-height:0!important;overflow:hidden!important}
:is(#chatbot-section,#chatbot-dock) #chatbot-panel #chatbot-messages{display:block;flex:1;min-height:0;width:100%;max-height:none!important;max-width:none!important;margin:0;padding:20px max(18px,calc((100% - 920px)/2))!important;overflow-x:hidden;overflow-y:auto;overscroll-behavior:contain!important;overflow-anchor:none;scrollbar-gutter:stable;scrollbar-width:thin;order:0}
#chatbot-section #chatbot-panel #chatbot-messages{overscroll-behavior-y:auto!important}
:is(#chatbot-section,#chatbot-dock) #chatbot-panel .chatbot-message{width:fit-content;max-width:88%;margin:0 auto 16px 0!important;padding:14px 16px!important;border:0;border-radius:6px 18px 18px 18px!important;background:var(--chat-message)!important;color:var(--brand-plum)!important;backdrop-filter:none;box-shadow:none}
:is(#chatbot-section,#chatbot-dock) #chatbot-panel .chatbot-message.user{max-width:80%;margin:0 0 16px auto!important;background:var(--chat-user)!important;border-radius:18px 6px 18px 18px!important}
#chatbot-panel .chatbot-message p{font-size:16px!important;line-height:1.55!important;margin:4px 0 0!important}
:is(#chatbot-section,#chatbot-dock) #chatbot-panel .chatbot-message small{font-size:12px;color:var(--brand-plum)!important;opacity:.7;letter-spacing:.05em}
#chatbot-panel .chatbot-actions{gap:8px;margin-top:14px}
#chatbot-panel .chatbot-actions button{min-height:44px;font-size:14px!important;line-height:1.3;padding:10px 12px;background:var(--brand-primary);color:var(--brand-plum);border:0}
:is(#chatbot-section,#chatbot-dock) #chatbot-panel #chatbot-form{display:flex;flex:none;width:100%;padding:12px max(18px,calc((100% - 920px)/2));gap:8px;margin:0;border-top:var(--brand-border-width) solid var(--brand-border);background:transparent}
:is(#chatbot-section,#chatbot-dock) #chatbot-panel #chatbot-input{height:46px;min-height:46px;min-width:0;font:400 16px/1.4 var(--brand-font)!important;padding:10px 12px!important;background:var(--brand-surface-dark)!important;color:var(--brand-white)!important;border:var(--brand-border-width) solid var(--brand-border)!important}
#chatbot-panel #chatbot-input::placeholder{color:var(--brand-muted)!important;opacity:1}
#chatbot-panel #chatbot-form button{flex:none;width:46px;min-height:46px;font-size:22px;background:var(--brand-primary);color:var(--brand-plum)}
#chatbot-panel .chatbot-latest{position:absolute;bottom:10px;left:50%;transform:translateX(-50%);z-index:2;min-height:44px;white-space:nowrap;background:var(--brand-primary);color:var(--brand-plum);box-shadow:0 4px 20px color-mix(in srgb,var(--brand-ink) 20%,transparent)}
#chatbot-panel .chatbot-latest[hidden]{display:none!important}
#chatbot-panel .chatbot-media-message{width:min(100%,640px);padding:12px!important;background:var(--brand-surface-dark);color:var(--brand-white)}
#chatbot-panel .chatbot-media-message>img{width:100%;height:auto;aspect-ratio:4/3;max-height:320px;object-fit:contain;background:color-mix(in srgb,var(--brand-ink) 20%,transparent)}
#chatbot-panel .chatbot-media-message>small{font-size:12px}
#chatbot-panel .chatbot-media-message [data-image-step]{width:44px;height:44px;min-width:44px;min-height:44px}
#chatbot-panel .chatbot-media-message .chatbot-media-page{min-height:44px;font-size:14px}
#chatbot-dock[data-mode=compact] #chatbot-panel #chatbot-form{border:0;padding:3px 5px}
#chatbot-dock[data-mode=compact] #chatbot-panel #chatbot-input{background:transparent!important;border:0!important;font-size:14px!important;padding:6px!important}
#chatbot-dock[data-mode=compact] #chatbot-panel #chatbot-form button{width:38px;min-height:38px}
#chatbot-panel .chatbot-typing{flex:none}
.chatbot-lightbox[open]{display:grid;grid-template-rows:minmax(0,1fr) auto auto;gap:8px;padding:56px 20px 16px;box-sizing:border-box}
.chatbot-lightbox>img{min-height:0;height:100%!important;width:100%;object-fit:contain}
.chatbot-lightbox>p{margin:0;max-height:4.5em;overflow:auto;font-size:14px;line-height:1.5}
.chatbot-lightbox>nav{position:static!important;min-width:0;min-height:44px;gap:8px}
.chatbot-lightbox nav>[data-step]{position:static!important;transform:none!important;width:44px;height:44px;flex:none}
.chatbot-lightbox .photo-dots{max-width:calc(100% - 104px)}
.chatbot-lightbox .lightbox-close{top:8px;right:8px;width:44px;height:44px}

/* Enlarge plans and inline project images without changing their framing. */
.portfolio-lightbox{width:min(1400px,calc(100vw - 24px));height:calc(100dvh - 24px);max-width:none;max-height:none;padding:12px;border:var(--brand-border-width) solid var(--brand-border);border-radius:var(--brand-radius);background:var(--brand-plum);color:var(--brand-white)}
.portfolio-lightbox[open]{display:flex;flex-direction:column;gap:8px}
.portfolio-lightbox::backdrop{background:color-mix(in srgb,var(--brand-ink) 75%,transparent)}
.portfolio-lightbox header{display:flex;align-items:center;justify-content:space-between;gap:8px;flex:none}
.portfolio-lightbox button{min-width:44px;min-height:44px;border:var(--brand-border-width) solid var(--brand-border);border-radius:calc(var(--brand-radius-button) * 0.4);padding:8px 12px;color:inherit;font:inherit;background:var(--brand-surface-dark)}
.portfolio-lightbox header button:last-child{font-size:26px;line-height:1}
.portfolio-lightbox .lightbox-canvas{flex:1;min-height:0;overflow:auto;overscroll-behavior:contain;touch-action:pan-x pan-y pinch-zoom;text-align:center}
.portfolio-lightbox img{display:block;width:100%;height:100%;object-fit:contain;margin:auto}
.portfolio-lightbox.is-zoomed img{width:auto;height:auto;max-width:none;max-height:none;min-width:100%;max-inline-size:none}
.portfolio-lightbox footer{display:flex;align-items:center;gap:12px;flex:none;font-size:14px}
.portfolio-lightbox footer span{flex:1;text-align:center}
.contact-dialog #contact-form{display:none}
.contact-dialog{height:fit-content!important;max-height:calc(100dvh - 32px);overflow:auto}
.contact-coming-soon{position:static;inset:auto;transform:none;margin-top:20px;padding:20px;box-shadow:none;text-align:left;border:var(--brand-border-width) solid var(--brand-border)}
.contact-coming-soon a{min-height:44px;display:flex;align-items:center;text-decoration:underline;text-underline-offset:4px}
.contact-coming-soon [role=status]{display:block;min-height:24px;font-size:14px;margin-top:8px}
.contact-close,.editorial-dialog .dialog-close{min-width:44px;min-height:44px}

@media(max-width:900px){
 :root{--mobile-control-bottom:max(12px,env(safe-area-inset-bottom));--panel-bottom:calc(64px + env(safe-area-inset-bottom))!important}
 .site-header .timeline-label{font-size:12px!important;line-height:1.2!important}
 .site-header .header-timeline:after{display:none}
 .mobile-menu-toggle,#skip-animation{bottom:var(--mobile-control-bottom)!important}
 #chat-launcher{right:var(--page-margin)!important;left:auto!important;bottom:calc(66px + env(safe-area-inset-bottom))!important;width:44px;height:44px;background:var(--brand-plum);z-index:90}
 #page-scroll-indicator:not([hidden]){bottom:var(--mobile-control-bottom)!important;min-width:44px;min-height:44px}
 #hold-animation:not([hidden]){bottom:var(--mobile-control-bottom)!important;width:144px;max-width:calc(100vw - 156px);font-size:12px!important;line-height:1.15;gap:6px!important;padding:4px 8px!important;color:var(--brand-white);background:var(--brand-plum);--hold-icon-surface:var(--brand-plum)}
 #hold-animation:not([hidden]) svg{width:32px!important;height:32px!important;animation:none}
 #hold-animation.is-playing{opacity:1!important;background:var(--brand-plum)!important;color:var(--brand-white)!important;--hold-icon-surface:var(--brand-plum)}
 #hold-animation.is-on-light{background:var(--brand-paper);color:var(--brand-plum);--hold-icon-surface:var(--brand-paper)}
 #hold-animation.is-playing .press-halo{opacity:.3}
 .project-intro,.project-outro,.furniture-lead{overflow-y:auto!important;overscroll-behavior-y:auto!important;padding:var(--ds-box-spacing-mobile-36)!important;}
 .project-intro>p,.project-outro>p,.furniture-lead>p,#palazzo-butera .byat-copy p{font-size:var(--ds-body-size-mobile-3)!important;line-height:var(--ds-body-line-mobile-1)!important;}
 .award-block{gap:12px;margin-top:24px!important;padding-top:16px}
 .award-block .project-award{font-size:14px!important;line-height:1.45!important}
 .award-badge{width:56px!important;max-height:76px;object-fit:contain}
 #palazzo-butera .byat-copy{max-height:none!important;flex:0 0 auto!important;gap:var(--ds-box-spacing-mobile-37);}
 #palazzo-butera .byat-copy h3{font-size:var(--ds-heading-size-mobile-19)!important;}
 #palazzo-butera .byat-copy .render-kicker,#palazzo-butera .byat-copy>p:first-of-type{font-size:var(--ds-caption-size-mobile-1)!important;letter-spacing:var(--ds-caption-tracking-mobile-2);line-height:var(--ds-caption-line-mobile-2)!important;}
 #palazzo-butera .photo-gallery{flex:0 0 auto!important;min-height:264px!important}
 .photo-dots{gap:0!important}
 .photo-stage .photo-arrow{width:44px!important;height:44px!important;min-width:44px!important}
 #palazzo-butera .photo-stage{min-height:220px!important}
 #palazzo-butera .butera-panel{overscroll-behavior-y:auto!important}
 .interior-minimize{min-width:44px;min-height:44px;top:8px!important;right:8px!important}
 .interior-panel .byat-copy h2{padding-right:40px}
 .contact .contact-path>p:not(.eyebrow){font-size:var(--ds-caption-size-mobile-8)!important;line-height:var(--ds-caption-line-mobile-3)!important;}
 .contact .contact-path .eyebrow{font-size:var(--ds-caption-size-mobile-1)!important;}
 .contact footer{font-size:12px!important;line-height:1.5}
 .contact footer>a[href^=mailto]{min-height:44px!important;font-size:14px!important}
 .contact .contact-pin{padding-bottom:calc(76px + env(safe-area-inset-bottom))!important}
 #chatbot-section-slot{padding-bottom:calc(64px + env(safe-area-inset-bottom))!important}
 :is(#chatbot-section,#chatbot-dock) #chatbot-panel .chatbot-header{padding:10px 12px;min-height:58px}
 :is(#chatbot-section,#chatbot-dock) #chatbot-panel .chatbot-header strong{font-size:20px!important}
 :is(#chatbot-section,#chatbot-dock) #chatbot-panel #chatbot-messages{padding:14px 12px!important;scrollbar-gutter:auto}
 :is(#chatbot-section,#chatbot-dock) #chatbot-panel .chatbot-message{max-width:94%;padding:12px!important}
 :is(#chatbot-section,#chatbot-dock) #chatbot-panel .chatbot-message.user{max-width:88%}
 :is(#chatbot-section,#chatbot-dock) #chatbot-panel #chatbot-form{padding:10px 12px;gap:8px}
 html.chat-keyboard-open #chatbot-panel #chatbot-form{padding-bottom:8px}
 .chatbot-lightbox{width:calc(100vw - 16px);height:calc(100dvh - 16px);max-height:none;max-width:none;border-radius:18px}
 .chatbot-lightbox[open]{padding:56px 12px 12px}
 .project-gallery .dialog-footer{grid-row:3}
}
@media(max-width:900px) and (max-height:500px){
 .site-header .header-timeline{height:44px}
 .site-header .header-timeline a,.site-header .header-timeline a:nth-child(n){min-height:44px;padding-bottom:12px}
 .site-header .timeline-label{min-height:26px!important}
 :root,:is(#citta,#arredi,#palazzo-butera){--panel-top:calc(var(--compact-header-height,64px) + 18px)!important}
 .contact .contact-pin{height:auto!important;min-height:100dvh;overflow:visible!important;position:relative!important}
 .contact .contact-copy{overflow:visible!important}
 #chatbot-panel .chatbot-header{min-height:52px!important;padding:4px 12px!important}
 #chatbot-panel #chatbot-form{padding-top:6px!important;padding-bottom:6px!important}
}
@media(prefers-reduced-motion:reduce){#hold-animation svg,.press-halo{animation:none!important}html:focus-within{scroll-behavior:auto}}
@media(prefers-reduced-transparency:reduce){:is(#chatbot-section,#chatbot-dock) #chatbot-panel{background:var(--brand-plum);backdrop-filter:none;-webkit-backdrop-filter:none}}
/* Final mobile reading layout and in-section keyboard accommodation. */
.photo-stage .photo-slide{transition:opacity 180ms ease,visibility 0s linear 180ms}
.photo-stage .photo-slide.is-current{transition-delay:0s}
.photo-stage .photo-arrow{display:grid!important;place-items:center;padding:0!important;line-height:1}
.photo-arrow svg{display:block;flex:none}
.byat-copy h2,.byat-copy h3{margin-bottom:0!important;padding-bottom:8px!important}
.byat-copy .render-kicker,.byat-copy .project-place{margin-top:6px!important;margin-bottom:16px!important;padding-top:0!important}
.project-gallery .dialog-count{display:none!important}
.project-gallery .dialog-footer{justify-content:center;align-items:center}
.project-gallery .dialog-thumbs{margin-inline:auto;width:max-content;max-width:100%;align-items:center;justify-content:safe center}
#chatbot-panel [data-cb=dismiss-keyboard]{display:none!important}
.contact-intro{display:none}
@media(max-width:900px){
 .hero-glass{display:grid!important;grid-template-columns:minmax(0,1.15fr) minmax(0,1fr)!important;gap:var(--ds-box-spacing-mobile-37)!important;padding:var(--ds-box-spacing-mobile-38)!important;align-items:center!important;height:auto!important}
 .hero-copy{display:flex!important;flex-direction:column;gap:var(--ds-box-spacing-mobile-22)!important;grid-column:1!important;grid-row:1!important;min-width:0;text-align:left!important}
 .hero-copy h1{font-size:var(--ds-display-size-mobile-8)!important;line-height:var(--ds-display-line-mobile-3)!important;margin:0!important;text-align:left!important}
 .hero-copy .hero-intro{font-size:var(--ds-body-size-mobile-13)!important;line-height:var(--ds-body-line-mobile-10)!important;margin:0!important;text-align:left!important;max-width:none!important}
 .hero-profile{grid-column:2!important;grid-row:1!important;width:100%!important;max-width:none!important;height:auto!important;aspect-ratio:1;align-self:center!important;object-fit:cover}
 #hold-animation.is-on-light,#hold-animation.is-on-light.is-playing{background:var(--brand-paper)!important;color:var(--brand-plum)!important;--hold-icon-surface:var(--brand-paper)}
 .project-gallery[open]{grid-template-rows:auto minmax(140px,1.65fr) auto minmax(90px,1fr)!important;height:calc(100dvh - 24px)!important;max-height:calc(100dvh - 24px)!important}
 .project-gallery .dialog-visual{min-height:0!important;height:100%!important}
 .project-gallery .dialog-copy{min-height:0!important;overflow-y:auto!important}
 html.chat-inline-writing #chatbot-section-slot{height:var(--chat-inline-height,100dvh)!important}
 html.chat-inline-writing #chatbot-section #chatbot-panel{height:100%!important;max-height:none!important}
 html.chat-inline-writing #chatbot-panel [data-cb=dismiss-keyboard]{display:block!important;font-size:14px}
 html.chat-keyboard-open .mobile-menu-toggle,html.chat-keyboard-open #chat-launcher{visibility:hidden!important;pointer-events:none!important}
 html.chat-inline-writing #chatbot-section #chatbot-messages{overscroll-behavior:contain!important}
 .contact .contact-pin{position:relative!important;height:auto!important;min-height:100svh!important;max-height:none!important;overflow:visible!important;padding-top:var(--panel-top)!important;gap:24px!important}
 .contact .contact-copy{overflow:visible!important;max-height:none!important;height:auto!important;flex:none!important}
 .contact #contact-title{font-size:clamp(34px,8.4vw,52px)!important;line-height:1.08!important;margin-bottom:12px!important}
 .contact-intro{display:block;color:var(--brand-muted);font-size:20px;line-height:1.45;margin:0 0 24px;max-width:34em}
 .contact .contact-manifesto{display:none!important}
 .contact .contact-paths{display:flex!important;flex-direction:column;gap:var(--ds-box-spacing-mobile-39)!important;}
 .contact .contact-path{display:flex!important;flex-direction:column;align-items:flex-start;padding:var(--ds-box-spacing-mobile-40)!important;gap:var(--ds-box-spacing-mobile-41)!important;min-height:0!important;text-align:left;background:var(--brand-surface-dark)!important;border:var(--brand-border-width) solid var(--brand-border)!important;border-radius:calc(var(--brand-radius) * 1.0)!important}
 .contact .contact-path h3{font-size:var(--ds-heading-size-mobile-20)!important;line-height:var(--ds-heading-line-mobile-6)!important;padding-right:0!important;margin:0!important}
 .contact .contact-path .eyebrow{font-size:var(--ds-caption-size-mobile-1)!important;letter-spacing:var(--ds-caption-tracking-mobile-3)!important;margin:0!important}
 .contact .contact-path>p:not(.eyebrow){font-size:var(--ds-caption-size-mobile-9)!important;line-height:var(--ds-caption-line-mobile-3)!important;margin:0!important}
 .contact .contact-path .contact-cta{position:static!important;display:flex!important;align-items:center;justify-content:center;gap:var(--ds-box-spacing-mobile-42)!important;min-height:48px;width:fit-content!important;padding:var(--ds-box-spacing-mobile-43)!important;margin-top:4px;background:var(--brand-primary);color:var(--brand-white);border-radius:calc(var(--brand-radius) * 1.25);font-size:18px!important;transform:none!important}
 .contact .contact-path .contact-cta>span{font-size:24px!important}
 .contact footer{display:grid!important;grid-template-columns:minmax(0,1fr) auto!important;gap:14px!important;padding:22px!important;background:var(--brand-surface-dark);border:var(--brand-border-width) solid var(--brand-border)!important;border-radius:calc(var(--brand-radius) * 1.0);font-size:14px!important}
 .contact footer>a:first-child{grid-column:1/-1;font-size:18px!important;line-height:1.5}
 .contact footer>span:nth-child(2){grid-column:1/-1;font-size:15px!important;line-height:1.5}
 .contact footer>a[href^=mailto]{grid-column:1/-1;font-size:14px!important;overflow-wrap:anywhere;border-top:var(--brand-border-width) solid var(--brand-border);padding-top:14px}
}
@media(max-width:360px){.hero-copy .hero-intro{font-size:var(--ds-body-size-mobile-14)!important;}.hero-glass{gap:var(--ds-box-spacing-mobile-44)!important;padding:var(--ds-box-spacing-mobile-45)!important;}.contact .contact-path{padding:var(--ds-box-spacing-mobile-46)!important;}}
@media(prefers-reduced-motion:reduce){.photo-stage .photo-slide{transition:none!important}}

@media(max-width:900px){html.chat-keyboard-open #chatbot-section-slot{padding-bottom:12px!important}}
/* Body copy uses justified text, with the final line aligned to the left. */
.hero-copy .hero-intro,
main p:not(.eyebrow):not(.render-kicker):not(.project-place),
.dialog-copy p,.contact-dialog p:not(.render-kicker),
#chatbot-panel .chatbot-message p,.interior-mini-body{
 text-align:start!important;text-align-last:auto;hyphens:auto;overflow-wrap:break-word;
}
@media(max-width:900px){.hero-copy h1{align-self:flex-start!important;width:100%!important;max-width:none!important;text-align:left!important}}
.byat-panel .byat-copy{gap:var(--ds-box-spacing-base-13)!important;}
.byat-copy h2,.byat-copy h3{padding-bottom:0!important}
.byat-copy .render-kicker,.byat-copy .project-place{padding-top:6px!important;margin-top:8px!important;margin-bottom:18px!important}
.byat-copy>p+p:not(.render-kicker):not(.project-place){margin-top:14px!important}
@media(max-width:900px) and (max-height:500px){
 .hero-glass{grid-template-columns:minmax(0,1fr) auto!important;padding:var(--ds-box-spacing-mobile-47)!important;gap:var(--ds-box-spacing-mobile-48)!important;max-height:calc(100svh - 140px)!important}
 .hero-profile{width:auto!important;height:min(190px,calc(100svh - 172px))!important;max-width:30vw!important}
 .hero-copy h1{font-size:var(--ds-display-size-mobile-9)!important;}
 .hero-copy .hero-intro{font-size:var(--ds-body-size-mobile-15)!important;line-height:var(--ds-body-line-mobile-11)!important;}
 .hero-copy{gap:var(--ds-box-spacing-mobile-49)!important;}
 .project-gallery[open]{grid-template-rows:auto minmax(0,1fr) auto!important}
}
.contact footer>span:nth-child(2){text-align:justify;text-align-last:left;hyphens:auto}
