/* ============================================================
   Saveroot v2 — shared styles · "SMART NOTEBOOK"
   Hand-drawn notebook aesthetic: graph-paper + sketchy doodles
   + yellow highlighter. Light theme (the app is the dark one).
   Palette: paper off-white · ink · highlighter yellow · root-green
            + friendly blue panel + pastel colored-pencil accents
   Type: Poppins (headings) + Nunito (body) — geometric, friendly
   ============================================================ */

:root{
  /* paper + ink */
  --paper:#fbfbf9;         /* notebook paper */
  --paper-2:#f4f4ef;       /* alt band paper */
  --ink:#2b2a28;           /* hand-drawn line / text */
  --ink-soft:#6b675f;      /* muted body */
  --card:#ffffff;

  /* highlighter */
  --hl:#ffe14d;            /* yellow highlighter swipe */
  --hl-2:#fff35c;

  /* brand + panel accents */
  --green:#37a05a;         /* root green — primary CTAs */
  --green-deep:#2f8a4d;
  --green-soft:#bfe6c6;
  --blue:#2f6bff;          /* friendly blue panel */
  --blue-deep:#1a5be0;

  /* colored-pencil pastels (doodle fills) */
  --pc-purple:#b9a7e6;
  --pc-blue:#8fb8ff;
  --pc-green:#9ed7a8;
  --pc-yellow:#ffe08a;
  --pc-orange:#ffb877;
  --pc-pink:#f6a9c6;

  /* legacy aliases so any untouched SVG token still resolves */
  --violet:#7c6ce0;
  --violet-deep:#5344a8;
  --violet-soft:#cdbdf2;
  --sun:var(--hl);
  --pink:var(--pc-pink);
  --muted:var(--ink-soft);

  --radius:18px;
  --sketch:3px 3px 0 rgba(43,42,40,.14);   /* offset "cutout" shadow */
  --sketch-sm:2px 2px 0 rgba(43,42,40,.12);
  --display:"Poppins","Segoe UI",system-ui,-apple-system,sans-serif;
  --body:"Nunito","Segoe UI",system-ui,-apple-system,Roboto,Helvetica,Arial,sans-serif;
}

*{margin:0;padding:0;box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  font-family:var(--body);
  color:var(--ink);
  background-color:var(--paper);
  background-image:
    linear-gradient(rgba(30,28,24,.045) 1px,transparent 1px),
    linear-gradient(90deg,rgba(30,28,24,.045) 1px,transparent 1px);
  background-size:24px 24px;
  line-height:1.65;
  font-size:16.5px;
  -webkit-font-smoothing:antialiased;
}

.wrap{max-width:1080px;margin:0 auto;padding:0 22px;}
.wrap-narrow{max-width:760px;margin:0 auto;padding:0 22px;}

h1,h2,h3{font-family:var(--display);letter-spacing:-.015em;line-height:1.08;text-wrap:balance;font-weight:800;}
h1{font-size:clamp(34px,7vw,60px);}
h2{font-size:clamp(26px,4.2vw,38px);margin-bottom:14px;}
h3{font-size:20px;font-weight:700;margin-bottom:8px;line-height:1.22;}
p{max-width:68ch;}
a{color:var(--green-deep);}
b,strong{font-weight:700;}

/* ---------- highlighter emphasis ---------- */
mark,.hl{
  background:var(--hl);
  color:var(--ink);
  padding:.02em .32em .08em;
  margin:0 -.04em;
  border-radius:.4em .7em .35em .55em;   /* uneven, hand-swiped */
  transform:rotate(-1.4deg);
  display:inline-block;
  font-weight:700;
  -webkit-box-decoration-break:clone;box-decoration-break:clone;
}

.eyebrow{
  display:inline-block;font-family:var(--display);font-size:12px;font-weight:700;
  letter-spacing:.06em;text-transform:uppercase;color:var(--ink);margin-bottom:16px;
  background:var(--hl);padding:5px 15px;border-radius:999px;
  border:2px solid var(--ink);box-shadow:var(--sketch-sm);transform:rotate(-1.2deg);
}
.lead{font-size:clamp(17px,2.2vw,20px);color:var(--ink-soft);max-width:60ch;}

/* ---------- chips ---------- */
.chips-row{display:flex;flex-wrap:wrap;gap:10px;margin-top:20px;}
.chip-tag{
  display:inline-block;font-family:var(--display);font-size:13px;font-weight:700;
  padding:4px 15px;border-radius:999px;background:var(--pc-pink);color:var(--ink);
  border:2px solid var(--ink);box-shadow:var(--sketch-sm);
}
.chip-tag:nth-child(2){background:var(--pc-green);transform:rotate(1.2deg);}
.chip-tag:nth-child(3){background:var(--pc-blue);transform:rotate(-1.2deg);}

/* ---------- header ---------- */
.site-head{position:sticky;top:0;z-index:50;background:color-mix(in srgb,var(--paper) 88%,transparent);backdrop-filter:blur(8px);border-bottom:2px solid rgba(43,42,40,.12);}
.nav{display:flex;align-items:center;gap:20px;height:62px;}
.logo{font-family:var(--display);font-size:21px;font-weight:800;letter-spacing:-.02em;color:var(--ink);text-decoration:none;display:flex;align-items:center;gap:6px;}
.logo b{color:var(--green);font-weight:800;}
.nav nav{display:none;gap:22px;margin-left:auto;}
.nav nav a{color:var(--ink-soft);text-decoration:none;font-size:15px;font-weight:700;font-family:var(--display);}
.nav nav a:hover{color:var(--green-deep);}
.nav .btn{margin-left:auto;}
.nav nav + .btn{margin-left:0;}
@media (min-width:760px){ .nav nav{display:flex;} }

/* ---------- buttons (hand-drawn) ---------- */
.btn{
  display:inline-block;padding:13px 26px;border-radius:16px;text-decoration:none;
  font-family:var(--display);font-weight:700;font-size:16px;line-height:1.3;
  border:2px solid var(--ink);box-shadow:var(--sketch);cursor:pointer;
  transition:transform .1s ease,box-shadow .1s ease;
}
.btn:hover{transform:translate(1px,1px);box-shadow:var(--sketch-sm);}
.btn:active{transform:translate(3px,3px);box-shadow:0 0 0 rgba(0,0,0,0);}
.btn-primary{background:var(--green);color:#fff;}
.btn-primary:hover{background:var(--green-deep);}
.btn-secondary{background:var(--card);color:var(--ink);}
.btn-secondary:hover{background:var(--paper-2);}
.btn-outline-light{background:var(--card);color:var(--ink);}
.btn-outline-light:hover{background:var(--paper-2);}
.btn-light{background:var(--hl);color:var(--ink);}
.btn.small{padding:9px 18px;font-size:14.5px;border-radius:13px;}
.cta-row{display:flex;flex-wrap:wrap;gap:14px;margin-top:28px;}
.cta-note{font-size:13.5px;color:var(--ink-soft);margin-top:14px;}

/* ---------- hero (light, on notebook paper) ---------- */
.hero{padding:54px 0 46px;position:relative;overflow:hidden;}
.hero h1 em{
  font-style:normal;
  box-shadow:inset 0 -.32em 0 var(--green-soft);   /* hand-drawn under-swipe */
  border-radius:2px;
}
.hero .lead{color:var(--ink-soft);}

/* ---------- import strip (floats over hero) ---------- */
.import-strip{padding:0;position:relative;z-index:2;margin-top:6px;}
.import-card{
  background:var(--card);border:2.5px solid var(--ink);border-radius:var(--radius);
  box-shadow:var(--sketch);padding:28px 32px;
  display:flex;flex-wrap:wrap;align-items:center;gap:20px 36px;
}
.import-copy{flex:1 1 360px;}
.import-card h2{font-size:clamp(22px,3.2vw,30px);margin-bottom:8px;}
.import-card .import-copy > p{font-size:15.5px;color:var(--ink-soft);}
.import-icons{display:flex;flex-wrap:wrap;gap:10px 18px;margin-top:16px;}
.import-cta{flex:0 0 auto;text-align:center;}
.import-cta .cta-note{margin-top:10px;}
@media (max-width:600px){ .import-card{padding:24px 22px;} }

/* ---------- sections ---------- */
section{padding:60px 0;}
.band{
  background-color:var(--paper-2);
  background-image:
    linear-gradient(rgba(30,28,24,.05) 1px,transparent 1px),
    linear-gradient(90deg,rgba(30,28,24,.05) 1px,transparent 1px);
  background-size:24px 24px;
  border-top:2px solid rgba(43,42,40,.1);border-bottom:2px solid rgba(43,42,40,.1);
}

/* the one standout blue notebook panel (differentiator) */
.band-forest{
  background:var(--blue);color:#fff;border-radius:24px;margin:24px 12px;
  border:2.5px solid var(--ink);box-shadow:6px 6px 0 rgba(43,42,40,.16);
}
.band-forest h2,.band-forest h3{color:#fff;}
.band-forest p{color:rgba(255,255,255,.9);}
.band-forest .eyebrow{background:var(--hl);color:var(--ink);}
.band-forest .card{background:var(--card);border-color:var(--ink);box-shadow:var(--sketch);}
.band-forest .card p{color:var(--ink-soft);}
.band-forest .card h3{color:var(--ink);}
@media (max-width:600px){ .band-forest{margin:18px 8px;border-radius:20px;} }

/* ---------- cards & grids ---------- */
.grid{display:grid;gap:20px;margin-top:32px;}
.grid-3{grid-template-columns:1fr;}
.grid-2{grid-template-columns:1fr;}
@media (min-width:700px){
  .grid-3{grid-template-columns:repeat(3,1fr);}
  .grid-2{grid-template-columns:repeat(2,1fr);}
}
.card{
  background:var(--card);border:2.5px solid var(--ink);border-radius:var(--radius);
  padding:26px;box-shadow:var(--sketch);
}
.card h3{color:var(--ink);}
.card p{font-size:15px;color:var(--ink-soft);}

.step-num{
  display:inline-flex;align-items:center;justify-content:center;
  width:42px;height:42px;border-radius:50% 46% 52% 48%;background:var(--hl);color:var(--ink);
  font-weight:800;font-size:18px;margin-bottom:14px;font-family:var(--display);
  border:2.5px solid var(--ink);box-shadow:var(--sketch-sm);transform:rotate(-3deg);
}
.card .quote{
  background:var(--paper-2);border-radius:12px;padding:12px 16px;font-size:14.5px;
  color:var(--ink);font-style:italic;margin-top:12px;border:2px dashed var(--pc-purple);
}

/* ---------- platform row ---------- */
.platforms{display:flex;flex-wrap:wrap;gap:14px 22px;align-items:center;margin-top:26px;}
.platform{display:flex;align-items:center;gap:8px;font-size:14px;font-weight:700;color:var(--ink-soft);font-family:var(--display);}
.platform svg{border-radius:9px;flex:none;}

/* ---------- founder note ---------- */
.founder{
  background:var(--card);border:2.5px solid var(--ink);border-radius:var(--radius);
  padding:34px;box-shadow:var(--sketch);max-width:720px;margin:32px auto 0;
}
.founder p{font-size:16.5px;}
.founder .sig{margin-top:18px;font-weight:800;color:var(--green-deep);font-family:var(--display);}

/* ---------- pricing ---------- */
.price-card{position:relative;display:flex;flex-direction:column;}
.price-card .amount{font-family:var(--display);font-size:40px;font-weight:800;color:var(--ink);margin:6px 0 2px;}
.price-card .per{font-size:14px;color:var(--ink-soft);}
.price-card ul{list-style:none;margin:18px 0 22px;flex:1;}
.price-card li{padding-left:26px;position:relative;margin:9px 0;font-size:15px;color:var(--ink-soft);}
.price-card li::before{content:"✓";position:absolute;left:0;color:var(--green);font-weight:800;}
.badge{
  position:absolute;top:-15px;right:20px;background:var(--hl);color:var(--ink);
  font-family:var(--display);font-size:12px;font-weight:700;padding:4px 14px;border-radius:999px;
  letter-spacing:.03em;border:2.5px solid var(--ink);box-shadow:var(--sketch-sm);transform:rotate(2.5deg);
}
.fineprint{font-size:13px;color:var(--ink-soft);margin-top:16px;}

/* ---------- FAQ ---------- */
.faq{max-width:760px;margin:28px auto 0;}
.faq details{
  background:var(--card);border:2.5px solid var(--ink);border-radius:14px;
  padding:18px 22px;margin-bottom:12px;box-shadow:var(--sketch-sm);
}
.faq summary{font-family:var(--display);font-weight:700;cursor:pointer;font-size:16.5px;list-style:none;position:relative;padding-right:28px;}
.faq summary::-webkit-details-marker{display:none;}
.faq summary::after{content:"+";position:absolute;right:0;top:-2px;color:var(--green);font-weight:800;font-size:24px;transition:transform .15s;}
.faq details[open] summary::after{transform:rotate(45deg);}
.faq details p{margin-top:10px;color:var(--ink-soft);font-size:15px;}

/* ---------- forms ---------- */
.tool-form{
  background:var(--card);border:2.5px solid var(--ink);border-radius:var(--radius);
  padding:30px;box-shadow:var(--sketch);max-width:640px;margin:30px auto 0;
}
.tool-form label{display:block;font-family:var(--display);font-size:14px;font-weight:700;margin:16px 0 6px;}
.tool-form input{
  width:100%;padding:13px 18px;border:2px solid var(--ink);border-radius:12px;
  font-size:16px;font-family:var(--body);background:var(--paper);color:var(--ink);
}
.tool-form input:focus{outline:2px solid var(--green);border-color:var(--green);}
.tool-form button{width:100%;margin-top:22px;}
.form-note{font-size:13px;color:var(--ink-soft);margin-top:12px;text-align:center;}

/* ---------- prose (legal pages) ---------- */
.prose{padding:56px 0 80px;}
.prose h1{font-size:clamp(30px,5vw,44px);margin-bottom:8px;}
.prose .date{color:var(--ink-soft);font-size:14px;margin-bottom:30px;}
.prose h2{font-size:22px;margin:34px 0 10px;color:var(--green-deep);}
.prose ul,.prose ol{margin:10px 0 10px 24px;}
.prose li{margin:6px 0;}
.prose .box{background:var(--paper-2);border:2px dashed var(--pc-purple);border-radius:14px;padding:20px 24px;margin:20px 0;}

/* ---------- final CTA band ---------- */
.cta-final{text-align:center;padding:76px 0;}
.cta-final h2{font-size:clamp(28px,5vw,46px);}

/* ---------- footer ---------- */
.site-foot{background:var(--ink);color:rgba(251,251,249,.72);padding:52px 0 44px;margin-top:70px;border-radius:26px 26px 0 0;}
.site-foot a{color:#fff;text-decoration:none;font-size:14.5px;font-family:var(--display);font-weight:600;}
.site-foot a:hover{text-decoration:underline;color:var(--hl);}
.foot-links{display:flex;flex-wrap:wrap;gap:10px 26px;margin:14px 0 22px;}
.site-foot .tag{font-family:var(--display);font-weight:800;color:var(--hl);font-size:18px;}
.site-foot .legal{font-size:13px;margin-top:8px;}

/* ---------- doodle illustrations ---------- */
.ill{display:block;color:var(--ink);flex:none;}     /* black hand-drawn line-art */
.card > .ill{margin:0 0 14px;}
.band-forest .ill,.band-forest .sec-ill{color:#fff;} /* white line-art on blue panel */
.sec-ill{margin:20px auto 4px;}
.hero-grid{display:flex;flex-direction:column;gap:10px;}
.hero-art{display:flex;justify-content:center;margin-top:8px;}
.ill-hero{width:100%;max-width:320px;height:auto;}
@media (min-width:880px){
  .hero-grid{flex-direction:row;align-items:center;gap:34px;}
  .hero-copy{flex:1 1 auto;min-width:0;}
  .hero-art{display:block;flex:0 0 440px;text-align:center;margin-top:0;}
  .ill-hero{max-width:440px;}
}

/* ============================================================
   VISUAL-FIRST blocks — big illustration + tiny text
   ============================================================ */
.section-visual{text-align:center;}
.section-visual .lead{margin-left:auto;margin-right:auto;}
/* headline + short line stack tidily ABOVE the illustration with clear gaps */
.section-visual h2{margin-bottom:10px;}
.section-visual .mini-line{margin-bottom:2px;}
/* (the authoritative .big-ill rule with its spacing lives in the BIG SCENE
   block below — kept single-source so text and drawing never crowd) */
.mini-line{font-size:clamp(15px,2.2vw,18px);color:var(--ink-soft);max-width:48ch;margin:8px auto 0;font-family:var(--body);}
.band-forest .mini-line{color:rgba(255,255,255,.9);}

/* three big picture panels */
.panels{display:grid;gap:22px;margin-top:34px;grid-template-columns:1fr;}
@media (min-width:760px){ .panels{grid-template-columns:repeat(3,1fr);} }
.panel{
  background:var(--card);border:2.5px solid var(--ink);border-radius:var(--radius);
  box-shadow:var(--sketch);padding:18px 16px 22px;text-align:center;
}
.panel svg{width:100%;max-width:260px;height:auto;margin:0 auto 8px;display:block;}
.panel .panel-label{font-family:var(--display);font-weight:800;font-size:17px;color:var(--ink);line-height:1.28;}
.panel .panel-label b{color:var(--green-deep);}

/* big how-it-works step doodles */
.steps-big{display:grid;gap:26px;margin-top:34px;grid-template-columns:1fr;text-align:center;}
@media (min-width:760px){ .steps-big{grid-template-columns:repeat(3,1fr);} }
.step-big svg{width:100%;max-width:220px;height:auto;margin:0 auto 6px;display:block;}
.step-big .step-num{margin:0 auto 8px;}
.step-big .step-label{font-family:var(--display);font-weight:800;font-size:19px;color:var(--ink);}

/* icon + label mini feature grid */
.mini-grid{display:grid;gap:16px;margin-top:30px;grid-template-columns:repeat(2,1fr);}
@media (min-width:760px){ .mini-grid{grid-template-columns:repeat(3,1fr);} }
.mini-card{
  background:var(--card);border:2.5px solid var(--ink);border-radius:16px;
  box-shadow:var(--sketch-sm);padding:18px 14px;text-align:center;
}
.mini-card svg{margin:0 auto 8px;display:block;}
.mini-card .mini-label{font-family:var(--display);font-weight:700;font-size:15px;color:var(--ink);line-height:1.25;}

/* ============================================================
   BIG SCENE ILLUSTRATIONS — original inline SVG, notebook style.
   Large, centered, dominant; scale down cleanly on mobile.
   ============================================================ */
/* The illustration is ALWAYS its own block below the text — never overlapping.
   A generous clamp() top-margin + clear:both keeps a clean gap between the
   headline/lead above and the drawing, on every width. */
.big-ill{width:100%;max-width:640px;margin:clamp(28px,5vw,44px) auto 0;
  display:block;clear:both;position:relative;}
.big-ill svg{width:100%;height:auto;display:block;}
.big-ill.scene{max-width:700px;}
.big-ill.grow{max-width:600px;}
.big-ill.trust{max-width:560px;}
.section-visual .big-ill{margin-left:auto;margin-right:auto;}
@media (max-width:600px){ .big-ill{margin-top:22px;} }

/* trust / feature figure with caption */
.figure-note{max-width:560px;margin:26px auto 0;text-align:center;}
.figure-note.big{max-width:940px;}
.figure-note .cap{font-family:var(--display);font-weight:700;font-size:14px;color:var(--ink-soft);margin-top:12px;}

/* ============================================================
   HERO "WORKS WITH" BIG LOGO BAR — above the fold, enlarged marks
   ============================================================ */
.hero-logos{
  display:flex;flex-wrap:wrap;align-items:center;gap:14px 18px;margin-top:28px;
  padding:16px 20px;background:var(--card);border:2.5px solid var(--ink);
  border-radius:18px;box-shadow:var(--sketch);max-width:600px;
}
.hero-logos .hl-title{
  font-family:var(--display);font-weight:800;font-size:13px;letter-spacing:.05em;
  text-transform:uppercase;color:var(--ink);width:100%;margin-bottom:2px;
}
@media (min-width:560px){ .hero-logos .hl-title{width:auto;margin-right:6px;margin-bottom:0;} }
.hero-logos .hl-mark{display:flex;flex-direction:column;align-items:center;gap:5px;}
.hero-logos .hl-mark svg{width:54px;height:54px;border-radius:15px;box-shadow:var(--sketch-sm);}
.hero-logos .hl-mark span{font-family:var(--display);font-weight:700;font-size:12px;color:var(--ink-soft);}
@media (max-width:560px){ .hero-logos .hl-mark svg{width:44px;height:44px;} }

/* enlarge the lower import-strip + platform logos a touch */
.import-icons .platform{font-size:15px;}
.import-icons .platform svg{width:34px;height:34px;}
.platforms .platform svg{width:30px;height:30px;}

/* make the hero "works with" bar a touch bigger + higher priority */
.hero-logos{margin-top:22px;max-width:660px;}

/* ============================================================
   HERO TOP-RIGHT CTA + BADGE CLUSTER
   Headline + big logos lead the left/upper area; the badges and
   both CTAs sit in a card in the hero's right column.
   ============================================================ */
.hero-side{display:flex;flex-direction:column;gap:18px;margin-top:22px;}
.cta-cluster{
  background:var(--card);border:2.5px solid var(--ink);border-radius:var(--radius);
  box-shadow:var(--sketch);padding:20px 22px;
}
.cta-cluster .chips-row{margin-top:0;margin-bottom:16px;}
.cta-cluster .cta-row{flex-direction:column;align-items:stretch;margin-top:0;gap:12px;}
.cta-cluster .btn{width:100%;text-align:center;}
.cta-cluster .cta-note{margin-top:12px;}
.hero-side .ill-hero{max-width:300px;margin:0 auto;}
@media (min-width:880px){
  .hero-side{flex:0 0 340px;margin-top:0;}
}

/* ============================================================
   PERSONA HEROES — a big original SVG leads the page (no photo).
   Light notebook paper; two columns on desktop, stacked on mobile.
   The illustration is dominant; text stays minimal.
   ============================================================ */
.persona-hero{
  position:relative;overflow:hidden;padding:40px 0 30px;
  border-bottom:2px solid rgba(43,42,40,.12);
}
/* stacked on mobile (copy then art, clear gap), side-by-side on desktop —
   the two never overlap; ph-art is its own flex block. */
.persona-hero .ph-inner{display:flex;flex-direction:column;gap:30px;}
.persona-hero .ph-copy{max-width:640px;}
.persona-hero .ph-art{margin-top:2px;}
.persona-hero h1 em{box-shadow:inset 0 -.32em 0 var(--green-soft);border-radius:2px;font-style:normal;}
.persona-hero .disclaimer{font-size:13.5px;margin-top:14px;font-style:italic;color:var(--ink-soft);}
.persona-hero .cta-note{color:var(--ink-soft);}
.ph-art{width:100%;}
.ph-art svg{width:100%;height:auto;max-width:600px;display:block;margin:0 auto;}
@media (min-width:900px){
  .persona-hero{padding:52px 0 44px;}
  .persona-hero .ph-inner{flex-direction:row;align-items:center;gap:clamp(44px,6vw,72px);}
  .persona-hero .ph-copy{flex:1 1 420px;min-width:0;}
  .ph-art{flex:1 1 560px;margin-top:0;}
  .ph-art svg{max-width:600px;}
}
@media (min-width:1120px){ .ph-art svg{max-width:640px;} }

/* ============================================================
   SVG DOODLE PANELS AS LINKS (homepage "three things")
   ============================================================ */
a.panel{display:block;text-decoration:none;color:inherit;transition:transform .1s ease,box-shadow .1s ease;}
a.panel:hover{transform:translate(1px,1px);box-shadow:var(--sketch-sm);}
a.panel:active{transform:translate(3px,3px);box-shadow:0 0 0 rgba(0,0,0,0);}
.panel .panel-see{
  font-family:var(--display);font-weight:700;font-size:13px;color:var(--green-deep);
  margin-top:10px;display:inline-block;
}
a.panel:hover .panel-see{text-decoration:underline;}

/* persona pages: a light section image, large + framed but not a tiny card */
.persona-figure{max-width:720px;margin:26px auto 0;}
.persona-figure .cap{
  font-family:var(--display);font-weight:700;font-size:14px;color:var(--ink-soft);
  margin-top:12px;text-align:center;
}

/* ============================================================
   GENERATED MARKETING ART (gen_*.png from generate_marketing_art.py)
   Real hand-drawn illustrations that replace the inline SVG doodles.
   Rendered large, responsive and centered inside the existing
   .big-ill / .ph-art / .hero-art containers, with a soft notebook
   border + shadow. The paired .ill-fallback caption stays hidden
   unless the image is missing (onerror reveals it).
   ============================================================ */
.big-ill img,
.ph-art img,
.hero-art img.ill-hero{
  width:100%;height:auto;max-width:640px;display:block;margin:0 auto;
  border-radius:16px;border:1.5px solid var(--ink);
  box-shadow:0 8px 24px rgba(20,24,20,.10);background:var(--paper,#fbfaf6);
}
.big-ill.scene img{max-width:700px;}
.big-ill.grow img{max-width:600px;}
.ph-art img{max-width:600px;}
@media (min-width:1120px){ .ph-art img{max-width:640px;} }
.ill-fallback{
  max-width:640px;margin:14px auto 0;text-align:center;
  font-size:14px;color:var(--ink-soft);font-style:italic;
}
