/* ============================================
   GROWTHINKS PHOTOBOOTH - Aesthetic Edition
   ============================================ */
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}

:root{
  --g:#1D7D58;
  --g-d:#0F5C3F;
  --g-l:#2A9D72;
  --g-dark:#0B1F17;
  --cream:#F4EDE0;
  --gold:#D4A04A;
  --w:#FCF9F5;
  --b:#0A0A0A;
  --b2:#121212;
  --b3:#1A1A1A;
  --glass:rgba(255,255,255,.03);
  --glass-hover:rgba(255,255,255,.07);
  --glass-border:rgba(255,255,255,.06);
  --text-muted:rgba(255,255,255,.35);
  --text-dim:rgba(255,255,255,.5);
  --r:12px;
  --rf:20px;
  --f:'Inter',system-ui,-apple-system,sans-serif;
  --serif:'DM Serif Display',Georgia,serif;
  --shadow-sm:0 2px 12px rgba(0,0,0,.15);
  --shadow-md:0 8px 30px rgba(0,0,0,.2);
  --shadow-lg:0 20px 60px rgba(0,0,0,.35);
  --ease: cubic-bezier(.22,1,.36,1);
}

html{font-size:15px;scroll-behavior:smooth}
body{
  font-family:var(--f);background:var(--b);color:var(--w);
  min-height:100vh;display:flex;flex-direction:column;
  overflow-x:hidden;-webkit-tap-highlight-color:transparent;
  -webkit-font-smoothing:antialiased;
}

/* Grain texture */
.grain-overlay{
  position:fixed;inset:0;z-index:1;pointer-events:none;
  opacity:.025;mix-blend-mode:soft-light;
  background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 512 512' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.65' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
  background-size:200px 200px;
}

/* Ambient glow */
.ambient-lights{
  position:fixed;inset:0;z-index:0;pointer-events:none;overflow:hidden;
}
.ambient-lights::before,.ambient-lights::after{
  content:'';position:absolute;width:500px;height:500px;
  border-radius:50%;filter:blur(150px);opacity:.05;
}
.ambient-lights::before{background:var(--g);top:-150px;right:-100px}
.ambient-lights::after{background:var(--gold);bottom:-150px;left:-100px}

::-webkit-scrollbar{width:3px}
::-webkit-scrollbar-track{background:transparent}
::-webkit-scrollbar-thumb{background:var(--g-d);border-radius:99px}

/* ===== TOPBAR ===== */
.topbar{
  position:sticky;top:0;z-index:100;
  display:flex;align-items:center;justify-content:space-between;
  padding:.5rem 1.5rem;
  background:rgba(10,10,10,.75);
  backdrop-filter:blur(28px) saturate(1.2);
  -webkit-backdrop-filter:blur(28px) saturate(1.2);
  border-bottom:1px solid var(--glass-border);
}
.brand{display:flex;align-items:center;gap:.55rem}
.brand-icon{width:20px;height:20px;border-radius:5px;object-fit:contain}
.brand-name{font-weight:600;font-size:.82rem;letter-spacing:-.01em}
.brand-name em{font-style:normal;color:var(--g);font-weight:700}
.topbar-badge{
  font-size:.6rem;text-transform:uppercase;letter-spacing:.15em;
  padding:.2rem .65rem;border-radius:99px;
  background:rgba(29,125,88,.1);color:var(--g);
  border:1px solid rgba(29,125,88,.15);
}

/* ===== SCREENS ===== */
.screen{display:none}
.screen.active{display:block;animation:reveal .55s var(--ease) both}
@keyframes reveal{0%{opacity:0;transform:translateY(12px) scale(.99)}100%{opacity:1;transform:none}}

/* ===== INTRO / HERO ===== */
.hero{position:relative;min-height:calc(100vh - 52px);display:flex;align-items:center}
.hero-bg{position:absolute;inset:0;overflow:hidden}
.hero-orbs{position:absolute;inset:0}
.orb{position:absolute;border-radius:50%;filter:blur(120px);opacity:0;animation:float 10s var(--ease) infinite}
.orb--1{width:450px;height:450px;background:var(--g);top:-12%;left:-8%;opacity:.06}
.orb--2{width:350px;height:350px;background:var(--gold);bottom:-8%;right:-5%;opacity:.04;animation-delay:-3.5s}
.orb--3{width:300px;height:300px;background:#4A7BB8;bottom:25%;left:45%;opacity:.03;animation-delay:-7s}
@keyframes float{0%,100%{transform:translate(0,0) scale(1)}33%{transform:translate(25px,-25px) scale(1.08)}66%{transform:translate(-15px,15px) scale(.95)}}

.hero-content{
  position:relative;z-index:2;width:100%;
  display:grid;grid-template-columns:1fr 280px;gap:3rem;
  max-width:1060px;margin:0 auto;padding:2rem 1.5rem 2.5rem;align-items:center;
}
.hero-left{max-width:520px}

.badge-flow{
  display:inline-flex;align-items:center;gap:.4rem;
  font-size:.62rem;text-transform:uppercase;letter-spacing:.12em;
  color:var(--text-dim);margin-bottom:.7rem;
}
.badge-flow__dot{width:5px;height:5px;border-radius:50%;background:var(--g);animation:ping 2.5s var(--ease) infinite}
@keyframes ping{0%,100%{opacity:1;transform:scale(1)}50%{opacity:.3;transform:scale(.6)}}

.hero-title{
  font-family:var(--serif);font-weight:400;line-height:1.08;
  letter-spacing:-.03em;font-size:clamp(2.1rem,5.2vw,3.6rem);
}
.hero-title__line{display:block}
.hero-title__line--accent{color:var(--g);font-style:italic}
.hero-sub{margin-top:.8rem;font-size:.85rem;line-height:1.65;color:var(--text-muted);max-width:420px}
.hero-sub em{font-style:normal;color:var(--text-dim)}

/* Config block */
.config-block{display:flex;gap:1.5rem;margin-top:1.2rem;flex-wrap:wrap}
.config-group{display:flex;flex-direction:column;gap:.35rem}
.config-label{font-size:.58rem;text-transform:uppercase;letter-spacing:.12em;color:rgba(255,255,255,.25);font-weight:600}
.config-row{display:flex;gap:.3rem;flex-wrap:wrap}
.cfg{
  border:1px solid var(--glass-border);background:var(--glass);
  color:rgba(255,255,255,.35);cursor:pointer;border-radius:var(--r);
  transition:all .2s;font-family:var(--f);font-size:.7rem;font-weight:500;
}
.cfg:hover{background:var(--glass-hover);color:var(--w)}
.cfg--icon{padding:.28rem;width:32px;height:32px;display:flex;align-items:center;justify-content:center}
.cfg--icon svg{width:100%;height:100%;fill:none;stroke:currentColor;stroke-width:1.5}
.cfg--icon.active{border-color:var(--g);background:rgba(29,125,88,.12);color:var(--g)}
.timer-opt{padding:.3rem .65rem}
.timer-opt span{font-size:.5rem;opacity:.4;margin-left:2px}
.timer-opt.active{border-color:var(--g);background:rgba(29,125,88,.12);color:var(--w)}

/* Buttons */
.btn-primary{
  display:inline-flex;align-items:center;gap:.5rem;
  margin-top:1.2rem;padding:.65rem 1.5rem .65rem 1.7rem;
  border-radius:99px;border:none;
  background:linear-gradient(135deg,var(--g),var(--g-l));
  color:var(--w);font-family:var(--f);font-weight:600;font-size:.85rem;
  cursor:pointer;transition:all .25s var(--ease);
  box-shadow:0 4px 20px rgba(29,125,88,.25);
}
.btn-primary:hover{transform:translateY(-2px);box-shadow:0 8px 30px rgba(29,125,88,.3)}
.btn-primary:active{transform:scale(.97)}
.btn-primary svg{width:17px;height:17px}

.btn-ghost{
  display:inline-flex;align-items:center;gap:.45rem;
  padding:.6rem 1.1rem;border-radius:99px;
  border:1px solid var(--glass-border);background:transparent;
  color:var(--text-dim);font-family:var(--f);font-weight:500;font-size:.8rem;
  cursor:pointer;transition:all .2s;
}
.btn-ghost:hover{background:var(--glass-hover);color:var(--w);border-color:rgba(255,255,255,.12)}

.btn-demo{margin-top:.4rem;padding:.4rem 1.1rem;font-size:.75rem;display:inline-flex}
.hero-footnote{margin-top:.6rem;font-size:.6rem;color:rgba(255,255,255,.15);max-width:300px}

/* Mockup */
.hero-right{position:relative;display:flex;justify-content:center}
.mockup-strip{
  width:170px;position:relative;z-index:2;
  background:var(--b2);border-radius:14px;padding:6px 6px 0;
  box-shadow:0 30px 70px rgba(0,0,0,.5);
  transition:all .4s var(--ease);
}
.mockup-shot{
  aspect-ratio:1;background:linear-gradient(135deg,var(--g-dark),var(--g-d));
  border-radius:6px;margin-bottom:6px;overflow:hidden;position:relative;
}
.mockup-shot img{width:100%;height:100%;object-fit:cover;display:block}
.mockup-shine{
  position:absolute;inset:0;
  background:linear-gradient(135deg,rgba(255,255,255,.05) 0,transparent 50%);
  animation:shimmer 3.5s var(--ease) infinite;
  pointer-events:none;
}
@keyframes shimmer{0%,100%{opacity:0}50%{opacity:1}}
.mockup-brand{
  text-align:center;padding:.35rem .3rem .45rem;
  font-size:.48rem;letter-spacing:.1em;text-transform:uppercase;
  color:rgba(255,255,255,.15);font-weight:500;
}
.mockup-shadow{
  position:absolute;top:16px;left:8px;width:170px;height:100%;
  background:rgba(29,125,88,.05);border-radius:14px;filter:blur(14px);z-index:1;
}

/* ===== CAPTURE ===== */
#screen-capture{min-height:100vh;align-items:center;justify-content:center}
#screen-capture.active{display:flex}

.capture-view{width:100%;max-width:420px;margin:0 auto;padding:.6rem;display:flex;flex-direction:column;align-items:center}
.capture-stage{position:relative;width:100%;aspect-ratio:1;border-radius:var(--rf)}

.stage-viewfinder{
  position:absolute;inset:0;border-radius:14px;overflow:hidden;
  background:var(--b2);box-shadow:0 0 0 1px rgba(255,255,255,.04),0 20px 50px rgba(0,0,0,.4);
}
.stage-viewfinder video{width:100%;height:100%;object-fit:cover;display:block}
.viewfinder-glow{position:absolute;inset:0;pointer-events:none;box-shadow:inset 0 0 80px rgba(0,0,0,.35);border-radius:14px}

.stage-frame{position:absolute;inset:-3px;z-index:5;pointer-events:none}
.stage-corner{
  position:absolute;width:24px;height:24px;
  border-color:var(--g);border-style:solid;opacity:.4;
}
.stage-corner.nw{top:0;left:0;border-width:2px 0 0 2px;border-radius:3px 0 0 0}
.stage-corner.ne{top:0;right:0;border-width:2px 2px 0 0;border-radius:0 3px 0 0}
.stage-corner.sw{bottom:0;left:0;border-width:0 0 2px 2px;border-radius:0 0 0 3px}
.stage-corner.se{bottom:0;right:0;border-width:0 2px 2px 0;border-radius:0 0 3px 0}

.flash-overlay{position:absolute;inset:0;z-index:20;pointer-events:none;background:var(--w);opacity:0;border-radius:14px;transition:opacity .06s}
.flash-overlay.active{opacity:.7}

.countdown{position:absolute;inset:0;z-index:15;display:flex;align-items:center;justify-content:center;opacity:0;pointer-events:none;transition:opacity .3s}
.countdown.active{opacity:1}
.countdown-ring{width:90px;height:90px;transform:rotate(-90deg);filter:drop-shadow(0 0 15px rgba(29,125,88,.2))}
.cr-bg{fill:none;stroke:rgba(255,255,255,.06);stroke-width:4}
.cr-prog{fill:none;stroke:var(--g);stroke-width:4;stroke-linecap:round;stroke-dasharray:282.74;stroke-dashoffset:0;transition:stroke-dashoffset .9s linear}
.countdown-num{position:absolute;font-family:var(--serif);font-size:2.4rem;font-weight:400;color:var(--w);text-shadow:0 0 25px rgba(29,125,88,.3);margin-top:3px}

.shot-counter{
  position:absolute;top:-8px;right:-8px;z-index:6;
  padding:.2rem .55rem;border-radius:99px;
  background:rgba(0,0,0,.6);backdrop-filter:blur(10px);
  border:1px solid rgba(255,255,255,.04);
  font-size:.65rem;font-weight:600;display:flex;align-items:center;gap:2px;
  color:var(--text-dim);
}

.capture-filter-label{
  position:absolute;bottom:8px;left:50%;transform:translateX(-50%);z-index:6;
  padding:.15rem .6rem;border-radius:99px;
  background:rgba(0,0,0,.45);backdrop-filter:blur(6px);
  font-size:.55rem;font-weight:600;letter-spacing:.06em;text-transform:uppercase;
  color:rgba(255,255,255,.4);pointer-events:none;
}

.capture-bottom{margin-top:.7rem;width:100%;display:flex;flex-direction:column;align-items:center;gap:.5rem}
.capture-filters{display:flex;gap:.2rem;overflow-x:auto;width:100%;padding:0;-webkit-overflow-scrolling:touch;scrollbar-width:none}
.capture-filters::-webkit-scrollbar{display:none}
.cf{
  flex-shrink:0;padding:.25rem .55rem;border-radius:99px;
  background:var(--glass);border:1px solid var(--glass-border);
  color:var(--text-muted);font-size:.58rem;font-weight:500;
  font-family:var(--f);cursor:pointer;transition:all .2s;white-space:nowrap;
}
.cf:hover{color:var(--w);background:var(--glass-hover)}
.cf--active{background:var(--g);border-color:var(--g);color:var(--w)}

.capture-controls{display:flex;align-items:center;gap:.6rem}
.btn-icon{
  width:38px;height:38px;border-radius:50%;display:flex;align-items:center;justify-content:center;
  background:var(--glass);border:1px solid var(--glass-border);
  color:var(--text-dim);cursor:pointer;transition:all .2s;flex-shrink:0;
}
.btn-icon:hover{background:var(--glass-hover);color:var(--w);transform:scale(1.05)}
.btn-icon svg{width:16px;height:16px}

.btn-shutter{
  position:relative;width:58px;height:58px;border-radius:50%;
  background:transparent;border:none;cursor:pointer;
  display:flex;align-items:center;justify-content:center;
}
.shutter-ring{position:absolute;inset:0;border-radius:50%;background:var(--glass);border:2px solid rgba(255,255,255,.12);transition:all .2s}
.shutter-dot{width:40px;height:40px;border-radius:50%;background:linear-gradient(135deg,var(--g),var(--g-l));box-shadow:0 0 20px rgba(29,125,88,.2);transition:all .2s}
.btn-shutter:hover .shutter-ring{background:var(--glass-hover);border-color:rgba(255,255,255,.18)}
.btn-shutter:hover .shutter-dot{transform:scale(1.03);box-shadow:0 0 28px rgba(29,125,88,.28)}
.btn-shutter:active .shutter-dot{transform:scale(.92)}

.capture-thumbs{width:100%;display:flex;justify-content:center}
.thumbs-track{display:flex;gap:.3rem}
.thumb{width:36px;height:36px;border-radius:7px;object-fit:cover;border:2px solid transparent;opacity:.3;transition:all .3s}
.thumb--done{opacity:1;border-color:var(--g);box-shadow:0 0 10px rgba(29,125,88,.1)}

/* ===== EDITOR LAYOUT ===== */
.editor{
  display:grid;grid-template-columns:1fr 340px;
  height:calc(100vh - 42px);overflow:hidden;
}
.editor-canvas{
  display:flex;flex-direction:column;align-items:center;justify-content:center;
  padding:1.5rem;background:rgba(0,0,0,.3);
  border-right:1px solid var(--glass-border);
}
.editor-canvas-inner{width:100%;max-width:500px}
.result-preview{
  position:relative;width:100%;
  background:rgba(255,255,255,.02);border-radius:var(--rf);
  padding:.5rem;border:1px solid var(--glass-border);
  box-shadow:var(--shadow-lg);
}
#finalCanvas{width:100%;height:auto;display:block;border-radius:8px}

.editor-canvas-actions{
  display:flex;gap:.5rem;margin-top:1rem;
}
.editor-canvas-actions .btn-ghost,
.editor-canvas-actions .btn-download{
  margin-top:0;
}

.sticker-layer{position:absolute;top:.5rem;left:.5rem;right:.5rem;bottom:.5rem;z-index:10;pointer-events:none;border-radius:8px;overflow:hidden}
.sticker-layer.drag-active{pointer-events:auto}
.sticker-el{
  position:absolute;z-index:11;cursor:grab;user-select:none;touch-action:none;pointer-events:auto;
  padding:3px;margin:-3px;transition:filter .2s;
}
.sticker-el:hover{filter:drop-shadow(0 0 5px var(--g))}
.sticker-el.dragging{cursor:grabbing;z-index:20;filter:drop-shadow(0 0 8px var(--g))}
.sticker-el img,.sticker-el .sticker-emoji{width:100%;height:100%;object-fit:contain;pointer-events:none;display:block}
.sticker-el .sticker-emoji{display:flex;align-items:center;justify-content:center;font-size:inherit;line-height:1}

.text-el{
  position:absolute;z-index:11;cursor:grab;user-select:none;touch-action:none;pointer-events:auto;
  padding:4px 8px;font-family:var(--f);font-weight:700;
  text-shadow:0 1px 4px rgba(0,0,0,.45);
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%;
}
.text-el.dragging{cursor:grabbing;z-index:20;filter:drop-shadow(0 0 8px var(--g))}

.sticker-del{
  position:absolute;top:-7px;right:-7px;width:16px;height:16px;
  border-radius:50%;border:none;background:rgba(184,74,74,.9);
  color:var(--w);font-size:10px;line-height:1;cursor:pointer;
  display:none;align-items:center;justify-content:center;
  font-family:var(--f);box-shadow:0 1px 3px rgba(0,0,0,.3);padding:0;z-index:12;
}
.sticker-el:hover .sticker-del,.text-el:hover .sticker-del{display:flex}
.sticker-del:hover{background:#d44;transform:scale(1.1)}

.sticker-hint{text-align:center;font-size:.55rem;color:rgba(255,255,255,.15);margin-top:.35rem}

/* ===== SIDEBAR ===== */
.editor-sidebar{
  display:flex;flex-direction:column;overflow:hidden;
  background:rgba(255,255,255,.012);
}

/* Tabs */
.sidebar-tabs{
  display:flex;border-bottom:1px solid var(--glass-border);flex-shrink:0;
}
.stab{
  flex:1;padding:.6rem .3rem;border:none;background:transparent;
  color:var(--text-muted);font-family:var(--f);font-size:.6rem;font-weight:600;
  cursor:pointer;transition:all .2s;position:relative;letter-spacing:.02em;
}
.stab:hover{color:var(--w);background:rgba(255,255,255,.02)}
.stab--active{color:var(--w)}
.stab--active::after{
  content:'';position:absolute;bottom:0;left:20%;right:20%;height:2px;
  background:var(--g);border-radius:2px 2px 0 0;
}

.stab-panel{display:none;flex:1;overflow-y:auto;padding:.8rem 1rem;gap:.7rem;flex-direction:column}
.stab-panel.active{display:flex}

.edit-section{display:flex;flex-direction:column;gap:.3rem}
.edit-label{font-size:.52rem;text-transform:uppercase;letter-spacing:.12em;font-weight:600;color:rgba(255,255,255,.22);margin-bottom:.1rem}

/* Twibbon Grid */
.twibbon-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:.4rem}
.twb{
  display:flex;flex-direction:column;align-items:center;gap:.2rem;
  padding:.4rem .2rem;border-radius:8px;border:1.5px solid var(--glass-border);
  background:var(--glass);cursor:pointer;transition:all .2s;
}
.twb:hover{background:var(--glass-hover);transform:translateY(-2px)}
.twb--active{border-color:var(--g);background:rgba(29,125,88,.1)}
.twb span{font-size:.5rem;color:var(--text-muted);font-weight:500}
.twb--active span{color:var(--w)}
.twb-preview{width:100%;aspect-ratio:1;border-radius:4px;position:relative;overflow:hidden;background:rgba(255,255,255,.03)}

.twb-preview--none{display:flex;align-items:center;justify-content:center;color:var(--text-muted)}
.twb-preview--none svg{width:60%;height:60%}

.twb-preview--classic .twb-corner{position:absolute;width:10px;height:10px;border-color:var(--g);border-style:solid}
.twb-preview--classic .tl{top:2px;left:2px;border-width:2px 0 0 2px}
.twb-preview--classic .tr{top:2px;right:2px;border-width:2px 2px 0 0}
.twb-preview--classic .bl{bottom:2px;left:2px;border-width:0 0 2px 2px}
.twb-preview--classic .br{bottom:2px;right:2px;border-width:0 2px 2px 0}

.twb-preview--elegant .twb-border-ring{position:absolute;inset:3px;border:2px solid var(--gold);border-radius:50%;opacity:.5}

.twb-preview--minimal .twb-line{position:absolute;left:10%;right:10%;height:2px;background:var(--g)}
.twb-preview--minimal .top{top:4px}.twb-preview--minimal .bottom{bottom:4px}

.twb-preview--polaroid .twb-pola{position:absolute;inset:3px 3px 12px 3px;border:1.5px solid rgba(255,255,255,.2);border-radius:2px}

.twb-preview--film .twb-holes{display:flex;flex-direction:column;gap:3px;padding:4px}
.twb-preview--film .twb-holes::before,.twb-preview--film .twb-holes::after{content:'';display:block;height:5px;background:repeating-linear-gradient(90deg,rgba(255,255,255,.15) 0 3px,transparent 3px 7px);border-radius:1px}

.twb-preview--story .twb-ig-ring{position:absolute;inset:3px;border-radius:50%;border:2.5px solid transparent;background:linear-gradient(var(--b2),var(--b2)) padding-box,linear-gradient(135deg,#f09433,#e6683c,#dc2743,#cc2366,#bc1888) border-box}

.twb-preview--stamp .twb-stamp-circle{position:absolute;inset:2px;border:2px dashed var(--g);border-radius:4px;opacity:.4}

/* Swatch */
.swatch-row{display:flex;flex-wrap:wrap;gap:.25rem}
.sw{width:26px;height:26px;border-radius:6px;border:2px solid transparent;background:var(--c);cursor:pointer;transition:all .2s;flex-shrink:0}
.sw:hover{transform:scale(1.12)}
.sw--active{border-color:var(--w);box-shadow:0 0 0 2px var(--g)}
.sw--grad{border-color:rgba(255,255,255,.08)}

/* Shape */
.shape-row{display:flex;gap:.3rem}
.sh{padding:.3rem;border-radius:6px;background:var(--glass);border:1px solid var(--glass-border);cursor:pointer;transition:all .2s}
.sh svg{width:22px;height:22px;display:block;fill:none;stroke:rgba(255,255,255,.3);stroke-width:1.5}
.sh:hover{background:var(--glass-hover)}
.sh--active{border-color:var(--g);background:rgba(29,125,88,.1)}
.sh--active svg{stroke:var(--w)}

/* Sticker Categories */
.sticker-categories{display:flex;gap:.2rem;flex-wrap:wrap;margin-bottom:.4rem}
.scat{
  padding:.25rem .5rem;border-radius:99px;border:1px solid var(--glass-border);
  background:var(--glass);color:var(--text-muted);font-size:.55rem;font-weight:600;
  font-family:var(--f);cursor:pointer;transition:all .2s;white-space:nowrap;
}
.scat:hover{color:var(--w);background:var(--glass-hover)}
.scat--active{background:var(--g);border-color:var(--g);color:var(--w)}

/* Sticker Grid */
.sticker-grid{
  display:grid;grid-template-columns:repeat(8,1fr);gap:.25rem;
}
.st{
  aspect-ratio:1;border-radius:8px;background:var(--glass);border:1px solid var(--glass-border);
  font-size:1.3rem;cursor:pointer;display:flex;align-items:center;justify-content:center;
  transition:all .15s;
}
.st:hover{background:var(--glass-hover);transform:scale(1.15);border-color:rgba(255,255,255,.12)}
.st--active{border-color:var(--g);background:rgba(29,125,88,.12);transform:scale(1.08)}

.sticker-clear{font-size:.58rem;color:var(--text-muted);background:none;border:none;cursor:pointer;font-family:var(--f);padding:0;text-align:left;transition:color .2s;margin-top:.3rem}
.sticker-clear:hover{color:rgba(255,255,255,.5)}

/* Text */
.text-input-row{display:flex;gap:.3rem}
.text-input{flex:1;padding:.4rem .6rem;border-radius:8px;border:1px solid var(--glass-border);background:var(--glass);color:var(--w);font-family:var(--f);font-size:.75rem;outline:none;transition:border-color .2s}
.text-input:focus{border-color:var(--g)}
.text-input::placeholder{color:rgba(255,255,255,.15)}
.btn-small{padding:.4rem .7rem;border-radius:8px;border:none;background:var(--g);color:var(--w);font-family:var(--f);font-size:.7rem;font-weight:600;cursor:pointer;transition:all .2s;white-space:nowrap}
.btn-small:hover{background:var(--g-l)}

.text-size-opts,.text-color-opts,.text-style-opts{display:flex;gap:.25rem;flex-wrap:wrap}
.tsz{min-width:32px;height:28px;border-radius:6px;border:1px solid var(--glass-border);background:var(--glass);color:var(--text-muted);font-size:.6rem;font-family:var(--f);cursor:pointer;transition:all .2s;display:flex;align-items:center;justify-content:center;padding:0 .4rem}
.tsz:hover{color:var(--w);background:var(--glass-hover)}
.tsz--active{border-color:var(--g);background:rgba(29,125,88,.1);color:var(--w)}

.tc{width:22px;height:22px;border-radius:50%;border:2px solid transparent;background:var(--c);cursor:pointer;transition:all .2s}
.tc:hover{transform:scale(1.15)}
.tc--active{border-color:var(--w);box-shadow:0 0 0 2px var(--g)}

.tsty{padding:.3rem .6rem;border-radius:6px;border:1px solid var(--glass-border);background:var(--glass);color:var(--text-muted);font-size:.65rem;font-family:var(--f);cursor:pointer;transition:all .2s}
.tsty:hover{color:var(--w);background:var(--glass-hover)}
.tsty--active{border-color:var(--g);background:rgba(29,125,88,.1);color:var(--w)}

/* Toggle */
.toggle-group{display:flex;flex-direction:column;gap:.3rem}
.toggle-row{display:flex;align-items:center;gap:.5rem;cursor:pointer}
.toggle-row input{display:none}
.toggle-track{width:34px;height:18px;border-radius:99px;background:rgba(255,255,255,.08);transition:background .25s;position:relative;flex-shrink:0}
.toggle-knob{position:absolute;top:2px;left:2px;width:14px;height:14px;border-radius:50%;background:var(--w);transition:transform .25s}
.toggle-row input:checked+.toggle-track{background:var(--g)}
.toggle-row input:checked+.toggle-track .toggle-knob{transform:translateX(16px)}
.toggle-label{font-size:.7rem;color:var(--text-muted);font-weight:500}

/* Filter grid */
.filter-grid{display:grid;grid-template-columns:1fr 1fr;gap:.3rem}
.fl{
  display:flex;align-items:center;gap:.3rem;
  padding:.4rem .5rem;border-radius:8px;background:var(--glass);border:1px solid var(--glass-border);
  color:var(--text-muted);font-size:.6rem;font-weight:500;cursor:pointer;transition:all .2s;font-family:var(--f);
}
.fl:hover{color:var(--w);background:var(--glass-hover)}
.fl--active{background:var(--g);border-color:var(--g);color:var(--w)}
.fl-icon{font-size:.8rem}

/* Actions bar at bottom of canvas */
.confetti-canvas{position:fixed;inset:0;z-index:200;pointer-events:none}
.footer{position:relative;z-index:2;text-align:center;padding:.7rem;font-size:.55rem;color:rgba(255,255,255,.1);border-top:1px solid var(--glass-border)}

/* ===== RESPONSIVE ===== */
@media(max-width:820px){
  .hero-content{grid-template-columns:1fr;gap:1.5rem;padding-top:1.2rem}
  .hero-right{order:-1;max-width:170px;margin:0 auto}
  .editor{grid-template-columns:1fr;grid-template-rows:auto 1fr;height:auto;min-height:calc(100vh - 42px)}
  .editor-canvas{border-right:none;border-bottom:1px solid var(--glass-border);padding:1rem}
  .editor-sidebar{max-height:50vh}
  .sticker-grid{grid-template-columns:repeat(6,1fr)}
  .editor-canvas-inner{max-width:100%}
}

/* ===== MOBILE 392 x 871 (iPhone) ===== */
@media(max-width:430px){
  html{font-size:14px}
  .topbar{padding:.35rem .6rem}
  .brand-icon{width:16px;height:16px;border-radius:4px}
  .brand-name{font-size:.72rem}
  .topbar-badge{font-size:.5rem;padding:.15rem .5rem}

  /* Hero */
  .hero{min-height:auto;padding:0}
  .hero-content{padding:0.5rem .6rem 1rem;gap:.8rem}
  .hero-left{max-width:100%}
  .hero-title{font-size:1.5rem;line-height:1.1}
  .hero-sub{font-size:.75rem;margin-top:.5rem}
  .config-block{gap:.6rem}
  .config-label{font-size:.5rem}
  .cfg--icon{width:30px;height:30px;padding:.2rem}
  .timer-opt{padding:.25rem .5rem;font-size:.65rem}
  .btn-primary{margin-top:.8rem;padding:.55rem 1.2rem;font-size:.78rem}
  .btn-primary svg{width:15px;height:15px}
  .btn-demo{font-size:.7rem;padding:.4rem .9rem}
  .hero-footnote{font-size:.5rem;margin-top:.4rem}
  .hero-right{max-width:120px}

  /* Capture */
  #screen-capture.active{min-height:auto;padding:.3rem 0}
  .capture-view{padding:.2rem;max-width:100%}
  .capture-stage{aspect-ratio:1;border-radius:16px}
  .stage-viewfinder{border-radius:12px}
  .btn-shutter{width:50px;height:50px}
  .shutter-dot{width:34px;height:34px}
  .shutter-ring{border-width:1.5px}
  .btn-icon{width:34px;height:34px}
  .btn-icon svg{width:14px;height:14px}
  .capture-filters{gap:.15rem;padding:0 .2rem}
  .cf{padding:.2rem .45rem;font-size:.52rem}
  .capture-bottom{gap:.35rem}
  .countdown-ring{width:75px;height:75px}
  .countdown-num{font-size:2rem}
  .shot-counter{font-size:.6rem;padding:.15rem .4rem;top:-6px;right:-6px}
  .thumb{width:30px;height:30px;border-radius:5px}
  .capture-filter-label{font-size:.5rem;bottom:5px}
  .stage-corner{width:18px;height:18px}

  /* Game mode */
  .game-box{padding:1rem .8rem 1rem;width:96%;border-radius:18px}
  .game-title{font-size:1.3rem}
  .game-badge{font-size:.5rem;padding:.15rem .6rem}
  .game-sub{font-size:.65rem}
  .game-grid{grid-template-columns:repeat(2,1fr);gap:.5rem}
  .game-card-inner{padding:.7rem .4rem;border-radius:10px}
  .game-card-icon{font-size:1.4rem}
  .game-card-label{font-size:.65rem}
  .game-card-desc{font-size:.48rem}
  .game-card-shots{font-size:.45rem;padding:.08rem .3rem}
  .game-card-preview svg{max-height:35px}
  .game-close{font-size:.65rem;padding:.4rem 1rem;margin-top:.8rem}

  /* Editor */
  .editor{grid-template-rows:auto 1fr;min-height:calc(100vh - 36px)}
  .editor-canvas{padding:.6rem}
  .editor-canvas-inner{max-width:100%}
  #finalCanvas{border-radius:6px}
  .editor-canvas-actions{gap:.3rem;margin-top:.5rem;flex-wrap:wrap;justify-content:center}
  .editor-canvas-actions .btn-ghost,
  .editor-canvas-actions .btn-download{margin-top:0;font-size:.72rem;padding:.45rem .8rem}
  .editor-canvas-actions .btn-download svg{width:14px;height:14px}
  .sticker-hint{font-size:.5rem;margin-top:.2rem}

  .editor-sidebar{overflow:visible}
  .sidebar-tabs{overflow-x:auto;flex-wrap:nowrap;-webkit-overflow-scrolling:touch}
  .stab{font-size:.52rem;padding:.45rem .2rem;white-space:nowrap;flex-shrink:0}
  .stab-panel{padding:.5rem .6rem;max-height:calc(100vh - 250px);overflow-y:auto;-webkit-overflow-scrolling:touch}
  .edit-label{font-size:.48rem}
  .edit-section{gap:.25rem;margin-bottom:.5rem}

  .twibbon-grid{grid-template-columns:repeat(4,1fr);gap:.3rem}
  .twb{padding:.25rem .15rem;border-radius:6px}
  .twb span{font-size:.42rem}
  .twb-preview{aspect-ratio:1;border-radius:3px}

  .swatch-row{gap:.2rem}
  .sw{width:22px;height:22px;border-radius:5px}
  .shape-row{gap:.2rem}
  .sh{padding:.2rem}
  .sh svg{width:18px;height:18px}
  .filter-grid{grid-template-columns:1fr 1fr;gap:.2rem}
  .fl{padding:.3rem .35rem;font-size:.5rem;border-radius:6px}
  .fl-icon{font-size:.65rem}
  .toggle-row{gap:.35rem}
  .toggle-track{width:30px;height:16px}
  .toggle-knob{width:12px;height:12px;top:2px;left:2px}
  .toggle-row input:checked+.toggle-track .toggle-knob{transform:translateX(14px)}
  .toggle-label{font-size:.62rem}

  .sticker-categories{gap:.15rem}
  .scat{padding:.2rem .4rem;font-size:.5rem}
  .sticker-grid{grid-template-columns:repeat(6,1fr);gap:.2rem}
  .st{border-radius:6px;font-size:1.1rem}

  .text-input{padding:.3rem .45rem;font-size:.7rem}
  .btn-small{padding:.3rem .5rem;font-size:.62rem}
  .text-size-opts{gap:.15rem}
  .tsz{min-width:28px;height:24px;font-size:.52rem;border-radius:5px}
  .text-color-opts{gap:.15rem}
  .tc{width:20px;height:20px}
  .text-style-opts{gap:.15rem}
  .tsty{font-size:.55rem;padding:.25rem .45rem;border-radius:5px}
}

@media(max-width:375px){
  .hero-title{font-size:1.35rem}
  .game-grid{grid-template-columns:1fr 1fr;gap:.4rem}
  .sticker-grid{grid-template-columns:repeat(5,1fr)}
  .twibbon-grid{grid-template-columns:repeat(3,1fr)}
  .filter-grid{grid-template-columns:1fr}
}

/* ===== MOCKUP SWAP ANIMATION ===== */
@keyframes mockupSwap {
  0% { opacity: 0; transform: scale(0.85) rotateY(15deg); }
  60% { opacity: 1; transform: scale(1.03) rotateY(-3deg); }
  100% { transform: scale(1) rotateY(0); }
}
/* ===== GAME MODE SELECTION ===== */
.game-overlay{
  position:fixed;inset:0;z-index:9000;
  background:rgba(10,10,10,.95);
  display:flex;align-items:center;justify-content:center;
  opacity:0;transition:opacity .3s ease;
  overflow:hidden;
  contain:content;
}
.game-overlay.active{opacity:1}
.game-overlay.exiting{opacity:0;transition:opacity .35s ease;pointer-events:none}

/* Scanlines - lightweight */
.game-scanline{
  position:absolute;left:0;right:0;height:2px;
  background:linear-gradient(90deg,transparent,rgba(29,125,88,.5),transparent);
  opacity:.3;z-index:1;
  animation:gameScan 5s linear infinite;pointer-events:none;
  will-change:transform;
}

@keyframes gameScan{
  0%{top:-5px;opacity:0}
  10%{opacity:.3}
  90%{opacity:.2}
  100%{top:100%;opacity:0}
}

/* Particles - lightweight */
.game-particles{position:absolute;inset:0;z-index:0;pointer-events:none;overflow:hidden}
.game-particle{
  position:absolute;border-radius:50%;opacity:.12;
  animation:gameFloat 6s ease-in-out infinite alternate;
  will-change:transform;
}
@keyframes gameFloat{
  0%{transform:translateY(0);opacity:.08}
  100%{transform:translateY(-20px);opacity:.04}
}

/* Box */
.game-box{
  position:relative;z-index:2;
  width:92%;max-width:780px;padding:2rem 2rem 1.5rem;
  background:#0d1310;
  border:1.5px solid rgba(212,160,74,.25);
  border-radius:24px;
  box-shadow:0 0 60px rgba(212,160,74,.12),inset 0 1px 0 rgba(255,255,255,.04);
  transform:scale(.85) translateY(30px);
  animation:gameBoxIn .5s cubic-bezier(.22,1,.36,1) .1s forwards;
  overflow:hidden;
  will-change:transform,opacity;
}
@keyframes gameBoxIn{
  0%{transform:scale(.85) translateY(30px);opacity:0}
  100%{transform:scale(1) translateY(0);opacity:1}
}
.game-overlay.exiting .game-box{
  animation:gameBoxOut .35s cubic-bezier(.55,.06,.68,.19) forwards;
}
@keyframes gameBoxOut{
  0%{transform:scale(1) translateY(0);opacity:1}
  100%{transform:scale(.92) translateY(-30px);opacity:0}
}

.game-box-glow{
  position:absolute;top:-60px;left:50%;transform:translateX(-50%);
  width:250px;height:120px;border-radius:50%;
  background:radial-gradient(circle,rgba(212,160,74,.1) 0%,transparent 70%);
  pointer-events:none;
}

/* Header */
.game-header{text-align:center;margin-bottom:1.5rem;position:relative;z-index:3}
.game-badge{
  display:inline-block;padding:.2rem .8rem;border-radius:99px;
  font-size:.55rem;font-weight:700;letter-spacing:.15em;text-transform:uppercase;
  background:linear-gradient(135deg,rgba(212,160,74,.2),rgba(212,160,74,.05));
  border:1px solid rgba(212,160,74,.3);color:var(--gold);
  margin-bottom:.6rem;
}
.game-title{
  font-family:var(--serif);font-size:2rem;font-weight:400;
  color:var(--cream);letter-spacing:.04em;
}
.game-title span{
  color:var(--gold);font-style:italic;
}
.game-sub{font-size:.75rem;color:var(--text-muted);margin-top:.2rem}

/* Grid */
.game-grid{
  display:grid;grid-template-columns:repeat(3,1fr);gap:.8rem;
  position:relative;z-index:3;
}

/* Card */
.game-card{
  position:relative;border:none;background:transparent;
  cursor:pointer;padding:0;outline:none;
  transform:translateY(20px);opacity:0;
  animation:cardIn .4s cubic-bezier(.22,1,.36,1) var(--card-delay) forwards;
  will-change:transform,opacity;
}
@keyframes cardIn{
  0%{transform:translateY(20px) scale(.92);opacity:0}
  100%{transform:translateY(0) scale(1);opacity:1}
}

.game-card-inner{
  position:relative;padding:1rem .6rem;border-radius:14px;
  background:rgba(255,255,255,.025);
  border:1.5px solid rgba(255,255,255,.06);
  transition:all .25s cubic-bezier(.22,1,.36,1);
  overflow:hidden;
}

.game-card:hover .game-card-inner{
  border-color:var(--card-color);
  background:rgba(255,255,255,.05);
  transform:translateY(-4px) scale(1.03);
  box-shadow:0 8px 24px rgba(0,0,0,.3);
}

.game-card:hover .game-card-glow{
  opacity:1;
}

.game-card-glow{
  position:absolute;top:0;left:50%;transform:translateX(-50%);
  width:80%;height:50%;
  background:radial-gradient(ellipse,var(--card-color),transparent 70%);
  opacity:0;transition:opacity .25s;pointer-events:none;
}

.game-card.selected .game-card-inner{
  border-color:var(--card-color);
  box-shadow:0 0 30px rgba(0,0,0,.4);
  animation:cardSelect .4s ease-out;
}
@keyframes cardSelect{
  0%{transform:scale(1)}
  40%{transform:scale(1.1)}
  100%{transform:scale(1.05)}
}

.game-card-icon{
  font-size:1.8rem;margin-bottom:.3rem;
  transition:transform .25s;
}
.game-card:hover .game-card-icon{
  transform:scale(1.15) rotate(-3deg);
}

.game-card-label{
  font-size:.75rem;font-weight:700;color:var(--cream);
  letter-spacing:.02em;margin-bottom:.15rem;
}

.game-card-desc{
  font-size:.55rem;color:var(--text-muted);margin-bottom:.3rem;
}

.game-card-shots{
  font-size:.5rem;font-weight:600;
  padding:.1rem .4rem;border-radius:99px;display:inline-block;
  background:rgba(255,255,255,.06);color:var(--text-dim);
  letter-spacing:.05em;text-transform:uppercase;
}

.game-card-preview{
  margin-top:.5rem;color:var(--card-color);opacity:.35;
  transition:all .3s;
}
.game-card:hover .game-card-preview{opacity:.7;transform:scale(1.05)}
.game-card-preview svg{width:100%;max-height:50px}

/* Close button */
.game-close{
  display:block;margin:1.2rem auto 0;padding:.5rem 1.2rem;border-radius:99px;
  background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.08);
  color:var(--text-muted);cursor:pointer;font-size:.75rem;font-family:var(--f);
  transition:all .2s;position:relative;z-index:3;
}
.game-close:hover{background:rgba(255,255,255,.08);color:var(--w)}

/* Responsive game grid */
@media(max-width:600px){
  .game-grid{grid-template-columns:repeat(2,1fr);gap:.6rem}
  .game-box{padding:1.2rem 1rem 1rem}
  .game-title{font-size:1.4rem}
  .game-card-icon{font-size:1.6rem}
  .game-card{padding:0}
}
@media(max-width:380px){
  .game-grid{grid-template-columns:1fr 1fr;gap:.4rem}
}
