@font-face{font-family:Geist;src:url('../fonts/geist-variable.ttf') format('truetype');font-style:normal;font-weight:100 900;font-display:swap}
@font-face{font-family:'Geist Mono';src:url('../fonts/geist-mono-variable.ttf') format('truetype');font-style:normal;font-weight:100 900;font-display:swap}
:root{--case-ink:#0d0d0b;--case-body:#383733;--case-muted:#6f6b62;--case-rule:#e4e4df;--case-paper:#fff;--case-accent:#d64000;--case-gutter:max(1.5rem,4.445vw);font-family:Geist,Arial,sans-serif;color:var(--case-ink);background:var(--case-paper);font-synthesis:none;-webkit-font-smoothing:antialiased}
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:2rem}
body,h1,h2,h3,p,figure,dl,dd{margin:0}
body{font-size:1rem;line-height:1.55}
a{color:inherit;text-underline-offset:.25em}
a:hover{text-decoration:underline}
a:focus-visible,button:focus-visible{outline:2px solid var(--case-accent);outline-offset:5px}
img{display:block;max-width:100%;height:auto}
button{font:inherit}
.container{width:100%;padding-inline:var(--case-gutter)}
.mono,.eyebrow,dt,.case-header{font-family:'Geist Mono',monospace;font-weight:500;text-transform:uppercase}
.eyebrow{font-size:.6875rem;line-height:.875rem;color:var(--case-muted);letter-spacing:0}
.dark{background:var(--case-ink);color:#faf8f4}
.skip-link{position:fixed;z-index:10;top:1rem;left:1rem;padding:.75rem 1rem;background:var(--case-ink);color:var(--case-paper);transform:translateY(-200%)}
.skip-link:focus{transform:translateY(0)}
.case-header .header-inner{min-height:6.0625rem;padding-block:1.75rem 1.5rem;display:flex;justify-content:space-between;align-items:center;gap:2rem;position:relative}
.header-inner::after{content:'';position:absolute;bottom:0;left:var(--case-gutter);right:var(--case-gutter);height:1px;background:#272725}
.signature{display:grid;gap:.25rem;text-decoration:none;font-size:.6875rem;line-height:.875rem}
.signature small{font-size:.5625rem;line-height:.75rem;font-weight:500;color:#faf8f4}
.case-header nav{display:flex;gap:1.75rem;flex-wrap:wrap;font-size:.625rem;line-height:1.3}
.case-header nav a{text-decoration:none}
.case-hero{padding-block:4.5rem}
.hero-meta{display:flex;justify-content:space-between;gap:1.5rem;font-size:.6875rem;line-height:.875rem;min-height:1.25rem;align-items:center}
.hero-meta p:last-child{font-size:.625rem;text-align:right}
.hero-title{display:grid;grid-template-columns:42.835% 1fr;align-items:start;padding-block:3rem 3.75rem;gap:0}
.hero-title h1{font-size:4.75rem;line-height:1.05263158;font-weight:600;}
.hero-title>p{font-size:1.375rem;line-height:1.40909091;padding-top:.5rem}
.case-facts{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:3.5rem;border-top:1px solid #272725;padding-top:2rem}
dt{font-size:.5625rem;line-height:.75rem;margin-bottom:.5rem;letter-spacing:0}
.case-facts dd{font-size:.9375rem;line-height:1.46666667}
.section{padding-block:6rem}
.section-title h2{font-size:1.75rem;line-height:1.214285714;font-weight:600;margin-top:1.25rem}
.context{display:grid;grid-template-columns:272fr 592fr 272fr;column-gap:3.5rem}
.prose{color:var(--case-body);font-size:1.125rem;line-height:1.5}
.prose p+p{margin-top:1.75rem}
.context-notes{padding-left:2rem}
.context-notes div+div{margin-top:2rem}
.context-notes dt{color:var(--case-muted)}
.context-notes dd{font-family:'Geist Mono',monospace;font-size:1.25rem;line-height:1.3;text-transform:uppercase}
@media(max-width:1000px){.case-facts{gap:2rem}.context{grid-template-columns:1fr 2fr;gap:2rem}.context-notes{grid-column:2;padding-left:0;display:flex;gap:2rem;flex-wrap:wrap}.context-notes div+div{margin-top:0}.hero-title{grid-template-columns:1fr 1.5fr;gap:2rem}.hero-title h1{font-size:4rem}}
@media(max-width:650px){.case-header .header-inner{align-items:flex-start;flex-direction:column;gap:1.5rem}.case-header nav{font-size:.6875rem;gap:1.5rem}.signature small{font-size:.625rem}.case-hero{padding-block:2.5rem}.hero-meta{display:block}.hero-meta p:last-child{text-align:left;margin-top:.75rem}.hero-title{display:block;padding-block:2rem}.hero-title h1{font-size:3.5rem}.hero-title>p{font-size:1.25rem;margin-top:1.5rem}.case-facts{grid-template-columns:1fr 1fr;gap:1.5rem}dt{font-size:.625rem}.case-facts dd{font-size:.9375rem}.section{padding-block:3.5rem}.context{display:block}.section-title{margin-bottom:2rem}.context-notes{margin-top:2rem;gap:1.5rem}.context-notes dt{max-width:13ch}.prose{font-size:1.0625rem}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}

/* Editorial sections keep the Figma grid; figures retain their full bounds. */
.ruled{position:relative;padding-top:4.5rem}
.ruled::before{content:'';position:absolute;top:0;left:var(--case-gutter);right:var(--case-gutter);height:1px;background:var(--case-rule)}
.section-heading{display:grid;grid-template-columns:272fr 920fr;gap:3.5rem;align-items:start;margin-bottom:3.5rem}
.section-heading>.prose{max-width:37rem}
.section-heading>.section-title{margin-bottom:0}
.section-heading>.prose{padding-top:2.125rem}
.case-figure{min-width:0}
.case-figure a{display:block;border-radius:.25rem}
.case-figure img{width:100%}
.board .case-figure a,.prioritization .case-figure a{border-radius:.75rem}
.board--square .case-figure a,.board--square img{border-radius:0}
.board h3{font-size:1.75rem;font-weight:600;line-height:1.214;margin-bottom:2rem}
.board+.board{margin-top:4rem}
.prioritization{display:grid;grid-template-columns:272fr 272fr 656fr;gap:3.5rem;align-items:start}
.prioritization>.section-title,.prioritization>.prose{padding-top:2rem}
.decisions{background:#000}
.dark .eyebrow,.dark dt{color:#d7d7d2}
.dark .prose{color:#fff}
.decisions .section{padding-block:4.5rem 2.5rem}
.decision-list{list-style:none;padding:0;margin:0}
.decision-row{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:3.5rem;border-top:1px solid #262626;padding-block:3rem 3.5rem}
.decision-row .eyebrow{margin-bottom:1rem}
.decision-row h3{font-size:1.5rem;line-height:1.25;font-weight:600;}
.decision-row>div>p:not(.eyebrow){font-size:1rem;line-height:1.5625}
.consequence>p:not(.eyebrow){font-weight:600}
.architecture{padding-block:4.5rem}
.architecture-heading{display:grid;grid-template-columns:760fr 560fr;gap:2rem;align-items:start;margin-block:1.5rem 3rem}
.architecture-heading h2{font-size:2.25rem;line-height:1.1667;font-weight:600;}
.architecture-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:2rem}
.artifact-summary{display:grid;grid-template-columns:624fr 624fr;gap:4rem;align-items:start;margin-bottom:3rem}
.artifact-facts>div+div{margin-top:1.5rem}
.artifact-facts dt{color:var(--case-muted)}
.artifact-facts dd{font-size:1rem;line-height:1.5625;color:var(--case-body)}
.artifact-facts strong{font-weight:600}
.applied>.case-figure+.case-figure{margin-top:5rem}
.storybook{display:grid;grid-template-columns:640fr 584fr;gap:5.5rem;align-items:start;padding-block:2.5rem;margin-top:3rem}
.storybook-caption h3{font-size:1.5rem;line-height:1.25;font-weight:600;margin-block:1.25rem}
.storybook-caption>p:last-child{color:var(--case-body);font-size:1rem;line-height:1.5625}
.results .section{padding-block:4.5rem 6rem}
.results .section-heading{margin-bottom:3.5rem}
.results .section-heading>.prose{padding-top:0}
.result-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:3.5rem;border-top:1px solid #272725;padding-top:3rem}
.result-grid>div{display:flex;flex-direction:column-reverse;justify-content:flex-end;gap:1rem}
.result-grid dd{font-size:2.375rem;font-weight:600;line-height:1.15789474;color:#fbfbf8}
.result-grid dt{max-width:30ch;margin:0}
.executive{padding-block:4.5rem 6rem}
.executive>.case-figure{margin-bottom:3rem}
.timeline{padding:2rem;border:1px solid var(--case-rule);border-radius:.5rem;margin-bottom:3.5rem}
.timeline ol{list-style:none;padding:0;margin:2rem 0 0;display:grid;grid-template-columns:repeat(7,minmax(0,1fr))}
.timeline li{min-width:0;position:relative;padding-right:1.5rem}
.timeline li:last-child{padding-right:0}
.timeline li::before{content:'';position:absolute;left:0;right:0;top:2.5rem;height:1px;background:#cacac3}
.timeline li:last-child::before{display:none}
.timeline li::after{content:'';position:absolute;width:.4375rem;height:.4375rem;left:0;top:2.3125rem;border-radius:50%;background:#aaa99f}
.timeline li.achieved::after{background:var(--case-ink)}
.timeline-year{font-size:.625rem;min-height:1rem}
.timeline-text{font-size:.8125rem;line-height:1.5385;padding-top:2.75rem;color:var(--case-body)}
.achieved .timeline-text{font-weight:600;color:var(--case-ink)}
.timeline-status{margin-top:.75rem;font-size:.5625rem;color:var(--case-ink)}
.executive-details{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:2rem}
.executive-details ul{list-style:none;padding:0;margin:1.5rem 0 0}
.executive-details li{border-top:1px solid var(--case-rule);padding-block:1rem;font-size:1rem;line-height:1.5625;color:var(--case-body)}
.reflection{display:grid;grid-template-columns:272fr 592fr 272fr;gap:3.5rem}
/* ── contato · rodapé ──────────────────────────────────────────
   Bloco compartilhado com Sobre mim e Portfólio — Figma
   "08 · Contato": título, texto e régua, com um rodapé simples
   por baixo (sem mais a coluna de LinkedIn/E-mail). */
.contato-corpo{display:flex;flex-direction:column;gap:3.375rem;padding-block:4.5rem 3.5rem}
.contato-titulo{font-size:4.75rem;line-height:1;font-weight:600;letter-spacing:-.022em}
.contato-titulo a{color:#fbfbf8;text-decoration:none}
.contato-titulo a:hover{text-decoration:underline;text-decoration-thickness:2px}
.contato-texto{margin-top:1.375rem;max-width:40.625rem;font-size:1.125rem;line-height:1.5;color:#b8b8ad}
.contato-regua{border:0;border-top:1px solid #2e2e2b}
.contato-rodape{display:flex;justify-content:space-between;gap:.75rem 2rem;flex-wrap:wrap;font-family:'Geist Mono',monospace;font-weight:500;text-transform:uppercase;font-size:.625rem;line-height:1.5;color:#a3a399}
.contato-rodape a{text-decoration:none}
.contato-rodape a:hover,.case-header nav a:hover{text-decoration:underline}

/* Align the desktop reading grid to the 1440px Figma frame. */
@media(min-width:1101px){
  .case-facts{gap:0}
  .case-facts>div{padding-right:3.5rem}
  .context,.reflection{grid-template-columns:25% 50% 25%;gap:0;align-items:start}
  .context{min-height:32.3125rem}
  .context>.section-title,.reflection>.section-title{padding-right:3.5rem}
  .context>.prose,.reflection>.prose{max-width:37rem}
  .context>.prose p+p{width:calc(100% + 1.8125rem)}
  .context-notes{padding: .25rem 0 0}
  .context-notes dt{margin-bottom:.375rem}
  .context-notes div+div{margin-top:2rem}
  .section-heading{grid-template-columns:50% 50%;gap:0}
  .section-heading>.section-title{max-width:26.25rem}
  .section-heading>.prose{max-width:none}
  .discovery{padding-block:7.0625rem 10.4375rem}
  .discovery .section-heading{grid-template-columns:25% 75%;margin-bottom:2.5rem}
  .discovery .section-heading>.prose{font-size:1rem;line-height:1.5625;padding-top:2.40625rem;max-width:57.5625rem}
  .board h3{margin-bottom:2.5rem;text-transform:lowercase}
  .board+.board{margin-top:2.5rem}
  .prioritization{grid-template-columns:25% 25% 50%;gap:0;padding-block:4.5625rem 4rem;min-height:35.5625rem}
  .prioritization>.section-title{padding:0 3.5rem 0 0}
  .prioritization>.prose{padding:2.125rem 3.5rem 0 0;font-size:1rem;line-height:1.5625}
  .prioritization>.case-figure{width:97.5277%}
  .decisions .section{padding-block:4.5625rem 6rem}
  .decisions .section-heading{margin-bottom:4rem}
  .decisions .section-heading>.prose{max-width:32.6875rem}
  .decision-row{gap:0}
  .decision-row>div{padding-right:3.5rem}
  .decision-row .eyebrow{font-size:.5625rem;line-height:.75rem;margin-bottom:.75rem}
  .decision-title .eyebrow{font-size:.625rem;line-height:.875rem;margin-bottom:.625rem}
  .decisions .eyebrow{color:#f8f8f8}
  .architecture{padding-block:4rem 3rem}
  .architecture-heading{grid-template-columns:57.317073% 42.682927%;gap:0;margin-block:1.25rem 1.125rem}
  .architecture-heading .prose{padding-top:.25rem}
  .artifacts{padding-top:4.5625rem}
  .artifacts .section-heading{margin-bottom:3.9375rem}
  .artifact-summary{grid-template-columns:624fr 656fr;gap:2rem;margin-bottom:4rem}
  .artifact-facts>div+div{margin-top:1.375rem}
  .applied{padding-top:7.0625rem}
  .applied .section-heading{margin-bottom:6.5rem}
  .applied>.case-figure+.case-figure{margin-top:2.5rem}
  .storybook{margin-top:2.5rem}
  .storybook>.case-figure{border:1px dashed #c9c9c0;background:#f2f2ee}
  .results .section{padding-block:6rem}
  .results .section-heading{grid-template-columns:25% 75%;min-height:9.0625rem;margin-bottom:0}
  .results .section-heading>.prose{max-width:42.6875rem;color:#b8b8ad}
  .results .eyebrow,.results dt{color:#a3a399}
  .result-grid{gap:0;padding-top:3.5rem}
  .result-grid>div{gap:1.5rem}
  .result-grid dt{max-width:17rem;line-height:.875rem}
  .executive{padding-top:7.0625rem}
  .executive .section-heading{margin-bottom:5.5rem}
  .executive>.case-figure{margin-bottom:2.5rem}
  .timeline{min-height:16.875rem;padding:1.6875rem 2.1875rem 2rem 1.9375rem;margin-bottom:6rem}
  .timeline>.eyebrow,.executive-details h3{font-size:.5625rem;line-height:.75rem}
  .timeline ol{gap:1rem;margin-top:2.125rem}
  .timeline li{padding-right:0}
  .timeline li::before{left:50%;right:calc(-50% - 1rem);top:1.625rem}
  .timeline li::after{left:calc(50% - .21875rem);top:1.40625rem}
  .timeline li.achieved::after{width:.625rem;height:.625rem;left:calc(50% - .3125rem);top:1.3125rem}
  .timeline-year{font-size:.5625rem;line-height:.75rem;min-height:.75rem}
  .timeline-text{padding-top:2.375rem;line-height:1.46153846}
  .timeline-status{margin-top:.5rem;line-height:.75rem}
  .executive-details ul{margin-top:.875rem}
  .executive-details li{padding-block:.8125rem 1rem}
  .executive-details li:last-child{padding-bottom:0}
  .reflection{padding-top:4.5625rem}
  .contato-corpo{padding-block:4rem 3.375rem}
}

@media(max-width:1100px){
  .section-heading,.decision-row,.prioritization,.reflection{gap:2rem}
  .section-heading{grid-template-columns:1fr 2fr}
  .prioritization{grid-template-columns:1fr 2fr}
  .prioritization>.case-figure{grid-column:2}
  .decision-row{grid-template-columns:repeat(2,minmax(0,1fr));row-gap:2.5rem}
  .decision-title{grid-row:span 3}
  .decision-row>div:not(.decision-title){grid-column:2}
  .artifact-summary{gap:2rem}
  .storybook{gap:2rem}
  .result-grid{gap:2rem}
  .timeline{padding:1.5rem}
  .timeline li{padding-right:1rem}
  .reflection{grid-template-columns:1fr 2fr}
}
@media(max-width:800px){
  .architecture-heading{grid-template-columns:1fr;gap:1.5rem}
  .architecture-heading .prose{max-width:37rem}
  .architecture-grid{grid-template-columns:1fr}
  .result-grid{grid-template-columns:repeat(2,minmax(0,1fr));row-gap:2.5rem}
  .timeline ol{grid-template-columns:1fr;margin-top:1.5rem}
  .timeline li{padding:0 0 1.75rem 1.75rem}
  .timeline li:last-child{padding-bottom:0}
  .timeline li::before{left:.1875rem;top:.5rem;bottom:0;width:1px;height:auto;right:auto}
  .timeline li::after{top:.4375rem}
  .timeline-year:has([aria-hidden]){display:none}
  .timeline-text{font-size:.9375rem;padding-top:0}
  .timeline-year:not(:has([aria-hidden])){margin-bottom:.5rem}
  .executive-details{grid-template-columns:1fr;gap:2rem}
}
@media(max-width:650px){
  .ruled,.architecture,.executive,.results .section,.decisions .section{padding-block:3.5rem}
  .section-heading,.prioritization,.artifact-summary,.storybook,.reflection{display:block}
  .section-heading{margin-bottom:2.5rem}
  .section-heading>.section-title{margin-bottom:1.5rem}
  .section-heading>.prose{padding-top:0}
  .prioritization>.section-title,.prioritization>.prose{padding-top:0}
  .prioritization>.case-figure{margin-top:2rem}
  .board+.board{margin-top:2.5rem}
  .board h3{font-size:1.5rem;margin-bottom:1.25rem}
  .decision-row{display:block;padding-block:2rem 2.5rem}
  .decision-row>div+div{margin-top:1.75rem}
  .decision-row .eyebrow{margin-bottom:.75rem}
  .architecture-heading h2{font-size:1.875rem;line-height:1.2}
  .architecture-grid{gap:1.5rem}
  .artifact-summary>.case-figure{margin-bottom:2rem}
  .applied>.case-figure+.case-figure{margin-top:2.5rem}
  .storybook{margin-top:2.5rem;padding:0}
  .storybook-caption{margin-top:2rem}
  .result-grid{gap:2rem 1.5rem;padding-top:2rem}
  .result-grid dd{font-size:2rem}
  .results .section-heading{margin-bottom:2rem;display:block}
  .results .section-heading>.eyebrow{margin-bottom:1.5rem}
  .timeline{margin-bottom:2.5rem}
  .contato-corpo{padding-block:3.5rem 2.5rem;gap:2.25rem}
  .contato-titulo{font-size:3rem}
  .contato-rodape{flex-direction:column;gap:.5rem}
}
