/* Almali Studio v2 — "paper atelier" */
:root{
  --paper:#F2EDE3;
  --paper-2:#EAE4D6;
  --ink:#171310;
  --ink-soft:#4A4238;
  --red:#C6362B;
  --line:rgba(23,19,16,.14);
  --serif:'Cormorant',Georgia,serif;
  --sans:'Inter Tight',-apple-system,'Segoe UI',sans-serif;
  --mono:'IBM Plex Mono',ui-monospace,monospace;
  --pad:clamp(20px,5vw,72px);
  --ease:cubic-bezier(.22,1,.36,1);
}
*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:auto}
html.lenis,html.lenis body{height:auto}
.lenis.lenis-smooth{scroll-behavior:auto!important}
body{
  background:var(--paper);
  color:var(--ink);
  font-family:var(--sans);
  font-size:17px;line-height:1.55;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}
::selection{background:var(--red);color:var(--paper)}
a{color:inherit;text-decoration:none}
img{display:block;max-width:100%}
.mono{font-family:var(--mono);font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-soft)}

/* grain */
.grain{position:fixed;inset:-50%;width:200%;height:200%;pointer-events:none;z-index:2000;opacity:.05;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='300' height='300'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='2'/%3E%3C/filter%3E%3Crect width='300' height='300' filter='url(%23n)'/%3E%3C/svg%3E");
  animation:grain 8s steps(10) infinite}
@keyframes grain{
  0%,100%{transform:translate(0,0)}10%{transform:translate(-5%,-8%)}20%{transform:translate(-12%,3%)}
  30%{transform:translate(6%,-10%)}40%{transform:translate(-4%,12%)}50%{transform:translate(-10%,4%)}
  60%{transform:translate(12%,0)}70%{transform:translate(0,10%)}80%{transform:translate(3%,12%)}90%{transform:translate(-8%,4%)}
}

/* cursor */
.cursor,.cursor-dot{position:fixed;top:0;left:0;pointer-events:none;z-index:3000;border-radius:50%;display:none}
.cursor{width:36px;height:36px;border:1px solid var(--ink);transition:width .3s var(--ease),height .3s var(--ease),background .3s,border-color .3s;transform:translate(-50%,-50%)}
.cursor-dot{width:6px;height:6px;background:var(--red);transform:translate(-50%,-50%)}
.cursor.is-hover{width:64px;height:64px;background:rgba(198,54,43,.12);border-color:var(--red)}
@media (hover:hover) and (pointer:fine){
  .cursor,.cursor-dot{display:block}
  body{cursor:none}
  a,summary,button{cursor:none}
}

/* nav */
.nav{position:fixed;top:0;left:0;right:0;z-index:1000;
  display:flex;align-items:center;justify-content:space-between;gap:16px;
  padding:18px var(--pad);
  transition:background .4s,box-shadow .4s,padding .4s var(--ease)}
.nav.is-scrolled{background:rgba(242,237,227,.88);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);box-shadow:0 1px 0 var(--line);padding:12px var(--pad)}
.brand{font-family:var(--serif);font-weight:600;font-size:22px;letter-spacing:.01em;white-space:nowrap}
.brand sup{font-size:.5em;color:var(--red)}
.brand span{font-family:var(--mono);font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-soft);margin-left:8px;font-weight:400}
.nav-meta{display:none}
.nav-links{display:flex;align-items:center;gap:4px}
.nav-links a{font-family:var(--mono);font-size:11px;letter-spacing:.1em;text-transform:uppercase;padding:8px 12px;border-radius:99px;transition:color .25s}
.nav-links a:hover{color:var(--red)}
.nav-links .nav-cta{border:1px solid var(--ink);margin-left:8px;white-space:nowrap;transition:background .3s,color .3s,border-color .3s}
.nav-links .nav-cta:hover{background:var(--ink);color:var(--paper);border-color:var(--ink)}
.nav-links a:not(.nav-cta){display:none}
@media (min-width:900px){
  .nav-meta{display:block}
  .nav-links a:not(.nav-cta){display:inline-block}
}

/* hero */
.hero{min-height:100svh;display:flex;flex-direction:column;justify-content:center;
  padding:100px var(--pad) 48px;position:relative}
.hero-eyebrow{color:var(--red);margin-bottom:28px}
.hero-title{font-family:var(--serif);font-weight:400;
  font-size:clamp(42px,9.6vw,132px);line-height:1;letter-spacing:-.02em}
.hero-title .line{display:block;overflow:hidden}
.hero-title .line>span{display:inline-block;will-change:transform}
.hero-title em{font-style:italic;font-weight:500;color:var(--red)}
.hero-foot{margin-top:clamp(26px,4vw,48px);max-width:640px;display:flex;flex-direction:column;gap:22px}
.hero-sub{font-size:clamp(17px,1.6vw,21px);line-height:1.5;color:var(--ink-soft);max-width:560px}
.hero-ctas{display:flex;flex-wrap:wrap;gap:14px}
.hero-trust{color:var(--ink-soft)}
.hero-scroll{position:absolute;bottom:28px;right:var(--pad);writing-mode:vertical-rl;color:var(--ink-soft)}

/* buttons */
.btn{display:inline-flex;align-items:center;gap:10px;
  font-family:var(--mono);font-size:12px;letter-spacing:.12em;text-transform:uppercase;
  padding:16px 28px;border-radius:99px;border:1px solid var(--ink);
  transition:background .35s var(--ease),color .35s var(--ease),border-color .35s;will-change:transform}
.btn .arr{transition:transform .35s var(--ease)}
.btn:hover .arr{transform:translate(3px,-3px)}
.btn-solid{background:var(--ink);color:var(--paper)}
.btn-solid:hover{background:var(--red);border-color:var(--red)}
.btn-ghost{background:transparent;color:var(--ink)}
.btn-ghost:hover{background:var(--ink);color:var(--paper)}
.btn.big{padding:22px 40px;font-size:13px}

/* marquee */
.marquee{border-top:1px solid var(--line);border-bottom:1px solid var(--line);overflow:hidden;padding:14px 0;background:var(--paper-2)}
.marquee-track{display:flex;width:max-content;animation:marquee 28s linear infinite}
.marquee-track span{font-family:var(--serif);font-size:20px;font-style:italic;white-space:nowrap;color:var(--ink-soft)}
.marquee-track i{font-style:normal;color:var(--red);font-size:9px;vertical-align:middle;margin:0 14px}
@keyframes marquee{to{transform:translateX(-50%)}}

/* sections */
.section{padding:clamp(80px,12vw,160px) var(--pad)}
.section-head{margin-bottom:clamp(48px,7vw,96px);max-width:1100px}
.label{color:var(--red);margin-bottom:22px}
h2{font-family:var(--serif);font-weight:400;font-size:clamp(38px,6.5vw,92px);line-height:1.02;letter-spacing:-.015em}
h2 em{font-style:italic;color:var(--red);font-weight:500}
h2 .line{display:block;overflow:hidden}
h2 .line>span{display:inline-block;will-change:transform}
.section-note{margin-top:24px;max-width:480px;color:var(--ink-soft);font-size:16px}

/* reveal */
[data-reveal]{opacity:0;transform:translateY(28px);transition:opacity .9s var(--ease),transform .9s var(--ease)}
[data-reveal].is-in{opacity:1;transform:none}

/* work */
.work-item{display:grid;gap:26px;margin-bottom:clamp(72px,10vw,140px);align-items:end}
@media (min-width:900px){
  .work-item{grid-template-columns:1.5fr 1fr;gap:48px}
  .work-item.flip .work-media{order:2}
  .work-item.flip .work-info{order:1}
}
.work-media{overflow:hidden;border-radius:4px;aspect-ratio:16/10;background:var(--paper-2);box-shadow:0 30px 80px -30px rgba(23,19,16,.35)}
.work-media img{width:100%;height:118%;object-fit:cover;object-position:top;will-change:transform;
  transition:transform .6s var(--ease)}
.work-item:hover .work-media img{transform:scale(1.03)}
.work-info{display:flex;flex-direction:column;gap:14px;padding-bottom:6px}
.work-num{color:var(--red)}
.work-info h3{font-family:var(--serif);font-weight:500;font-size:clamp(30px,3.4vw,48px);line-height:1;letter-spacing:-.01em}
.work-info h3 em{font-style:italic;color:var(--red);font-weight:500}
.work-info p{color:var(--ink-soft);font-size:16px;max-width:400px}
.work-meta{display:flex;justify-content:space-between;gap:16px;border-top:1px solid var(--line);padding-top:14px;max-width:400px}
.work-meta a{color:var(--red);border-bottom:1px solid transparent;transition:border-color .3s}
.work-meta a:hover{border-color:var(--red)}

/* about */
.about{background:var(--ink);color:var(--paper)}
.about .label{color:var(--red)}
.about h2{color:var(--paper)}
.about .mono{color:rgba(242,237,227,.55)}
.about-grid{display:grid;gap:36px}
@media (min-width:900px){.about-grid{grid-template-columns:1.2fr 1fr;gap:72px}}
.about-lead{font-family:var(--serif);font-size:clamp(21px,2.4vw,30px);line-height:1.4;font-weight:400}
.about-list{list-style:none;display:flex;flex-direction:column}
.about-list li{padding:20px 0;border-top:1px solid rgba(242,237,227,.16);font-size:16px;color:rgba(242,237,227,.85);display:flex;gap:16px}
.about-list li:last-child{border-bottom:1px solid rgba(242,237,227,.16)}
.about-list .mono{color:var(--red);flex-shrink:0;padding-top:4px}

/* process */
.steps{list-style:none;display:grid;gap:0;counter-reset:step}
.steps li{border-top:1px solid var(--line);padding:34px 0;display:grid;gap:8px;position:relative}
.steps li:last-child{border-bottom:1px solid var(--line)}
@media (min-width:900px){
  .steps{grid-template-columns:repeat(4,1fr);gap:32px}
  .steps li{border-bottom:none!important;padding-right:8px}
}
.step-num{color:var(--red)}
.steps h4{font-family:var(--serif);font-size:clamp(24px,2.4vw,34px);font-weight:500;margin-top:6px}
.steps p{color:var(--ink-soft);font-size:15px}

/* pricing */
.pricing{background:var(--paper-2)}
.price-grid{display:grid;gap:24px;max-width:1080px}
@media (min-width:860px){.price-grid{grid-template-columns:1fr 1fr;gap:32px;align-items:stretch}}
.price-card{background:var(--paper);border:1px solid var(--line);border-radius:6px;padding:clamp(28px,3.4vw,48px);display:flex;flex-direction:column;gap:22px}
.price-card.founding{background:var(--ink);color:var(--paper);border-color:var(--ink)}
.price-card.founding .mono{color:rgba(242,237,227,.55)}
.price-card.founding .price-tag{color:var(--red)}
.price-tag{color:var(--red)}
.price-value{font-family:var(--serif);font-size:clamp(40px,4.6vw,64px);font-weight:500;line-height:1;letter-spacing:-.01em}
.price-value span{font-size:.42em;color:var(--ink-soft)}
.price-card.founding .price-value span{color:rgba(242,237,227,.55)}
.price-value s{font-size:.36em;color:var(--ink-soft);font-weight:400;margin-left:10px}
.price-card ul{list-style:none;display:flex;flex-direction:column;gap:10px;flex:1}
.price-card li{padding-left:22px;position:relative;font-size:15.5px;color:var(--ink-soft)}
.price-card.founding li{color:rgba(242,237,227,.8)}
.price-card li::before{content:"●";position:absolute;left:0;top:3px;font-size:8px;color:var(--red)}
.price-note{padding-top:14px;border-top:1px solid var(--line)}
.price-card.founding .price-note{border-color:rgba(242,237,227,.16)}
.price-card .btn{align-self:flex-start}

/* faq */
.faq-list{max-width:860px}
.faq-list details{border-top:1px solid var(--line)}
.faq-list details:last-child{border-bottom:1px solid var(--line)}
.faq-list summary{list-style:none;display:flex;align-items:center;justify-content:space-between;gap:20px;
  padding:26px 0;font-family:var(--serif);font-size:clamp(20px,2.2vw,28px);font-weight:500;line-height:1.2;
  transition:color .3s;-webkit-tap-highlight-color:transparent}
.faq-list summary::-webkit-details-marker{display:none}
.faq-list summary:hover{color:var(--red)}
.plus{position:relative;width:18px;height:18px;flex-shrink:0}
.plus::before,.plus::after{content:"";position:absolute;background:currentColor;transition:transform .4s var(--ease)}
.plus::before{left:0;top:8px;width:18px;height:1.5px}
.plus::after{left:8.25px;top:0;width:1.5px;height:18px}
details[open] .plus::after{transform:rotate(90deg) scaleY(0)}
details[open] .plus::before{transform:rotate(180deg)}
.faq-body{overflow:hidden}
.faq-body p{padding:0 0 28px;max-width:640px;color:var(--ink-soft);font-size:16px}

/* contact */
.contact{background:var(--ink);color:var(--paper);text-align:left;padding-bottom:clamp(100px,14vw,180px)}
.contact .label{color:var(--red)}
.contact h2{color:var(--paper);margin:22px 0 44px}
.contact-ctas{display:flex;gap:16px;flex-wrap:wrap}
.contact-note{margin-top:26px;color:rgba(242,237,227,.5)}

.contact .btn-solid{background:var(--paper);color:var(--ink);border-color:var(--paper)}
.contact .btn-solid:hover{background:var(--red);color:var(--paper);border-color:var(--red)}

/* footer */
.footer{background:var(--ink);color:var(--paper);padding:0 var(--pad) 36px;border-top:1px solid rgba(242,237,227,.12)}
.footer-big{font-family:var(--serif);font-weight:500;font-size:clamp(72px,17vw,260px);line-height:1;letter-spacing:-.02em;padding:30px 0 40px;color:var(--paper)}
.footer-big sup{font-size:.18em;color:var(--red)}
.footer-row{display:flex;flex-wrap:wrap;gap:12px 32px;justify-content:space-between;border-top:1px solid rgba(242,237,227,.12);padding-top:22px;color:rgba(242,237,227,.5)}
.footer-row a{color:rgba(242,237,227,.8);transition:color .3s}
.footer-row a:hover{color:var(--red)}

/* reduced motion */
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}
  [data-reveal]{opacity:1;transform:none}
  .grain{animation:none}
}
