/* Layout concept: one committed dark look (ink black with a blue cast, bone text, the logo's vermilion as the only accent).
   Left-aligned, photo-first. Indexes are ruled lists, not card grids. Display face: Bricolage Grotesque. Body: Instrument Sans. */
:root{
  --bg:#0e1116; --bg2:#141922; --fg:#ece8e2; --muted:#a4acb8; --line:#27303c;
  --accent:#d03810; --accent-fg:#ffffff; --accent-text:#ff8059; --wa:#1fa855;
  --display:"Bricolage Grotesque","Helvetica Neue",Arial,sans-serif;
  --body:"Instrument Sans","Helvetica Neue",Arial,sans-serif;
  --gl:max(16px,env(safe-area-inset-left,0px)); --gr:max(16px,env(safe-area-inset-right,0px));
  --max:1180px;
  color-scheme:dark;
}
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{margin:0;background:var(--bg);color:var(--fg);font:400 1.0625rem/1.65 var(--body);overflow-wrap:break-word}
body::before{content:"";position:fixed;inset:0 0 auto;height:env(safe-area-inset-top,0px);background:var(--bg);z-index:60}
img{max-width:100%;height:auto;display:block}
a{color:var(--accent-text);text-underline-offset:.18em;text-decoration-thickness:1px}
a:hover{text-decoration-thickness:2px}
:focus-visible{outline:3px solid var(--accent-text);outline-offset:3px;border-radius:2px}
h1,h2,h3{font-family:var(--display);font-weight:700;line-height:1.08;letter-spacing:-.025em;margin:0;text-wrap:balance}
h1{font-size:clamp(2.35rem,6.2vw,4.5rem);letter-spacing:-.035em;line-height:1.02}
h2{font-size:clamp(1.65rem,3.4vw,2.45rem)}
h3{font-size:1.2rem;letter-spacing:-.015em}
p{margin:0 0 1em;max-width:68ch}
ul,ol{margin:0 0 1em;padding-left:1.2em;max-width:68ch}
li{margin:.3em 0}
.wrap{width:100%;max-width:var(--max);margin-inline:auto;padding-left:var(--gl);padding-right:var(--gr)}
.skip{position:absolute;left:-999px;top:0;background:var(--accent);color:#fff;padding:.7em 1em;z-index:100}
.skip:focus{left:var(--gl);top:calc(8px + env(safe-area-inset-top,0px))}
.lead{font-size:clamp(1.12rem,2vw,1.32rem);line-height:1.55;color:var(--fg);max-width:60ch}
.muted{color:var(--muted)}
.label{font-size:.82rem;letter-spacing:.04em;color:var(--muted)}

/* header */
.site-head{position:sticky;top:env(safe-area-inset-top,0px);z-index:50;background:rgba(14,17,22,.92);backdrop-filter:blur(10px);border-bottom:1px solid var(--line)}
.site-head .wrap{display:flex;align-items:center;gap:20px;min-height:68px;flex-wrap:wrap}
.brand{display:flex;align-items:center;gap:12px;color:var(--fg);text-decoration:none;font-family:var(--display);font-weight:700;font-size:1.2rem;letter-spacing:-.02em}
.brand img{width:40px;height:40px;border-radius:50%}
.nav{display:none;margin-left:auto;gap:4px 22px;flex-wrap:wrap}
.nav a{color:var(--fg);text-decoration:none;font-size:.97rem;padding:.4em 0;border-bottom:2px solid transparent}
.nav a:hover,.nav a[aria-current="page"]{border-bottom-color:var(--accent)}
.head-cta{margin-left:auto}
.menu-btn{margin-left:10px;background:none;border:1px solid var(--line);color:var(--fg);font:inherit;padding:.5em .9em;border-radius:6px;cursor:pointer}
.nav.open{display:flex;flex-direction:column;width:100%;margin:0 0 14px;padding:6px 0 4px;order:5}
.menu-btn{margin-left:auto}
@media(max-width:480px){.head-cta{display:none}}
@media(min-width:481px){.menu-btn{margin-left:10px}}
.nav.open a{padding:.7em 0;border-bottom:1px solid var(--line)}
@media(min-width:1020px){.nav{display:flex}.menu-btn{display:none}.head-cta{margin-left:0}}

/* buttons */
.btn{display:inline-flex;align-items:center;gap:.6em;font:600 1rem/1 var(--body);padding:1em 1.5em;border-radius:999px;border:1.5px solid var(--accent);background:var(--accent);color:var(--accent-fg);text-decoration:none;cursor:pointer;transition:background-color .15s,border-color .15s}
.btn:hover{background:#e0451a;border-color:#e0451a;text-decoration:none}
.btn.ghost{background:transparent;color:var(--fg);border-color:var(--line)}
.btn.ghost:hover{border-color:var(--fg);background:transparent}
.btn.sm{padding:.7em 1.1em;font-size:.93rem}
.btn svg{width:1.15em;height:1.15em;flex:none}
.actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:28px}

/* hero (home) */
.hero{padding-block:clamp(36px,6vw,84px) clamp(40px,6vw,72px)}
.hero-grid{display:grid;gap:40px;grid-template-columns:minmax(0,1fr)}
@media(min-width:960px){.hero-grid{grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr);align-items:center}}
.hero h1{max-width:12ch}
.hero .tag{font-family:var(--display);font-weight:600;font-size:clamp(1.2rem,2.2vw,1.55rem);color:var(--accent-text);margin:18px 0 18px;letter-spacing:-.01em}
.stack{display:grid;grid-template-columns:1.1fr .9fr;gap:12px;align-items:start}
.stack figure:first-child{grid-row:span 2}
figure{margin:0}
figure img{width:100%;border-radius:4px;background:var(--bg2);object-fit:cover}
figcaption{font-size:.82rem;color:var(--muted);margin-top:8px;letter-spacing:.01em}
.stack figure:first-child img{aspect-ratio:2/3}
.stack figure:nth-child(2) img{aspect-ratio:1/1}
.stack figure:nth-child(3) img{aspect-ratio:1/1}

/* sections */
.sec{padding-block:clamp(44px,7vw,92px);border-top:1px solid var(--line)}
.sec-head{display:grid;gap:14px;margin-bottom:34px;grid-template-columns:minmax(0,1fr)}
@media(min-width:900px){.sec-head{grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:end}}
.sec-head p{margin:0;color:var(--muted)}

/* styles index */
.index{list-style:none;margin:0;padding:0;max-width:none}
.index li{margin:0;border-top:1px solid var(--line)}
.index li:last-child{border-bottom:1px solid var(--line)}
.index a{display:grid;grid-template-columns:minmax(0,1fr) 84px;gap:8px 24px;align-items:center;padding:20px 0;color:var(--fg);text-decoration:none}
.index .nm{font-family:var(--display);font-weight:700;font-size:clamp(1.5rem,3.6vw,2.5rem);letter-spacing:-.03em;line-height:1.05}
.index .sh{display:block;color:var(--muted);font-size:1rem;margin-top:6px;max-width:56ch}
.index img{width:84px;height:104px;object-fit:cover;border-radius:3px;justify-self:end;transition:transform .2s}
.index a:hover .nm{color:var(--accent-text)}
.index a:hover img{transform:scale(1.06)}
@media(min-width:760px){.index a{grid-template-columns:minmax(0,1fr) 120px}.index img{width:120px;height:140px}}

/* process: a real sequence */
.steps{list-style:none;padding:0;margin:0;max-width:none;display:grid;gap:26px;counter-reset:s;grid-template-columns:minmax(0,1fr)}
@media(min-width:900px){.steps{grid-template-columns:repeat(5,minmax(0,1fr))}}
.steps li{counter-increment:s;margin:0;padding-top:16px;border-top:2px solid var(--accent)}
.steps li::before{content:counter(s);display:block;font-family:var(--display);font-weight:700;font-size:1.8rem;color:var(--accent-text);margin-bottom:6px}
.steps b{display:block;font-family:var(--display);font-size:1.15rem;margin-bottom:4px}
.steps span{color:var(--muted);font-size:.98rem}

/* idea link groups */
.groups{display:grid;gap:34px 28px;grid-template-columns:minmax(0,1fr)}
@media(min-width:620px){.groups{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(min-width:960px){.groups{grid-template-columns:repeat(4,minmax(0,1fr))}}
.groups h3{margin-bottom:10px}
.groups ul{list-style:none;padding:0;margin:0}
.groups li{margin:0;border-top:1px solid var(--line)}
.groups li a{display:block;padding:.55em 0;color:var(--fg);text-decoration:none}
.groups li a:hover{color:var(--accent-text)}

/* studio block */
.split{display:grid;gap:36px;grid-template-columns:minmax(0,1fr)}
@media(min-width:900px){.split{grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);align-items:start}}
.split .logo-fig img{width:min(100%,320px);border-radius:50%}
.ticks{list-style:none;padding:0}
.ticks li{padding-left:1.4em;position:relative}
.ticks li::before{content:"";position:absolute;left:0;top:.72em;width:.7em;height:2px;background:var(--accent)}

/* quotes */
.quotes{display:grid;gap:30px;grid-template-columns:minmax(0,1fr)}
@media(min-width:900px){.quotes{grid-template-columns:repeat(3,minmax(0,1fr))}}
blockquote{margin:0;padding-left:18px;border-left:2px solid var(--accent)}
blockquote p{font-family:var(--display);font-size:1.25rem;line-height:1.35;letter-spacing:-.01em;color:var(--fg)}
blockquote cite{font-style:normal;color:var(--muted);font-size:.92rem}

/* faq */
.faq details{border-top:1px solid var(--line);padding:0}
.faq details:last-child{border-bottom:1px solid var(--line)}
.faq summary{cursor:pointer;list-style:none;padding:18px 36px 18px 0;font-family:var(--display);font-weight:600;font-size:1.15rem;letter-spacing:-.01em;position:relative}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";position:absolute;right:4px;top:50%;transform:translateY(-50%);font-size:1.5rem;color:var(--accent-text);transition:transform .2s}
.faq details[open] summary::after{transform:translateY(-50%) rotate(45deg)}
.faq details p{padding-bottom:18px;margin:0;color:var(--fg);opacity:.92}

/* article pages */
.crumbs{padding-top:22px;font-size:.9rem;color:var(--muted)}
.crumbs ol{list-style:none;padding:0;margin:0;display:flex;flex-wrap:wrap;gap:4px 10px;max-width:none}
.crumbs li{margin:0}
.crumbs li+li::before{content:"/";margin-right:10px;color:var(--line)}
.crumbs a{color:var(--muted)}
.page-head{padding-block:28px clamp(28px,4vw,48px)}
.page-head .lead{margin-top:18px}
.article{display:grid;gap:44px;grid-template-columns:minmax(0,1fr);padding-bottom:clamp(44px,7vw,92px)}
@media(min-width:1000px){.article{grid-template-columns:minmax(0,1fr) 320px}}
.article main>section{margin-top:clamp(34px,5vw,56px)}
.article main>section:first-child{margin-top:0}
.article h2{margin-bottom:16px}
.fig-lead{margin-bottom:clamp(28px,4vw,44px);max-width:560px}
.fig-lead img{aspect-ratio:auto}
.def{display:grid;gap:0;margin:0;max-width:none}
.def div{display:grid;gap:4px 24px;padding:16px 0;border-top:1px solid var(--line);grid-template-columns:minmax(0,1fr)}
.def div:last-child{border-bottom:1px solid var(--line)}
@media(min-width:700px){.def div{grid-template-columns:minmax(0,.42fr) minmax(0,1fr)}}
.def dt{font-family:var(--display);font-weight:600;font-size:1.12rem;letter-spacing:-.01em}
.def dd{margin:0;color:var(--fg);opacity:.93}
.linklist{list-style:none;padding:0;margin:0 0 1em;max-width:none}
.linklist li{margin:0;border-top:1px solid var(--line)}
.linklist li:last-child{border-bottom:1px solid var(--line)}
.linklist a{display:grid;gap:2px 24px;padding:14px 0;color:var(--fg);text-decoration:none;grid-template-columns:minmax(0,1fr)}
@media(min-width:700px){.linklist a{grid-template-columns:minmax(0,.42fr) minmax(0,1fr)}}
.linklist a b{font-family:var(--display);font-weight:600;font-size:1.12rem;color:var(--accent-text)}
.linklist a:hover b{text-decoration:underline}
.linklist a span{opacity:.93}
.pills{list-style:none;padding:0;margin:0 0 1em;display:flex;flex-wrap:wrap;gap:8px;max-width:none}
.pills li{margin:0}
.pills a{display:inline-block;padding:.45em 1em;border:1px solid var(--line);border-radius:999px;color:var(--fg);text-decoration:none;font-size:.97rem}
.pills a:hover{border-color:var(--accent-text);color:var(--accent-text)}
.strip{display:flex;gap:12px;flex-wrap:wrap}
.strip figure{flex:0 1 190px}
.strip img{aspect-ratio:4/5}
.aside{align-self:start}
@media(min-width:1000px){.aside{position:sticky;top:calc(92px + env(safe-area-inset-top,0px))}}
.cta-box{border:1px solid var(--line);background:var(--bg2);border-radius:8px;padding:22px}
.cta-box h2{font-size:1.4rem;margin-bottom:10px}
.cta-box p{color:var(--muted);font-size:.98rem}
.cta-box .btn{width:100%;justify-content:center}
.cta-box ul{list-style:none;padding:0;margin:16px 0 0}
.cta-box li{margin:0;border-top:1px solid var(--line)}
.cta-box li a{display:block;padding:.6em 0;color:var(--fg);text-decoration:none;font-size:.97rem}
.cta-box li a:hover{color:var(--accent-text)}
.related{display:grid;gap:12px;grid-template-columns:minmax(0,1fr)}
@media(min-width:700px){.related{grid-template-columns:repeat(3,minmax(0,1fr))}}
.related a{display:block;padding:18px;border:1px solid var(--line);border-radius:6px;color:var(--fg);text-decoration:none;font-family:var(--display);font-weight:600;font-size:1.1rem;line-height:1.2}
.related a:hover{border-color:var(--accent-text);color:var(--accent-text)}
.related small{display:block;margin-top:6px;font-family:var(--body);font-weight:400;font-size:.88rem;color:var(--muted)}
.end-cta{border-top:1px solid var(--line);padding-block:clamp(44px,7vw,84px)}
.end-cta h2{max-width:20ch;margin-bottom:12px}

/* style page hero */
.style-hero{display:grid;gap:32px;grid-template-columns:minmax(0,1fr);padding-block:28px clamp(30px,5vw,56px)}
@media(min-width:900px){.style-hero{grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr);align-items:center}}
.style-hero .lead{margin-top:18px}
.style-hero figure img{max-height:620px;width:auto;max-width:100%;margin-inline:auto 0}
.gallery{display:flex;gap:12px;flex-wrap:wrap;align-items:flex-start}
.gallery figure{flex:1 1 220px;max-width:340px}

/* portfolio masonry */
.masonry{column-count:1;column-gap:14px}
@media(min-width:620px){.masonry{column-count:2}}
@media(min-width:980px){.masonry{column-count:3}}
.masonry figure{break-inside:avoid;margin:0 0 14px}
.masonry figure a{display:block}
.masonry img{width:100%}

/* contact form */
.form{display:grid;gap:16px;max-width:560px}
.form label{display:grid;gap:6px;font-weight:600;font-size:.97rem}
.form input,.form select,.form textarea{font:inherit;color:var(--fg);background:var(--bg2);border:1px solid var(--line);border-radius:6px;padding:.8em .9em;width:100%}
.form textarea{min-height:120px;resize:vertical}
.form input:focus,.form select:focus,.form textarea:focus{outline:2px solid var(--accent-text);outline-offset:1px;border-color:transparent}
.form .hint{font-weight:400;color:var(--muted);font-size:.9rem}
.info{display:grid;gap:22px;grid-template-columns:minmax(0,1fr)}
.info dt{font-family:var(--display);font-weight:600;font-size:1.05rem;margin-bottom:2px}
.info dd{margin:0;color:var(--muted)}

/* footer */
.site-foot{border-top:1px solid var(--line);background:var(--bg2);padding-block:56px calc(40px + env(safe-area-inset-bottom,0px))}
.foot-grid{display:grid;gap:34px;grid-template-columns:minmax(0,1fr)}
@media(min-width:760px){.foot-grid{grid-template-columns:1.3fr 1fr 1.1fr}}
.site-foot h2{font-size:1rem;margin-bottom:12px;letter-spacing:0;font-weight:600}
.site-foot ul{list-style:none;padding:0;margin:0}
.site-foot li{margin:.15em 0}
.site-foot a{color:var(--fg);text-decoration:none}
.site-foot a:hover{color:var(--accent-text);text-decoration:underline}
.site-foot address{font-style:normal;color:var(--muted)}
.fine{margin-top:36px;padding-top:20px;border-top:1px solid var(--line);color:var(--muted);font-size:.9rem}

/* floating whatsapp */
.wa-float{position:fixed;z-index:70;right:calc(16px + env(safe-area-inset-right,0px));bottom:calc(16px + env(safe-area-inset-bottom,0px));display:inline-flex;align-items:center;gap:10px;background:var(--wa);color:#fff;text-decoration:none;font-weight:600;padding:14px 18px;border-radius:999px;box-shadow:0 6px 22px rgba(0,0,0,.45)}
.wa-float:hover{background:#17924a;color:#fff}
.wa-float svg{width:26px;height:26px;flex:none}
@media(max-width:600px){.wa-float{padding:14px}.wa-float span{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}}
.toast{position:fixed;left:50%;transform:translateX(-50%);bottom:calc(84px + env(safe-area-inset-bottom,0px));z-index:80;background:#fff;color:#111;padding:12px 18px;border-radius:8px;font-weight:600;max-width:calc(100vw - 32px)}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important}}
