/* ============================================================================
   PIXEL WRAP STUDIOS — BRAND STYLE SHEET  (pixelwrap-brand.css)
   Portable design system: colour tokens, light/dark themes, the header & footer
   chrome, and the shared UI primitives (.card .btn .seg .chip .slider .field
   .switch .toast .wrap …). Externalised from <style id="pixelwrap-kit">.

   ▶ RE-SKIN THE WHOLE SITE: edit the :root token block (and [data-theme="light"]).
     Every page linking this file re-skins at once. To bolt the look onto another
     site, copy this single file and link it there.
   Tool-specific layout stays in each tool's own <style id="pixelwrap-addons">,
   so re-skins never touch a tool's geometry or wiring.
   ============================================================================ */

:root{
  
  --pink:#ff3da5; --cyan:#27d3e6; --orange:#f59a4b; --rose:#c47a92; --teal:#5ba6b8;
  --pink-grad:linear-gradient(135deg,#ff5cb6,#ff1f86);
  --cyan-grad:linear-gradient(135deg,#52e6f4,#16b9cd);
  --orange-grad:linear-gradient(135deg,#ffb36b,#f5821f);
  
  --ink:#0c0c0e; --ink-2:#16151a; --panel:#1c1b22; --panel-2:#24222c; --stage:#141318;
  --line:rgba(255,255,255,.10); --line-2:rgba(255,255,255,.18);
  --text:#f4f1ea; --muted:#a39fb0;
  
  --fd:'Bangers',cursive;          --font-display:var(--fd);
  --fm:'Permanent Marker',cursive; --font-mark:var(--fm);
  --fb:'Montserrat',sans-serif;    --font-body:var(--fb);
  
  --radius:18px; --radius-sm:11px;
}
[data-theme="light"]{
  --ink:#ffe8f3; --ink-2:#ffffff; --panel:#ffffff; --panel-2:#fdedf1; --stage:#f6e0ea;
  --line:rgba(0,0,0,.10); --line-2:rgba(0,0,0,.16);
  --text:#231a26; --muted:#8d7f93;
}


*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{font-family:var(--fb);background:var(--ink);color:var(--text);min-height:100vh;-webkit-font-smoothing:antialiased}
a{color:var(--cyan)}
img{max-width:100%}


.pw-topbar{position:sticky;top:0;z-index:20;display:flex;align-items:center;justify-content:space-between;
  gap:14px;padding:14px clamp(16px,4vw,28px);border-bottom:1px solid var(--line);
  background:rgba(12,12,14,.72);backdrop-filter:blur(8px);flex-wrap:wrap}
[data-theme="light"] .pw-topbar{background:rgba(255,240,247,.82)}
.pw-brand{display:flex;align-items:center;gap:13px;flex-wrap:wrap}
.logo{display:inline-flex;gap:9px;align-items:baseline;text-decoration:none;background:#000;color:#fff;
  padding:6px 13px 9px;border-radius:10px;font-family:var(--fd);font-size:26px;letter-spacing:1px;line-height:1;
  transform:rotate(-3deg);box-shadow:0 6px 0 rgba(0,0,0,.35);transition:transform .12s,box-shadow .12s}
.logo:hover{transform:rotate(-3deg) translateY(2px);box-shadow:0 3px 0 rgba(0,0,0,.35)}
.logo .pw{color:var(--cyan);white-space:nowrap}.logo .st{color:var(--pink);white-space:nowrap}
.pw-toolname{font-family:var(--fm);font-size:13px;color:var(--orange);transform:rotate(-1deg)}
.pw-top-right{display:flex;gap:10px;align-items:center}
.pw-link{color:var(--muted);text-decoration:none;font-size:12.5px;font-weight:600}.pw-link:hover{color:var(--cyan)}
.themebtn{display:inline-flex;align-items:center;gap:7px;height:38px;padding:0 14px;border-radius:999px;
  border:1px solid var(--line-2);background:var(--panel);color:var(--text);cursor:pointer;
  font-family:var(--fb);font-weight:700;font-size:12.5px}
.themebtn:hover{border-color:var(--cyan)}
@media(max-width:680px){.logo{flex-direction:column;align-items:flex-start;gap:0;line-height:1.02}}


.wrap{max-width:1240px;margin:0 auto;padding:18px;display:grid;gap:18px;align-items:start}
.pw-cols-2{grid-template-columns:340px minmax(0,1fr)}
.pw-cols-3{grid-template-columns:340px minmax(0,1fr) 180px}
.col{display:flex;flex-direction:column;gap:18px}
@media(max-width:820px){.pw-cols-3{grid-template-columns:340px minmax(0,1fr)}}
@media(max-width:680px){.pw-cols-2,.pw-cols-3{grid-template-columns:1fr}}


.card{background:linear-gradient(180deg,var(--panel),var(--panel-2));border:1px solid var(--line);
  border-radius:var(--radius);padding:18px;box-shadow:0 10px 30px rgba(0,0,0,.30)}
.card + .card{margin-top:18px}
h2{font-family:var(--fd);font-weight:400;font-size:21px;letter-spacing:.5px}
h2 .dot{color:var(--pink)}
.lead{font-size:12px;color:var(--muted);margin:3px 0 14px;line-height:1.5}
.blk{margin-bottom:18px;border-top:1px solid var(--line);padding-top:16px}
.blk:first-of-type{border-top:0;padding-top:0}
.blk h3{font-family:var(--fm);font-weight:400;font-size:13px;letter-spacing:.3px;color:var(--cyan);
  margin:0 0 9px;display:flex;align-items:center;gap:8px}
.blk h3:before{content:"";width:8px;height:8px;border-radius:2px;background:var(--pink);box-shadow:0 0 8px var(--pink)}
.mini{font-size:11px;color:var(--muted);margin:4px 0 8px;line-height:1.5}
.mini b{color:var(--text)}
.note{background:var(--ink-2);border:1px solid var(--line);border-left:3px solid var(--orange);
  border-radius:10px;padding:11px 13px;font-size:11.5px;color:var(--muted);line-height:1.55}


.btn{border:0;border-radius:var(--radius-sm);padding:11px 14px;font-weight:800;font-size:12.5px;cursor:pointer;
  font-family:var(--fb);transition:.15s;width:100%;color:#04222a}
.btn.grad{background:var(--pink-grad);color:#2a0418}
.btn.cyan{background:var(--cyan-grad);color:#04232a}
.btn.orange{background:var(--orange-grad);color:#2a1500}
.btn.ghost{background:var(--ink-2);color:var(--text);border:1px solid var(--line-2)}
.btn.ghost:hover{border-color:var(--cyan);color:var(--cyan)}
.btn:disabled{opacity:.45;cursor:not-allowed;filter:grayscale(.3)}
.btn.row{width:auto;padding:9px 13px}
.btnrow{display:flex;gap:8px;flex-wrap:wrap;margin-top:8px}


.seg{display:flex;flex-wrap:wrap;gap:5px;background:var(--panel-2);border:1px solid var(--line);border-radius:12px;padding:5px}
.seg button{flex:1;min-width:64px;border:0;background:transparent;color:var(--muted);font-weight:700;
  padding:9px 6px;border-radius:8px;cursor:pointer;font-size:13px;font-family:var(--fb)}
.seg button.active{background:var(--pink-grad);color:#2a0418}

.iconseg button{min-width:0;display:flex;align-items:center;justify-content:center;padding:9px 4px}
.iconseg svg{width:18px;height:18px;display:block}


.slider label{display:flex;justify-content:space-between;font-size:11px;letter-spacing:1px;text-transform:uppercase;
  color:var(--muted);font-weight:700;margin-bottom:6px}
.slider label b{color:var(--orange);font-family:var(--fm);font-size:13px;letter-spacing:0}
input[type=range]{width:100%;accent-color:var(--pink);height:4px}
.opt{display:flex;justify-content:space-between;align-items:center;font-size:12.5px;color:var(--text);padding:6px 0;gap:10px}
.switch{position:relative;width:42px;height:23px;flex:0 0 auto}
.switch input{opacity:0;width:0;height:0}
.track{position:absolute;inset:0;background:var(--ink-2);border:1px solid var(--line-2);border-radius:20px;transition:.18s;cursor:pointer}
.track:before{content:"";position:absolute;width:17px;height:17px;border-radius:50%;background:var(--muted);top:2px;left:2px;transition:.18s}
.switch input:checked+.track{background:var(--cyan-grad);border-color:transparent}
.switch input:checked+.track:before{transform:translateX(19px);background:#04232a}


.field{width:100%;background:var(--ink-2);border:1px solid var(--line);color:var(--text);border-radius:10px;
  padding:9px 11px;font-size:12.5px;font-family:var(--fb)}
.field:focus{outline:none;border-color:var(--cyan)}
.row{display:flex;align-items:center;justify-content:space-between;gap:10px;margin:8px 0}
.row label{font-size:12px;color:var(--muted);font-weight:600}
input[type=color]{width:46px;height:34px;border:1px solid var(--line-2);border-radius:9px;background:none;cursor:pointer;padding:3px}
.drop{border:2px dashed var(--line-2);border-radius:12px;padding:16px;text-align:center;cursor:pointer;
  transition:.15s;background:var(--ink-2);color:var(--muted);font-size:12px}
.drop:hover,.drop.over{border-color:var(--cyan);color:var(--text)}
.drop strong{display:block;font-size:13px;margin-bottom:3px;color:var(--text)}


.chips{display:flex;gap:8px;flex-wrap:wrap}
.chip{position:relative;width:30px;height:30px;border-radius:8px;cursor:pointer;border:2px solid rgba(0,0,0,.18);box-shadow:0 1px 3px rgba(0,0,0,.18)}
.chip.sel{outline:2px solid var(--pink);outline-offset:2px}
.chip.dragging{opacity:.35}
.chip.over{outline:2px dashed var(--cyan);outline-offset:2px}
.chip .x{position:absolute;top:-7px;right:-7px;width:17px;height:17px;line-height:13px;text-align:center;border-radius:50%;
  background:var(--pink);color:#fff;font-size:13px;font-weight:800;border:2px solid var(--panel);cursor:pointer;display:none;z-index:2}
.chip:hover .x,.chip.sel .x{display:block}
.chip .chipcolor{position:absolute;inset:0;width:100%;height:100%;opacity:0;border:0;padding:0;margin:0;pointer-events:none;cursor:pointer}


.traycol{position:sticky;top:16px;align-self:start;max-height:calc(100vh - 32px);overflow-y:auto}
.trayhead{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:6px}
.counter{font-family:var(--fm);color:var(--orange);font-size:13px}.counter b{color:var(--cyan)}
.tray{display:flex;flex-wrap:wrap;gap:8px;margin-top:6px;min-height:120px;padding:2px}
.titem{position:relative;width:58px;height:58px;border-radius:9px;overflow:hidden;border:1px solid var(--line-2);background:var(--panel-2);cursor:pointer;flex:0 0 auto}
.titem.active{outline:2px solid var(--pink);outline-offset:-2px}
.titem img{width:100%;height:100%;display:block;object-fit:cover}
.titem .x{position:absolute;top:2px;right:2px;width:17px;height:17px;border-radius:50%;background:rgba(0,0,0,.6);color:#fff;border:none;cursor:pointer;font-size:12px;line-height:1;display:grid;place-items:center;padding:0}
.titem .x:hover{background:var(--pink)}
.trayEmpty{font-size:11.5px;color:var(--muted);line-height:1.5;padding:14px;border:1px dashed var(--line-2);border-radius:11px;text-align:center;margin-top:6px}
@media(max-width:820px){.traycol{position:static;max-height:none;overflow:visible}.tray{max-height:340px;overflow-y:auto}}


.toast{position:fixed;left:50%;bottom:26px;transform:translateX(-50%) translateY(16px);background:#0a0a0c;
  border:1px solid var(--line-2);color:#fff;padding:10px 16px;border-radius:11px;font-size:12.5px;font-weight:600;
  opacity:0;transition:.25s;pointer-events:none;z-index:60}
.toast.show{opacity:1;transform:translateX(-50%)}


.modal{position:fixed;inset:0;background:rgba(0,0,0,.6);display:none;align-items:center;justify-content:center;padding:20px;z-index:200}
.modal.show{display:flex}
.modalbox{background:var(--panel);border:1px solid var(--line);border-radius:14px;max-width:640px;width:100%;max-height:84vh;overflow:auto;padding:22px}
.modalbox.wide{max-width:760px}
.modalbox h4{font-family:var(--fm);font-weight:400;color:var(--pink);margin-bottom:12px;font-size:17px}


.pw-footer{position:relative;z-index:1;border-top:1px solid var(--line);margin-top:46px;padding:36px clamp(16px,4vw,28px) 18px;text-align:left}
[data-theme="light"] .pw-footer{background:rgba(255,255,255,.4)}
.pw-foot-inner{max-width:1180px;margin:0 auto;display:flex;flex-wrap:wrap;gap:30px;justify-content:space-between}
.pw-foot-brand{max-width:300px}
.pw-foot-logo{display:inline-flex;gap:9px;align-items:baseline;background:#000;color:#fff;border-radius:10px;
  padding:6px 13px 9px;font-family:var(--fd);font-size:22px;letter-spacing:1px;line-height:1;text-decoration:none;
  transform:rotate(-3deg);box-shadow:0 6px 0 rgba(0,0,0,.32)}
.pw-foot-logo .pw{color:var(--cyan)}.pw-foot-logo .st{color:var(--pink)}
.pw-foot-tag{font-size:12px;color:var(--muted);margin-top:13px;line-height:1.55}
.pw-foot-cols{display:flex;gap:42px;flex-wrap:wrap;flex:1;justify-content:space-between}
.pw-foot-col h4{font-family:var(--fm);font-weight:400;font-size:13px;color:var(--orange);margin-bottom:8px}
.pw-foot-col a{display:block;color:var(--muted);text-decoration:none;font-size:12.5px;font-weight:600;margin:6px 0}
.pw-foot-col a:hover{color:var(--cyan)}
.pw-foot-base{max-width:1180px;margin:24px auto 0;padding-top:15px;border-top:1px solid var(--line);font-size:11.5px;
  color:var(--muted);display:flex;justify-content:space-between;flex-wrap:wrap;gap:8px}
.pw-foot-base a{color:var(--muted);text-decoration:none}.pw-foot-base a:hover{color:var(--cyan)}
@media(max-width:680px){
  .pw-foot-col h4{cursor:pointer;display:flex;justify-content:space-between}
  .pw-foot-col h4:after{content:"+";color:var(--muted)}
  .pw-foot-col.open h4:after{content:"–"}
  .pw-foot-col a{display:none}
  .pw-foot-col.open a{display:block}
}
