/* V17 homepage: quicker editorial rhythm and interactive chapters.
   Underlying design system, gradients, SVG drawings and site-wide templates stay intact. */

/* Remove the dead space before the chart without compromising the headline. */
.home-hero.hero {
  min-height: 0;
  padding-top: clamp(126px, 12vw, 178px);
  padding-bottom: clamp(20px, 3vw, 48px);
}
.home-hero .hero-copy { max-width: 1160px; }
.chart-section {
  padding-top: 4px;
  padding-bottom: clamp(30px, 5vw, 72px);
}
.chart-section .lifecycle-chart-card { max-width: 1160px; margin-inline: auto; }
.chart-section .hero-chart { max-height: min(57vh, 480px); }
.chart-section .chart-explainer { margin-top: 12px; }
.chart-section .chart-scroll { margin-top: 14px; }
.proof-strip { padding-top: 30px; padding-bottom: 52px; }
.proof-strip > p { margin-bottom: 18px; }

/* Problem and constraints now form one act. The complete permission matrix is still
   in the initial HTML and can be opened using a native, keyboard-friendly detail. */
.problem-section { padding-top: clamp(86px, 9vw, 128px); padding-bottom: clamp(75px, 7vw, 108px); }
.problem-editorial { margin-top: 56px; gap: clamp(22px, 3vw, 54px); }
.problem-point { min-height: 195px; padding-bottom: 18px; }
.problem-point-two { margin-top: 36px; }
.problem-point-three { margin-top: 8px; }
.problem-index { font-size: clamp(47px, 5.5vw, 74px); margin-bottom: 25px; }
.problem-point p { font-size: clamp(15px, 1.15vw, 18px); line-height: 1.62; }
.problem-section .bridge-line { margin-top: 35px; }
.constraint-intro { margin-top: 54px; padding-top: 24px; border-top: 1px solid rgba(216,173,89,.18); }
.constraint-teaser { display:grid; grid-template-columns:60px 1fr; gap:23px; align-items:center; max-width:980px; }
.constraint-teaser .eyebrow { margin-bottom:10px; }
.constraint-teaser h3 { margin:0; font:500 clamp(27px,3.6vw,47px)/1.15 Manrope, sans-serif; letter-spacing:-.045em; color:#f0ecdf; }
.constraint-teaser p:last-child { margin:11px 0 0; color:#b8b1a5; font-size:16px; line-height:1.6; }
.proof-symbol { width:54px; height:54px; border:1px solid rgba(216,173,89,.35); border-radius:50%; display:grid; place-items:center; color:#d8ad59; font-size:24px; box-shadow:0 0 35px rgba(216,173,89,.06); }
.constraint-disclosure { margin-top:24px; border-top:1px solid rgba(240,236,223,.12); border-bottom:1px solid rgba(240,236,223,.12); }
.constraint-disclosure summary { list-style:none; min-height:70px; cursor:pointer; display:flex; align-items:center; justify-content:space-between; gap:12px; color:#f0d590; font-size:14px; font-weight:600; }
.constraint-disclosure summary::-webkit-details-marker { display:none; }
.constraint-disclosure summary:focus-visible { outline:2px solid var(--gold); outline-offset:4px; }
.constraint-disclosure summary .disclosure-sign { display:grid; place-items:center; width:28px; height:28px; border-radius:50%; border:1px solid rgba(216,173,89,.35); font-size:18px; transition:transform .3s ease; }
.constraint-disclosure[open] summary .disclosure-sign { transform:rotate(45deg); }
.constraint-disclosure-content { padding:12px 0 36px; }
.constraint-disclosure .constraint-table { margin-top:0; }
.constraint-disclosure .constraint-note { color:#b8b1a5; }

/* Four large successive chapters become a single interactive visual studio. */
.lifecycle-studio { border-top:1px solid rgba(240,236,223,.11); padding-top:0; }
.lifecycle-studio .lifecycle-heading { padding-top:clamp(84px,9vw,125px); padding-bottom:36px; }
.lifecycle-studio .lifecycle-heading h2 { max-width:1000px; }
.lifecycle-hint { max-width:640px; margin:19px 0 0; color:#ada79b; font-size:16px; line-height:1.65; }
.studio-shell { border-top:1px solid rgba(216,173,89,.18); }
.studio-nav { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); border-bottom:1px solid rgba(240,236,223,.11); }
.story-tab { position:relative; padding:22px 18px 23px; min-width:0; border:0; border-left:1px solid rgba(240,236,223,.085); background:transparent; color:#878276; text-align:left; display:flex; flex-direction:column; gap:7px; cursor:pointer; transition:background .3s ease,color .3s ease; font-family:Manrope, sans-serif; }
.story-tab:first-child { border-left:0; }
.story-tab::after { content:""; position:absolute; height:2px; left:0; bottom:-1px; right:0; background:#d8ad59; transform:scaleX(0); transform-origin:0 50%; transition:transform .32s ease; }
.story-tab:hover,.story-tab.is-active { background:rgba(216,173,89,.042); color:#f0ecdf; }
.story-tab.is-active::after { transform:scaleX(1); }
.story-tab:focus-visible { outline:2px solid #d8ad59; outline-offset:-3px; }
.story-tab-no { color:#bd9752; font-size:12px; letter-spacing:.15em; }
.story-tab-name { font-size:clamp(18px,2vw,25px); letter-spacing:-.035em; font-weight:500; }
.story-tab-desc { color:#878074; font-size:12px; line-height:1.4; }
.studio-panels { min-height:0; position:relative; }
.story-stage { display:grid; grid-template-columns:.82fr 1.18fr; align-items:center; gap:clamp(36px,5vw,75px); padding:clamp(38px,5vw,78px) 0; animation:stageEnter .42s ease both; }
.story-stage[hidden] { display:none !important; }
.story-stage .section-copy { min-width:0; max-width:580px; }
.story-stage .section-copy h2 { font:500 clamp(36px,4.3vw,62px)/1.05 Manrope,sans-serif; letter-spacing:-.054em; margin:0; }
.story-stage .section-copy > p:not(.eyebrow) { font-size:clamp(15px,1.13vw,17px); line-height:1.72; }
.story-stage .feature-visual { min-width:0; }
.story-stage .visual-panel { box-shadow:0 20px 70px rgba(0,0,0,.22); }
.story-stage .trade-adapt-panel { max-height: min(590px, 67vh); overflow:auto; scrollbar-width:thin; scrollbar-color:#6c5834 transparent; }
.story-stage .trade-adapt-panel .trade-state { padding-bottom:14px; }
.story-stage .trade-adapt-panel .growth-columns article { max-height:225px; }
.story-stage .trade-adapt-panel .depth-bar { height:105px; }
.story-stage .trade-adapt-panel .adapt-state { padding-top:19px; }
.story-stage .trade-adapt-panel .mint-steps span { min-height:64px; }
.story-stage .trade-adapt-panel .panel-head { margin-bottom:14px; }
.studio-footer { display:flex; justify-content:space-between; align-items:center; padding:12px 0 21px; border-top:1px solid rgba(240,236,223,.08); }
.studio-counter { display:flex; align-items:baseline; gap:5px; font-size:12px; letter-spacing:.1em; color:#766f65; }
.studio-counter b { color:#e5c37e; font-size:23px; font-weight:500; }
.studio-nav-arrows { display:flex; gap:9px; }
.studio-nav-arrows button,.fit-arrow-controls button { width:42px; height:42px; display:grid; place-items:center; border-radius:50%; border:1px solid rgba(216,173,89,.35); background:rgba(216,173,89,.045); color:#e5c37e; font-size:18px; cursor:pointer; transition:background .2s ease, transform .2s ease; }
.studio-nav-arrows button:hover:not(:disabled),.fit-arrow-controls button:hover:not(:disabled) { background:rgba(216,173,89,.13); transform:translateY(-1px); }
.studio-nav-arrows button:disabled,.fit-arrow-controls button:disabled { opacity:.32; cursor:not-allowed; }
.studio-nav-arrows button:focus-visible,.fit-arrow-controls button:focus-visible { outline:2px solid var(--gold); outline-offset:3px; }
.lifecycle-studio .lifecycle-summary { max-width:860px; padding-top:28px; }
.lifecycle-studio .lifecycle-cta { padding-top:26px; padding-bottom:clamp(85px,9vw,126px); }
@keyframes stageEnter { from { opacity:.5; transform:translateY(9px) } to { opacity:1; transform:translateY(0) } }

/* Shorten the lower half: keep the actual diagrams and explanatory copy, remove empty gaps. */
.stack-section { padding-top:clamp(76px,8vw,115px); padding-bottom:clamp(64px,6vw,90px); }
.stack-section .stack-intro { margin-bottom:35px; }
.stack-section .token-stack { margin-top:38px; }
.verification-section { padding-top:clamp(77px,8vw,110px); padding-bottom:clamp(62px,7vw,95px); }
.verification-section .verification-points { margin-top:42px; }
.verification-point { min-height:175px; }
.integration-section { padding-top:clamp(77px,8vw,110px); padding-bottom:clamp(66px,7vw,100px); }
.integration-section .entry-grid { margin-top:30px; }
.integration-section .entry-grid article { min-height:205px; }
.integration-section .entry-grid h3 { margin-top:25px; }

/* Fit: a native, swipeable horizontal journey with explicit controls, not a 320vh scroll trap. */
.fit-story { height:auto; min-height:0; padding:0; --fit-x:0%; overflow:hidden; }
.fit-story .fit-sticky { position:relative; top:auto; height:auto; min-height:0; overflow:visible; display:block; padding-top:clamp(73px,8vw,110px); padding-bottom:clamp(75px,7vw,104px); }
.fit-story .fit-heading { padding-bottom:35px; }
.fit-story .fit-viewport { display:block; width:100%; overflow-x:auto; overflow-y:hidden; scroll-snap-type:x mandatory; scroll-behavior:smooth; scrollbar-width:none; overscroll-behavior-x:contain; min-height:0; }
.fit-story .fit-viewport::-webkit-scrollbar { display:none; }
.fit-story .fit-track { display:flex; width:100%; height:auto; transform:none !important; will-change:auto; }
.fit-story .fit-slide { flex:0 0 100%; scroll-snap-align:start; min-height:280px; height:auto; padding:10px 3% 16px 1%; opacity:1; }
.fit-story .fit-number { font-size:clamp(90px,12vw,165px); }
.fit-story .fit-copy { max-width:750px; width:min(78%,750px); }
.fit-story .fit-copy p { max-width:710px; font-size:clamp(22px,2.9vw,36px); line-height:1.42; }
.fit-story .fit-slide:not(.is-active) { opacity:.58; }
.fit-controls { display:flex; align-items:center; justify-content:space-between; gap:24px; padding:18px 0 26px; border-top:1px solid rgba(240,236,223,.11); }
.fit-story .fit-nav { position:static; display:flex; align-items:center; gap:9px; }
.fit-story .fit-nav button { width:25px; height:5px; border:0; border-radius:9px; background:rgba(216,173,89,.24); cursor:pointer; transition:background .2s ease,width .2s ease; }
.fit-story .fit-nav button.is-active { width:43px; background:#d8ad59; }
.fit-story .fit-nav b { margin-left:12px; font-size:11px; font-weight:500; color:#81796f; letter-spacing:.13em; }
.fit-arrow-controls { display:flex; gap:9px; }
.fit-story .fit-link { margin-top:5px; display:inline-block; }

/* Keep a small, readable FAQ teaser; all other questions remain on /faq. */
.limits-section { padding-top:clamp(72px,7vw,100px); padding-bottom:clamp(72px,7vw,100px); }
.limits-section .limit-lines { margin-top:28px; }
.limits-section .limit-lines p { padding:12px 0; }
.faq-section { padding-top:clamp(82px,9vw,117px); padding-bottom:clamp(80px,9vw,118px); }
.faq-section .faq-intro { margin-bottom:40px; }
.faq-section .faq-question { min-height:75px; }
.faq-section .faq-more { margin-top:35px; }
.closing-section { padding-top:clamp(92px,9vw,132px); padding-bottom:clamp(100px,10vw,140px); }

@media(max-width:1050px){
  .story-stage { grid-template-columns:1fr; padding:38px 0; gap:30px; }
  .story-stage .section-copy { max-width:850px; }
  .story-stage .feature-visual { width:100%; }
  .story-stage .trade-adapt-panel { max-height:none; }
  .fit-story .fit-slide { min-height:260px; }
}
@media(max-width:800px){
  .home-hero.hero { padding-top:115px; padding-bottom:12px; }
  .chart-section .hero-chart { max-height:none; }
  .problem-editorial { grid-template-columns:1fr; gap:27px; margin-top:42px; }
  .problem-point,.problem-point-two,.problem-point-three { min-height:0; margin-top:0; padding-bottom:22px; }
  .problem-index { margin-bottom:15px; }
  .constraint-teaser { grid-template-columns:44px 1fr; gap:13px; }
  .proof-symbol { width:39px; height:39px; font-size:18px; }
  .constraint-disclosure-content { overflow-x:auto; }
  .constraint-disclosure-content .constraint-table { min-width:660px; }
  .studio-nav { grid-template-columns:repeat(4,minmax(0,1fr)); }
  .story-tab { padding:14px 9px 16px; }
  .story-tab-desc { display:none; }
  .story-tab-name { font-size:16px; }
  .story-tab-no { font-size:11px; }
  .story-stage .section-copy h2 { font-size:clamp(34px,8vw,53px); }
  .story-stage .feature-visual { width:100%; }
  .fit-story .fit-sticky { padding-top:76px; padding-bottom:76px; }
  .fit-story .fit-slide { padding-inline:5px; }
  .fit-story .fit-copy { width:83%; }
  .fit-story .fit-copy p { font-size:clamp(21px,5vw,31px); }
  .fit-story .fit-nav b { display:none; }
}
@media(max-width:540px){
  .story-tab-name { font-size:14px; }
  .story-tab { padding-inline:6px; }
  .story-stage .trade-adapt-panel { padding:21px 14px; }
  .story-stage .mint-steps { grid-template-columns:1fr; }
  .story-stage .mint-steps span { min-height:0; }
  .fit-story .fit-slide { min-height:340px; }
  .fit-story .fit-number { font-size:94px; }
  .fit-story .fit-copy { width:85%; }
  .fit-story .fit-copy p { font-size:23px; }
  .fit-controls { gap:12px; }
  .fit-story .fit-nav button { width:17px; }
  .fit-story .fit-nav button.is-active { width:28px; }
}
@media(prefers-reduced-motion:reduce){
  .story-stage { animation:none; }
  .fit-story .fit-viewport { scroll-behavior:auto; }
}
/* Keep the type generously measured in the audience carousel. */
.fit-story .fit-copy {
  margin-left:clamp(145px,16vw,210px);
  width:calc(100% - clamp(145px,16vw,210px));
}
.fit-story .fit-link { padding-right:0; }
@media(max-width:900px) {
  .fit-story .fit-number { position:absolute; top:50%; left:0; transform:translateY(-48%); }
  .fit-story .fit-copy { margin-left:clamp(76px,13vw,135px); width:calc(100% - clamp(76px,13vw,135px)); }
}
@media(max-width:540px) {
  .fit-story .fit-copy { margin-left:65px; width:calc(100% - 70px); }
}
