/* Quinto Ponto Cardeal | styles
   Tokens first, then base, layout, components. No framework. */

@font-face{font-family:'Cormorant Garamond';font-style:normal;font-weight:500;font-display:swap;src:url(fonts/cormorant-garamond-latin-500-normal.woff2) format('woff2')}
@font-face{font-family:'Cormorant Garamond';font-style:normal;font-weight:600;font-display:swap;src:url(fonts/cormorant-garamond-latin-600-normal.woff2) format('woff2')}
@font-face{font-family:'Cormorant Garamond';font-style:normal;font-weight:700;font-display:swap;src:url(fonts/cormorant-garamond-latin-700-normal.woff2) format('woff2')}
@font-face{font-family:'Cormorant Garamond';font-style:italic;font-weight:500;font-display:swap;src:url(fonts/cormorant-garamond-latin-500-italic.woff2) format('woff2')}
@font-face{font-family:'Hanken Grotesk';font-style:normal;font-weight:100 900;font-display:swap;src:url(fonts/hanken-grotesk-latin-wght-normal.woff2) format('woff2')}

:root{
  --bg:#F4EFE3;--bg-2:#ECE5D4;--surface:#FBF8F1;
  --ink:#0B1220;--ink-2:#434D5F;--ink-3:#5B6477;
  --line:rgba(11,18,32,.14);--line-2:rgba(11,18,32,.3);
  --gold:#C28A2B;--gold-text:#85560A;--gold-logo:#C28A2B;--azul:#243F9C;
  --btn-bg:#E8B04B;--btn-bg-h:#F0BE62;--btn-ink:#0B1220;
  --focus:#0B1220;--err:#A3231B;
  --header-bg:rgba(244,239,227,.86);
  --shadow:0 30px 60px -34px rgba(11,18,32,.45);
  --serif:'Cormorant Garamond','Iowan Old Style','Palatino Linotype',Georgia,serif;
  --sans:'Hanken Grotesk',system-ui,-apple-system,'Segoe UI',Roboto,sans-serif;
  --wrap:1240px;--gutter:clamp(20px,4.4vw,56px);
  --header-h:72px;
  --ease:cubic-bezier(.2,.7,.2,1);
}
html[data-theme="dark"]{
  --bg:#0B1220;--bg-2:#0F192B;--surface:#111D33;
  --ink:#F1F4FA;--ink-2:#B3BDCF;--ink-3:#8C98AD;
  --line:rgba(241,244,250,.14);--line-2:rgba(241,244,250,.32);
  --gold:#E8B04B;--gold-text:#EDBB62;--gold-logo:#E8B04B;--azul:#86A2EE;
  --focus:#F1F4FA;--err:#FF9A92;
  --header-bg:rgba(11,18,32,.84);
  --shadow:0 30px 60px -34px rgba(0,0,0,.8);
}
.on-dark{
  --bg:#0A101C;--bg-2:#0F192B;--ink:#F1F4FA;--ink-2:#B3BDCF;--ink-3:#8C98AD;
  --line:rgba(241,244,250,.16);--line-2:rgba(241,244,250,.34);--gold:#E8B04B;--gold-text:#EDBB62;--focus:#F1F4FA;
}

*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;text-size-adjust:100%;scroll-padding-top:calc(var(--header-h) + 12px)}
@media (prefers-reduced-motion:no-preference){html{scroll-behavior:smooth}}
body{margin:0;background:var(--bg);color:var(--ink);font:400 1.0625rem/1.62 var(--sans);font-feature-settings:"kern","liga";-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;overflow-x:hidden}
html{overflow-x:clip}
img,svg{max-width:100%}
h1,h2,h3,h4,p,ul,ol,figure,blockquote{margin:0}
ul,ol{padding:0;list-style:none}
a{color:inherit}
button,input,select,textarea{font:inherit;color:inherit}
[hidden]{display:none!important}
main:focus{outline:none}
:focus-visible{outline:2px solid var(--focus);outline-offset:3px;border-radius:2px}
::selection{background:var(--btn-bg);color:#0B1220}

.wrap{width:100%;max-width:calc(var(--wrap) + var(--gutter)*2);margin-inline:auto;padding-inline:var(--gutter)}
.wrap.narrow{max-width:calc(780px + var(--gutter)*2)}
.skip{position:fixed;left:12px;top:-60px;z-index:100;background:var(--btn-bg);color:#0B1220;padding:10px 16px;font-weight:600;text-decoration:none;border-radius:2px;transition:top .2s}
.skip:focus{top:12px}

/* ---------- header ---------- */
.progress{position:fixed;inset:0 0 auto 0;height:2px;z-index:60;pointer-events:none}
.progress span{display:block;height:100%;width:100%;background:var(--gold);transform:scaleX(0);transform-origin:0 50%}
.site-header{position:sticky;top:0;z-index:50;background:var(--header-bg);-webkit-backdrop-filter:saturate(1.4) blur(12px);backdrop-filter:saturate(1.4) blur(12px);border-bottom:1px solid transparent;transition:border-color .25s}
.site-header.scrolled{border-bottom-color:var(--line)}
.bar{display:flex;align-items:center;gap:24px;height:var(--header-h)}
.brand{display:inline-flex;align-items:center;flex:0 0 auto;text-decoration:none;color:var(--ink);border-radius:2px}
.brand{gap:10px}.brand-emblem{display:block;width:48px;height:48px;flex:0 0 auto}.brand-name{font-family:var(--serif);font-weight:700;font-size:1.32rem;line-height:1;letter-spacing:.01em;color:var(--ink);white-space:nowrap}
.nav{margin-left:auto;display:none}
.nav ul{display:flex;gap:clamp(14px,2vw,32px)}
.nav a{position:relative;display:inline-block;padding:10px 2px;text-decoration:none;font-size:.9375rem;font-weight:500;color:var(--ink-2);transition:color .2s}
.nav a::after{content:"";position:absolute;left:0;right:0;bottom:4px;height:1px;background:var(--gold);transform:scaleX(0);transform-origin:0 50%;transition:transform .35s var(--ease)}
.nav a:hover,.nav a[aria-current="true"]{color:var(--ink)}
.nav a:hover::after,.nav a[aria-current="true"]::after{transform:scaleX(1)}
.tools{margin-left:auto;display:flex;align-items:center;gap:8px}
.lang-link{display:inline-flex;align-items:center;justify-content:center;min-width:44px;height:44px;padding:0 10px;text-decoration:none;font-size:.8125rem;font-weight:700;letter-spacing:.12em;color:var(--ink-2);border:1px solid var(--line);border-radius:2px;transition:border-color .2s,color .2s}
.lang-link:hover{border-color:var(--gold);color:var(--ink)}
.icon-btn{display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;padding:0;background:transparent;border:1px solid var(--line);border-radius:2px;cursor:pointer;color:var(--ink);transition:border-color .2s}
.icon-btn:hover{border-color:var(--gold)}
.icon-btn svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}
.theme-btn .i-moon{display:none}
html[data-theme="light"] .theme-btn .i-sun{display:none}
html[data-theme="light"] .theme-btn .i-moon{display:block}
.site-header .cta-head{display:none}
.bars{position:relative;width:20px;height:14px;display:block}
.bars i{position:absolute;left:0;right:0;height:1.6px;background:currentColor;transition:transform .3s var(--ease),opacity .2s,top .3s var(--ease)}
.bars i:nth-child(1){top:0}.bars i:nth-child(2){top:6.2px}.bars i:nth-child(3){top:12.4px}
.menu-open .bars i:nth-child(1){top:6.2px;transform:rotate(45deg)}
.menu-open .bars i:nth-child(2){opacity:0}
.menu-open .bars i:nth-child(3){top:6.2px;transform:rotate(-45deg)}

.menu{position:fixed;inset:var(--header-h) 0 0 0;background:var(--bg);overflow-y:auto;z-index:49;padding-block:20px 40px;opacity:0;transform:translateY(-8px);transition:opacity .28s var(--ease),transform .28s var(--ease)}
.menu-open .menu{opacity:1;transform:none}
.menu ul{border-top:1px solid var(--line)}
.menu li{border-bottom:1px solid var(--line)}
.menu li a{display:flex;align-items:baseline;gap:18px;padding:18px 2px;text-decoration:none;font:500 clamp(1.9rem,8vw,2.6rem)/1.1 var(--serif);color:var(--ink)}
.menu li a[aria-current="true"]{color:var(--gold-text)}
.menu .m-n{font:600 .8125rem/1 var(--sans);letter-spacing:.14em;color:var(--gold-text)}
.menu .btn{margin-top:28px;width:100%}
html.menu-open{overflow:hidden}

@media (min-width:1040px){
  .nav{display:block}
  .tools{margin-left:0}
  .site-header .cta-head{display:inline-flex}
  .burger{display:none}
  .menu{display:none!important}
}
@media (max-width:420px){.brand-emblem{width:40px;height:40px}.brand-name{font-size:1.08rem}.tools{gap:6px}.lang-link,.icon-btn{width:40px;min-width:40px;height:40px}}

/* ---------- buttons ---------- */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:12px;min-height:50px;padding:0 26px;font:600 .9375rem/1 var(--sans);letter-spacing:.04em;text-decoration:none;border:1px solid transparent;border-radius:2px;cursor:pointer;transition:background .2s,border-color .2s,transform .2s var(--ease),color .2s}
.btn-primary{background:var(--btn-bg);color:var(--btn-ink)}
.btn-primary:hover{background:var(--btn-bg-h)}
.btn-ghost{background:transparent;border-color:var(--line-2);color:var(--ink)}
.btn-ghost:hover{border-color:var(--gold)}
.btn-sm{min-height:44px;padding:0 18px;font-size:.875rem}
.btn .arr{transition:transform .25s var(--ease)}
.btn:hover .arr{transform:translateX(3px)}
.btn:active{transform:translateY(1px)}

/* ---------- hero ---------- */
.hero{padding-block:clamp(36px,6vw,84px) clamp(48px,7vw,104px)}
.hero-grid{display:grid;gap:clamp(36px,5vw,72px);align-items:center}
.eyebrow{font:600 .75rem/1.4 var(--sans);letter-spacing:.2em;text-transform:uppercase;color:var(--gold-text);display:flex;align-items:center;gap:14px}
.eyebrow::before{content:"";width:34px;height:1px;background:var(--gold)}
.hero h1{margin-top:22px;font:500 clamp(2.9rem,7.6vw,6.1rem)/1.02 var(--serif);letter-spacing:-.012em;text-wrap:balance}
.hero h1 .h1-a{display:block}
.hero h1 .h1-b{display:block;font-style:italic;font-weight:500;color:var(--gold-text)}
.lede{margin-top:28px;max-width:34em;font-size:clamp(1.0625rem,1.5vw,1.25rem);line-height:1.6;color:var(--ink-2)}
.actions{margin-top:36px;display:flex;flex-wrap:wrap;gap:12px}
.facts{margin-top:36px;display:flex;flex-wrap:wrap;gap:8px 28px;font-size:.8125rem;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-3);font-weight:500}
.facts li{display:flex;align-items:center;gap:10px}
.facts li::before{content:"";width:5px;height:5px;background:var(--gold);transform:rotate(45deg)}
.plate{position:relative;max-width:660px;justify-self:center;width:100%}
.plate .chart{box-shadow:var(--shadow);border:1px solid var(--line-2)}
.plate figcaption{margin-top:14px;display:flex;gap:14px;align-items:baseline;font:italic 500 1.0625rem/1.4 var(--serif);color:var(--ink-2)}
.plate-no{font:600 .6875rem/1 var(--sans);font-style:normal;letter-spacing:.18em;text-transform:uppercase;color:var(--gold-text);white-space:nowrap}
@media (min-width:960px){.hero-grid{grid-template-columns:minmax(0,1.04fr) minmax(0,.96fr)}}
.chart .ch-mask{stroke-dasharray:1;stroke-dashoffset:1}
html:not(.js) .chart .ch-mask,.plate.drawn .ch-mask{stroke-dashoffset:0}
@media (prefers-reduced-motion:no-preference){.plate.drawn .ch-mask{animation:draw 2.6s var(--ease) .5s both}.chart .ch-fifth{opacity:0}.plate.drawn .ch-fifth{animation:pop .6s var(--ease) 2.9s both}}
@media (prefers-reduced-motion:reduce){.plate .ch-mask{stroke-dashoffset:0}}
@keyframes draw{from{stroke-dashoffset:1}to{stroke-dashoffset:0}}
@keyframes pop{from{opacity:0}to{opacity:1}}

/* ---------- sections ---------- */
.section{position:relative;padding-block:clamp(72px,10vw,136px)}
.section.alt{background:var(--bg-2)}
.on-dark{background:var(--bg);color:var(--ink)}
.sec-head{display:grid;gap:18px;margin-bottom:clamp(36px,5vw,64px)}
.sec-label{display:flex;align-items:center;gap:14px;font:600 .75rem/1.4 var(--sans);letter-spacing:.2em;text-transform:uppercase;color:var(--ink-3)}
.sec-label .num{color:var(--gold-text);font-variant-numeric:tabular-nums}
.sec-label .num::after{content:"";display:inline-block;width:26px;height:1px;background:var(--line-2);margin-left:14px;vertical-align:middle}
.section h2{font:500 clamp(2.3rem,5vw,4rem)/1.04 var(--serif);letter-spacing:-.01em;text-wrap:balance}
.sec-intro{margin-top:18px;max-width:38em;color:var(--ink-2);font-size:1.125rem}
@media (min-width:960px){.sec-head{grid-template-columns:minmax(0,3fr) minmax(0,9fr);gap:40px;align-items:start}.sec-label{padding-top:.9em}}

/* ---------- card grids ---------- */
.grid{display:grid;gap:1px;background:var(--line);border:1px solid var(--line)}
.g3{grid-template-columns:repeat(auto-fill,minmax(min(100%,330px),1fr))}
.card{background:var(--bg);padding:clamp(24px,2.6vw,36px);display:flex;flex-direction:column;gap:14px;transition:background .25s}
.g-alt .card{background:var(--bg-2)}
.card:hover{background:var(--surface)}
.card-n{font:italic 500 1.25rem/1 var(--serif);color:var(--gold-text)}
.card h3{font:600 clamp(1.55rem,2.2vw,1.95rem)/1.1 var(--serif);letter-spacing:-.005em}
.card-text{color:var(--ink-2);font-size:1rem}
.points{display:grid;gap:8px;margin-top:4px;font-size:.9375rem;color:var(--ink)}
.points li{position:relative;padding-left:22px}
.points li::before{content:"";position:absolute;left:2px;top:.62em;width:6px;height:6px;background:var(--gold);transform:rotate(45deg)}
.card-foot{margin-top:auto;padding-top:22px;border-top:1px solid var(--line);display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px 18px}
.price,.data{font:600 .75rem/1.4 var(--sans);letter-spacing:.12em;text-transform:uppercase;color:var(--ink-3)}
.link{display:inline-flex;align-items:center;gap:8px;min-height:44px;font-weight:600;font-size:.9375rem;text-decoration:none;color:var(--ink);background:linear-gradient(var(--gold),var(--gold)) 0 100%/0 1px no-repeat;transition:background-size .35s var(--ease)}
.link:hover{background-size:calc(100% - 22px) 1px}
.link .arr{transition:transform .25s var(--ease)}
.link:hover .arr{transform:translateX(3px)}
.tag{font:600 .6875rem/1 var(--sans);letter-spacing:.18em;text-transform:uppercase;color:var(--gold-text)}
.status{display:inline-flex;align-items:center;gap:8px;font:600 .75rem/1 var(--sans);letter-spacing:.06em;color:var(--ink-2);padding:7px 11px;border:1px dashed var(--line-2);border-radius:99px}
.status .dot{width:6px;height:6px;border-radius:50%;background:var(--gold)}
.proj-img{display:block;width:100%;height:auto;aspect-ratio:16/10;object-fit:cover;object-position:top;border:1px solid var(--line);border-radius:4px;background:var(--surface)}
.fiche{display:flex;flex-direction:column;gap:10px;margin:0;color:var(--ink-2);font-size:1rem}
.fiche dt{display:inline;font-weight:600;color:var(--ink)}
.fiche dd{display:inline;margin:0 0 0 .25em}
.fiche-note{font-size:.875rem;color:var(--ink-3);font-style:italic}
.proj .card-n{font-style:normal;font:600 .75rem/1 var(--sans);letter-spacing:.18em;text-transform:uppercase;color:var(--ink-3)}

/* ---------- idea ---------- */
.idea{overflow:hidden}
.idea .watermark{position:absolute;right:-6vw;top:50%;width:min(62vw,720px);height:auto;transform:translateY(-50%);color:#F1F4FA;opacity:.045;pointer-events:none;fill:none}
.idea .watermark use{fill:currentColor}
.idea-grid{display:grid;gap:clamp(32px,5vw,72px);position:relative}
.quote{font:500 clamp(2rem,4.6vw,3.6rem)/1.12 var(--serif);font-style:italic;letter-spacing:-.01em;text-wrap:balance;color:var(--ink);padding-left:clamp(18px,2.4vw,32px);border-left:2px solid var(--gold)}
.idea-text{display:grid;gap:18px;color:var(--ink-2);font-size:1.125rem;max-width:36em}
@media (min-width:960px){.idea-grid{grid-template-columns:minmax(0,7fr) minmax(0,5fr);align-items:end}}

/* ---------- method ---------- */
.steps{display:grid;gap:0;border-top:1px solid var(--line)}
.steps li{display:grid;grid-template-columns:auto 1fr;gap:6px 24px;padding:28px 0;border-bottom:1px solid var(--line)}
.steps .roman{grid-row:span 2;font:italic 500 clamp(2.6rem,5vw,4rem)/1 var(--serif);color:var(--gold-text);min-width:1.6em}
.steps h3{font:600 clamp(1.6rem,2.4vw,2.1rem)/1.1 var(--serif)}
.steps p{color:var(--ink-2);max-width:34em}
@media (min-width:900px){.steps{grid-template-columns:repeat(3,1fr);border-top:0;gap:0}.steps li{display:block;padding:32px 32px 32px 0;border-top:1px solid var(--line);border-bottom:0}.steps li+li{padding-left:32px;border-left:1px solid var(--line)}.steps .roman{display:block;margin-bottom:18px}}
.sub-title{margin-top:clamp(48px,6vw,80px);font:600 .75rem/1.4 var(--sans);letter-spacing:.2em;text-transform:uppercase;color:var(--ink-3)}
.rules{margin-top:22px;display:grid;gap:1px;background:var(--line);border:1px solid var(--line)}
.rule{background:var(--bg);padding:clamp(22px,2.4vw,32px)}
.rule h4{font:600 1.5rem/1.15 var(--serif);margin-bottom:10px}
.rule p{color:var(--ink-2);font-size:1rem}
@media (min-width:900px){.rules{grid-template-columns:repeat(3,1fr)}}

/* ---------- pricing ---------- */
.big-price{font:500 clamp(2.2rem,3.4vw,3rem)/1 var(--serif);color:var(--ink);letter-spacing:-.01em}
.two{margin-top:clamp(40px,5vw,64px);display:grid;gap:8px 56px}
.two .sub-title{margin-top:24px}
.plain{margin-top:16px;display:grid;gap:12px;color:var(--ink-2)}
.plain li{position:relative;padding-left:22px}
.plain li::before{content:"";position:absolute;left:2px;top:.66em;width:6px;height:6px;background:var(--gold);transform:rotate(45deg)}
@media (min-width:900px){.two{grid-template-columns:1fr 1fr}}

/* ---------- contact ---------- */
.contact-grid{display:grid;gap:clamp(32px,5vw,72px)}
.where{margin-top:26px;font:600 .75rem/1.4 var(--sans);letter-spacing:.16em;text-transform:uppercase;color:var(--ink-3)}
.direct{margin-top:14px;color:var(--ink-2)}
.direct a{color:var(--ink);text-underline-offset:4px}
@media (min-width:960px){.contact-grid{grid-template-columns:minmax(0,5fr) minmax(0,7fr)}}
.form{display:grid;gap:20px 20px;grid-template-columns:1fr;align-content:start}
@media (min-width:640px){.form{grid-template-columns:1fr 1fr}.form .wide{grid-column:1/-1}}
.field{display:grid;gap:8px;align-content:start}
.field label{font:600 .8125rem/1.3 var(--sans);letter-spacing:.06em;color:var(--ink)}
.field input[type=text],.field input[type=email],.field select,.field textarea{width:100%;min-height:50px;padding:12px 14px;background:var(--surface);border:1px solid var(--line-2);border-radius:2px;color:var(--ink);transition:border-color .2s,box-shadow .2s}
.field textarea{resize:vertical;min-height:140px;line-height:1.5}
.field input:hover,.field select:hover,.field textarea:hover{border-color:var(--ink-3)}
.field input:focus-visible,.field select:focus-visible,.field textarea:focus-visible{outline:none;border-color:var(--gold);box-shadow:0 0 0 3px color-mix(in srgb,var(--gold) 38%,transparent)}
.field [aria-invalid="true"]{border-color:var(--err)}
.select-wrap{position:relative}
.select-wrap::after{content:"";position:absolute;right:16px;top:50%;width:7px;height:7px;border-right:1.5px solid var(--ink-2);border-bottom:1.5px solid var(--ink-2);transform:translateY(-70%) rotate(45deg);pointer-events:none}
.select-wrap select{appearance:none;-webkit-appearance:none;padding-right:40px;cursor:pointer}
.hint{font-size:.8125rem;color:var(--ink-3)}
.err{font-size:.8125rem;font-weight:600;color:var(--err)}
.hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.check{grid-template-columns:auto 1fr;column-gap:12px;align-items:start}
.check input{width:24px;height:24px;margin:1px 0 0;accent-color:var(--gold)}
.check label{font-weight:400;letter-spacing:0;font-size:.9375rem;color:var(--ink-2)}
.check label a{color:var(--ink);text-underline-offset:3px}
.check .err{grid-column:1/-1}
.form .btn[disabled]{opacity:.7;cursor:progress}
.form-status{padding:16px 18px;border:1px solid var(--line-2);border-left:3px solid var(--gold);background:var(--surface);font-size:.9375rem}
.form-status strong{display:block;font:600 1.25rem/1.2 var(--serif);margin-bottom:4px}
.form-status.is-error{border-left-color:var(--err)}

/* ---------- footer ---------- */
.site-footer{border-top:1px solid var(--line);padding-block:clamp(44px,6vw,80px) 28px;background:var(--bg)}
.foot{display:grid;gap:36px}
.foot-logo{margin:0}.foot-brand .brand-emblem{width:56px;height:56px}.foot-brand .brand-name{font-size:1.5rem;font-style:normal}
.foot-brand p{margin-top:16px;max-width:24em;color:var(--ink-2);font:italic 500 1.25rem/1.35 var(--serif)}
.foot-nav ul{display:grid;gap:4px}
.foot-nav a{display:inline-block;padding:8px 0;text-decoration:none;color:var(--ink-2);font-size:.9375rem}
.foot-nav a:hover{color:var(--ink);text-decoration:underline;text-decoration-color:var(--gold);text-underline-offset:5px}
.foot-meta{display:grid;gap:6px;align-content:start;color:var(--ink-3);font-size:.875rem}
.foot-meta a{color:var(--ink-2)}
.foot-base{margin-top:36px;padding-top:22px;border-top:1px solid var(--line);display:flex;justify-content:space-between;align-items:center;gap:16px;color:var(--ink-3);font-size:.8125rem}
.to-top{display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;border:1px solid var(--line);border-radius:2px;text-decoration:none;font-size:1.125rem;color:var(--ink);transition:border-color .2s,transform .25s var(--ease)}
.to-top:hover{border-color:var(--gold);transform:translateY(-2px)}
@media (min-width:860px){.foot{grid-template-columns:1.4fr 1fr 1fr;gap:56px}}

/* ---------- document pages ---------- */
.doc{padding-block:clamp(48px,7vw,96px) clamp(72px,9vw,128px)}
.doc .back{text-decoration:none;color:var(--ink-2)}
.doc .back:hover{color:var(--ink)}
.doc-title{margin-top:28px;font:500 clamp(2.4rem,6vw,4.2rem)/1.04 var(--serif)}
.doc-meta{margin-top:14px;color:var(--ink-3);font-size:.9375rem}
.doc-h{margin-top:44px;font:600 1.75rem/1.15 var(--serif)}
.doc p+p{margin-top:12px}
.doc .doc-h+p{margin-top:12px}
.doc p{color:var(--ink-2)}
.nf-code{font:italic 500 clamp(5rem,16vw,10rem)/1 var(--serif);color:var(--gold-text);opacity:.9}
.nf .btn{margin-top:28px}

/* ---------- reveal ---------- */
@media (prefers-reduced-motion:no-preference){
  html.js .reveal{opacity:0;transform:translateY(16px);transition:opacity .8s var(--ease),transform .8s var(--ease)}
  html.js .reveal.in{opacity:1;transform:none}
  html.js .grid .reveal:nth-child(3n+2){transition-delay:.07s}
  html.js .grid .reveal:nth-child(3n+3){transition-delay:.14s}
}

/* ---------- print ---------- */
@media print{.site-header,.progress,.menu,.skip,.to-top,.plate{display:none!important}body{background:#fff;color:#000}.section{padding-block:24px}}

/* ---------- nautical chart theming ---------- */
.chart{--c-paper:#F3EDE0;--c-water:#F8F4EA;--c-land:#E6DAC0;--c-ink:#0B1220;--gold:#C28A2B;--gold-text:#8A5A0C;display:block;width:100%;height:auto}
[data-theme="dark"] .chart,[data-theme="dark"].chart{--c-paper:#0B1220;--c-water:#0E1A2E;--c-land:#15263F;--c-ink:#C9D6EC;--gold:#E8B04B;--gold-text:#E8B04B}
.ch-paper{fill:var(--c-paper)}.ch-water{fill:var(--c-water)}
.ch-rhumb{stroke:var(--c-ink);stroke-opacity:.15;stroke-width:.8;fill:none}.ch-rhumb.b{stroke:var(--gold);stroke-opacity:.3}
.ch-halo2{fill:none;stroke:var(--c-ink);stroke-opacity:.045;stroke-width:15;stroke-linejoin:round}
.ch-halo1{fill:none;stroke:var(--c-ink);stroke-opacity:.07;stroke-width:7;stroke-linejoin:round}
.ch-land{fill:var(--c-land)}
.ch-coast{fill:none;stroke:var(--c-ink);stroke-width:1.15;stroke-opacity:.85;stroke-linejoin:round}
.ch-ring{fill:none;stroke:var(--c-ink);stroke-width:1.3;stroke-opacity:.75}.ch-ring.thin{stroke-width:.6;stroke-opacity:.5}
.ch-pt-a{fill:var(--c-ink);fill-opacity:.9}.ch-pt-b{fill:var(--c-water);stroke:var(--c-ink);stroke-width:.8}
.ch-north{fill:var(--gold)}
.ch-frame{fill:none;stroke:var(--c-ink);stroke-width:1.5}.ch-frame.thin{stroke-width:.6;stroke-opacity:.6}
.ch-tick{stroke:var(--c-ink);stroke-width:.8;fill:none}
.ch-tick-label{font:500 10.5px 'Hanken Grotesk Variable','Hanken Grotesk',system-ui,sans-serif;letter-spacing:.06em;fill:var(--c-ink);opacity:.7}
.ch-label{font:italic 500 19px 'Cormorant Garamond',Georgia,serif;fill:var(--c-ink)}
.ch-label.cap{font-style:normal;font-weight:600;font-size:18px}
.ch-label.strong{font-style:normal;font-weight:700;font-size:24px;paint-order:stroke;stroke:var(--c-water);stroke-width:5px}
.ch-label.gold{fill:var(--gold-text);font-size:23px;font-weight:600;paint-order:stroke;stroke:var(--c-water);stroke-width:5px}
.ch-city{fill:var(--c-ink)}
.ch-route{fill:none;stroke:var(--gold);stroke-width:2.8;stroke-linecap:round;stroke-dasharray:1 9}
.ch-mask{fill:none;stroke:#fff;stroke-width:16}
.ch-lis-ring{fill:none;stroke:var(--gold);stroke-width:2}.ch-lis-dot{fill:var(--gold)}
.ch-needle{fill:var(--gold)}.ch-fifth-ring{fill:none;stroke:var(--gold);stroke-width:1.4;stroke-dasharray:2 4}

/* demonstration grid: explicit columns so the seventh card closes the last row */
.g-proj{grid-template-columns:1fr}
@media (min-width:640px){.g-proj .proj:last-child:nth-child(odd) .proj-img{max-width:min(100%,520px)}.g-proj{grid-template-columns:repeat(2,1fr)}.g-proj .proj:last-child:nth-child(odd){grid-column:1/-1}.g-proj .proj:last-child:nth-child(odd) .card-text{max-width:62ch}}
@media (min-width:960px){.g-proj{grid-template-columns:repeat(3,1fr)}.g-proj .proj:last-child:nth-child(3n+1){grid-column:1/-1}}

/* azulejo band, taken from the tile pattern of the original logo concept */
.azulejo{height:48px;background:var(--azul);opacity:.5;-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='48' height='48' viewBox='0 0 48 48' fill='none' stroke='%23000' stroke-width='1.3'%3E%3Cpath d='M24 0A24 24 0 0 1 0 24M24 0A24 24 0 0 0 48 24M0 24A24 24 0 0 0 24 48M48 24A24 24 0 0 1 24 48'/%3E%3Cg%3E%3Cellipse cx='24' cy='14.5' rx='4' ry='8.5'/%3E%3Cellipse cx='24' cy='14.5' rx='4' ry='8.5' transform='rotate(90 24 24)'/%3E%3Cellipse cx='24' cy='14.5' rx='4' ry='8.5' transform='rotate(180 24 24)'/%3E%3Cellipse cx='24' cy='14.5' rx='4' ry='8.5' transform='rotate(270 24 24)'/%3E%3C/g%3E%3Ccircle cx='24' cy='24' r='2.4' fill='%23000' stroke='none'/%3E%3C/svg%3E") repeat-x center/48px 48px;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='48' height='48' viewBox='0 0 48 48' fill='none' stroke='%23000' stroke-width='1.3'%3E%3Cpath d='M24 0A24 24 0 0 1 0 24M24 0A24 24 0 0 0 48 24M0 24A24 24 0 0 0 24 48M48 24A24 24 0 0 1 24 48'/%3E%3Cg%3E%3Cellipse cx='24' cy='14.5' rx='4' ry='8.5'/%3E%3Cellipse cx='24' cy='14.5' rx='4' ry='8.5' transform='rotate(90 24 24)'/%3E%3Cellipse cx='24' cy='14.5' rx='4' ry='8.5' transform='rotate(180 24 24)'/%3E%3Cellipse cx='24' cy='14.5' rx='4' ry='8.5' transform='rotate(270 24 24)'/%3E%3C/g%3E%3Ccircle cx='24' cy='24' r='2.4' fill='%23000' stroke='none'/%3E%3C/svg%3E") repeat-x center/48px 48px}
.azulejo-wrap{padding-block:28px 0;overflow:hidden}
@media print{.azulejo-wrap{display:none}}
