:root{
  --paper:#121012;--paper2:#19161a;--card:#211c21;--ink:#f3ece6;--muted:#a69b93;
  --line:#342e35;--blush:#e8b4a0;--rose:#eaa48b;--sage:#dfe5d6;--butter:#f6e7b8;
  --ig:linear-gradient(45deg,#f6c47a,#e8826b 40%,#c9577f 70%,#8b5fbf);
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;scroll-padding-top:76px}
body{background:var(--paper);color:var(--ink);font:16.5px/1.6 "DM Sans",system-ui,sans-serif;-webkit-font-smoothing:antialiased;overflow-x:hidden}
body::before{content:"";position:fixed;inset:0;pointer-events:none;z-index:200;opacity:.5;mix-blend-mode:overlay;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 0.5 0 0 0 0 0.45 0 0 0 0 0.4 0 0 0 .12 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E")}
img,video{display:block;max-width:100%}
a{color:inherit;text-decoration:none}
button{font:inherit;color:inherit}
h1,h2,h3{font-family:"Instrument Serif",Georgia,serif;font-weight:400;line-height:1;letter-spacing:-.01em}
em{font-style:italic;color:var(--rose)}
svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;flex-shrink:0}
.wrap{width:min(1160px,100% - 32px);margin-inline:auto}
.hand{font-family:Caveat,cursive;color:var(--rose);font-weight:500;line-height:1.1}

/* nav */
.nav{position:sticky;top:0;z-index:50;background:rgba(18,19,13,.84);backdrop-filter:blur(12px);border-bottom:1px solid transparent;transition:border-color .3s}
.nav.scrolled{border-color:var(--line)}
.nav-in{display:flex;align-items:center;justify-content:space-between;height:68px}
.brand{display:flex;align-items:center;gap:.6rem;font:400 1.55rem "Instrument Serif",serif;letter-spacing:-.01em}
.brand img{border-radius:10px;transition:transform .4s}
.brand:hover img{transform:rotate(-8deg)}
.nav-links{display:flex;align-items:center;gap:1.6rem;font-weight:500;font-size:.95rem}
.nav-links a:not(.btn){position:relative}
.nav-links a:not(.btn):not(.nav-ig)::after{content:"";position:absolute;left:0;right:100%;bottom:-3px;height:2px;background:var(--rose);border-radius:2px;transition:right .3s}
.nav-links a:not(.btn):hover::after{right:0}
.nav-ig{display:grid;place-items:center}
.nav-ig svg{width:21px;height:21px}
.nav-ig:hover{color:var(--rose)}
.nav-toggle{display:none;width:42px;height:42px;border-radius:50%;border:1.5px solid var(--ink);background:none;flex-direction:column;justify-content:center;align-items:center;gap:5px;cursor:pointer}
.nav-toggle span{width:16px;height:1.5px;background:var(--ink);transition:.25s}
.nav.open .nav-toggle span:first-child{transform:translateY(3.25px) rotate(45deg)}
.nav.open .nav-toggle span:last-child{transform:translateY(-3.25px) rotate(-45deg)}

/* buttons */
.btn{display:inline-flex;align-items:center;justify-content:center;padding:.85rem 1.5rem;border-radius:999px;background:var(--ink);color:var(--paper);font-weight:700;font-size:.95rem;border:1.5px solid var(--ink);transition:transform .2s,box-shadow .2s,background .2s;cursor:pointer}
.btn:hover{transform:translate(-2px,-2px);box-shadow:3px 3px 0 var(--blush)}
.btn-line{background:transparent;color:var(--ink)}
.btn-line:hover{background:var(--card)}
.btn-sm{padding:.55rem 1.15rem;font-size:.88rem}
.btns{display:flex;flex-wrap:wrap;gap:.8rem;margin:2rem 0 1.6rem}

/* hero */
.hero{display:grid;grid-template-columns:1.1fr .9fr;gap:3rem;align-items:center;padding:4.5rem 0 3rem}
.hello{font-size:2rem;transform:rotate(-3deg);display:inline-block;margin-bottom:.2rem}
.hero h1{font-size:clamp(4rem,10vw,8.2rem);line-height:.9;margin-bottom:1.2rem}
.hero h1 em{display:block;padding-left:.6em}
.role{font-weight:700;font-size:.9rem;letter-spacing:.06em;text-transform:uppercase;margin-bottom:1rem;display:inline-block;background:linear-gradient(transparent 62%,rgba(232,180,160,.35) 62%);padding:0 .2rem}
.lead{font-size:1.12rem;color:#cfc5bd;max-width:33rem}
.socials{display:flex;flex-wrap:wrap;gap:.6rem 1.5rem}
.socials a{display:inline-flex;align-items:center;gap:.45rem;font-weight:500;color:var(--muted);transition:color .2s}
.socials a:hover{color:var(--rose)}

/* story card */
.hero-story{position:relative;justify-self:center;width:min(360px,100%);margin-right:1rem}
.story{position:relative;aspect-ratio:9/15;border-radius:26px;overflow:hidden;background:#222;box-shadow:0 2px 0 var(--line),0 30px 60px -20px rgba(0,0,0,.45);transform:rotate(2deg);transition:transform .5s}
.hero-story:hover .story{transform:rotate(0)}
.story-img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:32% center;filter:grayscale(1) contrast(1.05);animation:kenburns 14s ease-in-out infinite alternate}
.story::after{content:"";position:absolute;inset:0;background:linear-gradient(rgba(0,0,0,.45),transparent 22%,transparent 75%,rgba(0,0,0,.5));z-index:1}
.story-bars{position:absolute;top:12px;left:12px;right:12px;display:flex;gap:4px;z-index:3}
.story-bars i{flex:1;height:3px;border-radius:3px;background:rgba(255,255,255,.35);overflow:hidden;position:relative}
.story-bars i::after{content:"";position:absolute;inset:0;background:#fff;transform:scaleX(0);transform-origin:left;animation:bar 12s linear infinite}
.story-bars i:nth-child(2)::after{animation-name:bar2}
.story-bars i:nth-child(3)::after{animation-name:bar3}
.story-head{position:absolute;top:26px;left:14px;right:14px;display:flex;align-items:center;gap:.5rem;color:#fff;z-index:3;font-size:.85rem}
.story-head img{width:30px;height:30px;border-radius:50%;border:2px solid #fff}
.story-head span{opacity:.75}
.story-foot{position:absolute;left:14px;right:14px;bottom:14px;display:flex;align-items:center;gap:.7rem;z-index:3}
.story-reply{flex:1;border:1.5px solid rgba(255,255,255,.7);border-radius:999px;padding:.55rem 1rem;color:#fff;font-size:.85rem}
.story-like{background:none;border:0;color:#fff;cursor:pointer}
.story-like svg{width:28px;height:28px;transition:transform .2s}
.story-like.on svg{fill:#ff3b5c;stroke:#ff3b5c;animation:pop .45s}

.bubble{position:absolute;z-index:4;display:flex;align-items:center;gap:.6rem;background:var(--card);border:1px solid var(--line);border-radius:16px;padding:.6rem .9rem .6rem .6rem;font-size:.82rem;line-height:1.3;box-shadow:0 12px 30px -12px rgba(0,0,0,.35);opacity:0;animation:notify 12s infinite}
.bubble small{color:var(--muted)}
.b-ico{display:grid;place-items:center;width:34px;height:34px;border-radius:50%;background:var(--paper2);font-size:1rem}
.b1{left:-70px;top:18%;animation-delay:.6s}
.b2{right:-60px;top:46%;animation-delay:4.6s}
.b3{left:-90px;bottom:16%;animation-delay:8.6s}
.note{position:absolute;right:-30px;top:-38px;font-size:1.6rem;transform:rotate(6deg);display:flex;align-items:flex-start}
.scribble{width:70px;height:40px;stroke:var(--rose);stroke-width:2;transform:scaleX(-1) rotate(20deg);margin-top:16px}

/* highlights */
.highlights{padding:1rem 0 2.5rem;text-align:center}
.hl-title{font-size:1.6rem;margin-bottom:1.2rem}
.hl-row{display:flex;justify-content:center;gap:clamp(1rem,4vw,2.6rem);overflow-x:auto;padding:.4rem .2rem 1rem;scrollbar-width:none}
.hl{display:flex;flex-direction:column;align-items:center;gap:.5rem;font-size:.85rem;flex-shrink:0;width:92px}
.hl b{font-weight:500;white-space:nowrap}
.ring{position:relative;display:grid;place-items:center;width:86px;height:86px;border-radius:50%;padding:3px;background:var(--ig);transition:transform .3s}
.ring::before{content:"";position:absolute;inset:3px;border-radius:50%;background:var(--paper)}
.ring img,.ring>span{position:relative;width:74px;height:74px;border-radius:50%;object-fit:cover}
.hl:hover .ring{transform:scale(1.07) rotate(-4deg)}
.hl-you .ring{background:none;border:1.5px dashed var(--muted)}
.hl-you .ring::before{display:none}
.hl-you .ring>span{display:grid;place-items:center;font-size:2rem;color:var(--muted);background:var(--card)}

/* ticker */
.ticker{overflow:hidden;background:var(--ink);color:var(--paper);padding:.95rem 0;transform:rotate(-1.2deg);margin:1rem -10px 0}
.ticker-track{display:flex;width:max-content;animation:marquee 38s linear infinite}
.ticker span{font:italic 1.6rem "Instrument Serif",serif;padding:0 1.4rem;white-space:nowrap;display:flex;align-items:center;gap:2.8rem}
.ticker span::after{content:"✺";font:normal 1rem "DM Sans";color:var(--blush)}

/* sections */
.section{padding:6.5rem 0}
.section.paper{background:var(--paper2)}
.head{display:flex;align-items:flex-end;flex-wrap:wrap;gap:.4rem 1.4rem;margin-bottom:3.2rem}
.head h2,.contact h2{font-size:clamp(2.8rem,6vw,4.6rem)}
.aside{font-size:1.5rem;transform:rotate(-2deg);padding-bottom:.4rem}

/* cases */
.case{display:grid;grid-template-columns:minmax(260px,.85fr) 2fr;gap:3rem;align-items:center;padding:3rem 0;border-top:1px dashed var(--line)}
.case:first-of-type{border-top:0;padding-top:0}
.case.flip{grid-template-columns:2fr minmax(260px,.85fr)}
.case.flip .case-info{order:2}
.case h3{font-size:2.8rem;margin-bottom:.8rem}
.case-info>p{color:#cfc5bd}
.results{display:flex;flex-wrap:wrap;gap:.7rem;margin-top:1.3rem}
.sticky{color:#1f1b19;font:600 1.3rem/1.15 Caveat,cursive;padding:.7rem .9rem;max-width:15rem;box-shadow:0 6px 14px -8px rgba(0,0,0,.4);transition:transform .3s}
.s1{background:var(--butter);transform:rotate(-2deg)}
.s2{background:#f5d6ca;transform:rotate(1.5deg)}
.s3{background:var(--sage);transform:rotate(-1deg)}
.sticky:hover{transform:rotate(0) scale(1.04)}
.case-links{display:flex;flex-wrap:wrap;gap:.5rem 1.2rem;margin-top:1.5rem}
.case-links a{display:inline-flex;align-items:center;gap:.4rem;font-weight:500;font-size:.92rem;border-bottom:1.5px solid var(--line);padding-bottom:2px;transition:.2s}
.case-links a:hover{color:var(--rose);border-color:var(--rose)}
.rail{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(190px,calc((100% - 2rem)/3));gap:1rem;overflow-x:auto;scroll-snap-type:x mandatory;padding:.5rem .3rem 1rem;scrollbar-width:thin;scrollbar-color:var(--line) transparent}
.grid-rail{grid-auto-flow:row;grid-template-columns:repeat(4,1fr);grid-auto-columns:auto;overflow:visible;gap:.6rem}
.tile{position:relative;aspect-ratio:9/16;border-radius:16px;overflow:hidden;border:0;background:var(--paper2);cursor:pointer;scroll-snap-align:start;padding:0;transition:transform .35s cubic-bezier(.2,.8,.3,1.3),box-shadow .35s;box-shadow:0 10px 25px -15px rgba(0,0,0,.5)}
.tile.sq{aspect-ratio:4/5;border-radius:6px}
.tile:hover{transform:translateY(-6px) rotate(-1deg);box-shadow:0 20px 35px -15px rgba(0,0,0,.55)}
.tile img,.tile video{width:100%;height:100%;object-fit:cover}
.tile.vid::before{content:"";position:absolute;top:10px;right:10px;width:22px;height:22px;z-index:2;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='3' width='18' height='18' rx='4'/%3E%3Cpath d='M3 8h18M8 3l3 5M14 3l3 5M10 12v5l4.5-2.5z'/%3E%3C/svg%3E") center/contain no-repeat;filter:drop-shadow(0 1px 2px rgba(0,0,0,.5))}
.tile.vid::after{content:"▶ Watch";position:absolute;left:10px;bottom:10px;z-index:2;color:#fff;font-size:.78rem;font-weight:700;background:rgba(0,0,0,.35);backdrop-filter:blur(6px);padding:.3rem .65rem;border-radius:999px;opacity:0;transform:translateY(6px);transition:.25s}
.tile.vid:hover::after{opacity:1;transform:none}
.burst{position:absolute;left:50%;top:50%;width:90px;height:90px;margin:-45px 0 0 -45px;z-index:5;pointer-events:none;fill:#fff;stroke:none;filter:drop-shadow(0 4px 12px rgba(0,0,0,.35));animation:burst .9s ease-out forwards}
.float-heart{position:absolute;bottom:14px;right:14px;width:22px;height:22px;z-index:5;pointer-events:none;fill:#ff3b5c;stroke:none;animation:floatup 1.4s ease-out forwards}

/* services */
.services{display:grid;grid-template-columns:1fr 1fr;gap:2.5rem;max-width:960px;margin-inline:auto}
.card{position:relative;background:var(--card);padding:2.6rem 2.4rem 2.2rem;display:flex;flex-direction:column;box-shadow:0 1px 0 var(--line),0 24px 40px -28px rgba(0,0,0,.5);transition:transform .4s}
.c1{transform:rotate(-1.2deg)}
.c2{transform:rotate(1deg);margin-top:2rem}
.card:hover{transform:rotate(0) translateY(-4px)}
.tape{position:absolute;top:-14px;left:50%;width:110px;height:28px;margin-left:-55px;background:rgba(232,180,160,.55);transform:rotate(-3deg)}
.c2 .tape{background:rgba(223,229,214,.85);transform:rotate(4deg)}
.card h3{font-size:2.4rem;margin-bottom:1.2rem}
.list{list-style:none;margin-bottom:2rem;flex:1}
.list li{padding:.5rem 0 .5rem 1.8rem;border-bottom:1px dashed var(--line);position:relative}
.list li::before{content:"✓";position:absolute;left:.1rem;top:.15rem;font:700 1.35rem Caveat,cursive;color:var(--rose)}
.card .btn{align-self:flex-start}

/* reviews as DMs */
.reviews{display:grid;grid-template-columns:1fr 1fr;gap:2rem;align-items:start}
.dm{background:var(--card);border-radius:22px;border:1px solid var(--line);overflow:hidden;box-shadow:0 24px 40px -30px rgba(0,0,0,.5)}
.dm:nth-child(2){margin-top:3rem}
.dm-head{display:flex;align-items:center;gap:.75rem;padding:.9rem 1.1rem;border-bottom:1px solid var(--line)}
.dm-head>span:nth-child(2){flex:1;display:flex;flex-direction:column;line-height:1.25}
.dm-head small{color:var(--muted)}
.dm-head a{color:var(--muted);transition:.2s}
.dm-head a:hover{color:var(--rose)}
.dm-av{display:grid;place-items:center;width:40px;height:40px;border-radius:50%;background:var(--ig);color:#fff;font:italic 1.3rem "Instrument Serif",serif}
.dm-body{position:relative;padding:1.3rem 1.1rem 1.8rem}
.msg{background:var(--paper2);border-radius:20px 20px 20px 6px;padding:1rem 1.15rem;font-size:.97rem;color:#e6ddd6}
.react{position:absolute;left:1.6rem;bottom:.55rem;background:var(--card);border:1px solid var(--line);border-radius:999px;padding:.05rem .45rem;font-size:.85rem;transform:scale(0);transition:transform .35s cubic-bezier(.3,1.6,.5,1) 1.6s}
.typing{position:absolute;left:1.1rem;top:1.3rem;display:inline-flex;gap:4px;background:var(--paper2);border-radius:18px;padding:.75rem 1rem;transition:opacity .2s .9s}
.dm.in .typing{opacity:0}
.typing i{width:7px;height:7px;border-radius:50%;background:var(--muted);animation:typing 1s infinite}
.typing i:nth-child(2){animation-delay:.15s}.typing i:nth-child(3){animation-delay:.3s}
.dm .msg{opacity:0;transform:translateY(8px) scale(.98);transform-origin:bottom left;transition:opacity .4s ease 1s,transform .4s ease 1s}
.dm.in .msg{opacity:1;transform:none}
.dm.in .react{transform:scale(1)}

/* contact */
.contact{display:grid;grid-template-columns:.85fr 1.15fr;gap:3.5rem;align-items:start}
.contact-side{position:sticky;top:100px}
.contact-side .lead{margin:1.2rem 0 1.6rem}
.contact-list{list-style:none;display:grid;gap:.9rem}
.contact-list a,.contact-list span{display:inline-flex;align-items:center;gap:.7rem;font-weight:500;overflow-wrap:anywhere}
.contact-list svg{width:20px;height:20px;color:var(--rose)}
.contact-list a:hover{color:var(--rose)}
.note2{font-size:1.5rem;margin-top:2rem;transform:rotate(-2deg)}
.form-card{background:#fff;border-radius:18px;overflow:hidden;box-shadow:0 1px 0 var(--line),0 30px 60px -30px rgba(0,0,0,.5)}
.form-card iframe{display:block;width:100%;min-height:760px;border:0;background:#fff}
.form-alt{display:block;text-align:center;font-size:.85rem;color:var(--muted);padding:.8rem;border-top:1px solid #eee}
.form-alt:hover{color:var(--rose)}

/* footer */
.footer{padding:3.5rem 0 1.5rem;border-top:1px solid var(--line)}
.foot-top{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1.5rem;padding-bottom:2.5rem}
.brand.big{font-size:2.4rem}
.foot-links{display:flex;flex-wrap:wrap;gap:.6rem}
.foot-links a{display:inline-flex;align-items:center;gap:.45rem;padding:.55rem 1.1rem;border:1.5px solid var(--ink);border-radius:999px;font-weight:500;font-size:.92rem;transition:.2s}
.foot-links a:hover{background:var(--ink);color:var(--paper)}
.foot-bar{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.8rem;padding-top:1.4rem;border-top:1px dashed var(--line);color:var(--muted);font-size:.86rem}
.kl29{display:inline-flex;align-items:center;gap:.45rem}
.kl29 img{width:20px;height:20px;border-radius:50%}
.kl29 b{color:var(--ink);font-weight:700}
.kl29:hover b{color:var(--rose)}

/* lightbox */
.lightbox{position:fixed;inset:0;z-index:150;background:rgba(31,27,25,.9);backdrop-filter:blur(8px);display:grid;place-items:center;opacity:0;pointer-events:none;transition:.25s;padding:16px}
.lightbox.on{opacity:1;pointer-events:auto}
.lb-body{transform:scale(.94);transition:transform .3s}
.lightbox.on .lb-body{transform:none}
.lb-body img,.lb-body video{max-height:88vh;max-width:min(92vw,520px);border-radius:16px}
.lb-close{position:absolute;top:16px;right:16px;width:44px;height:44px;border-radius:50%;border:0;background:var(--paper);color:var(--ink);font-size:1.6rem;cursor:pointer}

/* reveal: feed-style pop in */
.reveal{opacity:0;transform:translateY(26px) scale(.98);transition:opacity .7s ease var(--d,0s),transform .8s cubic-bezier(.2,.8,.3,1.15) var(--d,0s)}
.reveal.in{opacity:1;transform:none}

/* keyframes */
@keyframes bar{0%{transform:scaleX(0)}33.3%,100%{transform:scaleX(1)}}
@keyframes bar2{0%,33.3%{transform:scaleX(0)}66.6%,100%{transform:scaleX(1)}}
@keyframes bar3{0%,66.6%{transform:scaleX(0)}100%{transform:scaleX(1)}}
@keyframes kenburns{from{transform:scale(1)}to{transform:scale(1.08) translateX(-2%)}}
@keyframes notify{0%{opacity:0;transform:translateY(12px) scale(.9)}3%,28%{opacity:1;transform:none}32%,100%{opacity:0;transform:translateY(-8px) scale(.96)}}
@keyframes marquee{to{transform:translateX(-50%)}}
@keyframes pop{0%{transform:scale(1)}40%{transform:scale(1.35)}100%{transform:scale(1)}}
@keyframes burst{0%{transform:scale(0);opacity:0}15%{transform:scale(1.2);opacity:1}30%{transform:scale(.95)}45%{transform:scale(1)}80%{opacity:1}100%{transform:scale(1) translateY(-30px);opacity:0}}
@keyframes floatup{0%{transform:none;opacity:1}100%{transform:translate(-14px,-120px) scale(1.4) rotate(-15deg);opacity:0}}
@keyframes typing{0%,60%,100%{transform:none;opacity:.5}30%{transform:translateY(-4px);opacity:1}}
@keyframes hide{to{display:none;height:0;padding:0;margin:0}}

@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation:none!important;transition:none!important}
  .reveal,.dm .msg{opacity:1;transform:none}
  .bubble{opacity:1}
  .typing{display:none}
  .react{transform:scale(1)}
  html{scroll-behavior:auto}
}

/* responsive */
@media (max-width:980px){
  .bubble.b1{left:-30px}.bubble.b2{right:-30px}.bubble.b3{left:-40px}
}
@media (max-width:900px){
  .nav-toggle{display:flex}
  .nav-links{position:absolute;top:68px;left:0;right:0;flex-direction:column;align-items:flex-start;gap:1.1rem;padding:1.4rem 16px 1.6rem;background:var(--paper);border-bottom:1px solid var(--line);display:none;font-size:1.1rem}
  .nav.open .nav-links{display:flex}
  .hero{grid-template-columns:1fr;padding-top:2.5rem;gap:3.5rem}
  .hero-story{margin:0 auto;width:min(300px,78%)}
  .case,.case.flip{grid-template-columns:1fr;gap:1.6rem}
  .case.flip .case-info{order:0}
  .rail{grid-auto-columns:58%}
  .grid-rail{grid-template-columns:repeat(2,1fr)}
  .services,.reviews,.contact{grid-template-columns:1fr}
  .c2,.dm:nth-child(2){margin-top:0}
  .contact-side{position:static}
  .section{padding:4.5rem 0}
  .hl-row{justify-content:flex-start}
}
@media (max-width:520px){
  .bubble{font-size:.74rem;padding:.45rem .7rem .45rem .45rem}
  .b-ico{width:28px;height:28px}
  .bubble.b1{left:-34px}.bubble.b2{right:-34px}.bubble.b3{left:-40px}
  .note{right:-12px;font-size:1.35rem}
  .card{padding:2.2rem 1.5rem 1.8rem}
  .hero h1 em{padding-left:.3em}
}
[hidden]{display:none!important}
.b4{right:-50px;bottom:6%}

/* --- Shrinking floating navbar on scroll --- */
.nav{transition:padding .5s cubic-bezier(.2,.8,.2,1),background-color .4s,border-color .4s}
.nav-in{border:1px solid transparent;border-radius:0;transition:width .55s cubic-bezier(.2,.8,.2,1),height .5s cubic-bezier(.2,.8,.2,1),padding .5s,border-radius .5s,background-color .4s,border-color .4s,box-shadow .4s}
.brand{transition:font-size .45s}
.brand img{transition:width .45s,height .45s,transform .4s}
.nav-links{transition:gap .45s}
.nav .btn-sm{transition:padding .45s,transform .2s,box-shadow .2s}
.nav.scrolled{padding-top:12px;background-color:transparent;border-bottom-color:transparent;backdrop-filter:none;-webkit-backdrop-filter:none}
.nav.scrolled .nav-in{height:56px;width:min(860px,100% - 24px);padding:0 .45rem 0 1.1rem;border-radius:999px;background-color:rgba(30,32,24,.82);border-color:var(--line);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);box-shadow:0 14px 34px -14px rgba(0,0,0,.7)}
.nav.scrolled .brand{font-size:1.3rem}
.nav.scrolled .brand img{width:28px;height:28px}
.nav.scrolled .nav-links{gap:1.2rem}
.nav.scrolled .btn-sm{padding:.5rem 1rem}
@media (max-width:900px){
  .nav.scrolled .nav-in{padding:0 .4rem 0 1rem}
  .nav.scrolled .nav-toggle{width:40px;height:40px}
  .nav.scrolled .nav-links{top:76px;left:12px;right:12px;border:1px solid var(--line);border-radius:22px;background:rgba(30,32,24,.97)}
}
@media (prefers-reduced-motion:reduce){.nav,.nav-in{transition:none}}

/* ================= Light theme ================= */
[data-theme="light"]{--paper:#f1e6d4;--paper2:#e9dcc7;--card:#f7eedf;--ink:#1f1b19;--muted:#6e6358;--line:#d8c8b0;--rose:#b8664c}
[data-theme="light"] body::before{mix-blend-mode:multiply;opacity:.35}
[data-theme="light"] .nav{background-color:rgba(241,230,212,.88)}
[data-theme="light"] .nav.scrolled{background-color:transparent}
[data-theme="light"] .nav.scrolled .nav-in{background-color:rgba(247,238,223,.9);box-shadow:0 14px 34px -16px rgba(60,40,30,.35)}
[data-theme="light"] .lead,[data-theme="light"] .case-info>p{color:#463e3a}
[data-theme="light"] .msg{color:#3a3330}
[data-theme="light"] .role{background:linear-gradient(transparent 60%,var(--butter) 60%)}
[data-theme="light"] .card,[data-theme="light"] .dm,[data-theme="light"] .tile,[data-theme="light"] .form-card,[data-theme="light"] .bubble{box-shadow:0 1px 0 var(--line),0 24px 40px -28px rgba(60,40,30,.45)}
@media (max-width:900px){[data-theme="light"] .nav.scrolled .nav-links{background:rgba(247,238,223,.98)}}

/* ================= Theme toggle ================= */
.nav-in{gap:1rem}
.nav-links{margin-left:auto}
.theme-toggle{position:relative;display:grid;place-items:center;width:40px;height:40px;border-radius:50%;border:1.5px solid var(--line);background:var(--card);color:var(--ink);cursor:pointer;overflow:hidden;flex-shrink:0;transition:border-color .2s,transform .2s,width .45s,height .45s}
.theme-toggle:hover{border-color:var(--rose);transform:rotate(-12deg)}
.theme-toggle svg{position:absolute;width:19px;height:19px;transition:transform .55s cubic-bezier(.5,1.6,.4,1),opacity .35s}
.t-sun{transform:translateY(0) rotate(0);opacity:1}
.t-moon{transform:translateY(130%) rotate(-90deg);opacity:0}
[data-theme="light"] .t-sun{transform:translateY(-130%) rotate(90deg);opacity:0}
[data-theme="light"] .t-moon{transform:none;opacity:1}
.nav.scrolled .theme-toggle{width:36px;height:36px}
@media (max-width:900px){.nav-toggle{margin-left:-.4rem}}

/* smooth colour change (fallback when View Transitions unsupported) */
html.theming *,html.theming *::before,html.theming *::after{transition:background-color .45s ease,color .45s ease,border-color .45s ease,fill .45s ease!important}
/* circular reveal from the toggle */
::view-transition-old(root),::view-transition-new(root){animation:none;mix-blend-mode:normal}
@media (max-width:900px){.theme-toggle{margin-left:auto}.nav-toggle{margin-left:0}}

/* ================= Frame brand: logo + olive ================= */
:root{--olive:#5f5e25;--olive-ink:#f5efe2}
:root:not([data-theme="light"]){
  --paper:#12130d;--paper2:#181a12;--card:#20221a;--line:#34362a;--muted:#a5a28f;
  --rose:#c9c77f;--blush:#8e8c4c;--sage:#d9dfc6}
[data-theme="light"]{--rose:#5f5e25;--blush:#a3a165;--line:#d6cbb0;--paper2:#e8e0c9;--muted:#6a6550}

.brand{gap:.65rem}
.brand img{border-radius:9px}
.wordmark{display:block;width:97px;height:30px;background:var(--ink);-webkit-mask:url(assets/img/brand/wordmark.png) left center/contain no-repeat;mask:url(assets/img/brand/wordmark.png) left center/contain no-repeat;transition:width .45s,height .45s}
.nav.scrolled .wordmark{width:77px;height:24px}
.brand.big img{width:52px;height:52px;border-radius:12px}
.brand.big .wordmark{width:168px;height:52px}

.btn{background:var(--olive);border-color:var(--olive);color:var(--olive-ink)}
.btn:hover{box-shadow:3px 3px 0 var(--ink)}
.btn-line{background:transparent;color:var(--ink);border-color:var(--ink)}
.btn-line:hover{background:var(--card)}

.s2{background:var(--olive);color:var(--olive-ink)}
.s3{background:var(--sage)}
.tape{background:rgba(95,94,37,.5)}
.c2 .tape{background:rgba(217,223,198,.8)}

.ticker{background:var(--olive);color:var(--olive-ink)}
.ticker span::after{color:#e9df9c}

.role{background:linear-gradient(transparent 62%,rgba(201,199,127,.28) 62%)}
[data-theme="light"] .role{background:linear-gradient(transparent 60%,rgba(95,94,37,.2) 60%)}
.dm-av{background:var(--olive)}
.hl-you .ring{border-color:var(--rose)}
.hl-you .ring>span{color:var(--rose)}
.list li::before{color:var(--rose)}
.theme-toggle:hover{border-color:var(--rose)}
.nav-links a:not(.btn):not(.nav-ig)::after{background:var(--rose)}
.dot{background:var(--rose)}
.story-head img{border-radius:50%}

/* services: 3 packages */
.services{grid-template-columns:repeat(auto-fit,minmax(290px,1fr));max-width:1160px;gap:2.2rem;align-items:start}
.card .list{margin-bottom:1.4rem}
.card-desc{color:var(--muted);font-size:.95rem;margin-bottom:.9rem}
.card-note{font-size:1.45rem;transform:rotate(-2deg);margin-bottom:1.4rem}
.services .card:nth-child(3){transform:rotate(-.6deg);margin-top:.8rem}
.services .card:nth-child(3) .tape{background:rgba(233,223,156,.75);transform:rotate(-5deg)}
.services .card:nth-child(3):hover{transform:rotate(0) translateY(-4px)}
@media (max-width:900px){.services .card:nth-child(3){margin-top:0}}
.rail .tile.sq{border-radius:12px}
