/* Local studio refinement: calm hierarchy, composed wrapping and stable movement. */
:is(h1,h2,h3,.card-title){text-wrap:balance}
:is(.card-benefit,.trust-description,.offer-reveal p,.featured-feedback blockquote p,.blog-card-copy>p,.article-intro>p){text-wrap:pretty}
body[data-studio-page=explore] #gallery-title,.blog-page .article-intro h1,.blog-page .blog-intro h1,.blog-page .blog-prose :is(h2,h3){text-wrap:balance}
.card-heading-row{align-items:start;flex-wrap:wrap;column-gap:12px;row-gap:5px}
.card-heading-row .card-title{flex:1 1 160px;min-width:0;font-size:16px;line-height:1.35;letter-spacing:-.025em}
.card-heading-row .card-kind{flex:0 0 auto;line-height:1.6;padding-top:2px}
.card-benefit{line-height:1.65}
.sean-trust #sean-title{max-width:19ch;line-height:1.12}
.sean-trust .trust-description{max-width:47ch}
#enquiry-status:empty{display:none}
#enquiry-status a{color:inherit;text-decoration:underline;text-underline-offset:4px;white-space:nowrap}
.arrival-submit:disabled{cursor:wait;opacity:.65}
#contact :is(input,textarea):focus-visible{outline:0;background:#ffffff09;box-shadow:none}
#contact :is(input,textarea){scroll-margin-block:110px 70px}
.blog-page .blog-card-copy>p:not(.meta){max-width:48ch}
.blog-page .article-intro>p:not(.meta){max-width:60ch}
.blog-page .blog-prose p{max-width:72ch}
.blog-page .article-table{overscroll-behavior-x:contain}
.blog-page .article-table:focus-visible{outline:2px solid #84629c;outline-offset:5px;box-shadow:none}
.blog-page .article-toc a{transition:color .18s ease}
.blog-page .article-toc a:hover{color:#54445f}
.blog-page .article-toc a[aria-current=location]{color:var(--ink);border-left-color:#84629c}
.blog-page .article-next .text-link{display:inline-flex;align-items:center;min-height:44px}
/* Prevent the contact class from ever setting document-level layout. */
html.studio-entering{display:block;min-height:0;background-image:none}
@media(max-width:760px){
 .sean-trust #sean-title{font-size:clamp(30px,8.5vw,40px);max-width:20ch;letter-spacing:-.045em}
 .sean-trust .trust-description{font-size:16px;line-height:1.75;margin-top:22px}
 .sean-trust .trust-intro{gap:30px}
 .sean-trust .trust-portrait{width:100%!important;max-width:330px;justify-self:start!important}
 body[data-studio-page=explore] #gallery-title{max-width:19ch}
 .card-heading-row .card-title{font-size:19px}
 .card-heading-row .card-kind{padding-top:3px}
 .blog-page .article-intro h1{font-size:clamp(32px,8.5vw,44px);line-height:1.13}
 .blog-page .article-intro>p:not(.meta){line-height:1.7}
 .blog-page .blog-prose{font-size:16px;line-height:1.8}
 .blog-page .blog-prose h2{font-size:27px;line-height:1.25}
 .studio-header nav a{min-height:44px;display:inline-flex;align-items:center;justify-content:center}
}
@media(max-width:360px){
 .studio-header.header nav{gap:0}
 .studio-header.header nav a{padding-inline:9px;font-size:12px}
 .card-heading-row .card-title{flex-basis:145px}
 .outcome-pill{left:11px;top:11px}
}
@media(prefers-reduced-motion:reduce){
 html{scroll-behavior:auto!important}
 .arrival-content.is-observed,.arrival-content.is-arrived{opacity:1!important;transform:none!important;transition:none!important}
 .arrival-listening-scene,.offer-scene img,.studio-header nav a,.article-toc a{transition:none!important}
}
@media(forced-colors:active){
 :is(a,button,input,textarea,summary,[tabindex]):focus-visible{outline:2px solid Highlight!important;outline-offset:3px}
 .scene-grain,#hero-grain{display:none}
}
#contact .field-error{display:block;font:400 12px/1.55 Inter,Arial,sans-serif;color:#ffe2d6;margin-top:7px;letter-spacing:0}
#contact [aria-invalid=true]{border-color:#e7b4a2!important}
.tool-ribbon{position:relative}
.tool-ribbon .ribbon-pause{position:absolute;right:-8px;top:29px;display:grid;place-items:center;width:36px;height:36px;padding:10px;border:0;border-radius:50%;background:#f8f8f3eb;color:#514657;cursor:pointer;opacity:0;transition:opacity .2s,background .2s}
.tool-ribbon:hover .ribbon-pause,.tool-ribbon:focus-within .ribbon-pause{opacity:1}
.tool-ribbon .ribbon-pause:hover{background:#e9e5ed}
.ribbon-pause svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:1.5;stroke-linejoin:round;stroke-linecap:round}
@media(hover:none){.tool-ribbon .ribbon-pause{opacity:1}}
@media(prefers-reduced-motion:reduce){.tool-ribbon .ribbon-pause{display:none}}
/* Keep the complete closing invitation in view after proportional desktop scaling. */
@media(min-width:1601px){
 #contact .arrival-content{padding-block:100px 60px}
 #contact #studio-enquiry{row-gap:24px}
}
@media(min-width:1101px) and (max-height:800px){
 #contact .arrival-content{padding-block:90px 48px}
 #contact #studio-enquiry{row-gap:22px}
}
@media(max-width:760px){.blog-page .blog-intro h1{font-size:clamp(32px,8.5vw,42px)}}
/* The page changes through light; its reading position stays still. */
html.studio-entering main,html.studio-entering.studio-entering-ready main{transform:none;transition:none}
/* Let the closing invitation stand alone; scrolling back restores navigation. */
.studio-header.over-dark-scene{opacity:0;visibility:hidden;pointer-events:none}
.studio-header.header.is-scrolled.over-dark-scene{background:rgba(31,27,36,.78);box-shadow:inset 0 1px 0 #ffffff1c,0 6px 24px #0000000f}
@media(prefers-reduced-transparency:reduce){.studio-header.header.is-scrolled.over-dark-scene{background:#26222d;backdrop-filter:none}}
.blog-page .article-table{scrollbar-width:none}
.blog-page .article-table::-webkit-scrollbar{display:none}
.blog-page .article-next .button{display:inline-flex;align-items:center;justify-content:center;gap:16px;min-height:48px;padding:12px 22px;border:1px solid #322e37;border-radius:999px;background:#322e37;color:#faf8f3;font:400 14px/1.5 Inter,Arial,sans-serif;text-decoration:none;transition:background .2s,border-color .2s}
.blog-page .article-next .button:after{content:'→';font-size:19px;line-height:1}
.blog-page .article-next .button:hover{background:#514358;border-color:#514358}
.blog-page .article-next .button:focus-visible{outline:2px solid #84629c;outline-offset:5px}
#contact .arrival-content.is-observed,#contact .arrival-content.is-arrived{transform:none!important}
@media(max-width:760px){#contact .arrival-content{padding-top:104px}}
@media(min-width:1101px) and (max-height:800px){#contact .arrival-content{padding-top:112px}}
.hero-scene-controls button:active{background:#50455824}
.studio-header.header:not(.over-dark-scene) :is(a,button):focus-visible{outline-color:#84629c}

/* The scaled closing form must fit beneath the gathered header at document end. */
@media(min-width:1601px){
 #contact .arrival-content{padding-block:112px 60px}
 #contact .arrival-form-head h3{font-size:46px;line-height:1.15}
 #contact .arrival-invitation{margin-bottom:24px}
 #contact #studio-enquiry{row-gap:18px}
 #contact #studio-enquiry label{padding-top:16px}
 #contact #studio-enquiry input{min-height:50px}
 #contact #studio-enquiry textarea{min-height:96px}
}

/* Dissolve the gathered menu into the closing scene before hiding it. */
.studio-header.header.nav-motion-ready{
 filter:blur(0);
 transition:max-width .65s cubic-bezier(.22,1,.36,1),padding .65s cubic-bezier(.22,1,.36,1),border-radius .65s cubic-bezier(.22,1,.36,1),background-color .5s,border-color .5s,box-shadow .5s,opacity .7s cubic-bezier(.4,0,.2,1),filter .7s cubic-bezier(.4,0,.2,1),visibility 0s linear;
}
.studio-header.header.nav-motion-ready.over-dark-scene{
 filter:blur(7px);
 transition-delay:0s,0s,0s,0s,0s,0s,0s,0s,.7s;
}
@media(prefers-reduced-motion:reduce){
 .studio-header.header.nav-motion-ready{filter:none;transition:none!important}
}

/* Quiet finishing details: nothing moves the surrounding layout. */
.polish-image-loading{opacity:0!important}
:is(.hero-contact-link,.blog-page .text-link,.founder-links a){background-image:linear-gradient(currentColor,currentColor);background-repeat:no-repeat;background-position:left bottom;background-size:0 1px;transition:background-size .45s cubic-bezier(.22,1,.36,1),color .3s}
.character-hero .intro-bottom .hero-contact-link{transition:background-size .45s cubic-bezier(.22,1,.36,1),color .3s,border-color .3s}
:is(.hero-contact-link,.blog-page .text-link,.founder-links a):is(:hover,:focus-visible){background-size:100% 1px}
:is(.hero-contact-link,.explore-all-link)::after,.founder-links .direction-arrow,.blog-page .text-link>span[aria-hidden]{display:inline-block;transition:transform .4s cubic-bezier(.22,1,.36,1)}
:is(.hero-contact-link,.explore-all-link):is(:hover,:focus-visible)::after,.founder-links a:is(:hover,:focus-visible) .direction-arrow,.blog-page .text-link:is(:hover,:focus-visible)>span[aria-hidden]{transform:translateX(3px)}
#contact .arrival-panel .floating-field>.floating-caption{top:1.8rem;font-size:.9rem!important;transform:none;transition:transform .42s cubic-bezier(.22,1,.36,1),color .3s}
#contact .arrival-panel .floating-field:is(.is-focused,.has-value)>.floating-caption{top:1.8rem;font-size:.9rem!important;transform:translateY(-1.8rem) scale(.745)}
#contact .arrival-panel .floating-field.is-focused>.floating-caption{color:#fff8ee!important}
#contact .floating-field :is(input,textarea){background-image:linear-gradient(#fff8eecc,#fff8eecc)!important;background-position:left bottom!important;background-repeat:no-repeat!important;background-size:0 1px!important;transition:background-size .45s cubic-bezier(.22,1,.36,1),border-color .3s,background-color .3s}
#contact .floating-field :is(input,textarea):focus{background-size:100% 1px!important}
#contact .floating-field [aria-invalid=true]{background-image:linear-gradient(#e7b4a2,#e7b4a2)!important}
#arrival-draft:not([hidden]){padding:26px 0 26px 24px;border-left:1px solid #fff8ee55;animation:enquiry-arrived .65s cubic-bezier(.22,1,.36,1) both}
#arrival-draft h4{font-size:clamp(23px,2vw,30px);line-height:1.3;font-weight:400;letter-spacing:-.035em;margin:0 0 14px}
#arrival-draft p{max-width:36ch;line-height:1.7;margin:0;color:#f1edf2cf}
#arrival-draft:focus{outline:none}
@keyframes enquiry-arrived{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}
@media(prefers-reduced-motion:reduce){
 .polish-image-loading{opacity:1!important}
 :is(.hero-contact-link,.blog-page .text-link,.founder-links a,.hero-contact-link::after,.explore-all-link::after,.founder-links .direction-arrow,.blog-page .text-link>span[aria-hidden]),#contact .arrival-panel .floating-caption,#contact .floating-field :is(input,textarea){transition:none!important}
 #arrival-draft:not([hidden]){animation:none}
}

#contact .floating-field :is(input,textarea):focus-visible{box-shadow:none!important;border-bottom-color:#eee9e14d!important}

@media(forced-colors:active){#contact .floating-field :is(input,textarea):focus-visible{outline:2px solid Highlight!important;outline-offset:4px}}

/* Personal flags share the name row and the portrait edges. */
.sean-trust .trust-portrait .founder-links{align-items:center;gap:20px}
.sean-trust .trust-portrait figcaption .founder-flags{display:inline-flex;align-items:center;gap:8px;font-family:"Apple Color Emoji","Segoe UI Emoji",sans-serif;font-size:19px;line-height:1;white-space:nowrap}
.sean-trust .trust-portrait figcaption .founder-flags>span{display:block;font-size:inherit;line-height:1;margin:0}

.sean-trust .trust-portrait figcaption .founder-identity{display:flex;align-items:center;justify-content:space-between;gap:16px}
.sean-trust .trust-portrait figcaption .founder-name{display:block;font-size:inherit;line-height:inherit;margin:0}

@font-face{font-family:"JetBrains Mono";src:url("/service-site/fonts/jetbrains-mono-400-500-latin.woff2") format("woff2");font-weight:400 500;font-style:normal;font-display:swap}
.featured-feedback .festival-context{font-family:"JetBrains Mono",monospace;font-size:7px;font-weight:400;line-height:1.7;letter-spacing:.09em;text-transform:uppercase;margin-top:3px;opacity:.5}

/* Group the festival with its descriptor, separate from the person. */
.featured-feedback figcaption{line-height:1.45}

.featured-feedback figcaption>span:nth-child(2){margin-top:8px}

/* Remove the browser figure margin so the two rules frame equal space. */
.featured-feedback{margin-block:0;padding-block:38px}
@media(max-width:760px){.featured-feedback{padding-block:28px}}

/* Dense reading text should not compete with the glass navigation. */
.blog-page .studio-header.header.is-scrolled{background-color:rgba(250,248,252,.94)}
@media(prefers-reduced-transparency:reduce){.blog-page .studio-header.header.is-scrolled{background-color:#f6f3f8}}
