/* Interstitial saree bands + loader */
  .saree-ribbon{
    width:125vw; height:168px;
    --on:0.72;
    overflow:visible;
    transform-origin:8% 50%;
    filter:drop-shadow(0 12px 18px rgba(62,42,28,0.2));
    --saree-field:#9C2436; --saree-kara:#D4A017; --saree-zari:#F6F1E4;
  }
  .saree-ribbon .cloth{fill:var(--saree-field);}
  .saree-ribbon .kara{fill:none; stroke:var(--saree-kara); stroke-width:12; stroke-linecap:butt;}
  .saree-ribbon .zari{fill:none; stroke:var(--saree-zari); stroke-width:2.4;}
  .saree-ribbon .pleat{fill:none; stroke:rgba(247,238,218,0.22); stroke-width:1.6;}
  .saree-ribbon .bolt-body{fill:var(--saree-field); stroke:var(--saree-kara); stroke-width:3;}
  .saree-ribbon .bolt-ring{fill:none; stroke:var(--saree-zari); stroke-width:1.8; opacity:0.75;}
  .saree-ribbon .teni{fill:var(--saree-zari);}
  .saree-ribbon .teni-gold{fill:var(--saree-kara);}
  .saree-ribbon .butta{fill:var(--saree-zari);}
  .saree-ribbon .butta-sm{fill:var(--saree-kara);}
  .saree-ribbon .zari-band{fill:none; stroke:var(--saree-zari); stroke-width:2.2; opacity:0.9;}
  .saree-ribbon .kasuti-stitch{fill:none; stroke:var(--saree-kara); stroke-width:1.6; stroke-linecap:square;}
  .saree-ribbon .kasuti-mark{fill:var(--saree-zari);}
  .saree-ribbon.weave-ilkal .kara{stroke-width:18;}
  .saree-ribbon.weave-mysore .kara{stroke-width:9;}
  .saree-ribbon.weave-kasuti .kara{stroke-width:5;}
  .saree-ribbon.weave-molakalmuru .kara{stroke-width:14;}
  .saree-ribbon.weave-khana .kara{stroke-width:13;}
  .saree-ribbon.weave-udupi .kara{stroke-width:10;}
  .saree-ribbon.weave-kodagu .kara{stroke-width:11;}
  .saree-ribbon.weave-ilkal .zari{stroke-width:3.2;}
  .saree-ribbon.weave-mysore .zari{stroke-width:1.6;}
  .stage-say{
    position:absolute; left:0; top:0; margin:0; z-index:4;
    width:max-content; max-width:188px;
    padding:7px 10px 8px;
    background:var(--cream);
    color:var(--ink);
    border:1.5px solid var(--maroon);
    border-radius:2px 11px 11px 11px;
    box-shadow:3px 3px 0 var(--gold);
    font-size:11px; line-height:1.25;
    opacity:0; visibility:hidden;
    transform-origin:0 0;
    transition:opacity .3s ease, visibility .3s ease;
    text-decoration:none;
    pointer-events:auto;
  }
  a.stage-say:hover b{text-decoration:underline;}
  .stage-say-ref{
    display:block; margin-top:5px; font-size:10px; font-weight:600;
    color:var(--maroon); text-decoration:underline; text-underline-offset:2px;
  }
  .stage-say.is-on{opacity:0.96; visibility:visible;}
  .stage-say b{
    display:block; font-family:'Baloo 2', sans-serif;
    font-size:13px; color:var(--maroon); font-weight:700;
  }
  .stage-say span{color:var(--ink-soft); font-size:10.5px;}
  .tone-ilkal{--saree-field:#9C2436; --saree-kara:#D4A017; --saree-zari:#F6F1E4;}
  .tone-mysore{--saree-field:#5C1A4A; --saree-kara:#D6A419; --saree-zari:#F0C550;}
  .tone-kasuti{--saree-field:#201C17; --saree-kara:#D6A419; --saree-zari:#9E1B32;}
  .tone-jacaranda{--saree-field:#6B4FA0; --saree-kara:#D4A017; --saree-zari:#F6F1E4;}
  .tone-coastal{--saree-field:#1F7A6E; --saree-kara:#F0C550; --saree-zari:#F6F1E4;}
  .tone-hampi{--saree-field:#A66A32; --saree-kara:#F6F1E4; --saree-zari:#9E1B32;}
  .tone-blr-silk{--saree-field:#F3E4C0; --saree-kara:#9E1B32; --saree-zari:#D6A419;}
  .tone-molakalmuru{--saree-field:#C41E3A; --saree-kara:#1F6B3A; --saree-zari:#F0C550;}
  .tone-kodagu{--saree-field:#1A4A32; --saree-kara:#D6A419; --saree-zari:#F6F1E4;}
  .tone-khana{--saree-field:#9C2436; --saree-kara:#D6A419; --saree-zari:#C1631A;}
  .tone-ilkal-green{--saree-field:#1F5C45; --saree-kara:#9C2436; --saree-zari:#D4A017;}
  .tone-narayanpet{--saree-field:#C45C26; --saree-kara:#201C17; --saree-zari:#D6A419;}
  .tone-crepe{--saree-field:#E8D5A3; --saree-kara:#C45B7A; --saree-zari:#D6A419;}
  .tone-navy-zari{--saree-field:#1A2744; --saree-kara:#D6A419; --saree-zari:#F0C550;}
  .tone-peacock{--saree-field:#0E6B6A; --saree-kara:#D6A419; --saree-zari:#F6F1E4;}
  .tone-magenta{--saree-field:#9B1B4A; --saree-kara:#D6A419; --saree-zari:#F6F1E4;}

  /* Straight interstitial bands */
  .stage-band-straight{
    position:relative;
    height:176px;
    width:100vw;
    margin-left:calc(50% - 50vw);
    overflow:hidden;
    pointer-events:none;
  }
  .stage-band-straight .band-ribbon{
    position:absolute; top:12px; left:0;
    width:100%; height:152px;
    opacity:1;
    filter:drop-shadow(0 10px 14px rgba(62,42,28,0.2));
    overflow:hidden;
    clip-path: inset(0 100% 0 0);
    transition: clip-path 1.35s cubic-bezier(0.22, 1, 0.36, 1);
  }
  .stage-band-straight .bolt{display:none;}
  .stage-band-straight.is-on .band-ribbon{clip-path: inset(0 0 0 0);}
  .stage-band-straight .stage-say{z-index:4; pointer-events:auto; cursor:pointer;}
  .stage-band-straight.is-on .stage-say{opacity:0.96; visibility:visible;}
  @media (max-width:720px){
    .stage-band-straight{height:128px;}
    .stage-band-straight .band-ribbon{height:112px; top:8px;}
  }
  @media (prefers-reduced-motion: reduce){
    .stage-band-straight .band-ribbon{transition:none; clip-path:none;}
  }

  /* ---------- guide data loader ---------- */
  body.is-loading{overflow:hidden;}
  #guide-loader{
    position:fixed; inset:0; z-index:200;
    display:flex; align-items:center; justify-content:center;
    background:var(--cream);
  }
  #guide-loader .loader-inner{transition:opacity .4s ease;}
  #guide-loader[aria-hidden="true"]{
    visibility:hidden; pointer-events:none;
    transition:visibility 0s linear .4s;
  }
  #guide-loader[aria-hidden="true"] .loader-inner{opacity:0;}
  .loader-inner{
    display:flex; flex-direction:column; align-items:center;
    text-align:center; width:100%;
    max-width:min(420px, calc(100vw - 48px)); padding:24px;
  }
  .loader-torana{
    width:min(240px, 70vw); height:36px; margin:0 0 16px;
    animation:loader-pulse 1.4s ease-in-out infinite;
  }
  .loader-teni{
    height:8px; margin:16px 0 0; width:min(220px, 70vw);
    background-color:var(--kasuti-black);
    background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8'%3E%3Cpolygon points='0,8 6,0 12,8' fill='%239C2436'/%3E%3Cpolygon points='0,8 6,3 12,8' fill='%23D4A017'/%3E%3C/svg%3E");
    background-repeat:repeat-x; background-size:12px 8px;
    animation:loader-teni 1.1s linear infinite;
  }
  .loader-title{
    color:var(--maroon); font-size:20px; margin:0 0 6px;
    text-align:center; width:100%; line-height:1.3;
  }
  .loader-copy{font-size:14.5px; color:var(--ink-soft); margin:0; text-align:center; width:100%;}
  .loader-error{display:none; color:var(--maroon); font-size:14px; margin-top:10px;}
  #guide-loader.is-error .loader-error{display:block;}
  #guide-loader.is-error .loader-teni, #guide-loader.is-error .loader-torana{animation:none;}
  @keyframes loader-pulse{0%,100%{transform:scale(1); opacity:1;} 50%{transform:scale(0.94); opacity:.7;}}
  @keyframes loader-teni{from{background-position:0 0;} to{background-position:12px 0;}}
  [data-reveal]{opacity:0; transform:translateY(10px); transition:opacity .45s ease, transform .45s ease;}
  [data-reveal].is-in{opacity:1; transform:none;}
  @media (prefers-reduced-motion: reduce){
    *{transition:none !important; scroll-behavior:auto !important;}
    .loader-torana, .loader-teni{animation:none !important;}
    [data-reveal]{opacity:1; transform:none;}
  }
