*{box-sizing:border-box;margin:0;padding:0;}

:root{
  /* RED */
  --red:#dc1414;
  --red2:#f01a1a;
  --red3:#ff4444;
  --red4:#ffe5e5;
  --red5:#fff5f5;

  /* NEUTRALS */
  --bg:#f0f2f5;
  --white:#ffffff;
  --ink:#1a1a2e;
  --ink2:#4a4a6a;
  --ink3:#8888aa;
  --ink4:#c0c0d0;
  --line:#e8eaed;
  --line2:#f4f5f7;
  --surface:#f8f9fb;

  --success:#16a34a;
  --sbg:#dcfce7;
  --err:#dc1414;
  --ebg:#fff5f5;

  --sans:'Inter','Noto Sans Thai',sans-serif;
  --r:16px;
  --shadow:0 2px 12px rgba(0,0,0,0.06);
  --shadow-md:0 4px 24px rgba(0,0,0,0.08);
}

html{scroll-behavior:smooth;}

body{
  background:var(--bg);
  color:var(--ink);
  font-family:'Inter','Noto Sans Thai',sans-serif;
  min-height:100vh;
  display:flex;
  flex-direction:column;
  align-items:center;
  overflow-x:hidden;
}
@keyframes fadeDown{
  from{opacity:0;transform:translateY(-12px);}
  to{opacity:1;transform:translateY(0);}
}
@keyframes riseUp{
  from{opacity:0;transform:translateY(16px);}
  to{opacity:1;transform:translateY(0);}
}
@keyframes spinning{to{transform:rotate(360deg);}}
@keyframes ping{
  0%,100%{transform:scale(1);opacity:.8;}
  50%{transform:scale(2);opacity:0;}
}
@keyframes floatUp{
  0%{opacity:0;transform:translateY(0) scale(0);}
  10%{opacity:.3;}
  80%{opacity:.08;}
  100%{opacity:0;transform:translateY(-100vh) scale(1.5);}
}
@keyframes driftA{
  from{transform:translate(0,0);}
  to{transform:translate(18px,12px);}
}
@keyframes driftB{
  from{transform:translate(0,0);}
  to{transform:translate(-12px,20px);}
}
@keyframes countdown{from{transform:scaleX(1);}to{transform:scaleX(0);}}
@keyframes sheetUp{
  from{transform:translateY(100%);}
  to{transform:translateY(0);}
}
@keyframes toastCountdown{from{transform:scaleX(1);}to{transform:scaleX(0);}}
@keyframes popIn{
  from{opacity:0;transform:scale(0.95);}
  to{opacity:1;transform:scale(1);}
}
/* ── WRAP ── */
.wrap{
  position:relative;z-index:1;
  width:100%;max-width:480px;
  margin:0 auto;
  padding:0 16px 100px;
}

/* ── BG subtle radial ── */
.bg-mesh{
  position:fixed;inset:0;z-index:0;pointer-events:none;
  background:var(--bg);
}
.bg-mesh::before{
  content:'';position:absolute;
  width:500px;height:500px;border-radius:50%;
  background:radial-gradient(circle,rgba(220,20,20,0.04),transparent 65%);
  top:-160px;right:-160px;
  animation:driftA 20s ease-in-out infinite alternate;
}
.bg-mesh::after{
  content:'';position:absolute;
  width:380px;height:380px;border-radius:50%;
  background:radial-gradient(circle,rgba(220,20,20,0.03),transparent 65%);
  bottom:-120px;left:-80px;
  animation:driftB 26s ease-in-out infinite alternate;
}
.bg-noise{display:none;}

/* ── SECTION LABEL ── */
.section-label{
  font-size:0.65rem;font-weight:700;letter-spacing:0.12em;
  text-transform:uppercase;color:var(--ink3);
  margin-bottom:10px;display:flex;align-items:center;gap:10px;
}
.section-label::before,.section-label::after{
  content:'';flex:1;height:1px;background:var(--line);
}

/* ── HEADER ── */
.site-header{
  padding:32px 0 0;margin-bottom:20px;
  display:flex;flex-direction:column;align-items:stretch;
  animation:fadeDown .5s ease both;
}

/* ── HERO BAND ── */
.hero-band{
  background:linear-gradient(135deg,#1a0a0a 0%,#2d0808 50%,#1f0505 100%);
  border-radius:22px;
  padding:22px 20px 22px;
  display:flex;align-items:center;gap:16px;
  box-shadow:0 8px 32px rgba(220,20,20,0.25), 0 2px 8px rgba(0,0,0,0.3);
  border:1px solid rgba(255,255,255,0.06);
  margin-bottom:10px;
  position:relative;overflow:hidden;
}

/* animated orbs */
.hero-band::before{
  content:'';position:absolute;
  top:-40px;right:-40px;
  width:160px;height:160px;border-radius:50%;
  background:radial-gradient(circle,rgba(220,20,20,0.35),transparent 70%);
  pointer-events:none;
  animation:orbA 6s ease-in-out infinite alternate;
}
.hero-band::after{
  content:'';position:absolute;
  bottom:-50px;left:10px;
  width:140px;height:140px;border-radius:50%;
  background:radial-gradient(circle,rgba(255,80,20,0.2),transparent 70%);
  pointer-events:none;display:block;
  animation:orbB 8s ease-in-out infinite alternate;
}

/* extra orb via span inside hero-band */
.hero-snow{
  position:absolute;inset:0;
  width:100%;height:100%;
  pointer-events:none;
  border-radius:22px;
}

@keyframes orbA{
  from{transform:translate(0,0) scale(1);}
  to{transform:translate(-20px,15px) scale(1.2);}
}
@keyframes orbB{
  from{transform:translate(0,0) scale(1);}
  to{transform:translate(20px,-20px) scale(1.3);}
}
@keyframes orbC{
  from{transform:translate(-50%,-50%) scale(1);}
  to{transform:translate(-40%,-60%) scale(1.4);}
}

.hero-icon-wrap{position:relative;flex-shrink:0;z-index:1;}
.hero-icon-box{
  width:58px;height:58px;border-radius:18px;
  background:linear-gradient(135deg,#e01010,#ff4422);
  display:flex;align-items:center;justify-content:center;
  font-size:26px;
  box-shadow:0 6px 20px rgba(220,20,20,0.5), inset 0 1px 0 rgba(255,255,255,0.15);
}
.hero-badge{
  position:absolute;top:-8px;right:-14px;
  background:linear-gradient(135deg,#ff6b00,#ff9500);
  border-radius:99px;
  padding:2px 8px;display:flex;align-items:center;gap:4px;
  font-size:0.56rem;font-weight:800;color:#fff;
  letter-spacing:0.1em;text-transform:uppercase;
  box-shadow:0 2px 10px rgba(255,107,0,0.5);
}
.hero-badge-dot{
  width:5px;height:5px;border-radius:50%;
  background:rgba(255,255,255,0.8);
  animation:ping 2s ease-in-out infinite;
}

.hero-text{flex:1;position:relative;z-index:1;margin-left:14px;}
.hero-title{
  font-size:1.5rem;font-weight:800;
  color:#fff;letter-spacing:-0.03em;line-height:1.1;
  margin-bottom:5px;
}
.hero-title em{font-style:normal;color:#ff5533;}
.hero-sub{
  font-size:0.76rem;color:rgba(255,255,255,0.55);
  font-weight:400;line-height:1.5;margin-bottom:11px;
}
.hero-status{
  display:inline-flex;align-items:center;gap:7px;
  background:rgba(22,163,74,0.15);
  border:1px solid rgba(22,163,74,0.3);
  border-radius:99px;padding:4px 12px 4px 8px;
  font-size:0.68rem;font-weight:600;color:#4ade80;
}
.hero-pulse{
  width:7px;height:7px;border-radius:50%;
  background:#4ade80;flex-shrink:0;
  animation:ping 2s ease-in-out infinite;
}

/* ── CHIPS ── */
.hero-chips{display:flex;gap:8px;flex-wrap:nowrap;justify-content:center;}
.chip{
  display:flex;align-items:center;gap:6px;
  background:linear-gradient(135deg,#E50914,#a50000);
  border:none;
  border-radius:99px;
  padding:8px 14px 8px 7px;
  font-size:0.68rem;font-weight:700;color:#fff;
  box-shadow:0 4px 16px rgba(229,9,20,0.35), 0 1px 4px rgba(0,0,0,0.1);
  animation:riseUp .5s ease both;
  letter-spacing:0.01em;
  white-space:nowrap;
}
.chip:nth-child(1){animation-delay:.08s;}
.chip:nth-child(2){animation-delay:.16s;}
.chip:nth-child(3){animation-delay:.24s;}
.chip-icon{
  width:26px;height:26px;border-radius:50%;
  display:flex;align-items:center;justify-content:center;
  flex-shrink:0;
}
.chip-icon svg{width:13px;height:13px;display:block;}
.chip-icon--yellow{background:rgba(255,255,255,0.25);}
.chip-icon--blue{background:rgba(255,255,255,0.25);}
.chip-icon--green{background:rgba(255,255,255,0.25);}

.logo-stage,.logo-ring-outer,.logo-ring-mid,.logo-core,.logo-icon,
.shine-badge,.site-name,.site-sub,.status-pill,.pulse-dot{display:none!important;}

/* ── FOOTER ── */
.footer{
  text-align:center;font-size:0.68rem;color:var(--ink4);
  margin-top:12px;line-height:2;
}
.footer b{color:var(--red);font-weight:700;}
.footer-dots{display:inline-flex;gap:4px;vertical-align:middle;margin:0 5px;}
.footer-dot{width:3px;height:3px;border-radius:50%;background:var(--ink4);}

.particle{display:none;}
/* ── CARDS ── */
.card{
  background:var(--white);
  border:1px solid var(--line);
  border-radius:var(--r);
  padding:20px;
  margin-bottom:10px;
  box-shadow:var(--shadow);
  animation:riseUp .45s ease both;
  transition:box-shadow .2s,transform .2s;
}
.card:hover{
  box-shadow:var(--shadow-md);
  transform:translateY(-1px);
}
.card::before{display:none;}
.card:nth-child(1){animation-delay:.04s;}
.card:nth-child(2){animation-delay:.09s;}
.card:nth-child(3){animation-delay:.14s;}

/* Card head */
.card-head{display:flex;align-items:center;gap:12px;margin-bottom:16px;}
.card-icon{
  width:42px;height:42px;border-radius:12px;
  background:var(--red4);
  display:flex;align-items:center;justify-content:center;
  flex-shrink:0;
}
.card-icon svg{
  width:18px;height:18px;stroke:var(--red);fill:none;
  stroke-width:2;stroke-linecap:round;stroke-linejoin:round;
}
.card-title{font-size:0.88rem;font-weight:700;color:var(--ink);letter-spacing:-0.01em;}
.card-title small{display:block;font-size:0.72rem;font-weight:400;color:var(--ink3);margin-top:2px;}

/* ── FIELDS ── */
.field-label{
  font-size:0.72rem;font-weight:600;color:var(--ink2);
  margin-bottom:8px;display:flex;align-items:center;gap:5px;
}
.req{color:var(--red);}
.input-wrap{position:relative;}
.input-wrap>svg{
  position:absolute;left:13px;top:50%;transform:translateY(-50%);
  width:15px;height:15px;stroke:var(--ink4);fill:none;
  stroke-width:2;stroke-linecap:round;stroke-linejoin:round;
  pointer-events:none;transition:stroke .2s;
}
.input-wrap:focus-within>svg{stroke:var(--red);}

input{
  width:100%;background:var(--surface);
  border:1.5px solid var(--line);border-radius:12px;
  padding:12px 14px 12px 40px;
  color:var(--ink);font-family:'Inter','Noto Sans Thai',sans-serif;
  font-size:0.9rem;font-weight:400;
  outline:none;transition:border-color .2s,box-shadow .2s,background .2s;
  -webkit-appearance:none;
}
input:focus{
  background:var(--white);border-color:var(--red);
  box-shadow:0 0 0 3px rgba(220,20,20,0.08);
}
input::placeholder{color:var(--ink4);}

/* ── FETCH BUTTON ── */
.btn-wrap{padding:4px 0;}
.fetch-btn{
  width:100%;padding:15px;
  background:linear-gradient(135deg,#E50914,#b00010);
  border:none;border-radius:99px;color:#fff;
  font-family:'Inter','Noto Sans Thai',sans-serif;
  font-size:0.95rem;font-weight:700;
  cursor:pointer;display:flex;align-items:center;justify-content:center;gap:10px;
  transition:transform .15s,filter .15s;
  box-shadow:0 0 0 0 rgba(229,9,20,0.7);
  position:relative;overflow:hidden;
  animation:btnPulse 2s ease-in-out infinite;
}
@keyframes btnPulse{
  0%  {box-shadow:0 0 8px 2px rgba(229,9,20,0.3), 0 4px 14px rgba(229,9,20,0.25);}
  50% {box-shadow:0 0 16px 4px rgba(229,9,20,0.18), 0 6px 20px rgba(229,9,20,0.3);}
  100%{box-shadow:0 0 8px 2px rgba(229,9,20,0.3), 0 4px 14px rgba(229,9,20,0.25);}
}
.fetch-btn::before{
  content:'';position:absolute;top:0;left:-100%;width:55%;height:100%;
  background:linear-gradient(90deg,transparent,rgba(255,255,255,0.22),transparent);
  transform:skewX(-20deg);
  animation:btnShine 2.8s ease-in-out infinite;
}
@keyframes btnShine{
  0%,40%{left:-100%;}
  70%{left:160%;}
  100%{left:160%;}
}
.fetch-btn::after{
  content:'';position:absolute;inset:0;border-radius:99px;
  background:linear-gradient(180deg,rgba(255,255,255,0.1) 0%,transparent 60%);
  pointer-events:none;
}
.fetch-btn:hover{
  filter:brightness(1.12);
  transform:translateY(-2px) scale(1.01);
}
.fetch-btn:active{transform:scale(0.97);filter:brightness(0.95);}
.fetch-btn:disabled{
  opacity:0.5;cursor:not-allowed;transform:none;
  animation:none;filter:none;
  box-shadow:0 4px 12px rgba(229,9,20,0.2);
}
.fetch-btn:disabled::before{animation:none;}
.fetch-btn svg{
  width:17px;height:17px;stroke:#fff;fill:none;
  stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round;flex-shrink:0;
}

/* ── SPINNER ── */
.spin{
  width:17px;height:17px;
  border:2px solid rgba(255,255,255,0.3);
  border-top-color:#fff;border-radius:50%;
  animation:spinning .7s linear infinite;flex-shrink:0;
}

/* ── RESULT CARD ── */
/* ── RESULT CARD — Netflix style ── */
.result-card{display:none;}
.result-inner{
  background:var(--white);
  border-radius:16px;
  padding:24px 20px 20px;
  position:relative;overflow:hidden;
  border:none;
  box-shadow:0 2px 16px rgba(0,0,0,0.07);
}
.result-inner::before{display:none;}
.result-inner::after{display:none;}

/* Title */
.netflix-title{
  font-size:1rem;font-weight:700;color:var(--ink);
  margin-bottom:14px;
  letter-spacing:-0.01em;
}

/* Meta rows (email / datetime) */
.netflix-meta-row{
  display:flex;align-items:center;gap:8px;
  margin-bottom:6px;
}
.netflix-meta-icon{
  width:15px;height:15px;stroke:var(--ink3);fill:none;
  stroke-width:2;stroke-linecap:round;stroke-linejoin:round;flex-shrink:0;
}
.netflix-meta-icon--red{stroke:var(--red);}
.netflix-meta-text{
  font-size:0.82rem;color:var(--ink2);
}

/* Code box */
.netflix-code-box{
  position:relative;
  margin:18px 0 0;
  border:2px dashed #e8c8c8;
  border-radius:12px;
  padding:20px 16px 16px;
  background:#fff9f9;
  cursor:pointer;
  overflow:hidden;
  transition:border-color .2s;
  user-select:none;
}
.netflix-code-box:hover{border-color:var(--red3);}
.netflix-code-label{
  display:flex;align-items:center;justify-content:center;gap:6px;
  font-size:0.72rem;font-weight:600;color:var(--red);
  margin-bottom:10px;letter-spacing:0.01em;
}
.netflix-code-label svg{
  width:13px;height:13px;stroke:var(--red);fill:none;
  stroke-width:2;stroke-linecap:round;stroke-linejoin:round;
}
.netflix-code-val{
  font-size:3.2rem;font-weight:800;letter-spacing:0.28em;
  color:var(--red);text-align:center;line-height:1;
  font-variant-numeric:tabular-nums;
}

/* Copied overlay */
.netflix-copied-overlay{
  position:absolute;inset:0;
  background:#dcfce7;
  display:flex;align-items:center;justify-content:center;
  gap:10px;
  font-size:2rem;font-weight:800;color:#16a34a;letter-spacing:0.06em;
  opacity:0;pointer-events:none;
  transition:opacity .18s;
  border-radius:10px;
}
.netflix-copied-overlay.show{opacity:1;}
.netflix-copied-overlay svg{
  width:32px;height:32px;stroke:#16a34a;fill:none;
  stroke-width:3;stroke-linecap:round;stroke-linejoin:round;
}

/* Hint below code box */
.netflix-hint{
  display:flex;align-items:center;justify-content:center;gap:5px;
  font-size:0.7rem;color:var(--ink4);
  margin-top:10px;margin-bottom:4px;
}
.netflix-hint svg{
  width:12px;height:12px;stroke:var(--ink4);fill:none;
  stroke-width:2;stroke-linecap:round;stroke-linejoin:round;
}

/* ── ERROR CARD ── */
.error-card{
  display:none;background:var(--ebg);
  border:1.5px solid rgba(220,20,20,0.15);border-radius:14px;
  padding:14px 18px;margin-bottom:10px;
}
.error-head{
  display:flex;align-items:center;gap:8px;
  font-size:0.82rem;font-weight:700;color:var(--red);margin-bottom:5px;
}
.error-head svg{
  width:16px;height:16px;stroke:currentColor;fill:none;
  stroke-width:2;stroke-linecap:round;stroke-linejoin:round;
}
.error-body{font-size:0.76rem;color:#7a0a07;font-weight:500;line-height:1.7;}

/* ── TUTORIAL BUTTON ── */
.tut-btn-row{display:flex;gap:10px;margin-bottom:10px;}
.tut-btn-row .tut-btn{margin-bottom:0;}
.tut-btn{
  flex:1;padding:16px 10px;
  background:var(--white);
  border:1.5px solid var(--line);
  border-radius:16px;color:var(--ink2);
  font-family:'Inter','Noto Sans Thai',sans-serif;
  font-size:0.82rem;font-weight:700;
  cursor:pointer;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;
  transition:all .2s;box-shadow:var(--shadow);
}
.tut-btn:hover{
  border-color:var(--line);
  transform:translateY(-2px);box-shadow:0 6px 20px rgba(0,0,0,0.1);
}
.tut-btn-icon{
  width:46px;height:46px;border-radius:14px;
  display:flex;align-items:center;justify-content:center;
}
.tut-btn-icon--red{background:#fff0f0;}
.tut-btn-icon--blue{background:#f0f4ff;}
.tut-btn-icon svg{
  width:22px;height:22px;fill:none;
  stroke-width:2;stroke-linecap:round;stroke-linejoin:round;
}
.tut-btn-icon--red svg{stroke:var(--red);}
.tut-btn-icon--blue svg{stroke:#3b5bdb;}

/* ── TUTORIAL TABS ── */
.tut-tabs{
  display:flex;gap:8px;
  padding:0 22px 4px;
  border-bottom:1.5px solid var(--line);
  margin-bottom:0;
}
.tut-tab{
  flex:1;padding:10px 8px;
  background:none;border:none;border-bottom:2.5px solid transparent;
  font-family:'Inter','Noto Sans Thai',sans-serif;
  font-size:0.85rem;font-weight:600;color:var(--ink3);
  cursor:pointer;display:flex;align-items:center;justify-content:center;gap:6px;
  transition:all .18s;margin-bottom:-1.5px;
}
.tut-tab svg{
  width:15px;height:15px;stroke:currentColor;fill:none;
  stroke-width:2;stroke-linecap:round;stroke-linejoin:round;
}
.tut-tab.active{
  color:var(--red);
  border-bottom-color:var(--red);
}
.tut-tab:hover:not(.active){color:var(--ink2);}
}

/* ── TOAST ── */
.toast-popup{
  position:fixed;bottom:20px;right:16px;z-index:99999;
  border:1px solid var(--line);
  border-radius:18px;
  min-width:260px;max-width:320px;
  background:var(--white);
  box-shadow:0 20px 50px rgba(0,0,0,0.12),0 4px 12px rgba(0,0,0,0.06);
  transform:translateX(115%);opacity:0;
  transition:transform .4s cubic-bezier(.22,.68,0,1.1),opacity .3s ease;
  overflow:hidden;
}
.toast-popup::before{
  content:'';position:absolute;top:0;left:0;right:0;height:3px;
  background:var(--red);
}
.toast-popup.toast-show{transform:translateX(0);opacity:1;}
.toast-inner{display:flex;align-items:center;gap:12px;padding:14px 14px 10px;}
.toast-icon{
  font-size:1.2rem;flex-shrink:0;
  background:var(--red4);
  border-radius:12px;width:42px;height:42px;
  display:flex;align-items:center;justify-content:center;
}
.toast-body{flex:1;min-width:0;}
.toast-title{
  font-size:0.62rem;font-weight:700;color:var(--red);
  letter-spacing:0.1em;text-transform:uppercase;margin-bottom:3px;
  display:flex;align-items:center;gap:5px;
}
.toast-title::before{
  content:'';width:5px;height:5px;border-radius:50%;
  background:var(--red);display:inline-block;flex-shrink:0;
}
.toast-email{font-size:0.7rem;color:var(--ink4);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-bottom:4px;}
.toast-code{font-size:1.6rem;font-weight:800;color:var(--red);letter-spacing:0.2em;font-variant-numeric:tabular-nums;line-height:1;}
.toast-close{
  background:var(--line2);border:none;color:var(--ink4);
  font-size:0.76rem;cursor:pointer;width:22px;height:22px;border-radius:6px;
  display:flex;align-items:center;justify-content:center;
  transition:all .15s;flex-shrink:0;align-self:flex-start;margin-top:1px;
}
.toast-close:hover{color:var(--ink);background:var(--line);}
.toast-progress-wrap{height:3px;background:var(--line2);width:100%;}
.toast-progress{height:100%;width:100%;background:var(--red);transform-origin:left;animation:toastCountdown 5s linear forwards;}

/* ── RETRY CARD ── */
.retry-card{
  display:none;background:var(--white);border:1px solid var(--line);
  border-radius:var(--r);padding:18px 20px;margin-bottom:10px;
  box-shadow:var(--shadow);
}
.retry-top{display:flex;align-items:center;gap:12px;margin-bottom:8px;}
.retry-icon{
  width:36px;height:36px;border-radius:10px;background:var(--red4);
  display:flex;align-items:center;justify-content:center;flex-shrink:0;
}
.retry-icon svg{
  width:16px;height:16px;stroke:var(--red);fill:none;
  stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round;
  animation:spinning .8s linear infinite;
}
.retry-title{font-size:0.86rem;font-weight:700;color:var(--ink);flex:1;}
.retry-badge{
  background:var(--red);color:#fff;font-size:0.68rem;font-weight:700;
  border-radius:99px;padding:2px 10px;flex-shrink:0;
}
.retry-sub{font-size:0.75rem;color:var(--ink3);margin-bottom:12px;line-height:1.6;}
.retry-bar-wrap{height:3px;background:var(--line);border-radius:99px;overflow:hidden;margin-bottom:14px;}
.retry-bar{
  height:100%;width:100%;
  background:var(--red);
  border-radius:99px;transform-origin:left;
  animation:countdown 3s linear forwards;
}
.cancel-btn{
  width:100%;padding:10px;
  background:transparent;border:1.5px solid var(--line);
  border-radius:99px;color:var(--ink3);
  font-family:'Inter','Noto Sans Thai',sans-serif;
  font-size:0.82rem;font-weight:600;
  cursor:pointer;transition:all .18s;
}
.cancel-btn:hover{border-color:rgba(220,20,20,0.3);color:var(--red);background:var(--red5);}

/* ── DIVIDER ── */
.ornament-divider{
  display:flex;align-items:center;gap:12px;
  margin:4px 0 10px;
}
.ornament-divider::before,.ornament-divider::after{
  content:'';flex:1;height:1px;background:var(--line);
}
.ornament-dot{width:3px;height:3px;border-radius:50%;background:var(--ink4);}
/* ── OVERLAY ── */
.overlay{
  display:none;position:fixed;inset:0;
  background:rgba(0,0,0,0.45);backdrop-filter:blur(6px);
  z-index:900;align-items:flex-end;justify-content:center;
}
.overlay.open{display:flex;}

/* ── SHEET ── */
.sheet{
  background:var(--white);border-radius:24px 24px 0 0;
  width:100%;max-width:520px;max-height:90vh;overflow-y:auto;
  animation:sheetUp .35s cubic-bezier(.22,.68,0,1.1) both;
  box-shadow:0 -8px 40px rgba(0,0,0,0.1);
}
.sheet::before{display:none;}
.sheet-handle{
  width:40px;height:4px;background:var(--line);
  border-radius:99px;margin:14px auto 0;
}
.sheet-header{
  padding:20px 22px 16px;border-bottom:1px solid var(--line);
  display:flex;align-items:flex-start;justify-content:space-between;gap:12px;
}
.sheet-title{font-size:1.1rem;font-weight:800;color:var(--ink);letter-spacing:-0.02em;}
.sheet-title span{color:var(--red);}
.sheet-sub{font-size:0.76rem;color:var(--ink3);margin-top:3px;}
.sheet-close{
  width:32px;height:32px;background:var(--line2);
  border:none;border-radius:10px;cursor:pointer;
  display:flex;align-items:center;justify-content:center;
  flex-shrink:0;transition:all .18s;
}
.sheet-close:hover{background:var(--red4);color:var(--red);}
.sheet-close svg{
  width:13px;height:13px;stroke:var(--ink3);fill:none;
  stroke-width:2.5;stroke-linecap:round;
}
.sheet-body{padding:22px;}

/* ── STEPS ── */
.step-row{display:flex;gap:16px;}
.step-left{display:flex;flex-direction:column;align-items:center;width:38px;flex-shrink:0;}
.step-num{
  width:38px;height:38px;border-radius:99px;
  background:var(--red);
  display:flex;align-items:center;justify-content:center;
  font-size:0.85rem;font-weight:800;color:#fff;
  flex-shrink:0;z-index:1;
  box-shadow:0 4px 12px rgba(220,20,20,0.3);
}
.step-line{
  width:2px;flex:1;
  background:linear-gradient(to bottom,var(--red4),var(--line));
  min-height:20px;margin:5px 0;border-radius:99px;
}
.step-right{padding-bottom:22px;flex:1;}
.step-tag{
  display:inline-block;font-size:0.6rem;font-weight:700;
  color:var(--red);background:var(--red4);border-radius:6px;
  padding:2px 8px;letter-spacing:0.1em;text-transform:uppercase;
  margin-bottom:6px;
}
.step-h{font-size:0.9rem;font-weight:700;color:var(--ink);margin-bottom:5px;}
.step-p{font-size:0.8rem;color:var(--ink3);line-height:1.75;}
.step-p b{color:var(--red);font-weight:700;}

/* ── TIP ── */
.tip-row{
  display:flex;gap:12px;align-items:flex-start;
  background:var(--red5);
  border:1px solid rgba(220,20,20,0.12);border-radius:14px;
  padding:16px;margin-top:4px;
}
.tip-icon-wrap{
  width:36px;height:36px;border-radius:10px;
  background:var(--red4);border:1px solid rgba(220,20,20,0.15);
  display:flex;align-items:center;justify-content:center;
  font-size:16px;flex-shrink:0;
}
.tip-text{font-size:0.8rem;color:var(--ink2);line-height:1.7;padding-top:4px;}
.tip-text b{font-weight:700;color:var(--red);}

/* ── NOTE BOX ── */
.note-box{
  background:#fffbf0;
  border:1px solid rgba(180,130,0,0.2);
  border-left:3px solid #f0a500;
  border-radius:12px;
  padding:14px 16px;
  margin-top:14px;
}
.note-box-title{
  font-size:0.72rem;font-weight:800;color:#b07800;
  letter-spacing:0.06em;text-transform:uppercase;
  margin-bottom:6px;display:flex;align-items:center;gap:5px;
}
.note-box-text{font-size:0.8rem;color:#6b5000;line-height:1.75;}
.note-box-text b{font-weight:700;color:#8a6200;}


/* ══════════════════════════════════════
   RESPONSIVE — Mobile / Tablet / Desktop
   iPhone SE → iPhone 15 Pro Max
   iPad Mini → iPad Pro 12.9"
   Desktop 1024px+
══════════════════════════════════════ */

/* ── Base: Mobile first (< 430px) ── */
@media (max-width: 430px) {
  .wrap{
    max-width:100%;
    padding:0 12px 80px;
  }
  .hero-band{
    padding:16px 14px;
    gap:12px;
  }
  .hero-title{font-size:1.25rem;}
  .hero-sub{font-size:0.72rem;}
  .hero-icon-box svg{width:52px;height:52px;}
  .hero-chips{
    gap:6px;
    padding:0 4px;
    justify-content:center;
  }
  .chip{
    padding:7px 12px 7px 6px;
    font-size:0.64rem;
    gap:5px;
    flex:0 0 auto;
  }
  .chip-icon{width:23px;height:23px;}
  .chip-icon svg{width:11px;height:11px;}
  .card{padding:16px 14px;}
  .fetch-btn{padding:14px;font-size:0.88rem;}
  .sheet{border-radius:22px 22px 0 0;}
  .netflix-code-val{font-size:2.4rem;}
  .tut-btn{padding:12px 10px;font-size:0.72rem;}
}

/* ── iPhone 15 Pro / 15 Pro Max (393–430px) ── */
@media (min-width: 390px) and (max-width: 430px) {
  .wrap{max-width:100%;padding:0 16px 90px;}
  .hero-title{font-size:1.35rem;}
  .netflix-code-val{font-size:2.6rem;}
}

/* ── iPad Mini / iPad Air (768px) ── */
@media (min-width: 768px) {
  .hero-band{padding:22px 24px;}
  .hero-title{font-size:1.65rem;}
  .hero-sub{font-size:0.82rem;}
  .hero-chips{padding:0 4px 4px;}
  .chip{font-size:0.76rem;padding:9px 18px 9px 9px;}
  .card{padding:20px 24px;}
  .fetch-btn{padding:17px;font-size:1rem;}
  .netflix-code-val{font-size:3rem;letter-spacing:0.18em;}
  .tut-btn-row{padding:0 4px;}
  .section-label{padding-left:4px;}
}

/* ── iPad Pro 11" / 12.9" (1024px+) ── */
@media (min-width: 1024px) {
  .hero-band{padding:26px 28px;}
  .hero-title{font-size:1.8rem;}
  .hero-sub{font-size:0.85rem;}
  .chip{font-size:0.78rem;}
  .card{padding:22px 28px;}
  .fetch-btn{padding:18px;font-size:1.05rem;}
  .netflix-code-val{font-size:3.2rem;}
  .sheet{max-width:600px;margin:0 auto;}
}

/* ── Safe area สำหรับ iPhone มี notch / Dynamic Island ── */
@supports (padding-bottom: env(safe-area-inset-bottom)) {
  .wrap{
    padding-bottom:calc(80px + env(safe-area-inset-bottom));
  }
  @media (min-width: 768px) {
    .wrap{padding-bottom:80px;}
  }
}
