*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{font-size:62.5%;scroll-behavior:smooth;overflow-x:hidden}
body{font-family:"DM Sans",system-ui,sans-serif;font-size:1.7rem;line-height:1.72;color:#2a2540;background:#f3f0fa;min-height:100vh;display:flex;flex-direction:column;overflow-x:hidden}
img{max-width:100%;height:auto;display:block}
a{color:#6d28d9;text-decoration:none;transition:color .2s}
a:hover{color:#ea580c}
.container{width:100%;max-width:114rem;margin:0 auto;padding:0 2rem}
:root{
  --ink:#1e1035;--purple:#6d28d9;--purple-dark:#4c1d95;--orange:#f97316;
  --bg:#f3f0fa;--surface:#fff;--muted:#6b6580;--line:#e4ddf3;
  --widget-scale:.78;--narrow:76rem;--wide:114rem;
}

.top-bar{background:linear-gradient(90deg,var(--purple-dark),var(--purple),#7c3aed);color:rgba(255,255,255,.92);font-size:1.2rem;text-align:center;padding:.55rem 1rem;letter-spacing:.02em}
.top-bar span{color:#fde68a;font-weight:800}

/* ── Header: light elevated bar ── */
.site-header{position:sticky;top:0;z-index:300;background:#fff;border-bottom:3px solid transparent;border-image:linear-gradient(90deg,var(--purple) 0%,var(--orange) 50%,var(--purple) 100%) 1;box-shadow:0 4px 24px rgba(30,16,53,.08)}
.site-header__inner{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:2rem;padding:1.1rem 0}
.site-logo{display:inline-flex;align-items:center;flex-shrink:0;text-decoration:none}
.site-logo:hover{opacity:.92}
.site-logo--header img{height:4rem;width:auto;max-width:min(28rem,52vw)}
.site-logo--footer{display:inline-block;margin-bottom:1.2rem;padding:1rem 1.2rem;background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.12);border-radius:1rem;transition:background .2s,border-color .2s}
.site-logo--footer:hover{background:rgba(255,255,255,.1);border-color:rgba(253,186,116,.35)}
.site-logo--footer img{height:4.2rem;width:auto;max-width:26rem}
.site-nav{justify-self:center}
.site-nav ul{display:flex;flex-wrap:wrap;justify-content:center;gap:.25rem;list-style:none;padding:.35rem;background:#f8f5ff;border:1px solid var(--line);border-radius:999px}
.site-nav a{display:block;padding:.65rem 1.15rem;font-size:1.38rem;font-weight:600;color:var(--muted);border-radius:999px;transition:all .2s;position:relative}
.site-nav a:hover{color:var(--purple-dark);background:#fff;box-shadow:0 2px 8px rgba(109,40,217,.1)}
.site-nav a[aria-current="page"]{color:#fff;background:linear-gradient(135deg,var(--purple),#7c3aed);box-shadow:0 4px 14px rgba(109,40,217,.35)}
.header-cta{display:inline-flex;align-items:center;padding:.75rem 1.5rem;font-size:1.38rem;font-weight:700;color:#fff;background:linear-gradient(135deg,var(--orange),#ea580c);border-radius:999px;white-space:nowrap;box-shadow:0 4px 16px rgba(249,115,22,.35);transition:transform .15s,box-shadow .2s}
.header-cta:hover{color:#fff;transform:translateY(-1px);box-shadow:0 6px 20px rgba(249,115,22,.45)}
.menu-toggle{display:none;flex-direction:column;gap:.4rem;padding:.65rem;background:#f8f5ff;border:1px solid var(--line);border-radius:.7rem;cursor:pointer}
.menu-toggle span{display:block;width:2rem;height:.2rem;background:var(--ink);border-radius:2px;transition:transform .2s,opacity .2s}
.menu-toggle--active span:nth-child(1){transform:translateY(.6rem) rotate(45deg)}
.menu-toggle--active span:nth-child(2){opacity:0}
.menu-toggle--active span:nth-child(3){transform:translateY(-.6rem) rotate(-45deg)}

.hero{position:relative;padding:4.5rem 0 4rem;background:radial-gradient(ellipse 80% 60% at 10% 0%,rgba(124,58,237,.35),transparent 60%),radial-gradient(ellipse 60% 50% at 90% 20%,rgba(249,115,22,.22),transparent 55%),linear-gradient(145deg,#1e1035 0%,#311b66 50%,#1e1035 100%);color:#fff;overflow:hidden}
.hero::before{content:"";position:absolute;inset:0;background-image:linear-gradient(rgba(255,255,255,.03) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.03) 1px,transparent 1px);background-size:3.2rem 3.2rem;mask-image:linear-gradient(180deg,#000 40%,transparent);pointer-events:none}
.hero__grid{display:grid;grid-template-columns:1.2fr .8fr;gap:3rem;align-items:center;position:relative}
.hero__badge{display:inline-flex;margin-bottom:1.2rem;padding:.4rem 1rem;font-size:1.2rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;background:rgba(249,115,22,.15);border:1px solid rgba(249,115,22,.35);border-radius:999px;color:#fdba74}
.hero__title{font-family:"Fraunces",Georgia,serif;font-size:clamp(2.8rem,4.8vw,4.4rem);font-weight:700;line-height:1.15;margin-bottom:1.2rem}
.hero__lead{font-size:1.75rem;line-height:1.65;color:rgba(255,255,255,.88);max-width:64rem}
.hero__stats{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem;margin-top:2rem}
.hero__stat{padding:1.2rem 1.4rem;background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.1);border-radius:1rem;text-align:center}
.hero__stat strong{display:block;font-family:"Fraunces",Georgia,serif;font-size:2rem;color:#fdba74;margin-bottom:.2rem}
.hero__stat span{font-size:1.25rem;color:rgba(255,255,255,.7)}

.page-hero{background:linear-gradient(135deg,var(--purple-dark),var(--ink));color:#fff;padding:3.5rem 0;text-align:center}
.page-hero h1{font-family:"Fraunces",Georgia,serif;font-size:clamp(2.4rem,4vw,3.6rem);margin-bottom:.7rem}
.page-hero p{font-size:1.65rem;color:rgba(255,255,255,.8);max-width:58rem;margin:0 auto}

main{flex:1;width:100%}
main>.container:not(.article-layout){max-width:var(--narrow)}
main .container.page-content{max-width:var(--narrow)}
main>.container.article-layout{max-width:var(--wide)}
.article-layout{display:grid;grid-template-columns:minmax(0,1fr) 24rem;gap:2.4rem;align-items:start;padding:3rem 0 4rem}
.toc{position:sticky;top:9.5rem;max-height:calc(100vh - 9rem);overflow-y:auto;padding:1.8rem;background:var(--surface);border-radius:1.4rem;border:1px solid var(--line);box-shadow:0 8px 32px rgba(30,16,53,.06);order:2}
.toc__title{font-family:"Fraunces",Georgia,serif;font-size:1.45rem;font-weight:700;color:var(--ink);margin-bottom:1rem;padding-bottom:.7rem;border-bottom:2px solid var(--orange)}
.toc ol{list-style:none}
.toc li{margin-bottom:.25rem}
.toc a{display:block;padding:.45rem .7rem;font-size:1.32rem;line-height:1.35;color:var(--muted);border-radius:.5rem;transition:all .2s}
.toc a:hover,.toc a.is-active{color:var(--purple);background:rgba(109,40,217,.08);font-weight:600}
.toc .toc-h3 a{padding-left:1.2rem;font-size:1.22rem}

.article-body{min-width:0;background:var(--surface);border-radius:1.4rem;border:1px solid var(--line);padding:3rem 3.2rem;box-shadow:0 8px 40px rgba(30,16,53,.05);order:1}
.page-content{padding:3rem 0 4rem}
.page-content__inner{width:100%}
.content-block p{margin-bottom:1.45rem}
.content-block h2{font-family:"Fraunces",Georgia,serif;font-size:2.15rem;color:var(--ink);margin:2.6rem 0 1rem;line-height:1.28}
.content-block h2:first-child{margin-top:0}
.content-block h3{font-size:1.8rem;font-weight:700;color:#3b2d5c;margin:1.8rem 0 .75rem}
.content-block h4{font-size:1.55rem;font-weight:600;color:var(--muted);margin:1.4rem 0 .55rem}
.content-block ul,.content-block ol{margin:1.1rem 0 1.5rem 2rem}
.content-block li{margin-bottom:.45rem}
.content-block img.article-img{width:7.2rem;max-width:7.2rem;margin:1rem 0 1.2rem;opacity:.9}

.data-table{width:100%;border-collapse:collapse;margin:1.8rem 0;font-size:1.42rem;border:1px solid var(--line);overflow-x:auto;display:block}
.data-table thead,.data-table tbody,.data-table tr{display:table;width:100%;table-layout:fixed}
.data-table th,.data-table td{padding:.9rem 1.1rem;text-align:left;border:1px solid var(--line);vertical-align:top}
.data-table th{font-weight:700;color:var(--purple-dark);background:rgba(109,40,217,.06)}

.check-list{list-style:none;margin:1.4rem 0;padding:0}
.check-list li{position:relative;padding:.9rem 1rem .9rem 2.8rem;margin-bottom:.7rem;background:#faf8ff;border-radius:.8rem;border-left:4px solid var(--purple);font-size:1.5rem}
.check-list li::before{content:"✦";position:absolute;left:1rem;top:.95rem;font-size:1rem;color:var(--orange)}
.warn-list li{border-left-color:#dc2626}

.author-strip{display:flex;gap:1.4rem;align-items:center;padding:1.6rem 1.8rem;margin:2rem 0;background:linear-gradient(135deg,rgba(109,40,217,.08),rgba(249,115,22,.08));border:1px solid var(--line);border-radius:1.2rem}
.author-strip__avatar{width:6rem;height:6rem;border-radius:50%;object-fit:cover;border:3px solid var(--orange);flex-shrink:0}
.author-strip__name{font-family:"Fraunces",Georgia,serif;font-size:1.7rem;font-weight:700;color:var(--ink)}
.author-strip__role{font-size:1.35rem;color:var(--muted);margin:.2rem 0}
.author-strip__meta{font-size:1.25rem;color:var(--purple)}

.widget-section{margin:2rem 0}
.widget-wrap{position:relative;overflow:hidden;border-radius:1.2rem;border:2px solid var(--line);background:var(--surface)}
.widget-wrap__scale{transform:scale(var(--widget-scale));transform-origin:top left;width:calc(100% / var(--widget-scale))}
.widget-wrap.is-locked .widget-wrap__scale{pointer-events:none}
.widget-overlay{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;background:rgba(30,16,53,.55);cursor:pointer;z-index:5;transition:opacity .25s}
.widget-wrap:not(.is-locked) .widget-overlay{display:none}
.widget-overlay span{padding:1rem 1.6rem;background:var(--orange);color:#fff;font-weight:700;font-size:1.4rem;border-radius:999px;box-shadow:0 4px 20px rgba(249,115,22,.4)}

.faq-list{margin:1.6rem 0}
.faq-item{border:1px solid var(--line);border-radius:1rem;margin-bottom:.8rem;overflow:hidden;background:#faf8ff}
.faq-item summary{padding:1.2rem 1.4rem;font-weight:700;cursor:pointer;list-style:none;color:var(--ink)}
.faq-item summary::-webkit-details-marker{display:none}
.faq-item__body{padding:0 1.4rem 1.2rem;color:var(--muted)}

.section--card{background:var(--surface);border:1px solid var(--line);border-radius:1.4rem;padding:3rem;box-shadow:0 8px 32px rgba(30,16,53,.04)}
.about-intro{display:flex;gap:1.4rem;align-items:flex-start;padding:1.4rem;background:rgba(109,40,217,.05);border-radius:1rem;margin:1.4rem 0}
.about-intro__icon{flex-shrink:0;width:5.6rem;height:5.6rem}

.author-hero{display:grid;grid-template-columns:auto 1fr;gap:2rem;align-items:start;padding:2rem;background:linear-gradient(135deg,#faf8ff,#fff);border:1px solid var(--line);border-radius:1.4rem;margin-bottom:2rem}
.author-hero__img{width:12rem;height:12rem;border-radius:1.2rem;object-fit:cover;border:3px solid var(--purple)}
.author-hero__name{font-family:"Fraunces",Georgia,serif;font-size:2.4rem;color:var(--ink);margin-bottom:.3rem}
.author-hero__role{font-size:1.45rem;color:var(--purple);margin-bottom:1rem}
.author-tags{display:flex;flex-wrap:wrap;gap:.5rem;list-style:none;margin-top:1rem}
.author-tags li{padding:.4rem .9rem;font-size:1.25rem;font-weight:600;background:rgba(109,40,217,.1);color:var(--purple-dark);border-radius:999px}

.contact-grid{display:grid;grid-template-columns:1fr 1fr;gap:2.4rem;padding:3rem 0}
.contact-card{padding:2.4rem;background:var(--surface);border:1px solid var(--line);border-radius:1.4rem}
.contact-actions{display:flex;flex-wrap:wrap;gap:1rem;margin-top:2rem}
.btn{display:inline-flex;align-items:center;justify-content:center;padding:1rem 1.8rem;font-size:1.45rem;font-weight:700;color:#fff;background:var(--purple);border:none;border-radius:.8rem;cursor:pointer;transition:background .2s,transform .15s}
.btn:hover{background:var(--purple-dark);color:#fff;transform:translateY(-1px)}
.btn--outline{background:transparent;color:var(--purple);border:2px solid var(--purple)}
.btn--outline:hover{background:rgba(109,40,217,.08)}
.btn--gold{background:var(--orange)}
.btn--gold:hover{background:#ea580c}

.contact-form label{display:block;font-size:1.35rem;font-weight:600;margin:.8rem 0 .4rem;color:var(--ink)}
.contact-form input,.contact-form textarea{width:100%;padding:1rem 1.2rem;font-size:1.45rem;font-family:inherit;border:1px solid var(--line);border-radius:.7rem;background:#faf8ff}
.contact-form textarea{min-height:10rem;resize:vertical}
.contact-form button{margin-top:1rem}

.site-footer{background:linear-gradient(180deg,#150a28 0%,var(--ink) 100%);color:rgba(255,255,255,.75);padding:3.5rem 0 2rem;margin-top:auto;border-top:4px solid var(--orange)}
.responsible-banner{text-align:center;padding:1rem 1.4rem;margin-bottom:2.4rem;font-size:1.35rem;font-weight:600;color:#fde68a;background:rgba(249,115,22,.15);border:1px solid rgba(249,115,22,.25);border-radius:1rem}
.site-footer__top{display:grid;grid-template-columns:1.5fr 1fr 1fr 1.3fr;gap:2.4rem;margin-bottom:2.4rem}
.site-footer__top h3{font-family:"Fraunces",Georgia,serif;font-size:1.5rem;color:#fff;margin-bottom:1rem;padding-bottom:.5rem;border-bottom:2px solid rgba(253,186,116,.3);display:inline-block}
.site-footer__top ul{list-style:none}
.site-footer__top li{margin-bottom:.5rem}
.site-footer__top a{color:rgba(255,255,255,.72)}
.site-footer__top a:hover{color:#fdba74}
.site-footer__brand p{margin:0 0 1rem;font-size:1.4rem;line-height:1.65;color:rgba(255,255,255,.68)}
.site-footer__badges{display:flex;gap:.8rem;margin-top:.5rem}
.site-footer__badges img{border-radius:.5rem;border:1px solid rgba(255,255,255,.1)}
.site-footer__contact .contact-form input,.site-footer__contact .contact-form textarea{background:rgba(255,255,255,.06);border-color:rgba(255,255,255,.15);color:#fff}
.site-footer__contact .contact-form label{color:rgba(255,255,255,.85)}
.site-footer__bottom{display:flex;flex-wrap:wrap;justify-content:space-between;gap:1rem;padding-top:1.6rem;border-top:1px solid rgba(255,255,255,.1);font-size:1.3rem}

.cookie-banner{position:fixed;bottom:0;left:0;right:0;z-index:500;background:var(--surface);border-top:2px solid var(--purple);box-shadow:0 -8px 32px rgba(30,16,53,.15);padding:1.4rem 0;transform:translateY(110%);transition:transform .35s}
.cookie-banner.is-visible{transform:translateY(0)}
.cookie-banner__inner{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:1.2rem}
.cookie-banner__inner p{flex:1;min-width:20rem;font-size:1.4rem;color:var(--muted)}
.cookie-banner__actions{display:flex;gap:.8rem}

.scroll-top{position:fixed;bottom:2rem;right:2rem;z-index:100;display:none;align-items:center;justify-content:center;width:4.4rem;height:4.4rem;font-size:2rem;color:#fff;background:var(--purple);border:none;border-radius:50%;cursor:pointer;box-shadow:0 4px 20px rgba(109,40,217,.4)}

.error-page{min-height:60vh;display:flex;align-items:center;justify-content:center;text-align:center;padding:4rem 2rem}
.error-page h1{font-family:"Fraunces",Georgia,serif;font-size:8rem;color:var(--purple);line-height:1}
.error-page p{font-size:1.8rem;margin:1rem 0 2rem;color:var(--muted)}

@media(max-width:1024px){
  .article-layout{grid-template-columns:1fr}
  .toc{position:static;max-height:none;order:0;margin-bottom:1rem}
  .article-body{order:1}
  .hero__grid{grid-template-columns:1fr}
  .hero__stats{grid-template-columns:1fr}
  .site-footer__top{grid-template-columns:1fr 1fr}
  .contact-grid{grid-template-columns:1fr}
}

@media(max-width:768px){
  .site-header__inner{grid-template-columns:auto 1fr auto;gap:1rem}
  .header-cta{display:none}
  .site-nav{position:fixed;inset:0;top:0;left:0;right:0;bottom:0;z-index:400;background:rgba(30,16,53,.55);justify-self:stretch;pointer-events:none;opacity:0;transition:opacity .3s}
  .site-nav--open{pointer-events:auto;opacity:1}
  .site-nav ul{position:absolute;top:9rem;left:1.6rem;right:1.6rem;flex-direction:column;background:#fff;border-radius:1.2rem;padding:1rem;box-shadow:0 16px 48px rgba(30,16,53,.2);border:none}
  .site-nav a{color:var(--muted);border-radius:.8rem}
  .site-nav a[aria-current="page"]{color:#fff}
  .menu-toggle{display:flex;position:relative;z-index:401}
  .article-body{padding:2rem 1.6rem}
  .site-footer__top{grid-template-columns:1fr}
  .site-logo--footer img{height:3.6rem}
  .author-hero{grid-template-columns:1fr;text-align:center}
  .author-hero__img{margin:0 auto}
  .author-tags{justify-content:center}
  :root{--widget-scale:.62}
}
