:root{--bg:#F1EFEA;--ink:#0B0B0B;--mut:#77736A;--line:rgba(11,11,11,.13);--card:#E7E4DC;--acc:#FF2DAA;--gut:clamp(20px,3.6vw,60px);--ease:cubic-bezier(.19,1,.22,1);--r:6px}
body[data-tone=dark]{--bg:#0B0B0B;--ink:#F1EFEA;--mut:#8D897F;--line:rgba(241,239,234,.14);--card:#161616}
*{box-sizing:border-box;margin:0;padding:0}
html{-webkit-text-size-adjust:100%}
html.lenis,html.lenis body{height:auto}.lenis.lenis-smooth{scroll-behavior:auto!important}.lenis.lenis-stopped{overflow:hidden}
body{background:var(--bg);color:var(--ink);font-family:"Inter Tight",system-ui,-apple-system,"Segoe UI",sans-serif;font-size:17px;line-height:1.5;overflow-x:hidden;-webkit-font-smoothing:antialiased;transition:background .01s,color .01s}
body::after{content:"";position:fixed;inset:-50%;z-index:200;pointer-events:none;opacity:.055;background-image: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='.9' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 .8 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E")}
img{display:block;max-width:100%}a{color:inherit;text-decoration:none}button{font:inherit;color:inherit;background:none;border:0;cursor:pointer}
.mono{font-family:inherit;font-size:.95rem;letter-spacing:0;text-transform:none;font-weight:500}
.serif{font-family:"Instrument Serif",Georgia,serif;font-style:italic;font-weight:400;letter-spacing:-.015em}
.wrap{padding-left:var(--gut);padding-right:var(--gut);max-width:1800px;margin:0 auto}
.sec{padding:clamp(80px,11vw,170px) 0}
.lab{display:flex;gap:14px;align-items:center;color:var(--mut)}.lab::before{content:"";width:7px;height:7px;border-radius:50%;background:var(--acc)}
.h-xl{font-size:clamp(3.4rem,12vw,13rem);line-height:.88;letter-spacing:-.06em;font-weight:700}
.h-lg{font-size:clamp(2.5rem,7.6vw,7.4rem);line-height:.94;letter-spacing:-.05em;font-weight:700}
.hr{height:1px;background:var(--line);border:0}
.link{position:relative;display:inline-flex;gap:10px;align-items:center;font-weight:600}
.link::after{content:"";position:absolute;left:0;bottom:-4px;height:1px;width:100%;background:currentColor;transform-origin:right;transition:transform .7s var(--ease)}
.link:hover::after{transform:scaleX(0);transform-origin:left}
.pill{display:inline-flex;align-items:center;gap:12px;border:1px solid var(--ink);border-radius:999px;padding:14px 26px;font-weight:600;position:relative;overflow:hidden;isolation:isolate;transition:color .5s var(--ease)}
.pill::before{content:"";position:absolute;inset:0;background:var(--ink);transform:translateY(101%);border-radius:50% 50% 0 0;transition:transform .6s var(--ease),border-radius .6s var(--ease);z-index:-1}
.pill:hover{color:var(--bg)}.pill:hover::before{transform:none;border-radius:0}
.pill.solid{background:var(--ink);color:var(--bg)}.pill.solid::before{background:var(--acc)}.pill.solid:hover{color:#fff;border-color:var(--acc)}
/* reveals */
.r-up{opacity:0;transform:translateY(40px);transition:opacity 1.1s var(--ease),transform 1.3s var(--ease);transition-delay:var(--d,0s)}
.r-clip{clip-path:inset(14% 10% 14% 10% round var(--r));opacity:0;transform:translateY(46px) scale(.96);transition:clip-path 1.5s var(--ease),opacity 1s ease,transform 1.5s var(--ease);transition-delay:var(--d,0s)}
.r-clip img{transform:scale(1.25);transition:transform 1.8s var(--ease);transition-delay:var(--d,0s)}
.in.r-up{opacity:1;transform:none}.in.r-clip{clip-path:inset(0 round var(--r));opacity:1;transform:none}.in.r-clip img{transform:scale(1)}
.sw{display:inline-block;overflow:hidden;vertical-align:top;padding:0 .06em .2em;margin-bottom:-.2em}
.swi{display:inline-block;transform:translateY(115%) rotate(4deg);transform-origin:0 100%;transition:transform 1.2s var(--ease) calc(var(--i)*60ms)}
.in .swi{transform:none}
/* preloader + curtain */
#pre,#cv{position:fixed;inset:0;z-index:150;background:#0B0B0B;color:#F1EFEA;display:flex;align-items:flex-end;justify-content:space-between;padding:var(--gut)}
#pre{transition:transform 1.1s var(--ease);animation:fail 0s linear 6s forwards}#pre.done{transform:translateY(-100%)}
#pre b{font-size:clamp(5rem,20vw,18rem);line-height:.78;letter-spacing:-.07em;font-weight:700;font-variant-numeric:tabular-nums}
#pre span{padding-bottom:1rem}
@keyframes fail{to{transform:translateY(-100%)}}
#cv{z-index:140;transform:translateY(100%);align-items:center;justify-content:center;pointer-events:none}
#cv b{font-size:clamp(3rem,12vw,11rem);letter-spacing:-.06em;font-weight:700;line-height:1;opacity:0;transform:translateY(40px);transition:opacity .5s ease .25s,transform .8s var(--ease) .2s}
#cv.cover{transform:none;transition:transform .8s var(--ease)}#cv.cover b{opacity:1;transform:none}
#cv.leave{transform:translateY(-100%);transition:transform .9s var(--ease)}#cv.leave b{opacity:0;transition:opacity .3s}
/* header */
header.top{position:fixed;top:0;left:0;right:0;z-index:100;display:flex;justify-content:space-between;align-items:center;padding:20px var(--gut);transition:transform .7s var(--ease),background .4s ease}
header.top.hide{transform:translateY(-110%)}
header.top.solid{background:color-mix(in srgb,var(--bg) 78%,transparent);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px)}
.logo{font-weight:800;font-size:1.4rem;letter-spacing:-.05em}.logo sup{font-size:.5em;color:var(--acc)}
.hmid{color:var(--mut)}
nav.m{display:flex;gap:clamp(14px,2vw,34px);justify-content:flex-end;align-items:center}
nav.m a{font-weight:600;font-size:.95rem;position:relative;padding:6px 0}nav.m a sup{font-family:"DM Mono",monospace;font-size:.6em;color:var(--mut);margin-left:3px}
nav.m a::after{content:"";position:absolute;left:0;bottom:0;height:1.5px;width:100%;background:var(--acc);transform:scaleX(0);transform-origin:right;transition:transform .6s var(--ease)}
nav.m a:hover::after,nav.m a.act::after{transform:scaleX(1);transform-origin:left}
.burger{display:none;justify-self:end;width:48px;height:48px;border-radius:50%;border:1px solid var(--ink);align-items:center;justify-content:center;flex-direction:column;gap:5px}
.burger span{width:18px;height:1.5px;background:var(--ink);transition:transform .5s var(--ease)}
body.menu .burger span:nth-child(1){transform:translateY(3.2px) rotate(45deg)}body.menu .burger span:nth-child(2){transform:translateY(-3.2px) rotate(-45deg)}
#mm{position:fixed;inset:0;z-index:99;background:#0B0B0B;color:#F1EFEA;display:flex;flex-direction:column;justify-content:center;padding:90px var(--gut) 40px;transform:translateY(-100%);transition:transform 1s var(--ease)}
body.menu #mm{transform:none}#mm a{font-size:clamp(3rem,14vw,5.4rem);font-weight:700;letter-spacing:-.05em;line-height:1.08;display:block}
#mm small{margin-top:30px;color:#8D897F}
@media(max-width:860px){nav.m{display:none}.burger{display:flex}}
/* pages */
.page{display:none}.page.active{display:block}
.pg-top{padding-top:clamp(130px,17vw,240px)}
/* home hero */
.hero{min-height:100svh;display:flex;flex-direction:column;justify-content:space-between;padding-top:110px;position:relative}
.hero h1{margin-top:clamp(24px,4vw,60px)}
.hero h1 .serif{padding-right:.05em}
.hero-b{display:grid;grid-template-columns:1fr 1.25fr auto;gap:30px;align-items:end;padding:clamp(30px,5vw,70px) 0}
.hero-b p{color:var(--mut);max-width:36ch}
.badge{width:clamp(72px,7vw,96px);aspect-ratio:1;border-radius:50%;border:1px solid var(--ink);justify-self:end;display:grid;place-items:center;transition:background .5s var(--ease),color .5s var(--ease)}.badge:hover{background:var(--ink);color:var(--bg)}
.badge svg{position:absolute;inset:0;width:100%;height:100%;animation:spin 18s linear infinite}
.badge span{font-size:1.6rem;transition:transform .6s var(--ease)}.badge:hover span{transform:translateY(6px)}
@keyframes spin{to{transform:rotate(360deg)}}
@media(max-width:800px){.hero-b{grid-template-columns:1fr auto}.hero-b .trust{grid-column:1/-1;order:3}}
.rows{overflow:hidden;padding-bottom:clamp(50px,7vw,100px)}
.row{display:flex;gap:12px;width:max-content;margin-bottom:12px;animation:slide 70s linear infinite}.row.rev{animation-direction:reverse;animation-duration:85s}
.rows:hover .row{animation-play-state:paused}
.row img{height:clamp(110px,14vw,200px);width:auto;aspect-ratio:16/9;object-fit:cover;border-radius:var(--r);flex:none}
@keyframes slide{to{transform:translateX(-50%)}}
.state{font-size:clamp(1.9rem,4.6vw,4.6rem);line-height:1.06;letter-spacing:-.04em;font-weight:600;max-width:22em}
.state .w{opacity:.14;transition:opacity .3s linear}.state .w.on{opacity:1}
.stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:20px;margin-top:clamp(50px,8vw,120px);padding-top:28px;border-top:1px solid var(--line)}
.stats b{display:block;font-size:clamp(2.4rem,6vw,5.6rem);line-height:1;letter-spacing:-.06em;font-weight:700}.stats span{display:block;color:var(--mut);margin-top:8px;max-width:20ch;font-size:.95rem}
@media(max-width:760px){.stats{grid-template-columns:repeat(2,minmax(0,1fr));row-gap:34px}}
/* project cards */
.pgrid{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:clamp(30px,4vw,64px) clamp(14px,2vw,28px)}
.pc{grid-column:span 6;display:block;text-align:left;cursor:pointer}
.pgrid.edit .pc:nth-child(4n+1){grid-column:span 7}.pgrid.edit .pc:nth-child(4n+2){grid-column:span 5;margin-top:clamp(0px,10vw,160px)}.pgrid.edit .pc:nth-child(4n+3){grid-column:span 5}.pgrid.edit .pc:nth-child(4n+4){grid-column:span 7;margin-top:clamp(0px,7vw,110px)}
.pgrid.tri .pc{grid-column:span 4}
.pc .im{overflow:hidden;border-radius:var(--r);aspect-ratio:16/9;background:var(--card);position:relative}
.pc .im img{width:100%;height:100%;object-fit:cover;transition:transform 1.4s var(--ease)}.pc:hover .im img{transform:scale(1.07)}
.pc .im i{position:absolute;right:14px;bottom:14px;background:var(--bg);color:var(--ink);border-radius:999px;padding:8px 14px;font-style:normal;font-size:.8rem;font-weight:600;transform:translateY(160%);transition:transform .7s var(--ease)}.pc:hover .im i{transform:none}
.pc .cap{display:flex;justify-content:space-between;gap:14px;margin-top:16px;align-items:baseline;font-weight:600;letter-spacing:-.01em}
.pc .cap span{display:flex;gap:12px}.pc .cap em{display:none}.pc .cap small{color:var(--mut);font-weight:500;font-size:.88rem}
@media(max-width:860px){.pgrid .pc,.pgrid.edit .pc:nth-child(n){grid-column:span 12;margin-top:0}.pgrid.tri .pc{grid-column:span 6}}
@media(max-width:520px){.pgrid.tri .pc{grid-column:span 12}}
.row-h{display:flex;justify-content:space-between;align-items:flex-end;gap:24px;flex-wrap:wrap;margin-bottom:clamp(36px,6vw,90px)}
/* list rows */
.lst{border-top:1px solid var(--line)}
.lst a{display:grid;grid-template-columns:70px 1fr auto;gap:18px;align-items:center;padding:clamp(24px,3.4vw,46px) 0;border-bottom:1px solid var(--line);transition:padding .7s var(--ease),color .3s ease}
.lst a h3{font-size:clamp(1.9rem,5.4vw,5.2rem);font-weight:700;letter-spacing:-.05em;line-height:1}.lst a:hover{padding-left:clamp(10px,2vw,30px);color:var(--acc)}
.lst a span.arr{font-size:clamp(1.4rem,3vw,2.6rem);transition:transform .7s var(--ease)}.lst a:hover .arr{transform:translate(8px,-8px)}
/* testimonials */
.tq{position:relative;min-height:clamp(340px,38vw,500px)}
.tq blockquote{position:absolute;inset:0;opacity:0;transform:translateY(30px);transition:opacity .9s ease,transform 1.2s var(--ease);pointer-events:none;font-size:clamp(1.6rem,3.8vw,3.6rem);line-height:1.1;letter-spacing:-.035em;font-weight:600;max-width:24em}
.tq blockquote.on{opacity:1;transform:none;pointer-events:auto}
.tq footer{margin-top:28px;font-size:1rem;letter-spacing:0;font-weight:600}.tq footer small{display:block;color:var(--mut);font-weight:500}
.tnav{display:flex;align-items:center;gap:16px}.bar{flex:1;height:1px;background:var(--line);position:relative;overflow:hidden}.bar i{position:absolute;inset:0;background:var(--ink);transform:scaleX(0);transform-origin:left}
.tnav button{width:52px;height:52px;border-radius:50%;border:1px solid var(--ink);transition:background .4s ease,color .4s ease}.tnav button:hover{background:var(--ink);color:var(--bg)}
/* cta + footer */
.cta{padding:clamp(80px,12vw,200px) 0 clamp(40px,6vw,80px);text-align:center}
.cta h2{margin:22px auto 40px;max-width:11em}
footer.f{padding:0 var(--gut) 22px;overflow:hidden}
.f .tp{display:flex;justify-content:space-between;gap:20px;flex-wrap:wrap;padding:30px 0;border-top:1px solid var(--line);font-weight:600}
.f .mega{font-size:clamp(3.4rem,21.5vw,30rem);font-weight:800;letter-spacing:-.085em;line-height:.76;text-align:center;white-space:nowrap;user-select:none;margin:10px 0 -.05em}
.f .bt{display:flex;justify-content:space-between;color:var(--mut);padding-top:20px;margin-top:18px;border-top:1px solid var(--line);flex-wrap:wrap;gap:8px}
/* shorts + banners */
.hs{display:flex;gap:14px;overflow-x:auto;scroll-snap-type:x proximity;padding:0 var(--gut) 16px;scrollbar-width:none;cursor:grab}.hs::-webkit-scrollbar{display:none}
.hs button{flex:none;width:clamp(200px,21vw,300px);aspect-ratio:9/16;border-radius:var(--r);overflow:hidden;scroll-snap-align:start;background:var(--card)}
.hs img{width:100%;height:100%;object-fit:cover;transition:transform 1.2s var(--ease)}.hs button:hover img{transform:scale(1.06)}
.bn{display:flex;flex-direction:column;gap:clamp(22px,3vw,44px)}.bn img{width:100%;aspect-ratio:2560/423;object-fit:cover;border-radius:var(--r);transition:transform 1.2s var(--ease)}
.bn figure:hover img{transform:scale(1.012)}.bn figcaption{display:flex;justify-content:space-between;margin-top:12px;font-weight:600}.bn figcaption small{color:var(--mut);font-weight:500}
@media(max-width:700px){.bn img{aspect-ratio:3/1}}
/* filter */
.flt{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:clamp(30px,4vw,56px)}
.flt button{border:1px solid var(--line);border-radius:999px;padding:10px 18px;font-weight:600;font-size:.92rem;transition:background .4s ease,color .4s ease,border-color .4s ease}.flt button:hover{border-color:var(--ink)}.flt button.on{background:var(--ink);color:var(--bg);border-color:var(--ink)}
.pgrid.tri .pc{transition:opacity .5s ease,transform .8s var(--ease)}.pc.off{display:none}
/* project page */
.pj-meta{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;padding:26px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);margin:clamp(30px,5vw,60px) 0}
.pj-meta div span{display:block;color:var(--mut);margin-bottom:6px}.pj-meta div b{font-weight:600;font-size:1.1rem}
.pj-img{border-radius:var(--r);overflow:hidden;background:var(--card)}.pj-img img{width:100%;height:auto}
.pj-nav{display:grid;grid-template-columns:1fr 1fr;gap:clamp(14px,2vw,28px);margin-top:clamp(60px,9vw,140px)}
.pj-nav a{display:block}.pj-nav .im{aspect-ratio:16/9;overflow:hidden;border-radius:var(--r);background:var(--card);margin:14px 0 12px}.pj-nav img{width:100%;height:100%;object-fit:cover;transition:transform 1.2s var(--ease)}.pj-nav a:hover img{transform:scale(1.06)}
.pj-nav a:last-child{text-align:right}.pj-nav h3{font-size:clamp(1.4rem,3vw,2.6rem);letter-spacing:-.04em}
/* services */
.sv-b{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:clamp(24px,5vw,90px);padding:clamp(40px,6vw,90px) 0;border-top:1px solid var(--line)}
.sv-b h3{font-size:clamp(2.2rem,5vw,4.8rem);letter-spacing:-.05em;line-height:.98;font-weight:700;margin-top:18px}.sv-b p{color:var(--mut);margin-top:22px;max-width:36ch}
.sv-b ul{list-style:none;margin-top:26px}.sv-b li{padding:12px 0;border-top:1px solid var(--line);font-weight:600;display:flex;gap:14px}.sv-b li::before{content:"→";color:var(--acc)}
.sv-i{display:grid;gap:14px;grid-template-columns:repeat(2,minmax(0,1fr))}.sv-i img{width:100%;aspect-ratio:16/9;object-fit:cover;border-radius:var(--r)}.sv-i.v{grid-template-columns:repeat(3,minmax(0,1fr))}.sv-i.v img{aspect-ratio:9/16}
.sv-i .im{overflow:hidden;border-radius:var(--r)}
@media(max-width:860px){.sv-b{grid-template-columns:1fr}}
.ps{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 clamp(30px,6vw,120px)}.ps>div{display:grid;grid-template-columns:70px 1fr;gap:12px;padding:32px 0;border-top:1px solid var(--line)}
.ps b{color:var(--acc)}.ps h4{font-size:clamp(1.5rem,2.6vw,2.4rem);letter-spacing:-.04em;margin-bottom:8px}.ps p{color:var(--mut);max-width:38ch}
@media(max-width:800px){.ps{grid-template-columns:1fr}}
/* about */
.ab{display:grid;grid-template-columns:minmax(0,.62fr) minmax(0,1.38fr);gap:clamp(30px,7vw,130px);align-items:start}
.ab .ph{aspect-ratio:1;border-radius:50%;overflow:hidden;width:100%;max-width:460px;background:var(--card)}.ab .ph img{width:100%;height:100%;object-fit:cover}
.ab p.big{font-size:clamp(1.5rem,3vw,2.8rem);line-height:1.12;letter-spacing:-.035em;font-weight:600;max-width:26em}
.facts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;margin-top:50px;padding-top:26px;border-top:1px solid var(--line)}.facts span{display:block;color:var(--mut);margin-bottom:8px}.facts b{font-weight:600}
@media(max-width:860px){.ab{grid-template-columns:1fr}.facts{grid-template-columns:1fr}}
/* contact */
.cn{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:clamp(30px,6vw,100px);margin-top:clamp(40px,7vw,100px)}
.cn .ln a{display:flex;justify-content:space-between;gap:16px;align-items:baseline;padding:24px 0;border-top:1px solid var(--line);font-size:clamp(1.2rem,2vw,1.7rem);font-weight:600;transition:color .3s ease,padding .7s var(--ease)}.cn .ln a:last-child{border-bottom:1px solid var(--line)}.cn .ln a:hover{color:var(--acc);padding-left:16px}
.cn form{display:flex;flex-direction:column;gap:6px}
.cn input,.cn textarea{width:100%;background:transparent;border:0;border-bottom:1px solid var(--line);color:var(--ink);font:inherit;font-size:1.15rem;padding:20px 0;outline:none;transition:border-color .4s ease}
.cn input:focus,.cn textarea:focus{border-color:var(--acc)}.cn ::placeholder{color:var(--mut)}.cn textarea{resize:vertical;min-height:130px}
.cn .pill{align-self:flex-start;margin-top:22px}.cn .st{min-height:1.4em;color:var(--mut);font-size:.9rem;margin-top:10px}
@media(max-width:860px){.cn{grid-template-columns:1fr}}
/* lightbox */
#lb{position:fixed;inset:0;z-index:130;background:rgba(11,11,11,.95);display:none;align-items:center;justify-content:center;flex-direction:column;gap:14px;padding:24px}#lb.open{display:flex}
#lb img{max-width:min(94vw,1400px);max-height:78vh;border-radius:var(--r)}#lb p{color:#F1EFEA;font-weight:600}
#lb button{position:absolute;width:50px;height:50px;border-radius:50%;background:rgba(241,239,234,.14);color:#F1EFEA;font-size:1.5rem}#lb .x{top:18px;right:18px}
@media(prefers-reduced-motion:reduce){.row,.badge svg,#pre{animation:none}.swi{transform:none;transition:none}.r-up,.r-clip,.r-clip img{opacity:1;transform:none;clip-path:none;transition:none}.state .w{opacity:1}}
.trust{display:flex;align-items:center;flex-wrap:wrap;gap:10px 16px}.trust p{color:var(--mut);max-width:24ch;min-width:150px;font-size:.98rem}
.stack{display:flex;flex:none}.stack img,.stack b{flex:none;width:46px;height:46px;border-radius:50%;object-fit:cover;border:3px solid var(--bg);margin-left:-14px;background:var(--card)}.stack>:first-child{margin-left:0}
.stack b{display:grid;place-items:center;font-size:.78rem;font-weight:700;background:var(--ink);color:var(--bg)}
.crg{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}
.cc{display:flex;align-items:center;gap:16px;padding:18px;border:1px solid var(--line);border-radius:14px;transition:transform .7s var(--ease),border-color .4s ease,background .4s ease}
.cc:hover{transform:translateY(-6px);border-color:var(--ink)}
.cc img,.cc .ini{width:64px;height:64px;border-radius:50%;object-fit:cover;flex:none;background:var(--card)}
.cc .ini{display:grid;place-items:center;font-weight:700;font-size:1.2rem;background:linear-gradient(135deg,var(--acc),#8B5CF6);color:#fff}
.cc b{display:block;font-weight:700;letter-spacing:-.02em;line-height:1.2;overflow-wrap:anywhere}.cc span{color:var(--mut);font-size:.92rem}
@media(max-width:1100px){.crg{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:760px){.crg{grid-template-columns:repeat(2,minmax(0,1fr))}.cc{flex-direction:column;text-align:center;padding:20px 12px}}
.pk{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
.pk>div{border:1px solid var(--line);border-radius:18px;padding:clamp(24px,3vw,40px);display:flex;flex-direction:column;gap:18px;transition:transform .8s var(--ease),border-color .4s ease}
.pk>div:hover{transform:translateY(-8px);border-color:var(--ink)}.pk h3{font-size:clamp(1.8rem,3vw,2.6rem);letter-spacing:-.045em;line-height:1}.pk p{color:var(--mut)}
.pk ul{list-style:none;flex:1}.pk li{padding:11px 0;border-top:1px solid var(--line);display:flex;gap:12px;font-weight:500}.pk li::before{content:"✓";color:var(--acc);font-weight:700}
.pk .pill{align-self:flex-start}
@media(max-width:1000px){.pk{grid-template-columns:1fr}}
.cn select{width:100%;background:transparent;border:0;border-bottom:1px solid var(--line);color:var(--ink);font:inherit;font-size:1.15rem;padding:20px 0;outline:none;appearance:none;-webkit-appearance:none;cursor:pointer;background-image:linear-gradient(45deg,transparent 50%,var(--mut) 50%),linear-gradient(135deg,var(--mut) 50%,transparent 50%);background-position:calc(100% - 14px) 50%,calc(100% - 8px) 50%;background-size:6px 6px;background-repeat:no-repeat}
.cn select option{color:#0B0B0B}.cn .row2{display:flex;gap:14px;flex-wrap:wrap;align-items:center;margin-top:22px}.cn .row2 .pill{margin-top:0}
.cn .ok{color:var(--acc)}
/* ---- mobile & small-screen polish ---- */
html{scroll-padding-top:80px}
.row img{height:clamp(110px,14vw,200px)}
@media(max-width:860px){
  header.top{padding:14px var(--gut)}
  .hero{padding-top:90px}
  .hero-b{padding:28px 0}
  .pg-top{padding-top:110px}
  .lst a{grid-template-columns:44px 1fr auto;gap:12px}
  .tq{min-height:clamp(380px,70vw,520px)}
  .pj-meta{grid-template-columns:1fr 1fr}
  .cta{padding-top:clamp(60px,12vw,120px)}
}
@media(max-width:600px){
  body{font-size:16px}
  .h-xl{font-size:clamp(2.8rem,15vw,5rem);line-height:.92;letter-spacing:-.05em}
  .h-lg{font-size:clamp(2.1rem,11vw,3.6rem);line-height:.98}
  .hero-b{grid-template-columns:1fr auto;gap:22px}
  .hero-b p{max-width:none}
  .trust p{min-width:0}
  .stack img,.stack b{width:40px;height:40px;margin-left:-12px}
  .row img{height:96px}
  .state{font-size:clamp(1.5rem,6.6vw,2.2rem)}
  .stats b{font-size:clamp(2rem,11vw,3rem)}
  .pj-meta{grid-template-columns:1fr}
  .pj-nav{grid-template-columns:1fr}.pj-nav a:last-child{text-align:left}
  .sv-i.v{gap:8px}
  .ps>div{grid-template-columns:44px 1fr;padding:24px 0}
  .pk>div{padding:24px}
  .cn input,.cn textarea,.cn select{font-size:16px;padding:16px 0}
  .cn .ln a{flex-direction:column;gap:4px;padding:18px 0;font-size:1.1rem;overflow-wrap:anywhere}
  .cn .row2 .pill{flex:1;justify-content:center}
  .f .tp,.f .bt{flex-direction:column;gap:10px}
  .flt{flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none;margin-right:calc(var(--gut)*-1);padding-right:var(--gut)}
  .flt::-webkit-scrollbar{display:none}.flt button{flex:none}
  .hs button{width:62vw}
  .tnav button{width:46px;height:46px}
  #lb img{max-height:70vh}
}
@media(hover:none){.pc .im i{transform:none}.cc:hover,.pk>div:hover{transform:none}}
@supports(padding:max(0px)){header.top{padding-left:max(var(--gut),env(safe-area-inset-left));padding-right:max(var(--gut),env(safe-area-inset-right))}footer.f{padding-bottom:max(22px,env(safe-area-inset-bottom))}}
.burger,.tnav button,.flt button,#lb button{min-width:44px;min-height:44px}
:focus-visible{outline:2px solid var(--acc);outline-offset:3px}
/* services banners: show the full banner, no cropping */
.sv-i.bnr{grid-template-columns:1fr}
.sv-i.bnr img{aspect-ratio:2560/423;object-fit:cover;width:100%;height:auto}
@media(max-width:600px){.sv-i.bnr img{aspect-ratio:2560/423}}
/* side gutter: .sec and .cta padding shorthands were wiping .wrap's left/right padding */
.sec.wrap,.cta.wrap,.pg-top.wrap{padding-left:max(var(--gut),env(safe-area-inset-left,0px));padding-right:max(var(--gut),env(safe-area-inset-right,0px))}
/* creators: portrait tiles */
.crg{grid-template-columns:repeat(7,minmax(0,1fr));gap:26px 14px}
.cc{flex-direction:column;align-items:stretch;gap:12px;padding:0;border:0;border-radius:0;text-align:left}
.cc:hover{transform:translateY(-6px);border:0}
.cc img,.cc .ini{width:100%;height:auto;aspect-ratio:1;border-radius:20px;transition:transform .8s var(--ease)}
.cc:hover img,.cc:hover .ini{transform:scale(1.03)}
.cc .ini{font-size:clamp(1.4rem,3vw,2.4rem)}
.cc b{font-size:.98rem}
.cc>div span{display:inline-block;margin-top:6px;padding:3px 10px;border-radius:999px;background:var(--card);color:var(--ink);font-size:.78rem;font-weight:600}
@media(max-width:900px){.crg{grid-template-columns:repeat(4,minmax(0,1fr))}}
@media(max-width:600px){.crg{grid-template-columns:repeat(2,minmax(0,1fr));gap:22px 12px}.cc{padding:0;text-align:left;flex-direction:column}}
/* reviews: swipeable cards */
.rv{display:flex;gap:16px;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;margin:40px 0 24px;padding-bottom:4px;-webkit-overflow-scrolling:touch}
.rv::-webkit-scrollbar{display:none}
.rc{flex:none;width:min(420px,84vw);scroll-snap-align:start;border:1px solid var(--line);border-radius:22px;padding:28px;display:flex;flex-direction:column;justify-content:space-between;gap:28px;min-height:300px}
.rc::before{content:"\201C";font-family:"Instrument Serif",Georgia,serif;font-size:4.5rem;line-height:.5;height:.4em;color:var(--acc)}
.rc p{font-size:clamp(1.1rem,1.6vw,1.3rem);line-height:1.32;letter-spacing:-.02em;font-weight:600;flex:1}
.rc .who{display:flex;align-items:center;gap:14px}
.rc .who img{width:52px;height:52px;border-radius:50%;object-fit:cover;flex:none;background:var(--card)}
.rc .who b{display:block;font-weight:700;letter-spacing:-.02em}.rc .who small{display:block;color:var(--mut);font-size:.88rem}
.rc:nth-child(3n+2){background:var(--ink);color:var(--bg);border-color:var(--ink)}
.rc:nth-child(3n+2) .who small{color:var(--bg);opacity:.65}
/* style touches */
::selection{background:var(--acc);color:#fff}
html{scrollbar-width:thin;scrollbar-color:var(--acc) transparent}
::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-thumb{background:var(--acc);border-radius:99px}::-webkit-scrollbar-track{background:transparent}
.pc .im{transition:box-shadow .6s var(--ease)}
.pc:hover .im{box-shadow:0 0 0 2px var(--acc),0 26px 60px -24px rgba(255,45,170,.55)}
.pc .cap span{transition:color .3s ease}.pc:hover .cap span{color:var(--acc)}
.pill:active,.badge:active,.tnav button:active{transform:scale(.96)}
.cc:hover img,.cc:hover .ini{box-shadow:0 18px 40px -18px rgba(255,45,170,.55)}
.rc{transition:transform .7s var(--ease),border-color .4s ease}.rc:hover{transform:translateY(-6px);border-color:var(--acc)}
@media(prefers-reduced-motion:reduce){#sp{transition:none}.rc,.pc .im{transition:none}}
/* review cards: room for hover lift, no clipped top */
.rv{padding:12px 2px 14px;margin:28px 0 12px}
/* journey */
.jr{border-top:1px solid var(--line)}
.jr>div{display:grid;grid-template-columns:minmax(120px,.35fr) minmax(0,1fr);gap:20px;padding:clamp(26px,4vw,44px) 0;border-bottom:1px solid var(--line);align-items:start}
.jr b{font-size:clamp(2.4rem,6vw,5rem);line-height:1;letter-spacing:-.06em;font-weight:700;color:var(--acc)}
.jr h4{font-size:clamp(1.5rem,2.6vw,2.4rem);letter-spacing:-.04em;line-height:1.05;margin-bottom:10px}.jr p{color:var(--mut);max-width:46ch}
@media(max-width:600px){.jr>div{grid-template-columns:1fr;gap:10px}}
/* long single-word creator names stay on one line */
.cc b{font-size:.9rem;letter-spacing:-.03em}
@media(max-width:600px){.cc b{font-size:.95rem}}
/* video editing block (hidden until SHOW_VIDEO_EDITING is true) */
[hidden]{display:none!important}
.sv-b.ve ul{margin-top:0}
