
:root{--paper:#f9f6ef;--ivory:#f3ede3;--sand:#e8dfd0;--olive:#58624b;--walnut:#715440;--burgundy:#79505c;--espresso:#302720;--line:#d8d0c4}
body{overflow-x:hidden}
.site-header{background:rgba(249,246,239,.94);backdrop-filter:blur(15px);-webkit-backdrop-filter:blur(15px);position:sticky;top:0}
.site-header nav a{transition:color .2s,border-color .2s}
.home-hero{position:relative;isolation:isolate;background:var(--ivory);overflow:hidden}
.home-hero:before{content:"";position:absolute;inset:0 auto 0 0;width:48%;background:radial-gradient(circle at 22% 82%,#d7c4b338,transparent 50%);pointer-events:none;z-index:1}
.hero-photo{isolation:isolate}
.hero-photo>img{filter:saturate(.9) contrast(1.02);object-position:center center;transition:transform 1.25s cubic-bezier(.2,.7,.2,1)}
.hero-photo:hover>img{transform:scale(1.035)}
.hero-photo:after{background:linear-gradient(90deg,#2a211c16,transparent 65%)}
.hero-copy{overflow:visible;padding-bottom:105px}
.hero-copy .eyebrow{font-size:13px}
.hero-copy h1{line-height:1.28;letter-spacing:-.015em}
.hero-copy>p{line-height:1.85}
.hero-figure{width:clamp(210px,23vw,380px);max-width:none;height:auto;left:39%;bottom:-4%;z-index:3;opacity:1;filter:drop-shadow(0 18px 24px #362a231c);transform-origin:bottom center;pointer-events:none}
.hero-stamp{display:flex;flex-direction:column;width:122px;height:122px;margin-top:38px;line-height:1.4;transform:rotate(-8deg);background:#ffffff80;backdrop-filter:blur(5px)}
.hero-stamp strong{font:500 38px/1 var(--display);color:var(--olive)}
.hero-stamp span{font:600 11px/1.45 var(--sans)}
.opening-line{position:relative;overflow:hidden}
.opening-line:before{content:"FLOW";position:absolute;left:2%;top:-40px;font:700 clamp(120px,22vw,320px)/1 var(--sans);color:#6d786309;pointer-events:none}
.service-option{transition:background .25s,color .25s,padding .25s}
.service-option:hover{padding-right:27px}
.service-visual img{mix-blend-mode:multiply;animation:illustration-enter .55s cubic-bezier(.2,.75,.2,1) both}
.service-feature-copy>*{animation:copy-enter .55s cubic-bezier(.2,.75,.2,1) both}
.service-feature-copy>*:nth-child(2){animation-delay:.07s}.service-feature-copy>*:nth-child(3){animation-delay:.13s}.service-feature-copy>*:nth-child(4){animation-delay:.19s}
.photo-break>img{filter:saturate(.9) contrast(1.03) brightness(.9)}
.step{position:relative;overflow:hidden;transition:transform .25s,box-shadow .25s}
.step:hover{transform:translateY(-5px);box-shadow:0 20px 35px #30272012}
.step-number{font-variant-numeric:tabular-nums}
.article-card{transition:transform .3s,box-shadow .3s}
.article-card:hover{transform:translateY(-5px);box-shadow:0 22px 42px #30272012}
.article-visual{background:var(--ivory)}
.article-visual img{mix-blend-mode:multiply}
.editorial-hero{position:relative;isolation:isolate;overflow:hidden}
.editorial-hero:before{content:"";position:absolute;width:min(35vw,410px);aspect-ratio:1;border-radius:50%;background:#e7dccb;left:5%;top:8%;z-index:-1}
.editorial-hero>img{position:relative;max-height:390px;filter:drop-shadow(0 20px 30px #40332815)}
.article-lead-art,.article-inline-art{background:var(--ivory);isolation:isolate}
.article-lead-art{height:min(58vw,500px);min-height:330px}
.article-lead-art img{object-fit:contain;mix-blend-mode:multiply}
.article-lead-art.cutout-art{background:radial-gradient(circle at center,#eee7da 0,#f9f6ef 68%);overflow:visible}.article-lead-art.cutout-art img{mix-blend-mode:normal;filter:drop-shadow(0 22px 24px #30272016)}
.article-body section{position:relative}
.article-body section:nth-of-type(2){display:grid;grid-template-columns:minmax(0,1fr) minmax(240px,.8fr);column-gap:32px;align-items:center}
.article-body section:nth-of-type(2) h2{grid-column:1/-1}
.article-body section:nth-of-type(2) p{grid-column:1;grid-row:2}
.article-body section:nth-of-type(2) .article-inline-art{grid-column:2;grid-row:2;margin:0;height:430px}
.article-body section:nth-of-type(2) .article-inline-art img{object-fit:contain}
.faq-item{transition:background .2s,padding .2s}
.faq-item:hover{background:#fff7;padding-inline:12px}
.faq-group{margin-top:28px}
.faq-group h3{margin-bottom:4px}
.motion-ready .reveal{opacity:0;transform:translateY(28px);transition:opacity .7s ease,transform .7s cubic-bezier(.2,.75,.2,1)}
.motion-ready .reveal.is-visible{opacity:1;transform:none}
.motion-ready .hero-photo>img{animation:photo-assemble 1.15s cubic-bezier(.2,.75,.2,1) both}
.motion-ready .hero-copy h1{animation:copy-enter .8s .12s both}
.motion-ready .hero-copy>p{animation:copy-enter .8s .25s both}
.motion-ready .hero-actions{animation:copy-enter .8s .36s both}
.motion-ready .hero-figure{animation:character-arrive 1.05s .42s cubic-bezier(.2,.75,.2,1) both}
@keyframes photo-assemble{from{opacity:.45;transform:scale(1.13) translateX(24px)}to{opacity:1;transform:none}}
@keyframes copy-enter{from{opacity:0;transform:translateY(22px)}to{opacity:1;transform:none}}
@keyframes illustration-enter{from{opacity:.3;transform:scale(.88) rotate(-2deg)}to{opacity:1;transform:none}}
@keyframes character-arrive{from{opacity:0;transform:translateY(40px) scale(.87) rotate(4deg)}to{opacity:1;transform:none}}
@media(max-width:1000px){.hero-figure{left:35%;width:26vw}.hero-copy{padding-bottom:90px}}
@media(max-width:700px){
  .site-header{padding:12px 16px 6px;gap:4px}.site-header nav{display:flex;flex-wrap:nowrap;overflow-x:auto;width:100%;gap:22px;padding:2px 0 8px;scrollbar-width:none}.site-header nav::-webkit-scrollbar{display:none}.site-header nav a{white-space:nowrap;font-size:13px;min-height:36px}
  .home-hero{display:flex;flex-direction:column}.hero-photo{order:1;height:360px;width:100%}.hero-photo>img{object-position:center 47%}.hero-copy{order:2;min-height:0;padding:42px 20px 45px}.hero-copy h1{font-size:clamp(38px,10vw,52px);max-width:580px;margin:11px 0 16px}.hero-copy>p{max-width:100%;font-size:17px;padding-left:76px}.hero-actions{margin-top:20px}.hero-figure{left:3%;top:170px;bottom:auto;width:clamp(142px,39vw,210px);max-width:none}.hero-stamp{margin-top:28px;width:95px;height:95px}.hero-stamp strong{font-size:30px}.hero-stamp span{font-size:10px}
  .opening-line{padding-block:52px}.opening-line p{font-size:clamp(24px,7vw,36px)}
  .service-option{min-height:75px}.service-feature{border-radius:3px}.service-visual{height:330px}.service-feature-copy{padding:28px}
  .photo-break{height:410px}.photo-break>img{object-position:center 56%}
  .editorial-hero{display:grid;grid-template-columns:1fr 32%;min-height:0;padding-block:44px;gap:8px}.editorial-hero h1{font-size:clamp(34px,9vw,50px)}.editorial-hero p{font-size:16px}.editorial-hero>img{display:block;max-height:250px;align-self:end}.editorial-hero:before{width:38vw;left:1%;top:35%}
  .article-body section:nth-of-type(2){display:block}.article-body section:nth-of-type(2) .article-inline-art{height:320px;margin:26px 0 0}.article-lead-art{height:300px;min-height:0}.article-body h2{font-size:31px}.article-body p{font-size:18px;line-height:1.9}
  .studio-hero>img{height:420px}.faq-section{padding-block:70px}
}
@media(max-width:420px){.hero-photo{height:310px}.hero-figure{top:155px;width:150px}.hero-copy h1{font-size:39px}.hero-copy>p{padding-left:35px}.editorial-hero{grid-template-columns:1fr 28%}.editorial-hero>img{max-height:180px}}
@media(prefers-reduced-motion:reduce){.motion-ready .reveal,.motion-ready .hero-photo>img,.motion-ready .hero-copy h1,.motion-ready .hero-copy>p,.motion-ready .hero-actions,.motion-ready .hero-figure,.service-visual img,.service-feature-copy>*{animation:none!important;opacity:1!important;transform:none!important;transition:none!important}.step:hover,.article-card:hover{transform:none}}


.preview-banner{height:30px;position:sticky;top:0;z-index:30;display:flex;align-items:center;justify-content:flex-end;padding-inline:max(18px,calc((100vw - 1380px)/2));background:var(--espresso);color:var(--ivory);font:600 11px/1 var(--sans)}
.preview-banner span{border:1px solid #ffffff80;border-radius:20px;padding:3px 10px}
.site-header{top:30px}
.site-footer{flex-wrap:wrap}.preview-footer{flex-basis:100%;color:#eee1d2;font-size:11px;line-height:1.7}
.service-quicklinks{display:flex;align-items:center;flex-wrap:wrap;gap:10px 18px;padding-block:20px;border-bottom:1px solid var(--line);background:var(--paper)}
.service-quicklinks span{color:var(--walnut);font:600 12px var(--sans);margin-inline-end:6px}
.service-quicklinks a{font:600 13px var(--sans);color:var(--olive);text-underline-offset:5px}
.loyalty-inner{grid-template-columns:minmax(240px,.8fr) minmax(0,1.2fr);gap:35px}
.loyalty-line{font:500 22px/1.5 var(--display)}.loyalty-pending{font-size:14px;color:#efe9dd}
.loyalty-ask{display:inline-flex;padding:10px 18px;border:1px solid #ffffffab;border-radius:30px;color:#fff;font:600 13px var(--sans);text-decoration:none;margin-top:12px}
.loyalty-stages{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.loyalty-stage{min-height:190px;padding:24px 16px;display:flex;flex-direction:column;justify-content:space-between;border-radius:3px}
.loyalty-stage span,.loyalty-stage small{font:600 12px/1.5 var(--sans)}.loyalty-stage strong{font:500 clamp(25px,2.5vw,38px) var(--display)}
.stage-foundation{background:#f5f0e8;color:var(--espresso)}.stage-balance{background:#778463;color:#fff}.stage-flow{background:var(--espresso);color:#fff;border:1px solid #ffffff55}
.article-visual,.article-lead-art,.article-inline-art{background:var(--ivory);isolation:isolate}
.article-visual img,.article-lead-art img,.article-inline-art img{transform:scale(var(--crop-scale,1));transform-origin:var(--crop-x,50%) var(--crop-y,50%);object-fit:contain;filter:brightness(1.08);-webkit-mask-image:radial-gradient(ellipse 57% 58% at 50% 50%,#000 59%,transparent 100%);mask-image:radial-gradient(ellipse 57% 58% at 50% 50%,#000 59%,transparent 100%)}
.article-card-link:hover .article-visual img{transform:scale(calc(var(--crop-scale,1) + .03))}
.article-summary{background:#f3ede3;padding:27px 35px;margin-top:40px}.article-summary h2{font-size:30px;margin-bottom:12px}.article-summary ul{margin:0;padding-inline-start:23px;font-size:18px;line-height:1.9}.article-summary li+li{margin-top:6px}
@media(max-width:700px){.service-quicklinks{padding-block:14px;gap:9px 15px}.service-quicklinks span{flex-basis:100%}.loyalty-inner{min-height:0;padding-block:55px}.loyalty-stages{display:none}.loyalty-pending{font-size:12px}.article-summary{padding:22px}.article-summary ul{font-size:16px}}
