﻿/* ========================================================
   PAPER COMIC — cream page, ink borders, hand-feel
   ======================================================== */

*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
:root{
  --paper:   #f2e8c8;   /* aged comic paper */
  --paper2:  #e8ddb0;   /* slightly darker sheet */
  --ink:     #1a1008;   /* warm near-black ink */
  --red:     #d42b1e;   /* classic comic red */
  --yellow:  #f5c800;   /* classic comic yellow */
  --hh:      58px;      /* header height */
}

html,body{
  height:100%;overflow:hidden;
  background:var(--paper2);
  color:var(--ink);
  font-family:Bangers,Impact,"Arial Black",sans-serif;
}

/* ---- LOADER ---- */
#loader{
  position:fixed;inset:0;z-index:9999;
  background-image:url('images/loading.jpg');
  background-size:cover;
  background-position:center;
  background-repeat:no-repeat;
  display:flex;align-items:center;justify-content:center;
  flex-direction:column;gap:12px;
}

#loader::before{
  content:"";
  position:absolute;
  inset:0;
  background:linear-gradient(to bottom, rgba(6,7,17,.28), rgba(9,4,18,.55));
}

.loader-text{
  position:relative;
  z-index:1;
  font-family:Bangers,sans-serif;
  font-size:clamp(28px,6vw,58px);
  color:#49c9ff;
  letter-spacing:4px;
  text-shadow:
    0 0 10px rgba(73,201,255,.55),
    0 0 24px rgba(255,0,128,.28),
    2px 2px 0 rgba(0,0,0,.75);
}

/* ---- HEADER  ---- */
/* looks like a stack of comic pages from above */
#comic-header{
  position:fixed;top:0;left:0;right:0;
  z-index:600;
}

/* stacked page-edge strips — like looking at pages from above */
.ch-pages{
  height:12px;
  background:repeating-linear-gradient(
    180deg,
    var(--paper2)   0px,  var(--paper2)   2px,
    #c8bb90         2px,  #c8bb90         3px,
    var(--paper)    3px,  var(--paper)    5px,
    #c8bb90         5px,  #c8bb90         6px,
    var(--paper2)   6px,  var(--paper2)   8px,
    #c8bb90         8px,  #c8bb90         9px,
    var(--paper)    9px,  var(--paper)    11px,
    var(--ink)      11px, var(--ink)      12px
  );
}

/* main bar */
.ch-bar{
  height:calc(var(--hh) - 12px);
  background:var(--paper);
  border-bottom:3px solid var(--ink);
  /* subtle inner line */
  box-shadow:0 2px 0 var(--yellow), 0 4px 0 var(--ink);
  display:flex;align-items:center;
  padding:0 20px;
}

.ch-title{
  font-family:Bangers,sans-serif;
  font-size:32px;letter-spacing:6px;
  color:var(--red);
  text-shadow:2px 2px 0 var(--ink);
  margin-right:auto;
  /* slight tilt like hand-stamped */
  display:inline-block;transform:rotate(-1deg);
}

.ch-nav{ display:flex;gap:0; }

/* hand-drawn badge buttons */
.ch-btn{
  font-family:Bangers,sans-serif;
  font-size:16px;letter-spacing:3px;
  color:var(--ink);
  text-decoration:none;
  padding:4px 16px;
  background:var(--paper2);
  /* rough ink border — slightly uneven */
  border:2.5px solid var(--ink);
  border-right:none;
  position:relative;
  cursor:pointer;
  transition:background .12s,color .12s;
  /* skewed parallelogram feel */
  transform:skewX(-6deg);
}
.ch-btn span{ display:inline-block;transform:skewX(6deg); }
.ch-btn:last-child{ border-right:2.5px solid var(--ink); }
.ch-btn.active,
.ch-btn:hover{
  background:var(--red);
  color:var(--yellow);
}
/* small corner crease decoration */
.ch-btn::after{
  content:"";
  position:absolute;top:0;right:-2px;
  width:3px;height:3px;
  background:var(--paper2);
  border-bottom:2px solid var(--ink);
  border-left:2px solid var(--ink);
}

/* ---- CAMERA WINDOW ---- */
#camera-wrap{
  position:fixed;
  top:var(--hh);left:0;right:0;bottom:0;
  overflow:hidden;
  z-index:1;
  /* paper background visible in gutters between panels */
  background:var(--paper2);
}

/* Stage — 2×2 grid. Background = paper (gutter visible when panning) */
#stage{
  position:absolute;top:0;left:0;
  width:200vw;
  height:200%;
  background:var(--paper2);
  will-change:transform;
}

/* ---- PANELS ---- */
.panel{
  position:absolute;
  overflow:hidden;
  background:var(--paper);
  /* classic thick comic ink border with inner highlight */
  border:4px solid var(--ink);
  box-shadow:
    inset 0 0 0 2px var(--paper),  /* inner paper margin */
    5px 5px 0 var(--ink);          /* page-lift drop shadow */
}

.panel1{ top:12px; left:12px;            width:calc(100vw - 24px); height:calc(50% - 18px); }
.panel2{ top:12px; left:calc(100vw + 12px); width:calc(100vw - 24px); height:calc(50% - 18px); }
.panel3{ top:calc(50% + 6px); left:12px; width:calc(100vw - 24px); height:calc(50% - 18px); }
.panel4{ top:calc(50% + 6px); left:calc(100vw + 12px); width:calc(100vw - 24px); height:calc(50% - 18px); }

.panel-filler{
  pointer-events:none;
}

/* ---- IMAGE ---- */
.panel .panel-bg{
  position:absolute;inset:0;
  width:100%;height:100%;
  object-fit:cover;
  transform-origin:center center;
  will-change:transform,filter;
  /* aged halftone print look */
  filter:contrast(1.1) saturate(0.75) sepia(0.18);
}

.home-logo{
  position:absolute;
  top:16px;
  right:18px;
  width:clamp(160px,24vw,340px);
  height:auto;
  z-index:9;
  object-fit:contain;
  filter:none;
  mix-blend-mode:normal;
  pointer-events:none;
}

/* ---- HALFTONE DOTS ---- */
.halftone{
  position:absolute;inset:0;z-index:2;pointer-events:none;
  background-image:radial-gradient(circle,rgba(26,16,8,.18) 1.4px,transparent 1.4px);
  background-size:5px 5px;
}

/* ---- SPEED LINES ---- */
.speed-lines{
  position:absolute;inset:0;
  width:100%;height:100%;
  z-index:3;pointer-events:none;opacity:0;
}

/* ---- PANEL TAG ---- */
.panel-tag{
  position:absolute;top:10px;left:10px;z-index:10;
  background:var(--yellow);
  color:var(--ink);
  font-family:Bangers,sans-serif;font-size:14px;letter-spacing:2px;
  padding:1px 7px;
  border:2px solid var(--ink);
  transform:rotate(-2deg);
  box-shadow:2px 2px 0 var(--ink);
}

/* ---- IMPACT WORD (POW / BOOM / KRAK) ---- */
.impact-word{
  font-family:Bangers,sans-serif;
  font-size:clamp(46px,9vw,112px);line-height:1;
  color:var(--yellow);
  /* classic comic lettering outline */
  text-shadow:
    3px  3px 0 var(--red),
    6px  6px 0 var(--ink),
    -2px -2px 0 var(--ink),
     2px -2px 0 var(--ink),
    -2px  2px 0 var(--ink),
     2px  2px 0 var(--ink);
  transform:rotate(-4deg);display:inline-block;
  margin-bottom:8px;opacity:0;will-change:transform,opacity;
}

/* ---- OVERLAY ---- */
.overlay{
  position:absolute;top:50%;left:7%;
  transform:translateY(-50%);
  z-index:8;max-width:48%;
}
.overlay.right{left:auto;right:7%;text-align:right;max-width:48%;}
.overlay h1{
  font-family:Bangers,sans-serif;
  font-size:clamp(38px,7vw,92px);
  line-height:.9;letter-spacing:2px;
  color:#fff;
  /* thick ink outline — hand-lettered */
  text-shadow:
    3px  3px 0 var(--ink),
   -2px -2px 0 var(--ink),
    2px -2px 0 var(--ink),
   -2px  2px 0 var(--ink),
    4px  5px 0 rgba(0,0,0,.5);
  opacity:0;will-change:transform,opacity;
}
.overlay p{
  font-family:Bangers,sans-serif;
  font-size:clamp(16px,2.2vw,24px);letter-spacing:2px;
  color:var(--yellow);
  text-shadow:1px 1px 0 var(--ink),2px 2px 0 var(--ink);
  margin-top:8px;opacity:0;
}

.ca-card{
  margin-top:14px;
  padding:10px 12px;
  border:3px solid var(--ink);
  background:rgba(242,232,200,.92);
  box-shadow:4px 4px 0 var(--ink);
  max-width:min(560px,92%);
  opacity:0;
}

.ca-label{
  display:block;
  color:var(--red);
  font-size:clamp(16px,2vw,22px);
  letter-spacing:2px;
}

.ca-value{
  display:block;
  font-family:monospace;
  font-size:clamp(11px,1.2vw,14px);
  line-height:1.35;
  color:var(--ink);
  margin-top:4px;
  overflow-wrap:anywhere;
}

.copy-ca-btn{
  margin-top:8px;
  padding:7px 14px;
  border:3px solid var(--ink);
  background:var(--yellow);
  color:var(--ink);
  font-family:Bangers,sans-serif;
  font-size:clamp(14px,1.5vw,18px);
  letter-spacing:2px;
  box-shadow:3px 3px 0 var(--ink);
  cursor:pointer;
}

.copy-ca-btn:hover{ background:var(--red); color:#fff; }

.buy-block{
  margin-top:12px;
  display:flex;
  flex-wrap:wrap;
  gap:10px;
  align-items:center;
  opacity:0;
}

.buy-block .cta{
  opacity:1;
  transform:rotate(-2deg);
}

/* ---- CTA BUTTON ---- */
.cta{
  display:inline-block;margin-top:18px;padding:9px 24px;
  font-family:Bangers,sans-serif;font-size:26px;letter-spacing:4px;
  color:var(--ink);
  background:var(--yellow);
  border:3.5px solid var(--ink);
  border-radius:0;
  box-shadow:4px 4px 0 var(--ink);
  text-decoration:none;
  transform:rotate(-2deg);
  opacity:0;will-change:transform,opacity;cursor:pointer;
  transition:background .12s,color .12s;
}
.cta:hover{ background:var(--red); color:#fff; }

.cta-alt{
  background:#fff;
}

.mcap-badge{
  display:block;
  padding:6px 12px;
  border:3px solid var(--ink);
  background:rgba(255,255,255,.8);
  box-shadow:3px 3px 0 var(--ink);
  color:var(--ink);
  font-size:clamp(13px,1.3vw,17px);
  letter-spacing:1px;
}

.mcap-wrap{
  display:flex;
  align-items:center;
  gap:8px;
  padding:6px 12px;
  border:3px solid var(--ink);
  background:linear-gradient(135deg,#fff 0%,#f6efda 100%);
  box-shadow:3px 3px 0 var(--ink);
}

.mcap-label{
  font-size:clamp(13px,1.2vw,16px);
  letter-spacing:2px;
  color:var(--red);
}

.mcap-value{
  font-size:clamp(14px,1.4vw,20px);
  color:var(--ink);
}

.rocket-card{
  margin-top:14px;
  width:clamp(140px,18vw,220px);
  background:#fff;
  border:4px solid var(--ink);
  box-shadow:5px 5px 0 var(--ink);
  padding:8px;
  opacity:0;
}

.rocket-card img{
  width:100%;
  height:auto;
  display:block;
  object-fit:contain;
  filter:none;
}

.join-box{
  margin-top:14px;
  display:grid;
  gap:14px;
  justify-items:end;
  opacity:0;
}

.join-sub{
  margin-top:10px;
  color:#fff5cc;
  font-size:clamp(18px,2.1vw,30px);
  line-height:1;
  text-shadow:2px 2px 0 var(--ink);
}

.social-link{
  display:inline-block;
  text-decoration:none;
  padding:14px 24px;
  border:3px solid var(--ink);
  background:rgba(242,232,200,.92);
  color:var(--ink);
  box-shadow:4px 4px 0 var(--ink);
  font-size:clamp(24px,2.6vw,38px);
  letter-spacing:2px;
  min-width:min(640px,92vw);
  text-align:center;
}

.social-link:hover{ background:var(--yellow); }

.join-note{
  margin-top:2px;
  padding:12px 16px;
  border:3px dashed var(--ink);
  background:rgba(245,200,0,.2);
  box-shadow:3px 3px 0 var(--ink);
  font-size:clamp(23px,2.4vw,34px);
  letter-spacing:2px;
  color:var(--ink);
  min-width:min(640px,92vw);
  text-align:center;
}

.panel3 .overlay.right{
  top:55%;
  max-width:54%;
}

/* If GSAP fails to load (CDN issue), force a safe static first panel instead of broken 2x2 grid */
body.no-gsap #stage{
  width:100%;
  height:100%;
  transform:none !important;
}

body.no-gsap .panel{
  display:none;
}

body.no-gsap .panel1{
  display:block;
  top:0;
  left:0;
  width:100%;
  height:100%;
}

/* ---- FLASH / TRANSITION COVER ---- */
.flash-cover{
  position:absolute;inset:0;
  background:var(--paper);
  z-index:20;pointer-events:none;opacity:0;
}

/* ---- RESPONSIVE ---- */
@media(max-width:600px){
  .overlay,
  .overlay.right{ left:5%;right:auto;text-align:left;max-width:92%; }
  .home-logo{ width:132px; top:56px; left:12px; right:auto; }
  .impact-word{ font-size:44px; }
  .overlay h1{ font-size:34px; }
  .cta{ font-size:20px;padding:7px 16px; }
  .ch-btn{ font-size:13px;padding:3px 10px;letter-spacing:1px; }
  .join-box{ justify-items:start; }
  .social-link{ font-size:19px; padding:10px 12px; min-width:0; width:100%; }
  .join-note{ font-size:17px; min-width:0; width:100%; }

  .panel3 .overlay.right{
    left:auto;
    right:4%;
    top:52%;
    text-align:right;
    max-width:78%;
  }

  .panel3 .join-box{
    justify-items:end;
    width:min(78vw,460px);
  }

  .panel3 .social-link{
    width:auto;
    min-width:min(78vw,460px);
    font-size:23px;
    padding:12px 14px;
  }

  .panel3 .join-note{
    width:auto;
    min-width:min(78vw,460px);
    font-size:20px;
  }
}
