/* Calm interiors palette: warm beige and cream, soft charcoal ink, logo orange as a quiet accent. */
:root{--bg:#efe8dd;--bg2:#e7dece;--ink:#2d2723;--mute:#80746a;--accent:#ff7d4f;--accent-d:#d45a2f;--rule:#d6cbb9;--pad:clamp(22px,5vw,72px);--serif:"Cormorant Garamond",Georgia,"Times New Roman",serif;--sans:Inter,"Helvetica Neue",Arial,sans-serif}
*{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:90px}
body{margin:0;background:var(--bg);color:var(--ink);font-family:var(--sans);font-size:17px;line-height:1.65;-webkit-font-smoothing:antialiased}
a{color:inherit;text-underline-offset:6px}
a:focus-visible{outline:2px solid var(--accent-d);outline-offset:6px}
.skip{position:absolute;top:-80px;background:var(--ink);color:var(--bg);padding:12px;z-index:20}.skip:focus{top:12px}
.header{position:sticky;top:0;z-index:10;display:flex;justify-content:space-between;align-items:center;padding:14px var(--pad);background:rgba(239,232,221,.88);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px)}
.header-logo{display:block;width:44px;height:44px;border-radius:50%}
nav{display:flex;gap:30px;align-items:center}
nav a{font-size:12px;font-weight:500;letter-spacing:1.6px;text-transform:uppercase;text-decoration:none;min-height:44px;display:flex;align-items:center}
nav a:not(.pill):hover{color:var(--accent-d)}
.pill{padding:0 24px;border:1px solid var(--ink);border-radius:999px;transition:.3s}
.pill:hover{background:var(--ink);color:var(--bg)}
main{overflow:clip}
section{padding:clamp(80px,12vw,160px) var(--pad);border-bottom:1px solid var(--rule)}
.label{font-size:12px;font-weight:500;letter-spacing:2px;text-transform:uppercase;color:var(--mute);margin:0 0 30px}
h1,h2,h3{margin:0;font-family:var(--serif);font-weight:400;letter-spacing:-.015em}
.scene{--p:0;position:relative}
.hero{position:relative;min-height:max(650px,calc(100vh - 72px));min-height:max(650px,calc(100svh - 72px));padding:clamp(28px,4vw,56px) var(--pad);overflow:hidden;isolation:isolate;display:flex;align-items:center}
.hero-inner{position:relative;z-index:2;width:100%;display:flex;flex-direction:column;justify-content:center}
.mtns{position:absolute;inset:0;z-index:0;pointer-events:none;opacity:1}
.sky{position:absolute;inset:0;background:linear-gradient(180deg,#efe8dd 0%,#f4dcc6 55%,#f1c9a9 100%)}
.sun{position:absolute;left:50%;top:34%;width:min(34vw,380px);aspect-ratio:1;border-radius:50%;background:radial-gradient(circle at 50% 50%,#ff9a6d 0,#ff7d4f 55%,#f08a63 100%);opacity:.85;box-shadow:0 0 120px 40px rgba(255,125,79,.25);transform:translate(-50%,calc(var(--p)*-26vh)) scale(calc(1 + var(--p)*.7))}
.m{position:absolute;left:-4%;width:108%;bottom:0;height:62%;transform-origin:50% 100%}
.m1{height:78%;transform:translateY(calc(var(--p)*6vh)) scale(calc(1 + var(--p)*.12))}
.m2{height:66%;transform:translateY(calc(var(--p)*14vh)) scale(calc(1 + var(--p)*.25))}
.m3{height:54%;transform:translateY(calc(var(--p)*24vh)) scale(calc(1 + var(--p)*.45))}
.m4{height:30%;transform:translateY(calc(var(--p)*34vh)) scale(calc(1 + var(--p)*.7))}
h1{font-size:clamp(52px,9.6vw,148px);line-height:.98}
h1 .line{display:block;overflow:hidden;padding-bottom:.08em}
h1 .line span{display:block;animation:up 1.4s cubic-bezier(.2,.7,.1,1) both}
h1 .line:nth-child(2) span{animation-delay:.15s}h1 .line:nth-child(3) span{animation-delay:.3s}
h1 .accent{color:var(--accent-d);font-style:italic}
.hero-foot{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:32px;margin-top:clamp(44px,6vw,84px);padding-top:30px;border-top:1px solid var(--rule)}
.hero-copy{max-width:440px;margin:0;color:#5d534b;font-size:18px}
.button{display:inline-flex;align-items:center;gap:10px;background:var(--ink);color:var(--bg);text-decoration:none;font-weight:500;font-size:12px;letter-spacing:1.6px;text-transform:uppercase;padding:19px 32px;border-radius:999px;transition:.3s}
.button:hover{background:var(--accent-d)}
.quiet-link{justify-self:end;font-size:12px;font-weight:500;letter-spacing:1.6px;text-transform:uppercase;text-underline-offset:7px}
.quiet-link:hover{color:var(--accent-d)}
.rise{animation:fade 1.4s .6s both}
.ticker{overflow:hidden;border-bottom:1px solid var(--rule);background:var(--bg2);padding:26px 0;white-space:nowrap}
.track{display:inline-flex;align-items:center;gap:0;width:max-content;animation:slide 28s linear infinite;will-change:transform}
.ticker-group{display:flex;flex:none;align-items:center;gap:44px;padding-right:44px}.track span{font-family:var(--serif);font-style:italic;font-size:clamp(28px,3.6vw,48px);color:#6b5f55}
.track i{width:7px;height:7px;border-radius:50%;background:var(--accent);display:block}
.big{font-size:clamp(44px,7.4vw,112px);line-height:1}
.split{display:grid;grid-template-columns:1.3fr 1fr;gap:clamp(32px,6vw,96px);align-items:end}
.copy p{font-family:var(--serif);font-size:clamp(22px,2.2vw,30px);line-height:1.35;color:#5d534b;margin:0 0 18px}
.lede{max-width:620px;font-family:var(--serif);font-size:clamp(22px,2.4vw,32px);line-height:1.35;color:#5d534b;margin:32px 0 0}
.brands{background:var(--bg2)}
.brand-logo{margin-top:clamp(32px,5vw,56px);width:min(200px,55vw)}
.brand-logo img{display:block;width:100%;height:auto;opacity:1}
.work-grid{display:grid;grid-template-columns:1.2fr 1fr;gap:clamp(32px,6vw,96px);align-items:end}
.case-label{font-size:12px;font-weight:500;letter-spacing:2px;text-transform:uppercase;color:var(--accent-d);margin:0 0 18px}
.work p{color:#5d534b;margin:0 0 14px;max-width:440px}
.text-link{display:inline-block;margin-top:18px;font-size:12px;font-weight:500;letter-spacing:1.6px;text-transform:uppercase;text-decoration:none;border-bottom:1px solid var(--ink);padding-bottom:5px}
.text-link:hover{color:var(--accent-d);border-color:var(--accent-d)}
.contact{background:var(--ink);color:var(--bg);border-bottom:0}
.contact .label{color:#a99d90}
.contact .lede{color:#d4c9ba}
.email{display:inline-block;margin-top:clamp(36px,5vw,64px);font-family:var(--serif);font-size:clamp(28px,5.6vw,88px);text-decoration:none;line-height:1.05;border-bottom:1px solid var(--accent);padding-bottom:10px;word-break:break-word;transition:color .3s}
.email:hover{color:var(--accent)}
.contact a:focus-visible{outline-color:var(--accent)}
footer{display:flex;justify-content:space-between;align-items:center;gap:20px;flex-wrap:wrap;padding:40px var(--pad)}
.footer-logo{display:block;width:72px;height:72px}
footer p{margin:0;font-size:12px;font-weight:500;letter-spacing:1.6px;text-transform:uppercase;color:var(--mute)}
.sun{animation:bob 5s ease-in-out infinite alternate}
.sun::after{content:"";position:absolute;inset:-18%;border-radius:50%;background:radial-gradient(circle,rgba(255,170,120,.45),rgba(255,170,120,0) 68%);animation:glow 6s ease-in-out infinite alternate}
.m1{--lift:6vh;--zoom:.12;animation:sway 9s ease-in-out infinite alternate}.m2{--lift:10vh;--zoom:.18;animation:sway 12s ease-in-out infinite alternate-reverse}.m3{--lift:14vh;--zoom:.24;animation:sway 15s ease-in-out infinite alternate}
.cloud{position:absolute;height:90px;border-radius:50%;background:radial-gradient(ellipse,rgba(255,250,242,.85),rgba(255,250,242,0) 70%);filter:blur(10px);animation:drift linear infinite}
.c1{top:18%;width:420px;animation-duration:35s;animation-delay:-30s}.c2{top:32%;width:300px;height:70px;animation-duration:28s;animation-delay:-60s;opacity:.8}.c3{top:48%;width:380px;animation-duration:45s;animation-delay:-10s;opacity:.7}
.mist{position:absolute;left:-15%;width:130%;height:16%;background:linear-gradient(180deg,rgba(250,236,220,0),rgba(250,236,220,.5) 50%,rgba(250,236,220,0));filter:blur(14px);animation:mdrift 10s ease-in-out infinite alternate}
.ms2{animation-duration:14s;animation-direction:alternate-reverse}.ms3{animation-duration:18s}
.grain{position:absolute;inset:0;opacity:.06;mix-blend-mode:multiply;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='220' height='220'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='2'/%3E%3CfeColorMatrix values='0 0 0 0 .4 0 0 0 0 .3 0 0 0 0 .25 0 0 0 .9 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E")}
@keyframes mdrift{from{transform:translateX(-4%)}to{transform:translateX(4%)}}
@keyframes bob{from{transform:translate(-50%,calc(var(--p)*-12vh))}to{transform:translate(-50%,calc(var(--p)*-12vh - 24px))}}
@keyframes glow{from{opacity:.5;transform:scale(.96)}to{opacity:1;transform:scale(1.08)}}
@keyframes sway{from{transform:translate(-1.4%,calc(var(--p)*var(--lift))) scale(calc(1 + var(--p)*var(--zoom)))}to{transform:translate(1.4%,calc(var(--p)*var(--lift))) scale(calc(1 + var(--p)*var(--zoom)))}}
@keyframes drift{from{left:-30%}to{left:110%}}
@keyframes up{from{transform:translateY(105%)}to{transform:none}}
@keyframes fade{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}
@keyframes slide{to{transform:translateX(-50%)}}
@keyframes rev{from{opacity:0;transform:translateY(32px)}to{opacity:1;transform:none}}
@supports (animation-timeline:view()){.reveal{animation:rev linear both;animation-timeline:view();animation-range:entry 0% entry 45%}}
@media (max-width:760px){nav{gap:12px}nav a{font-size:11px;letter-spacing:1px}.pill{padding:0 12px;white-space:nowrap}nav{gap:10px}nav a{letter-spacing:.6px}.work-grid,.split{grid-template-columns:1fr;gap:32px}.hero-foot{grid-template-columns:1fr;justify-items:center;text-align:center;gap:26px}.hero-copy{margin:0 auto}.quiet-link{justify-self:center}.hero{min-height:calc(100vh - 72px);min-height:calc(100svh - 72px);padding-top:32px;padding-bottom:36px}.hero-inner{justify-content:flex-start}h1{font-size:clamp(42px,11vw,76px)}.hero-foot{gap:18px;margin-top:28px;padding-top:20px}.hero-copy{font-size:16px}.label{margin-bottom:22px}.sun{width:65vw;top:28%}.ticker{padding:20px 0}.ticker-group{gap:28px;padding-right:28px}}
@media (prefers-reduced-motion:reduce){*{animation:none!important;scroll-behavior:auto}.scene{height:auto}.hero{position:relative;top:0}}
/* Keep the foreground in place so the scene blends into the ribbon at every scroll position. */
.m4{transform:none}
.mtns::after{content:"";position:absolute;inset:auto 0 0;height:14%;background:linear-gradient(0deg,var(--bg),transparent);pointer-events:none}
@media(max-width:360px){.header{padding-left:16px;padding-right:16px}.header-logo{width:36px;height:36px}nav{gap:7px}nav a{font-size:10px;letter-spacing:.2px}.pill{padding:0 9px}}

/* Keep the original headline rhythm; bring the ridge to the visible descender. */
h1 .line.accent{overflow:visible;padding-bottom:.12em;position:relative;z-index:3}
.m2{height:84%}
@media(max-width:760px){.m1{height:86%}.m2{height:66%}.hero-foot{border-top:0}}
/* v11: bolder hero headline */
h1,h1 .line span{font-weight:600}
