/* Sarah Ghekiere portfolio: main stylesheet (original design). */
@font-face{font-family:"Schibsted Grotesk Variable";font-style:normal;font-weight:400 900;font-display:swap;src:url(../fonts/schibsted-latin.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:"Schibsted Grotesk Variable";font-style:normal;font-weight:400 900;font-display:swap;src:url(../fonts/schibsted-latin-ext.woff2) format("woff2");unicode-range:U+0104-0107,U+0118-0119,U+0141-0144,U+015A-015B,U+0179-017C}
@font-face{font-family:"Newsreader Variable";font-style:normal;font-weight:200 800;font-display:swap;src:url(../fonts/newsreader-latin.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:"Newsreader Variable";font-style:normal;font-weight:200 800;font-display:swap;src:url(../fonts/newsreader-latin-ext.woff2) format("woff2");unicode-range:U+0104-0107,U+0118-0119,U+0141-0144,U+015A-015B,U+0179-017C}

:root{
  --paper:#fff;--mist:#f2f4f7;--mist-2:#e4e8ee;
  --ink:#152033;--slate:#4b5669;--faint:#667085;
  --rule:#dde2e9;--rule-2:#c3cad5;
  --hl:#79a9ff;--hl-soft:#eaf3ff;--hl-ink:#244a7b;
  --cite:#2e4bef;--cite-ink:#2139c9;--cite-soft:#e8ecfe;
  --qs:#1c3f8a;--qs-soft:#e8edf7;
  --bl:#e0461d;--bl-ink:#b8360f;--bl-soft:#fdeee8;
  --kd:#8e98a9;
  --sans:"Schibsted Grotesk Variable",ui-sans-serif,system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif;
  --serif:"Newsreader Variable","Iowan Old Style","Palatino Linotype",Georgia,serif;
  --wrap:1120px;--gutter:clamp(20px,4.5vw,44px);
  --portrait:url(../img/portrait.jpg);
}
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--sans);font-size:1.0625rem;line-height:1.55;-webkit-font-smoothing:antialiased}
[id]{scroll-margin-top:84px}
[hidden]{display:none!important}
a{color:var(--cite-ink);text-underline-offset:3px}
p,h1,h2,h3,h4,figure,blockquote{margin:0}
h1,h2,h3,h4{font-weight:720;letter-spacing:-.018em;line-height:1.12}
ul,ol{margin:0}
button{font:inherit;color:inherit}
:focus-visible{outline:3px solid var(--cite);outline-offset:2px;border-radius:4px}
h1:focus{outline:none}
.skip{position:absolute;left:12px;top:-60px;z-index:60;background:var(--ink);color:#fff;padding:10px 14px;border-radius:8px}
.skip:focus{top:12px}
.wrap{max-width:var(--wrap);margin-inline:auto;padding-inline:var(--gutter)}
.portrait{background-color:var(--qs-soft);background-image:var(--portrait);background-position:center 60%;background-size:cover;background-repeat:no-repeat;image-rendering:auto}
.serif{font-family:var(--serif)}

.btn{display:inline-flex;align-items:center;justify-content:center;text-align:center;gap:8px;min-height:46px;padding:0 20px;border-radius:999px;border:1.5px solid var(--ink);background:transparent;color:var(--ink);font-weight:600;font-size:.97rem;line-height:1.15;text-decoration:none;cursor:pointer;transition:background-color .15s,color .15s,border-color .15s}
.btn:hover{background:var(--ink);color:#fff}
.btn-primary{background:var(--ink);color:#fff}
.btn-primary:hover{background:var(--cite-ink);border-color:var(--cite-ink)}
.btn-small{min-height:38px;padding:0 15px;font-size:.92rem}
.btn.needs-setup{border-style:dashed;border-color:#6594e1;background:#fff;color:var(--hl-ink);cursor:default}
.actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:30px}

/* header */
.site-head{position:sticky;top:0;z-index:40;background:var(--hl-soft);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-bottom:1px solid rgba(36,74,123,.16)}
.head-inner{display:flex;align-items:center;justify-content:space-between;gap:20px;height:68px;position:relative}
.mark{display:flex;align-items:center;gap:10px;color:var(--ink);text-decoration:none;font-weight:700}
.mono{width:34px;height:34px;border-radius:50%;background:var(--hl);display:grid;place-items:center;font-size:.8rem;font-weight:800}
.nav{display:flex;align-items:center;gap:28px}
.nav a:not(.btn){color:var(--slate);text-decoration:none;font-weight:500}
.nav a:not(.btn):hover{color:var(--ink)}
.nav #blog-nav-link{display:inline-flex;min-height:38px;align-items:center;padding:0 15px;border:1.5px solid var(--ink);border-radius:999px;color:var(--ink);font-weight:700}
.nav #blog-nav-link:hover,.nav #blog-nav-link[aria-current="page"]{background:var(--ink);color:#fff;text-decoration:none}
.blog-mobile-link{display:none;min-height:40px;align-items:center;padding:0 14px;border:1.5px solid var(--ink);border-radius:999px;background:var(--hl);color:var(--ink);font-weight:750;text-decoration:none}
.menu-btn{display:none;min-height:40px;padding:0 14px;border-radius:999px;border:1.5px solid var(--ink);background:transparent;color:var(--ink);font-weight:600;cursor:pointer}
@media (max-width:760px){
  .blog-mobile-link{display:inline-flex;margin-left:auto}
  .menu-btn{display:inline-flex;align-items:center}
  .nav{display:none;position:absolute;top:68px;left:calc(-1 * var(--gutter));right:calc(-1 * var(--gutter));flex-direction:column;align-items:stretch;gap:0;background:var(--hl-soft);border-bottom:1px solid rgba(36,74,123,.16);padding:6px var(--gutter) 18px}
  .nav.open{display:flex}
  .nav a:not(.btn){padding:13px 0;border-bottom:1px solid var(--rule)}
  .nav .btn{margin-top:14px}
}

/* hero */
.hero{padding:clamp(44px,7vw,96px) 0 clamp(56px,8vw,104px)}
.hero-grid{display:grid;grid-template-columns:minmax(0,1.08fr) minmax(0,.92fr);gap:clamp(36px,5.5vw,76px);align-items:center}
.who{display:flex;align-items:center;gap:14px;margin-bottom:28px}
.who-img{width:64px;height:64px;border-radius:50%;flex:none;overflow:hidden;background-size:135% auto;background-position:center 24%}
.who b{display:block}
.who span{color:var(--slate);font-size:.95rem}
.hero h1{font-size:clamp(2.5rem,1.45rem + 3.6vw,4.1rem);line-height:1.02;letter-spacing:-.032em;font-weight:760;max-width:15ch}
.lede{font-family:var(--serif);font-size:clamp(1.15rem,1.05rem + .35vw,1.3rem);line-height:1.55;color:var(--slate);margin-top:24px;max-width:32em}
.quick{display:flex;flex-wrap:wrap;gap:10px 28px;margin:34px 0 0;padding:18px 0 0;border-top:1px solid var(--rule);list-style:none}
.quick b{display:block;font-size:1.35rem;font-weight:720;letter-spacing:-.02em}
.quick span{font-size:.88rem;color:var(--slate)}

.answer{background:#fff;border:1px solid var(--rule);border-radius:18px;box-shadow:0 30px 60px -38px rgba(21,32,51,.45);overflow:hidden}
.ask{display:flex;gap:12px;align-items:flex-start;padding:17px 22px;background:var(--mist);border-bottom:1px solid var(--rule);font-weight:600;line-height:1.35}
.ask svg{flex:none;margin-top:2px;color:var(--slate)}
.reply{padding:22px 22px 6px;font-family:var(--serif);font-size:1.14rem;line-height:1.6}
.reply p+p{margin-top:12px}
mark.lift{color:inherit;padding:0 .08em;background:linear-gradient(transparent 10%,var(--hl) 10%,var(--hl) 90%,transparent 90%) no-repeat 0 0/100% 100%;-webkit-box-decoration-break:clone;box-decoration-break:clone}
@media (prefers-reduced-motion:no-preference){
  .js .hero mark.lift{background-size:0% 100%}
  .js .hero mark.lift.sweep{animation:sweep 1.2s cubic-bezier(.65,.05,.3,1) .45s forwards}
}
@keyframes sweep{to{background-size:100% 100%}}
.cite,.src-n{display:inline-grid;place-items:center;min-width:1.4em;height:1.4em;padding:0 .3em;border-radius:5px;background:var(--cite-soft);color:var(--cite-ink);font:700 .72rem/1 var(--sans);text-decoration:none}
.cite{margin-left:.2em;vertical-align:.18em}
.cite:hover{background:var(--cite);color:#fff}
.sources{list-style:none;margin:14px 0 0;padding:12px 22px 16px;border-top:1px solid var(--rule);display:grid;gap:2px}
.sources a{display:flex;gap:12px;align-items:flex-start;padding:8px 10px;margin-inline:-10px;border-radius:9px;color:var(--ink);text-decoration:none}
.sources a:hover{background:var(--mist)}
.src-n{flex:none;margin-top:2px}
.sources b{display:block;font-size:.95rem}
.sources small{color:var(--slate);font-size:.87rem}

/* sections */
.section{padding:clamp(64px,9vw,112px) 0}
.band{background:var(--mist)}
.sec-head{max-width:720px;margin-bottom:clamp(28px,4vw,44px)}
.sec-head h2{font-size:clamp(2rem,1.45rem + 2vw,2.9rem);line-height:1.06;letter-spacing:-.028em;font-weight:740}
.sec-head p{margin-top:12px;color:var(--slate)}

/* capabilities */
.caps{list-style:none;padding:0;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}
.cap{background:#fff;border:1px solid var(--rule);border-radius:16px;padding:22px}
.cap-ico{display:grid;place-items:center;width:50px;height:50px;border-radius:15px 15px 15px 6px;background:var(--hl);color:var(--ink);margin-bottom:16px;box-shadow:0 8px 20px -14px rgba(21,32,51,.55);transform:rotate(-2deg)}
.cap:nth-child(even) .cap-ico{border-radius:15px 6px 15px 15px;transform:rotate(2deg)}
.cap-ico svg{display:block}
.cap h3{font-size:1.1rem}
.cap p{margin-top:6px;color:var(--slate);font-size:.95rem}
@media (max-width:960px){.caps{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:520px){.caps{grid-template-columns:1fr}}

/* case cards */
.cards{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(16px,2.5vw,28px)}
@media (max-width:820px){.cards{grid-template-columns:1fr}}
.card{display:flex;flex-direction:column;border:1px solid var(--rule);border-radius:20px;overflow:hidden;background:#fff;color:var(--ink);text-decoration:none;transition:transform .2s,box-shadow .2s}
.card:hover{transform:translateY(-3px);box-shadow:0 28px 50px -36px rgba(21,32,51,.5)}
@media (prefers-reduced-motion:reduce){.card:hover{transform:none}}
.card-body{padding:24px 26px 26px;display:flex;flex-direction:column;flex:1}
.client{display:flex;align-items:center;gap:9px;font-weight:650;font-size:.95rem}
.client i{width:12px;height:12px;border-radius:3px;background:var(--qs)}
.bl-brand .client i,.card--bl .client i{background:var(--bl)}
.kg-brand .client i,.card--kg .client i{background:#2f7b5c}
.card h3{margin-top:10px;font-size:clamp(1.35rem,1.15rem + .7vw,1.7rem);line-height:1.15}
.card-body p{margin-top:10px;color:var(--slate)}
.card-link{margin-top:auto;padding-top:20px;font-weight:650;color:var(--cite-ink);display:inline-flex;align-items:center;gap:8px}
.card-link svg{transition:transform .2s}
.card:hover .card-link svg{transform:translateX(4px)}
.mini-t{font-size:.82rem;font-weight:600;color:var(--qs);margin-bottom:12px}
.card--bl .mini-t{color:var(--bl-ink)}
.card--kg .mini-t{color:#2f6d55}


/* bars */
.bars{display:grid;gap:11px}
.bar-row{display:grid;grid-template-columns:minmax(80px,.8fr) minmax(0,2fr) 44px;gap:12px;align-items:center;font-size:.93rem}
.t{height:12px;border-radius:99px;background:rgba(21,32,51,.08);overflow:hidden}
.f{height:100%;border-radius:99px;background:var(--qs)}
.f.kd{background:var(--kd)}
.bar-row b{text-align:right;font-variant-numeric:tabular-nums}
.bar-row.us span,.bar-row.us b{font-weight:700}

/* dots */
.dots{display:grid;grid-template-columns:repeat(20,1fr);gap:5px;max-width:360px}
.dots i{aspect-ratio:1;border-radius:50%;background:rgba(21,32,51,.1)}
.dots i.on{background:var(--bl)}
.dots-cap{margin-top:12px;font-family:var(--serif);font-size:1.2rem}

/* brands */
.brands{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px}
.brand{display:flex;align-items:center;justify-content:center;min-height:104px;padding:16px;border:1px solid var(--rule);border-radius:16px;background:rgba(255,255,255,.22);overflow:hidden}
.brand img{display:block;max-width:88%;max-height:58px;width:auto;height:auto;object-fit:contain;mix-blend-mode:multiply}
.brand--quickstep img{max-height:78px;max-width:94%}
.brand--pergo img{max-height:48px}
.brand--moduleo img{max-height:82px;max-width:94%}
.brand--bloovi{gap:11px}
.brand--bloovi img{width:48px;height:48px;object-fit:contain}
.brand--bloovi .brand-name{display:block;font-size:1.45rem;font-weight:780;letter-spacing:-.03em;color:#051445}
.brand--kanguru img{max-height:82px;max-width:92%}
.brand-fallback{display:none;font-size:1.25rem;font-weight:760;letter-spacing:-.02em;color:var(--ink)}
@media (max-width:640px){
  .brands{grid-template-columns:repeat(2,minmax(0,1fr))}
  .brand{min-height:92px}
}

/* about */
#about{padding-bottom:clamp(28px,3.5vw,44px)}
.about-grid{display:grid;grid-template-columns:minmax(0,.7fr) minmax(0,1.3fr);gap:clamp(28px,6vw,80px);align-items:center}
.portrait-lg{width:100%;max-width:320px;aspect-ratio:1;border-radius:26px;overflow:hidden;background-size:cover;background-position:100% 45%}
.about-text p{font-family:var(--serif);font-size:1.2rem;line-height:1.6}
.about-text p+p{margin-top:14px}
.kit{margin:26px 0 0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 28px}
.kit div{padding:12px 0;border-top:1px solid var(--rule)}
.kit dt{font-size:.82rem;color:var(--faint)}
.kit dd{margin:2px 0 0;font-size:.96rem}
@media (max-width:760px){.about-grid,.kit{grid-template-columns:1fr}.portrait-lg{max-width:200px}}

/* quotes */
.quotes{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(24px,5vw,64px)}
@media (max-width:760px){.quotes{grid-template-columns:1fr}}
.quote blockquote{font-family:var(--serif);font-size:clamp(1.15rem,1.05rem + .4vw,1.35rem);line-height:1.5}
.quote figcaption{margin-top:14px;font-size:.95rem}
.quote figcaption span{color:var(--slate)}
.draft-flag{display:inline-block;margin-top:12px;padding:3px 9px;border-radius:7px;border:1px dashed #6594e1;background:var(--hl-soft);color:var(--hl-ink);font-size:.8rem;font-weight:650}
.approved .draft-flag{display:none}

/* contact */
.contact{background:var(--hl-soft)}
.contact-grid{display:grid;grid-template-columns:minmax(0,1.2fr) auto;gap:28px;align-items:end}
.contact h2{font-size:clamp(2rem,1.4rem + 2.2vw,3rem);line-height:1.05;letter-spacing:-.03em;font-weight:760;max-width:15ch}
.contact p{margin-top:12px;font-family:var(--serif);font-size:1.18rem;color:var(--slate)}
.contact .actions{margin-top:0}
.contact-email{font-family:var(--sans);font-size:clamp(1.1rem,1rem + .4vw,1.3rem);font-weight:700;color:var(--ink);text-decoration:none;border-bottom:2px solid var(--ink);padding-bottom:2px}
.contact-email:hover{border-bottom-color:transparent}
@media (max-width:760px){.contact-grid{grid-template-columns:1fr}.contact .btn{width:100%}}
.site-foot{padding:26px 0;border-top:1px solid rgba(36,74,123,.18);background:var(--hl);font-size:.88rem;color:var(--ink);font-weight:600}

/* ---------- case study pages ---------- */
.case-view{padding:clamp(28px,4vw,44px) 0 clamp(64px,9vw,112px)}
.back{display:inline-flex;align-items:center;gap:8px;font-weight:600;text-decoration:none;color:var(--slate)}
.back:hover{color:var(--ink)}
.c-hero{padding:clamp(28px,4vw,48px) 0 clamp(28px,4vw,40px)}
.c-hero h1{margin-top:16px;font-size:clamp(2.2rem,1.35rem + 3vw,3.6rem);line-height:1.04;letter-spacing:-.032em;font-weight:760;max-width:20ch}
.c-lede{margin-top:18px;font-family:var(--serif);font-size:clamp(1.15rem,1.05rem + .35vw,1.32rem);color:var(--slate);max-width:38em}
.c-meta{margin:26px 0 0;display:flex;flex-wrap:wrap;gap:12px 36px}
.c-meta dt{font-size:.82rem;color:var(--faint)}
.c-meta dd{margin:2px 0 0;font-weight:600}
.case-capabilities{margin:4px 0 28px;padding:18px 20px;border:1px solid var(--rule);border-radius:16px;background:#fff}
.case-capabilities b{display:block;margin-bottom:10px;font-size:.82rem;text-transform:uppercase;letter-spacing:.07em;color:var(--faint)}
.case-capabilities ul{list-style:none;padding:0;display:flex;flex-wrap:wrap;gap:8px}
.case-capabilities li{padding:7px 11px;border-radius:999px;background:var(--mist);font-size:.88rem;font-weight:600}
.bl-brand .case-capabilities li{background:var(--bl-soft)}
.kg-brand .case-capabilities li{background:#e9f4ef}
.stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}
.stat{padding:20px;border-radius:16px;background:var(--qs-soft)}
.bl-brand .stat{background:var(--bl-soft)}
.kg-brand .stat{background:#e9f4ef}
.stat b{display:block;font-size:clamp(1.9rem,1.5rem + 1.2vw,2.5rem);font-weight:760;letter-spacing:-.03em;line-height:1.05;color:var(--qs)}
.bl-brand .stat b{color:var(--bl-ink)}
.kg-brand .stat b{color:#2f6d55}
.stat span{display:block;margin-top:6px;font-size:.92rem;color:var(--slate)}
.stat.empty{background:#fff;border:1.5px dashed #6594e1}
.stat.empty b{font-size:1.05rem;color:var(--hl-ink);letter-spacing:0;padding-top:.5em}
@media (max-width:860px){.stats{grid-template-columns:repeat(2,minmax(0,1fr))}}
.c-sec{padding-top:clamp(48px,6vw,80px)}
.c-sec > h2,.c-split h2{font-size:clamp(1.6rem,1.3rem + 1.1vw,2.2rem);letter-spacing:-.024em;margin-bottom:14px}
.c-text{font-family:var(--serif);font-size:1.18rem;line-height:1.65;max-width:38em}
.c-text + .c-text{margin-top:14px}
.c-split{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(24px,5vw,64px);align-items:start}
@media (max-width:860px){.c-split{grid-template-columns:1fr}}
.steps4{list-style:none;padding:0;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;counter-reset:st}
.steps4 li{counter-increment:st;padding:22px;border:1px solid var(--rule);border-radius:16px}
.steps4 li::before{content:counter(st);display:grid;place-items:center;width:34px;height:34px;border-radius:50%;background:var(--ink);color:#fff;font-weight:750;font-size:.9rem;margin-bottom:14px}
.bl-brand .steps4 li::before{background:var(--bl-ink)}
.steps4 h3{font-size:1.08rem}
.steps4 p{margin-top:6px;color:var(--slate);font-size:.95rem}
@media (max-width:960px){.steps4{grid-template-columns:repeat(2,minmax(0,1fr))}}
.buyer-map{margin-top:24px;display:grid;gap:12px;max-width:900px}
.buyer-tier{display:grid;grid-template-columns:150px minmax(0,1fr);gap:14px;align-items:start}
.buyer-tier-label{font-size:.78rem;font-weight:760;letter-spacing:.08em;text-transform:uppercase;color:var(--faint);padding-top:13px}
.buyer-tier-items{display:flex;flex-wrap:wrap;gap:9px}
.buyer-node{padding:10px 12px;border:1px solid var(--rule);border-radius:12px;background:#fff;font-weight:650;font-size:.91rem;line-height:1.3}
.buyer-node.primary{border-color:var(--ink);background:var(--ink);color:#fff}
.buyer-note{margin-top:18px;padding:16px 18px;border:1px solid var(--rule);border-radius:14px;background:var(--mist);color:var(--slate);line-height:1.55}
.buyer-note strong{color:var(--ink)}
@media (max-width:700px){.buyer-tier{grid-template-columns:1fr;gap:6px}.buyer-tier-label{padding-top:0}}
@media (max-width:520px){.steps4{grid-template-columns:1fr}}
.widget{background:#fff;border:1px solid var(--rule);border-radius:18px;padding:clamp(18px,2.4vw,26px)}
.w-head{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:8px 14px;margin-bottom:14px}
.w-head h3{font-size:1.1rem}
.caption{margin-top:14px;font-size:.82rem;color:var(--faint)}
.case-shot{margin:0}
.case-shot img{display:block;width:100%;height:auto;border-radius:12px;border:1px solid var(--rule)}
.case-shot .caption{margin-top:12px}
.laminate-proof{padding:clamp(22px,3vw,34px);border:1px solid #b8cae8;border-radius:20px;background:linear-gradient(180deg,#f4f8ff 0%,#fff 100%)}
.laminate-proof h2{margin-bottom:12px}
.laminate-intro{max-width:52em}
.laminate-results{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:22px 0 16px}
.laminate-result{padding:15px 14px;border-radius:13px;background:#fff;border:1px solid var(--rule)}
.laminate-result b{display:block;font-size:clamp(1.55rem,1.2rem + .8vw,2rem);line-height:1;color:var(--qs);letter-spacing:-.025em}
.laminate-result span{display:block;margin-top:6px;font-size:.82rem;color:var(--slate);line-height:1.35}
.laminate-links{display:flex;flex-wrap:wrap;gap:9px;margin-top:18px}
.laminate-links a{display:inline-flex;align-items:center;gap:6px;padding:8px 11px;border-radius:999px;background:#fff;border:1px solid var(--rule);font-size:.88rem;font-weight:650;text-decoration:none;color:var(--ink)}
.laminate-proof .case-shot{padding:12px;background:#fff;margin-top:24px}
.case-shot--gsc{max-width:none}
.kg-proof{padding:clamp(22px,3vw,34px);border:1px solid #bcd9cb;border-radius:20px;background:linear-gradient(180deg,#f1f8f4 0%,#fff 100%)}
.kg-proof h2{margin-bottom:12px}
.kg-proof .case-shot{padding:12px;background:#fff;margin-top:24px}
.kg-proof .laminate-result b{color:#2f6d55}
.kg-proof .laminate-results{grid-template-columns:repeat(4,minmax(0,1fr))}
@media (max-width:760px){.kg-proof .laminate-results{grid-template-columns:repeat(2,minmax(0,1fr))}}
.case-shot-btn{position:relative;display:block;width:100%;padding:0;border:0;background:transparent;cursor:zoom-in;border-radius:12px;overflow:hidden}
.case-shot-btn img{transition:transform .18s ease}
.case-shot-btn:hover img{transform:scale(1.006)}
.zoom-hint{position:absolute;right:12px;bottom:12px;padding:7px 10px;border-radius:999px;background:rgba(21,32,51,.88);color:#fff;font-size:.78rem;font-weight:650;box-shadow:0 4px 18px rgba(0,0,0,.18)}
.image-lightbox{width:min(96vw,1780px);max-width:none;max-height:94vh;padding:48px 18px 18px;border:0;border-radius:18px;background:#fff;box-shadow:0 30px 90px rgba(0,0,0,.32);overflow:auto}
.image-lightbox::backdrop{background:rgba(13,20,32,.78);backdrop-filter:blur(3px)}
.image-lightbox img{display:block;width:100%;height:auto;max-width:none;border-radius:10px}
.image-lightbox-close{position:absolute;top:10px;right:12px;width:34px;height:34px;border-radius:50%;border:1px solid var(--rule-2);background:#fff;color:var(--ink);font-size:1.35rem;line-height:1;cursor:pointer}

.rankshift-proof-section{padding-top:10px}
.rankshift-proof{display:grid;grid-template-columns:minmax(0,.82fr) minmax(360px,1.18fr);gap:clamp(18px,3vw,32px);align-items:center;padding:clamp(18px,2.6vw,26px);border:1px solid var(--rule);border-radius:18px;background:linear-gradient(135deg,#f8fbff 0%,#fff 78%)}
.rankshift-kicker{margin-bottom:8px;font-size:.74rem;font-weight:760;letter-spacing:.09em;text-transform:uppercase;color:var(--cite-ink)}
.rankshift-copy h2{font-size:clamp(1.45rem,1.2rem + .7vw,1.9rem);line-height:1.12;letter-spacing:-.025em}
.rankshift-copy .c-text{margin-top:10px;max-width:34em}
.rankshift-shot{margin:0;min-width:0}
.rankshift-shot .case-shot-btn{height:220px;border:1px solid var(--rule);background:#fff}
.rankshift-shot img{display:block;width:100%;height:100%;object-fit:cover;object-position:top;border-radius:11px}
.rankshift-shot .caption{margin-top:8px}
@media (max-width:760px){.rankshift-proof{grid-template-columns:1fr}.rankshift-shot .case-shot-btn{height:210px}}
@media (max-width:860px){.laminate-results{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media (max-width:560px){.laminate-results{grid-template-columns:1fr}.laminate-proof{padding:18px}}
.articles-home{padding-top:clamp(42px,6vw,76px);padding-bottom:clamp(58px,8vw,104px);background:#fff}
.articles-home-head{display:flex;align-items:flex-end;justify-content:space-between;gap:2rem;margin-bottom:1.6rem}
.articles-home-head h2{font-size:clamp(2.2rem,1.5rem + 2.6vw,4rem);line-height:1;letter-spacing:-.045em}
.articles-home-head p{max-width:34rem;color:var(--slate);line-height:1.65}
.article-preview-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem}
.article-preview{overflow:hidden;border:1px solid var(--ink);border-radius:1.2rem;background:#fff}
.article-preview a{display:flex;height:100%;flex-direction:column;color:inherit;text-decoration:none}
.article-preview-art{position:relative;display:flex;min-height:10.5rem;align-items:flex-end;padding:1.2rem;background:var(--hl);overflow:hidden}
.article-preview:nth-child(2) .article-preview-art{background:var(--ink);color:#fff}
.article-preview:nth-child(3) .article-preview-art{background:#fff;border-bottom:1px solid var(--ink)}
.article-preview-art::before{content:"";position:absolute;width:9rem;height:9rem;right:-3rem;top:-4rem;border:2px solid currentColor;border-radius:50%}
.article-preview-art span{position:relative;z-index:1;font-size:.78rem;font-weight:800;letter-spacing:.12em;text-transform:uppercase}
.article-preview-art.has-image{padding:0;background:#fff}
.article-preview-art.has-image::before{display:none}
.article-preview-art.has-image img{display:block;width:100%;height:100%;min-height:10.5rem;object-fit:cover;object-position:center}
.article-preview-copy{padding:1rem 1.1rem 1.25rem}
.article-preview-meta{display:flex;justify-content:space-between;gap:1rem;margin-bottom:.65rem;color:var(--faint);font-size:.72rem;font-weight:700}
.article-preview h3{font-size:clamp(1.08rem,1.8vw,1.35rem);line-height:1.15;letter-spacing:-.025em}
.article-preview a:hover h3{text-decoration:underline;text-decoration-thickness:2px;text-underline-offset:4px}
.articles-home-actions{margin-top:1.4rem}
.agency-note{margin-top:22px;padding:14px 16px;border-left:3px solid var(--hl);background:var(--mist);border-radius:0 12px 12px 0;color:var(--slate);font-size:.96rem;line-height:1.55;max-width:52em}
.agency-note strong{color:var(--ink)}
@media (max-width:820px){.articles-home-head{align-items:flex-start;flex-direction:column}.article-preview-grid{grid-template-columns:1fr}}

.deck-card{overflow:hidden;padding:0}
.deck-card img{display:block;width:100%;height:auto;border-bottom:1px solid var(--rule)}
.deck-card-body{padding:18px}
.deck-card small{display:block;margin-bottom:6px;color:var(--faint);font-weight:700;text-transform:uppercase;letter-spacing:.07em}
.deck-card h3{font-size:1.28rem;letter-spacing:-.02em}
.deck-card p{margin-top:8px;color:var(--slate);line-height:1.5}
.deck-link{display:inline-flex;align-items:center;gap:6px;margin-top:14px;font-weight:650}

.seg{display:flex;gap:4px;padding:4px;background:var(--mist);border-radius:11px}
.seg button{appearance:none;border:0;background:transparent;border-radius:8px;padding:7px 13px;font-size:.9rem;font-weight:560;color:var(--slate);cursor:pointer}
.seg button[aria-pressed="true"]{background:#fff;color:var(--ink);box-shadow:0 1px 2px rgba(21,32,51,.14)}
.doc{padding:18px 20px;border:1px solid var(--rule);border-radius:13px}
.doc-h{font-weight:720;font-size:1.2rem;line-height:1.25}
.doc-p{margin-top:10px;font-family:var(--serif);font-size:1.08rem;line-height:1.6}
.doc-tldr{margin-top:12px;padding:11px 13px;border-radius:9px;background:var(--mist);display:grid;gap:3px;font-size:.9rem}
.verdict{display:flex;gap:9px;margin-top:14px;font-size:.92rem;color:var(--slate)}
.verdict i{flex:none;width:10px;height:10px;margin-top:6px;border-radius:50%;background:#d0453a}
.doc--after .verdict i{background:#1d7a50}
.checks{list-style:none;padding:0;margin-top:18px;display:grid;gap:8px}
.checks li{display:flex;gap:10px;align-items:flex-start}
.checks li::before{content:"";flex:none;width:18px;height:18px;margin-top:3px;border-radius:50%;background:var(--hl) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 18 18'%3E%3Cpath d='M5 9.5l2.5 2.5L13 6.5' fill='none' stroke='%23152033' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center/100% no-repeat}
.lead-flow{margin-top:24px;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px;align-items:stretch}
.lead-step{position:relative;padding:18px 16px;border:1px solid var(--rule);border-radius:14px;background:#fff}
.lead-step:not(:last-child)::after{content:"→";position:absolute;right:-17px;top:50%;z-index:2;transform:translateY(-50%);display:grid;place-items:center;width:24px;height:24px;border-radius:50%;background:var(--hl);font-weight:800}
.lead-step b{display:block;font-size:.78rem;text-transform:uppercase;letter-spacing:.07em;color:#2f6d55}
.lead-step span{display:block;margin-top:7px;font-size:.93rem;line-height:1.4;color:var(--slate)}
.handoff-note{margin-top:16px;padding:16px 18px;border-radius:14px;background:#e9f4ef;color:var(--slate)}
.handoff-note strong{color:var(--ink)}
@media (max-width:820px){.lead-flow{grid-template-columns:1fr}.lead-step:not(:last-child)::after{content:"↓";right:auto;left:50%;top:auto;bottom:-17px;transform:translateX(-50%)}}
.pub-list{list-style:none;padding:0;margin-top:20px;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 20px;border-top:1px solid var(--rule)}
.pub-list a{display:flex;justify-content:space-between;gap:10px;padding:11px 2px;border-bottom:1px solid var(--rule);color:var(--ink);text-decoration:none;font-weight:600;font-size:.95rem}
.pub-list a:hover{color:var(--cite-ink)}
.pub-list svg{flex:none;color:var(--faint);margin-top:4px}
@media (max-width:520px){.pub-list{grid-template-columns:1fr}}
.trends{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.trend{display:flex;flex-direction:column;justify-content:space-between;min-height:118px;padding:16px 18px;border-radius:14px;color:var(--ink);text-decoration:none;transition:transform .2s}
.trend:hover{transform:translateY(-2px)}
.trend b{font-size:1.1rem;letter-spacing:-.01em}
.trend span{margin-top:10px;font-family:var(--serif);font-size:.98rem;line-height:1.35;color:var(--slate)}
.hub-link{display:inline-flex;align-items:center;gap:6px;margin-top:18px;font-weight:650}
@media (max-width:420px){.trends{grid-template-columns:1fr}}
.chips{list-style:none;padding:0;display:flex;flex-wrap:wrap;gap:8px}
.chips li{padding:7px 13px;border-radius:999px;background:var(--mist);font-size:.9rem;font-weight:550}
.next{display:flex;justify-content:space-between;align-items:center;gap:16px;margin-top:clamp(56px,7vw,88px);padding:26px 28px;border-radius:18px;background:var(--mist);color:var(--ink);text-decoration:none}
.next:hover{background:var(--mist-2)}
.next small{display:block;color:var(--slate);font-size:.88rem}
.next b{font-size:clamp(1.2rem,1rem + .6vw,1.5rem);letter-spacing:-.015em}

/* Blog */
.visually-hidden{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}
.blog-view{padding:clamp(2rem,4vw,3.5rem) 0 7rem;background:#fff}
.blog-head{display:flex;align-items:flex-end;justify-content:space-between;gap:2rem;margin-bottom:1.6rem}
.blog-head h1{margin:0;font-size:clamp(3rem,7vw,5.9rem);letter-spacing:-.07em;line-height:.92}
.blog-head p{max-width:39rem;margin:0;color:var(--slate);font-size:1.02rem;line-height:1.65}
.blog-filters{display:flex;gap:.28rem;width:max-content;max-width:100%;overflow-x:auto;padding:.28rem;border:1px solid var(--ink);border-radius:999px;background:var(--ink);scrollbar-width:none}
.blog-filters::-webkit-scrollbar{display:none}
.blog-filter{flex:0 0 auto;border:0;border-radius:999px;padding:.58rem 1rem;background:transparent;color:#fff;font:700 .72rem/1 var(--font);letter-spacing:.02em;cursor:pointer;transition:background .18s,color .18s}
.blog-filter:hover,.blog-filter[aria-pressed="true"]{background:var(--hl);color:var(--ink)}
.blog-feature{display:grid;grid-template-columns:minmax(0,.78fr) minmax(0,1.22fr);min-height:25rem;margin-top:2rem;overflow:hidden;border:1px solid var(--ink);border-radius:2rem;background:var(--hl-soft)}
.blog-feature[hidden]{display:none}
.blog-feature-copy{display:flex;flex-direction:column;justify-content:center;padding:clamp(2rem,4vw,3.6rem);background:var(--ink);color:#fff}
.blog-kicker{margin:0 0 1.15rem;color:var(--hl);font-size:.75rem;font-weight:800;letter-spacing:.12em;text-transform:uppercase}
.blog-feature h2{max-width:12ch;margin:0;font-size:clamp(2rem,4vw,3.4rem);line-height:1.02;letter-spacing:-.045em;color:#fff}
.blog-feature-copy>p:not(.blog-kicker){max-width:34rem;margin:1.2rem 0 1.7rem;color:#d8dde7;line-height:1.65}
.blog-read{display:inline-flex;align-items:center;gap:.72rem;width:max-content;color:#fff;font-size:.82rem;font-weight:800}
.blog-read .arrow{display:grid;width:2.5rem;height:2.5rem;place-items:center;border-radius:50%;background:var(--hl);color:var(--ink);font-size:1.05rem;transition:transform .2s}
.blog-read:hover .arrow{transform:translateX(4px)}
.blog-feature-art{position:relative;display:grid;min-height:21rem;place-items:center;overflow:hidden;background:var(--hl-soft)}
.blog-feature-art:before,.blog-feature-art:after{content:"";position:absolute;border:2px solid var(--ink);border-radius:50%}
.blog-feature-art:before{width:18rem;height:18rem;right:-4rem;top:-8rem;background:var(--hl)}
.blog-feature-art:after{width:8rem;height:8rem;left:9%;bottom:-4.7rem;background:#fff}
.blog-feature-art svg{position:relative;z-index:1;width:min(78%,31rem);height:auto}
.blog-feature-art.has-image{background:#fff}
.blog-feature-art.has-image:before,.blog-feature-art.has-image:after{display:none}
.blog-feature-art.has-image img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center}
.blog-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:2.25rem 1rem;margin-top:1.55rem}
.blog-card{min-width:0}
.blog-card[hidden]{display:none}
.blog-card a{display:block;color:inherit}
.blog-thumb{position:relative;display:grid;aspect-ratio:1.45/1;place-items:center;overflow:hidden;border:1px solid var(--ink);border-radius:1.15rem;background:var(--hl)}
.blog-thumb.dark{background:var(--ink);color:#fff}
.blog-thumb.paper{background:var(--hl-soft)}
.blog-thumb.white{background:#fff}
.blog-thumb:before{content:"";position:absolute;width:9rem;height:9rem;border:2px solid currentColor;border-radius:50%;right:-3.8rem;top:-4rem;opacity:.9}
.blog-thumb:after{content:"";position:absolute;width:3.7rem;height:3.7rem;border:2px solid currentColor;left:1rem;bottom:-2.1rem;transform:rotate(20deg);background:#fff}
.blog-thumb.dark:after{background:var(--hl);color:var(--ink)}
.blog-thumb svg{position:relative;z-index:1;width:54%;height:54%;stroke:currentColor}
.blog-thumb.has-image{background:#fff}
.blog-thumb.has-image:before,.blog-thumb.has-image:after{display:none}
.blog-thumb.has-image img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center}
.blog-card .blog-thumb{margin-bottom:.72rem}
.blog-meta{display:flex;align-items:center;justify-content:space-between;gap:.8rem;margin:0 .08rem .52rem;color:var(--faint);font-size:.68rem;font-weight:700}
.blog-tag{display:inline-flex;padding:.28rem .55rem;border:1px solid #adcaff;border-radius:999px;background:var(--hl-soft);color:var(--ink)}
.blog-card h3{margin:0 .08rem;font-size:clamp(1.08rem,1.8vw,1.35rem);line-height:1.12;letter-spacing:-.025em}
.blog-card a:hover h3{text-decoration:underline;text-decoration-thickness:2px;text-underline-offset:4px}

/* Article template */
.article-page{padding-bottom:7rem;background:#fff}
.article-top{padding:clamp(2rem,5vw,4.5rem) 0 clamp(3.8rem,8vw,7.5rem);background:var(--ink);color:#fff}
.article-top .back{margin-bottom:clamp(2.5rem,6vw,5.5rem);color:#fff}
.article-top .back:hover{color:var(--hl)}
.article-shell{max-width:920px}
.article-category{display:inline-flex;margin:0 0 1.2rem;padding:.42rem .72rem;border-radius:999px;background:var(--hl);color:var(--ink);font-size:.76rem;font-weight:800;letter-spacing:.1em;text-transform:uppercase}
.article-page h1{max-width:13ch;margin:0;color:#fff;font-size:clamp(2.8rem,7vw,6.2rem);line-height:.96;letter-spacing:-.06em}
.article-dek{max-width:43rem;margin:1.5rem 0 0;color:#d8dde7;font-size:clamp(1.08rem,2vw,1.3rem);line-height:1.6}
.article-byline{display:flex;flex-wrap:wrap;gap:.55rem 1.4rem;margin-top:2rem;color:#aeb7c7;font-size:.82rem;font-weight:700}
.article-body{max-width:760px;margin:0 auto;padding:clamp(3rem,7vw,6.5rem) var(--gutter) 0}
.article-template-note{margin-bottom:2.2rem;padding:1rem 1.2rem;border:1px solid #8fb5f4;border-radius:.9rem;background:var(--hl-soft);font-weight:700;line-height:1.5}
.article-body p{margin-top:1.15rem;font-family:var(--serif);font-size:clamp(1.08rem,1.5vw,1.2rem);line-height:1.78;color:#303b4d}
.article-body .article-lead{margin-top:0;font-family:var(--font);font-size:clamp(1.25rem,2.3vw,1.65rem);font-weight:650;line-height:1.48;color:var(--ink)}
.article-body h2{margin-top:clamp(2.6rem,5vw,4rem);font-size:clamp(1.8rem,3.4vw,2.7rem);line-height:1.08;letter-spacing:-.04em}
.article-body blockquote{margin:clamp(2.5rem,5vw,4rem) 0;padding:1.7rem 0 1.7rem 1.5rem;border-left:5px solid var(--hl);font-size:clamp(1.35rem,3vw,2rem);font-weight:720;line-height:1.3;letter-spacing:-.025em;color:var(--ink)}
.article-end{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-top:4rem;padding-top:1.4rem;border-top:1px solid var(--rule);color:var(--slate);font-size:.9rem}
#site-nav a[aria-current="page"]:not(.btn){color:var(--ink);text-decoration:underline;text-decoration-thickness:2px;text-underline-offset:6px}
#site-nav #blog-nav-link[aria-current="page"]{color:#fff;text-decoration:none}

@media (max-width:940px){.hero-grid{grid-template-columns:1fr}.blog-feature{grid-template-columns:1fr}.blog-feature-art{min-height:19rem}.blog-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:760px){.blog-view{padding-top:1.5rem}.blog-head{align-items:flex-start;flex-direction:column}.blog-head h1{font-size:3.7rem}.blog-feature{border-radius:1.4rem}.blog-feature-copy{padding:2rem 1.4rem}.blog-feature-art{min-height:15rem}.blog-grid{grid-template-columns:1fr}.blog-filters{width:100%;border-radius:1rem}.blog-card h3{font-size:1.3rem}.article-page h1{font-size:clamp(2.65rem,13vw,4.4rem)}.article-end{align-items:flex-start;flex-direction:column}}

.article-body ul,.article-body ol{margin:1rem 0 0 1.35rem;color:#303b4d;font-family:var(--serif);font-size:clamp(1.05rem,1.5vw,1.18rem);line-height:1.72}
.article-body li+li{margin-top:.45rem}
.article-body table{width:100%;margin:2rem 0;border-collapse:separate;border-spacing:0;overflow:hidden;border:1px solid var(--ink);border-radius:1rem;font-size:.93rem;line-height:1.45}
.article-body th,.article-body td{padding:.85rem .9rem;text-align:left;vertical-align:top;border-bottom:1px solid var(--rule)}
.article-body th{background:var(--ink);color:#fff;font-family:var(--font);font-weight:800}
.article-body tr:last-child td{border-bottom:0}
.article-body td{font-family:var(--font);color:#303b4d}
.article-image{margin:2rem 0 .55rem!important}
.article-image img{display:block;width:100%;height:auto;border:1px solid var(--ink);border-radius:1rem;background:#fff}
.article-caption{margin:.45rem 0 2rem!important;font-family:var(--font)!important;font-size:.85rem!important;line-height:1.5!important;color:var(--faint)!important}

/* reMarkable product feature showcase */
.product-showcase{margin:clamp(2.8rem,6vw,4.8rem) 0;padding:clamp(1.2rem,3vw,2rem);border:1px solid var(--ink);border-radius:1.35rem;background:#f4f8ff;overflow:hidden}
.product-showcase-media{overflow:hidden;border:1px solid var(--ink);border-radius:1rem;background:#fff}
.product-showcase-media img{display:block;width:100%;aspect-ratio:16/9;object-fit:cover;object-position:center}
.product-showcase-kicker{margin:1.35rem 0 .45rem!important;font-family:var(--font)!important;font-size:.75rem!important;font-weight:850!important;letter-spacing:.12em;text-transform:uppercase;color:var(--faint)!important}
.product-showcase h3{margin:0;font-size:clamp(1.55rem,3vw,2.25rem);line-height:1.08;letter-spacing:-.035em;color:var(--ink)}
.product-showcase-intro{margin:.75rem 0 0!important;font-family:var(--font)!important;font-size:1rem!important;line-height:1.6!important;color:var(--slate)!important}
.product-feature-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.75rem;margin-top:1.25rem}
.product-feature{padding:1rem;border:1px solid #cfd4dc;border-radius:.9rem;background:#fff}
.product-feature strong{display:block;margin-bottom:.28rem;font-family:var(--font);font-size:.97rem;line-height:1.25;color:var(--ink)}
.product-feature span{display:block;font-family:var(--font);font-size:.86rem;line-height:1.5;color:var(--slate)}
.product-showcase-cta{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-top:1.25rem;padding-top:1.15rem;border-top:1px solid #cfd4dc}
.product-showcase-cta p{margin:0!important;font-family:var(--font)!important;font-size:.9rem!important;line-height:1.5!important;color:var(--slate)!important}
.product-showcase-cta .btn{flex:0 0 auto}
@media (max-width:620px){.product-feature-grid{grid-template-columns:1fr}.product-showcase-cta{align-items:flex-start;flex-direction:column}.product-showcase-cta .btn{width:100%;justify-content:center}.product-showcase-media img{aspect-ratio:4/3}}

.article-body strong{color:var(--ink)}
@media (max-width:620px){.article-body table{display:block;overflow-x:auto;white-space:normal}.article-body th,.article-body td{min-width:9rem;padding:.7rem}}

/* Selected work: accessible, linked case-study cards */
.work-head{max-width:800px}
.work-head .work-eyebrow{margin:0 0 12px;color:var(--hl-ink);font-size:.76rem;font-weight:800;letter-spacing:.12em;text-transform:uppercase}
.work-head h2{max-width:24ch}
.case-card .card-body{padding:clamp(23px,3vw,30px);min-height:365px}
.case-card .client{margin:0;color:var(--ink)}
.case-card .case-index{margin-top:24px;color:var(--hl-ink);font-size:.76rem;font-weight:800;letter-spacing:.075em;text-transform:uppercase;line-height:1.5}
.case-card h3{margin-top:9px}
.case-card .case-summary{margin-top:12px;font-size:.96rem;line-height:1.55}
.case-evidence{display:grid;align-content:center;gap:5px;margin-top:24px;padding:16px 17px;border:1px solid #ccdeff;border-radius:12px;background:var(--hl-soft)}
.case-evidence strong{color:var(--hl-ink);font-size:1.12rem;line-height:1.25;letter-spacing:-.01em}
.case-evidence span{color:var(--slate);font-size:.85rem;line-height:1.45}
.case-card .card-link{padding-top:20px;gap:5px}
.case-card .up-arrow{font-size:1.2em;line-height:1;display:inline-block;transition:transform .2s}
.case-card:hover .up-arrow{transform:translate(2px,-2px)}
@media (max-width:520px){.case-card .card-body{min-height:0}.case-card .case-index{margin-top:20px}}

/* Harvest: BOFU portfolio article */
.article-page:has(#harvest-criteria) .article-body{max-width:860px}
.article-page:has(#harvest-criteria) .article-page h1{max-width:19ch}
.article-page:has(#harvest-criteria) h2[id]{scroll-margin-top:2rem}
.harvest-disclosure{margin:0 0 2rem;padding:1rem 1.15rem;border:1px solid #a8c5f0;background:#eef5ff;border-radius:1rem;color:#263852;font:500 .9rem/1.6 var(--font)}
.harvest-disclosure strong{color:var(--ink)}
.article-page:has(#tally-test-scope) .article-body{max-width:860px}
.tally-finding{margin:1.5rem 0 2.2rem!important;padding:1.2rem 1.3rem;border-left:5px solid var(--hl);border-radius:0 .8rem .8rem 0;background:#f7f9fd;font-family:var(--font)!important;font-size:1rem!important;line-height:1.65!important}
.harvest-toc{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.5rem 1rem;margin:2rem 0;padding:1.5rem;border:1px solid #bfd2f3;border-radius:1.2rem;background:#f5f8fe}
.harvest-toc strong{grid-column:1/-1;margin-bottom:.3rem;font-size:.85rem;text-transform:uppercase;letter-spacing:.1em}
.harvest-toc a{font:650 .92rem/1.4 var(--font);color:#24518a;text-decoration:underline;text-underline-offset:3px}
.article-body h3{margin-top:2rem;font:780 clamp(1.22rem,2.6vw,1.65rem)/1.23 var(--font);letter-spacing:-.025em;color:var(--ink)}
.article-body a{color:#17589d;text-decoration-thickness:1px;text-underline-offset:3px}
.article-body a:hover{color:#0d315f}
.article-body .harvest-figure{margin:2.1rem auto 2.25rem!important;max-width:100%}
.harvest-figure .image-original{display:block;padding:clamp(.65rem,1.7vw,1.2rem);border:1px solid #ccd8e8;border-radius:1.25rem;background:#f2f5fa;box-shadow:0 12px 40px rgba(23,42,77,.06)}
.harvest-figure .image-original img{display:block;max-width:100%;width:100%;height:auto;min-height:80px;max-height:510px;object-fit:contain;border:0;border-radius:.45rem;background:#fff}
.harvest-figure .article-caption{margin:.55rem .25rem 0!important;font-size:.8rem!important}
.harvest-figure .image-credit{display:block;margin-top:.2rem;color:#55647c}
.harvest-inline-cta{display:inline-flex;align-items:center;gap:.6rem;padding:.8rem 1.2rem;margin-top:1.1rem;border-radius:.7rem;background:#17324e;color:#fff!important;text-decoration:none!important;font-weight:750}
.harvest-inline-cta:hover{background:#315b81}
.harvest-final-cta{margin:3.2rem 0 1.7rem;padding:clamp(1.5rem,4vw,2.6rem);background:var(--ink);color:#fff;border-radius:1.4rem}
.harvest-cta-kicker{font-size:.77rem;text-transform:uppercase;letter-spacing:.12em;font-weight:800;color:#9ac3ff}
.article-body .harvest-final-cta h3{color:#fff;margin:.8rem 0;font-size:clamp(1.5rem,3vw,2.2rem)}
.article-body .harvest-final-cta p{color:#dce7f3;font-family:var(--font);font-size:1.02rem;line-height:1.6}
.harvest-final-cta>a{display:inline-block;margin-top:1.25rem;padding:.85rem 1.2rem;background:var(--hl);border-radius:.6rem;color:var(--ink)!important;font-weight:800;text-decoration:none!important}
.harvest-related{margin:2.8rem 0 2rem;padding:1.4rem;border:1px solid #ccd8e8;border-radius:1rem;background:#f6f9fd}
.article-body .harvest-related h3{margin:0;font-size:1.2rem}
.article-body .harvest-related p,.article-body .harvest-sources p{font-family:var(--font);font-size:.93rem;line-height:1.65}
.harvest-sources{margin:2rem 0;padding:1rem 0;border-top:1px solid #d5dfeb}
.article-body .harvest-sources h3{margin:.5rem 0;font-size:1rem}
.harvest-preview .article-preview-art img{object-fit:contain!important;padding:.8rem;background:#f4f7fc}
@media(max-width:600px){.harvest-toc{grid-template-columns:1fr}.article-body .harvest-figure{margin:1.6rem auto!important}.harvest-figure .image-original{padding:.4rem}.article-page:has(#harvest-criteria) .article-body table{display:block;overflow-x:auto}}

/* Homepage: compact previews of the three newest posts. Full archive remains in Blog. */
.articles-home .article-preview-grid{max-width:980px;margin-inline:auto;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.85rem}
.articles-home .article-preview{min-width:0;border-radius:.85rem}
.articles-home .article-preview-art{aspect-ratio:16/9;min-height:0;padding:0}
.articles-home .article-preview-art.has-image img{position:absolute;inset:0;width:100%;height:100%;min-height:0;object-fit:cover;object-position:center}
.articles-home .article-preview-copy{padding:.72rem .82rem .95rem}
.articles-home .article-preview-meta{margin-bottom:.4rem;font-size:.65rem}
.articles-home .article-preview h3{font-size:clamp(.92rem,1.25vw,1.06rem);line-height:1.26;letter-spacing:-.015em}
@media (max-width:640px){.articles-home .article-preview-grid{grid-template-columns:1fr;max-width:380px}}

/* Editorial typography: slightly smaller headings on cards and article pages. */
.articles-home .article-preview h3{font-size:clamp(.88rem,1.1vw,1rem);line-height:1.28}
.blog-card h3{font-size:clamp(1rem,1.35vw,1.18rem);line-height:1.19}
.blog-feature h2{font-size:clamp(1.85rem,3.3vw,2.95rem);line-height:1.07}
.article-page h1{max-width:19ch;font-size:clamp(2.55rem,5.35vw,5.05rem);line-height:1.02;letter-spacing:-.048em}

@media(max-width:760px){.blog-card h3{font-size:1.12rem}.article-page h1{font-size:clamp(2.2rem,8.5vw,3.55rem)}}
/* Other article templates: traditional prose and unframed product screenshots. */
.article-page:has(#tally-test-scope) .article-body,
.article-page:has(#remarkable-writing) .article-body,
.article-page:has(#harvest-choose) .article-body{max-width:800px}
.article-page:has(#tally-test-scope) .article-body h2,
.article-page:has(#remarkable-writing) .article-body h2,
.article-page:has(#harvest-choose) .article-body h2{margin-top:3.1rem}
.article-page:has(#tally-test-scope) .article-body h3,
.article-page:has(#remarkable-writing) .article-body h3,
.article-page:has(#harvest-choose) .article-body h3{margin-top:2.1rem}
.article-body .editorial-screenshot{margin:2rem 0 2.3rem!important;max-width:100%}
.article-body .editorial-screenshot .image-original{display:block!important;padding:0!important;border:0!important;border-radius:0!important;background:none!important;box-shadow:none!important}
.article-body .editorial-screenshot img,
.article-body .editorial-screenshot .image-original img{display:block!important;width:100%!important;height:auto!important;min-height:0!important;max-height:none!important;object-fit:contain!important;border:1px solid #dde1e7!important;border-radius:2px!important;background:#fff!important}
.article-body .editorial-screenshot .article-caption{margin:.55rem 0 0!important;color:#617085!important;font-size:.82rem!important;line-height:1.5!important}
.article-body .editorial-screenshot .image-credit{display:inline!important;margin:0!important}
.article-body .editorial-source-note{margin:2rem 0!important;font-size:.9rem!important;color:#617085!important;font-family:var(--font)!important}
.article-body .editorial-screenshot.screenshot-unavailable{margin:1rem 0 1.5rem!important}
.article-body .editorial-screenshot .screenshot-note{margin:0!important;font-size:.88rem!important;line-height:1.6!important;color:#64748b!important}
.article-body .editorial-text-link{display:inline!important;margin:0!important;padding:0!important;background:none!important;border:0!important;border-radius:0!important;box-shadow:none!important;color:#17589d!important;text-decoration:underline!important;font:inherit!important}
.editorial-type-cover{display:flex!important;align-items:center;justify-content:center;min-height:155px;padding:1rem;background:#f0f3fa!important}
.editorial-cover-copy{font:750 clamp(.8rem,1.7vw,1.2rem)/1.3 var(--font);letter-spacing:.055em;color:#273e60;text-align:center}
@media(max-width:600px){.article-body .editorial-screenshot{margin:1.5rem 0!important}.editorial-type-cover{min-height:125px}}


/* Matched reMarkable editorial banners (home preview and blog feature). */
.remarkable-preview-banner,.remarkable-feature-banner{display:flex!important;align-items:center;justify-content:center;position:relative;overflow:hidden;background:#f0f3fa!important;color:#273e60!important}
.remarkable-preview-banner::before,.remarkable-feature-banner::before,.remarkable-feature-banner::after{display:none!important}
.remarkable-preview-banner .editorial-cover-copy,.remarkable-feature-banner .editorial-cover-copy{position:relative;z-index:1;font:750 clamp(.82rem,1.7vw,1.24rem)/1.3 var(--font);letter-spacing:.055em;text-align:center}
.remarkable-preview-banner{aspect-ratio:16/9;min-height:0}
.remarkable-feature-banner{min-height:250px}


/* All three home and blog article banners share one consistent visual treatment. */
.articles-home .article-preview-art.editorial-type-cover,.blog-thumb.editorial-type-cover,.blog-feature-art.editorial-type-cover{background:#f0f3fa!important;color:#273e60!important;align-items:center;justify-content:center}
.articles-home .article-preview-art.editorial-type-cover .editorial-cover-copy,.blog-thumb.editorial-type-cover .editorial-cover-copy,.blog-feature-art.editorial-type-cover .editorial-cover-copy{position:relative;z-index:1;font:750 clamp(.82rem,1.7vw,1.24rem)/1.3 var(--font);letter-spacing:.055em;text-align:center}
/* Restore the original little geometric accents on every banner, including the featured reMarkable card. */
.articles-home .article-preview-art.editorial-type-cover::before{display:block!important;opacity:.34;border-color:#668ab9}
.blog-thumb.editorial-type-cover::before{display:block!important;opacity:.35;border-color:#668ab9}
.blog-thumb.editorial-type-cover::after{display:block!important;opacity:.7;border-color:#668ab9;background:#fff}
.blog-feature-art.editorial-type-cover::before{display:block!important;opacity:.74;border-color:#a4bce0;background:#dce7f8}
.blog-feature-art.editorial-type-cover::after{display:block!important;opacity:.95;border-color:#a4bce0;background:#fff}


/* SEO tools article: match the portfolio’s existing visual language. */
.articles-home .article-preview-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
.seo-comparison-scroll{max-width:100%;overflow-x:auto;margin:2rem 0;border-radius:1rem}
.article-body .seo-comparison-scroll table{min-width:630px;margin:0}
.article-body h3{margin:2rem 0 .5rem;font-size:clamp(1.25rem,2.2vw,1.55rem);letter-spacing:-.025em;line-height:1.22}
.article-body .seo-fit-test{padding:1.1rem 1.25rem;border-radius:12px;background:var(--hl-soft);border-left:4px solid var(--hl);font-family:var(--font);font-size:1rem;line-height:1.65}
@media (max-width:900px){.articles-home .article-preview-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:640px){.articles-home .article-preview-grid{grid-template-columns:1fr}}


.seo-tool-shot{margin:1.6rem 0 1.4rem}
.seo-tool-shot .case-shot-btn{border:1px solid var(--rule);border-radius:18px;background:#fff;box-shadow:0 14px 34px rgba(26,40,66,.08)}
.seo-tool-shot img{display:block;width:100%;height:auto;border-radius:18px}
.seo-tool-shot .caption,.seo-tool-shot .article-caption{margin-top:.8rem;font-size:.88rem;line-height:1.55;color:var(--slate)}
.seo-tool-shot .zoom-hint{position:absolute;right:14px;bottom:14px;display:inline-flex;align-items:center;gap:.35rem;padding:.42rem .68rem;border-radius:999px;background:rgba(14,22,35,.78);color:#fff;font-size:.74rem;font-weight:700;letter-spacing:.02em}
@media (max-width:760px){.seo-tool-shot{margin:1.25rem 0 1.1rem}.seo-tool-shot .zoom-hint{right:10px;bottom:10px;font-size:.7rem}}


/* Real screenshots sourced from publisher sites. These images load over the web, rather than embedding illustrations. */
.seo-tool-shot--real .seo-shot-link{position:relative;display:block;max-width:100%;border:1px solid var(--rule);border-radius:14px;overflow:hidden;background:var(--mist);box-shadow:0 14px 34px rgba(26,40,66,.08);cursor:zoom-in}
.seo-tool-shot--real .seo-shot-link img{display:block;width:100%;height:auto;border-radius:0;object-fit:contain}
.seo-tool-shot--real .seo-shot-link:hover img{transform:none}
.seo-tool-shot--real .caption a{text-decoration:underline;text-underline-offset:.15em}
.seo-tool-shot--real .zoom-hint{font:700 .72rem/1.3 var(--font)}


/* Match the black divider beneath the third homepage article cover. */
.articles-home .article-preview:nth-child(-n+2) .article-preview-art{border-bottom:1px solid var(--ink)}
.articles-home .article-preview-grid{grid-template-columns:repeat(2,minmax(0,1fr));max-width:660px;margin-inline:0}
@media (max-width:640px){.articles-home .article-preview-grid{grid-template-columns:1fr;max-width:380px}}

/* Tally vs Typeform screenshots: shown at their captured size on a soft stage */
.tally-test-shot .shot-stage{display:flex;justify-content:center;align-items:center;padding:clamp(14px,3.2vw,30px);background:#eef1f6;border-radius:14px}
.article-image.tally-test-shot .shot-stage img{display:block;width:100%!important;height:auto!important;margin:0 auto;border:1px solid #dfe4ec!important;border-radius:8px!important;background:#fff;box-shadow:0 1px 2px rgba(20,32,56,.05),0 10px 28px rgba(20,32,56,.09)}
.article-image.tally-test-shot .article-caption{margin-top:.7rem!important}

/* =================================================================
   WordPress additions. Everything above this line is the original
   portfolio stylesheet, unchanged.
   ================================================================= */

/* Note: the original stylesheet references var(--font) without defining it.
   That is kept on purpose, so text renders exactly as before. */

/* Admin bar: keep the sticky header below it. */
.admin-bar .site-head{top:32px}
@media (max-width:782px){.admin-bar .site-head{top:46px}}
@media (max-width:600px){.admin-bar .site-head{top:0}}

/* ---------- Block editor content inside articles ---------- */
.article-body > *:first-child{margin-top:0}
.article-body .is-style-lead,
.article-body p.is-style-lead{margin-top:0;font-family:var(--font);font-size:clamp(1.25rem,2.3vw,1.65rem);font-weight:650;line-height:1.48;color:var(--ink)}
.article-body .wp-block-heading{scroll-margin-top:84px}
.article-body code{font-size:.9em;padding:.1em .35em;border-radius:5px;background:var(--mist)}

/* Tables: undo core block styles so the original table look stays. */
.article-body figure.wp-block-table{margin:2rem 0;overflow-x:auto}
.article-body .wp-block-table table{width:100%;margin:0;border-collapse:separate;border-spacing:0;overflow:hidden;border:1px solid var(--ink);border-radius:1rem;font-size:.93rem;line-height:1.45}
.article-body .wp-block-table thead{border:0}
.article-body .wp-block-table th,.article-body .wp-block-table td{padding:.85rem .9rem;text-align:left;vertical-align:top;border:0;border-bottom:1px solid var(--rule)}
.article-body .wp-block-table tr:last-child td{border-bottom:0}
.article-body .wp-block-table figcaption{margin-top:.55rem;font-size:.82rem;color:var(--faint)}
@media (max-width:620px){.article-body .wp-block-table th,.article-body .wp-block-table td{min-width:9rem;padding:.7rem}}

/* Quotes */
.article-body .wp-block-quote{margin:clamp(2.5rem,5vw,4rem) 0;padding:1.7rem 0 1.7rem 1.5rem;border-left:5px solid var(--hl)}
.article-body .wp-block-quote p{margin:0;font-family:var(--sans);font-size:clamp(1.35rem,3vw,2rem);font-weight:720;line-height:1.3;letter-spacing:-.025em;color:var(--ink)}
.article-body .wp-block-quote cite{display:block;margin-top:.8rem;font-size:.9rem;font-style:normal;color:var(--slate)}

/* Images */
.article-body .wp-block-image{margin:2rem 0 2.3rem}
.article-body .wp-block-image img{display:block;max-width:100%;height:auto}
.article-body .wp-block-image figcaption,
.article-body .wp-element-caption{margin:.55rem 0 0;font-family:var(--font);font-size:.82rem;line-height:1.5;color:#617085}
.article-body .wp-block-image:not(.is-style-screenshot) img{border:1px solid var(--ink);border-radius:1rem;background:#fff}

/* "Screenshot" image style: the soft grey stage from the Tally article. */
.article-body .wp-block-image.is-style-screenshot > a,
.article-body .wp-block-image.is-style-screenshot > img{display:flex;justify-content:center;align-items:center;padding:clamp(14px,3.2vw,30px);background:#eef1f6;border-radius:14px;cursor:zoom-in}
.article-body .wp-block-image.is-style-screenshot > img{box-sizing:border-box;width:100%;cursor:default}
.article-body .wp-block-image.is-style-screenshot img{width:auto;max-width:100%;height:auto;margin:0 auto;border:1px solid #dfe4ec;border-radius:8px;background:#fff;box-shadow:0 1px 2px rgba(20,32,56,.05),0 10px 28px rgba(20,32,56,.09)}
.article-body .wp-block-image.is-style-screenshot > img{border:0;box-shadow:none;border-radius:14px}
.article-body .wp-block-image.is-style-screenshot figcaption{margin-top:.7rem}
@media (max-width:600px){.article-body .wp-block-image.is-style-screenshot{margin:1.5rem 0}}

/* "Note" group style: the highlighted finding box. */
.article-body .wp-block-group.is-style-note{margin:1.5rem 0 2.2rem;padding:1.2rem 1.3rem;border-left:5px solid var(--hl);border-radius:0 .8rem .8rem 0;background:#f7f9fd;font-size:1rem;line-height:1.65}

/* Buttons block, in case new articles use it */
.article-body .wp-block-buttons{margin-top:1.1rem}
.article-body .wp-block-button__link{display:inline-flex;align-items:center;gap:.6rem;padding:.8rem 1.2rem;border-radius:.7rem;background:#17324e;color:#fff;text-decoration:none;font-weight:750;font-family:var(--font)}
.article-body .wp-block-button__link:hover{background:#315b81;color:#fff}

/* Byline date */
.article-byline time{color:inherit}

/* ---------- Blog listing extras ---------- */
.blog-pagination{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:3rem}
.blog-pagination .page-numbers{display:inline-flex;min-width:42px;min-height:42px;align-items:center;justify-content:center;padding:0 .9rem;border:1.5px solid var(--ink);border-radius:999px;color:var(--ink);font-weight:700;text-decoration:none}
.blog-pagination .page-numbers.current,.blog-pagination a.page-numbers:hover{background:var(--ink);color:#fff}
.blog-empty{margin-top:2rem;color:var(--slate)}
.archive-title{margin:0 0 1.4rem;font-size:clamp(2.2rem,5vw,3.6rem);letter-spacing:-.05em;line-height:1}

/* ---------- Generic pages (privacy policy etc.) ---------- */
.page-view .article-body{padding-top:clamp(1.5rem,3vw,2.5rem)}
.page-view .c-hero h1{max-width:22ch}
.not-found{padding:clamp(64px,10vw,140px) 0}
.not-found h1{font-size:clamp(2.4rem,5vw,4rem);letter-spacing:-.04em}
.not-found p{margin-top:14px;color:var(--slate);font-family:var(--serif);font-size:1.2rem}
