/* Shared frame for hooks with controls; no separate explanation/splash page. */
@font-face{font-family:ClausSans;src:url('/assets/bricolage-grotesque-latin.woff2') format('woff2');font-weight:100 1000;font-display:swap}
.hook-module{font-family:ClausSans,Arial,sans-serif;font-size:17px}
.hook-module button,.hook-module input,.hook-module select{font:inherit}
.hook-module a,.hook-module .text-button{text-decoration:none}
.hook-module a:hover,.hook-module .text-button:hover{text-decoration:underline;text-decoration-thickness:2px;text-underline-offset:4px}
.hook-module{width:100%;max-width:1080px;margin:0 auto;padding:24px 32px 40px}
.hook-module main{width:100%;min-width:0}
.hook-module>header{margin:0 0 24px;display:flex;align-items:center;justify-content:space-between;gap:20px}
.hook-module h1{text-align:center;font-size:clamp(30px,4vw,42px);line-height:1.15;letter-spacing:-.03em;margin:0 0 18px}
.hook-module .module-intro{max-width:680px;margin:0 auto 28px;font-size:17px;line-height:1.6;text-align:center;text-wrap:balance}
.hook-module .module-intro p{font-size:inherit;line-height:inherit}
.hook-module .module-intro p+p{margin-top:12px}
.hook-module .nft-characters{width:min(100%,490px);margin:0 auto 16px}
.hook-module .nft-stats{margin:28px auto}
.hook-module .hero{grid-template-columns:minmax(0,1fr) 190px;padding:0 0 26px;gap:0 32px}
.hook-module .hero h1{text-align:start}
.hook-module .hero .intro{font-size:20px;line-height:1.5}
.hook-module .hero .pool-rule{font-size:16px}
.hook-module .how{margin-top:32px}
.hook-module .arena-heading{justify-content:center}
.hook-module .hook-explainer{margin:20px auto}
.hook-module footer{display:flex;justify-content:center;flex-wrap:wrap;gap:12px 24px;font-size:15px}
@media(max-width:700px){
 .hook-module{padding:16px 22px 30px}
 .hook-module>header{margin-bottom:22px;gap:12px}
 .hook-module .module-intro{font-size:16px;margin-bottom:22px}
 .hook-module .hero{display:flex;flex-direction:column;align-items:center;text-align:center;gap:12px}
 .hook-module .hero h1{text-align:center;margin:0}
 .hook-module .hero .prediction-art{width:130px;order:-1}
 .hook-module .hero .intro{font-size:18px}
 .hook-module .hero .pool-rule{margin:0}
}

.module-details{max-width:680px;margin:32px auto 0;font-size:17px;line-height:1.6}
.module-details summary{width:fit-content;margin:auto;cursor:pointer;font-weight:500;min-height:44px;display:flex;align-items:center;gap:10px;list-style:none}
.module-details summary::-webkit-details-marker{display:none}
.module-details summary::after{content:'+';font-size:22px;font-weight:400}
.module-details[open] summary::after{content:'−'}
.module-details p{margin:14px 0;text-wrap:pretty}
.module-details p:last-child a{display:inline-block;margin:0 16px 0 0;min-height:44px;align-content:center}
@media(min-width:701px){.hook-module .nft-grid{grid-template-columns:repeat(auto-fit,minmax(210px,236px));justify-content:center}}

/* Privacy uses the shared frame while preserving its deposit/recovery controls. */
.hook-module.privacy-page>.privacy-header{padding:0;max-width:none}
.hook-module.privacy-page>.privacy-main{padding:0;max-width:none;justify-content:flex-start}
.hook-module .privacy-layout{gap:32px;align-items:start}
.hook-module .privacy-character{width:min(100%,240px)}
.hook-module .privacy-title h1{font-size:clamp(30px,4vw,42px)}
.hook-module .privacy-intro{max-width:410px;font-size:17px;line-height:1.6}
.hook-module .privacy-title p{font:inherit}
.hook-module .purchase{padding-top:18px}
.hook-module .privacy-main>footer{margin-top:32px}
.hook-module .privacy-details{font-size:16px;line-height:1.6}
@media(max-width:700px){.hook-module .privacy-layout{grid-template-columns:1fr;gap:24px}.hook-module .privacy-character{width:150px}.hook-module .privacy-intro{max-width:100%}.hook-module .purchase{padding-top:0}.hook-module .privacy-title p{font-size:16px}}
.hook-module h1{font-weight:550}
.hook-module .how details.module-details{max-width:680px;margin:24px auto 0}
.hook-module .how details.module-details>summary{display:flex;text-decoration:none}
.hook-module .hero>h1{grid-column:1/-1;text-align:center}
.hook-module .hero>.prediction-art{grid-row:2/span 3;width:min(100%,165px);justify-self:center}
.hook-module .module-details>summary:hover{text-decoration:underline;text-underline-offset:4px}

/* Collection totals share the hook pages' result-first typography. */
.hook-module .nft-stats{max-width:100%;gap:28px 20px;margin:32px auto 28px}
.hook-module .nft-stat strong{font-size:clamp(34px,4.4vw,56px);font-weight:600;line-height:1.1;letter-spacing:0;min-height:1.1em}
.hook-module .nft-stat span{font-size:15px;line-height:1.4;margin-top:9px}
.hook-module .nft-navigation{justify-content:center;margin-top:24px}
.hook-module .nft-tabs{gap:28px}
.hook-module #panel-mint{text-align:center}
.hook-module #mint-description{max-width:530px;margin:0 auto 20px;font-size:16px;line-height:1.6}
.hook-module .nft-panel{padding-top:22px}
@media(max-width:700px){
 .hook-module .nft-stats{grid-template-columns:repeat(2,minmax(0,1fr));gap:24px 16px}
 .hook-module .nft-stat strong{font-size:clamp(29px,7.4vw,48px)}
 .hook-module .nft-stat:last-child strong{font-size:clamp(42px,11vw,58px)}
 .hook-module .nft-tabs{gap:20px}
 .hook-module .nft-tabs button,.hook-module .nft-opensea{font-size:17px}
}

/* Explanatory copy shares a centered axis; controls keep their own alignment. */
.hook-module .module-intro p,.hook-module .module-details>p{margin-inline:auto;text-align:center;text-wrap:balance}
.hook-module .module-details>h2,.hook-module .module-details>h3{text-align:center}
.hook-module .module-details p:last-child a{margin-inline:8px}
.hook-module .privacy-intro,.hook-module .hero .intro,.hook-module .hero .pool-rule,.hook-module .hero .current-cap{margin-inline:auto;text-align:center;text-wrap:balance}
.hook-module :is(.market-card h2,.amount-field input,.review-row strong,.current-cap strong){letter-spacing:0;font-variant-numeric:lining-nums tabular-nums}
.hook-module .nft-stat{min-width:0}
.hook-module .nft-stat strong{font-variant-numeric:lining-nums tabular-nums}
.hook-module :is(.nft-empty,.nft-status){margin-inline:auto;text-align:center;text-wrap:balance}
@media(max-width:500px){
 .hook-module .nft-stats{grid-template-columns:1fr;gap:24px}
 .hook-module .nft-stat strong,.hook-module .nft-stat:last-child strong{font-size:clamp(40px,11vw,52px)}
}
