/* =========================================================
   هفته‌نامه یکان + نرم‌افزارهای یکان
   Built on the "Treasure" tokens of style.css (near-black, warm ivory ink, gold). Each issue picks one of
   five accent palettes through --nl-a / --nl-b / --nl-c (+ their rgb triplets); everything else is shared.
   Like the rest of the site there is no motion — only colour, shadow and layout.
   ========================================================= */
.nl-gold    { --nl-a:#F3D488; --nl-b:#C08A2E; --nl-c:#5c3f0f; --nl-a-rgb:243,212,136; --nl-b-rgb:192,138,46; }
.nl-ember   { --nl-a:#FFB38A; --nl-b:#D2552B; --nl-c:#65200d; --nl-a-rgb:255,179,138; --nl-b-rgb:210,85,43; }
.nl-emerald { --nl-a:#8FE3B8; --nl-b:#1F9A68; --nl-c:#0b4533; --nl-a-rgb:143,227,184; --nl-b-rgb:31,154,104; }
.nl-sapphire{ --nl-a:#9CC8FF; --nl-b:#2F6FD0; --nl-c:#10305f; --nl-a-rgb:156,200,255; --nl-b-rgb:47,111,208; }
.nl-rose    { --nl-a:#F2B2E6; --nl-b:#A64DB8; --nl-c:#431858; --nl-a-rgb:242,178,230; --nl-b-rgb:166,77,184; }

/* ---------- the cover art: gradient, rings and the big outlined number ---------- */
.nl-art{
  position:relative; overflow:hidden; isolation:isolate;
  display:flex; flex-direction:column; justify-content:space-between; align-items:flex-start;
  padding:26px 28px; color:#fff;
  background:
    radial-gradient(circle at 18% 12%, rgba(var(--nl-a-rgb), .55), transparent 52%),
    radial-gradient(circle at 88% 92%, rgba(var(--nl-b-rgb), .75), transparent 58%),
    linear-gradient(160deg, var(--nl-c), #0b0906 88%);
}
.nl-art::before{
  content:''; position:absolute; inset:-20% -30% auto auto; width:90%; aspect-ratio:1; z-index:-1;
  background:repeating-radial-gradient(circle at center, rgba(255,255,255,.10) 0 1px, transparent 1px 24px);
  border-radius:50%;
}
.nl-art::after{
  content:''; position:absolute; inset:0; z-index:-1; opacity:.5;
  background:repeating-linear-gradient(135deg, rgba(255,255,255,.035) 0 2px, transparent 2px 14px);
}
.nl-art.has-cover{ background-size:cover; background-position:center; }
.nl-art.has-cover::after{ opacity:1; background:linear-gradient(180deg, rgba(11,9,6,.25), rgba(11,9,6,.78)); }
.nl-art-brand{
  display:inline-flex; align-items:center; gap:8px; font-size:.78rem; font-weight:700; letter-spacing:.5px;
  padding:5px 14px; border-radius:999px; background:rgba(0,0,0,.28); border:1px solid rgba(var(--nl-a-rgb), .55); color:var(--nl-a);
}
.nl-art-label{ font-size:.85rem; font-weight:600; letter-spacing:2px; color:rgba(255,255,255,.8); margin-top:auto; }
.nl-num{
  font-family:var(--font-display); font-weight:800; line-height:.95;
  font-size:clamp(5.5rem, 13vw, 10rem);
  color:transparent; -webkit-text-stroke:2px rgba(var(--nl-a-rgb), .95);
  background:linear-gradient(180deg, rgba(var(--nl-a-rgb), .55), rgba(var(--nl-b-rgb), .05));
  -webkit-background-clip:text; background-clip:text;
  text-shadow:0 10px 40px rgba(var(--nl-b-rgb), .45);
}

/* ---------- shared bits ---------- */
.nl-meta{ display:flex; flex-wrap:wrap; gap:8px 10px; margin:0; padding:0; list-style:none; }
.nl-chip{
  display:inline-flex; align-items:center; gap:7px; padding:5px 13px; border-radius:999px; font-size:.82rem;
  background:rgba(var(--nl-a-rgb), .10); border:1px solid rgba(var(--nl-a-rgb), .32); color:var(--ink);
}
.nl-chip svg{ width:15px; height:15px; fill:none; stroke:var(--nl-a); stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round; }
.nl-link{ display:inline-flex; align-items:center; gap:8px; color:var(--nl-a); font-weight:700; font-size:.92rem; }
.nl-link:hover{ color:#fff; }

/* ---------- home: masthead + featured issue ---------- */
.nl-home{ position:relative; z-index:1; padding:56px 0 34px; }
.nl-masthead{ text-align:center; margin:0 auto 34px; max-width:720px; }
.nl-masthead .eyebrow{ justify-content:center; }
.nl-masthead h2{
  margin:6px 0 4px; font-family:var(--font-display); font-weight:800; font-size:clamp(2rem, 4.6vw, 3.2rem); line-height:1.35;
  background:linear-gradient(95deg, #F3D488, #D9A93E 40%, #F3E7D0 60%, #D9A93E);
  -webkit-background-clip:text; background-clip:text; color:transparent;
}
.nl-masthead p{ margin:0; color:var(--ink-soft); font-size:1rem; }
.nl-rule{ display:flex; align-items:center; gap:14px; justify-content:center; margin:14px auto 0; max-width:340px; color:var(--violet); }
.nl-rule::before, .nl-rule::after{ content:''; flex:1; height:1px; background:linear-gradient(90deg, transparent, var(--line-strong)); }
.nl-rule::after{ background:linear-gradient(270deg, transparent, var(--line-strong)); }
.nl-rule i{ width:9px; height:9px; transform:rotate(45deg); background:var(--violet); display:block; }

.nl-feature{
  display:grid; grid-template-columns:minmax(260px, 5fr) 7fr; gap:0; border-radius:20px; overflow:hidden;
  border:1px solid rgba(var(--nl-a-rgb), .35);
  background:linear-gradient(180deg, rgba(var(--nl-b-rgb), .09), rgba(11,9,6,.55));
  box-shadow:0 30px 70px -36px rgba(var(--nl-b-rgb), .55), 0 0 0 1px rgba(0,0,0,.4) inset;
}
.nl-feature .nl-art{ min-height:340px; }
.nl-feature-body{ padding:34px 38px; display:flex; flex-direction:column; gap:14px; justify-content:center; }
.nl-kicker{ display:flex; flex-wrap:wrap; gap:10px; align-items:center; color:var(--nl-a); font-weight:700; font-size:.88rem; }
.nl-kicker .dot{ width:5px; height:5px; border-radius:50%; background:var(--nl-a); }
.nl-feature h3{ margin:0; font-family:var(--font-display); font-weight:800; font-size:clamp(1.5rem, 2.8vw, 2.2rem); line-height:1.6; color:var(--ink); }
.nl-feature p.nl-lead{ margin:0; color:var(--ink-soft); font-size:1.02rem; line-height:2.05; }
.nl-feature .btn{ align-self:flex-start; margin-top:6px; }

.nl-more{ display:grid; grid-template-columns:repeat(3, 1fr); gap:16px; margin-top:20px; }
.nl-mini{
  display:flex; gap:14px; align-items:center; padding:14px 16px; border-radius:14px;
  background:rgba(243,231,208,.04); border:1px solid var(--line);
}
.nl-mini:hover{ border-color:rgba(var(--nl-a-rgb), .6); background:rgba(var(--nl-a-rgb), .06); }
.nl-mini .badge{
  flex:none; width:54px; height:54px; border-radius:14px; display:flex; flex-direction:column; align-items:center; justify-content:center;
  background:linear-gradient(150deg, rgba(var(--nl-a-rgb), .9), rgba(var(--nl-b-rgb), .9)); color:#16110a; font-weight:800; line-height:1.1;
}
.nl-mini .badge small{ font-size:.58rem; font-weight:700; letter-spacing:1px; }
.nl-mini .badge b{ font-size:1.35rem; }
.nl-mini h4{ margin:0 0 2px; font-size:.98rem; line-height:1.6; color:var(--ink); }
.nl-mini span.by{ font-size:.8rem; color:var(--ink-soft); }
.nl-all{ text-align:center; margin-top:20px; }

/* ---------- archive page ---------- */
.nl-page{ position:relative; z-index:1; padding:46px 0 70px; }
.nl-grid{ display:grid; grid-template-columns:repeat(auto-fill, minmax(260px, 1fr)); gap:22px; }
.nl-card{ display:flex; flex-direction:column; border-radius:16px; overflow:hidden; border:1px solid var(--line); background:rgba(243,231,208,.035); }
.nl-card:hover{ border-color:rgba(var(--nl-a-rgb), .6); box-shadow:0 22px 50px -30px rgba(var(--nl-b-rgb), .7); }
.nl-card .nl-art{ min-height:190px; padding:16px 20px; }
.nl-card .nl-num{ font-size:5.4rem; }
.nl-card-body{ padding:16px 20px 20px; display:flex; flex-direction:column; gap:8px; flex:1; }
.nl-card h3{ margin:0; font-size:1.08rem; line-height:1.7; color:var(--ink); }
.nl-card p{ margin:0; font-size:.88rem; color:var(--ink-soft); line-height:1.9; }
.nl-card .by{ margin-top:auto; font-size:.8rem; color:var(--ink-dim); display:flex; justify-content:space-between; gap:8px; }

/* ---------- one issue ---------- */
.nl-progress{ position:fixed; top:0; right:0; left:0; height:3px; z-index:200; background:transparent; }
.nl-progress i{ display:block; height:100%; width:0; background:linear-gradient(90deg, var(--nl-b), var(--nl-a)); }
.nl-hero{ position:relative; min-height:380px; padding:54px 0 96px; }
.nl-hero.nl-art{ display:block; padding:54px 0 96px; }
.nl-hero-inner{ display:grid; grid-template-columns:auto 1fr; gap:34px; align-items:end; }
.nl-hero .nl-num{ font-size:clamp(7rem, 17vw, 13rem); }
.nl-hero h1{ margin:10px 0 16px; font-family:var(--font-display); font-weight:800; font-size:clamp(1.7rem, 3.8vw, 3rem); line-height:1.6; color:#fff; text-shadow:0 6px 30px rgba(0,0,0,.5); }
.nl-hero .nl-chip{ background:rgba(0,0,0,.32); }

.nl-paper{
  position:relative; z-index:2; max-width:780px; margin:-62px auto 0; padding:46px 54px 38px; border-radius:20px;
  background:linear-gradient(180deg, #17120b, #110d08); border:1px solid rgba(var(--nl-a-rgb), .35);
  box-shadow:0 40px 80px -40px rgba(0,0,0,.8);
}
.nl-tools{ display:flex; gap:8px; justify-content:flex-start; flex-wrap:wrap; margin:0 0 26px; padding-bottom:18px; border-bottom:1px solid var(--line); }
.nl-tools button, .nl-tools a{
  font-family:inherit; font-size:.82rem; cursor:pointer; padding:6px 14px; border-radius:999px; background:none; color:var(--ink-soft);
  border:1px solid var(--line-strong);
}
.nl-tools button:hover, .nl-tools a:hover{ border-color:var(--nl-a); color:var(--nl-a); }
.nl-body{ font-size:1.1rem; line-height:2.25; color:#EADFC8; }
.nl-body p{ margin:0 0 1.35em; text-align:justify; }
.nl-body > p:first-child::first-letter{
  float:right; font-family:var(--font-display); font-weight:800; font-size:4.1rem; line-height:.95; padding:6px 0 0 12px; color:var(--nl-a);
}
.nl-body h3{ position:relative; margin:1.9em 0 .7em; padding-right:18px; font-size:1.4rem; line-height:1.7; color:var(--nl-a); }
.nl-body h3::before{ content:''; position:absolute; right:0; top:.4em; bottom:.4em; width:5px; border-radius:3px; background:linear-gradient(180deg, var(--nl-a), var(--nl-b)); }
.nl-body blockquote{
  margin:1.8em 0; padding:18px 26px 18px 20px; border-right:4px solid var(--nl-a); border-radius:0 12px 12px 0;
  background:rgba(var(--nl-a-rgb), .08); color:#fff; font-size:1.18rem; font-weight:500;
}
.nl-body ul{ margin:0 0 1.35em; padding:0; list-style:none; }
.nl-body li{ position:relative; padding-right:26px; margin-bottom:.4em; }
.nl-body li::before{ content:''; position:absolute; right:4px; top:.9em; width:8px; height:8px; transform:rotate(45deg); background:var(--nl-a); }
.nl-body hr{ border:0; height:1px; margin:2.2em auto; max-width:240px; background:linear-gradient(90deg, transparent, var(--nl-a), transparent); }

.nl-author{
  display:flex; align-items:center; gap:16px; margin-top:34px; padding:18px 20px; border-radius:16px;
  background:rgba(var(--nl-a-rgb), .07); border:1px solid rgba(var(--nl-a-rgb), .28);
}
.nl-author .avatar{
  flex:none; width:56px; height:56px; border-radius:50%; display:flex; align-items:center; justify-content:center;
  font-size:1.5rem; font-weight:800; color:#16110a; background:linear-gradient(150deg, var(--nl-a), var(--nl-b));
}
.nl-author small{ display:block; color:var(--ink-dim); font-size:.76rem; }
.nl-author b{ font-size:1.05rem; color:var(--ink); }
.nl-author span{ color:var(--ink-soft); font-size:.86rem; }

.nl-pager{ display:grid; grid-template-columns:1fr 1fr; gap:16px; max-width:780px; margin:26px auto 0; }
.nl-pager a{ display:block; padding:16px 20px; border-radius:14px; border:1px solid var(--line); background:rgba(243,231,208,.04); }
.nl-pager a:hover{ border-color:var(--violet); }
.nl-pager small{ display:block; color:var(--ink-dim); font-size:.76rem; margin-bottom:2px; }
.nl-pager b{ font-size:.98rem; line-height:1.7; }
.nl-pager .next{ text-align:left; }
.nl-others{ max-width:1000px; margin:44px auto 0; }
.nl-others h2{ text-align:center; font-size:1.3rem; margin:0 0 18px; }

/* ---------- tools (نرم‌افزارهای یکان) ---------- */
.tool-hero{ text-align:center; padding:50px 0 14px; position:relative; z-index:1; }
.tool-hero h1{ margin:6px 0 6px; font-family:var(--font-display); font-weight:800; font-size:clamp(1.8rem, 4vw, 2.7rem); background:linear-gradient(95deg, #F3D488, #D9A93E 45%, #F3E7D0); -webkit-background-clip:text; background-clip:text; color:transparent; }
.tool-hero p{ margin:0 auto; max-width:620px; color:var(--ink-soft); }
.tool-list{ display:grid; grid-template-columns:repeat(auto-fill, minmax(250px, 1fr)); gap:20px; margin:30px 0 70px; position:relative; z-index:1; }
.tool-card{ display:flex; flex-direction:column; gap:10px; padding:24px; border-radius:16px; border:1px solid var(--line-strong); background:linear-gradient(180deg, rgba(217,169,62,.09), rgba(11,9,6,.5)); }
.tool-card:hover{ border-color:var(--violet); box-shadow:0 22px 50px -30px rgba(217,169,62,.6); }
.tool-icon{ width:56px; height:56px; border-radius:16px; display:flex; align-items:center; justify-content:center; font-size:1.7rem; font-weight:800; color:#16110a; background:linear-gradient(150deg, #F3D488, #C08A2E); }
.tool-card h3{ margin:0; font-size:1.15rem; color:var(--ink); }
.tool-card p{ margin:0; color:var(--ink-soft); font-size:.9rem; line-height:1.9; }

.calc{ position:relative; z-index:1; display:grid; grid-template-columns:7fr 5fr; gap:24px; margin:26px 0 70px; align-items:start; }
.calc-panel{ border-radius:18px; padding:26px 28px; border:1px solid var(--line-strong); background:linear-gradient(180deg, rgba(217,169,62,.07), rgba(11,9,6,.55)); }
.calc-panel h2{ margin:0 0 4px; font-size:1.15rem; color:var(--violet-bright); }
.calc-panel > p.hint{ margin:0 0 18px; color:var(--ink-soft); font-size:.88rem; line-height:1.9; }
.calc-rows{ display:flex; flex-direction:column; gap:12px; }
.calc-row{ display:grid; grid-template-columns:1.3fr repeat(3, 1fr) auto; gap:10px; align-items:end; padding:12px; border-radius:12px; background:rgba(243,231,208,.04); border:1px solid var(--line); }
.calc-row label{ display:block; font-size:.76rem; color:var(--ink-soft); margin-bottom:4px; }
.calc-row input{
  width:100%; padding:10px 12px; border-radius:10px; font-size:1rem; text-align:center;
  background:rgba(243,231,208,.06); border:1px solid var(--line-strong); color:var(--ink);
}
.calc-row input.name{ text-align:right; }
.calc-row input:focus{ outline:none; border-color:var(--violet); box-shadow:0 0 0 3px rgba(217,169,62,.25); }
.calc-row input.bad{ border-color:#E0522F; box-shadow:0 0 0 3px rgba(224,82,47,.2); }
.calc-row .rm{ border:0; background:none; color:#E0522F; font-size:1.2rem; cursor:pointer; padding:8px; }
.calc-actions{ display:flex; gap:10px; flex-wrap:wrap; margin-top:16px; }
.calc-actions button{ font-family:inherit; cursor:pointer; }
.calc-msg{ min-height:1.6em; margin-top:12px; color:#ff9b7a; font-size:.88rem; }

.result{ position:sticky; top:96px; text-align:center; }
.ring{
  --p:0; --c:#D9A93E; width:210px; height:210px; margin:6px auto 18px; border-radius:50%; position:relative;
  display:flex; align-items:center; justify-content:center;
  background:conic-gradient(var(--c) calc(var(--p) * 1%), rgba(243,231,208,.10) 0);
}
.ring::before{ content:''; position:absolute; inset:15px; border-radius:50%; background:#100c07; box-shadow:0 0 0 1px var(--line) inset; }
.ring-val{ position:relative; z-index:1; }
.ring-val b{ display:block; font-size:2.6rem; font-weight:800; line-height:1.15; color:var(--ink); }
.ring-val span{ font-size:.82rem; color:var(--ink-soft); }
.stats{ display:grid; grid-template-columns:1fr 1fr; gap:10px; text-align:right; }
.stat-box{ padding:12px 14px; border-radius:12px; background:rgba(243,231,208,.05); border:1px solid var(--line); }
.stat-box small{ display:block; font-size:.74rem; color:var(--ink-dim); }
.stat-box b{ font-size:1.08rem; color:var(--ink); }
.formula{ margin-top:18px; padding:14px 16px; border-radius:12px; background:rgba(217,169,62,.07); border:1px dashed var(--line-strong); font-size:.85rem; color:var(--ink-soft); line-height:2; text-align:right; }
.formula code{ display:block; margin:6px 0; direction:rtl; unicode-bidi:isolate; font-family:inherit; color:var(--violet-bright); font-weight:700; line-height:2; }

/* ---------- responsive ---------- */
@media (max-width: 960px){
  .nl-feature{ grid-template-columns:1fr; }
  .nl-feature .nl-art{ min-height:240px; }
  .nl-more{ grid-template-columns:1fr; }
  .calc{ grid-template-columns:1fr; }
  .result{ position:static; }
}
@media (max-width: 640px){
  .nl-feature-body{ padding:24px 20px; }
  .nl-hero-inner{ grid-template-columns:1fr; gap:6px; }
  .nl-paper{ padding:28px 20px 26px; margin-top:-40px; border-radius:16px; }
  .nl-body{ font-size:1.03rem; }
  .nl-pager{ grid-template-columns:1fr; }
  .calc-row{ grid-template-columns:1fr 1fr; }
  .calc-row .name-wrap{ grid-column:1 / -1; }
  .calc-row .rm{ grid-column:1 / -1; }
  .calc-panel{ padding:20px 16px; }
}

/* ---------- print: the article on plain white ---------- */
@media print{
  .site-header, .site-footer, .nl-progress, .nl-tools, .nl-pager, .nl-others, .nl-hero .nl-num{ display:none !important; }
  body{ background:#fff !important; color:#000 !important; }
  .nl-hero{ min-height:0; padding:0; background:none !important; color:#000; }
  .nl-hero h1{ color:#000; text-shadow:none; font-size:1.8rem; }
  .nl-hero .nl-chip{ background:none; border-color:#999; color:#000; }
  .nl-hero::before, .nl-hero::after{ display:none; }
  .nl-paper{ margin:0; padding:0; border:0; box-shadow:none; background:#fff; max-width:none; }
  .nl-body{ color:#000; font-size:12pt; }
  .nl-body h3, .nl-body > p:first-child::first-letter{ color:#000; }
  .nl-body blockquote{ background:none; color:#000; border-color:#000; }
  .nl-author{ background:none; border-color:#999; } .nl-author b, .nl-author span{ color:#000; }
}

/* ---------- درباره‌ی یکان ---------- */
.about-grid{ display:grid; grid-template-columns:8fr 4fr; gap:30px; align-items:start; }
.about-text h2, .about-facts h2{ margin:1.6em 0 .5em; font-size:1.3rem; color:var(--violet-bright); }
.about-text h2:first-child, .about-facts h2{ margin-top:0; }
.about-text p, .about-text li{ color:#EADFC8; line-height:2.1; }
.about-text a{ color:var(--violet-bright); text-decoration:underline; text-underline-offset:4px; }
.about-text .btn{ text-decoration:none; color:inherit; }
.about-list{ margin:0 0 1em; padding:0; list-style:none; }
.about-list li{ position:relative; padding-right:22px; margin-bottom:.5em; }
.about-list li::before{ content:''; position:absolute; right:3px; top:1.05em; width:8px; height:8px; transform:rotate(45deg); background:var(--violet); }
.about-text address{ font-style:normal; }
.about-text address p{ margin:.2em 0; }
.about-facts{ position:sticky; top:96px; padding:22px 24px; border-radius:18px; border:1px solid var(--line-strong); background:linear-gradient(180deg, rgba(217,169,62,.09), rgba(11,9,6,.5)); }
.about-facts dl{ margin:0; display:grid; grid-template-columns:auto 1fr; gap:10px 16px; }
.about-facts dt{ color:var(--ink-dim); font-size:.84rem; }
.about-facts dd{ margin:0; color:var(--ink); font-weight:600; font-size:.92rem; line-height:1.8; }
.nl-masthead h1{
  margin:6px 0 4px; font-family:var(--font-display); font-weight:800; font-size:clamp(2rem, 4.6vw, 3.2rem); line-height:1.4;
  background:linear-gradient(95deg, #F3D488, #D9A93E 40%, #F3E7D0 60%, #D9A93E); -webkit-background-clip:text; background-clip:text; color:transparent;
}
@media (max-width: 960px){
  .about-grid{ grid-template-columns:1fr; }
  .about-facts{ position:static; }
}


/* ---------- چرا یکان؟ ---------- */
.why-section{ position:relative; z-index:1; padding:46px 0 10px; }
.why-grid{ display:grid; grid-template-columns:repeat(3, 1fr); gap:18px; }
.why-card{ position:relative; padding:24px 24px 22px; border-radius:16px; border:1px solid var(--line-strong); background:linear-gradient(180deg, rgba(217,169,62,.08), rgba(11,9,6,.5)); }
.why-card:hover{ border-color:var(--violet); }
.why-num{ position:absolute; top:16px; left:18px; font-size:2.4rem; font-weight:800; line-height:1; color:transparent; -webkit-text-stroke:1.5px rgba(243,212,136,.45); }
.why-card h3{ margin:0 0 8px; font-size:1.12rem; color:var(--violet-bright); padding-left:46px; }
.why-card p{ margin:0; color:var(--ink-soft); font-size:.92rem; line-height:2; }
@media (max-width: 960px){ .why-grid{ grid-template-columns:1fr 1fr; } }
@media (max-width: 640px){ .why-grid{ grid-template-columns:1fr; } }
