/* ============================================================
   GifDeck — maker.css   (PUBLIC MAKER · /maker/)
   GIF SOUP chrome — matches the landing (gifdeck_landing_soup).
   Loaded root-absolute as  /css/maker.css.

   This is the maker's OWN, standalone stylesheet: the maker page
   loads ONLY this file, never gifdeck.css. That keeps it fully
   isolated (zero collision with the working landing/admin) while
   wearing the same SOUP look.

     - Chrome ........ GIF Soup (cream #fff7ea, halftone, Archivo
                       Black, coral/blue/lime, hard offset shadows)
     - THE CARD ...... verbatim v8 (the dark trading card — the
                       product itself; unchanged)
     - Klipy picker .. soup-skinned (Search KLIPY + Powered by KLIPY)

   Fonts (Archivo Black / Rajdhani / Barlow) load in the page <head>.
   ============================================================ */

:root{
  --display:'Rajdhani',sans-serif; --body:'Barlow',sans-serif; --chunk:'Archivo Black',sans-serif;
  --paper:#fff7ea; --coral:#ff4d6d; --blue:#2f6bff; --lime:#c4f23a; --ink:#14130f;
  --gold:#c9a84c; --brand:#e7cf86; --muted:#3a3729;
  --field:#ffffff;
}
*{box-sizing:border-box;margin:0;padding:0;}
body{font-family:var(--body);background:var(--paper);color:var(--ink);
  min-height:100vh;position:relative;overflow-x:hidden;padding:22px 22px 80px;}
/* halftone texture — the soup signature */
body::before{content:'';position:fixed;inset:0;pointer-events:none;z-index:0;opacity:.5;
  background-image:radial-gradient(rgba(20,19,15,.13) 1.4px,transparent 1.5px);background-size:14px 14px;}
.wrap{position:relative;z-index:1;max-width:1200px;margin:0 auto;}

/* ---------- header ---------- */
.top{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-bottom:8px;flex-wrap:wrap;}
.brandline{display:inline-flex;align-items:center;gap:8px;font-family:var(--chunk);font-size:1.2rem;
  color:var(--ink);background:var(--lime);padding:7px 15px;border:3px solid var(--ink);border-radius:13px;
  box-shadow:5px 5px 0 var(--ink);transform:rotate(-2deg);}
.sub{font-family:var(--body);font-weight:600;color:var(--muted);font-size:.95rem;margin:0 0 26px;}

/* ---------- stepper (soup pills) ---------- */
.stepper{display:flex;gap:12px;justify-content:center;margin:0 0 30px;flex-wrap:wrap;}
.stepper button{display:flex;align-items:center;gap:9px;background:var(--paper);border:3px solid var(--ink);
  border-radius:30px;padding:9px 18px;cursor:pointer;color:var(--ink);box-shadow:3px 3px 0 var(--ink);
  font-family:var(--chunk);font-size:.74rem;text-transform:uppercase;letter-spacing:.3px;}
.stepper button .n{width:22px;height:22px;border-radius:50%;display:flex;align-items:center;justify-content:center;
  font-size:.72rem;font-family:var(--chunk);background:var(--paper);border:2.5px solid var(--ink);color:var(--ink);}
.stepper button.on{background:var(--lime);}
.stepper button.on .n{background:var(--ink);color:var(--paper);border-color:var(--ink);}

.app{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:42px;align-items:start;}

/* ---------- form panel (cream card, hard shadow) ---------- */
.panel{min-width:0;background:var(--paper);border:3px solid var(--ink);
  border-radius:16px;padding:22px;box-shadow:7px 7px 0 var(--ink);}
.step{display:none;}
.step.active{display:block;}
.steptitle{font-family:var(--chunk);font-size:.95rem;color:var(--ink);margin-bottom:16px;
  padding-bottom:10px;border-bottom:3px dashed var(--ink);}
.grp{margin-bottom:18px;}
label{display:block;font-family:var(--chunk);font-size:.7rem;text-transform:uppercase;
  letter-spacing:.4px;color:var(--ink);margin-bottom:7px;}
input[type=text],textarea{width:100%;background:var(--field);border:2.5px solid var(--ink);
  border-radius:9px;color:var(--ink);font-family:var(--body);font-weight:500;font-size:.9rem;padding:10px 12px;}
input[type=text]:focus,textarea:focus{outline:none;box-shadow:3px 3px 0 var(--blue);}
textarea{resize:vertical;min-height:74px;line-height:1.45;}
.two{display:flex;gap:9px;}
.hint{font-family:var(--body);font-weight:600;font-size:.72rem;color:var(--muted);margin-top:6px;line-height:1.4;}
.hint code{font-family:var(--display);font-weight:700;color:var(--coral);background:rgba(255,77,109,.1);
  padding:1px 5px;border-radius:4px;}

/* size-awareness note (Step 1) — the chosen GIF drives final file size */
.gifsize-note{display:flex;gap:11px;align-items:flex-start;background:#fff;
  border:2.5px solid var(--ink);border-left:9px solid var(--blue);border-radius:11px;
  padding:12px 14px;margin-bottom:14px;box-shadow:3px 3px 0 var(--ink);}
.gifsize-note .ic{font-size:1.15rem;line-height:1;flex:0 0 auto;margin-top:1px;}
.gifsize-note p{font-family:var(--body);font-weight:600;font-size:.78rem;color:var(--ink);line-height:1.5;margin:0;}
.gifsize-note b{font-family:var(--chunk);font-weight:400;}
.gifsize-note .lo{color:var(--blue);}

/* symbols */
.symrow{display:flex;gap:7px;flex-wrap:wrap;align-items:center;}
.symbtn{width:38px;height:38px;border-radius:9px;border:2.5px solid var(--ink);
  background:var(--field);color:var(--ink);font-size:1.05rem;cursor:pointer;display:flex;align-items:center;justify-content:center;}
.symbtn.on{background:var(--lime);box-shadow:2px 2px 0 var(--ink);}
.symrow input{width:70px;text-align:center;}

/* color */
.colorrow{display:flex;gap:10px;align-items:center;}
input[type=color]{width:50px;height:42px;border:2.5px solid var(--ink);border-radius:9px;
  background:var(--field);cursor:pointer;padding:3px;}
#f_hex{width:120px;text-transform:uppercase;font-family:var(--display);font-weight:700;}

/* rarity */
.rarity{display:flex;gap:7px;flex-wrap:wrap;}
.rbtn{flex:1;min-width:64px;border:2.5px solid var(--ink);background:var(--field);border-radius:9px;
  padding:8px 4px;cursor:pointer;text-align:center;font-family:var(--chunk);
  font-size:.66rem;text-transform:uppercase;letter-spacing:.2px;color:var(--ink);}
.rbtn .swatch{display:block;height:7px;border-radius:4px;margin:0 3px 6px;border:1px solid var(--ink);}
.rbtn.on{background:var(--lime);box-shadow:2px 2px 0 var(--ink);}

/* corner flare picker */
.cornerpick{display:flex;gap:7px;flex-wrap:wrap;}
.cbtn{flex:1;min-width:60px;border:2.5px solid var(--ink);background:var(--field);border-radius:9px;
  padding:8px 4px 6px;cursor:pointer;text-align:center;color:var(--ink);
  font-family:var(--chunk);font-size:.6rem;text-transform:uppercase;letter-spacing:.2px;}
.cbtn svg{width:24px;height:24px;display:block;margin:0 auto 4px;color:var(--ink);}
.cbtn.on{background:var(--lime);box-shadow:2px 2px 0 var(--ink);}

/* ---------- step nav ---------- */
.nav{display:flex;gap:11px;margin-top:20px;}
.nav button{flex:1;font-family:var(--chunk);font-size:.78rem;text-transform:uppercase;letter-spacing:.3px;
  border-radius:11px;padding:12px;cursor:pointer;border:3px solid var(--ink);}
.nav .back{background:var(--paper);color:var(--ink);box-shadow:4px 4px 0 var(--blue);}
.nav .back:hover{transform:translate(2px,2px);box-shadow:2px 2px 0 var(--blue);}
.nav .next{background:var(--ink);color:var(--paper);box-shadow:4px 4px 0 var(--coral);}
.nav .next:hover{transform:translate(2px,2px);box-shadow:2px 2px 0 var(--coral);}
.nav .next:only-child{flex:1;}

/* ---------- finish step ---------- */
.tabs{display:flex;border:3px solid var(--ink);border-radius:11px;overflow:hidden;margin-bottom:16px;}
.tab{flex:1;font-family:var(--chunk);font-size:.72rem;text-transform:uppercase;letter-spacing:.3px;color:var(--ink);
  background:var(--field);border:none;padding:11px 8px;cursor:pointer;}
.tab+.tab{border-left:3px solid var(--ink);}
.tab.on{background:var(--coral);color:var(--paper);}
.dlbar{display:flex;flex-direction:column;align-items:center;gap:8px;margin:4px 0 18px;}
.dl{width:100%;font-family:var(--chunk);font-size:.86rem;text-transform:uppercase;letter-spacing:.3px;
  background:var(--ink);color:var(--paper);border:3px solid var(--ink);border-radius:12px;box-shadow:6px 6px 0 var(--coral);
  padding:14px 22px;cursor:pointer;}
.dl:hover{transform:translate(2px,2px);box-shadow:4px 4px 0 var(--coral);}
.dl[disabled]{opacity:.6;cursor:progress;box-shadow:6px 6px 0 var(--coral);transform:none;}
.dlsize{font-family:var(--chunk);font-size:1rem;color:var(--ink);}
.dlnote{font-family:var(--body);font-weight:600;font-size:.74rem;color:var(--muted);max-width:260px;text-align:center;line-height:1.4;}

/* size-tier selector (Step 3) — replaces the old Full/Social tabs */
.sizepick{display:flex;flex-direction:column;gap:11px;margin-bottom:18px;}
.sbtn{display:block;width:100%;text-align:left;cursor:pointer;background:var(--field);
  border:2.5px solid var(--ink);border-radius:12px;padding:13px 15px;box-shadow:3px 3px 0 var(--ink);font-family:var(--body);}
.sbtn:hover{transform:translate(1px,1px);box-shadow:2px 2px 0 var(--ink);}
.sbtn.on{background:var(--lime);box-shadow:4px 4px 0 var(--ink);}
.sbtn .row1{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:5px;}
.sbtn .nm{font-family:var(--chunk);font-size:.92rem;letter-spacing:.3px;color:var(--ink);}
.sbtn .feel{font-family:var(--chunk);font-size:.58rem;letter-spacing:.4px;text-transform:uppercase;color:var(--ink);
  background:var(--paper);border:2px solid var(--ink);border-radius:20px;padding:3px 9px;white-space:nowrap;}
.sbtn.on .feel{background:#fff;}
.sbtn .what{font-family:var(--body);font-weight:600;font-size:.76rem;color:var(--muted);line-height:1.45;}
.sbtn.on .what{color:var(--ink);}

/* ---------- preview (desktop side) ---------- */
.side{display:flex;flex-direction:column;align-items:center;gap:14px;
  position:sticky;top:22px;}
.side .cap{font-family:var(--chunk);font-size:.7rem;letter-spacing:.5px;
  text-transform:uppercase;color:var(--muted);}
#preview_mobile{margin-bottom:18px;display:flex;justify-content:center;}
/* hard soup shadow under the preview card so it sits in the cream world */
.side #preview .frame,#preview_mobile .frame{box-shadow:10px 10px 0 var(--ink),0 14px 30px rgba(0,0,0,.4);}

/* ============================================================
   KLIPY PICKER (soup-skinned)
   ============================================================ */
.srctabs{display:flex;border:3px solid var(--ink);border-radius:11px;overflow:hidden;margin-bottom:14px;}
.srctab{flex:1;font-family:var(--chunk);font-size:.72rem;text-transform:uppercase;letter-spacing:.3px;color:var(--ink);
  background:var(--field);border:none;padding:11px 8px;cursor:pointer;}
.srctab+.srctab{border-left:3px solid var(--ink);}
.srctab.on{background:var(--ink);color:var(--paper);}
.srcpane{display:none;}
.srcpane.on{display:block;}

.klipy-search{display:flex;gap:9px;}
.klipy-search input{flex:1;}
.klipy-go{flex:0 0 auto;font-family:var(--chunk);font-size:.74rem;text-transform:uppercase;letter-spacing:.3px;
  background:var(--ink);color:var(--paper);border:3px solid var(--ink);border-radius:9px;padding:0 16px;cursor:pointer;
  box-shadow:3px 3px 0 var(--coral);}
.klipy-go:hover{transform:translate(1px,1px);box-shadow:2px 2px 0 var(--coral);}
/* clear (×) — shows in either search row when there's a query; click empties + reloads all */
.src-clear{flex:0 0 auto;display:none;width:42px;font-family:var(--chunk);font-size:1.1rem;line-height:1;
  background:var(--paper);color:var(--ink);border:3px solid var(--ink);border-radius:9px;cursor:pointer;
  box-shadow:3px 3px 0 var(--blue);align-items:center;justify-content:center;}
.src-clear:hover{transform:translate(1px,1px);box-shadow:2px 2px 0 var(--blue);}
.src-clear.show{display:flex;}

.klipy-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(108px,1fr));gap:7px;margin-top:12px;max-height:340px;
  overflow-y:auto;padding:2px;}
.klipy-cell{position:relative;border:2.5px solid var(--ink);border-radius:9px;overflow:hidden;cursor:pointer;
  background:var(--field);aspect-ratio:1/1;padding:0;}
.klipy-cell img{width:100%;height:100%;object-fit:cover;display:block;}
.klipy-cell.on{border-color:var(--coral);box-shadow:0 0 0 3px var(--coral);}
.klipy-state{font-family:var(--body);font-weight:600;font-size:.76rem;color:var(--muted);margin-top:12px;text-align:center;line-height:1.4;min-height:18px;}
.klipy-more{width:100%;margin-top:12px;font-family:var(--chunk);font-size:.72rem;text-transform:uppercase;letter-spacing:.3px;
  color:var(--ink);background:var(--paper);border:3px solid var(--ink);border-radius:9px;padding:10px;cursor:pointer;
  box-shadow:3px 3px 0 var(--blue);display:none;}
.klipy-more:hover{transform:translate(1px,1px);box-shadow:2px 2px 0 var(--blue);}
.klipy-more.show{display:block;}

/* "Powered by KLIPY" attribution (required by Klipy) */
.klipy-attr{display:flex;align-items:center;justify-content:flex-end;gap:6px;margin-top:12px;
  font-family:var(--chunk);font-size:.62rem;letter-spacing:.4px;text-transform:uppercase;color:var(--muted);}
.klipy-attr b{color:var(--coral);}

/* Elaine's library pane — reuses .klipy-* ; adds the Tumblr note + a name caption */
.lib-note{display:flex;gap:11px;align-items:flex-start;background:#fff;border:2.5px solid var(--ink);
  border-left:9px solid var(--coral);border-radius:11px;padding:12px 14px;margin-bottom:14px;box-shadow:3px 3px 0 var(--ink);}
.lib-note .ic{font-size:1.15rem;line-height:1;flex:0 0 auto;margin-top:1px;}
.lib-note p{font-family:var(--body);font-weight:600;font-size:.78rem;color:var(--ink);line-height:1.5;margin:0;}
.lib-note a{color:var(--blue);font-family:var(--chunk);font-weight:400;text-decoration:none;border-bottom:2px solid var(--blue);}
.lib-cell{aspect-ratio:auto;display:flex;flex-direction:column;}
.lib-cell img{aspect-ratio:1/1;height:auto;}
.lib-cell .cap{font-family:var(--body);font-weight:700;font-size:.64rem;color:var(--ink);text-align:left;
  padding:5px 7px;border-top:2.5px solid var(--ink);background:var(--paper);
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}

/* ============================================================
   THE CARD — verbatim v8 (the dark trading card; unchanged)
   ============================================================ */
.frame{position:relative;width:320px;border-radius:15px;padding:11px;
  background:linear-gradient(160deg,
    color-mix(in srgb,var(--theme),white 16%),
    color-mix(in srgb,var(--theme),black 40%) 55%,
    color-mix(in srgb,var(--theme),black 60%));
  box-shadow:0 10px 30px rgba(0,0,0,.55),0 0 0 1px rgba(0,0,0,.5);}
.ring{border-radius:12px;padding:2px;}
.frame.r-common .ring{background:linear-gradient(120deg,#b4bac4,#6e7480 50%,#b4bac4);}
.frame.r-rare   .ring{background:linear-gradient(120deg,#9fe6f7,#4a9bd6 50%,#7ad6c6);}
.frame.r-epic   .ring{background:linear-gradient(120deg,#f3da8e,#c9a84c 50%,#f3da8e);}
.frame.r-ultra  .ring{background:linear-gradient(120deg,#e7cf86,#c46ad6,#7ad6c6,#c46ad6,#e7cf86);
  background-size:220% 100%;animation:holo 4.5s linear infinite;}
@keyframes holo{to{background-position:220% 0;}}
.gd-content{position:relative;border-radius:11px;overflow:hidden;
  background:linear-gradient(165deg,color-mix(in srgb,var(--theme),black 60%),#16101e);}
.gd-badge{position:absolute;top:9px;right:9px;z-index:7;font-family:var(--display);font-weight:700;
  font-size:.62rem;letter-spacing:1.1px;padding:4px 10px;border-radius:20px;color:#241830;
  background:linear-gradient(120deg,#e7cf86,#c9a84c);box-shadow:0 1px 4px rgba(0,0,0,.5);
  display:flex;align-items:center;gap:4px;}
.gd-badge::before{content:'\25C6';font-size:.55rem;}
.gd-art{position:relative;margin:9px;border-radius:8px;overflow:hidden;aspect-ratio:var(--art-ar,4/3);
  border:1px solid color-mix(in srgb,var(--theme),transparent 55%);
  background:linear-gradient(180deg,#2a1c38,#160e20);}
.gd-art img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block;}
.gd-art::after{content:'';position:absolute;inset:0;pointer-events:none;border-radius:8px;
  box-shadow:inset 0 0 28px color-mix(in srgb,var(--theme),transparent 62%);}
.gd-name{font-family:var(--display);font-weight:700;font-size:1.3rem;letter-spacing:1px;text-align:center;
  color:color-mix(in srgb,var(--theme),white 50%);
  text-shadow:0 0 10px color-mix(in srgb,var(--theme),transparent 52%);padding-top:3px;}
.gd-type{font-family:var(--display);font-weight:600;font-size:.58rem;letter-spacing:2px;text-transform:uppercase;
  text-align:center;color:color-mix(in srgb,var(--theme),white 28%);}
.gd-divider{height:1px;margin:7px 14px;
  background:linear-gradient(90deg,transparent,color-mix(in srgb,var(--theme),transparent 45%),transparent);}
.gd-effect{font-family:var(--body);font-size:.8rem;color:#dcd2e6;text-align:center;padding:0 16px 3px;line-height:1.42;}
.gd-effect b{color:color-mix(in srgb,var(--theme),white 60%);}
.gd-flavor{font-family:var(--body);font-style:italic;font-size:.7rem;color:#9a9aaa;text-align:center;padding:9px 14px 2px;}
.gd-syms{display:flex;justify-content:center;gap:8px;padding:9px 0 10px;font-size:.82rem;}
.gd-syms span{color:color-mix(in srgb,var(--theme),white 42%);
  text-shadow:0 0 6px color-mix(in srgb,var(--theme),transparent 45%);line-height:1;}
.gd-handle{text-align:center;font-family:var(--body);font-weight:600;font-size:.58rem;letter-spacing:.02em;
  opacity:.9;color:color-mix(in srgb,var(--theme),white 36%);padding:0 14px 12px;}
.m-full{--art-ar:4/3;}
.m-social{--art-ar:16/9;}

/* corner flares (verbatim v8) */
.cframe{position:absolute;inset:7px;z-index:5;pointer-events:none;border-radius:7px;
  --cc:color-mix(in srgb,var(--theme),white 46%);}
.cn{position:absolute;width:38px;height:38px;line-height:0;color:var(--cc);
  filter:drop-shadow(0 0 5px color-mix(in srgb,var(--theme),transparent 35%));}
.cn svg{width:100%;height:100%;display:block;}
.cn.tl{top:-3px;left:-3px;}
.cn.bl{bottom:-3px;left:-3px;transform:rotate(270deg);}
.cn.br{bottom:-3px;right:-3px;transform:rotate(180deg);}

/* ---------- responsive: desktop side preview; mobile preview only at Finish ---------- */
#preview_mobile{display:none;}
@media (max-width:859px){
  .app{grid-template-columns:1fr;gap:0;}
  .panel{max-width:none;}
  .side{display:none;}
  #preview_mobile{display:flex;}
}

/* a11y */
:focus-visible{outline:3px solid var(--blue);outline-offset:3px;}
@media (prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important;}}

/* ============================================================
   SYMBOL PICKER  (layout · slots · quick · emoji search)
   appended — soup-skinned to match the maker; nothing above changed
   ============================================================ */
.sublabel{margin-top:14px;}

/* layout picker (Trio / Repeat / Solo) */
.symlayout{display:flex;gap:7px;}
.lbtn{flex:1;border:2.5px solid var(--ink);background:var(--field);border-radius:9px;
  padding:8px 4px;cursor:pointer;text-align:center;font-family:var(--chunk);
  font-size:.66rem;text-transform:uppercase;letter-spacing:.2px;color:var(--ink);}
.lbtn .sub{display:block;font-family:var(--body);font-weight:600;font-size:.58rem;
  text-transform:none;letter-spacing:0;color:var(--muted);margin-top:3px;}
.lbtn.on{background:var(--lime);box-shadow:2px 2px 0 var(--ink);}

/* chosen slots */
.symslots{display:flex;gap:9px;margin-top:12px;}
.symslot{width:52px;height:52px;border:2.5px dashed var(--ink);border-radius:10px;background:var(--field);
  display:flex;align-items:center;justify-content:center;cursor:pointer;position:relative;}
.symslot.on{border-style:solid;box-shadow:3px 3px 0 var(--coral);}
.symslot.filled{border-style:solid;}
.symslot img{width:32px;height:32px;}
.symslot .geo{font-size:1.7rem;color:var(--ink);line-height:1;}
.symslot .ph{font-size:1.5rem;color:#bdb7a6;line-height:1;}
.symslot .x{position:absolute;top:-8px;right:-8px;width:20px;height:20px;border-radius:50%;
  background:var(--ink);color:#fff;border:2px solid var(--paper);font-size:.7rem;cursor:pointer;
  display:none;align-items:center;justify-content:center;line-height:1;padding:0;}
.symslot.filled .x{display:flex;}

/* quick picks */
.symquick{display:flex;gap:6px;flex-wrap:wrap;}
.qbtn{width:40px;height:40px;border-radius:9px;border:2.5px solid var(--ink);background:var(--field);
  cursor:pointer;display:flex;align-items:center;justify-content:center;}
.qbtn img{width:24px;height:24px;} .qbtn .geo{font-size:1.2rem;line-height:1;}
.qbtn:hover{background:var(--lime);}

/* emoji search picker */
.emojipick{border:3px solid var(--ink);border-radius:12px;padding:12px;background:#fff;}
.emojitones{display:flex;gap:6px;margin:10px 0;}
.emojitones .tone{width:24px;height:24px;border-radius:50%;border:2.5px solid var(--ink);cursor:pointer;padding:0;}
.emojitones .tone.on{box-shadow:0 0 0 2px var(--coral);}
.emojigrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(42px,1fr));gap:5px;
  max-height:240px;overflow-y:auto;padding:2px;}
.ecell{aspect-ratio:1/1;border:2px solid transparent;border-radius:8px;background:var(--field);cursor:pointer;
  display:flex;align-items:center;justify-content:center;padding:0;}
.ecell:hover{border-color:var(--ink);background:var(--paper);}
.ecell img{width:26px;height:26px;} .ecell .geo{font-size:1.3rem;line-height:1;color:var(--ink);}
.emptystate{grid-column:1/-1;font-family:var(--body);font-weight:600;font-size:.76rem;
  color:var(--muted);text-align:center;padding:16px;}

/* card preview: symbols as Twemoji images (the dark card keeps its own look) */
.gd-syms{align-items:center;}
.gd-syms img{width:20px;height:20px;vertical-align:middle;}
.gd-syms.solo img{width:40px;height:40px;}
.gd-syms.solo span,.gd-syms.solo .geo{font-size:2rem;}

/* ============================================================
   SITE CHROME — bar + footer + modals
   ported verbatim from gifdeck.css so the maker matches the home
   page (the maker loads only this file, never gifdeck.css)
   ============================================================ */
.bar{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-bottom:36px;flex-wrap:wrap;}
.wordmark{display:inline-flex;align-items:center;gap:8px;font-family:var(--chunk);font-size:1.2rem;
  color:var(--ink);background:var(--lime);padding:7px 15px;border:3px solid var(--ink);border-radius:13px;
  box-shadow:5px 5px 0 var(--ink);transform:rotate(-2deg);}
.wordmark a{color:inherit;text-decoration:none;}
.barlinks{display:flex;gap:20px;font-family:var(--chunk);font-size:.72rem;text-transform:uppercase;flex-wrap:wrap;}
.barlinks a{text-decoration:none;color:var(--ink);cursor:pointer;}
.barlinks a:hover{color:var(--coral);}
.copyright{margin-top:50px;text-align:center;font-family:var(--display);font-weight:600;font-size:.72rem;
  letter-spacing:.6px;text-transform:uppercase;color:#8a8474;}

.cta{display:inline-block;font-family:var(--chunk);font-size:1rem;text-transform:uppercase;text-decoration:none;
  color:var(--paper);background:var(--ink);padding:14px 28px;border-radius:12px;border:3px solid var(--ink);
  box-shadow:6px 6px 0 var(--coral);cursor:pointer;}
.cta:hover{transform:translate(2px,2px);box-shadow:4px 4px 0 var(--coral);}
.cta.ghost{color:var(--ink);background:var(--paper);box-shadow:6px 6px 0 var(--blue);}
.cta.ghost:hover{box-shadow:4px 4px 0 var(--blue);}

/* modals — close via X ONLY */
.modal{position:fixed;inset:0;z-index:50;display:none;}
.modal.open{display:block;}
.modal .backdrop{position:absolute;inset:0;background:rgba(20,19,15,.62);}
.modal .sheet{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);
  width:min(940px,94vw);max-height:88vh;overflow:auto;background:var(--paper);
  border:4px solid var(--ink);border-radius:20px;box-shadow:12px 12px 0 var(--ink);padding:26px 24px 30px;}
.modal .sheet::before{content:'';position:absolute;inset:0;pointer-events:none;border-radius:16px;opacity:.4;
  background-image:radial-gradient(rgba(20,19,15,.12) 1.3px,transparent 1.4px);background-size:14px 14px;}
.modal-head{position:relative;z-index:1;display:flex;align-items:flex-start;justify-content:space-between;gap:14px;}
.modal-head h2{font-family:var(--chunk);font-size:1.5rem;text-transform:uppercase;line-height:1;}
.modal-head p{font-weight:600;color:#3a3729;font-size:.92rem;margin-top:8px;max-width:44ch;}
.x{flex:0 0 auto;width:42px;height:42px;border-radius:50%;border:3px solid var(--ink);background:var(--coral);
  color:var(--paper);font-family:var(--chunk);font-size:1.1rem;cursor:pointer;box-shadow:3px 3px 0 var(--ink);
  display:grid;place-items:center;line-height:1;}
.x:hover{transform:translate(2px,2px);box-shadow:1px 1px 0 var(--ink);}
.grid{position:relative;z-index:1;display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));
  gap:26px;margin-top:24px;justify-items:center;align-items:start;}
.modal-foot{position:relative;z-index:1;text-align:center;margin-top:28px;}

/* About modal rich text */
.prose{position:relative;z-index:1;margin-top:18px;font-weight:500;font-size:.96rem;line-height:1.6;color:var(--ink);max-width:60ch;}
.prose h2{font-family:var(--chunk);font-size:1.25rem;text-transform:uppercase;margin:18px 0 8px;}
.prose h2:first-child{margin-top:0;}
.prose h3{font-family:var(--display);font-weight:700;font-size:1.08rem;margin:14px 0 5px;}
.prose p{margin:9px 0;}
.prose ul,.prose ol{margin:9px 0 9px 26px;}
.prose li{margin:3px 0;}
.prose a{color:var(--blue);text-decoration:underline;}
.about-rule{height:0;border-top:3px dashed var(--ink);opacity:.4;margin:24px 0;position:relative;z-index:1;}

/* off-screen honeypot */
.hp{position:absolute!important;left:-9999px!important;width:1px;height:1px;overflow:hidden;}

/* contact form (in modal) */
.sheet-narrow{width:min(560px,94vw);}
.cform{position:relative;z-index:1;margin-top:22px;}
.send{font-family:var(--chunk);font-size:.9rem;text-transform:uppercase;color:var(--paper);background:var(--ink);
  border:3px solid var(--ink);border-radius:11px;padding:12px 24px;cursor:pointer;box-shadow:5px 5px 0 var(--coral);}
.send:hover{transform:translate(2px,2px);box-shadow:3px 3px 0 var(--coral);}
.send[disabled]{opacity:.5;cursor:default;transform:none;box-shadow:3px 3px 0 var(--coral);}
.cform-done{margin-top:16px;font-family:var(--chunk);font-size:.8rem;text-transform:uppercase;color:var(--ink);
  background:var(--lime);border:3px solid var(--ink);border-radius:10px;padding:12px 16px;box-shadow:3px 3px 0 var(--ink);}
.cform-error{margin-top:16px;font-family:var(--chunk);font-size:.8rem;text-transform:uppercase;color:var(--paper);
  background:#b3203a;border:3px solid var(--ink);border-radius:10px;padding:12px 16px;box-shadow:3px 3px 0 var(--ink);}

/* form fields (contact form inherits these) */
.field{margin-bottom:15px;}
.field label{display:block;font-family:var(--chunk);font-size:.68rem;text-transform:uppercase;color:var(--ink);margin-bottom:6px;}
.field .hint{font-family:var(--body);font-weight:600;text-transform:none;color:var(--muted);font-size:.72rem;margin-left:6px;}
.field input,.field textarea,.field select{width:100%;background:#fff;border:2.5px solid var(--ink);border-radius:9px;
  color:var(--ink);font-family:var(--body);font-weight:600;font-size:.9rem;padding:10px 12px;}
.field textarea{resize:vertical;min-height:96px;line-height:1.45;}

@media (max-width:740px){ .modal .sheet{padding:22px 16px 26px;} }
