:root{--bg:#fff5f8;--card:#fff;--ink:#4a2f3f;--mute:#8d6b7d;--line:#f5d3df;--rose:#e86a92;--rose2:#ffb8cc;--lav:#ebe0fb;--peach:#ffe6d6;--fog:var(--bg);--fog2:#fde7ee;--amber:var(--rose);--road:#fff}
*{box-sizing:border-box}html{scroll-behavior:smooth}
body{margin:0;color:var(--ink);font:17.5px/1.75 Nunito,system-ui,sans-serif;background:radial-gradient(900px 500px at 10% -5%,#ffe0ea,transparent 60%),radial-gradient(800px 500px at 100% 10%,var(--lav),transparent 60%),var(--bg);background-attachment:fixed}
h1,h2,h3,.ui,.eyebrow{font-family:"Playfair Display",Georgia,serif}
a{color:var(--rose)}a:focus-visible,button:focus-visible,input:focus-visible,textarea:focus-visible{outline:3px solid var(--rose2);outline-offset:2px}
.wrap{max-width:740px;margin:0 auto;padding:0 22px}.wrap.wide{max-width:1120px}
nav.ui,.topbar{display:flex;justify-content:space-between;align-items:center;padding:22px 0;font:600 1.05rem "Playfair Display",serif}
nav a{text-decoration:none;color:var(--ink);margin-left:20px}nav a:first-child{margin:0}
.eyebrow,.meta{font:700 .78rem Nunito,sans-serif;letter-spacing:.16em;text-transform:uppercase;color:var(--rose)}
.home-hero{display:grid;grid-template-columns:1.1fr .9fr;gap:40px;align-items:center;padding:30px 0 50px}
.home-hero h1,.list-hero h1{font-size:clamp(2.3rem,6vw,4.1rem);line-height:1.08;margin:12px 0 16px;letter-spacing:-.01em}
.home-hero p{color:var(--mute);max-width:46ch}
.hero-img img{width:100%;aspect-ratio:4/5;object-fit:cover;border-radius:220px 220px 28px 28px;border:8px solid #fff;box-shadow:0 24px 60px rgba(232,106,146,.25);background:linear-gradient(135deg,var(--rose2),var(--lav))}
.list-hero{padding:20px 0 10px}
.contact-button,button{display:inline-block;border:0;border-radius:999px;padding:12px 24px;background:linear-gradient(135deg,#f4799f,#e0559a);color:#fff;font:700 .95rem Nunito,sans-serif;text-decoration:none;cursor:pointer;box-shadow:0 8px 20px rgba(232,106,146,.3);transition:transform .15s}
.contact-button:hover,button:hover{transform:translateY(-2px)}.contact-button.alt{background:#fff;color:var(--rose);box-shadow:none;border:2px solid var(--rose2)}
button[disabled]{opacity:.6}
.block{margin:20px 0 54px}.sec-title{font-size:clamp(1.8rem,4vw,2.5rem);margin:0 0 6px}.sub{color:var(--mute);margin:0 0 22px}
.cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px}
.card{display:flex;flex-direction:column;background:var(--card);border-radius:24px;overflow:hidden;text-decoration:none;color:inherit;border:1px solid var(--line);box-shadow:0 10px 30px rgba(232,106,146,.1);transition:transform .2s,box-shadow .2s}
.card:hover{transform:translateY(-6px);box-shadow:0 18px 40px rgba(232,106,146,.22)}
.thumb{aspect-ratio:4/3;background:linear-gradient(135deg,var(--rose2),var(--lav) 60%,var(--peach));overflow:hidden}.thumb img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .5s}.card:hover .thumb img{transform:scale(1.06)}
.cb{padding:18px 20px 22px}.cb small{font:700 .7rem Nunito;letter-spacing:.12em;text-transform:uppercase;color:var(--rose)}.cb h3{font-size:1.2rem;line-height:1.25;margin:6px 0}.cb p{font-size:.93rem;line-height:1.55;color:var(--mute);margin:0 0 10px}.more{font-weight:700;font-size:.88rem;color:var(--rose)}
.topic-nav{display:flex;flex-wrap:wrap;gap:10px;margin:18px 0}.topic-nav a{background:#fff;border:1px solid var(--line);border-radius:999px;padding:8px 16px;text-decoration:none;font-size:.95rem}
.story-hero{padding:6px 0 40px;background:linear-gradient(135deg,#ffe3ec,#ece0fc);border-radius:0 0 48px 48px}.story-hero .wrap{max-width:900px}
.story-hero h1{font-size:clamp(2.1rem,6vw,3.6rem);line-height:1.1;margin:10px 0 12px;max-width:20ch}.story-hero p{color:var(--mute);font-size:1.12rem;max-width:60ch;margin:0}
.story-cover{max-width:1000px;margin:-18px auto 28px;padding:0 22px}.story-cover img{display:block;width:100%;height:clamp(240px,42vw,470px);object-fit:cover;border-radius:28px;border:8px solid #fff;box-shadow:0 22px 55px rgba(232,106,146,.22);background:linear-gradient(135deg,var(--rose2),var(--lav))}
.story-cover figcaption{font-size:.85rem;color:var(--mute);text-align:center;padding:10px}
.story-layout{max-width:900px}.story-layout article{max-width:720px;margin:auto}article{padding:24px 0}article h1{font-size:clamp(2rem,6vw,3.1rem);line-height:1.1}article h2{font-size:1.55rem;margin:2em 0 .4em}article p{margin:0 0 1.2em}
.story-intro,.tldr{font-size:1.18rem;color:var(--mute)}
.contents,.abstract,.references{background:#fff;border:1px solid var(--line);border-radius:20px;padding:20px 24px;margin:26px 0}.abstract{border-left:6px solid var(--rose)}.contents h2,.abstract h2{margin:0 0 8px;font-size:1.15rem}.contents ol{columns:2;margin:0;padding-left:22px}.abstract p{margin:0}
blockquote{margin:1.8em 0;padding:16px 22px;border-radius:20px;background:#fff;border-left:6px solid var(--rose2);font-style:italic}
.disclaimer{font-size:.9rem;color:var(--mute);border-left:3px solid var(--rose2);padding-left:14px}
.tags{display:flex;flex-wrap:wrap;gap:8px;padding:0;list-style:none}.tags li{background:var(--lav);padding:4px 14px;border-radius:999px;font-size:.85rem;font-weight:700}
.video{position:relative;aspect-ratio:16/9;border-radius:20px;overflow:hidden;margin:1.4em 0}.video iframe{position:absolute;inset:0;width:100%;height:100%;border:0}
.tablewrap{overflow-x:auto}table{border-collapse:collapse;width:100%;min-width:480px}th,td{text-align:left;padding:10px;border-bottom:1px solid var(--line)}
code{background:var(--fog2);padding:2px 6px;border-radius:6px}pre{background:#3b2433;color:#fde7ee;padding:18px;overflow-x:auto;border-radius:16px}pre code{background:none}.fill{background:#ffe0ea}.steps{padding-left:22px}img{max-width:100%}
.comment-panel,.contact-panel{margin:40px 0;padding:26px;border:1px solid var(--line);border-radius:28px;background:#fff;box-shadow:0 12px 34px rgba(232,106,146,.1)}
.comment-panel h2,.contact-panel h2{margin:0 0 6px}.comment-note,.contact-panel>p{color:var(--mute);font-size:.95rem}
.comment{padding:14px 16px;margin:10px 0;border-radius:18px;background:linear-gradient(135deg,#fff5f8,#f6eefe)}.comment strong{color:var(--rose)}.comment time{margin-left:10px;font-size:.8rem;color:var(--mute)}.comment p{margin:4px 0 0}
form{display:grid;gap:6px;margin-top:16px}label{font-weight:700;font-size:.85rem}
input,textarea{width:100%;padding:12px 14px;border:2px solid var(--line);border-radius:16px;background:#fffafb;color:var(--ink);font:inherit;font-size:16px}input:focus,textarea:focus{border-color:var(--rose2);outline:0}textarea{min-height:110px;resize:vertical}
.contact-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}.btnrow{display:flex;flex-wrap:wrap;gap:12px;margin-top:10px}.form-ok{color:#2f8f5b;font-weight:700}
.related-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:14px}.related-card{display:block;background:#fff;border:1px solid var(--line);border-radius:18px;padding:16px;text-decoration:none;color:inherit}.related-card span{font-size:.72rem;color:var(--rose);font-weight:700;text-transform:uppercase;letter-spacing:.1em}.related-card strong{display:block;font:600 1.05rem/1.3 "Playfair Display",serif}.related-card:hover{border-color:var(--rose2)}
.backtop{display:inline-block;margin:10px 0}.thanks{text-align:center;padding:90px 0}.thanks h1{font-size:3rem}
.site-foot{text-align:center;color:var(--mute);font-size:.92rem;padding:30px 22px 50px}.site-foot p{margin:4px 0}
@media(max-width:860px){.cards{grid-template-columns:repeat(2,1fr)}.home-hero{grid-template-columns:1fr}.hero-img{max-width:380px}}
@media(max-width:560px){body{font-size:17px}.cards,.related-grid,.contact-grid,.contents ol{grid-template-columns:1fr;columns:1}button,.contact-button{width:100%;text-align:center}.story-hero{border-radius:0 0 32px 32px}}
