/* One type system for the filled and outline versions of every section. */
:root{--title-weight:500;--title-accent-weight:400;--title-leading:.94;--title-tracking:-.05em;--body-leading:1.5}
.section-heading h2,.directions .section-heading h2,.gallery-heading h2,.contact .section-heading h2{font-size:clamp(58px,7.6vw,118px);font-weight:var(--title-weight);line-height:var(--title-leading);letter-spacing:var(--title-tracking);font-kerning:normal;font-feature-settings:"kern";font-synthesis:none}
.section-heading h2 em,.directions .section-heading h2 em,.gallery-heading h2 em,.portal-lit>.portal-projection h2 em{font-weight:var(--title-accent-weight);font-kerning:inherit;font-feature-settings:inherit;letter-spacing:inherit;line-height:inherit}
/* Outline the merged glyph silhouette to avoid internal font contour seams.
   Only the parent is filtered; both layers keep exactly the same font metrics. */
.portal-surface:not(.portal-projection)>.portal-base h2{filter:url(#outline-text)!important;color:#fff!important;-webkit-text-stroke:0!important}
.portal-surface:not(.portal-projection)>.portal-base h2 em{filter:none!important;color:inherit!important;-webkit-text-stroke:0!important}
.portal-lit>.portal-projection h2,.portal-lit>.portal-projection h2 em,body[data-portal-mode=off] .portal-surface>.portal-base h2,body[data-portal-mode=off] .portal-surface>.portal-base h2 em{filter:none!important;-webkit-text-stroke:0!important;color:#f5f7fb!important}
.portal-lit>.portal-projection h2 em,body[data-portal-mode=off] .portal-surface>.portal-base h2 em{color:#4387ff!important}
.portal-lit>.portal-projection.directions h2 em,body[data-portal-mode=off] .directions.portal-surface>.portal-base h2 em{color:var(--portal-accent)!important;transition:color .4s}
.section-heading>p,.directions .section-heading p,.process .section-heading p,.gallery-heading p{font-size:16px;font-weight:400;line-height:var(--body-leading);max-width:620px;margin:20px auto 0;padding:0}
.section-heading,.directions .section-heading,.process .section-heading,.contact .section-heading,.gallery-heading{margin:18px auto 24px}
.section-label{font-size:12px;font-weight:500;letter-spacing:.1em;line-height:1.6}
.direction-studio h3{font-size:clamp(24px,3.2vw,50px);font-weight:500;letter-spacing:-.04em;line-height:1;min-height:2em;margin-bottom:16px}
.direction-studio p{font-size:16px;line-height:var(--body-leading)}
.directions>.portal-base{padding-top:44px;padding-bottom:38px}
.direction-studios{align-items:stretch}
.direction-content{align-items:flex-start;text-align:left}
.direction-studio p{margin:0;max-width:480px;min-height:4.5em}
.direction-deliverables{display:grid;justify-content:stretch;align-content:start;flex:1;gap:6px;margin:18px 0 0;padding:0;max-width:480px;width:100%;text-align:left}
.direction-deliverables li{display:block;position:relative;font-size:14px;line-height:1.45;padding:0 0 0 17px}
.direction-deliverables li:before{content:'';position:absolute;left:0;top:.52em;width:6px;height:6px;border-radius:50%;background:currentColor;opacity:.9}
.direction-deliverables li:not(:last-child):after{content:none}
.direction-cta.button{align-self:flex-start;justify-self:start;margin-top:22px}
@supports(grid-template-rows:subgrid){
 .direction-studios{grid-template-rows:repeat(5,auto);row-gap:0}
 .direction-studio{display:grid;grid-row:span 5;grid-template-rows:subgrid;row-gap:0}
 .direction-content{display:grid;grid-row:span 4;grid-template-rows:subgrid;row-gap:0}
 .direction-studio p{min-height:0}
}
.hero-meta li{display:inline-flex;align-items:center}
.hero-meta li:before{content:none}
.hero-meta li+li:before{content:'';display:inline-block;flex:none;width:5px;height:5px;border-radius:50%;background:currentColor;opacity:.85;margin-right:14px}

.direction-art{transition:transform .65s cubic-bezier(.22,1,.36,1)}
.round-button{display:grid;place-items:center;line-height:1;padding:0}
.round-button svg{width:28px;height:28px;display:block;fill:none;stroke:currentColor;stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round}
.gallery-controls .round-button{width:52px;height:52px;border-color:#ffffff30;box-shadow:inset 0 1px 0 #ffffff2e,0 2px 8px #0002}
.gallery-controls .round-button:is(:hover,:focus-visible){border-color:#b9d2ff99;background:linear-gradient(145deg,#ffffff21,#ffffff08);color:#b9d2ff}
@media(max-width:760px){.gallery-controls .round-button{width:48px;height:48px}}
.case-counter{font-variant-numeric:tabular-nums;line-height:1}
.side-nav a[href="#works"]{box-shadow:none;color:#9db6d8}
.side-nav a[href="#works"][aria-current]{box-shadow:none}
.contact-dock{transition:opacity .25s,transform .25s,visibility .25s}
.contact-dock.is-hidden{opacity:0;visibility:hidden;transform:translateY(12px);pointer-events:none}

/* Contact glass reuses small static highlights; no extra backdrop sampling. */
.contact-card{gap:16px}
.contact-card>a{border:1px solid #ffffff26;border-radius:22px;background:linear-gradient(145deg,#ffffff16,#ffffff02 48%,#ffffff09),#101116b8;box-shadow:inset 0 1px 0 #ffffff30,inset 0 -1px 0 #ffffff0b,0 6px 22px #0003;min-height:124px;gap:10px}
.contact-card strong{font-size:24px;font-weight:500;line-height:1.25}
.contact-card small{font-size:14px;line-height:1.45;margin-top:4px}
.contact-card .behance-icon,.contact-dock .behance-icon{fill:none;stroke:currentColor;stroke-width:1.4;stroke-linecap:round;stroke-linejoin:round}
.node-detail{min-height:330px;border-radius:16px}
.node-detail h3{font-weight:500;letter-spacing:-.025em;line-height:1.07;margin:10px 0 14px}
.node-detail p{line-height:var(--body-leading)}
.stage-kicker{letter-spacing:.1em}
.stage-result{font-size:14px;line-height:1.5;margin-top:14px;padding-top:12px}
.experience-strip{padding-top:30px}.experience-strip>div{gap:10px}.experience-strip p{line-height:1.5}
.node-canvas{height:660px;border-radius:22px}.node-canvas:before{border-radius:14px}
.process-node{border-radius:22px;font-weight:500;padding:13px 18px}

footer{display:grid;grid-template-columns:minmax(220px,1fr) minmax(0,2fr);align-items:start;text-align:left;gap:48px;padding-top:32px;line-height:1.5}
footer .brand{display:block;line-height:1.2;color:#f1f5fc}footer .brand span{color:#4387ff}
footer>div:first-child>p{font-size:13px;line-height:1.5;max-width:300px}
footer .footer-legal{display:grid;grid-template-columns:1fr 1fr;align-items:start;gap:28px;max-width:none;width:100%;text-align:left;font-size:13px}
.footer-legal details{font:inherit}
.footer-legal>div{min-width:0;max-width:340px}.footer-legal>div:last-child{justify-self:end;text-align:right}
footer .footer-legal p{margin:0 0 8px}.footer-legal p>span{display:block}footer details{margin:0 0 12px}
@media(max-width:1150px){footer{grid-template-columns:1fr;gap:28px}.footer-legal>div{max-width:380px}}
@media(max-width:760px){
 .section-heading h2,.directions .section-heading h2,.gallery-heading h2,.contact .section-heading h2{font-size:clamp(38px,10.5vw,72px);letter-spacing:-.04em;line-height:1}
 .section-heading>p,.directions .section-heading p,.process .section-heading p,.gallery-heading p{font-size:16px;margin-top:18px}
 .directions>.portal-base{padding-top:32px;padding-bottom:32px}
 .direction-studios{gap:28px;grid-template-rows:none}.direction-studio{display:flex;grid-row:auto}.direction-content{display:flex;grid-row:auto}
 .direction-studio h3{font-size:clamp(24px,7.2vw,44px)}.direction-studio p{min-height:0}
 .direction-deliverables{margin-top:16px;flex:none}.direction-cta.button{margin-top:20px}
 .hero-meta{font-size:12px}.hero-meta li+li:before{width:5px;height:5px;margin-right:10px}
 .contact-card{gap:10px}.contact-card>a{min-height:94px;border-radius:20px;justify-content:flex-start;text-align:left;padding:18px 24px}.contact-card strong{font-size:22px}.contact-card small{font-size:14px}
 .node-detail{width:calc(100% - 24px);min-height:360px;top:50%;padding:20px}.node-detail h3{font-size:26px}.node-detail p{font-size:16px}
 .node-canvas{height:900px}.process-node{width:calc(50% - 20px);padding:10px 8px;min-height:48px;font-size:13px;justify-content:center}.node-label{max-width:100%;line-height:1.3}
 footer{padding-bottom:90px;text-align:left}.footer-legal>div:last-child{justify-self:stretch;text-align:left}footer .footer-legal{grid-template-columns:1fr;gap:16px}
}
@media(prefers-reduced-motion:reduce){.direction-art,.contact-dock{transition:none}.direction-art{transform:none!important}}
.experience-strip strong [data-year-counter]{font-size:inherit;color:inherit;vertical-align:baseline;letter-spacing:inherit}

footer .footer-legal p>[data-year-counter="year"]{display:inline}
.direction-copy-line{display:block}
.direction-content>p{text-wrap:balance}

.privacy-link{font-size:13px;line-height:1.4;color:#87919f;justify-self:end;align-self:center;margin-top:12px}.privacy-link:hover{color:#b6d0ff}
@media(max-width:600px){.privacy-link{justify-self:start}}
