:root{color-scheme:light;--bg:#f7fafc;--surface:#ffffff;--text:#18374a;--muted:#526b78;--line:#d1e0e7;--accent:#176b87;--accent-hover:#10556d;--on-accent:#ffffff;--cream:#eaf3f7}

*{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:30px}
body{margin:0;background:var(--bg);color:var(--text);font-family:var(--font);font-size:var(--body-size);line-height:1.75;-webkit-font-smoothing:antialiased}
body.menu-open{overflow:hidden}
::selection{background:var(--accent);color:var(--bg)}
a{color:inherit;text-decoration:none}
button,input,select,textarea{font:inherit}
button,a,input,select,textarea,summary{-webkit-tap-highlight-color:transparent}
button{cursor:pointer}
button:disabled{cursor:wait;opacity:.65}
img{display:block;width:100%;height:100%;object-fit:cover}
svg{display:block;width:24px;height:24px;flex-shrink:0}
h1,h2,h3,p{margin:0}
h1,h2,h3{font-weight:400;line-height:1.25;letter-spacing:-.025em}
p{color:var(--muted)}
[hidden]{display:none!important}
a:focus-visible,button:focus-visible,summary:focus-visible{outline:2px solid var(--accent);outline-offset:7px}
input:focus,textarea:focus,select:focus{outline:1px solid var(--accent);outline-offset:2px}
.wrap{width:calc(100% - 96px);max-width:1480px;margin-inline:auto}
.section{padding-top:112px;padding-bottom:112px}
.muted{color:var(--muted)}
.subtle{color:var(--muted);font-size:14px}
.eyebrow{font-size:14px;font-weight:700;letter-spacing:.13em;line-height:1.5;display:inline-flex;align-items:center;gap:10px;text-transform:uppercase}
.status-dot{display:inline-block;width:6px;height:6px;background:var(--accent);border-radius:50%;box-shadow:0 0 0 4px #176b8714;flex-shrink:0}
.button{display:inline-flex;gap:36px;align-items:center;justify-content:space-between;background:var(--accent);color:var(--on-accent);padding:17px 22px;border:1px solid var(--accent);border-radius:5px;font-weight:700;font-size:16px;line-height:1.5;transition:background .2s,transform .2s}
.button:hover{background:var(--accent-hover);border-color:var(--accent-hover);transform:translateY(-2px)}
.button svg{width:19px;height:19px}
.button-small{padding:12px 16px;gap:24px;font-size:16px}
.button-outline{background:transparent;color:var(--text);border-color:#9db5c3}
.button-outline:hover{background:var(--text);color:var(--bg)}
.text-link{display:inline-flex;align-items:center;gap:30px;font-size:16px;padding:7px 0;border-bottom:1px solid #91acbb;transition:color .2s,border-color .2s}
.text-link:hover{color:var(--accent);border-color:var(--accent)}
.text-link svg{width:17px;height:17px;transition:transform .2s}
.text-link:hover svg{transform:translate(2px,-2px)}
.skip-link{position:fixed;z-index:100;top:-80px;left:20px;padding:14px;background:var(--accent);color:var(--on-accent)}
.skip-link:focus{top:10px}
.scroll-progress{position:fixed;left:0;top:0;height:2px;width:100%;background:var(--accent);transform:scaleX(0);transform-origin:0 0;z-index:100}
.site-header{height:108px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);position:relative;z-index:40}
.brand{display:inline-flex;align-items:center;gap:7px;font-size:27px;font-weight:700;letter-spacing:-1.7px;line-height:1}
.brand-mark{width:31px;height:31px;color:var(--accent)}
.registered{font-size:14px;vertical-align:top;display:inline-block;margin-top:3px;margin-left:3px;letter-spacing:0}
.desktop-nav{display:flex;gap:24px;font-size:16px;color:var(--muted)}
.desktop-nav a{transition:color .2s}
.desktop-nav a:hover,.desktop-nav a[aria-current]{color:var(--accent)}
.menu-toggle{display:none}
.mobile-nav{position:fixed;inset:85px 0 0;background:var(--bg);z-index:35;padding:25px;flex-direction:column}
.mobile-nav a{padding:20px 0;border-bottom:1px solid var(--line);font-size:30px;display:flex;justify-content:space-between}
.hero{padding-top:36px;background:radial-gradient(ellipse at 90% 4%,#e5f1f780,transparent 65%)}
.hero-eyebrow{display:flex;align-items:center;justify-content:space-between;margin-bottom:31px}
.hero-location{font-size:14px;letter-spacing:.09em;color:var(--muted)}
.hero-heading{position:relative}
.hero h1{font-size:clamp(40px,6.7vw,104px);font-weight:400;line-height:1.14;letter-spacing:-.025em;position:relative}
.hero-star{font-size:104px;font-weight:400;position:absolute;right:18px;bottom:12px;color:var(--accent);line-height:1;animation:star-turn 40s linear infinite}
.hero-bottom{display:flex;align-items:flex-end;justify-content:space-between;padding:29px 0 39px}
.hero-note{display:flex;gap:18px;align-items:center}
.hero-note p{font-size:16px;line-height:1.75;color:var(--muted)}
.small-cross{font-size:28px;color:var(--muted);font-weight:400}
.hero-intro{width:min(100%,440px);margin-right:9%;display:flex;align-items:flex-start;flex-direction:column;gap:14px}
.hero-intro p{font-size:var(--body-size);line-height:1.75;color:var(--muted)}
.hero-film{height:520px;position:relative;display:block;overflow:hidden;border-radius:6px;background:#18374a;color:#ffffff;box-shadow:0 20px 55px #18374a12}
.hero-film>img{transition:transform 1.2s;object-position:50% 58%}
.hero-film:hover>img{transform:scale(1.025)}
.film-shade{position:absolute;inset:0;background:linear-gradient(180deg,#00000025,#00000005 30%,#00000068 80%,#00000095)}
.film-label{position:absolute;top:27px;left:30px;font-size:14px;font-weight:700;letter-spacing:.13em;display:flex;gap:9px;align-items:center}
.live-dot{width:5px;height:5px;border-radius:50%;background:#c7e6f2}
.film-title{position:absolute;left:30px;bottom:82px;font-size:clamp(32px,3.5vw,58px);line-height:1.16;letter-spacing:-.025em;font-weight:400;text-shadow:0 2px 30px #0004}
.film-title em{font-family:var(--font-display);font-weight:400}
.round-arrow{position:absolute;right:35px;bottom:100px;border:1px solid #ffffff80;border-radius:50%;width:70px;height:70px;display:grid;place-items:center;background:#ffffff0d;backdrop-filter:blur(6px);transition:background .2s,color .2s}
.round-arrow svg{width:28px;height:28px}
.hero-film:hover .round-arrow{background:var(--accent);color:var(--on-accent);border-color:var(--accent)}
.film-bottom{position:absolute;bottom:0;left:30px;right:30px;border-top:1px solid #ffffff55;display:flex;justify-content:space-between;padding:21px 0;font-size:14px;letter-spacing:.09em}
.marquee{overflow:hidden;border-bottom:1px solid var(--line);margin-top:45px;padding:22px 0}
.marquee>div{width:max-content;display:flex;gap:37px;align-items:center;animation:marquee 38s linear infinite}
.marquee span{font-size:32px;font-weight:400;letter-spacing:-.03em;color:#526b78}
.marquee b{color:var(--accent);font-size:37px;font-weight:400;line-height:1}
.section-kicker{border-top:1px solid var(--line);padding-top:23px;margin-bottom:60px;display:flex;align-items:center;justify-content:space-between}
.studio .section-kicker{border:0;padding-top:0}
.studio-layout{display:grid;grid-template-columns:.85fr 1fr;gap:11%;align-items:center}
.studio-visual{height:515px;position:relative;overflow:hidden;border-radius:4px}
.studio-visual>img{filter:saturate(.6);object-position:50% 50%}
.image-caption{position:absolute;bottom:20px;left:23px;right:23px;font-size:14px;letter-spacing:.14em;color:#ffffff;text-shadow:0 1px 6px #000c}
.studio-sticker{position:absolute;right:23px;top:23px;color:var(--on-accent);background:var(--accent);width:85px;height:85px;border-radius:50%;font-size:65px;font-weight:700;line-height:1;text-align:center;transform:rotate(12deg);letter-spacing:-4px}
.studio-sticker span{font-size:29px;vertical-align:super}
.studio-copy h2{font-size:clamp(32px,3.1vw,50px);line-height:1.22;margin-bottom:26px;letter-spacing:-.025em}
.studio-copy>p{font-size:var(--body-size);max-width:430px;margin-bottom:16px;line-height:1.75}
.studio-values{border-top:1px solid var(--line);margin-top:25px;padding-top:22px;display:flex;flex-direction:column;gap:10px;margin-bottom:27px;font-size:16px;color:var(--text)}
.studio-values span::before{content:'↗';color:var(--accent);margin-right:15px}
.services{padding-top:0}
.section-heading{display:flex;justify-content:space-between;align-items:flex-end;gap:70px;margin-bottom:45px}
.section-heading h2{font-size:clamp(40px,4.6vw,72px);line-height:1.15;letter-spacing:-.025em}
.section-heading>p,.section-heading>div{max-width:350px;font-size:var(--body-size);line-height:1.75;margin-bottom:7px}
.service-layout{display:grid;grid-template-columns:1fr 1.55fr;gap:8%;align-items:start}
.service-preview{height:650px;position:sticky;top:30px;overflow:hidden;border-radius:4px}
.service-preview>img{transition:opacity .3s;filter:saturate(.72)}
.preview-overlay{position:absolute;bottom:0;left:0;right:0;padding:28px 24px;background:linear-gradient(transparent,#18374acc);color:#ffffff;display:flex;align-items:center;justify-content:space-between;font-size:14px;letter-spacing:.1em}
.preview-overlay>span:last-child{font-size:42px;color:#c7e6f2;line-height:1}
.service-row{display:grid;grid-template-columns:24px 1fr 25px;gap:19px;padding:25px 0;border-bottom:1px solid var(--line);align-items:start}
.service-row:first-child{border-top:1px solid var(--line)}
.service-num{font-size:14px;color:var(--muted);padding-top:6px}
.service-row h3{font-size:25px;letter-spacing:-.025em;line-height:1.3;margin-bottom:10px;transition:color .2s}
.service-row p{font-size:var(--body-size);line-height:1.75;max-width:480px}
.service-arrow{padding-top:5px}
.service-arrow svg{width:20px;height:20px;transition:transform .25s}
.service-row:hover h3{color:var(--accent)}
.service-row:hover svg{transform:translate(3px,-3px)}
.work{padding-top:0}
.concept-note{display:block;margin-top:13px;color:var(--muted);font-size:14px}
.project-grid{display:grid;grid-template-columns:1fr 1fr;gap:42px 28px}
.project-wide{grid-column:1/-1}
.project-image{height:400px;position:relative;overflow:hidden;border-radius:4px;background:var(--surface)}
.project-wide .project-image{height:550px}
.project-image img{transition:transform .7s,filter .7s;filter:saturate(.72)}
.project-card:hover img{transform:scale(1.035);filter:saturate(1)}
.project-tag{position:absolute;left:20px;top:20px;background:#18374acc;color:#ffffff;border:1px solid #fff4;padding:6px 12px;border-radius:20px;font-size:14px;letter-spacing:.08em;backdrop-filter:blur(7px)}
.project-open{position:absolute;right:20px;bottom:20px;width:48px;height:48px;display:grid;place-items:center;background:var(--surface);color:var(--text);border-radius:50%;transition:background .2s,transform .2s}
.project-open svg{width:20px;height:20px}
.project-card:hover .project-open,.listing-card:hover .project-open{color:var(--on-accent);background:var(--accent);transform:rotate(45deg)}
.project-meta{display:flex;justify-content:space-between;align-items:center;padding-top:21px}
.project-meta .eyebrow{font-size:14px;color:var(--muted)}
.project-meta h3{font-size:25px;margin-top:7px;letter-spacing:-.035em}
.project-meta>span{font-size:25px;color:var(--muted)}
.work-bottom{display:flex;align-items:center;justify-content:space-between;margin-top:55px;padding-top:35px;border-top:1px solid var(--line)}
.work-bottom>p{font-size:var(--body-size);line-height:1.75}
.process{background:var(--cream);color:var(--text)}
.process .section-kicker{border-color:var(--line);font-size:14px}
.process .section-heading{margin-bottom:65px}
.process .section-heading h2{font-size:clamp(35px,4.3vw,65px)}
.process h2 em{font-family:var(--font-display);font-weight:400}
.process-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:30px}
.step-index{display:flex;align-items:center;justify-content:space-between;border-top:1px solid #b6cedb;padding-top:17px;font-size:14px;font-weight:700;margin-bottom:40px}
.step-index>span{font-size:21px;font-weight:400}
.process-step h3{font-size:27px;margin-bottom:17px;letter-spacing:-.025em}
.process-step p{font-size:var(--body-size);line-height:1.75;color:var(--muted);max-width:255px}
.journal .section-kicker{border-top:0;padding-top:0}
.journal-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:26px}
.journal-image{height:255px;overflow:hidden;position:relative;border-radius:4px;margin-bottom:18px}
.journal-image img{transition:transform .65s;filter:saturate(.7)}
.journal-card:hover img{transform:scale(1.04)}
.journal-image>svg{position:absolute;right:14px;bottom:14px;background:var(--surface);color:var(--text);padding:9px;box-sizing:content-box;border-radius:50%;width:17px;height:17px}
.journal-category{display:flex;justify-content:space-between;font-size:14px;text-transform:uppercase;letter-spacing:.04em;color:var(--muted);margin-bottom:14px;gap:12px}
.journal-card h3{font-size:23px;line-height:1.35;letter-spacing:-.035em}
.journal-card>p{font-size:var(--body-size);margin-top:13px;line-height:1.75}
.faq{display:grid;grid-template-columns:1fr 1.45fr;gap:12%;padding-top:20px}
.faq-heading h2{font-size:65px;margin:25px 0;letter-spacing:-.025em}
.faq-heading p{font-size:var(--body-size);line-height:1.75;margin-bottom:20px}
.faq-item{border-bottom:1px solid var(--line)}
.faq-item:first-child{border-top:1px solid var(--line)}
.faq-item summary{list-style:none;cursor:pointer;display:flex;gap:25px;align-items:center;justify-content:space-between;padding:24px 0;font-size:var(--body-size);line-height:1.65}
.faq-item summary::-webkit-details-marker{display:none}
.faq-icon{font-size:22px;font-weight:400;color:var(--accent);transition:transform .2s}
.faq-item[open] .faq-icon{transform:rotate(45deg)}
.faq-item>p{font-size:var(--body-size);line-height:1.75;padding:0 36px 24px 0}
.contact-cta{border-top:1px solid var(--line);padding-top:45px;padding-bottom:75px}
.contact-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:30px}
.contact-spark{font-size:38px;color:var(--accent);line-height:1}
.contact-big{display:flex;align-items:center;justify-content:space-between;font-size:clamp(45px,6vw,95px);line-height:1.18;letter-spacing:-.025em;font-weight:400}
.contact-big>svg{width:100px;height:100px;color:var(--accent);margin-right:20px;transition:transform .3s}
.contact-big:hover>svg{transform:translate(8px,-8px)}
.contact-bottom{display:flex;justify-content:space-between;align-items:flex-end;margin-top:35px}
.contact-bottom p{font-size:var(--body-size);line-height:1.75}
.site-footer{border-top:1px solid var(--line);padding-top:36px}
.footer-top{display:flex;justify-content:space-between;align-items:center;padding-bottom:40px;border-bottom:1px solid var(--line)}
.footer-top .brand{font-size:25px}
.footer-top>p{font-size:14px;letter-spacing:.1em}
.back-top{font-size:14px;color:var(--muted)}
.footer-columns{display:grid;grid-template-columns:2fr 1fr 1fr;gap:30px;padding:45px 0}
.footer-company h2{font-family:var(--font);font-size:16px;font-weight:700;letter-spacing:0;line-height:1.6;margin-bottom:12px}
.footer-company>p{font-size:16px;line-height:1.75;max-width:420px}
.footer-status{display:flex;align-items:center;gap:9px;padding-top:15px}
.footer-status .status-dot{width:4px;height:4px}
.footer-label{display:block;font-size:14px;letter-spacing:.12em;color:var(--muted);margin-bottom:17px}
.footer-columns>div:not(:first-child) a{display:block;width:max-content;max-width:100%;font-size:16px;margin-bottom:10px;overflow-wrap:anywhere}
.footer-columns a:hover{color:var(--accent)}
.footer-bottom{display:flex;justify-content:space-between;border-top:1px solid var(--line);padding:20px 0 25px;font-size:14px;color:var(--muted);gap:15px}
.mobile-contact{display:none;font-size:16px}
.page-intro{padding-top:75px;padding-bottom:65px}
.page-intro h1{font-size:clamp(50px,6.1vw,90px);line-height:1.17;margin:24px 0 28px}
.page-intro>p{font-size:var(--body-size);line-height:1.75;max-width:600px}
.listing-section{padding-top:0}
.filter-bar{display:flex;flex-wrap:wrap;gap:10px;padding:23px 0 35px;border-top:1px solid var(--line)}
.filter-button{padding:10px 18px;border:1px solid var(--line);background:transparent;color:var(--muted);border-radius:30px;font-size:16px;transition:all .2s}
.filter-button span{margin-left:10px}
.filter-button.active,.filter-button:hover{background:var(--accent);border-color:var(--accent);color:var(--on-accent)}
.listing-grid{display:grid;grid-template-columns:1fr 1fr;gap:55px 30px}
.listing-image{height:370px;border-radius:4px;overflow:hidden;position:relative;margin-bottom:20px}
.listing-image img{transition:transform .65s;filter:saturate(.75)}
.listing-card:hover img{transform:scale(1.035)}
.listing-card h2{font-size:30px;line-height:1.3;letter-spacing:-.025em}
.listing-card>p{font-size:var(--body-size);margin-top:13px;max-width:550px;line-height:1.75}
.detail-header{padding-top:30px;padding-bottom:45px}
.breadcrumbs{display:flex;gap:12px;color:var(--muted);font-size:14px;margin-bottom:50px}
.breadcrumbs a:hover{color:var(--accent)}
.detail-header h1{font-size:clamp(44px,5.3vw,80px);line-height:1.2;max-width:1100px;margin:23px 0 25px}
.detail-lead{font-size:var(--body-size);max-width:760px;line-height:1.75}
.detail-header .button{margin-top:30px;font-size:16px}
.service-detail-header h1{margin-bottom:0}
.service-detail-intro{margin-bottom:40px}
.service-detail-intro .detail-lead{margin:0 0 24px}
.service-detail-intro .button{font-size:16px;max-width:100%;white-space:normal}
.detail-hero{height:620px;border-radius:4px;overflow:hidden}
.detail-hero img{object-position:center}
.article-layout{display:grid;grid-template-columns:1fr 2fr;gap:13%}
.article-aside>p{font-size:16px;line-height:1.75;margin:20px 0;max-width:260px}
.article-content{font-size:var(--body-size);line-height:1.75}
.article-content>p{margin-bottom:23px;color:var(--muted);white-space:normal}
.article-content h2{font-size:29px;line-height:1.4;letter-spacing:-.025em;margin:40px 0 20px}
.article-content h2:first-child{margin-top:0}
.article-content a:not(.button){text-decoration:underline;text-underline-offset:4px}
.article-callout{padding:35px;background:var(--cream);border:1px solid var(--line);border-radius:5px;margin-top:45px}
.article-callout p{font-size:var(--body-size);margin-bottom:25px;line-height:1.75}
.related-section{padding-bottom:100px}
.related-section .section-kicker h2{font-size:35px}
.privacy-content{max-width:800px;padding-bottom:100px}
.not-found{min-height:70vh}
.not-found h1{font-size:clamp(45px,6vw,90px);margin:35px 0}
.not-found p{margin-bottom:30px}
.contact-page{display:grid;grid-template-columns:1fr 1.1fr;gap:11%;padding-top:65px;align-items:start}
.contact-page h1{font-size:clamp(48px,5.2vw,80px);line-height:1.22;margin:25px 0;letter-spacing:-.025em}
.contact-page-copy>p{font-size:var(--body-size);line-height:1.75}
.reopening-note{display:flex;gap:18px;margin-top:35px;border-top:1px solid var(--line);padding-top:25px;max-width:430px}
.reopening-note>span{color:var(--accent);font-size:22px}
.reopening-note strong{font-size:16px;font-weight:400}
.reopening-note p{font-size:16px;line-height:1.75;margin-top:9px}
.contact-photo{height:320px;overflow:hidden;border-radius:4px;position:relative;margin-top:35px}
.contact-photo img{object-position:50% 48%;filter:saturate(.65)}
.contact-photo>span{position:absolute;bottom:0;left:0;right:0;font-size:14px;letter-spacing:.1em;padding:28px 20px;background:linear-gradient(transparent,#18374acc);color:#ffffff}
.brief-panel{background:var(--surface);border:1px solid var(--line);padding:36px;border-radius:6px}
.brief-heading h2{font-size:30px;margin:14px 0 12px}
.brief-heading p{font-size:16px;line-height:1.75}
.brief-form{margin-top:32px}
.brief-form label{display:block;font-size:16px;color:var(--text);line-height:1.6;margin-bottom:22px}
.brief-form input:not([type=checkbox]),.brief-form select,.brief-form textarea{display:block;width:100%;margin-top:9px;background:var(--surface);border:1px solid #9db5c3;border-radius:4px;color:var(--text);padding:13px;font-size:16px;color-scheme:light;min-height:45px}
.brief-form input::placeholder,.brief-form textarea::placeholder{color:#627987}
.brief-form textarea{resize:vertical;min-height:125px}
.form-row{display:grid;grid-template-columns:1fr 1fr;gap:20px}
.brief-form .consent{display:flex;gap:12px;font-size:14px;line-height:1.8;align-items:flex-start;color:var(--muted)}
.consent input{accent-color:var(--accent);width:14px;height:14px;flex-shrink:0;margin:3px 0 0}
.consent a{text-decoration:underline;text-underline-offset:3px;color:var(--text)}
.submit-button{width:100%;font-size:16px}
.form-footnote{text-align:center;font-size:14px;margin-top:17px}
.hp-field{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}
.form-message{padding:19px;margin-top:25px;border:1px solid;border-radius:4px;font-size:16px}
.form-message strong{display:block;font-size:16px;margin-bottom:8px}
.form-message p{color:inherit}
.form-message.success{background:#e9f5f1;color:#21634f;border-color:#a5cec1}
.form-message.error{background:#fff1ed;color:#923d2d;border-color:#e3b4a6}
.will-reveal{opacity:0;transform:translateY(25px);transition:opacity .75s,transform .75s}
.will-reveal.visible{opacity:1;transform:none}
@keyframes marquee{to{transform:translateX(-50%)}
}
@keyframes star-turn{to{transform:rotate(360deg)}
}

@media(min-width:1600px){.hero-film{height:620px}
.hero-bottom{padding-bottom:50px}
.hero-intro{width:min(100%,440px)}
.hero-intro p{font-size:var(--body-size);line-height:1.75}
.hero-note p{font-size:16px;line-height:1.75}
.hero-location{font-size:14px}
.hero-eyebrow .eyebrow{font-size:14px}
.service-row{padding-block:32px}
.service-preview{height:710px}
}

@media(max-width:1100px){.wrap{width:calc(100% - 64px)}
.desktop-nav{gap:24px;font-size:16px}
.brand{font-size:24px}
.header-cta{gap:18px}
.hero-star{font-size:80px;right:0}
.hero-intro{margin-right:0;width:min(100%,440px)}
.hero-film{height:460px}
.section{padding-block:85px}
.studio-layout{gap:7%}
.studio-visual{height:440px}
.studio-copy h2{font-size:34px}
.services,.work{padding-top:0}
.service-layout{gap:5%;grid-template-columns:1fr 1.4fr}
.service-row{gap:13px;padding:22px 0}
.service-row h3{font-size:21px}
.service-preview{height:660px}
.project-wide .project-image{height:470px}
.project-image{height:340px}
.process-grid{gap:22px}
.process-step h3{font-size:23px}
.journal-image{height:215px}
.journal-card h3{font-size:21px}
.faq{gap:8%;padding-top:0}
.contact-big>svg{width:70px;height:70px;margin-right:0}
.contact-page{gap:6%}
.brief-panel{padding:27px}
.form-row{gap:15px}
.detail-hero{height:480px}
}

@media(max-width:800px){.wrap{width:calc(100% - 44px)}
.site-header{height:85px}
.desktop-nav{display:none;font-size:16px;gap:24px}
.header-cta{margin-left:auto;margin-right:25px}
.menu-toggle{display:flex;flex-direction:column;gap:6px;width:32px;height:35px;justify-content:center;align-items:center;background:none;border:0;color:inherit;padding:0}
.menu-toggle>span{width:24px;height:1px;background:var(--text);transition:transform .2s}
.menu-toggle[aria-expanded=true]>span:first-child{transform:translateY(3.5px) rotate(45deg)}
.menu-toggle[aria-expanded=true]>span:last-child{transform:translateY(-3.5px) rotate(-45deg)}
.mobile-nav:not([hidden]){display:flex}
.hero{padding-top:27px}
.hero-eyebrow{margin-bottom:30px}
.hero-location{font-size:14px}
.hero h1{font-size:clamp(40px,6.7vw,104px)}
.hero-star{font-size:65px;bottom:3px;right:0}
.hero-intro{width:min(100%,440px);font-size:14px}
.hero-film{height:440px}
.film-title{font-size:42px}
.studio-layout{gap:5%;grid-template-columns:.85fr 1fr}
.studio-visual{height:420px}
.studio-copy h2{font-size:28px}
.studio-copy>p{font-size:var(--body-size);line-height:1.75}
.section-kicker{margin-bottom:40px}
.section-heading{gap:30px}
.section-heading h2{font-size:43px}
.section-heading>p,.section-heading>div{max-width:270px;font-size:var(--body-size);line-height:1.75}
.service-preview{height:690px}
.service-row h3{font-size:19px}
.service-row p{font-size:var(--body-size);line-height:1.75}
.service-row{grid-template-columns:15px 1fr 20px;gap:12px}
.service-num{font-size:14px}
.project-wide .project-image{height:430px}
.project-image{height:300px}
.project-meta h3{font-size:22px}
.process-grid{grid-template-columns:1fr 1fr;gap:40px 35px}
.process-step p{max-width:none;font-size:var(--body-size);line-height:1.75}
.step-index{margin-bottom:25px}
.journal-grid{gap:20px}
.journal-image{height:180px}
.journal-card h3{font-size:18px}
.journal-category{font-size:14px;flex-wrap:wrap}
.faq{grid-template-columns:.8fr 1.2fr;gap:7%}
.faq-heading h2{font-size:48px}
.faq-item summary{font-size:var(--body-size)}
.contact-big{font-size:7vw}
.contact-big>svg{width:55px;height:55px}
.footer-top>p{display:none}
.footer-columns{grid-template-columns:1.5fr 1fr 1fr;gap:20px}
.footer-bottom>span:last-child{display:none}
.contact-page{grid-template-columns:1fr;gap:40px}
.contact-page-copy{display:grid;grid-template-columns:1fr 1fr;column-gap:35px}
.contact-page-copy>.eyebrow{grid-column:1/-1}
.contact-page-copy h1{grid-column:1}
.contact-page-copy>p{grid-column:1;font-size:var(--body-size);line-height:1.75}
.contact-page-copy .reopening-note{grid-column:1}
.contact-photo{grid-column:2;grid-row:2/5;height:100%;max-height:400px;margin-top:25px}
.brief-panel{max-width:650px;width:100%;margin:0 auto}
.contact-page h1{font-size:50px}
.listing-image{height:290px}
.listing-card h2{font-size:25px}
.detail-hero{height:400px}
.article-layout{grid-template-columns:1fr 2.5fr;gap:7%}
.article-content{font-size:var(--body-size);line-height:1.75}
.article-content h2{font-size:26px}
}

@media(max-width:560px){body{font-size:var(--body-size);line-height:1.75}
.wrap{width:calc(100% - 36px)}
.site-header{height:77px}
.brand{font-size:24px}
.brand-mark{width:27px;height:27px}
.header-cta{display:none}
.mobile-nav{top:77px}
.hero{padding-top:27px}
.hero-eyebrow{margin-bottom:30px}
.hero-location{display:none}
.hero-eyebrow .eyebrow{font-size:14px;letter-spacing:.1em}
.hero h1{font-size:clamp(40px,6.7vw,104px);line-height:1.24;letter-spacing:-.025em}
.hero-star{position:static;display:block;font-size:41px;width:max-content;line-height:1;margin-top:25px}
.hero-bottom{display:block;padding:19px 0 30px}
.hero-note{display:none}
.hero-intro{width:min(100%,440px);max-width:330px;gap:12px}
.hero-intro p{font-size:var(--body-size);line-height:1.75}
.hero-film{height:425px;border-radius:4px}
.hero-film>img{object-position:55% 50%}
.film-label{left:20px;top:20px;font-size:14px}
.film-title{left:20px;bottom:85px;font-size:34px;max-width:270px}
.round-arrow{width:42px;height:42px;right:20px;bottom:89px;background:#1115}
.round-arrow svg{width:19px;height:19px}
.film-bottom{left:20px;right:20px;font-size:14px;padding:20px 0}
.film-bottom>span:nth-child(2){display:none}
.marquee{margin-top:28px;padding:19px 0}
.marquee>div{gap:25px}
.marquee span{font-size:24px}
.marquee b{font-size:27px}
.section{padding-block:65px}
.section-kicker{margin-bottom:32px;padding-top:19px}
.section-kicker .subtle{display:none}
.eyebrow{font-size:14px}
.studio-layout{display:flex;flex-direction:column-reverse;gap:30px}
.studio-copy{width:100%}
.studio-copy h2{font-size:33px;line-height:1.23}
.studio-copy>p{font-size:var(--body-size);line-height:1.75}
.studio-values{gap:9px;font-size:16px}
.studio-visual{height:375px;width:100%}
.studio-sticker{width:70px;height:70px;font-size:54px}
.studio-sticker span{font-size:22px}
.services,.work{padding-top:0}
.section-heading{display:block;margin-bottom:29px}
.section-heading h2{font-size:40px;line-height:1.2}
.section-heading>p,.section-heading>div{max-width:none;margin-top:23px;font-size:var(--body-size);line-height:1.75}
.service-layout{display:flex;flex-direction:column;gap:25px}
.service-preview{position:relative;top:0;height:330px;width:100%}
.service-preview>img{object-position:50% 40%}
.service-list{width:100%}
.service-row{grid-template-columns:19px 1fr 20px;gap:15px;padding:23px 0}
.service-row h3{font-size:22px}
.service-row p{font-size:var(--body-size);line-height:1.75}
.service-num{font-size:14px}
.project-grid{grid-template-columns:1fr;gap:35px}
.project-wide{grid-column:auto}
.project-wide .project-image,.project-image{height:345px}
.project-meta h3{font-size:25px}
.work-bottom{align-items:flex-start;flex-direction:column;gap:22px;margin-top:35px;padding-top:25px}
.process .section-kicker>span:last-child{display:none}
.process .section-heading{margin-bottom:35px}
.process .section-heading h2{font-size:36px;line-height:1.25}
.process-grid{grid-template-columns:1fr;gap:30px}
.process-step{display:grid;grid-template-columns:40px 1fr;gap:8px 17px;border-top:1px solid #b6cedb;padding-top:20px}
.step-index{border:0;padding:0;margin:0;align-self:start;font-size:14px;line-height:2}
.step-index span{display:none}
.process-step h3{font-size:26px;margin:0;align-self:start}
.process-step p{grid-column:2;margin-top:8px;font-size:var(--body-size);line-height:1.75}
.journal-grid{grid-template-columns:1fr;gap:35px}
.journal-image{height:270px}
.journal-card h3{font-size:25px}
.journal-category{font-size:14px;margin-bottom:13px}
.journal-card>p{font-size:var(--body-size);line-height:1.75}
.journal .section-kicker>.text-link{font-size:16px;gap:10px}
.journal .section-heading h2{font-size:36px}
.faq{grid-template-columns:1fr;gap:35px;padding-top:0}
.faq-heading h2{font-size:45px;margin:20px 0}
.faq-heading p{font-size:var(--body-size);line-height:1.75}
.faq-item summary{font-size:var(--body-size);padding:23px 0}
.faq-item>p{font-size:var(--body-size);line-height:1.75}
.contact-cta{padding-top:28px;padding-bottom:45px}
.contact-top{margin-bottom:26px;gap:20px}
.contact-top .eyebrow{font-size:14px;letter-spacing:.08em}
.contact-spark{font-size:30px}
.contact-big{font-size:10vw;position:relative;line-height:1.25;letter-spacing:-.025em}
.contact-big>svg{width:28px;height:28px;align-self:flex-end;margin-bottom:10px}
.contact-bottom{flex-direction:column;align-items:flex-start;gap:25px;margin-top:25px}
.contact-bottom p{font-size:var(--body-size);line-height:1.75}
.footer-top{padding-bottom:28px}
.footer-top .brand{font-size:23px}
.back-top{font-size:14px}
.footer-columns{grid-template-columns:1fr 1fr;gap:30px 20px;padding:30px 0}
.footer-company{grid-column:1/-1}
.footer-company h2{font-size:16px}
.footer-company>p{font-size:16px;line-height:1.75}
.footer-label{font-size:14px}
.footer-columns>div:not(:first-child) a{font-size:16px}
.footer-bottom{font-size:14px;flex-direction:column;gap:9px;padding-bottom:90px}
.mobile-contact{position:fixed;bottom:16px;left:18px;right:18px;display:flex;align-items:center;justify-content:space-between;background:var(--accent);color:var(--on-accent);border-radius:5px;padding:14px 20px;font-size:16px;z-index:30;box-shadow:0 8px 28px #18374a26;font-weight:700}
.mobile-contact svg{width:18px;height:18px}
.page-contact .mobile-contact{display:none}
.page-contact .footer-bottom{padding-bottom:30px}
.page-intro{padding-top:45px;padding-bottom:35px}
.page-intro h1{font-size:42px;margin-top:20px}
.page-intro>p{font-size:var(--body-size);line-height:1.75}
.listing-section{padding-top:0}
.filter-bar{gap:8px}
.filter-button{font-size:16px;padding:9px 13px}
.listing-grid{grid-template-columns:1fr;gap:35px}
.listing-image{height:315px}
.listing-card h2{font-size:27px}
.listing-card>p{font-size:var(--body-size);line-height:1.75}
.detail-header{padding-top:23px;padding-bottom:30px}
.breadcrumbs{margin-bottom:35px;font-size:14px}
.detail-header h1{font-size:39px;margin:20px 0}
.detail-lead{font-size:var(--body-size);line-height:1.75}
.detail-header .button{font-size:16px;gap:20px}
.detail-hero{height:340px}
.article-layout{display:flex;flex-direction:column;gap:30px;padding-top:35px}
.article-aside{border-bottom:1px solid var(--line);padding-bottom:25px}
.article-aside>p{max-width:none;margin:12px 0;font-size:16px;line-height:1.75}
.article-content{font-size:var(--body-size);line-height:1.75}
.article-content h2{font-size:26px}
.article-callout{padding:23px;margin-top:30px}
.article-callout .button{font-size:16px;gap:20px}
.related-section{padding-bottom:50px}
.related-section .section-kicker h2{font-size:27px}
.related-section .text-link{font-size:16px;gap:15px}
.contact-page{padding-top:35px;gap:30px}
.contact-page-copy{display:block}
.contact-page-copy>.eyebrow{font-size:14px}
.contact-page h1{font-size:50px;margin:22px 0}
.contact-page-copy>p{font-size:var(--body-size);line-height:1.75}
.reopening-note{margin-top:25px;padding-top:22px}
.contact-photo{display:none}
.brief-panel{padding:24px 20px}
.brief-heading h2{font-size:28px}
.brief-form{margin-top:27px}
.form-row{grid-template-columns:1fr;gap:0}
.brief-form label{font-size:16px}
.brief-form input:not([type=checkbox]),.brief-form select,.brief-form textarea{font-size:16px;padding:14px;min-height:48px}
.brief-form .consent{font-size:14px}
.submit-button{font-size:16px;gap:20px}
.form-footnote{font-size:14px}
.not-found h1{font-size:43px}
.privacy-content{padding-top:20px;padding-bottom:60px}
}

@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}
*,*::before,*::after{animation:none!important;transition:none!important}
.will-reveal{opacity:1;transform:none}
}


/* Editorial accents use serif; article text and interface retain the sans family. */
.hero h1,.film-title,.studio-copy h2,.section-heading h2,.faq-heading h2,
.contact-big,.page-intro h1,.contact-page h1,.not-found h1 {
  font-family:var(--font-display);font-weight:400;letter-spacing:-.025em;
}
.article-content {max-width:68ch;min-width:0;overflow-wrap:break-word;}
.article-content h2,.article-content h3,.detail-header h1 {font-family:var(--font);letter-spacing:-.02em;}
.hero-bottom,.footer-top,.footer-bottom,.contact-bottom,.section-kicker {gap:24px;}
.film-bottom {gap:20px;flex-wrap:wrap;line-height:1.5;}
.film-title {right:110px;}
.hero-eyebrow {gap:24px;flex-wrap:wrap;}
.journal-category {flex-wrap:wrap;}
.journal-card,.service-row>div,.footer-columns>div,.contact-page-copy,.brief-panel {min-width:0;}
.contact-big>span {min-width:0;}
@media(max-width:1100px){
  .site-header{height:85px;gap:20px;}
  .desktop-nav{display:none;}
  .header-cta{margin-left:auto;margin-right:12px;}
  .menu-toggle{display:flex;flex-direction:column;gap:6px;width:36px;height:44px;justify-content:center;align-items:center;background:none;border:0;color:var(--text);flex-shrink:0;}
  .menu-toggle span{display:block;width:24px;height:1px;background:currentColor;}
  .mobile-nav:not([hidden]){display:flex;overflow-y:auto;}
  .process-grid{grid-template-columns:repeat(2,minmax(0,1fr));}
  .journal-grid{grid-template-columns:repeat(2,minmax(0,1fr));}
}
@media(max-width:600px){
  .hero-intro{max-width:none;}
  .site-header{height:77px;gap:16px;}
  .header-cta{display:none;}
  .mobile-nav{top:77px;}
  .hero h1{font-size:clamp(36px,10.2vw,58px);line-height:1.25;}
  .film-title{font-size:clamp(30px,7.8vw,42px);right:76px;bottom:100px;max-width:none;}
  .film-bottom{font-size:14px;gap:10px;}
  .film-bottom>span:nth-child(2){display:none;}
  .process-grid,.journal-grid{grid-template-columns:1fr;}
  .process-step p{max-width:none;}
  .article-content{max-width:none;}
  .breadcrumbs{flex-wrap:wrap;}
  .footer-top,.footer-bottom{flex-wrap:wrap;}
  .footer-columns{grid-template-columns:1fr 1fr;gap:32px 20px;}
  .footer-company{grid-column:1/-1;}
  .contact-big{font-size:clamp(36px,9.5vw,55px);gap:12px;}
  .contact-big>svg{width:42px;height:42px;margin-right:0;}
  .journal .section-kicker{align-items:flex-start;gap:18px;flex-wrap:wrap;}
  .related-section .section-kicker{align-items:flex-start;flex-wrap:wrap;}
  .button{gap:20px;max-width:100%;}
}

/* Gạo Studio wordmark: a quiet serif signature and a rice-grain emblem. */
.brand,.page-wedding .brand,.site-footer .brand {
  font-family:var(--font-display);font-weight:400;font-size:34px;
  letter-spacing:-.035em;line-height:1.25;gap:10px;text-transform:lowercase;
}
.brand-mark {width:32px;height:36px;}
.brand>.w-brand-label {font-family:var(--font);text-transform:uppercase;letter-spacing:.04em;}
.studio-sticker {display:grid;place-items:center;}
.studio-sticker .brand-mark {width:54px;height:60px;color:var(--bg);}
.contact-addresses {display:grid;gap:22px;margin-top:30px;padding-top:26px;border-top:1px solid var(--line);}
.contact-address-item h2 {font-family:var(--font);font-size:16px;font-weight:700;line-height:1.5;letter-spacing:0;margin:0 0 8px;}
.contact-address-item p {font-size:18px;line-height:1.7;color:var(--text);}
.contact-address-item .address-note {font-size:16px;color:var(--muted);margin-top:5px;}
.footer-company>p+p {margin-top:14px;}
@media(max-width:800px){
  .contact-page-copy .contact-addresses {grid-column:1/-1;}
}
@media(max-width:600px){
  .brand,.page-wedding .brand,.site-footer .brand {font-size:30px;}
  .brand-mark {width:28px;height:32px;}
  .contact-address-item p {font-size:18px;}
}
