*{box-sizing:border-box}
html,body{margin:0;padding:0;background:#f4f0e8}
html{scroll-behavior:auto}
#scroll-experience{position:relative;height:360vh}
#scroll-video-sticky{position:sticky;top:0;height:100vh;overflow:hidden;background:#fff;perspective:1200px;perspective-origin:50% 48%}
/* Frame-review mode: do not shrink or rotate the video stage, which would
   otherwise expose the pale page around it as a matte. */
.comic-perspective-stage{position:absolute;inset:0;transform:none!important;transform-style:preserve-3d;transform-origin:50% 50%;will-change:transform;backface-visibility:hidden}
#webgl{position:absolute;inset:0;width:100%;height:100%;display:block;transform:translateZ(0);backface-visibility:hidden}
#status{position:absolute;bottom:24px;inset-inline:24px;margin:0;text-align:center;font:14px/1.8 system-ui,sans-serif;color:#302d27;background:#f4f0e8e6;padding:8px;border-radius:4px}
#status[hidden]{display:none}

.comic-story-overlay{
  --gold:#9d651c;--ink:#17140f;--paper:rgba(255,253,248,.94);
  --font-fa:"Vazirmatn",Tahoma,"Segoe UI",system-ui,sans-serif;
  --frame-left:14px;--frame-right:14px;--frame-top:18px;--frame-bottom:18px;
  position:absolute;inset:0;z-index:12;overflow:hidden;pointer-events:none;
  color:var(--ink);direction:rtl;font-family:var(--font-fa);contain:layout paint style;
  transform-style:preserve-3d;backface-visibility:hidden;
}
.story-frame-svg{display:none}
.story-frame-matte{fill:#fff;stroke:none}
/* Temporarily hide the illustrated border while reviewing the raw video composition. */
.story-frame-ink{display:none}
.story-scenes,.story-scene{position:absolute;inset:0;z-index:2;pointer-events:none}
.story-sr-only{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}

.story-beat{
  --beat-drift:20px;
  /* Keep narrative copy in the peripheral reading zones: the moving centre
     remains available to the illustrated subject and the video transition. */
  position:absolute;z-index:3;width:min(27vw,340px);opacity:0;pointer-events:none;
  transform:translate3d(0,var(--beat-drift),26px);will-change:transform,opacity;
  backface-visibility:hidden;text-align:right;
}
.story-beat__copy{
  position:relative;max-width:100%;padding:0;pointer-events:auto;touch-action:pan-y;user-select:text;
  background:transparent;border:0;clip-path:none;box-shadow:none;
}
.story-beat__copy::before{display:none}
.story-beat__chapter{
  display:flex;align-items:center;gap:8px;margin:0 0 9px;color:rgba(64,45,22,.64);
  font:600 10px/1 var(--font-fa);letter-spacing:.03em;
}
.story-beat__chapter b{display:grid;place-items:center;min-width:25px;height:25px;padding:0 5px;border:1px solid rgba(157,101,28,.52);color:var(--gold);font-weight:700}
.story-beat__text{display:inline;margin:0;max-width:18ch;color:#fff;font:680 clamp(19px,1.72vw,28px)/1.6 var(--font-fa);letter-spacing:-.018em;text-wrap:balance;box-decoration-break:clone;-webkit-box-decoration-break:clone;background:rgba(13,31,47,.88);box-shadow:.28em 0 0 rgba(13,31,47,.88),-.28em 0 0 rgba(13,31,47,.88);text-shadow:0 1px 7px rgba(0,0,0,.42)}
.story-beat__text strong{font-weight:780;color:#fff}
.story-beat__dna{display:inline-block;direction:ltr;letter-spacing:.06em;color:#fff}
.story-beat__support{
  display:block;margin-top:10px;max-width:34ch;padding:0;color:rgba(30,25,19,.76);
  background:transparent;border:0;
  font:470 clamp(11px,.88vw,14px)/1.8 var(--font-fa);
}
.story-beat__support{display:inline;box-decoration-break:clone;-webkit-box-decoration-break:clone;background:rgba(13,31,47,.84);box-shadow:.22em 0 0 rgba(13,31,47,.84),-.22em 0 0 rgba(13,31,47,.84);color:#fff}
.story-beat__headline{display:block;margin-top:12px;color:var(--ink);font:700 clamp(25px,2.6vw,42px)/1.35 var(--font-fa);letter-spacing:-.025em}

.story-beat--support .story-beat__text{font-weight:450;font-size:clamp(16px,1.34vw,22px);line-height:1.78;color:rgba(24,20,15,.84)}
.story-beat--revelation .story-beat__text{font-weight:760;font-size:clamp(22px,2.18vw,35px);line-height:1.52;max-width:16ch}
.story-beat--brand{text-align:center;width:min(46vw,560px)}
.story-beat--brand .story-beat__copy::before{display:none}
.story-beat--brand .story-beat__text{max-width:none;color:#8f5a16;font:800 clamp(35px,5vw,76px)/1 var(--font-fa);letter-spacing:.12em;direction:ltr}
.story-beat--brand .story-beat__support{margin-inline:auto;max-width:40ch}
.story-beat--surface .story-beat__copy{padding:0;background:transparent;border:0}
.story-beat--surface .story-beat__copy::after{display:none}

.story-beat--top-left{left:calc(var(--frame-left) + clamp(10px,2vw,34px));top:calc(var(--frame-top) + clamp(14px,3vh,38px))}
.story-beat--top-right{right:calc(var(--frame-right) + clamp(10px,2vw,34px));top:calc(var(--frame-top) + clamp(14px,3vh,38px))}
.story-beat--mid-left{left:calc(var(--frame-left) + clamp(10px,2vw,34px));top:46%}
.story-beat--mid-right{right:calc(var(--frame-right) + clamp(10px,2vw,34px));top:46%}
.story-beat--bottom-left{left:calc(var(--frame-left) + clamp(10px,2vw,34px));bottom:calc(var(--frame-bottom) + clamp(16px,3.8vh,46px))}
.story-beat--bottom-right{right:calc(var(--frame-right) + clamp(10px,2vw,34px));bottom:calc(var(--frame-bottom) + clamp(16px,3.8vh,46px))}
.story-beat--center-top{left:50%;top:calc(var(--frame-top) + clamp(22px,6vh,68px));translate:-50% 0}
.story-beat--center-bottom{left:50%;bottom:calc(var(--frame-bottom) + clamp(26px,7vh,82px));translate:-50% 0;text-align:center}
.story-beat--center-bottom .story-beat__text,.story-beat--center-bottom .story-beat__support{margin-inline:auto}
.story-beat--center-bottom .story-beat__copy::before{display:none}
.story-beat--center{left:50%;top:50%;translate:-50% -50%;text-align:center;width:min(62vw,680px)}
.story-beat--center .story-beat__copy::before{display:none}

/* Ending frames use the image as the hero: typography sits in its quiet
   margins with no opaque card between the viewer and the illustration. */
.story-beat--brand-aside{left:clamp(26px,4vw,78px);top:clamp(42px,8vh,104px);width:min(28vw,390px);text-align:left}
.story-beat--brand-aside .story-beat__copy,.story-beat--cta-aside .story-beat__copy{padding:0;background:transparent;border:0;clip-path:none;box-shadow:none}
.story-beat--brand-aside .story-beat__support{margin:14px 0 0;max-width:27ch;padding:0;background:transparent;border:0;color:rgba(23,20,15,.76);font-size:clamp(12px,1vw,16px);line-height:1.7;text-align:right}
.story-beat--brand-aperture{left:50%;top:57%;translate:-50% 0;width:min(42vw,650px);text-align:center}
.story-beat--brand-aperture .story-beat__copy{padding:0;background:transparent;border:0;clip-path:none;box-shadow:none}
.story-beat--brand-aperture .story-beat__text{display:block;background:transparent;box-shadow:none;color:#173d5d;font-size:clamp(32px,4vw,64px);letter-spacing:.1em;line-height:1;direction:ltr;text-shadow:-1px -1px 0 rgba(255,255,255,.94),1px -1px 0 rgba(255,255,255,.94),-1px 1px 0 rgba(255,255,255,.94),1px 1px 0 rgba(255,255,255,.94),0 3px 14px rgba(255,255,255,.9)}
.story-beat--brand-aperture .story-beat__support{display:block;width:max-content;margin:15px auto 0;max-width:min(40ch,100%);padding:4px 10px;background:rgba(13,31,47,.88);box-shadow:none;color:#fff;text-align:center}
.story-beat--cta-aside{right:clamp(28px,4.5vw,86px);left:auto;top:clamp(40px,8vh,106px);translate:0;width:min(29vw,410px);text-align:right}
.story-beat--cta-aside .story-beat__text{max-width:20ch;margin:0 0 12px auto;font-size:clamp(18px,1.9vw,30px);font-weight:720;line-height:1.5;text-shadow:0 1px 12px rgba(255,253,248,.96)}
.story-beat--cta-aside .story-beat__support{margin:0 0 14px auto;padding:0;max-width:28ch;background:rgba(13,31,47,.84);border:0;color:#fff}
.story-beat--cta-aside .story-beat__headline{margin:0 0 18px auto;font-size:clamp(26px,2.5vw,42px);line-height:1.3;text-shadow:0 1px 14px rgba(255,253,248,.96)}
.story-beat--cta-aside .story-cta{margin-top:0;background:rgba(255,253,248,.72)}

.story-beat--cta .story-beat__copy{padding:0;background:transparent;border:0}
.story-beat--cta .story-beat__text{max-width:27ch;margin-inline:auto;font-size:clamp(17px,1.7vw,26px);font-weight:500}
.story-beat--cta .story-beat__support{margin:10px auto 0;color:rgba(30,25,19,.68);font-size:clamp(12px,1vw,15px)}
.story-beat--cta.story-beat--cta-aside .story-beat__copy{padding:0;background:transparent;border:0;clip-path:none;box-shadow:none}
.story-cta{
  position:relative;margin-top:20px;padding:11px 25px;border:1px solid var(--ink);border-radius:0;
  background:transparent;color:var(--ink);font:650 14px/1.2 var(--font-fa);cursor:pointer;pointer-events:auto;
  transition:background-color .2s ease,color .2s ease,border-color .2s ease;
}
.story-cta:hover,.story-cta:focus-visible{background:var(--ink);color:#fffdf8;border-color:var(--ink);outline:none}

.story-entry-hint{
  position:absolute;left:50%;bottom:clamp(34px,7vh,76px);z-index:28;display:grid;justify-items:center;gap:8px;
  color:rgba(23,20,15,.72);font:550 12px/1.4 var(--font-fa);letter-spacing:.01em;pointer-events:none;
  opacity:1;transform:translate3d(-50%,0,42px);transition:opacity .7s ease,visibility .7s ease;
}
.story-entry-hint span{padding:8px 13px;background:rgba(255,253,248,.86);border-block:1px solid rgba(157,101,28,.34)}
.story-entry-hint i{color:var(--gold);font:400 22px/1 ui-sans-serif;animation:story-scroll-hint 2.2s ease-in-out infinite}
.story-entry-hint--hidden{opacity:0;visibility:hidden}
@keyframes story-scroll-hint{0%,100%{opacity:.35;transform:translateY(-2px)}50%{opacity:1;transform:translateY(7px)}}

.story-chapter-nav{
  position:absolute;right:max(11px,env(safe-area-inset-right));top:50%;z-index:30;display:grid;gap:7px;
  transform:translate3d(0,-50%,48px);direction:ltr;pointer-events:auto;
}
.story-chapter-nav button{
  position:relative;display:flex;align-items:center;justify-content:flex-end;width:18px;height:18px;padding:0;border:0;
  color:var(--ink);background:transparent;cursor:pointer;
}
.story-chapter-nav button>i{display:block;width:5px;height:5px;border:1px solid rgba(157,101,28,.78);border-radius:50%;background:#fffdf8;transition:transform .2s ease,background .2s ease}
.story-chapter-nav button>span{
  position:absolute;right:17px;top:50%;min-width:132px;padding:7px 10px;text-align:right;direction:rtl;
  color:var(--ink);background:rgba(255,253,248,.96);border:1px solid rgba(23,20,15,.62);
  font:600 11px/1.35 var(--font-fa);opacity:0;visibility:hidden;transform:translate3d(7px,-50%,0);transition:opacity .18s ease,transform .18s ease,visibility .18s ease;
}
.story-chapter-nav button>span small{display:block;margin-bottom:2px;color:var(--gold);font-size:8px;font-weight:700}
.story-chapter-nav button:hover>span,.story-chapter-nav button:focus-visible>span{opacity:1;visibility:visible;transform:translate3d(0,-50%,0)}
.story-chapter-nav button:focus-visible{outline:1px solid var(--gold);outline-offset:2px}
.story-chapter-nav button[aria-current="step"]>i{background:var(--gold);transform:scale(1.75);box-shadow:0 0 0 3px rgba(157,101,28,.12)}
.story-mobile-chapters{display:none}

@media (max-width:900px){
  .story-beat{width:min(43vw,360px)}
  .story-beat--brand{width:min(58vw,500px)}
  .story-beat--center{width:min(72vw,600px)}
}

@media (max-width:760px){
  .story-beat{
    left:50%!important;right:auto!important;width:min(72vw,310px);translate:-50% 0;text-align:right;
  }
  .story-beat--top-left,.story-beat--top-right,.story-beat--center-top{top:max(24px,6vh);bottom:auto}
  .story-beat--mid-left,.story-beat--mid-right{top:max(30px,8vh);bottom:auto}
  .story-beat--bottom-left,.story-beat--bottom-right,.story-beat--center-bottom{top:auto;bottom:max(74px,9vh)}
  .story-beat--center{top:50%;bottom:auto;translate:-50% -50%;width:min(72vw,310px);text-align:center}
  .story-beat--brand{left:45%!important;width:min(54vw,290px);text-align:center}
  .story-beat--brand-aside{left:max(22px,6vw)!important;top:max(28px,6vh);width:min(54vw,290px);text-align:left}
  .story-beat--brand-aperture{left:50%!important;top:58%;width:min(78vw,380px);text-align:center}
  .story-beat--cta-aside{right:max(22px,6vw)!important;left:auto!important;top:max(28px,6vh);width:min(58vw,310px);text-align:right}
  .story-beat__copy{max-width:100%}
  .story-beat__text{font-size:clamp(18px,5.1vw,25px);line-height:1.58;max-width:19ch}
  .story-beat--support .story-beat__text{font-size:clamp(15px,4.3vw,20px);line-height:1.72}
  .story-beat--revelation .story-beat__text{font-size:clamp(21px,6.2vw,30px)}
  .story-beat--brand .story-beat__text{font-size:clamp(28px,8.5vw,44px)}
  .story-beat--surface .story-beat__copy{padding:15px 17px 16px}
  .story-chapter-nav{right:max(5px,env(safe-area-inset-right));gap:5px}
  .story-chapter-nav button{width:14px;height:14px}
  .story-chapter-nav button>span{display:none}
  .story-entry-hint{bottom:66px;font-size:11px;white-space:nowrap}
}

/* Dedicated touch-browser layer. Desktop rendering and navigation stay unchanged. */
@media (max-width:900px) and (pointer:coarse){
  html.mobile-optimized{-webkit-text-size-adjust:100%;overscroll-behavior-x:none}
  html.mobile-optimized body{min-height:100svh;overscroll-behavior-x:none}
  html.mobile-optimized #scroll-experience{touch-action:pan-y;overscroll-behavior-x:none}
  html.mobile-optimized #scroll-video-sticky{
    height:var(--mobile-viewport-height,100dvh);min-height:100svh;
    padding-top:env(safe-area-inset-top);padding-bottom:env(safe-area-inset-bottom);
  }
  html.mobile-optimized #webgl{touch-action:pan-y}
  html.mobile-optimized .comic-perspective-stage{contain:layout paint style}
  html.mobile-optimized .comic-story-overlay{
    --mobile-safe-top:max(18px,env(safe-area-inset-top));
    --mobile-safe-bottom:max(70px,calc(env(safe-area-inset-bottom) + 58px));
  }
  html.mobile-optimized .story-beat{
    left:50%!important;right:auto!important;width:min(84vw,332px);translate:-50% 0;text-align:right;
  }
  html.mobile-optimized .story-beat--top-left,
  html.mobile-optimized .story-beat--top-right,
  html.mobile-optimized .story-beat--center-top{
    top:max(calc(var(--frame-top) + 14px),var(--mobile-safe-top));bottom:auto;
  }
  html.mobile-optimized .story-beat--mid-left,
  html.mobile-optimized .story-beat--mid-right{
    top:max(calc(var(--frame-top) + 20px),calc(var(--mobile-safe-top) + 5px));bottom:auto;
  }
  html.mobile-optimized .story-beat--bottom-left,
  html.mobile-optimized .story-beat--bottom-right,
  html.mobile-optimized .story-beat--center-bottom{
    top:auto;bottom:max(calc(var(--frame-bottom) + 15px),var(--mobile-safe-bottom));
  }
  html.mobile-optimized .story-beat--center{
    top:50%;bottom:auto;translate:-50% -50%;width:min(86vw,342px);text-align:center;
  }
  html.mobile-optimized .story-beat__copy{
    padding:0;background:transparent;box-shadow:none;
  }
  html.mobile-optimized .story-beat__chapter{margin-bottom:7px;font-size:9px}
  html.mobile-optimized .story-beat__chapter b{min-width:23px;height:23px}
  html.mobile-optimized .story-beat__text{
    max-width:24ch;font-size:clamp(17px,4.75vw,23px);line-height:1.52;text-wrap:pretty;
  }
  html.mobile-optimized .story-beat--support .story-beat__text{font-size:clamp(14px,3.9vw,18px);line-height:1.62}
  html.mobile-optimized .story-beat--revelation .story-beat__text{max-width:22ch;font-size:clamp(19px,5.25vw,26px);line-height:1.48}
  html.mobile-optimized .story-beat__support{margin-top:8px;padding:0;font-size:clamp(10px,2.8vw,12px);line-height:1.65}
  html.mobile-optimized .story-beat__headline{margin-top:8px;font-size:clamp(23px,6.4vw,32px)}
  html.mobile-optimized .story-beat--brand{left:50%!important;width:min(76vw,310px);text-align:center}
  html.mobile-optimized .story-beat--brand .story-beat__text{font-size:clamp(27px,8vw,40px)}
  html.mobile-optimized .story-beat--cta .story-beat__copy{padding:0}
  html.mobile-optimized .story-beat--cta .story-beat__text{font-size:clamp(15px,4.2vw,19px)}
  html.mobile-optimized .story-cta{min-height:42px;margin-top:14px;padding:9px 21px}

  html.mobile-optimized .story-chapter-nav{display:none}
  html.mobile-optimized .story-mobile-chapters{
    position:absolute;left:max(14px,env(safe-area-inset-left));bottom:max(14px,env(safe-area-inset-bottom));
    z-index:42;display:block;direction:rtl;pointer-events:auto;transform:translateZ(52px);
  }
  html.mobile-optimized .story-mobile-chapters__toggle{
    display:grid;grid-template-columns:auto auto;align-items:center;justify-content:center;gap:5px;width:44px;height:44px;padding:0;
    border:1px solid rgba(157,101,28,.62);border-radius:50%;color:#8f5a16;background:rgba(255,253,248,.91);
    box-shadow:0 8px 26px rgba(57,39,18,.14);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);
    font-family:var(--font-fa);-webkit-tap-highlight-color:transparent;touch-action:manipulation;
  }
  html.mobile-optimized .story-mobile-chapters__toggle i{font:400 15px/1 sans-serif}
  html.mobile-optimized .story-mobile-chapters__toggle b{font:700 9px/1 var(--font-fa)}
  html.mobile-optimized .story-mobile-chapters__panel{
    position:absolute;left:0;bottom:54px;width:min(78vw,300px);max-height:min(68dvh,520px);overflow:auto;
    display:grid;gap:3px;padding:11px;background:rgba(255,253,248,.97);border:1px solid rgba(23,20,15,.72);
    box-shadow:0 18px 48px rgba(37,25,11,.2);opacity:0;visibility:hidden;transform:translateY(8px) scale(.98);
    transform-origin:bottom left;transition:opacity .18s ease,transform .18s ease,visibility .18s ease;
    overscroll-behavior:contain;-webkit-overflow-scrolling:touch;
  }
  html.mobile-optimized .story-mobile-chapters--open .story-mobile-chapters__panel{opacity:1;visibility:visible;transform:none}
  html.mobile-optimized .story-mobile-chapters__title{padding:5px 7px 8px;color:rgba(23,20,15,.58);font:600 10px/1.2 var(--font-fa)}
  html.mobile-optimized .story-mobile-chapters__panel button{
    display:grid;grid-template-columns:30px 1fr;align-items:center;min-height:39px;padding:4px 7px;border:0;
    color:#17140f;background:transparent;text-align:right;font:600 12px/1.35 var(--font-fa);touch-action:manipulation;
  }
  html.mobile-optimized .story-mobile-chapters__panel button b{color:#9d651c;font-size:10px}
  html.mobile-optimized .story-mobile-chapters__panel button[aria-current="step"]{background:rgba(157,101,28,.09)}
  html.mobile-optimized .story-mobile-chapters__panel button[aria-current="step"] span{font-weight:750}
  html.mobile-optimized .story-entry-hint{
    bottom:max(68px,calc(env(safe-area-inset-bottom) + 62px));font-size:10px;white-space:nowrap;
  }
  html.mobile-optimized .story-entry-hint span{padding:7px 11px;background:rgba(255,253,248,.9)}
  html.mobile-optimized .story-entry-hint i{font-size:25px;color:#a66918}
  html.mobile-optimized .apptopus-sound{
    right:max(14px,env(safe-area-inset-right));bottom:max(14px,env(safe-area-inset-bottom));width:44px;height:44px;
  }
}

@media (max-width:900px) and (pointer:coarse) and (max-height:700px){
  html.mobile-optimized .story-beat__copy{padding:10px 13px 11px}
  html.mobile-optimized .story-beat__text{font-size:clamp(15px,4.25vw,20px);line-height:1.44}
  html.mobile-optimized .story-beat--revelation .story-beat__text{font-size:clamp(17px,4.8vw,23px)}
  html.mobile-optimized .story-beat__support{margin-top:5px;padding-block:4px}
}

@media (prefers-reduced-motion:reduce){
  .story-beat{will-change:opacity;transform:translate3d(0,0,26px)!important}
  .story-cta{transition:none}
  .story-entry-hint i{animation:none}
}

.apptopus-sound{
  position:fixed;right:max(20px,env(safe-area-inset-right));bottom:max(20px,env(safe-area-inset-bottom));z-index:1000;
  display:grid;width:44px;height:44px;place-items:center;padding:0;border:1px solid rgba(157,101,28,.46);border-radius:50%;
  color:#9d651c;background:rgba(255,253,248,.76);box-shadow:0 8px 28px rgba(78,55,25,.11),inset 0 0 18px rgba(157,101,28,.04);
  backdrop-filter:blur(12px);cursor:pointer;-webkit-tap-highlight-color:transparent;
  transition:border-color 180ms ease,background 180ms ease,box-shadow 180ms ease,transform 180ms ease;
}
.apptopus-sound--left{right:auto;left:max(20px,env(safe-area-inset-left))}
.apptopus-sound:hover{border-color:rgba(157,101,28,.82);background:rgba(255,253,248,.92);box-shadow:0 10px 32px rgba(78,55,25,.16),0 0 24px rgba(157,101,28,.08)}
.apptopus-sound:active{transform:scale(.95)}
.apptopus-sound:focus-visible{outline:2px solid #9d651c;outline-offset:4px}
.apptopus-sound svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.35}
.apptopus-sound[data-enabled="true"] .wave-one{animation:apptopus-wave 1.8s ease-in-out infinite}
.apptopus-sound[data-enabled="true"] .wave-two{animation:apptopus-wave 1.8s 160ms ease-in-out infinite}
@keyframes apptopus-wave{0%,100%{opacity:.38}50%{opacity:1}}
@media (prefers-reduced-motion:reduce){.apptopus-sound,.apptopus-sound .wave{animation:none!important;transition:none}}
