@font-face{font-family:Roboto;font-weight:400;font-style:normal;font-display:swap;src:url(fonts/roboto-latin-400-normal.woff2) format('woff2')}
@font-face{font-family:Roboto;font-weight:500;font-style:normal;font-display:swap;src:url(fonts/roboto-latin-500-normal.woff2) format('woff2')}
@font-face{font-family:Roboto;font-weight:700;font-style:normal;font-display:swap;src:url(fonts/roboto-latin-700-normal.woff2) format('woff2')}
:root{
  --blue:#0a4fb5; --blue-dark:#083d8c; --sky:#1a8fe3; --sky-light:#e8f3fc;
  --bg:#ffffff; --bg-soft:#f5f8fc; --text:#1c2733; --muted:#5b6b7a; --line:#e3e9f0;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;font-family:Roboto,system-ui,sans-serif;color:var(--text);background:var(--bg);line-height:1.6;-webkit-font-smoothing:antialiased}
a{color:var(--blue)}
img{max-width:100%;display:block}
.wrap{max-width:1040px;margin:0 auto;padding:0 20px}
h1,h2,h3{line-height:1.2;margin:0 0 14px;font-weight:700}
h1{font-size:clamp(30px,5vw,46px)}
h2{font-size:clamp(24px,3.4vw,32px)}
h3{font-size:20px}
p{margin:0 0 14px}
.muted{color:var(--muted)}
.small{font-size:14px;color:var(--muted)}

/* header */
header.site{position:sticky;top:0;z-index:10;background:rgba(255,255,255,.96);backdrop-filter:blur(6px);border-bottom:1px solid var(--line)}
header.site .wrap{display:flex;align-items:center;justify-content:space-between;height:68px}
.brand{display:flex;align-items:center;gap:10px;text-decoration:none;color:var(--text);font-weight:700;font-size:17px}
.brand img{width:40px;height:40px}
.brand span b{color:var(--sky);font-weight:700}
nav.main{display:flex;gap:22px;align-items:center}
nav.main a{text-decoration:none;color:var(--text);font-weight:500;font-size:15px}
nav.main a:hover{color:var(--blue)}
nav.main a.cta{background:var(--blue);color:#fff;padding:9px 16px;border-radius:9px}
nav.main a.cta:hover{background:var(--blue-dark);color:#fff}
.menu-btn{display:none;background:none;border:1.5px solid var(--line);border-radius:8px;padding:8px 10px;font-family:inherit;font-size:14px;cursor:pointer}
@media(max-width:760px){
  nav.main{display:none;position:absolute;top:68px;left:0;right:0;background:#fff;border-bottom:1px solid var(--line);flex-direction:column;align-items:stretch;gap:0;padding:8px 20px 14px}
  nav.main a{padding:12px 0;border-bottom:1px solid var(--line)}
  nav.main a.cta{margin-top:10px;text-align:center;border:0}
  nav.main.open{display:flex}
  .menu-btn{display:block}
}

/* buttons */
.btn{display:inline-block;background:var(--blue);color:#fff;text-decoration:none;padding:14px 24px;border-radius:10px;font-weight:500;font-size:16px;border:0;cursor:pointer;font-family:inherit;transition:background .15s}
.btn:hover{background:var(--blue-dark);color:#fff}
.btn.light{background:#fff;color:var(--blue);border:1.5px solid var(--blue)}
.btn.light:hover{background:var(--sky-light)}
.btn.sky{background:var(--sky)}
.btn.sky:hover{background:#137acb}
.actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:20px}

/* hero */
.hero{background:linear-gradient(180deg,var(--sky-light) 0%,#fff 100%);padding:64px 0 56px}
.hero .wrap{display:grid;grid-template-columns:1.2fr .8fr;gap:40px;align-items:center}
.hero .lead{font-size:19px;color:var(--muted);max-width:560px}
.hero img{width:min(280px,70%);margin:0 auto}
@media(max-width:760px){.hero .wrap{grid-template-columns:1fr}.hero img{width:160px;order:-1}.hero{padding:40px 0 36px}}

/* sections */
section{padding:56px 0}
section.soft{background:var(--bg-soft)}
.eyebrow{font-size:13px;letter-spacing:1.2px;text-transform:uppercase;color:var(--sky);font-weight:700;margin-bottom:8px}
.grid{display:grid;gap:20px}
.grid.c3{grid-template-columns:repeat(3,1fr)}
.grid.c2{grid-template-columns:repeat(2,1fr)}
@media(max-width:760px){.grid.c3,.grid.c2{grid-template-columns:1fr}}
.card{background:#fff;border:1px solid var(--line);border-radius:16px;padding:26px;display:flex;flex-direction:column}
.card h3{margin-bottom:8px}
.card p{flex:1}
.card .btn{align-self:flex-start;margin-top:8px}
.card.accent{background:var(--blue);color:#fff;border-color:var(--blue)}
.card.accent h3,.card.accent p{color:#fff}
.card.accent .btn{background:#fff;color:var(--blue)}
.card.accent .btn:hover{background:var(--sky-light)}

/* faq */
details{border-bottom:1px solid var(--line);padding:6px 0}
details summary{cursor:pointer;font-weight:500;font-size:17px;padding:12px 0;list-style:none;display:flex;justify-content:space-between;gap:14px}
details summary::-webkit-details-marker{display:none}
details summary::after{content:"+";color:var(--sky);font-size:22px;line-height:1;flex-shrink:0}
details[open] summary::after{content:"–"}
details p{color:var(--muted);margin:0 0 14px}

/* prose */
.prose{max-width:760px}
.prose h2{margin-top:40px}
.prose h3{margin-top:26px}
.prose ul{padding-left:0;list-style:none}
.prose ul li{padding:8px 0 8px 26px;position:relative;border-bottom:1px solid var(--line)}
.prose ul li::before{content:"";position:absolute;left:4px;top:17px;width:9px;height:9px;border-radius:50%;background:var(--sky)}

/* form */
.form input[type=text],.form input[type=email]{width:100%;padding:14px;font-size:16px;border:1.5px solid var(--line);border-radius:10px;font-family:inherit;margin:6px 0 12px;background:#fff}
.form input:focus{outline:none;border-color:var(--blue)}
.form label{font-weight:500;font-size:14px}
.notice{background:var(--sky-light);border:1px solid #cfe4f8;border-radius:12px;padding:18px 20px}
.hidden{display:none}

/* footer */
footer.site{background:#0f2540;color:#c9d6e5;padding:48px 0 28px;margin-top:40px}
footer.site .wrap{display:grid;grid-template-columns:1.4fr 1fr 1fr;gap:30px}
footer.site h4{color:#fff;margin:0 0 10px;font-size:15px}
footer.site a{color:#c9d6e5;text-decoration:none;display:block;padding:4px 0}
footer.site a:hover{color:#fff}
footer.site .copy{grid-column:1/-1;border-top:1px solid #23405f;padding-top:18px;font-size:13px;color:#8fa3ba}
@media(max-width:760px){footer.site .wrap{grid-template-columns:1fr}}

/* books */
.card.book{flex-direction:row;gap:22px;align-items:flex-start;padding:22px}
.card.book .cover{flex:0 0 118px;display:block}
.card.book .cover img{width:118px;border-radius:6px;box-shadow:0 6px 18px rgba(12,40,80,.18);transition:transform .15s}
.card.book .cover:hover img{transform:translateY(-3px)}
.card.book .book-body{display:flex;flex-direction:column;flex:1;min-width:0}
.card.book .book-body p{flex:1}
.card.book h3{font-size:18px}
@media(max-width:520px){.card.book{flex-direction:column}.card.book .cover img{width:100px}}
.card.teaser .thumb{width:90px;border-radius:5px;box-shadow:0 5px 14px rgba(12,40,80,.18);margin-bottom:16px}

/* photos */
.hero img.photo{width:min(420px,90%);height:auto;border-radius:18px;box-shadow:0 18px 40px rgba(12,40,80,.16);margin:0 auto}
.hero img.photo.round{border-radius:50%;width:min(340px,80%);aspect-ratio:1;object-fit:cover}
@media(max-width:760px){.hero img.photo{width:min(300px,80%);order:-1}.hero img.photo.round{width:200px}}
img.photo.round{border-radius:50%;aspect-ratio:1;object-fit:cover;width:min(360px,100%);margin:0 auto;box-shadow:0 18px 40px rgba(12,40,80,.16)}
.story figure{margin:22px 0}
.story figure img{border-radius:14px;box-shadow:0 10px 26px rgba(12,40,80,.14)}
.story figure.inline.right{float:right;width:260px;margin:4px 0 12px 26px}
.story figure.wide{clear:both;margin:30px 0}
.story figcaption{font-size:13px;color:var(--muted);margin-top:8px}
@media(max-width:600px){.story figure.inline.right{float:none;width:70%;margin:16px auto}}

/* blog cards */
.card.post{padding:0;overflow:hidden;text-decoration:none;color:inherit;transition:transform .15s,box-shadow .15s}
.card.post:hover{transform:translateY(-3px);box-shadow:0 14px 30px rgba(12,40,80,.12)}
.card.post img{width:100%;aspect-ratio:16/10;object-fit:cover}
.card.post .post-body{padding:20px 22px 22px;display:flex;flex-direction:column;flex:1}
.card.post h3{font-size:18px;margin:6px 0 8px}
.card.post .eyebrow{margin-bottom:2px}
.card.post p{flex:1;color:var(--muted);font-size:15px}

/* link cards */
.card.link h3{font-size:18px}
.card.link h3 a{text-decoration:none}
.card.link h3 a:hover{text-decoration:underline}
.card.link .small{margin-top:10px;word-break:break-all}

/* readers */
details.readers{border:0;padding:0;margin:0 0 14px}
details.readers summary{font-size:14px;color:var(--sky);padding:6px 0}
details.readers p{font-size:14px;color:var(--muted);flex:0}

/* interactive signs */
.signs{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-top:22px}
@media(max-width:900px){.signs{grid-template-columns:repeat(2,1fr)}}
@media(max-width:600px){.signs{grid-template-columns:1fr}}
.sign{display:flex;flex-direction:column;background:#fff;border:1.5px solid var(--line);border-radius:16px;padding:20px 20px 14px;cursor:pointer;position:relative;transition:border-color .15s,box-shadow .15s}
.sign:hover{border-color:var(--sky)}
.sign.on{border-color:var(--blue);box-shadow:0 0 0 3px var(--sky-light)}
.sign input{position:absolute;opacity:0;pointer-events:none}
.sign-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}
.sign-head svg{width:34px;height:34px;color:var(--sky)}
.sign-head .n{background:var(--bg-soft);color:var(--muted);font-weight:700;font-size:13px;border-radius:999px;width:26px;height:26px;display:inline-flex;align-items:center;justify-content:center}
.sign.on .sign-head .n{background:var(--blue);color:#fff}
.sign-title{font-weight:700;font-size:17px;line-height:1.3;margin-bottom:6px}
.sign-short{color:var(--muted);font-size:15px;margin-bottom:12px;flex:1}
.sign-check{display:flex;gap:10px;align-items:flex-start;background:var(--bg-soft);border-radius:10px;padding:10px 12px;font-size:14px;font-weight:500}
.sign-check .box{width:18px;height:18px;border:2px solid var(--blue);border-radius:5px;flex-shrink:0;margin-top:1px;position:relative;background:#fff}
.sign.on .sign-check{background:var(--sky-light)}
.sign.on .sign-check .box{background:var(--blue)}
.sign.on .sign-check .box::after{content:"";position:absolute;left:5px;top:1px;width:5px;height:10px;border:solid #fff;border-width:0 2px 2px 0;transform:rotate(45deg)}
.sign-why{border:0;padding:6px 0 0;margin-top:8px}
.sign-why summary{font-size:13px;color:var(--sky);padding:6px 0;font-weight:500}
.sign-why summary::after{font-size:16px}
.sign-why p{font-size:14px;color:var(--muted);margin:4px 0 0}
.sign-result{margin-top:26px;background:#fff;border:1px solid var(--line);border-radius:16px;padding:22px 24px}
.sign-bar{height:10px;background:var(--bg-soft);border-radius:999px;overflow:hidden;margin-bottom:12px}
.sign-bar span{display:block;height:100%;width:0;background:linear-gradient(90deg,var(--sky),var(--blue));transition:width .3s}
.sign-result p{margin:0 0 6px;font-size:16px}
.sign-result .actions{margin-top:14px}
.grid img.photo.round{width:min(360px,100%);height:auto;aspect-ratio:1;align-self:center;justify-self:center}
