/* Palette sampled from the official Māo banner (parchment, cinnabar sun, straw hat) on 2026-11-11 */
:root{
  --paper:#f4ead7; --paper2:#ebdcc0; --paper3:#e2cfac;
  --ink:#1c120c; --ink2:#2a1b12; --ink3:#3a271b;
  --line:rgba(60,35,20,.16); --line-strong:rgba(60,35,20,.3);
  --text:#2a1b12; --text2:#5b4434; --muted:#8a7360;
  --accent:#c62f22; --accent-strong:#a8231a; --on-accent:#fff6ea; --accent-glow:rgba(198,47,34,.32);
  --straw:#d9a441; --straw-soft:#f0d79a;
  --positive:#2f8f4e; --negative:#c62f22;
  --font-display:"Fraunces",Georgia,serif;
  --font-body:"Plus Jakarta Sans",system-ui,sans-serif;
  --font-mono:"JetBrains Mono",ui-monospace,monospace;
  --font-brush:"Ma Shan Zheng",serif;
  --ease-out:cubic-bezier(.22,1,.36,1); --ease-snap:cubic-bezier(.2,.9,.1,1); --ease-fluid:cubic-bezier(.32,.72,0,1);
  color-scheme:light;
}
*{box-sizing:border-box;margin:0;padding:0}
html{overflow-x:clip;scroll-behavior:smooth;-webkit-tap-highlight-color:transparent}
body{background:var(--paper);color:var(--text);font-family:var(--font-body);font-size:16px;line-height:1.6;-webkit-font-smoothing:antialiased;overflow-x:clip;min-height:100dvh}
img{display:block;max-width:100%}
a{color:inherit;text-decoration:none}
button{font:inherit;cursor:pointer;border:0;background:none;color:inherit;touch-action:manipulation}
p{text-wrap:pretty}
h1,h2,h3{font-family:var(--font-display);font-weight:600;text-wrap:balance;letter-spacing:-.03em;line-height:1}
::selection{background:color-mix(in oklab,var(--accent) 30%,transparent)}
:focus-visible{outline:2px solid var(--accent);outline-offset:3px;border-radius:6px}
::-webkit-scrollbar{width:10px}::-webkit-scrollbar-track{background:var(--paper2)}::-webkit-scrollbar-thumb{background:var(--accent);border-radius:10px;border:2px solid var(--paper2)}

.skip{position:absolute;left:-9999px;top:8px;z-index:100;background:var(--ink);color:var(--paper);padding:8px 12px;border-radius:8px}
.skip:focus{left:16px}
.num{font-family:var(--font-mono);font-variant-numeric:tabular-nums slashed-zero;letter-spacing:-.01em}
.eyebrow{font:500 12px/1 var(--font-mono);letter-spacing:.16em;text-transform:uppercase;color:var(--accent);display:inline-flex;align-items:center;gap:8px}
.eyebrow::before{content:"";width:24px;height:1px;background:currentColor}
.wrap{width:min(1200px,100% - 32px);margin-inline:auto}

/* grain */
.grain{position:fixed;inset:0;pointer-events:none;z-index:90;opacity:.09;mix-blend-mode:multiply;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='200' height='200'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E")}
#petals{position:fixed;inset:0;pointer-events:none;z-index:5;width:100%;height:100%}

/* buttons */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;font-weight:600;font-size:16px;line-height:24px;padding:12px 24px;border-radius:999px;transition:transform .5s var(--ease-fluid),box-shadow .5s var(--ease-fluid),background .3s,color .3s;white-space:nowrap;position:relative}
.btn:active{transform:scale(.97)}
.btn-primary{background:var(--accent);color:var(--on-accent);box-shadow:0 4px 0 var(--accent-strong),0 12px 32px -8px var(--accent-glow);overflow:hidden}
.btn-primary:hover{transform:translateY(-2px);box-shadow:0 6px 0 var(--accent-strong),0 18px 40px -8px var(--accent-glow)}
.btn-primary::after{content:"";position:absolute;inset:0;background:linear-gradient(105deg,transparent 35%,rgba(255,255,255,.35) 50%,transparent 65%);transform:translateX(-120%);animation:shine 3.6s var(--ease-out) infinite}
@keyframes shine{0%,55%{transform:translateX(-120%)}100%{transform:translateX(120%)}}
.btn-ghost{border:1px solid var(--line-strong);color:var(--text)}
.btn-ghost:hover{background:var(--paper2);transform:translateY(-2px)}
.btn-sm{font-size:14px;line-height:20px;padding:8px 16px}
.btn svg{width:18px;height:18px}

/* header */
.nav{position:fixed;top:16px;left:50%;transform:translateX(-50%);z-index:50;display:flex;align-items:center;gap:24px;padding:8px 8px 8px 12px;border-radius:999px;background:color-mix(in oklab,var(--paper) 78%,transparent);backdrop-filter:blur(14px) saturate(1.4);-webkit-backdrop-filter:blur(14px) saturate(1.4);border:1px solid var(--line);box-shadow:0 10px 30px -14px rgba(60,30,10,.35);width:max-content;max-width:calc(100% - 32px)}
.brand{display:flex;align-items:center;gap:8px;font-family:var(--font-display);font-weight:700;font-size:20px}
.brand img{width:32px;height:32px;border-radius:50%;border:2px solid var(--accent)}
.nav ul{display:flex;gap:4px;list-style:none}
.nav ul a{font-size:14px;color:var(--text2);padding:8px 12px;border-radius:999px;transition:background .3s,color .3s}
.nav ul a:hover{color:var(--text);background:var(--paper2)}
@media (max-width:760px){.nav ul{display:none}.nav{gap:12px}}

/* hero */
.hero{position:relative;min-height:100dvh;display:grid;align-items:center;padding:120px 0 64px;overflow:hidden}
.hero::before{content:"";position:absolute;inset:0;background:
  radial-gradient(ellipse 60% 50% at 72% 45%,color-mix(in oklab,var(--accent) 14%,transparent),transparent 70%),
  radial-gradient(ellipse 50% 40% at 15% 85%,color-mix(in oklab,var(--straw) 25%,transparent),transparent 70%);pointer-events:none}
.hero-grid{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr);gap:48px;align-items:center;position:relative}
.hero-grid>*{min-width:0}
@media (max-width:480px){.cta-row .btn{flex:1 1 100%}.ca{width:100%}.ca .lbl{display:none}}
.hero h1{font-size:clamp(88px,15vw,220px);line-height:.85;letter-spacing:-.05em;color:var(--accent);font-weight:700;margin:24px 0 16px;position:relative}
.hero h1 .mask{display:inline-block;overflow:hidden;vertical-align:bottom;padding-bottom:.06em}
.hero h1 .mask>span{display:inline-block;transform:translateY(108%);transition:transform 1.1s var(--ease-out)}
.ready .hero h1 .mask>span{transform:none}
.hero h1 .han{font-family:var(--font-brush);font-size:.42em;color:var(--ink);letter-spacing:0;margin-left:.15em;vertical-align:.9em;font-weight:400;opacity:.85}
.hero .sub{font-family:var(--font-display);font-size:clamp(24px,2.6vw,36px);line-height:1.15;font-weight:500;max-width:680px;color:var(--ink2);letter-spacing:-.02em}
.hero .sub em{font-style:normal;color:var(--accent)}
.hero .lede{max-width:520px;color:var(--text2);margin-top:16px;font-size:18px;line-height:28px}
.cta-row{display:flex;flex-wrap:wrap;gap:12px;margin-top:32px}

.ca{margin-top:32px;display:inline-flex;align-items:center;gap:12px;max-width:100%;padding:8px 8px 8px 16px;border-radius:16px;background:var(--paper2);border:1px solid var(--line)}
.ca .dot{width:8px;height:8px;border-radius:50%;background:#14f195;box-shadow:0 0 0 0 rgba(20,241,149,.6);animation:pulse 2s infinite;flex:none}
@keyframes pulse{70%{box-shadow:0 0 0 8px rgba(20,241,149,0)}100%{box-shadow:0 0 0 0 rgba(20,241,149,0)}}
.ca .lbl{font:600 12px/1 var(--font-mono);color:var(--muted);letter-spacing:.1em}
.ca code{font-family:var(--font-mono);font-size:14px;color:var(--ink);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}
.copy{flex:none;display:inline-flex;align-items:center;gap:8px;padding:8px 12px;border-radius:12px;background:var(--ink);color:var(--paper);font-size:14px;font-weight:600;transition:background .3s,transform .3s var(--ease-fluid)}
.copy:hover{background:var(--accent)}.copy:active{transform:scale(.96)}
.copy svg{width:16px;height:16px}

.stage{position:relative;aspect-ratio:1;max-width:560px;justify-self:center;width:100%;perspective:1000px}
.sun{position:absolute;inset:6%;border-radius:50%;background:radial-gradient(circle at 40% 35%,#e0483a,var(--accent) 55%,#9c1f16);box-shadow:0 40px 90px -30px var(--accent-glow),inset 0 -20px 60px rgba(0,0,0,.15)}
.sun::after{content:"";position:absolute;inset:-14px;border-radius:50%;border:1px dashed color-mix(in oklab,var(--accent) 45%,transparent);animation:spin 60s linear infinite}
@keyframes spin{to{transform:rotate(360deg)}}
.cat{position:absolute;inset:12%;border-radius:50%;overflow:hidden;border:6px solid var(--paper);box-shadow:0 30px 60px -20px rgba(40,15,5,.5);transition:transform .2s linear;will-change:transform;cursor:pointer}
.cat img{width:100%;height:100%;object-fit:cover;transform:scale(1.04)}
.cat:active img{transform:scale(1.0)}
.seal{position:absolute;right:2%;bottom:8%;width:96px;height:96px;background:var(--accent);color:var(--paper);display:grid;place-items:center;border-radius:12px;font-family:var(--font-brush);font-size:56px;line-height:1;transform:rotate(-8deg);box-shadow:0 10px 24px -8px rgba(60,10,5,.5);border:3px double var(--paper)}
.lantern{position:absolute;top:-4%;width:44px;transform-origin:50% 0;animation:swing 4s ease-in-out infinite}
.lantern.l1{left:2%}.lantern.l2{right:10%;top:-10%;animation-delay:-1.6s;width:36px}
@keyframes swing{0%,100%{transform:rotate(5deg)}50%{transform:rotate(-5deg)}}
.cloud{position:absolute;color:var(--paper);opacity:.95;filter:drop-shadow(0 6px 10px rgba(80,40,10,.15));animation:drift 9s ease-in-out infinite}
.cloud.c1{left:-6%;bottom:6%;width:44%}.cloud.c2{right:-8%;bottom:20%;width:34%;animation-delay:-4s}
@keyframes drift{50%{transform:translateX(12px)}}
.meow{position:absolute;pointer-events:none;font-family:var(--font-brush);color:var(--accent);font-size:32px;animation:meow 1.2s var(--ease-out) forwards;z-index:3}
@keyframes meow{from{opacity:1;transform:translate(-50%,0) scale(.6)}to{opacity:0;transform:translate(-50%,-120px) scale(1.4)}}

@media (max-width:900px){
  .hero-grid{grid-template-columns:minmax(0,1fr);gap:32px}
  .stage{max-width:340px;order:-1}
  .seal{width:72px;height:72px;font-size:40px}
  .hero{padding-top:96px}
}

/* marquee */
.band{background:var(--accent);color:var(--on-accent);transform:rotate(-2deg);margin:24px -16px;padding:16px 0;border-block:3px double var(--paper);overflow:hidden;position:relative;z-index:6;-webkit-mask:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent);mask:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent)}
.band .track{display:flex;gap:48px;width:max-content;animation:marq 28s linear infinite;font-family:var(--font-display);font-weight:600;font-size:32px;line-height:36px;white-space:nowrap}
.band:hover .track{animation-play-state:paused}
.band .track span{display:inline-flex;align-items:center;gap:48px}
.band .track i{font-style:normal;font-family:var(--font-brush);color:var(--straw-soft)}
@keyframes marq{to{transform:translateX(-50%)}}

/* sections */
section{position:relative;z-index:6}
.sec{padding:96px 0;scroll-margin-top:80px}
.sec-head{display:flex;flex-direction:column;gap:16px;margin-bottom:48px;max-width:720px}
.sec-head h2{font-size:clamp(40px,5vw,72px)}
.sec-head h2 em{font-style:normal;color:var(--accent)}
.sec-head p{color:var(--text2);font-size:18px;line-height:28px}

/* stats */
.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}
.stat{background:var(--paper2);border:1px solid var(--line);border-radius:20px;padding:24px;position:relative;overflow:hidden;transition:border-color .4s,transform .5s var(--ease-fluid)}
.stat:hover{border-color:color-mix(in oklab,var(--accent) 50%,transparent);transform:translateY(-4px)}
.stat .k{font:500 12px/16px var(--font-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}
.stat .v{font-family:var(--font-mono);font-size:clamp(24px,2.6vw,36px);line-height:1.1;font-weight:600;color:var(--ink);margin-top:12px;font-variant-numeric:tabular-nums slashed-zero}
.stat .s{font:500 13px/18px var(--font-mono);color:var(--muted);margin-top:8px}
.up{color:var(--positive)!important}.down{color:var(--negative)!important}
.flash-up{animation:fu .7s}.flash-down{animation:fd .7s}
@keyframes fu{from{background:rgba(47,143,78,.18)}}@keyframes fd{from{background:rgba(198,47,34,.18)}}
.skel{display:inline-block;height:1em;width:7ch;border-radius:6px;background:linear-gradient(90deg,var(--paper3),var(--paper),var(--paper3));background-size:200% 100%;animation:sk 1.4s infinite}
@keyframes sk{to{background-position:-200% 0}}
.bsbar{height:8px;border-radius:999px;background:color-mix(in oklab,var(--accent) 35%,var(--paper3));overflow:hidden;margin-top:16px}
.bsbar i{display:block;height:100%;background:var(--positive);width:50%;transition:width 1s var(--ease-out)}
.updated{margin-top:16px;font:500 12px/16px var(--font-mono);color:var(--muted);display:flex;align-items:center;gap:8px;flex-wrap:wrap}
@media (max-width:900px){.stats{grid-template-columns:repeat(2,1fr)}}
@media (max-width:420px){.stat{padding:16px}}

/* chart */
.chart{margin-top:24px;border-radius:24px;overflow:hidden;border:1px solid var(--line-strong);background:var(--ink);position:relative;height:560px}
.chart iframe{width:100%;height:100%;border:0;display:block}
@media (max-width:700px){.chart{height:460px}}

/* tagline reveal */
.tagline{background:var(--ink);color:var(--paper);padding:128px 0;overflow:hidden}
.tagline .han-bg{position:absolute;right:-4%;top:50%;transform:translateY(-50%);font-family:var(--font-brush);font-size:clamp(240px,40vw,560px);line-height:1;color:var(--accent);opacity:.12;pointer-events:none;user-select:none}
.tagline p{font-family:var(--font-display);font-size:clamp(36px,5.4vw,72px);line-height:1.05;letter-spacing:-.035em;font-weight:600;max-width:900px;position:relative}
.tagline .w{color:rgba(244,234,215,.22);transition:color .9s var(--ease-fluid)}
.tagline .w.on{color:var(--paper)}
.tagline .w.acc.on{color:#f05a4b}
.tagline .eyebrow{color:var(--straw);margin-bottom:32px}

/* lore */
.lore-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.tenet{background:var(--paper2);border:1px solid var(--line);border-radius:24px;padding:32px;position:relative;overflow:hidden;transition:transform .6s var(--ease-fluid),border-color .4s}
.tenet:hover{transform:translateY(-6px);border-color:color-mix(in oklab,var(--accent) 50%,transparent)}
.tenet .glyph{font-family:var(--font-brush);font-size:72px;line-height:1;color:var(--accent)}
.tenet .pin{position:absolute;top:24px;right:24px;font:500 12px/1 var(--font-mono);color:var(--muted)}
.tenet h3{font-size:30px;line-height:36px;margin:24px 0 12px}
.tenet p{color:var(--text2)}
.tenet.feat{background:var(--accent);color:var(--on-accent);border-color:transparent}
.tenet.feat .glyph{color:var(--paper)}.tenet.feat p,.tenet.feat .pin{color:rgba(255,246,234,.82)}
@media (max-width:900px){.lore-grid{grid-template-columns:1fr}}

.story{display:grid;grid-template-columns:.9fr 1.1fr;gap:48px;align-items:center;margin-top:64px}
.story .scroll{border-radius:24px;overflow:hidden;border:1px solid var(--line-strong);box-shadow:0 30px 60px -30px rgba(60,20,5,.45)}
.story blockquote{font-family:var(--font-display);font-size:clamp(24px,2.4vw,30px);line-height:1.25;letter-spacing:-.02em;color:var(--ink2)}
.story blockquote b{color:var(--accent);font-weight:600}
.story cite{display:block;margin-top:16px;font:500 12px/16px var(--font-mono);letter-spacing:.14em;text-transform:uppercase;color:var(--muted);font-style:normal}
@media (max-width:900px){.story{grid-template-columns:1fr}}

/* how to buy */
.buy{background:var(--paper2);border-block:1px solid var(--line)}
.steps{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;list-style:none}
.step{background:var(--paper);border:1px solid var(--line);border-radius:20px;padding:24px;position:relative}
.step .n{font:600 14px/1 var(--font-mono);color:var(--on-accent);background:var(--accent);width:40px;height:40px;border-radius:12px;display:grid;place-items:center}
.step h3{font-size:24px;line-height:32px;margin:24px 0 8px}
.step p{color:var(--text2);font-size:15px}
.step a.inl{color:var(--accent);font-weight:600;border-bottom:1px solid currentColor}
@media (max-width:1000px){.steps{grid-template-columns:repeat(2,1fr)}}
@media (max-width:560px){.steps{grid-template-columns:1fr}}
.venues{display:flex;flex-wrap:wrap;gap:12px;margin-top:32px}

/* pet counter */
.pet{display:flex;align-items:center;justify-content:space-between;gap:24px;flex-wrap:wrap;margin-top:48px;padding:24px;border-radius:24px;background:var(--ink);color:var(--paper)}
.pet .l{display:flex;align-items:center;gap:16px}
.pet img{width:64px;height:64px;border-radius:50%;border:3px solid var(--accent)}
.pet b{font-family:var(--font-display);font-size:24px;line-height:32px;font-weight:600;display:block}
.pet span{color:rgba(244,234,215,.7);font-size:14px}
.pet .count{font-family:var(--font-mono);font-size:36px;font-weight:600;color:var(--straw)}

/* community */
.community{text-align:center;padding:128px 0;overflow:hidden}
.community h2{font-size:clamp(48px,8vw,128px);letter-spacing:-.05em;line-height:.9}
.community h2 em{font-style:normal;color:var(--accent)}
.community p{max-width:560px;margin:24px auto 0;color:var(--text2);font-size:18px;line-height:28px}
.community .cta-row{justify-content:center}
.community .ring{width:160px;height:160px;margin:0 auto 32px;border-radius:50%;padding:6px;background:conic-gradient(var(--accent),var(--straw),var(--accent));animation:spin 8s linear infinite}
.community .ring img{border-radius:50%;width:100%;height:100%;object-fit:cover;border:4px solid var(--paper);animation:spin 8s linear infinite reverse}

/* footer */
footer{background:var(--ink);color:rgba(244,234,215,.75);padding:48px 0 32px;position:relative;z-index:6}
.foot{display:flex;justify-content:space-between;gap:24px;flex-wrap:wrap;align-items:center}
footer .brand{color:var(--paper)}
footer .links{display:flex;gap:16px;flex-wrap:wrap;font-size:14px}
footer .links a:hover{color:var(--paper)}
.disc{margin-top:32px;padding-top:24px;border-top:1px solid rgba(244,234,215,.12);font-size:13px;line-height:20px;color:rgba(244,234,215,.5);max-width:820px}

/* toast */
.toast{position:fixed;left:50%;bottom:24px;transform:translate(-50%,24px);opacity:0;background:var(--ink);color:var(--paper);padding:12px 20px;border-radius:999px;font-size:14px;font-weight:600;z-index:100;transition:all .5s var(--ease-fluid);pointer-events:none;display:flex;gap:8px;align-items:center}
.toast.show{opacity:1;transform:translate(-50%,0)}

/* reveal */
html.reveal-ready .reveal:not(.in){opacity:0;transform:translateY(40px);filter:blur(8px)}
.reveal{transition:opacity .9s var(--ease-fluid),transform .9s var(--ease-fluid),filter .9s var(--ease-fluid);transition-delay:calc(var(--i,0)*90ms)}

@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation:none!important;transition:none!important}
  html.reveal-ready .reveal:not(.in){opacity:1;transform:none;filter:none}
  .hero h1 .mask>span{transform:none}
  #petals{display:none}
}

/* PFP studio + meme corner */
.studio{background:var(--paper2);border-block:1px solid var(--line)}
.studio-grid{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr);gap:32px;align-items:start}
.meme-grid{grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr)}
.canvas-wrap{position:relative;border-radius:24px;overflow:hidden;background:var(--ink);border:1px solid var(--line-strong);box-shadow:0 40px 80px -40px rgba(60,20,5,.55);transition:outline-color .3s;outline:3px dashed transparent;outline-offset:-12px}
.canvas-wrap.over{outline-color:var(--straw)}
.canvas-wrap canvas{display:block;width:100%;height:auto;touch-action:none;user-select:none}
#pfp-canvas{aspect-ratio:1;cursor:pointer}
#pfp-canvas.dragging{cursor:grabbing!important}
.meme-wrap{display:grid;place-items:center;min-height:320px;background:repeating-conic-gradient(#241710 0 25%,#1c120c 0 50%) 0 0/24px 24px}
.hint{position:absolute;left:50%;top:16px;transform:translateX(-50%);background:rgba(28,18,12,.78);color:var(--paper);font:500 12px/16px var(--font-mono);padding:8px 12px;border-radius:999px;white-space:nowrap;opacity:0;transition:opacity .4s;pointer-events:none}
.canvas-wrap.has-img .hint{opacity:1}
.canvas-wrap.has-img:hover .hint{opacity:0}
@media (max-width:520px){.hint{font-size:10px;white-space:normal;text-align:center;width:max-content;max-width:90%}}

.panel{background:var(--paper);border:1px solid var(--line);border-radius:24px;padding:24px;display:flex;flex-direction:column;gap:24px}
.memes .panel{background:var(--paper2)}
.panel fieldset{border:0;display:flex;flex-direction:column;gap:12px}
.panel legend,.field{font:500 12px/16px var(--font-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--muted);margin-bottom:12px}
.upload{display:flex;align-items:center;gap:16px;padding:16px;border-radius:16px;border:2px dashed color-mix(in oklab,var(--accent) 45%,transparent);background:color-mix(in oklab,var(--accent) 6%,transparent);cursor:pointer;transition:background .3s,border-color .3s,transform .4s var(--ease-fluid)}
.upload:hover{background:color-mix(in oklab,var(--accent) 12%,transparent);border-color:var(--accent);transform:translateY(-2px)}
.upload:focus-within{outline:2px solid var(--accent);outline-offset:3px}
.upload input,.tpl-up input{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none}
.upload svg{width:40px;height:40px;padding:8px;border-radius:12px;background:var(--accent);color:var(--on-accent);flex:none}
.upload b{display:block;font-size:16px;line-height:24px}
.upload small{color:var(--muted);font-size:13px}
.err{color:var(--accent);font-size:14px;font-weight:600;min-height:0;margin-top:-12px}
.err:empty{display:none}
.seg{display:flex;flex-wrap:wrap;gap:8px}
.seg button{padding:8px 16px;border-radius:999px;border:1px solid var(--line-strong);font-size:14px;font-weight:600;color:var(--text2);transition:all .35s var(--ease-fluid)}
.seg button:hover{background:var(--paper2);color:var(--text)}
.seg button[aria-pressed="true"]{background:var(--ink);color:var(--paper);border-color:var(--ink)}
.sliders{display:flex;flex-direction:column;gap:16px}
.sliders label{display:grid;grid-template-columns:96px 1fr;align-items:center;gap:12px;font-size:14px;font-weight:600;color:var(--text2)}
input[type=range]{-webkit-appearance:none;appearance:none;width:100%;height:6px;border-radius:999px;background:var(--paper3);outline-offset:6px}
input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;width:20px;height:20px;border-radius:50%;background:var(--accent);border:3px solid var(--paper);box-shadow:0 2px 8px rgba(60,20,5,.35);cursor:grab}
input[type=range]::-moz-range-thumb{width:16px;height:16px;border-radius:50%;background:var(--accent);border:3px solid var(--paper);cursor:grab}
.toggles{display:flex;flex-wrap:wrap;gap:16px}
.toggles label{display:flex;align-items:center;gap:8px;font-size:14px;font-weight:600;color:var(--text2);cursor:pointer}
.toggles input{accent-color:var(--accent);width:18px;height:18px}
.panel-actions{display:flex;flex-wrap:wrap;gap:12px}
.btn:disabled{opacity:.45;cursor:not-allowed;transform:none!important}
.btn:disabled::after{display:none}
.tpls{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}
.tpl{position:relative;display:flex;flex-direction:column;gap:8px;align-items:center;padding:8px;border-radius:16px;border:2px solid var(--line);background:var(--paper);font-size:12px;font-weight:600;color:var(--text2);cursor:pointer;transition:all .35s var(--ease-fluid)}
.tpl img,.tpl .plus{width:100%;aspect-ratio:1;object-fit:cover;border-radius:8px}
.tpl .plus{display:grid;place-items:center;background:var(--paper3);font-size:32px;color:var(--accent);font-weight:400}
.tpl:hover{transform:translateY(-2px);border-color:color-mix(in oklab,var(--accent) 45%,transparent)}
.tpl[aria-pressed="true"]{border-color:var(--accent);color:var(--accent)}
.tpl-up:focus-within{outline:2px solid var(--accent);outline-offset:3px}
.field{display:flex;flex-direction:column;gap:8px;margin:0}
.field input{font:600 16px/24px var(--font-body);letter-spacing:0;text-transform:none;color:var(--ink);background:var(--paper);border:1px solid var(--line-strong);border-radius:12px;padding:12px 16px;transition:border-color .3s,box-shadow .3s}
.field input:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 4px color-mix(in oklab,var(--accent) 18%,transparent)}
.post-link{font-size:14px;font-weight:600;color:var(--accent);align-self:flex-start;border-bottom:1px solid currentColor}
@media (max-width:900px){.studio-grid,.meme-grid{grid-template-columns:minmax(0,1fr)}.meme-grid .meme-wrap{order:-1}}
@media (max-width:420px){.panel{padding:16px}.sliders label{grid-template-columns:80px 1fr}.panel-actions .btn{flex:1 1 100%}}
