:root{--ink:#171711;--paper:#fffdf4;--bg:#f3a9ca;--dots:#d47ca6;--accent:#d5ee75;--burst:#ffdf56;--burst-edge:#ff854c;color-scheme:light}
:root[data-palette="blue"]{--bg:#89c9e5;--dots:#58a5c9;--accent:#ffc18f}
:root[data-palette="green"]{--bg:#b6dca4;--dots:#88b875;--accent:#ffb4cf}
:root[data-palette="purple"]{--bg:#c3b1eb;--dots:#9c85d0;--accent:#c8ed85}
:root[data-palette="orange"]{--bg:#f9be86;--dots:#dc975c;--accent:#b6c3f5}
*{box-sizing:border-box}
body{margin:0;padding:18px;background:var(--paper);color:var(--ink);font-family:"DM Sans",Arial,sans-serif}
a{color:inherit}
button,a{-webkit-tap-highlight-color:transparent}
button:focus-visible,a:focus-visible{outline:4px solid var(--ink);outline-offset:7px}
.comic-page{position:relative;isolation:isolate;display:flex;flex-direction:column;min-height:calc(100svh - 36px);overflow:hidden;border:3px solid var(--ink);background-color:var(--bg);background-image:radial-gradient(var(--dots) 1.4px,transparent 1.6px);background-size:12px 12px;box-shadow:4px 4px 0 var(--ink)}
.masthead,.footer{position:relative;z-index:3;display:flex;align-items:center;justify-content:space-between;gap:20px;padding:20px 30px}
.masthead{min-height:85px;align-items:flex-start}
.mini-logo{font-family:"Bangers",Impact,sans-serif;font-size:36px;line-height:1;text-decoration:none;transform:rotate(-6deg)}
.mini-logo span{display:inline-block;margin-left:2px;font-size:28px}

.issue{font-size:10px;font-weight:700;letter-spacing:1px;border:2px solid var(--ink);background:var(--paper);padding:8px 10px;transform:rotate(2deg);box-shadow:3px 3px 0 var(--ink)}
.issue span{margin:0 7px}
.corner-stripes{position:absolute;z-index:-1;width:260px;height:160px;background:repeating-linear-gradient(-45deg,var(--ink) 0 3px,transparent 3px 14px);opacity:.75;pointer-events:none}
.corner-stripes--top{top:-70px;right:-130px;transform:rotate(-10deg)}
.corner-stripes--bottom{bottom:-100px;left:-100px;transform:rotate(10deg)}
.scene{position:relative;flex:1;width:100%;max-width:1440px;min-height:620px;margin:auto;display:grid;place-items:center;padding:50px 0 35px}


.fox{position:absolute;top:-8px;left:8%;width:135px;height:130px;transform:rotate(-8deg);z-index:2}
.speech-bubble{position:absolute;right:10%;top:0;z-index:4;background:var(--paper);border:3px solid var(--ink);border-radius:49% 46% 45% 48%;padding:17px 34px 22px;transform:rotate(9deg);box-shadow:4px 4px 0 var(--ink)}
.speech-bubble:before,.speech-bubble:after{content:"";position:absolute;bottom:-25px;left:37px;width:30px;height:35px;clip-path:polygon(0 0,100% 0,0 100%);background:var(--ink);transform:rotate(5deg)}
.speech-bubble:after{bottom:-17px;left:41px;width:23px;height:29px;background:var(--paper)}
.speech-bubble p{font-family:"Bangers",Impact,sans-serif;font-size:34px;line-height:.98;text-align:center;letter-spacing:1px;margin:0}
.explosion{position:relative;width:min(83%,1060px);aspect-ratio:1000/640;display:grid;place-items:center;z-index:1;transform:rotate(-3deg);margin:0}
.burst{position:absolute;inset:-5% 0;width:100%;height:110%;overflow:visible;filter:drop-shadow(0 1px 0 var(--ink))}
.burst-shadow{fill:var(--ink);stroke:var(--ink);stroke-width:7;stroke-linejoin:round}
.burst-outer{fill:var(--burst-edge);stroke:var(--ink);stroke-width:5;stroke-linejoin:round}
.burst-inner{fill:var(--burst);stroke:var(--ink);stroke-width:3;stroke-linejoin:round}
.burst-hatching{fill:none;stroke:var(--ink);stroke-width:3;stroke-linecap:round}
.hero-copy{position:relative;z-index:1;width:76%;text-align:center;transform:rotate(3deg);padding:10px 0 0}
.eyebrow{font-size:11px;font-weight:700;letter-spacing:2.3px;margin:0 0 12px}
h1{margin:0;font-family:"Bangers",Impact,"Arial Narrow",sans-serif;font-weight:400;line-height:.88;transform:rotate(-3deg)}
.company-name{display:block;font-size:clamp(44px,6.4vw,92px);white-space:nowrap;letter-spacing:2.5px;color:var(--paper);-webkit-text-stroke:6px var(--ink);paint-order:stroke fill;text-shadow:4px 5px 0 var(--ink)}

.invitation{margin:22px 0 15px;font-size:15px;font-weight:500}
.email{display:inline-flex;align-items:center;gap:12px;padding:14px 20px;background:var(--paper);border:2.5px solid var(--ink);box-shadow:4px 5px 0 var(--ink);font-size:17px;font-weight:700;text-decoration:none;transform:rotate(-1deg);transition:transform .15s,box-shadow .15s}
.email svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:1.8}

.email:hover{transform:translate(-2px,-2px) rotate(-1deg);box-shadow:6px 7px 0 var(--ink);background:var(--accent)}
.email:active{transform:translate(3px,3px);box-shadow:1px 2px 0 var(--ink)}


.lightning{position:absolute;width:78px;height:117px;right:5%;top:39%;fill:var(--accent);stroke:var(--ink);stroke-width:4;stroke-linejoin:round;transform:rotate(12deg);filter:drop-shadow(4px 4px 0 var(--ink))}
.spark{position:absolute;width:45px;height:65px;fill:var(--paper);stroke:var(--ink);stroke-width:3;stroke-linejoin:round}
.spark--one{left:27%;top:5%;transform:rotate(-15deg)}
.spark--two{right:27%;bottom:0;transform:rotate(15deg);width:35px}


.ghost-note{position:absolute;right:7%;bottom:12px;transform:rotate(8deg);text-align:center}
.ghost{width:120px;display:block;margin:auto}
.ghost-note span{font-family:"Kalam",cursive;font-size:19px}
.footer{display:grid;grid-template-columns:1fr auto 1fr;min-height:95px;font-size:11px;padding-top:25px;padding-bottom:20px}
.footer p{grid-column:3;grid-row:1;justify-self:end;margin:0;font-weight:600;text-align:right}


.palette-control{grid-column:2;grid-row:1;display:flex;align-items:center;justify-content:center}

#remix{display:flex;align-items:center;gap:9px;border:2px solid var(--ink);padding:10px 13px;min-height:44px;background:var(--paper);font:700 12px "DM Sans",Arial,sans-serif;box-shadow:3px 3px 0 var(--ink);cursor:pointer}
#remix[hidden]{display:none}
#remix:hover{transform:translateY(-2px);box-shadow:3px 5px 0 var(--ink)}
#remix:active{transform:translate(2px,2px);box-shadow:1px 1px 0 var(--ink)}
#remix>span:last-child{font-size:20px;line-height:1}
.swatches{display:flex;padding-right:3px}
.swatches i{width:13px;height:13px;border:1.5px solid var(--ink);border-radius:50%;margin-right:-4px;background:var(--bg)}
.swatches i:nth-child(2){background:var(--burst)}
.swatches i:nth-child(3){background:var(--accent)}
.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;margin:-1px;padding:0;border:0}

/* The artboard scales as a unit to fit the available width AND height.
   Decorative stars and bolts live outside the explosion's bounding box. */
html{height:100%;overflow:hidden}
body{height:100vh;height:100dvh;overflow:hidden;padding:clamp(6px,1.5vmin,18px)}
.comic-page{height:100%;min-height:0;display:grid;grid-template-rows:clamp(32px,7dvh,70px) minmax(0,1fr) clamp(48px,9dvh,80px)}
.masthead{min-height:0;padding:clamp(6px,1.5vh,18px) 24px;align-items:center}
.mini-logo{font-size:30px}.mini-logo span{font-size:24px}.issue{font-size:9px;padding:6px 8px}
.scene{display:block;position:relative;min-height:0;min-width:0;width:100%;height:100%;max-width:none;padding:0;margin:0;overflow:visible}
.scene-art{position:absolute;left:50%;top:50%;width:1100px;height:650px;transform:translate(-50%,-50%) scale(var(--scene-scale,.1));transform-origin:center}
.explosion{position:absolute;left:170px;top:110px;width:760px;height:430px;aspect-ratio:auto;margin:0}
.hero-copy{width:80%;padding:0}.company-name{font-size:76px}.eyebrow{font-size:11px}.invitation{font-size:16px;margin:22px 0 15px}
.fox{left:65px;top:0;width:120px;height:116px}
.speech-bubble{left:865px;right:auto;top:5px;padding:17px 28px 22px}.speech-bubble p{font-size:32px}


.ghost-note{left:962px;right:auto;bottom:15px}.ghost{width:105px}.ghost-note span{font-size:17px}
.tapir{position:absolute;left:16px;top:510px;width:142px;height:108px;transform:rotate(-5deg)}
.spark,.lightning{right:auto;bottom:auto}
.spark--one{left:270px;top:0;width:28px;height:40px;transform:rotate(-15deg)}
.spark--two{left:770px;top:606px;width:24px;height:34px}
.spark--three{left:1035px;top:140px;width:28px;height:42px;transform:rotate(12deg)}
.spark--four{left:40px;top:150px;width:35px;height:50px;transform:rotate(-10deg)}
.spark--five{left:540px;top:8px;width:25px;height:36px;transform:rotate(10deg)}
.lightning{left:1000px;top:320px;width:57px;height:86px;transform:rotate(12deg)}
.lightning--two{left:685px;top:0;width:30px;height:45px;transform:rotate(-15deg)}
.lightning--three{left:490px;top:604px;width:24px;height:36px;transform:rotate(24deg)}
.footer{min-height:0;padding:7px 24px 10px;gap:12px;grid-template-columns:1fr auto 1fr}
.footer p{font-size:10px;grid-column:3;grid-row:1}.palette-control{grid-column:2;grid-row:1}
#remix{min-height:36px;padding:8px 12px;font-size:11px}
@media(max-aspect-ratio:4/5){
  .comic-page{grid-template-rows:clamp(30px,6dvh,50px) minmax(0,1fr) clamp(64px,10dvh,84px);border-width:2px}
  .masthead{padding:6px 14px}.mini-logo{font-size:25px}.mini-logo span{font-size:20px}.issue{font-size:7px;padding:5px}.issue span{margin:0 3px}
  .scene-art{width:360px;height:650px}
  .explosion{left:-40px;top:155px;width:440px;height:320px}
  .hero-copy{width:68%}.company-name{font-size:34px;letter-spacing:1.8px;-webkit-text-stroke:5px var(--ink);text-shadow:3px 4px 0 var(--ink)}
  .eyebrow{font-size:8px;letter-spacing:1.2px;margin-bottom:13px}.invitation{font-size:12px;margin:17px 0 12px}
  .email{font-size:13px;gap:7px;padding:11px 12px;border-width:2px;box-shadow:3px 4px 0 var(--ink)}.email svg{width:18px;height:18px}
  .fox{left:12px;top:8px;width:85px;height:82px}
  .speech-bubble{left:226px;top:80px;padding:12px 16px 16px;border-width:2.5px;box-shadow:3px 3px 0 var(--ink)}.speech-bubble p{font-size:23px}
  .speech-bubble:before{bottom:-22px}.speech-bubble:after{bottom:-14px}
  
  
  .ghost-note{left:270px;bottom:60px}.ghost{width:77px}.ghost-note span{font-size:13px}
  .tapir{left:135px;top:535px;width:110px;height:84px}
  .spark--one{left:120px;top:10px;width:23px;height:33px}
  .spark--two{left:110px;top:85px;width:20px;height:29px}
  .spark--three{left:320px;top:602px;width:20px;height:29px}
  .spark--four{left:35px;top:602px;width:20px;height:29px}
  .spark--five{left:190px;top:87px;width:18px;height:26px}
  .lightning{left:260px;top:604px;width:23px;height:35px}
  .lightning--two{left:174px;top:24px;width:27px;height:41px}
  .lightning--three{left:90px;top:602px;width:23px;height:35px}
  .footer{grid-template-columns:1fr;grid-template-rows:auto auto;padding:4px 14px 8px;gap:7px}
  .palette-control{grid-column:1;grid-row:1;justify-self:center}.footer p{grid-column:1;grid-row:2;font-size:8px;justify-self:end}
  #remix{min-height:34px;padding:7px 10px;font-size:10px}
}
@media(max-height:400px){.masthead{padding:3px 16px}.mini-logo{font-size:23px}.issue{font-size:7px;padding:4px}#remix{min-height:30px;padding:5px 9px}.footer{padding:4px 16px}.footer p{font-size:8px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{transition:none!important;scroll-behavior:auto!important}}





@media(max-aspect-ratio:4/5){
  
  
  
  
  .spark--two{left:132px;top:85px}
}

.animal-caption{position:absolute;font-family:"Kalam",cursive;font-weight:700;font-size:17px;line-height:1.15;text-align:center}
.fox-caption{left:25px;top:116px;width:205px;transform:rotate(-7deg)}
.tapir{left:35px;top:500px}
.tapir-caption{left:10px;top:610px;width:195px;transform:rotate(-5deg)}
.spark--four{left:25px;top:190px}
@media(max-aspect-ratio:4/5){
  .fox{top:60px;height:75px;width:78px}
  .fox-caption{left:0;top:135px;width:110px;font-size:12px}
  
  .tapir{left:135px;top:527px;width:110px;height:84px}
  .tapir-caption{left:120px;top:612px;width:136px;font-size:13px}
  .spark--four{left:35px;top:602px}
}

/* A continuous outline joins the speech bubble and tail without a seam. */
.speech-bubble--best{left:8px;right:auto;top:245px;width:138px;height:116px;padding:0;border:0;border-radius:0;background:none;box-shadow:none;transform:rotate(-9deg)}
.speech-bubble--best:before,.speech-bubble--best:after{content:none}
.best-bubble-outline{display:block;width:100%;height:100%;overflow:visible;fill:var(--paper);stroke:var(--ink);stroke-width:3.5;stroke-linejoin:round;filter:drop-shadow(3px 3px 0 var(--ink))}
.best-bubble-mobile{display:none}
.speech-bubble--best p{position:absolute;left:0;top:23%;width:100%;font-size:27px;line-height:.98}
@media(max-aspect-ratio:4/5){
  .speech-bubble--best{left:4px;top:510px;width:116px;height:102px}
  .best-bubble-desktop{display:none}.best-bubble-mobile{display:block}
  .speech-bubble--best p{top:43%;font-size:20px}
}
