/* One typographic and material language from the sky to the final standard. */
:root{font-family:'Syne',Arial,sans-serif;--font-display:'Cinzel',Georgia,serif;--accent:#e9b878;--ink:#080d13;--muted:#adb4bc}
body,input,textarea,button,select{font-family:'Syne',Arial,sans-serif}
h1,h2,h3{font-family:var(--font-display);font-weight:600;letter-spacing:-.025em!important}
h1 em,h2 em{font-style:normal;color:#e9b878}
.hero-copy{width:min(94%,1080px)}
.hero-copy h1{font-size:clamp(44px,6.1vw,88px);line-height:1.11;letter-spacing:-.035em!important}
.second-copy h2{font-size:clamp(39px,5vw,70px);line-height:1.13}
.third-copy h2{font-size:clamp(36px,4vw,58px);line-height:1.12}
.eyebrow,.section-caption{font-family:'Syne',Arial,sans-serif;font-size:14px;font-weight:600;letter-spacing:.15em}
.header nav a{font-family:'Syne',Arial,sans-serif;font-weight:600}
.header-launch,.button,.view-collection{font-family:'Syne',Arial,sans-serif;font-weight:700}
.allegiance-world{position:relative;isolation:isolate;background:radial-gradient(ellipse at 17% 23%,#26334850,transparent 43%),radial-gradient(ellipse at 86% 64%,#60442620,transparent 42%),#080d13}
.allegiance-world .section-wrap{max-width:none;width:100%;padding-left:max(6vw,calc((100vw - 1360px)/2));padding-right:max(6vw,calc((100vw - 1360px)/2));border:0;background:transparent}
.belief{min-height:1010px;padding-top:85px!important;padding-bottom:100px!important;overflow:hidden}
.belief>.section-caption{margin-bottom:0;color:#c6b69a}
.standard-art{position:absolute;z-index:-1;width:min(52vw,620px);left:4%;top:75px;transform:translateY(calc((.5 - var(--section-progress,.5))*100px));pointer-events:none}
.standard-art>img{display:block;width:100%;height:auto;image-rendering:pixelated}
.standard-art.cloth-ready>img{visibility:hidden}
.standard-art .cloth-canvas{position:absolute;inset:0;width:100%;height:100%}
.belief-content{position:relative;display:grid;grid-template-columns:1.1fr 1fr;align-items:center;gap:7%;padding-top:0;background:none;min-height:850px}
.belief h2{font-size:clamp(36px,4.2vw,64px);line-height:1.15;text-align:center;text-shadow:0 3px 20px #000;margin:260px -6% 0;align-self:center}
.belief h2 .principle-muted{color:#d4b38c}
.belief-right{padding:0;max-width:510px}
.belief-right>p:first-child{font-size:clamp(20px,2vw,28px);line-height:1.5;color:#ece7dc}
.fee-panel{padding:28px 0!important;background:transparent!important;border:0!important;box-shadow:none!important;border-top:1px solid #bca27440!important;border-bottom:1px solid #bca27440!important;border-radius:0!important}
.fee-panel:after{display:none!important}
.fee-split strong{font-family:'Cinzel',Georgia,serif;font-weight:500;color:#e9b878}
.split-track{height:3px;background:#e9b87825}.split-track span{background:#e9b878;box-shadow:none;animation:none}
.belief-right .fine-copy{font-size:16px;line-height:1.8;color:#b2b8bd}.belief-right .text-link{color:#f0cca0}
.collection-teaser{padding-top:40px!important;padding-bottom:65px!important;overflow:hidden}
.collection-heading{align-items:end;margin-top:60px;margin-bottom:30px;gap:40px}
.collection-heading h2{font-size:clamp(44px,5.8vw,82px);line-height:1.13}
.collection-heading p{font-size:18px;line-height:1.6;max-width:260px;color:#b4bcc4}
.view-collection{background:#e9b878;color:#0b1017;min-height:48px;font-size:14px}
.collection-tools .marquee-toggle{font-size:14px;background:transparent;border-color:#bca27455;color:#d7c9b3}
.marquee-window{padding-top:25px;padding-bottom:25px;touch-action:pan-y pinch-zoom}
.marquee-group{gap:24px;padding-right:24px;align-items:flex-start}
.teaser-grid.marquee-track{animation-duration:85s;align-items:flex-start}
.teaser-grid.marquee-track .banner-card{width:clamp(225px,24vw,340px);flex-basis:clamp(225px,24vw,340px)}
.banner-card,.banner-card:hover,.banner-card:focus-visible{padding:0;border:0;border-radius:0;background:transparent;box-shadow:none;overflow:visible;transform:none}
.banner-card .nft-art{position:relative;width:100%;aspect-ratio:2/3.3;background:transparent;border:0;overflow:visible;flex:none}
.banner-card .nft-art:before,.banner-card .nft-art:after{display:none}
.banner-card .nft-art>img{position:absolute;width:65%;height:auto;left:17.5%;top:24%;object-fit:contain;image-rendering:pixelated;transform:none!important}
.banner-card .nft-art.cloth-ready>img{visibility:hidden}
.banner-card .cloth-canvas{position:absolute;inset:0;width:100%;height:100%;object-fit:contain}
.banner-card .nft-meta{border:0;min-height:60px;display:flex;flex-direction:column;justify-content:center;padding:10px 4px;gap:6px;text-align:center}
.banner-card .nft-meta strong{font-family:'Cinzel',Georgia,serif;font-size:18px;font-weight:500;color:#eee3ce;white-space:normal}
.banner-card .nft-inspect{font-size:13px;letter-spacing:.06em;color:#a89983}
.banner-card:hover .nft-meta strong,.banner-card:focus-visible .nft-meta strong{color:#f1c582}
.banner-card:hover .cloth-canvas{filter:brightness(1.12)}
.banner-card.banner-fallback .nft-art{background:url('assets/cult-banner-blank.png') center/contain no-repeat}
.collection-grid{gap:40px 24px}.collection-grid .banner-card{max-width:360px}
.allegiance-world .reveal{opacity:1!important;transform:translateY(36px);clip-path:inset(0 0 100% 0);transition:transform 1s cubic-bezier(.16,1,.3,1),clip-path 1s cubic-bezier(.16,1,.3,1);transition-delay:calc(var(--reveal-order,0)*90ms)}
.allegiance-world .reveal.visible{transform:translateY(0);clip-path:inset(0 0 0 0)}
.banner-card.reveal-card{opacity:1;transform:none;clip-path:inset(0 0 100% 0);transition:clip-path 1s cubic-bezier(.16,1,.3,1)}
.banner-card.reveal-card.visible{clip-path:inset(0)}
.closing{position:relative;isolation:isolate;min-height:600px;display:flex;align-items:center;justify-content:center;flex-direction:column;padding-top:100px!important;padding-bottom:130px!important;text-align:center}
.closing-standard{position:absolute;z-index:-1;inset:0;display:flex;align-items:center;justify-content:center;opacity:.065;transform:translateY(calc((.5 - var(--section-progress,.5))*65px));pointer-events:none}
.closing-standard img{width:min(84%,1000px);height:auto;image-rendering:pixelated}
.closing h2{font-size:clamp(46px,6vw,88px);line-height:1.1;margin:25px 0 36px}
.closing .eyebrow{color:#c5b296}.closing .button{background:#e9b878}
.footer{border-top:1px solid #c3a37425;background:#080d13}
.page-intro h1{font-size:clamp(40px,5vw,72px);line-height:1.16}.page-intro p{line-height:1.7}
.motion-paused .marquee-track{animation-play-state:paused!important}
@media(max-width:900px){
 .belief{min-height:920px}.standard-art{width:66vw;left:-7%}.belief-content{gap:6%;grid-template-columns:1fr 1fr;padding-top:160px}.belief h2{font-size:clamp(30px,4.4vw,46px)}
 .collection-heading{margin-top:40px}.collection-heading h2{font-size:50px}
}
@media(max-width:700px){
 .hero-copy{top:45%;width:94%}.hero-copy h1{font-size:clamp(34px,8.8vw,52px);line-height:1.16}.hero-copy .eyebrow{font-size:12px;letter-spacing:.12em}
 .second-copy h2{font-size:clamp(31px,7.6vw,43px);line-height:1.2}.third-copy h2{font-size:clamp(30px,7.6vw,43px)}
 .allegiance-world .section-wrap{padding-left:22px;padding-right:22px}
 .belief{padding-top:45px!important;min-height:0;padding-bottom:70px!important}
 .section-caption{font-size:11px;letter-spacing:.08em;gap:12px}.belief .section-caption>span:last-child{display:none}
 .standard-art{width:min(108vw,520px);left:50%;top:70px;transform:translate(-50%,calc((.5 - var(--section-progress,.5))*40px))}
 .belief-content{display:flex;flex-direction:column;gap:90px;padding-top:0;min-height:0}
 .belief h2{margin:300px 0 0;min-height:180px;font-size:clamp(34px,8.3vw,48px);line-height:1.18;display:flex;flex-direction:column;justify-content:center;align-self:center}
 .belief-right{width:100%;max-width:510px}.belief-right>p:first-child{font-size:22px}.fee-panel{margin-top:25px}
 .collection-teaser{padding-top:20px!important}.collection-heading{display:block;margin-top:42px}.collection-heading h2{font-size:clamp(38px,10vw,54px)}.collection-heading p{margin-top:18px;font-size:17px}
 .collection-tools{gap:8px}.view-collection{font-size:12px;padding:0 13px}.collection-tools .marquee-toggle{font-size:12px;padding:0 9px}
 .teaser-grid.marquee-track .banner-card{width:245px;flex-basis:245px}.marquee-group{gap:10px;padding-right:10px}.marquee-window{width:calc(100% + 44px);margin-left:-22px;padding-top:0}
 .banner-card .nft-meta strong{font-size:16px}.collection-grid{gap:25px 12px}.collection-grid .banner-card .nft-meta strong{font-size:14px}
 .closing{min-height:430px;padding-top:65px!important;padding-bottom:85px!important}.closing h2{font-size:clamp(37px,9.8vw,55px)}.closing .eyebrow{font-size:12px}
 .page-intro h1{font-size:clamp(32px,8.5vw,47px)}
}
@media(prefers-reduced-motion:reduce){
 .standard-art,.closing-standard{transform:none}.standard-art{left:2%}
 .allegiance-world .reveal,.banner-card.reveal-card{clip-path:none!important;transform:none!important;transition:none!important}
 .marquee-window{overflow-x:auto;touch-action:pan-x pan-y}
}
@media(max-width:700px) and (prefers-reduced-motion:reduce){.standard-art{left:50%;transform:translateX(-50%)}}

/* Content is visible by default. Intersection observers only add small movement. */
.allegiance-world .reveal,.allegiance-world .reveal.visible{opacity:1!important;visibility:visible!important;filter:none!important;clip-path:none!important;transform:none;transition:none}
.belief h2 .principle-line>span{transform:none!important}
.fee-panel .fee-split strong{transform:none!important;opacity:1!important}
.banner-card.reveal-card,.banner-card.reveal-card.visible{clip-path:none!important;opacity:1!important;filter:none!important;transform:none}
.belief{min-height:0;padding-top:85px!important;padding-bottom:85px!important}
.belief-content{min-height:0;padding-top:48px;display:grid;grid-template-columns:1fr 1fr;gap:8%;align-items:start}
.belief h2{margin:0;text-align:left;align-self:start;font-size:clamp(36px,4.4vw,64px);line-height:1.2;text-shadow:none}
.belief-right{max-width:none}.belief-right>p:first-child{margin-top:0;font-size:22px;line-height:1.6}
.fee-panel{margin:26px 0!important;padding:24px 0!important}
.fee-split{grid-template-columns:1fr 1fr;gap:24px}.fee-split strong{font-size:64px;letter-spacing:-.035em}.fee-split>div>span{font-size:14px}
.belief-right p.fine-copy{font-size:16px;line-height:1.8;margin-bottom:22px}
.collection-teaser{padding-top:45px!important}.collection-heading{margin-top:38px;margin-bottom:24px}
.closing{display:grid;grid-template-columns:minmax(180px,.8fr) minmax(0,1.2fr);grid-template-rows:auto auto auto;column-gap:8%;row-gap:0;align-content:center;align-items:start;justify-items:start;text-align:left;min-height:540px;padding-top:70px!important;padding-bottom:90px!important}
.closing .standard-art{position:relative;grid-column:1;grid-row:1/4;align-self:center;justify-self:center;width:min(100%,280px);left:auto;top:auto;z-index:0;transform:translateY(calc((.5 - var(--section-progress,.5))*24px))}
.closing>.eyebrow{grid-column:2;grid-row:1;align-self:end;margin-top:70px}
.closing>h2{grid-column:2;grid-row:2;margin:20px 0 28px;font-size:clamp(38px,5vw,72px)}
.closing>.button{grid-column:2;grid-row:3;align-self:start;margin-bottom:70px}
@media(prefers-reduced-motion:no-preference){
 .allegiance-world .reveal{transform:translateY(18px);transition:transform .7s cubic-bezier(.2,.7,.2,1)}
 .allegiance-world .reveal.visible{transform:translateY(0)}
}
@media(max-width:700px){
 .belief{padding-top:48px!important;padding-bottom:55px!important}
 .belief-content{display:grid;grid-template-columns:1fr;min-height:0;gap:32px;padding-top:32px}
 .belief h2{margin:0;min-height:0;display:block;align-self:start;font-size:clamp(33px,8.5vw,47px);text-align:left;line-height:1.2}
 .belief-right>p:first-child{font-size:20px}.fee-split strong{font-size:52px}.fee-split>div>span{font-size:12px}.belief-right p.fine-copy{font-size:16px}
 .collection-heading{margin-top:30px}.collection-teaser{padding-top:25px!important}
 .closing{grid-template-columns:1fr;grid-template-rows:auto auto auto auto;justify-items:center;text-align:center;min-height:0;padding-top:35px!important;padding-bottom:70px!important;gap:0}
 .closing .standard-art{grid-column:1;grid-row:1;width:185px;left:auto;top:auto;transform:none;margin-bottom:28px}
 .closing>.eyebrow{grid-column:1;grid-row:2;margin:0}.closing>h2{grid-column:1;grid-row:3;font-size:clamp(33px,9vw,47px);margin:20px 0 26px}.closing>.button{grid-column:1;grid-row:4;margin:0}
}
@media(prefers-reduced-motion:reduce){.closing .standard-art{transform:none}}

/* Original portrait marquee; ceremonial banner is reserved for the final CTA. */
.teaser-grid.marquee-track{animation-duration:56s}
.teaser-grid.marquee-track .nft-card{width:clamp(178px,20.5vw,252px);flex-basis:clamp(178px,20.5vw,252px)}
.marquee-group{gap:18px;padding-right:18px}
.allegiance-world .reveal-card,.allegiance-world .reveal-card.visible{opacity:1;filter:none;transform:none;clip-path:none}
.collection-grid .reveal-card{opacity:1;filter:none;transform:none}
.principle-visual{min-width:0}.principle-visual h2{margin:0;text-align:left}
.principle-relic{margin:28px -3% 0;transform:translateY(calc((.5 - var(--section-progress,.5))*32px));will-change:transform}
.principle-relic img{display:block;width:100%;height:auto;image-rendering:pixelated;animation:relicLight 7s ease-in-out infinite alternate}
.belief-content{align-items:center}.belief-right{padding-bottom:10px}
@keyframes relicLight{from{filter:brightness(.95)}to{filter:brightness(1.08)}}
.motion-paused .principle-relic img{animation-play-state:paused}
@media(max-width:700px){
 .teaser-grid.marquee-track .nft-card{width:clamp(170px,61vw,225px);flex-basis:clamp(170px,61vw,225px)}
 .marquee-group{gap:12px;padding-right:12px}.teaser-grid.marquee-track{animation-duration:50s}
 .principle-relic{margin:24px auto 0;max-width:420px;transform:none}.belief-content{gap:28px}
}
@media(prefers-reduced-motion:reduce){.principle-relic{transform:none;will-change:auto}.principle-relic img{animation:none}}
/* The gathering is a full-width illustrated chapter between campfire and portraits. */
.allegiance-world{background:#080d13}
.belief{padding-top:36px!important;padding-bottom:70px!important;overflow:hidden}
.belief>.section-caption{position:relative;z-index:2}
.gathering-scene{position:relative;isolation:isolate;width:100vw;margin:8px calc(50% - 50vw) 0;height:clamp(620px,66.67vw,1024px);overflow:hidden;background:#080d13}
.gathering-art{position:absolute;inset:0;transform:scale(calc(1.075 - var(--gather-progress,0)*.075));transform-origin:50% 66%;will-change:transform;mask-image:linear-gradient(180deg,transparent,#000 16%,#000 80%,transparent 100%)}
.gathering-art>img{display:block;width:100%;height:100%;object-fit:cover;object-position:50% 50%;image-rendering:pixelated}
.gathering-light{position:absolute;inset:0;background:radial-gradient(ellipse at 50% 65%,#59ffae35,transparent 32%);mix-blend-mode:screen;animation:gatheringGlow 4s ease-in-out infinite alternate}
#gathering-sparks{position:absolute;inset:0;width:100%;height:100%;image-rendering:pixelated;pointer-events:none}
.gathering-copy{position:absolute;z-index:1;left:5%;right:5%;top:6%;text-align:center}
.belief .gathering-copy h2{margin:0;min-height:0;display:block;text-align:center;font-size:clamp(35px,4.1vw,63px);line-height:1.2;text-shadow:0 3px 20px #000}
.gathering-copy h2>span{display:inline-block}.gathering-copy h2 em{display:block;margin-top:8px;color:#e9b878}
.gathering-rules{position:relative;margin-top:-25px;z-index:2}
.gathering-rules .belief-right{display:grid;grid-template-columns:1fr 1fr;column-gap:8%;row-gap:12px;padding-bottom:0;max-width:1160px;margin:auto}
.gathering-rules .belief-right>p:first-child{grid-column:1;grid-row:1;margin:0 0 12px;font-size:24px}
.gathering-rules .fee-panel{grid-column:2;grid-row:1/4;align-self:center;margin:0!important;padding:30px 0!important}
.gathering-rules .fine-copy{grid-column:1;grid-row:2;margin:0!important}
.gathering-rules .text-link{grid-column:1;grid-row:3;justify-self:start;margin-top:10px}
.gathering-rules .fee-split strong{font-size:clamp(64px,6vw,88px)}
@keyframes gatheringGlow{from{opacity:.3}to{opacity:.85}}
.motion-paused .gathering-light{animation-play-state:paused}
@media(max-width:700px){
 .belief{padding-top:22px!important;padding-bottom:45px!important}
 .gathering-scene{height:620px;margin-top:0}.gathering-art{left:50%;right:auto;width:930px;margin-left:-465px}
 .gathering-copy{top:35px;left:16px;right:16px}.belief .gathering-copy h2{font-size:clamp(29px,7.8vw,40px);line-height:1.15}.gathering-copy h2>span{display:block}.gathering-copy h2 em{margin-top:6px}
 .gathering-rules{margin-top:-10px}.gathering-rules .belief-right{display:flex;flex-direction:column;gap:20px}
 .gathering-rules .belief-right>p:first-child{font-size:21px;margin:0}.gathering-rules .fee-panel{width:100%;padding:24px 0!important}.gathering-rules .fee-split strong{font-size:64px}.gathering-rules .text-link{align-self:flex-start;margin-top:0}
}
@media(prefers-reduced-motion:reduce){.gathering-art{transform:none;will-change:auto}.gathering-light{animation:none;opacity:.35}#gathering-sparks{display:none}}

/* Pump gathering: readable sky overlay with independent scroll depth. */
.gathering-copy{transform:translateY(calc((.5 - var(--gather-progress,.5))*24px))}
.belief .gathering-copy h2{text-shadow:0 2px 4px #080d13,0 8px 30px #080d13}
.gathering-copy h2 em{color:#bce9cd}
@media(prefers-reduced-motion:reduce){.gathering-copy{transform:none}}

/* Descend beneath the campfire into a shared rock ceiling. */
.allegiance-world{position:relative;z-index:2;margin-top:-16svh;background:transparent}
.belief{padding-top:0!important;position:relative;background:transparent}
.belief>.section-caption{position:absolute;top:16svh;left:0;right:0;padding:0 6%;z-index:4}
.gathering-scene{margin-top:0;height:clamp(720px,74vw,1136px);background:transparent}
.gathering-art{transform:translateY(calc((.5 - var(--gather-progress,0))*22px)) scale(calc(1.065 - var(--gather-progress,0)*.065));mask-image:linear-gradient(180deg,transparent,#000 10%,#000 84%,transparent 100%)}
.gathering-art>img{object-fit:fill}
.gathering-copy{top:23%;z-index:3}
.gathering-light{background:radial-gradient(ellipse at 50% 69%,#59ffae40,transparent 22%)}
.altar-pill{position:absolute;left:50%;top:63%;width:9%;aspect-ratio:1;transform:translate(-50%,-50%);pointer-events:none;z-index:2}
.altar-pill img{width:100%;height:100%;object-fit:contain;image-rendering:pixelated;animation:altarHover 4.8s ease-in-out infinite;filter:drop-shadow(0 0 10px #66ffb060)}
@keyframes altarHover{0%,100%{transform:translateY(4px)}50%{transform:translateY(-10px)}}
#gathering-atmosphere{position:absolute;inset:0;width:100%;height:100%;image-rendering:pixelated;pointer-events:none}
#gathering-sparks{z-index:3}
.gathering-rules,.collection-teaser,.closing{background:#080d13}
.gathering-rules{margin-top:-45px;padding-top:20px}
.motion-paused .altar-pill img{animation-play-state:paused}
@media(max-width:700px){
 .allegiance-world{margin-top:-80px}
 .belief>.section-caption{top:94px;font-size:11px}
 .gathering-scene{height:730px}
 .gathering-art{width:850px;margin-left:-425px}
 .gathering-copy{top:145px}
 .altar-pill{width:10%}
}
@media(prefers-reduced-motion:reduce){.gathering-art,.gathering-copy{transform:none}.altar-pill img{animation:none}#gathering-atmosphere{display:none}}

/* Preserve the full eight-character composition at every viewport width. */
.gathering-scene{height:clamp(620px,66.667vw,1024px)}
.gathering-copy{top:20%}
.altar-pill{top:61%;width:13%}
@media(max-width:700px){
 .gathering-scene{height:calc(250px + 66.667vw);min-height:490px;background:linear-gradient(180deg,transparent,#080d13 90px)}
 .gathering-art{top:auto;bottom:0;left:0;right:0;width:100%;height:auto;aspect-ratio:1.5;margin-left:0;transform:none}
 .gathering-copy{top:130px;transform:none}
 .gathering-art{mask-image:linear-gradient(180deg,transparent,#000 30%,#000 86%,transparent)}
 .altar-pill{width:14%}
 .gathering-rules{margin-top:0;padding-top:12px}
}

.altar-shadow{position:absolute;left:43%;top:69%;width:14%;height:3%;border-radius:50%;background:radial-gradient(ellipse,#06150ca6,transparent 70%);animation:altarShadow 4.8s ease-in-out infinite}
@keyframes altarShadow{0%,100%{transform:scaleX(.85);opacity:.8}50%{transform:scaleX(1.1);opacity:.4}}
.motion-paused .altar-shadow{animation-play-state:paused}
@media(min-width:701px){.gathering-art{transform:translateY(calc((.5 - var(--gather-progress,0))*22px)) scale(calc(.98 + var(--gather-progress,0)*.02))}}
@media(prefers-reduced-motion:reduce){.gathering-art{transform:none}.altar-shadow{animation:none}}
