:root{--bg:#FFF4F6;--ink:#2B1233;--pink:#FF3D8B;--mute:#6B5873;
--head:'Bricolage Grotesque',system-ui,sans-serif;--body:'Figtree',system-ui,sans-serif}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--bg);color:var(--ink);font:400 1.0625rem/1.65 var(--body)}
a{color:inherit;text-underline-offset:3px}
a:focus-visible{outline:3px solid var(--pink);outline-offset:3px;border-radius:4px}
.skip{position:absolute;left:-999px}.skip:focus{left:1rem;top:1rem;background:#fff;padding:.5rem 1rem;z-index:9}
h1,h2,h3{font-family:var(--head);line-height:1.05;letter-spacing:-.02em;margin:0}
.top{display:flex;gap:1rem 2rem;align-items:center;justify-content:space-between;flex-wrap:wrap;padding:1rem clamp(1rem,4vw,3rem);border-bottom:2px solid var(--ink)}
.logo{font:800 1.5rem var(--head);letter-spacing:-.03em;text-decoration:none}
.top nav{display:flex;gap:1.25rem;flex-wrap:wrap;font-weight:500}
.top nav a{text-decoration:none}.top nav a:hover{text-decoration:underline;text-decoration-color:var(--pink);text-decoration-thickness:3px}
.hero{padding:clamp(2.5rem,8vw,6rem) clamp(1rem,4vw,3rem) clamp(2rem,5vw,3.5rem)}
.hero h1{font-weight:800;font-size:clamp(2.75rem,9vw,7.5rem);line-height:.92;letter-spacing:-.045em;max-width:14ch}
.hero p{font-size:1.25rem;max-width:34ch;margin:1.5rem 0 0;color:var(--mute)}
.hero.small{padding-block:3rem;border-bottom:2px solid var(--ink)}.hero.small h1{font-size:clamp(2.5rem,7vw,5rem)}
.lead{display:grid;gap:.75rem;padding:clamp(1.5rem,4vw,3rem);margin:0 clamp(1rem,4vw,3rem);border:2px solid var(--ink);border-radius:28px;text-decoration:none;box-shadow:8px 8px 0 var(--ink)}
.lead strong{font:800 clamp(1.75rem,4.5vw,3.5rem)/1 var(--head);letter-spacing:-.03em;max-width:22ch}
.lead:hover strong{text-decoration:underline;text-decoration-thickness:4px}
.meta{display:flex;flex-wrap:wrap;gap:.5rem 1rem;align-items:center;margin:0;font-size:.9rem;color:var(--mute)}
.lead .meta{color:var(--ink)}.lead .meta b{font-weight:700}
.wrap{padding:clamp(2rem,5vw,4rem) clamp(1rem,4vw,3rem);max-width:68rem}
.wrap>h2{font-size:clamp(1.75rem,4vw,2.5rem);margin-bottom:1.5rem}
.row{display:grid;grid-template-columns:5.5rem 1fr;gap:1.25rem;padding:1.5rem 0;border-top:2px solid var(--ink)}
.row .swatch{display:block;aspect-ratio:1;border-radius:50%;border:2px solid var(--ink)}
.row h3{font-size:clamp(1.35rem,3vw,1.9rem);margin:.5rem 0}.row h3 a{text-decoration:none}.row h3 a:hover{text-decoration:underline;text-decoration-thickness:3px}
.row p{margin:0}.row>div>p:last-child{color:var(--mute);max-width:60ch}
.chip{display:inline-block;padding:.15rem .75rem;border:2px solid var(--ink);border-radius:99px;font-weight:700;font-size:.85rem;color:var(--ink);text-decoration:none}
.tiles{display:grid;grid-template-columns:repeat(auto-fit,minmax(11rem,1fr));gap:1rem}
.tile{display:flex;flex-direction:column;justify-content:space-between;min-height:9rem;padding:1.25rem;border:2px solid var(--ink);border-radius:20px;text-decoration:none}
.tile span{font:800 1.6rem var(--head);letter-spacing:-.02em}.tile:hover{box-shadow:5px 5px 0 var(--ink)}
.post-head{padding:clamp(2rem,6vw,4.5rem) clamp(1rem,4vw,3rem);border-bottom:2px solid var(--ink)}
.post-head .meta{color:var(--ink)}
.post-head h1{font-weight:800;font-size:clamp(2.2rem,6vw,4.75rem);line-height:.98;letter-spacing:-.04em;max-width:20ch;margin:1.25rem 0}
.dek{font-size:1.25rem;max-width:44ch;margin:0}
.prose{max-width:41rem;margin:0 auto;padding:clamp(2rem,5vw,3.5rem) 1.25rem 3rem;font-size:1.125rem;line-height:1.75}
.prose h2{font-size:clamp(1.6rem,3.5vw,2.2rem);margin:2.5rem 0 .75rem}.prose h3{font-size:1.35rem;margin:1.75rem 0 .5rem}
.prose p,.prose ul,.prose ol{margin:0 0 1.25rem}.prose li{margin-bottom:.4rem}
.prose a{text-decoration-color:var(--pink);text-decoration-thickness:2px}
.prose blockquote{margin:1.5rem 0;padding:.25rem 0 .25rem 1.25rem;border-left:5px solid var(--pink);font-weight:500}
.prose.page h1{font-size:clamp(2.2rem,6vw,3.75rem);margin-bottom:1.5rem}
.faq{margin-top:3rem;padding-top:1rem;border-top:2px solid var(--ink)}.faq h3{margin-top:1.5rem}
.more{padding:0}.more h2{font-size:1.75rem;margin-bottom:1rem}
.foot{margin-top:3rem;padding:2rem clamp(1rem,4vw,3rem);border-top:2px solid var(--ink);display:flex;flex-wrap:wrap;gap:.5rem 2rem;justify-content:space-between;font-size:.95rem}
.foot p{margin:0}.foot a{margin-right:1.25rem}
@media (max-width:560px){.row{grid-template-columns:3rem 1fr;gap:.9rem}.lead{box-shadow:5px 5px 0 var(--ink);border-radius:20px}}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}

/* ---- design upgrade ---- */
.hero{display:grid;grid-template-columns:1.4fr 1fr;gap:2rem;align-items:center;background:#FFB3D1;border-bottom:2px solid var(--ink)}
.hero p{color:var(--ink)}
.hero.small{display:block}
.hero-art{aspect-ratio:1;max-width:30rem;width:100%;justify-self:end;border:2px solid var(--ink);border-radius:42% 58% 55% 45%/50% 45% 55% 50%;overflow:hidden;box-shadow:8px 8px 0 var(--ink)}
svg.art{display:block;width:100%;height:100%}
.ticker{overflow:hidden;background:var(--ink);color:var(--bg);padding:.8rem 0;white-space:nowrap;border-bottom:2px solid var(--ink)}
.ticker div{display:inline-block;animation:tick 30s linear infinite;font:800 1.25rem var(--head);text-transform:uppercase;letter-spacing:.04em}
.ticker span{margin:0 1.25rem}
.ticker i{display:inline-block;width:.9em;height:.9em;background:var(--pink);clip-path:polygon(50% 0,61% 35%,98% 35%,68% 57%,79% 91%,50% 70%,21% 91%,32% 57%,2% 35%,39% 35%);vertical-align:-.05em}
@keyframes tick{to{transform:translateX(-50%)}}
.lead{grid-template-columns:1.2fr 1fr;align-items:stretch;gap:1.5rem;margin-top:2.5rem}
.lead-text{display:grid;gap:.75rem;align-content:center}
.lead-art{display:block;border:2px solid var(--ink);border-radius:20px;overflow:hidden;min-height:14rem;background:var(--bg)}
.lead-art svg,.lead-art img{width:100%;height:100%;object-fit:cover;display:block}
.row{grid-template-columns:7rem 1fr}
.row .thumb{display:block;aspect-ratio:1;border:2px solid var(--ink);border-radius:20px;overflow:hidden;transition:transform .2s}
.row:hover .thumb{transform:rotate(-4deg) scale(1.04)}
.thumb svg,.thumb img{width:100%;height:100%;object-fit:cover;display:block}
.chip{transform:rotate(-2deg)}
.dark{background:var(--ink);color:var(--bg);margin-top:2rem}
.dark .wrap{max-width:none}
.dark .wrap>h2{color:var(--bg)}
.tile{position:relative;overflow:hidden;color:var(--ink)}
.tile-art{position:absolute;right:-1.25rem;bottom:-1.25rem;width:7rem;height:7rem;border:2px solid var(--ink);border-radius:50%;overflow:hidden;transform:rotate(12deg)}
.tile span,.tile small{position:relative}
.tile:hover{box-shadow:5px 5px 0 var(--pink)}
.post-head{display:grid;grid-template-columns:1.4fr 1fr;gap:2rem;align-items:center}
.ph-art{aspect-ratio:1;border:2px solid var(--ink);border-radius:28px;overflow:hidden;box-shadow:6px 6px 0 var(--ink);max-width:22rem;justify-self:end;width:100%}
.ph-art svg,.ph-art img{width:100%;height:100%;object-fit:cover;display:block}
.prose figure{margin:2rem 0}
.prose img{max-width:100%;height:auto;border:2px solid var(--ink);border-radius:20px;display:block}
.prose figcaption{font-size:.9rem;color:var(--mute);margin-top:.5rem}
@media (max-width:760px){.hero,.lead,.post-head{grid-template-columns:1fr}.hero-art{justify-self:start;max-width:16rem}.ph-art{justify-self:start;max-width:14rem}.row{grid-template-columns:4.5rem 1fr}}
@media (prefers-reduced-motion:reduce){.ticker div{animation:none}.row:hover .thumb{transform:none}}
/* ---- size fixes ---- */
.hero{padding:clamp(1.75rem,4vw,3rem) clamp(1rem,4vw,3rem)}
.hero h1{font-size:clamp(2.5rem,7vw,5.25rem)}
.hero p{margin-top:1rem}
.hero.small{padding-block:2.5rem}
.hero-art{max-width:17rem;max-height:17rem;justify-self:end;box-shadow:6px 6px 0 var(--ink)}
.ticker{padding:.6rem 0}.ticker div{font-size:1.05rem}
.lead{margin-top:2rem;padding:clamp(1.25rem,3vw,2rem)}
.lead strong{font-size:clamp(1.6rem,3.5vw,2.6rem)}
.lead-art{position:relative;min-height:0;height:13rem;align-self:center}
.lead-art svg,.lead-art img{position:absolute;inset:0}
.row{grid-template-columns:6rem 1fr}
.row .thumb{width:6rem;height:6rem;aspect-ratio:auto}
.post-head{padding:clamp(1.5rem,4vw,3rem) clamp(1rem,4vw,3rem)}
.post-head h1{font-size:clamp(2rem,5vw,3.75rem)}
.ph-art{max-width:14rem;max-height:14rem;box-shadow:5px 5px 0 var(--ink)}
@media (max-width:760px){.hero-art{max-width:11rem;max-height:11rem}.lead-art{height:11rem}.ph-art{max-width:10rem;max-height:10rem}.row{grid-template-columns:4.5rem 1fr}.row .thumb{width:4.5rem;height:4.5rem}}
/* ---- hero shadow fix ---- */
.hero-art{box-shadow:none}
