/* public person page */
.pr-wrap{max-width:1080px;margin:0 auto;display:grid;gap:22px}
.pr-hero{position:relative;overflow:hidden;display:grid;grid-template-columns:240px 1fr;gap:36px;align-items:center;padding:40px;border-radius:28px;color:#fff;background:linear-gradient(135deg,#052e25 0%,#0b4d3e 45%,#0f6e56 100%);box-shadow:0 30px 60px -30px rgba(5,46,37,.55)}
.pr-hero-bg{position:absolute;inset:0;pointer-events:none;background:radial-gradient(520px 320px at 12% 0%,rgba(52,211,153,.28),transparent 70%),radial-gradient(420px 300px at 100% 100%,rgba(250,204,21,.16),transparent 70%),radial-gradient(rgba(255,255,255,.07) 1px,transparent 1.2px) 0 0/18px 18px}
.pr-hero>:not(.pr-hero-bg){position:relative}
.pr-portrait{position:relative;aspect-ratio:3/4;border-radius:22px;padding:5px;background:linear-gradient(160deg,#fde68a,#34d399 50%,#0f6e56);box-shadow:0 24px 50px -18px rgba(0,0,0,.6)}
.pr-portrait img,.pr-mono{width:100%;height:100%;border-radius:18px;object-fit:cover;display:block;cursor:zoom-in;background:#0b4d3e}
.pr-mono{display:flex;align-items:center;justify-content:center;font-size:96px;font-weight:900;color:#a7f3d0;cursor:default}
.pr-check{position:absolute;bottom:-12px;left:50%;transform:translateX(-50%);display:flex;align-items:center;justify-content:center;width:44px;height:44px;border-radius:50%;background:#fff;box-shadow:0 6px 16px rgba(0,0,0,.25)}
.pr-intro{display:grid;gap:12px;min-width:0}
.pr-kicker{justify-self:start;font-size:12px;font-weight:700;letter-spacing:.02em;color:#a7f3d0;background:rgba(255,255,255,.08);border:1px solid rgba(167,243,208,.25);border-radius:999px;padding:4px 14px}
.pr-name{font-size:clamp(28px,4vw,44px);font-weight:900;line-height:1.3;color:#fff}
.pr-role{font-size:18px;font-weight:700;color:#fde68a}
.pr-orgs{display:flex;flex-wrap:wrap;gap:8px}
.pr-org{display:inline-flex;align-items:center;gap:8px;padding:5px 14px 5px 6px;border-radius:999px;background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.18);color:#fff;font-size:14px;font-weight:600;transition:.15s}
.pr-org:hover{background:#fff;color:#0f6e56}
.pr-org img,.pr-org-i{width:28px;height:28px;border-radius:50%;object-fit:cover;background:#fff;flex-shrink:0}
.pr-org-i{display:flex;align-items:center;justify-content:center;color:#0f6e56;font-weight:800;font-size:13px}
.pr-stats{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:10px;margin-top:6px}
.pr-stat{display:grid;grid-template-columns:auto 1fr;grid-template-rows:auto auto;column-gap:10px;align-items:center;padding:10px 12px;border-radius:16px;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.14);color:#fff;transition:.15s;backdrop-filter:blur(6px)}
.pr-stat:hover{background:rgba(255,255,255,.16);transform:translateY(-2px)}
.pr-stat-i{grid-row:span 2;display:flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:11px;background:var(--k);color:#fff;box-shadow:0 6px 14px -6px var(--k)}
.pr-stat b{font-size:20px;font-weight:900;line-height:1.1}
.pr-stat small{font-size:11.5px;line-height:1.5;color:#d1fae5}
.pr-about{position:relative;overflow:hidden;background:#fff;border:1px solid #e7e5e4;border-radius:24px;padding:30px 34px;box-shadow:0 14px 34px -26px rgba(15,23,42,.35)}
.pr-about h2{font-size:19px;font-weight:800;color:#0f6e56;margin-bottom:10px}
.pr-about p{white-space:pre-line;line-height:2.2;color:#44403c;font-size:15.5px}
.pr-quote{position:absolute;top:-30px;left:20px;font-size:180px;line-height:1;font-family:Georgia,serif;color:#ecfdf5;pointer-events:none}
.pr-about>*:not(.pr-quote){position:relative}
.pr-sec{--k:#0f6e56;background:#fff;border:1px solid #e7e5e4;border-radius:24px;padding:24px;box-shadow:0 14px 34px -28px rgba(15,23,42,.35);scroll-margin-top:90px;border-top:4px solid var(--k)}
.pr-sec-h{display:flex;align-items:center;gap:12px;font-size:20px;font-weight:900;color:#1c1917;margin-bottom:18px}
.pr-sec-h small{margin-right:auto;font-size:12px;font-weight:700;color:var(--k);background:color-mix(in srgb,var(--k) 10%,#fff);border-radius:999px;padding:3px 12px}
.pr-sec-i{display:flex;align-items:center;justify-content:center;width:44px;height:44px;border-radius:14px;color:#fff;background:linear-gradient(135deg,var(--k),color-mix(in srgb,var(--k) 60%,#000));box-shadow:0 10px 20px -10px var(--k)}
.pr-y{display:inline-block;font-size:12px;font-weight:800;color:var(--k,#0f6e56);background:color-mix(in srgb,var(--k,#0f6e56) 10%,#fff);border-radius:999px;padding:1px 10px;vertical-align:middle}
.pr-link{display:inline-block;margin-top:6px;font-size:13px;font-weight:700;color:var(--k,#0f6e56)}
.pr-link:hover{text-decoration:underline}
.pr-gallery{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:16px}
.pr-tile{display:flex;flex-direction:column;border:1px solid #eeeceb;border-radius:18px;overflow:hidden;background:#fff;transition:.2s}
.pr-tile:hover{transform:translateY(-4px);box-shadow:0 20px 36px -22px color-mix(in srgb,var(--k) 70%,#000);border-color:color-mix(in srgb,var(--k) 35%,#fff)}
.pr-tile-img{position:relative;display:flex;align-items:center;justify-content:center;aspect-ratio:4/3;padding:12px;background:linear-gradient(160deg,color-mix(in srgb,var(--k) 7%,#fff),#fafaf9);overflow:hidden;cursor:zoom-in}
.pr-tile-img img{max-width:100%;max-height:100%;object-fit:contain;border-radius:6px;box-shadow:0 8px 20px -10px rgba(0,0,0,.35);transition:transform .3s}
.pr-tile:hover .pr-tile-img img{transform:scale(1.04)}
.pr-tile-img.is-empty{color:color-mix(in srgb,var(--k) 55%,#fff);cursor:default}
.pr-zoom{position:absolute;top:10px;left:10px;display:flex;align-items:center;justify-content:center;width:34px;height:34px;border-radius:50%;background:rgba(255,255,255,.92);color:var(--k);opacity:0;transform:scale(.8);transition:.2s;box-shadow:0 4px 10px rgba(0,0,0,.15)}
.pr-tile:hover .pr-zoom{opacity:1;transform:none}
.pr-tile-b{padding:12px 14px 14px;display:grid;gap:4px;align-content:start}
.pr-tile-b .pr-y{justify-self:start}
.pr-tile-b h3,.pr-time-b h3,.pr-c h3{font-size:15px;font-weight:800;line-height:1.8;color:#1c1917}
.pr-tile-b p,.pr-time-b p,.pr-c p{font-size:13.5px;line-height:1.9;color:#57534e;white-space:pre-line}
.pr-time{position:relative;display:grid;gap:4px;padding-right:22px}
.pr-time:before{content:"";position:absolute;top:8px;bottom:8px;right:6px;width:2px;border-radius:2px;background:linear-gradient(var(--k),color-mix(in srgb,var(--k) 15%,#fff))}
.pr-time li{position:relative;display:flex;gap:14px;align-items:flex-start;padding:10px 14px;border-radius:14px;transition:background .15s}
.pr-time li:hover{background:color-mix(in srgb,var(--k) 5%,#fff)}
.pr-dot{position:absolute;right:-22px;top:18px;width:14px;height:14px;border-radius:50%;background:#fff;border:3px solid var(--k);box-shadow:0 0 0 4px color-mix(in srgb,var(--k) 15%,#fff)}
.pr-time-b{flex:1;min-width:0}
.pr-mini{flex-shrink:0;cursor:zoom-in}
.pr-mini img{width:92px;height:70px;object-fit:cover;border-radius:10px;border:1px solid #e7e5e4;transition:.2s}
.pr-mini:hover img{transform:scale(1.05);box-shadow:0 8px 18px -8px rgba(0,0,0,.35)}
.pr-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:12px}
.pr-c{display:flex;gap:14px;align-items:flex-start;padding:14px;border-radius:16px;border:1px solid #eeeceb;background:linear-gradient(160deg,color-mix(in srgb,var(--k) 5%,#fff),#fff);transition:.2s}
.pr-c:hover{border-color:color-mix(in srgb,var(--k) 35%,#fff);transform:translateY(-2px)}
.pr-c-i{display:flex;align-items:center;justify-content:center;width:44px;height:44px;flex-shrink:0;border-radius:12px;background:color-mix(in srgb,var(--k) 12%,#fff);color:var(--k)}
.pr-sec .vd-pub{margin:0}
.pr-sec .vd-pub-h{font-size:20px;font-weight:900}
@media (max-width:760px){
.pr-hero{grid-template-columns:1fr;justify-items:center;text-align:center;padding:28px 18px;gap:26px}
.pr-portrait{width:min(220px,70vw)}
.pr-kicker{justify-self:center}.pr-orgs{justify-content:center}
.pr-stats{grid-template-columns:repeat(2,1fr);width:100%}
.pr-stat{text-align:right}
.pr-about{padding:22px 18px}.pr-sec{padding:18px 14px}
.pr-gallery{grid-template-columns:1fr 1fr;gap:10px}
.pr-cards{grid-template-columns:1fr}
.pr-mini img{width:72px;height:56px}
}
/* panel form */
.pp-list{display:grid;gap:14px}
.pp-row{--k:#0f6e56;border:1px solid #e7e5e4;border-radius:16px;background:#fff;overflow:hidden;box-shadow:0 1px 2px rgba(0,0,0,.04);border-top:4px solid var(--k)}
.pp-head{display:flex;align-items:center;gap:10px;padding:10px 14px;background:color-mix(in srgb,var(--k) 8%,#fff)}
.pp-ic{display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:10px;background:var(--k);color:#fff;flex-shrink:0}
.pp-kind{border:0;background:transparent;font-weight:800;color:var(--k);font-size:15px;padding:4px 6px;border-radius:8px;cursor:pointer;flex:1;min-width:0}
.pp-kind:focus{outline:2px solid color-mix(in srgb,var(--k) 40%,#fff)}
.pp-x{width:32px;height:32px;border-radius:50%;border:0;background:#fff;color:#a8a29e;font-size:20px;line-height:1;cursor:pointer}
.pp-x:hover{background:#fee2e2;color:#b91c1c}
.pp-x-chk{display:inline-flex;align-items:center;gap:4px;font-size:12px;color:#b91c1c;background:#fff;border-radius:999px;padding:4px 10px;cursor:pointer}
.pp-body{padding:14px;display:grid;gap:10px}
.pp-top{display:grid;grid-template-columns:1fr 130px;gap:10px}
.pp-title{font-weight:700}
.pp-extra{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.pp-link{display:flex;align-items:center;gap:8px;border:1px solid #e7e5e4;border-radius:12px;padding:0 12px;color:#a8a29e;background:#fafaf9}
.pp-link input{flex:1;border:0;background:transparent;padding:10px 0;font-size:14px;outline:0;min-width:0;text-align:left}
.pp-link:focus-within{border-color:var(--k);color:var(--k)}
.pp-drop{position:relative;display:flex;align-items:center;gap:8px;border:1.5px dashed #d6d3d1;border-radius:12px;padding:8px 12px;color:#78716c;font-size:13px;cursor:pointer;background:#fafaf9;transition:.15s}
.pp-drop:hover,.pp-drop.is-set{border-color:var(--k);color:var(--k);background:color-mix(in srgb,var(--k) 6%,#fff)}
.pp-drop img{width:44px;height:34px;object-fit:cover;border-radius:6px}
.pp-drop input{position:absolute;inset:0;opacity:0;cursor:pointer}
.pp-small{display:inline-flex;gap:6px;font-size:12px;color:#78716c}
.pp-empty{border:1.5px dashed #e7e5e4;border-radius:14px;padding:18px;text-align:center;color:#78716c;font-size:14px}
.pp-pick{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:8px}
.pp-tile{--k:#0f6e56;display:flex;align-items:center;gap:10px;padding:10px 12px;border:1px solid #e7e5e4;border-radius:14px;background:#fff;font-size:14px;font-weight:600;color:#44403c;cursor:pointer;transition:.15s;text-align:right}
.pp-tile .pp-ic{width:34px;height:34px;background:color-mix(in srgb,var(--k) 12%,#fff);color:var(--k)}
.pp-tile:hover{border-color:var(--k);color:var(--k);transform:translateY(-1px);box-shadow:0 6px 14px -8px var(--k)}
.pp-tile:hover .pp-ic{background:var(--k);color:#fff}
@media (max-width:640px){.pp-top,.pp-extra{grid-template-columns:1fr}.pp-pick{grid-template-columns:1fr 1fr}}
/* company page: the CEO card's résumé teaser */
.sp-ceo-bio{font-size:13px;line-height:1.9;color:#57534e;max-width:420px;margin:0 auto}
.sp-ceo-tags{display:flex;flex-wrap:wrap;justify-content:center;gap:6px}
.sp-ceo-tags span{font-size:12px;background:#fff;border:1px solid #d1fae5;color:#0f6e56;border-radius:999px;padding:2px 10px}
.sp-ceo-more{display:inline-block;font-size:13px;font-weight:700;color:#0f6e56;border:1px solid #0f6e56;border-radius:999px;padding:4px 14px;background:#fff}
.sp-ceo-more:hover{background:#0f6e56;color:#fff}

.is-film{position:relative;cursor:pointer}
.pr-play{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);display:flex;align-items:center;justify-content:center;width:58px;height:58px;border-radius:50%;color:#fff;background:rgba(225,29,72,.92);box-shadow:0 0 0 8px rgba(225,29,72,.25),0 10px 24px rgba(0,0,0,.35);transition:.2s;padding-left:3px}
.is-film:hover .pr-play{transform:translate(-50%,-50%) scale(1.1)}
.pr-mini.is-film{display:block}
.pr-mini .pr-play{width:34px;height:34px;box-shadow:0 0 0 4px rgba(225,29,72,.25)}
.pr-mini.is-film .pr-c-i{width:92px;height:70px}
/* hero v2: portrait | intro | «در یک نگاه» — no empty band */
.pr-hero{grid-template-columns:210px minmax(0,1fr) 300px;gap:32px;padding:32px;align-items:stretch}
.pr-hero:not(:has(.pr-side)){grid-template-columns:210px minmax(0,1fr)}
.pr-portrait{align-self:center}
.pr-intro{align-content:center;gap:10px}
.pr-name{font-size:clamp(28px,3.4vw,40px)}
.pr-teaser{font-size:14.5px;line-height:2;color:#d1fae5;max-width:560px;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.pr-acts{display:flex;flex-wrap:wrap;gap:8px;margin-top:4px}
.pr-btn{display:inline-flex;align-items:center;gap:6px;padding:8px 18px;border-radius:999px;font-size:14px;font-weight:700;color:#fff;border:1px solid rgba(255,255,255,.28);transition:.15s}
.pr-btn:hover{background:rgba(255,255,255,.12)}
.pr-btn.is-main{background:#fde68a;border-color:#fde68a;color:#064e3b}
.pr-btn.is-main:hover{background:#fff}
.pr-side{align-self:center;display:grid;gap:10px;padding:16px;border-radius:22px;background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.14);backdrop-filter:blur(8px)}
.pr-side-h{font-size:13px;font-weight:800;color:#a7f3d0}
.pr-side .pr-stats{grid-template-columns:1fr 1fr;margin:0;gap:8px}
.pr-side .pr-stat{padding:10px}
.pr-side .pr-stat-i{width:32px;height:32px;border-radius:10px}
@media (max-width:1000px){.pr-hero{grid-template-columns:190px minmax(0,1fr)}.pr-side{grid-column:1/-1}.pr-side .pr-stats{grid-template-columns:repeat(auto-fill,minmax(150px,1fr))}}
@media (max-width:760px){.pr-hero{grid-template-columns:1fr}.pr-acts{justify-content:center}.pr-teaser{margin-inline:auto}.pr-side{width:100%}.pr-side .pr-stats{grid-template-columns:1fr 1fr}}
/* books: a shelf of covers standing out of the page */
.pr-books{display:grid;grid-template-columns:repeat(auto-fill,minmax(420px,1fr));gap:18px}
.pr-book{display:flex;gap:20px;align-items:flex-start;padding:18px;border-radius:20px;background:linear-gradient(135deg,color-mix(in srgb,var(--k) 8%,#fff),#fff 60%);border:1px solid #f0eeec;transition:.2s}
.pr-book:hover{border-color:color-mix(in srgb,var(--k) 30%,#fff);box-shadow:0 18px 34px -24px color-mix(in srgb,var(--k) 60%,#000)}
.pr-cover{position:relative;flex-shrink:0;width:118px;aspect-ratio:2/3;border-radius:4px 10px 10px 4px;overflow:hidden;cursor:zoom-in;box-shadow:-10px 14px 22px -10px rgba(0,0,0,.45),0 0 0 1px rgba(0,0,0,.06);transform:perspective(600px) rotateY(-12deg);transform-origin:right center;transition:transform .35s}
.pr-cover:after{content:"";position:absolute;inset:0 auto 0 0;width:10px;background:linear-gradient(90deg,rgba(0,0,0,.25),rgba(255,255,255,.18),transparent)}
[dir=rtl] .pr-cover:after{inset:0 0 0 auto;background:linear-gradient(270deg,rgba(0,0,0,.25),rgba(255,255,255,.18),transparent)}
.pr-book:hover .pr-cover{transform:perspective(600px) rotateY(0)}
.pr-cover img{width:100%;height:100%;object-fit:cover;display:block}
.pr-cover.is-empty{display:flex;align-items:center;justify-content:center;color:#fff;background:linear-gradient(160deg,var(--k),color-mix(in srgb,var(--k) 55%,#000));cursor:default}
.pr-book-b{display:grid;gap:6px;min-width:0;align-content:start}
.pr-book-b h3{font-size:17px;font-weight:900;line-height:1.7;color:#1c1917}
.pr-book-b .pr-y{justify-self:start}
.pr-book-b p{font-size:13.5px;line-height:2;color:#57534e;white-space:pre-line}
@media (max-width:760px){.pr-books{grid-template-columns:1fr}.pr-book{gap:14px;padding:14px}.pr-cover{width:92px}}
/* one or two pictures: lie the card on its side so the row is filled, not a lone tile and a blank band */
.pr-gallery:has(>.pr-tile:only-child),.pr-gallery:has(>.pr-tile:nth-child(2):last-child){grid-template-columns:repeat(auto-fit,minmax(min(100%,460px),1fr))}
.pr-gallery:has(>.pr-tile:only-child) .pr-tile,.pr-gallery:has(>.pr-tile:nth-child(2):last-child) .pr-tile{flex-direction:row;align-items:stretch}
.pr-gallery:has(>.pr-tile:only-child) .pr-tile-img,.pr-gallery:has(>.pr-tile:nth-child(2):last-child) .pr-tile-img{flex:0 0 42%;max-width:340px;aspect-ratio:auto;min-height:230px;padding:18px}
.pr-gallery:has(>.pr-tile:only-child) .pr-tile-b,.pr-gallery:has(>.pr-tile:nth-child(2):last-child) .pr-tile-b{flex:1;align-content:center;padding:22px 26px;gap:8px}
.pr-gallery:has(>.pr-tile:only-child) .pr-tile-b h3{font-size:19px}
.pr-gallery:has(>.pr-tile:only-child) .pr-tile-b p{font-size:14.5px}
.pr-gallery:has(>.pr-tile:only-child) .pr-tile{background:linear-gradient(110deg,#fff 40%,color-mix(in srgb,var(--k) 7%,#fff))}
@media (max-width:640px){.pr-gallery:has(>.pr-tile:only-child) .pr-tile,.pr-gallery:has(>.pr-tile:nth-child(2):last-child) .pr-tile{flex-direction:column}.pr-gallery:has(>.pr-tile:only-child) .pr-tile-img,.pr-gallery:has(>.pr-tile:nth-child(2):last-child) .pr-tile-img{flex:none;max-width:none;min-height:0;aspect-ratio:4/3}.pr-gallery:has(>.pr-tile:only-child){grid-template-columns:1fr}}

.pr-about p{text-align:justify;white-space:normal}
.txt-line{display:block}
/* panel: portrait framing */
.pp-focus{display:grid;gap:8px}
.pp-focus-row{display:flex;gap:16px;align-items:flex-start;flex-wrap:wrap}
.pp-focus-src{position:relative;max-width:300px;cursor:crosshair;border-radius:12px;overflow:hidden;border:1px solid #e7e5e4;line-height:0}
.pp-focus-src img{max-width:100%;max-height:320px;display:block}
.pp-focus-dot{position:absolute;width:26px;height:26px;margin:-13px 0 0 -13px;border-radius:50%;border:3px solid #fff;box-shadow:0 0 0 2px #0f6e56,0 2px 8px rgba(0,0,0,.4);pointer-events:none}
.pp-focus-prev{width:150px;aspect-ratio:3/4;border-radius:14px;overflow:hidden;box-shadow:0 0 0 4px #d1fae5}
.pp-focus-prev img{width:100%;height:100%;object-fit:cover;display:block}
.pp-focus-zoom{display:flex;align-items:center;gap:10px;font-size:13px;color:#57534e;max-width:460px}
.pp-focus-zoom input{flex:1;accent-color:#0f6e56}
.pr-portrait-in{display:block;width:100%;height:100%;border-radius:18px;overflow:hidden}
/* books: a lit glass shelf of 3D books — the chosen one steps forward and opens its cover */
.bk3{--bw:150px;--bh:222px;--bd:26px;display:grid;grid-template-columns:minmax(0,340px) minmax(0,1fr);gap:28px;align-items:center;padding:8px 4px;border-radius:22px;background:radial-gradient(420px 260px at 30% 70%,color-mix(in srgb,var(--k) 16%,transparent),transparent 70%),linear-gradient(160deg,#1c1410,#2a1d15 55%,#16100c);color:#f5f0e8;overflow:hidden}
.bk3-info{display:grid;gap:10px;align-content:center;padding:28px 26px 28px 0}
.bk3-kick{font-size:12.5px;font-weight:700;color:#fbbf24}
.bk3-info h3{font-size:24px;font-weight:900;line-height:1.6;color:#fff;margin:0}
.bk3-info .pr-y{justify-self:start;background:rgba(251,191,36,.15);color:#fde68a}
.bk3-info p{font-size:14px;line-height:2.05;color:#d6cfc4;text-align:justify;white-space:pre-line;display:-webkit-box;-webkit-line-clamp:6;-webkit-box-orient:vertical;overflow:hidden;margin:0;min-height:3em}
.bk3-acts{display:flex;flex-wrap:wrap;gap:8px}
.bk3-btn{display:inline-flex;align-items:center;gap:6px;padding:7px 16px;border-radius:999px;font-size:13px;font-weight:800;background:#fbbf24;color:#422006;transition:.15s}
.bk3-btn:hover{background:#fde68a}
.bk3-btn.is-ghost{background:transparent;color:#fde68a;border:1px solid rgba(253,230,138,.4)}
.bk3-btn.is-ghost:hover{background:rgba(253,230,138,.12)}
.bk3-btn[hidden]{display:none}
.bk3-nav{display:flex;align-items:center;gap:10px;margin-top:6px}
.bk3-nav button{width:42px;height:42px;border-radius:12px;border:1px solid rgba(255,255,255,.18);background:rgba(255,255,255,.06);color:#fff;font-size:18px;cursor:pointer;transition:.15s}
.bk3-nav button:hover{background:#fbbf24;color:#422006;border-color:#fbbf24}
.bk3-nav span{font-size:13px;color:#a8a29e;min-width:48px;text-align:center}
.bk3-stage{position:relative;height:380px;perspective:1300px;perspective-origin:50% 35%}
.bk3-shelf{position:absolute;left:4%;right:4%;bottom:34px;height:14px;border-radius:4px;background:linear-gradient(180deg,rgba(255,255,255,.55),rgba(167,243,208,.35) 40%,rgba(16,185,129,.25));box-shadow:0 10px 30px rgba(16,185,129,.35),0 0 60px rgba(52,211,153,.18);transform:translateZ(-20px)}
.bk3-shelf:after{content:"";position:absolute;left:0;right:0;top:100%;height:60px;background:linear-gradient(rgba(52,211,153,.12),transparent)}
.bk3-book{position:absolute;left:50%;bottom:46px;width:var(--bw);height:var(--bh);margin-left:calc(var(--bw)/-2);padding:0;border:0;background:none;cursor:pointer;transform-style:preserve-3d;transform:translate3d(var(--x,0),0,var(--z,0)) rotateY(var(--ry,0deg)) scale(var(--s,1));opacity:var(--op,1);transition:transform .8s cubic-bezier(.2,.75,.2,1),opacity .6s;z-index:var(--zi,1)}
.bk3-book>span{position:absolute;display:block}
.bk3-cover{inset:0;transform-style:preserve-3d;transform-origin:right center;transform:translateZ(calc(var(--bd)/2));transition:transform 1s cubic-bezier(.3,.7,.2,1) .15s}
.bk3-front,.bk3-inner{position:absolute;inset:0;border-radius:3px 6px 6px 3px;overflow:hidden;backface-visibility:hidden}
.bk3-front{background:linear-gradient(160deg,var(--k),color-mix(in srgb,var(--k) 50%,#000));box-shadow:inset 6px 0 10px -6px rgba(0,0,0,.5)}
.bk3-front img{width:100%;height:100%;object-fit:cover;display:block}
.bk3-front b{position:absolute;inset:18px;display:flex;align-items:center;justify-content:center;text-align:center;color:#fff;font-size:15px;line-height:1.8}
.bk3-front:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,transparent 88%,rgba(0,0,0,.28) 94%,rgba(255,255,255,.18) 96%,transparent),linear-gradient(115deg,rgba(255,255,255,.18),transparent 40%)}
.bk3-inner{transform:rotateY(180deg);background:linear-gradient(90deg,#efe7d8,#fbf7ef)}
.bk3-page{inset:4px 3px 4px 4px;transform:translateZ(calc(var(--bd)/2 - 2px));background:linear-gradient(90deg,#f3ecdf,#fffdf8 30%);border-radius:2px 4px 4px 2px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;padding:16px;text-align:center;color:#3f2a1c;box-shadow:inset -8px 0 14px -10px rgba(0,0,0,.35)}
.bk3-page small{font-size:10.5px;color:#a16207}
.bk3-page b{font-size:14px;font-weight:900;line-height:1.8}
.bk3-page i{font-style:normal;font-size:11px;color:#78716c}
.bk3-spine{top:0;right:0;width:var(--bd);height:100%;transform-origin:right center;transform:translateX(calc(var(--bd)/2)) rotateY(90deg) translateX(calc(var(--bd)/2));background:linear-gradient(90deg,color-mix(in srgb,var(--k) 65%,#000),var(--k),color-mix(in srgb,var(--k) 55%,#000))}
.bk3-edge{top:3px;left:0;width:var(--bd);height:calc(100% - 6px);transform-origin:left center;transform:translateX(calc(var(--bd)/-2)) rotateY(-90deg) translateX(calc(var(--bd)/-2));background:repeating-linear-gradient(90deg,#f5efe3 0 2px,#e3d9c6 2px 3px)}
.bk3-back{inset:0;transform:translateZ(calc(var(--bd)/-2)) rotateY(180deg);background:color-mix(in srgb,var(--k) 60%,#000);border-radius:6px 3px 3px 6px;box-shadow:0 30px 40px -10px rgba(0,0,0,.6)}
.bk3-book.is-on .bk3-cover{transform:translateZ(calc(var(--bd)/2)) rotateY(150deg)}
.bk3-book.is-on{cursor:zoom-in}
.bk3-book:focus-visible{outline:2px solid #fbbf24;outline-offset:6px}
@media (max-width:900px){.bk3{grid-template-columns:1fr;gap:0}.bk3-info{padding:20px 18px 0;order:2}.bk3-stage{height:330px;order:1}.bk3{--bw:124px;--bh:184px;--bd:22px}}
@media (prefers-reduced-motion:reduce){.bk3-book,.bk3-cover{transition:none}}
.bk3-book>.bk3-page{display:flex}
.bk3-book.is-on{--s:1.08}
.bk3-back,.bk3-spine,.bk3-edge,.bk3-page{backface-visibility:hidden}
.bk3-book{opacity:1}
.bk3-book:not(.is-on) .bk3-front:before{content:"";position:absolute;inset:0;z-index:1;background:rgba(20,12,8,.28);pointer-events:none}
.bk3-book:not(.is-on) .bk3-front{backface-visibility:visible}

/* shelf v2: books stay inside the stage and stand on the shelf line */
.bk3-stage{overflow:hidden;perspective:1400px;perspective-origin:50% calc(100% - 46px)}
.bk3-shelf{left:2%;right:2%}
.bk3-book.is-on{--s:1}
.bk3-book.is-on .bk3-cover{transform:translateZ(calc(var(--bd)/2)) rotateY(128deg)}
.bk3-inner{background:linear-gradient(90deg,#d9cdb6,#efe6d4 70%,#e4d8c2);box-shadow:inset 10px 0 18px -10px rgba(0,0,0,.35)}
.bk3-inner:after{content:"";position:absolute;inset:14px;border:1px solid rgba(120,90,50,.25);border-radius:3px}

/* shelf v3: a real hardcover — cover, page block, fore-edge, spine; the chosen book opens and its leaves turn one by one */
.bk3{--bd:30px}
.bk3-book.is-on{--s:1.12}
.bk3-book>.bk-bc,.bk3-book>.bk-tp,.bk3-book>.bk-lf,.bk3-book>.bk-cv{position:absolute}
.bk-bc{inset:0;transform:translateZ(calc(var(--bd)/-2));background:color-mix(in srgb,var(--k) 55%,#000);border-radius:6px 3px 3px 6px;box-shadow:0 26px 34px -12px rgba(0,0,0,.75)}
.bk-ed{position:absolute;left:0;top:4px;width:calc(var(--bd) - 3px);height:calc(100% - 8px);transform:translateX(calc(var(--bd)/-2 + 5px)) rotateY(-90deg);background:repeating-linear-gradient(90deg,#f7f1e4 0 1.5px,#ddd2bd 1.5px 2.5px);box-shadow:inset 0 0 6px rgba(0,0,0,.25)}
.bk-sp{position:absolute;right:0;top:0;width:var(--bd);height:100%;transform:translateX(calc(var(--bd)/2)) rotateY(90deg);background:linear-gradient(90deg,color-mix(in srgb,var(--k) 55%,#000),color-mix(in srgb,var(--k) 85%,#fff) 45%,color-mix(in srgb,var(--k) 60%,#000));border-radius:2px}
.bk-tp,.bk-lf{top:4px;bottom:4px;left:5px;right:1px;border-radius:3px 1px 1px 3px}
.bk-tp{transform:translateZ(calc(var(--bd)/2 - 8px));background:linear-gradient(270deg,#e9e1d2,#fffdf7 22%);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;padding:16px 14px;text-align:center;color:#3f2a1c}
.bk-tp small{font-size:10.5px;color:#a16207}
.bk-tp b{font-size:14px;font-weight:900;line-height:1.8}
.bk-tp i{font-style:normal;font-size:11px;color:#78716c}
.bk-lf{transform-origin:right center;transform:translateZ(calc(var(--bd)/2 - 2px - var(--i)*1.4px)) rotateY(0deg);background:linear-gradient(270deg,#e6ddcc,#fbf8f1 25%,#f4eee2);box-shadow:inset 0 0 0 1px rgba(120,100,70,.08);transition:transform .45s ease}
.bk-cv{inset:0;transform-style:preserve-3d;transform-origin:right center;transform:translateZ(calc(var(--bd)/2)) rotateY(0deg);transition:transform .6s ease}
.bk-fr,.bk-in{position:absolute;inset:0;border-radius:6px 2px 2px 6px;overflow:hidden;backface-visibility:hidden}
.bk-fr{background:linear-gradient(160deg,var(--k),color-mix(in srgb,var(--k) 50%,#000));box-shadow:0 0 0 1px rgba(0,0,0,.15)}
.bk-fr img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block}
.bk-fr b{position:absolute;inset:18px;display:flex;align-items:center;justify-content:center;text-align:center;color:#fff;font-size:15px;line-height:1.8}
.bk-fr:after{content:"";position:absolute;inset:0;background:linear-gradient(270deg,rgba(0,0,0,.35),rgba(255,255,255,.22) 3%,rgba(0,0,0,.18) 5.5%,transparent 9%),linear-gradient(-135deg,rgba(255,255,255,.3),transparent 45%)}
.bk-in{transform:rotateY(180deg);background:radial-gradient(circle at 30% 30%,rgba(255,255,255,.12) 0 2px,transparent 3px) 0 0/14px 14px,color-mix(in srgb,var(--k) 70%,#1c1410);box-shadow:inset -10px 0 16px -8px rgba(0,0,0,.5)}
.bk3-book:not(.is-on) .bk-fr:before{content:"";position:absolute;inset:0;z-index:1;background:rgba(20,12,8,.25)}
.bk3-book.is-on .bk-cv{transform:translateZ(calc(var(--bd)/2)) rotateY(172deg);transition:transform 1.1s cubic-bezier(.45,.05,.2,1) .25s}
.bk3-book.is-on .bk-lf{transform:translateZ(calc(var(--bd)/2 - 2px - var(--i)*1.4px)) rotateY(calc(164deg - var(--i)*9deg));transition:transform calc(1.1s + var(--i)*.3s) cubic-bezier(.45,.05,.2,1) calc(.55s + var(--i)*.22s);box-shadow:-6px 0 14px -6px rgba(0,0,0,.25)}
.bk3-book.is-on:hover .bk-lf:first-of-type{transform:translateZ(calc(var(--bd)/2 - 2px - 4.2px)) rotateY(118deg)}
.bk3-book:not(.is-on):hover{--s:.94}
@media (max-width:900px){.bk3{--bd:24px}}
@media (prefers-reduced-motion:reduce){.bk-cv,.bk-lf{transition:none!important}}
.bk-lf.l0{--i:0}.bk-lf.l1{--i:1}.bk-lf.l2{--i:2}.bk-lf.l3{--i:3}
.bk3-book>.bk-tp{display:flex}

/* shelf v4: a lit walnut bookcase niche — wood back panel, side walls, lamp light and a solid shelf board */
.bk3{background:radial-gradient(520px 300px at 85% 10%,rgba(251,191,36,.12),transparent 70%),linear-gradient(150deg,#1f140d,#2b1b11 50%,#170f0a);box-shadow:0 30px 60px -30px rgba(31,20,13,.7)}
.bk3-stage{margin:14px;height:400px;border-radius:14px;background:radial-gradient(55% 60% at 50% -6%,rgba(255,214,150,.45),rgba(255,190,110,.12) 45%,transparent 72%),radial-gradient(40% 30% at 50% 78%,rgba(255,200,120,.16),transparent 70%),repeating-linear-gradient(90deg,rgba(0,0,0,.07) 0 1px,transparent 1px 7px,rgba(255,255,255,.025) 7px 8px,transparent 8px 19px),linear-gradient(180deg,#3d2616,#5a3920 30%,#4a2e1a 75%,#2c1b10);box-shadow:0 0 0 10px #2a190e,0 0 0 11px rgba(255,214,150,.14),inset 0 26px 34px -14px rgba(0,0,0,.75),inset 30px 0 34px -16px rgba(0,0,0,.6),inset -30px 0 34px -16px rgba(0,0,0,.6);perspective-origin:50% calc(100% - 58px)}
.bk3-stage:before{content:"";position:absolute;top:0;left:50%;width:120px;height:6px;margin-left:-60px;border-radius:0 0 8px 8px;background:linear-gradient(#fde68a,#f59e0b);box-shadow:0 0 22px 6px rgba(253,230,138,.55);z-index:0}
.bk3-book{bottom:58px}
.bk3-shelf{left:0;right:0;bottom:30px;height:28px;transform:none;z-index:0;border-radius:0;background:linear-gradient(180deg,#7a4f2e 0,#4a2d18 30%,#5c3a21 32%,#9a6a42 36%,#7c5232 70%,#3d2414);box-shadow:0 14px 22px -6px rgba(0,0,0,.65)}
.bk3-shelf:before{content:"";position:absolute;left:3%;right:3%;bottom:100%;height:22px;background:linear-gradient(180deg,rgba(0,0,0,.35),rgba(0,0,0,0) 40%),linear-gradient(180deg,#5a3820,#8a5c38);clip-path:polygon(2% 0,98% 0,100% 100%,0 100%)}
.bk3-shelf:after{top:100%;height:30px;background:linear-gradient(#24160c,#1a1009)}
.bk3-info .bk3-kick{letter-spacing:.3px}
.bk3-info h3{background:linear-gradient(90deg,#fff7e6,#fde68a);-webkit-background-clip:text;background-clip:text;color:transparent}
@media (max-width:900px){.bk3-stage{margin:10px;height:350px}}

/* shelf v5, phones: closed books with their covers on show, arrows on the shelf, compact text */
.bk3.is-narrow .bk3-book.is-on .bk-cv{transform:translateZ(calc(var(--bd)/2)) rotateY(0deg)}
.bk3.is-narrow .bk3-book.is-on .bk-lf{transform:translateZ(calc(var(--bd)/2 - 2px - var(--i)*1.4px)) rotateY(0deg)}
.bk3.is-narrow .bk3-book.is-on{cursor:zoom-in}
.bk3.is-narrow .bk3-book:not(.is-on) .bk-fr:before{background:rgba(20,12,8,.18)}
@media (max-width:900px){
.bk3{position:relative;padding:4px 2px}
.bk3-stage{height:330px}
.bk3-info{padding:12px 16px 18px;gap:7px}
.bk3-info h3{font-size:18px;line-height:1.7}
.bk3-info p{font-size:13px;line-height:1.95;-webkit-line-clamp:3;min-height:0}
.bk3-nav{position:absolute;left:18px;right:18px;top:157px;margin:0;justify-content:space-between;pointer-events:none;z-index:30}
.bk3-nav button{pointer-events:auto;width:38px;height:38px;border-radius:50%;background:rgba(28,18,11,.55);border-color:rgba(253,230,138,.35);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px)}
.bk3-nav span{position:absolute;left:50%;top:166px;transform:translateX(-50%);min-width:0;padding:2px 10px;border-radius:999px;background:rgba(0,0,0,.35);color:#fde68a;font-size:12px}
}
@media (max-width:900px){.bk3-nav{top:298px;left:22px;right:22px}.bk3-nav span{top:10px}}
@media (max-width:900px){.bk3{--bd:32px}}
@media (max-width:900px){.bk3-stage{perspective:800px}}

/* shelf v6: hardcover boards have a visible edge that frames the page block, so a turned book reads as one solid book */
.bk-cv:before,.bk-bc:before{content:"";position:absolute;left:0;top:0;bottom:0;width:4px;transform-origin:left center;transform:rotateY(-90deg);background:color-mix(in srgb,var(--k) 55%,#000);border-radius:2px}
.bk-cv:before{transform:translateZ(-.5px) rotateY(90deg);transform-origin:left center}
.bk-ed{background:linear-gradient(90deg,rgba(0,0,0,.28),transparent 18%,transparent 82%,rgba(0,0,0,.22)),repeating-linear-gradient(0deg,#f8f3e8 0 1px,#e9e0cd 1px 2px)}
@media (max-width:900px){.bk3{--bd:24px}.bk3-stage{perspective:900px}}

/* iPhone Safari: a div (not a button) keeps its 3D children, and each book carries its own perspective */
div.bk3-book{display:block}
@media (max-width:900px){.bk3-stage{perspective:none}.bk3-book{transform:perspective(900px) translate3d(var(--x,0),0,var(--z,0)) rotateY(var(--ry,0deg)) scale(var(--s,1))}}
.bk3{isolation:isolate}
@media (max-width:900px){.bk3-nav{z-index:5}}

/* hero: justified teaser, one-line stat labels */
.pr-teaser{text-align:justify;text-align-last:right}
.pr-side .pr-stats{grid-template-columns:repeat(2,minmax(max-content,1fr))}
.pr-side .pr-stat small{white-space:nowrap}
@media (max-width:760px){.pr-side .pr-stats{grid-template-columns:1fr 1fr}.pr-side .pr-stat{padding:8px;column-gap:8px}.pr-side .pr-stat-i{width:28px;height:28px}.pr-side .pr-stat small{font-size:10.5px}}
@media (min-width:1001px){.pr-hero:has(.pr-side){grid-template-columns:210px minmax(0,1fr) auto}}
@media (max-width:1000px) and (min-width:761px){.pr-side .pr-stats{grid-template-columns:repeat(auto-fill,minmax(max-content,1fr))}}

/* real book pages (from the author's PDF) on the leaves */
.bk-lf.has-pg{transform-style:preserve-3d;background:#fbf8f1}
.bk-lf.has-pg img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;border-radius:inherit;backface-visibility:hidden;-webkit-backface-visibility:hidden}
.bk-lf.has-pg img.b{transform:rotateY(180deg)}
.bk-tp.has-pg{padding:0;overflow:hidden;background:#fbf8f1}
.bk-tp.has-pg img{width:100%;height:100%;object-fit:cover}
/* panel: PDF box only on a book row */
.pp-row:not([data-kind=book]) .pp-pdf{display:none}
.pp-pdf{margin-top:10px;display:grid;gap:8px}
.pp-pdf-pick{position:relative;display:flex;align-items:center;gap:12px;padding:12px 14px;border:2px dashed #fcd34d;border-radius:14px;background:#fffbeb;color:#92400e;cursor:pointer;transition:.15s}
.pp-pdf-pick:hover,.pp-pdf-pick.is-set{border-color:#b45309;background:#fef3c7}
.pp-pdf-pick.is-busy{opacity:.75;pointer-events:none}
.pp-pdf-pick span{display:flex;flex-direction:column;gap:2px;min-width:0}
.pp-pdf-pick b{font-size:13.5px}
.pp-pdf-pick small{font-size:11.5px;color:#a16207;line-height:1.7}
.pp-pdf-pick input{position:absolute;inset:0;opacity:0;cursor:pointer}
.pp-pdf-thumbs{display:flex;gap:6px;overflow-x:auto}
.pp-pdf-thumbs img{width:54px;height:76px;object-fit:cover;border-radius:6px;border:1px solid #e7e5e4;flex:none}
