
:root{
  --ink:#10151b;
  --ink-2:#1a222c;
  --plate:#f5f2ec;
  --card:#ffffff;
  --text:#1c232b;
  --muted:#5d6975;
  --accent:#12a06b;
  --accent-soft:#e3f5ec;
  --amber:#c4741a;
  --amber-soft:#fbf0e1;
  --line:#ded7cc;
  --line-dark:#2b3540;
  --gutter:20px;
  --radius:14px;
  --shadow:0 1px 2px rgba(16,21,27,.06),0 8px 24px rgba(16,21,27,.07);
}

*,*::before,*::after{box-sizing:border-box}

html{-webkit-text-size-adjust:100%}

body{
  margin:0;
  background:var(--plate);
  color:var(--text);
  font-family:"Iowan Old Style","Palatino Linotype",Palatino,Georgia,"Times New Roman",serif;
  font-size:17px;
  line-height:1.62;
}

img{max-width:100%;height:auto}

a{color:var(--accent);text-underline-offset:2px}
a:hover{color:#0c7a51}

/* ---------- wrapper: the ONE gutter container ---------------------------- */
.ts-wrap{
  max-width:1120px;
  margin:0 auto;
  padding-left:var(--gutter);
  padding-right:var(--gutter);
}

.skip{
  position:absolute;left:-9999px;top:0;
  background:var(--accent);color:#fff;padding-left:14px;padding-right:14px;
  padding-top:8px;padding-bottom:8px;z-index:60;
}
.skip:focus{left:8px;top:8px}

/* ---------- masthead ----------------------------------------------------- */
.ts-head{
  background:var(--ink);
  border-bottom:1px solid var(--line-dark);
  position:sticky;top:0;z-index:50;
}
.ts-head__bar{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:12px;
  padding-top:10px;
  padding-bottom:10px;
}
.ts-logo{display:inline-flex;align-items:center;flex:0 0 auto}
.ts-logo__img{display:block;width:132px;height:29px}

.ts-burger{
  margin-left:auto;
  width:44px;height:38px;
  display:inline-flex;align-items:center;justify-content:center;
  background:var(--ink-2);
  color:#f2f5f7;
  border:1px solid var(--line-dark);
  border-radius:10px;
  font:600 13px/1 system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;
  cursor:pointer;
}
.ts-burger:focus-visible{outline:2px solid var(--accent);outline-offset:2px}

.ts-nav{
  display:none;
  margin-left:auto;
  order:3;
}
.ts-nav--open{
  display:block;
  flex:0 0 100%;
  width:100%;
  padding-top:6px;
  padding-bottom:10px;
}
.ts-nav ul{list-style:none;margin:0;padding:0}
.ts-nav li{margin:0}
.ts-nav a{
  display:block;
  padding-top:11px;padding-bottom:11px;
  padding-left:4px;padding-right:4px;
  color:#e7ecf1;
  text-decoration:none;
  border-bottom:1px solid var(--line-dark);
  font:500 15px/1.3 system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;
  letter-spacing:.01em;
}
.ts-nav a:hover,.ts-nav a[aria-current="page"]{color:#63e3b0}

.ts-head__cta{
  display:none;
  align-items:center;
  background:var(--accent);
  color:#fff;
  text-decoration:none;
  border-radius:10px;
  padding-top:9px;padding-bottom:9px;
  padding-left:16px;padding-right:16px;
  font:600 14px/1 system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;
  order:4;
}
.ts-nav--open ~ .ts-head__cta{display:inline-flex;flex:0 0 100%;justify-content:center}

/* ---------- main --------------------------------------------------------- */
.ts-main{
  padding-top:22px;
  padding-bottom:40px;
}

.ts-crumbs{
  font:400 13px/1.5 system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;
  color:var(--muted);
  margin-bottom:14px;
}
.ts-crumbs a{color:var(--muted)}
.ts-crumbs span{margin-left:6px;margin-right:6px;opacity:.55}

h1{
  font-size:29px;
  line-height:1.22;
  margin-top:0;margin-bottom:14px;
  letter-spacing:-.012em;
}
h2{
  font-size:23px;
  line-height:1.3;
  margin-top:38px;margin-bottom:12px;
  letter-spacing:-.008em;
}
h3{font-size:19px;line-height:1.35;margin-top:26px;margin-bottom:9px}
p{margin-top:0;margin-bottom:15px}

.featbox{
  font-size:18px;
  border-left:3px solid var(--accent);
  padding-left:15px;
  color:#26313c;
}

/* ---------- device frame: the recurring motif ---------------------------- */
.ts-device{
  border:9px solid var(--ink);
  border-radius:26px;
  background:var(--card);
  padding-top:18px;padding-bottom:16px;
  padding-left:16px;padding-right:16px;
  position:relative;
  margin-top:20px;margin-bottom:24px;
  box-shadow:var(--shadow);
}
.ts-device::before{
  content:"";
  position:absolute;top:-9px;left:50%;
  transform:translateX(-50%);
  width:86px;height:9px;
  background:var(--ink);
  border-bottom-left-radius:8px;border-bottom-right-radius:8px;
}
.ts-device__label{
  font:600 11px/1 system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;
  letter-spacing:.13em;
  text-transform:uppercase;
  color:var(--muted);
  margin-bottom:10px;
}

/* ---------- figures ------------------------------------------------------ */
figure{
  margin-top:22px;margin-bottom:24px;
  margin-left:0;margin-right:0;
}
figure img{
  display:block;
  width:100%;
  border-radius:10px;
  border:1px solid var(--line);
}
figcaption{
  font:400 13px/1.5 system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;
  color:var(--muted);
  margin-top:8px;
}

/* ---------- cards, callouts, facts --------------------------------------- */
.ts-callout{
  background:var(--amber-soft);
  border:1px solid #edd6b4;
  border-left:4px solid var(--amber);
  border-radius:10px;
  padding-top:14px;padding-bottom:2px;
  padding-left:16px;padding-right:16px;
  margin-top:20px;margin-bottom:22px;
}
.ts-callout .note{
  font:600 11px/1 system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;
  letter-spacing:.12em;
  text-transform:uppercase;
  color:var(--amber);
  margin-bottom:8px;
}

.ts-facts{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:10px;
  margin-top:20px;margin-bottom:24px;
}
.ts-fact{
  background:var(--card);
  border:1px solid var(--line);
  border-radius:12px;
  padding-top:13px;padding-bottom:13px;
  padding-left:14px;padding-right:14px;
}
.ts-fact__k{
  font:600 11px/1.2 system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;
  letter-spacing:.09em;
  text-transform:uppercase;
  color:var(--muted);
  margin-bottom:5px;
}
.ts-fact__v{
  font:700 17px/1.25 system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;
  color:var(--text);
}

.ts-badges{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  margin-top:16px;margin-bottom:22px;
  padding-left:0;
  list-style:none;
}
.ts-badge{
  background:var(--accent-soft);
  border:1px solid #bfe6d4;
  border-radius:999px;
  padding-top:6px;padding-bottom:6px;
  padding-left:13px;padding-right:13px;
  font:600 13px/1.25 system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;
  color:#0b6b48;
}

/* ---------- thumb-order step rail ---------------------------------------- */
.ts-steps{
  counter-reset:ts;
  list-style:none;
  margin-top:20px;margin-bottom:24px;
  padding-left:0;
  border-left:2px dashed var(--line);
}
.ts-steps li{
  counter-increment:ts;
  position:relative;
  padding-left:46px;
  margin-bottom:16px;
}
.ts-steps li::before{
  content:counter(ts);
  position:absolute;left:-17px;top:0;
  width:32px;height:32px;
  display:flex;align-items:center;justify-content:center;
  background:var(--amber-soft);
  border:1px solid #e5c79c;
  border-radius:50%;
  color:var(--amber);
  font:700 14px/1 system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;
}

/* ---------- tables ------------------------------------------------------- */
.ts-tablewrap{
  overflow-x:auto;
  margin-top:20px;margin-bottom:24px;
  border:1px solid var(--line);
  border-radius:12px;
  background:var(--card);
}
.ts-tablewrap table{
  border-collapse:collapse;
  width:100%;
  min-width:540px;
  font:400 15px/1.45 system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;
}
.ts-tablewrap th,.ts-tablewrap td{
  text-align:left;
  padding-top:11px;padding-bottom:11px;
  padding-left:13px;padding-right:13px;
  border-bottom:1px solid var(--line);
}
.ts-tablewrap th{
  background:#efeae1;
  font-weight:700;
  white-space:nowrap;
}
.ts-tablewrap tr:last-child td{border-bottom:0}

/* ---------- lists -------------------------------------------------------- */
.ts-list{padding-left:20px;margin-top:14px;margin-bottom:18px}
.ts-list li{margin-bottom:8px}

/* ---------- CTA ---------------------------------------------------------- */
.ts-cta{
  display:block;
  text-align:center;
  background:var(--accent);
  color:#fff;
  text-decoration:none;
  border-radius:12px;
  padding-top:14px;padding-bottom:14px;
  padding-left:18px;padding-right:18px;
  margin-top:26px;margin-bottom:26px;
  font:700 16px/1.2 system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;
  box-shadow:0 6px 18px rgba(18,160,107,.22);
}
.ts-cta:hover{background:#0c7a51;color:#fff}

/* ---------- promo-code copy widget --------------------------------------- */
.ts-code{
  background:var(--ink);
  border-radius:var(--radius);
  padding-top:18px;padding-bottom:18px;
  padding-left:18px;padding-right:18px;
  margin-top:22px;margin-bottom:24px;
  color:#e9eef3;
}
.ts-code .note{
  font:600 11px/1 system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;
  letter-spacing:.12em;
  text-transform:uppercase;
  color:#7fd9b3;
  margin-bottom:10px;
}
.ts-code__row{display:flex;flex-wrap:wrap;gap:10px;align-items:center}
.ts-code__val{
  font:700 21px/1 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;
  letter-spacing:.16em;
  background:var(--ink-2);
  border:1px dashed #3d4b58;
  border-radius:10px;
  padding-top:12px;padding-bottom:12px;
  padding-left:16px;padding-right:16px;
}
.ts-code__btn{
  background:var(--accent);
  color:#fff;
  border:0;
  border-radius:10px;
  padding-top:13px;padding-bottom:13px;
  padding-left:18px;padding-right:18px;
  font:600 14px/1 system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;
  cursor:pointer;
}
.ts-code__btn.is-done{background:#0b6b48}

/* ---------- download-time estimator -------------------------------------- */
.ts-calc{
  background:var(--card);
  border:1px solid var(--line);
  border-radius:var(--radius);
  padding-top:18px;padding-bottom:18px;
  padding-left:18px;padding-right:18px;
  margin-top:22px;margin-bottom:24px;
  box-shadow:var(--shadow);
}
.ts-calc .note{
  font:600 11px/1 system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;
  letter-spacing:.12em;
  text-transform:uppercase;
  color:var(--muted);
  margin-bottom:10px;
}
.ts-calc input[type=range]{width:100%;accent-color:var(--accent)}
.ts-calc__out{
  font:700 19px/1.3 system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;
  color:var(--accent);
  margin-top:8px;
}

/* ---------- payload meter ------------------------------------------------ */
.ts-meter{margin-top:18px;margin-bottom:22px}
.ts-meter__row{
  display:flex;
  align-items:center;
  gap:10px;
  margin-bottom:9px;
  font:400 14px/1.35 system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;
}
.ts-meter__k{flex:0 0 40%;color:var(--muted)}
.ts-meter__bar{
  flex:1 1 auto;
  height:10px;
  background:#e6e0d6;
  border-radius:999px;
  overflow:hidden;
}
.ts-meter__fill{display:block;height:100%;background:var(--accent);border-radius:999px}

/* ---------- FAQ ---------------------------------------------------------- */
.queryblock{margin-top:28px;margin-bottom:10px}
.queryblock details{
  background:var(--card);
  border:1px solid var(--line);
  border-radius:12px;
  margin-bottom:10px;
  padding-top:2px;padding-bottom:2px;
  padding-left:16px;padding-right:16px;
}
.queryblock summary.asktitle{cursor:pointer}
.queryblock summary{
  cursor:pointer;
  padding-top:13px;padding-bottom:13px;
  font:600 16px/1.4 system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;
  list-style:none;
}
.queryblock summary::-webkit-details-marker{display:none}
.queryblock summary::after{content:"+";float:right;color:var(--accent);font-weight:700}
.queryblock details[open] summary::after{content:"\2212"}
.queryblock .answer{margin-top:0;margin-bottom:13px;color:#2a333c}

/* ---------- footer ------------------------------------------------------- */
.ts-foot{
  background:var(--ink);
  color:#b9c4cf;
  margin-top:44px;
  padding-top:30px;padding-bottom:34px;
  font:400 14px/1.6 system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;
}
.ts-foot__inner{position:relative}
.ts-foot__logo{width:132px;height:29px;display:block;margin-bottom:14px}
.ts-foot h2{
  font:600 12px/1 system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;
  letter-spacing:.13em;
  text-transform:uppercase;
  color:#7f8d9a;
  margin-top:20px;margin-bottom:10px;
}
.ts-foot ul{list-style:none;margin:0;padding:0}
.ts-foot li{margin-bottom:7px}
.ts-foot a{color:#d6dee6;text-decoration:none}
.ts-foot a:hover{color:#63e3b0}
.ts-foot__legal{
  border-top:1px solid var(--line-dark);
  margin-top:24px;
  padding-top:16px;
  color:#8896a3;
  font-size:13px;
}
.ts-age{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:34px;height:34px;
  border:2px solid #63e3b0;
  border-radius:50%;
  color:#63e3b0;
  font-weight:700;
  margin-right:10px;
  font-size:13px;
}

/* ---------- back to top -------------------------------------------------- */
.ts-top{
  position:fixed;
  right:14px;bottom:14px;
  width:44px;height:44px;
  border-radius:50%;
  border:1px solid var(--line-dark);
  background:var(--ink);
  color:#63e3b0;
  font-size:18px;
  cursor:pointer;
  display:none;
  z-index:40;
}
.ts-top.is-on{display:block}

/* ---------- 404 ---------------------------------------------------------- */
.ts-404{text-align:center;padding-top:40px;padding-bottom:30px}

/* ---------- wider viewports ---------------------------------------------- */
@media (min-width:880px){
  body{font-size:18px}
  .ts-burger{display:none}
  .ts-nav{display:block;order:2}
  .ts-nav ul{display:flex;gap:4px}
  .ts-nav a{
    border-bottom:0;
    padding-left:11px;padding-right:11px;
    padding-top:8px;padding-bottom:8px;
    border-radius:8px;
  }
  .ts-nav a:hover{background:var(--ink-2)}
  .ts-nav--open{flex:0 0 auto;width:auto;padding-top:0;padding-bottom:0}
  .ts-head__cta{display:inline-flex}
  .ts-nav--open ~ .ts-head__cta{flex:0 0 auto;justify-content:center}
  h1{font-size:38px}
  h2{font-size:27px}
  .ts-facts{grid-template-columns:repeat(4,minmax(0,1fr))}
  .ts-main{padding-top:30px;padding-bottom:56px}
  .ts-device{padding-left:26px;padding-right:26px}
  .ts-foot__cols{display:grid;grid-template-columns:1.4fr 1fr 1fr;gap:26px}
}

/* ---------- narrow phones ------------------------------------------------ */
@media (max-width:400px){
  .ts-logo__img{width:118px;height:26px}
  .ts-foot__logo{width:118px;height:26px}
  h1{font-size:25px}
  h2{font-size:21px}
  .ts-facts{grid-template-columns:repeat(1,minmax(0,1fr))}
}

@media (prefers-reduced-motion:reduce){
  *{animation-duration:.001ms!important;transition-duration:.001ms!important}
}
