@font-face{font-family:SUIT;src:url('/assets/SUIT-Variable.woff2') format('woff2');font-weight:100 900;font-style:normal;font-display:swap}
:root{color-scheme:light;--bg:#f7f8fa;--surface:#ffffff;--surface-hover:#edf1f5;--ink:#17202e;--muted:#536174;--line:#d8dfe8;--control-line:#6a7e99;--accent:#2457f5;--accent-hover:#1941c2;--on-accent:#ffffff;--error:#b42318;--word-start:#606d80;--gallery-plate:#edf1f5;--shadow:0 12px 40px #17202e14;--gap:clamp(24px,5.55vw,96px)}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:110px}body{margin:0;background:var(--bg);color:var(--ink);font-family:SUIT,sans-serif;font-size:17px;line-height:1.65;-webkit-font-smoothing:antialiased}button,input,select,textarea{font:inherit}button,a,input,select,textarea{-webkit-tap-highlight-color:transparent}button,a{touch-action:manipulation}button{cursor:pointer}a{color:inherit;text-decoration:none}button{color:inherit}img{display:block;max-width:100%}button:disabled{cursor:not-allowed}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid var(--accent);outline-offset:5px}::selection{background:var(--accent);color:var(--on-accent)}[hidden]{display:none!important}h1,h2,h3,p,figure{margin:0}h1,h2,h3{word-break:keep-all;font-weight:630;letter-spacing:-.05em}h2{font-size:clamp(34px,4.1vw,64px);line-height:1.22}p{word-break:keep-all}.skip-link{position:fixed;top:-100px;left:20px;z-index:100;background:var(--accent);color:var(--on-accent);padding:12px 20px}.skip-link:focus{top:12px}.section-wrap{padding-left:var(--gap);padding-right:var(--gap);max-width:1800px;margin:auto}
.site-header{position:fixed;top:24px;left:24px;right:24px;z-index:40;display:flex;justify-content:space-between;align-items:flex-start;gap:16px;pointer-events:none}.site-header>*{pointer-events:auto}.nav-shell{display:flex;align-items:center;gap:29px;padding:8px 19px 8px 8px;background:var(--surface);border:1px solid var(--line);box-shadow:var(--shadow);border-radius:13px;min-height:56px}.brand{display:block;border-radius:7px;overflow:hidden;flex:none;background:#f6f3eb}.logo-window{display:block;position:relative;width:128px;height:36px;overflow:hidden}.logo-window img{position:absolute;width:148px;max-width:none;height:auto;left:-10px;top:50%;transform:translateY(-50%)}.logo-window.logo-one{width:86px;height:40px}.logo-window.logo-one img{width:86px;left:0}.desktop-nav{display:flex;gap:26px;align-items:center;font-size:14px;font-weight:600;color:var(--muted)}.desktop-nav a:hover,.desktop-nav a[aria-current]{color:var(--ink)}.desktop-nav a[aria-current]{text-decoration:underline;text-underline-offset:7px}.button{display:inline-flex;align-items:center;justify-content:center;gap:34px;min-height:56px;padding:16px 26px;border:1px solid transparent;background:var(--accent);color:var(--on-accent);border-radius:10px;font-size:16px;font-weight:700;line-height:1.3;white-space:nowrap}.button:hover{background:var(--accent-hover)}.button span{font-size:23px;line-height:1}.button-small{min-height:56px;padding:16px 22px;font-size:14px;gap:25px}.menu-toggle{display:none}.mobile-nav{position:absolute;top:70px;left:0;right:0;background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:18px;box-shadow:var(--shadow)}.mobile-nav a{display:block;padding:12px 15px}.mobile-nav a:hover{background:var(--surface-hover)}
.hero{min-height:880px;min-height:max(860px,100svh);position:relative;overflow:clip;padding:142px 0 80px;display:flex;flex-direction:column;align-items:center}.hero h1{text-align:center;font-size:clamp(52px,6.4vw,96px);line-height:1.12;letter-spacing:-.065em;font-weight:590;position:relative;z-index:2;padding:0 24px}.hero h1 span{display:block}.ribbon{width:100%;height:clamp(280px,26vw,390px);position:relative;margin:-3px 0 -4px;overflow:clip;isolation:isolate}.ribbon-stage{position:absolute;inset:0;perspective:1000px;perspective-origin:50% 50%;transform-style:preserve-3d;contain:layout style}.ribbon-card{position:absolute;top:50%;left:50%;width:150px;height:390px;transform-origin:center;backface-visibility:hidden;will-change:transform;border-radius:6px;overflow:hidden;background:var(--surface);border:1px solid #ffffff24;box-shadow:0 8px 18px #0002}.ribbon-card img{height:100%;width:100%;object-fit:cover;object-position:center}.hero-copy{text-align:center;position:relative;z-index:2;max-width:650px;padding:0 24px}.hero-copy>p{font-size:18px;line-height:1.8;color:var(--muted);letter-spacing:-.02em}.mobile-break{display:none}.hero-actions{margin-top:28px;display:flex;justify-content:center;align-items:center;gap:30px}.text-link{display:inline-flex;gap:16px;align-items:center;font-size:15px;font-weight:600;border-bottom:1px solid var(--line);padding:8px 0}.text-link:hover{border-color:var(--accent);color:var(--accent)}.hero-bottom{position:absolute;bottom:25px;left:var(--gap);right:var(--gap);display:flex;justify-content:space-between;color:var(--muted);font-size:12px;letter-spacing:.01em}.hero-bottom a span{padding-left:16px}
.story{height:310svh;position:relative;margin-top:20px;scroll-margin-top:0}.story-sticky{height:100svh;position:sticky;top:0;overflow:clip}.story-words{position:absolute;top:max(108px,13%);left:50%;transform:translateX(-50%);width:calc(100% - 80px);max-width:1100px;text-align:center;font-size:clamp(34px,4.5vw,70px);line-height:1.33;font-weight:550;letter-spacing:-.055em;z-index:1}.story-words>span{display:block}.story-words .word{display:inline;color:var(--word-start)}.expanding-preview{position:absolute;left:50%;top:54%;transform:translate(-50%,-50%);width:220px;aspect-ratio:2.22;overflow:hidden;border-radius:14px;z-index:2;background:var(--surface);box-shadow:0 20px 80px #0002;will-change:width}.expanding-preview img{width:100%;height:100%;object-fit:cover;object-position:top}.expansion-caption{position:absolute;z-index:3;bottom:9%;left:50%;width:max-content;max-width:86%;transform:translateX(-50%);font-size:18px;text-align:center;opacity:0;color:var(--ink);padding:10px 22px;border-radius:8px;background:var(--bg)}.expansion-caption small{display:block;font-size:12px;margin-top:4px;color:var(--muted)}.story-progress{position:absolute;bottom:35px;left:50%;transform:translateX(-50%);width:80px;height:2px;background:var(--line)}.story-progress span{display:block;width:0;height:2px;background:var(--accent)}
.services{padding-top:150px;padding-bottom:130px}.section-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:50px;margin-bottom:70px}.section-heading>p{max-width:410px;font-size:17px;line-height:1.8;color:var(--muted);padding-bottom:5px}.service-row{border-top:1px solid var(--line);padding:48px 0;display:grid;grid-template-columns:.9fr 1.1fr 64px;gap:55px;align-items:start}.service-row:last-of-type{border-bottom:1px solid var(--line)}.service-type{color:var(--muted);font-size:14px;letter-spacing:.01em}.service-title h3{font-size:clamp(25px,2.5vw,38px);line-height:1.3;margin-top:10px}.service-description>p{max-width:580px;color:var(--ink);font-size:18px;line-height:1.8}.service-description ul{padding:0;margin:26px 0 0;list-style:none;color:var(--muted);font-size:14px}.service-description li{margin-top:5px}.service-description li:before{content:'—';margin-right:12px;color:var(--accent)}.round-link{border:1px solid var(--line);border-radius:50%;width:60px;height:60px;display:grid;place-items:center;font-size:28px}.round-link:hover{background:var(--accent);color:var(--on-accent);border-color:var(--accent)}.service-note{padding-top:36px;font-size:14px;color:var(--muted);line-height:1.9}
.works{padding-top:75px;padding-bottom:150px}.work-image{display:block;position:relative;width:100%;padding:0;overflow:hidden;border:0;border-radius:12px;background:var(--surface);text-align:left}.work-image img{width:100%;height:auto;aspect-ratio:2.22;object-fit:cover;object-position:top;transition:transform .6s cubic-bezier(.2,.65,.25,1)}.work-image:hover img{transform:scale(1.025)}.preview-label{position:absolute;right:20px;bottom:20px;display:flex;gap:28px;background:var(--bg);color:var(--ink);border:1px solid var(--line);padding:11px 17px;font-size:13px;border-radius:7px}.work-caption{padding:22px 0 0;display:flex;justify-content:space-between;gap:15px;align-items:baseline}.work-caption h3{font-size:25px;letter-spacing:-.03em;font-weight:650}.work-caption p{font-size:14px;color:var(--muted);margin-top:3px}.work-caption>span{font-size:12px;color:var(--muted);white-space:nowrap}.work-pair{margin-top:65px;display:grid;grid-template-columns:1fr 1fr;gap:34px}.work-pair .work-image img{aspect-ratio:1.55;object-position:left top}.work-pair .work-caption{flex-wrap:wrap}.work-pair .work-caption h3{font-size:23px}.portfolio-note{margin-top:42px;max-width:820px;font-size:13px;color:var(--muted);line-height:1.8}
.contact{padding-top:100px;padding-bottom:130px;border-top:1px solid var(--line);display:grid;grid-template-columns:1fr 1.05fr;gap:90px}.contact-copy h2{font-size:clamp(45px,5vw,76px)}.contact-copy p{margin-top:28px;font-size:16px;color:var(--muted);line-height:1.9}.contact-line{font-size:120px;color:var(--accent);font-weight:200;line-height:1.5;display:block;margin-top:24px}.contact-preview{max-width:640px;width:100%}.prototype-notice{font-size:13px;color:var(--muted);border-top:1px solid var(--line);padding-top:16px;margin-bottom:30px;line-height:1.7}.prototype-notice strong{display:block;font-weight:650;color:var(--ink);margin-bottom:4px}.form-pair{display:grid;grid-template-columns:1fr 1fr;gap:22px}form label{display:block;font-size:14px;color:var(--ink);margin-bottom:24px}form label>span:not(.contact-input){font-size:12px;color:var(--muted);padding-left:5px}input,select,textarea{display:block;width:100%;border:1px solid var(--line);border-radius:7px;background:var(--surface);color:var(--ink);padding:13px 14px;margin-top:10px;font-size:14px;line-height:1.6;min-width:0}textarea{resize:vertical;min-height:118px}input::placeholder,textarea::placeholder{color:var(--muted);opacity:.9}input:hover,select:hover,textarea:hover{border-color:var(--muted)}.contact-input{display:grid;grid-template-columns:115px 1fr;gap:10px}.form-footnote{font-size:12px;color:var(--muted);margin-top:-9px;margin-bottom:25px}.submit-preview{width:100%;background:var(--surface);color:var(--muted);border-color:var(--line);font-size:14px}.submit-preview:hover{background:var(--surface)}.site-footer{border-top:1px solid var(--line);padding-top:50px;padding-bottom:150px;display:flex;justify-content:space-between;align-items:flex-start;gap:30px;color:var(--muted);font-size:13px}.footer-brand{font-size:28px;font-weight:750;color:var(--ink);letter-spacing:-.06em;line-height:1.1}.footer-brand span{display:block;font-size:12px;font-weight:400;letter-spacing:0;color:var(--muted);margin-top:14px}.back-top{padding:8px 0;border-bottom:1px solid var(--line);white-space:nowrap}
dialog{background:var(--bg);color:var(--ink);border:1px solid var(--line);border-radius:16px;width:calc(100% - 70px);max-width:1400px;max-height:88svh;padding:32px;overscroll-behavior:contain}dialog::backdrop{background:#03070ce6;backdrop-filter:blur(8px)}.dialog-head{display:flex;justify-content:space-between;gap:22px;align-items:flex-start}.dialog-head p,.dialog-scope,.image-notice{font-size:12px;color:var(--muted)}.dialog-head h2{font-size:34px;margin-top:6px}.close-dialog{padding:10px 15px;background:var(--surface);border:1px solid var(--line);border-radius:7px;font-size:14px;flex:none}.close-dialog span{font-size:22px;margin-left:12px}#work-dialog-desc{font-size:14px;color:var(--muted);margin-top:15px}.preview-tabs{display:flex;flex-wrap:wrap;gap:8px;margin:24px 0 12px}.preview-tabs button{background:var(--surface);border:1px solid var(--line);border-radius:6px;padding:9px 14px;font-size:13px;min-height:44px}.preview-tabs button[aria-pressed=true]{background:var(--accent);color:var(--on-accent);border-color:var(--accent)}.image-notice{margin-bottom:18px}.dialog-image-wrap{background:var(--surface);padding:15px;overflow:auto;max-height:55svh;border:1px solid var(--line);border-radius:8px;overscroll-behavior:contain}.dialog-image-wrap img{width:100%;height:auto;max-width:100%;margin:auto}.dialog-image-wrap.is-mobile img{width:375px}.dialog-image-wrap.is-zoom img{max-width:none;width:1513px;margin:0}.dialog-image-wrap.is-mobile.is-zoom img{width:750px}.dialog-scope{margin-top:20px;max-width:1000px}body.dialog-open{overflow:hidden}
@media(min-width:1600px){.hero{padding-top:155px}.ribbon{height:380px}.hero-copy{margin-top:12px}}
@media(max-height:850px) and (min-width:1000px){.hero{min-height:780px;padding-top:120px}.hero h1{font-size:76px}.ribbon{height:290px}.hero-copy>p{font-size:16px}.hero-actions{margin-top:20px}}
@media(max-width:1100px){.nav-shell{gap:20px}.desktop-nav{gap:20px;font-size:13px}.hero{min-height:max(840px,100svh);padding-top:170px}.hero h1{font-size:clamp(54px,7.3vw,78px)}.ribbon{height:310px;margin-top:15px;margin-bottom:10px}.service-row{grid-template-columns:.8fr 1.2fr 50px;gap:30px}.round-link{width:48px;height:48px;font-size:24px}.contact{gap:50px}.section-heading{gap:40px}.section-heading>p{font-size:15px;max-width:340px}.work-pair{gap:24px}.work-pair .work-caption{display:block}.work-pair .work-caption>span{display:block;margin-top:9px}}
@media(max-width:760px){:root{--gap:22px}html{scroll-padding-top:90px}.site-header{top:14px;left:14px;right:14px;gap:9px}.nav-shell{gap:12px;padding:7px 12px 7px 7px;min-height:50px;border-radius:10px}.logo-window{width:112px;height:33px}.logo-window img{width:132px;left:-10px}.desktop-nav{display:none}.menu-toggle{display:flex;flex-direction:column;justify-content:center;gap:5px;width:26px;height:34px;background:transparent;border:0;padding:3px}.menu-toggle span{height:1px;width:20px;background:var(--ink)}.button-small{min-height:50px;font-size:12px;padding:13px 15px;gap:14px;border-radius:9px}.button-small span{font-size:19px}.mobile-nav{top:60px}.hero{padding-top:157px;padding-bottom:80px;min-height:max(800px,100svh)}.hero h1{font-size:clamp(34px,8.25vw,60px);line-height:1.23;letter-spacing:-.065em;padding:0 14px}.ribbon{height:210px;margin-top:7px;margin-bottom:0}.ribbon-card{width:87px;height:240px;border-radius:5px}.hero-copy{padding:0 21px}.hero-copy>p{font-size:15px;line-height:1.85}.mobile-break{display:block}.hero-actions{margin-top:24px;gap:20px;flex-direction:column}.hero-actions .button{min-height:52px;padding:15px 22px;font-size:14px;gap:35px}.hero-actions .text-link{font-size:13px;padding:4px 0}.hero-bottom{display:none}.story{height:300svh;margin-top:20px}.story-words{font-size:clamp(25px,6.35vw,43px);width:calc(100% - 32px);top:25%;line-height:1.45;letter-spacing:-.055em}.expanding-preview{top:58%;width:100px;border-radius:9px}.expansion-caption{bottom:17%;font-size:13px;padding:8px 12px}.expansion-caption small{font-size:12px}.story-progress{bottom:100px}.services{padding-top:90px;padding-bottom:85px}h2{font-size:34px}.section-heading{display:block;margin-bottom:40px}.section-heading>p{font-size:14px;max-width:none;margin-top:24px;line-height:1.85}.service-row{position:relative;grid-template-columns:1fr;gap:25px;padding:32px 0 36px}.service-title h3{font-size:29px;margin-top:6px}.service-type{font-size:12px}.service-description>p{font-size:16px;line-height:1.8}.service-description ul{margin-top:21px;font-size:13px}.round-link{position:absolute;right:0;top:38px;width:44px;height:44px}.service-note{font-size:12px;padding-top:25px}.works{padding-top:55px;padding-bottom:80px}.work-image{border-radius:8px}.featured-work img{aspect-ratio:1.45;object-position:left top}.preview-label{font-size:12px;padding:8px 11px;bottom:12px;right:12px;gap:14px}.work-caption{padding-top:16px;display:block}.work-caption h3{font-size:23px}.work-caption p{font-size:13px}.work-caption>span{display:block;margin-top:9px;font-size:12px}.work-pair{grid-template-columns:1fr;gap:37px;margin-top:38px}.work-pair .work-image img{aspect-ratio:1.45}.portfolio-note{font-size:12px;margin-top:31px}.contact{grid-template-columns:1fr;gap:40px;padding-top:65px;padding-bottom:70px}.contact-copy h2{font-size:44px}.contact-copy p{font-size:14px;margin-top:20px}.contact-line{display:none}.prototype-notice{font-size:12px}.form-pair{gap:15px}form label{font-size:12px}form label>span:not(.contact-input){font-size:12px;padding-left:2px}input,textarea,select{font-size:16px;padding:12px 11px}.contact-input{grid-template-columns:105px 1fr;gap:8px}.form-footnote{font-size:12px}.site-footer{display:block;padding-top:37px;padding-bottom:135px}.footer-brand{font-size:26px}.site-footer p{margin-top:30px;font-size:12px}.back-top{display:inline-block;margin-top:24px;font-size:12px}dialog{width:calc(100% - 22px);padding:19px;max-height:88svh;border-radius:12px}.dialog-head h2{font-size:26px}.dialog-head p{font-size:12px;max-width:180px}.close-dialog{font-size:12px;padding:8px 10px}.close-dialog span{margin-left:5px}.dialog-image-wrap{padding:7px;max-height:48svh}.preview-tabs button{font-size:12px;padding:8px 11px}.image-notice,.dialog-scope{font-size:12px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important}}
html[data-motion=reduced]{scroll-behavior:auto}:root[data-motion=reduced] *{transition:none!important}
@media(min-width:761px){}
@media(min-width:761px) and (max-width:1100px) and (max-height:850px){.hero{padding-top:120px;min-height:800px}.hero h1{font-size:64px}.ribbon{height:220px}.hero-copy>p{font-size:16px}.hero-actions{margin-top:20px}}
@media(max-width:760px){.nav-shell{padding:2px 7px;gap:8px}.brand{height:44px;display:grid;align-items:center}.logo-window{width:100px}.logo-window img{width:120px}.menu-toggle{width:44px;height:44px;padding:12px}.menu-toggle span{width:20px}}

/* Revision: decorative layers stay behind content and never receive input. */
.logo-window.logo-one{width:90px;height:40px}.logo-window.logo-one img{width:100px;left:-5px}
.footer-brand img{width:190px;height:auto;border-radius:7px}
fieldset{border:0;padding:0;margin:0;min-width:0}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}
.phone-consultation{margin-top:28px;display:flex;flex-direction:column;align-items:flex-start;gap:8px}
.phone-consultation>span{font-size:13px;color:var(--muted)}
.phone-consultation>a[href^="tel:"]:not(.button){font-size:clamp(25px,3vw,38px);font-weight:650;letter-spacing:-.03em;color:var(--accent)}
.contact-page{min-height:calc(100svh - 230px);padding-top:150px;padding-bottom:90px;max-width:1080px}
.contact-page h1{font-size:clamp(38px,6vw,72px);line-height:1.2;letter-spacing:-.055em;margin-bottom:30px}
.contact-page>p{color:var(--muted);line-height:1.9;max-width:660px}
.contact-page .phone-consultation{margin:36px 0 48px}
.contact-page .prototype-notice{max-width:660px}
.dot-field{position:absolute;inset:0;width:100%;height:100%;z-index:0;pointer-events:none;user-select:none}
.hero{isolation:isolate}.hero-bottom{z-index:2}.ribbon{z-index:1;pointer-events:none}.hero>.ribbon{overflow:visible}.ribbon-card{box-shadow:none;border:0}
@media(min-width:761px){.hero>.ribbon .ribbon-card{width:200px;height:410px}}
@media(min-width:1101px){.hero>.ribbon{height:300px;margin-top:-48px;margin-bottom:-40px}}
.contact{position:relative;isolation:isolate;overflow:clip;row-gap:40px}
.contact>*:not(.dot-field){position:relative;z-index:1}
.closing-ribbon{grid-column:1/-1;height:300px;margin:0 calc(-1*var(--gap));overflow:clip;pointer-events:none;mask-image:linear-gradient(#000 75%,transparent)}
.closing-ribbon .ribbon-card{width:160px;height:180px;top:50%}
.story-words{pointer-events:none}.expanding-preview{pointer-events:none}
@media(max-width:1200px){
 .desktop-nav{display:none}.menu-toggle{display:flex;flex-direction:column;justify-content:center;gap:5px;width:44px;height:44px;padding:12px;background:transparent;border:0}
 .menu-toggle span{height:1px;width:20px;background:var(--ink)}
 .nav-shell{padding:2px 7px;gap:8px}.brand{height:44px;display:grid;align-items:center}.logo-window{width:100px;height:33px}.logo-window img{width:120px;left:-10px}
 .mobile-nav{top:64px;max-height:calc(100svh - 110px);overflow:auto}
}
@media(max-width:760px){.closing-ribbon{height:200px}.closing-ribbon .ribbon-card{width:112px;height:130px}.contact{row-gap:30px}.story-words{top:max(110px,20%)}}

/* Approved master uses one palette throughout. */



#services,#works{max-width:none}
#services>.section-heading,#services>.service-row,#services>.service-note,#works>.section-heading,#works>.work-index-intro,#works>.work-index,#works>.portfolio-note{max-width:calc(1800px - 2*var(--gap));margin-left:auto;margin-right:auto}
#services>.section-heading>p,#works>.section-heading>p{font-size:18px;font-weight:500;line-height:1.8}
.service-type{font-size:16px;font-weight:550}
.service-description>p{font-size:18px;font-weight:500;line-height:1.85}
.service-criteria{margin:28px 0 0;font-size:16px;line-height:1.75}
.service-criteria>div{display:grid;grid-template-columns:126px minmax(0,1fr);gap:18px;padding:12px 0}
.service-criteria dt{font-weight:650;color:var(--ink)}
.service-criteria dd{margin:0;color:var(--muted);font-weight:500;word-break:keep-all}
.service-title h3{letter-spacing:-.04em}
.service-row .round-link{border-color:var(--control-line,var(--line))}
.service-row .round-link:hover{border-color:var(--accent)}
.service-note{font-size:16px;font-weight:500;line-height:1.85}
.portfolio-note{font-size:16px;line-height:1.8}

.gallery-sequence{display:none;position:relative;height:420svh;width:calc(100% + 2*var(--gap));max-width:1800px;margin:0 0 0 calc((100% - min(1800px,100% + 2*var(--gap)))/2);color:var(--ink)}
.gallery-sequence[data-ready=true]{display:block}
.gallery-sticky{position:sticky;top:0;height:100svh;overflow:clip;isolation:isolate}
.gallery-heading{position:absolute;z-index:3;top:110px;left:var(--gap);right:var(--gap);height:100px;pointer-events:none;text-align:center}
.gallery-heading h3{position:absolute;inset:0;font-size:clamp(34px,3.75vw,60px);font-weight:600;line-height:1.2;letter-spacing:-.04em;text-wrap:balance}
.gallery-heading-end{opacity:0}
.gallery-stage{position:absolute;inset:0;z-index:1;pointer-events:none}
.gallery-tile{position:absolute;left:0;top:0;width:300px;height:182px;transform-origin:0 0;overflow:hidden;border-radius:8px;background:var(--gallery-plate,var(--surface));will-change:transform}
.gallery-tile img{width:100%;height:100%;object-fit:contain;object-position:center}
.gallery-tile-label{position:absolute;left:10px;bottom:8px;max-width:calc(100% - 20px);padding:4px 8px;background:var(--bg);color:var(--ink);border-radius:4px;font-size:12px;font-weight:550;line-height:1.4;white-space:nowrap}
.gallery-focus-caption{position:absolute;z-index:4;left:var(--gap);right:var(--gap);bottom:16px;display:flex;flex-direction:column;align-items:center;gap:12px;text-align:center;opacity:0;visibility:hidden;pointer-events:none}
.gallery-focus-caption p{font-size:18px;font-weight:550;line-height:1.5}
.gallery-focus-caption .button{min-height:52px;font-size:16px}
.gallery-sequence[data-phase=focus] .gallery-focus-caption{opacity:1;visibility:visible;pointer-events:auto}
.gallery-help{position:absolute;z-index:3;bottom:36px;left:var(--gap);right:var(--gap);color:var(--muted);font-size:16px;font-weight:500;text-align:center;pointer-events:none}
.gallery-sequence[data-phase=focus] .gallery-help{visibility:hidden}
.work-index-intro{font-size:16px;line-height:1.8;color:var(--muted);padding-top:44px;margin-bottom:28px}
.gallery-sequence:not([data-ready=true])+.work-index-intro .gallery-repeat-note{display:none}
.work-index{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 40px;list-style:none;padding:0;margin:0}
.work-index li{min-width:0;border-top:1px solid var(--line)}
.work-index-link{display:grid;grid-template-columns:clamp(112px,12vw,168px) minmax(0,1fr);grid-template-rows:auto auto;gap:10px 22px;align-items:center;width:100%;padding:24px 0;border:0;background:transparent;color:var(--ink);text-align:left;border-radius:0}
.work-index-link:hover{background:var(--surface-hover)}
.work-index-image{display:block;grid-row:1/3;background:var(--gallery-plate,var(--surface));overflow:hidden;border-radius:8px}
.work-index-image img{width:100%;height:auto;aspect-ratio:2.22;object-fit:contain}
.work-index-copy{display:flex;min-width:0;flex-direction:column;gap:4px}
.work-index-copy strong{font-size:23px;font-weight:650;line-height:1.35;letter-spacing:-.025em}
.work-index-copy>span,.work-index-copy small{font-size:16px;line-height:1.65;color:var(--muted);font-weight:500}
.work-index-action{grid-column:2;color:var(--accent);font-size:16px;font-weight:650;text-decoration:underline;text-underline-offset:5px}
.work-index-action>span{display:inline-block;padding-left:8px}
.consultation-actions{display:flex;flex-direction:column;align-items:flex-start;gap:24px;margin-top:32px}
.consultation-actions>.phone-consultation{margin-top:0;gap:6px}
.consultation-actions>.phone-consultation>span{font-size:16px}
.consultation-primary{min-width:230px;min-height:60px;font-size:18px}
.expanding-preview picture{display:block;width:100%;height:100%}
.expanding-preview img{object-fit:contain}
.expansion-caption{bottom:24px}
.expansion-caption small{font-size:14px}
html[data-motion=reduced] .gallery-sequence,html[data-motion=reduced] .gallery-repeat-note{display:none}
@media(max-width:1100px){.work-index{gap:0 28px}.work-index-link{gap:10px 18px;grid-template-columns:112px minmax(0,1fr)}}
@media(max-width:760px){
 #services>.section-heading>p,#works>.section-heading>p{font-size:18px;max-width:36ch}
 .service-description>p{font-size:18px}.service-criteria>div{grid-template-columns:112px minmax(0,1fr);gap:14px;padding:10px 0}
 .service-title h3{font-size:30px}.service-note,.portfolio-note{font-size:16px}
 .gallery-sequence{height:400svh}
 .gallery-heading{top:100px;height:100px}
 .gallery-heading h3{font-size:clamp(28px,7vw,40px);line-height:1.35}
 .gallery-focus-caption{bottom:24px;gap:10px}
 .gallery-focus-caption p{font-size:16px}.gallery-focus-caption .button{min-height:50px;padding:13px 18px;gap:20px}
 .gallery-help{font-size:16px;bottom:28px}
 .work-index{grid-template-columns:1fr;gap:0}.work-index-link{grid-template-columns:100px minmax(0,1fr);gap:10px 18px;padding:22px 0}
 .work-index-copy strong{font-size:22px}.work-index-intro{padding-top:30px;margin-bottom:22px}
 .consultation-primary{width:100%;min-width:0;max-width:360px}
 .expansion-caption{bottom:24px;font-size:16px}.expansion-caption small{font-size:14px}
}
/* Master studio palette refinements. */
:root{scrollbar-color:var(--control-line) var(--surface-hover)}
:root body{font-size:18px}
:root :is(#services,#contact,.site-footer){background:var(--surface-hover)}
:root #works{background:var(--bg)}
:root :is(.ribbon-card,.work-index-image){outline:1px solid #bec8d6;outline-offset:-1px;box-shadow:0 8px 20px #17202e14}
:root .gallery-tile{outline:1px solid #bec8d6;outline-offset:-1px}
:root :is(.gallery-tile-label,.preview-label){background:var(--surface);color:var(--ink);font-size:14px}
:root dialog::backdrop{background:#17202e66}
:root :is(input,select,textarea,.close-dialog,.preview-tabs button,.round-link){border-color:var(--control-line)}
:root :is(input,select,textarea){background:var(--surface);color:var(--ink);caret-color:var(--accent)}
:root :is(input,textarea)::placeholder{color:var(--muted);opacity:1}
:root :is(input,select,textarea):focus-visible{border-color:var(--accent)}
:root :is([tabindex="0"],.dialog-image-wrap):focus-visible{outline:3px solid var(--accent);outline-offset:5px}
:root [aria-invalid=true]{border-color:var(--error)}
:root fieldset[disabled] :is(input,select,textarea){opacity:1;color:var(--muted);-webkit-text-fill-color:var(--muted)}
:root button:disabled{opacity:1;background:var(--surface-hover);color:var(--muted);border-color:var(--control-line)}
:root :is(.hero-bottom,.contact-copy p,.prototype-notice,.form-footnote,.image-notice,.dialog-scope,.site-footer p){font-size:16px}
:root :is(form label,.dialog-head p,.close-dialog,.preview-tabs button){font-size:16px}
:root :is(form label>span:not(.contact-input),.back-top){font-size:14px}
:root .footer-brand span{font-size:16px}
@media(max-width:760px){
 :root .hero-copy>p{font-size:17px}
 :root .button-small{font-size:14px;gap:12px}
 :root .hero-actions :is(.button,.text-link){font-size:16px}
 :root :is(.dialog-head p,.close-dialog,.preview-tabs button){font-size:14px}
 :root :is(.image-notice,.dialog-scope){font-size:14px}
}

/* Public phone-consultation layout after removing the inactive preview form. */
.contact-public .contact-copy{grid-column:1/-1;max-width:900px;justify-self:center;text-align:center}
.contact-public .phone-consultation{align-items:center}
.contact-public .consultation-actions{align-items:center}
.contact-public .contact-line{display:none}
