/* The Tutorial Desk — xiforakelu.info */
:root{
  --paper:#fcfcfa;
  --paper-2:#f0f4ef;
  --panel:#ffffff;
  --ink:#132018;
  --ink-2:#556356;
  --edge:#d8e0d6;
  --forest:#15803d;
  --forest-d:#116131;
  --coral:#e04a5f;
  --r:8px;
  --sh:0 1px 2px rgba(19,32,24,.05),0 10px 26px rgba(19,32,24,.07);
  --f:"Inter","Segoe UI",Roboto,Helvetica,Arial,sans-serif;
}
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--f);font-size:16px;line-height:1.75;-webkit-font-smoothing:antialiased}
img{max-width:100%;height:auto;display:block}
a{color:var(--forest);text-decoration:none}
a:hover{color:var(--coral)}
.shell{width:100%;max-width:1180px;margin:0 auto;padding:0 22px}

/* header */
.bar{background:var(--forest);color:#e8f5ec;font-size:12.5px}
.bar .shell{display:flex;justify-content:space-between;gap:22px;align-items:center;min-height:34px;flex-wrap:wrap}
.bar b{font-weight:700;text-transform:uppercase;letter-spacing:.15em;font-size:11px;color:#ffd9d3}
.head{position:sticky;top:0;z-index:60;background:rgba(252,252,250,.96);backdrop-filter:blur(8px);border-bottom:1px solid var(--edge)}
.head .shell{display:flex;align-items:center;justify-content:space-between;gap:18px;min-height:70px}
.sign{display:flex;align-items:center;gap:11px;color:var(--ink);font-weight:700;font-size:18px;letter-spacing:-.015em}
.sign:hover{color:var(--ink)}
.sign img{width:33px;height:33px}
.sign small{display:block;font-size:10.5px;font-weight:500;color:var(--ink-2);letter-spacing:.17em;text-transform:uppercase;line-height:1.4}
.links{display:flex;align-items:center;gap:2px}
.links a{color:var(--ink-2);font-size:14px;font-weight:600;padding:9px 13px;border-radius:var(--r)}
.links a:hover,.links a.here{background:var(--paper-2);color:var(--forest)}
.tap{display:none;background:var(--panel);border:1px solid var(--edge);border-radius:var(--r);width:44px;height:40px;cursor:pointer;align-items:center;justify-content:center;font-size:19px;color:var(--ink)}

/* hero: text left, image right */
.open{border-bottom:1px solid var(--edge);background:var(--paper-2);overflow:hidden}
.open .shell{display:grid;grid-template-columns:1fr 1.08fr;gap:52px;align-items:center;padding-top:72px;padding-bottom:72px}
.tagline{display:inline-block;font-size:11px;font-weight:700;letter-spacing:.2em;text-transform:uppercase;color:#fff;background:var(--coral);padding:6px 15px;border-radius:4px}
.open h1{margin:20px 0 16px;font-size:clamp(1.95rem,4.6vw,3.05rem);line-height:1.15;font-weight:800;letter-spacing:-.03em}
.open p{margin:0 0 28px;font-size:17.5px;color:var(--ink-2);max-width:520px}
.acts{display:flex;gap:12px;flex-wrap:wrap}
.b{display:inline-flex;align-items:center;justify-content:center;padding:13px 25px;border-radius:6px;font-weight:700;font-size:14.5px;border:1px solid transparent;cursor:pointer;transition:.16s}
.b1{background:var(--forest);color:#fff}
.b1:hover{background:var(--forest-d);color:#fff}
.b2{background:var(--panel);color:var(--ink);border-color:var(--edge)}
.b2:hover{border-color:var(--forest);color:var(--forest)}
.open-art{position:relative}
.open-art img{border-radius:var(--r);box-shadow:0 4px 10px rgba(19,32,24,.08),0 22px 48px rgba(19,32,24,.12)}
.open-art .stamp{position:absolute;bottom:-16px;left:-16px;background:var(--panel);border:1px solid var(--edge);border-radius:var(--r);padding:14px 18px;box-shadow:var(--sh);max-width:230px}
.open-art .stamp strong{display:block;font-size:23px;font-weight:800;color:var(--forest);line-height:1.1;letter-spacing:-.02em}
.open-art .stamp span{display:block;font-size:11.5px;color:var(--ink-2);margin-top:4px;letter-spacing:.06em;text-transform:uppercase}

/* counters */
.counts{border-bottom:1px solid var(--edge)}
.counts .shell{display:grid;grid-template-columns:repeat(4,1fr);gap:0}
.count{padding:26px 20px;border-right:1px solid var(--edge)}
.count:last-child{border-right:0}
.count strong{display:block;font-size:27px;font-weight:800;color:var(--ink);letter-spacing:-.03em;line-height:1.1}
.count span{display:block;font-size:11px;letter-spacing:.15em;text-transform:uppercase;color:var(--ink-2);margin-top:6px}

/* sections */
.block{padding:78px 0}
.block.tint{background:var(--paper-2)}
.block-head{max-width:680px;margin:0 0 42px}
.block-head .eyebrow{font-size:11px;font-weight:700;letter-spacing:.22em;text-transform:uppercase;color:var(--coral)}
.block-head h2{margin:11px 0 12px;font-size:clamp(1.6rem,3.3vw,2.15rem);line-height:1.22;font-weight:800;letter-spacing:-.025em}
.block-head p{margin:0;color:var(--ink-2);font-size:16.5px}

/* cards 3-up */
.set{display:grid;grid-template-columns:repeat(3,1fr);gap:26px}
.pane{background:var(--panel);border:1px solid var(--edge);border-radius:var(--r);overflow:hidden;box-shadow:var(--sh);display:flex;flex-direction:column;transition:.18s}
.pane:hover{transform:translateY(-3px);border-color:var(--forest);box-shadow:0 6px 12px rgba(19,32,24,.07),0 20px 40px rgba(21,128,61,.13)}
.pane-art{position:relative;aspect-ratio:3/2;overflow:hidden;background:var(--paper-2)}
.pane-art img{width:100%;height:100%;object-fit:cover;transition:.4s}
.pane:hover .pane-art img{transform:scale(1.05)}
.flag{position:absolute;top:12px;left:12px;background:var(--forest);color:#fff;font-size:10px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;padding:5px 11px;border-radius:3px}
.mins{position:absolute;bottom:12px;right:12px;background:#fff;color:var(--ink);font-weight:800;font-size:14px;padding:6px 12px;border-radius:3px;box-shadow:0 2px 8px rgba(19,32,24,.18)}
.pane-in{padding:22px;flex:1;display:flex;flex-direction:column}
.pane-in h3{margin:0 0 10px;font-size:17.5px;font-weight:700;line-height:1.35;letter-spacing:-.015em}
.pane-in h3 a{color:var(--ink)}
.pane-in h3 a:hover{color:var(--forest)}
.pane-in p{margin:0 0 16px;color:var(--ink-2);font-size:14.8px;flex:1}
.tick{display:flex;flex-wrap:wrap;gap:12px;font-size:11.5px;color:var(--ink-2);border-top:1px solid var(--edge);padding-top:13px;letter-spacing:.06em;text-transform:uppercase}
.tick b{color:var(--coral);font-weight:700}

/* numbered vertical steps */
.steps{display:grid;gap:0;max-width:820px}
.step{display:grid;grid-template-columns:64px minmax(0,1fr);gap:24px;padding:26px 0;border-bottom:1px solid var(--edge)}
.step:last-child{border-bottom:0}
.step .n{font-size:34px;font-weight:800;color:var(--edge);line-height:1;letter-spacing:-.04em}
.step h3{margin:0 0 8px;font-size:18px;font-weight:700;letter-spacing:-.015em}
.step p{margin:0;color:var(--ink-2)}

/* split */
.pair{display:grid;grid-template-columns:1fr 1fr;gap:54px;align-items:center}
.pair img{border-radius:var(--r);box-shadow:var(--sh)}
.pair h2{margin:12px 0 14px;font-size:clamp(1.5rem,3vw,2.05rem);font-weight:800;letter-spacing:-.025em;line-height:1.24}
.pair p{color:var(--ink-2);margin:0 0 15px}
.ticks{list-style:none;padding:0;margin:22px 0 0}
.ticks li{position:relative;padding-left:30px;margin-bottom:16px;color:var(--ink-2)}
.ticks li::before{content:"";position:absolute;left:0;top:10px;width:14px;height:14px;border-radius:3px;border:2px solid var(--coral)}
.ticks b{display:block;color:var(--ink);font-weight:700}

/* dark grading panel */
.grade{background:var(--ink);color:#e8f0ea;border-radius:var(--r);padding:44px 40px;display:grid;grid-template-columns:1fr 1fr;gap:44px;align-items:center}
.grade h2{margin:0 0 12px;font-size:clamp(1.45rem,2.9vw,2rem);font-weight:800;letter-spacing:-.025em;line-height:1.24;color:#fff}
.grade p{margin:0;color:rgba(232,240,234,.72)}
.rungs{list-style:none;padding:0;margin:0;display:grid;gap:11px}
.rungs li{display:flex;align-items:baseline;gap:15px;font-size:14.5px;color:rgba(232,240,234,.86);border-bottom:1px solid rgba(232,240,234,.13);padding-bottom:10px}
.rungs li:last-child{border-bottom:0}
.rungs b{flex:0 0 84px;font-weight:800;color:#ff9f95;font-size:15px}

/* voices */
.said{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}
.say{background:var(--panel);border:1px solid var(--edge);border-radius:var(--r);padding:26px 24px;box-shadow:var(--sh);border-top:3px solid var(--coral)}
.say p{margin:0 0 16px;font-size:15.5px;color:var(--ink)}
.say footer{font-size:12.5px;color:var(--ink-2);border-top:1px solid var(--edge);padding-top:12px}
.say footer b{display:block;color:var(--ink);font-weight:700;font-size:14px}

/* footer */
.base{background:var(--ink);color:rgba(232,240,234,.74);padding:54px 0 24px;font-size:14.5px}
.base-grid{display:grid;grid-template-columns:1.7fr 1fr 1fr;gap:44px}
.base h4{margin:0 0 14px;font-size:11px;letter-spacing:.19em;text-transform:uppercase;color:rgba(232,240,234,.5);font-weight:700}
.base p{margin:0}
.base ul{list-style:none;padding:0;margin:0}
.base li{margin-bottom:9px}
.base a{color:rgba(232,240,234,.74)}
.base a:hover{color:#ff9f95}
.base-sign{display:flex;align-items:center;gap:10px;margin-bottom:13px;font-weight:700;font-size:17px;color:#f2f8f4}
.base-sign img{width:28px;height:28px}
.base-end{margin-top:38px;padding-top:18px;border-top:1px solid rgba(232,240,234,.14);display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;font-size:12.5px;color:rgba(232,240,234,.5)}

/* article */
.art-head{background:var(--paper-2);border-bottom:1px solid var(--edge);padding:56px 0}
.art-head h1{margin:16px 0 14px;font-size:clamp(1.85rem,4.2vw,2.8rem);line-height:1.18;font-weight:800;letter-spacing:-.03em;max-width:900px}
.art-head .lede{margin:0;color:var(--ink-2);font-size:17.5px;max-width:760px}
.byline{display:flex;flex-wrap:wrap;gap:14px;margin-top:20px;font-size:12.5px;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-2)}
.byline b{color:var(--forest);font-weight:700}
.page{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:52px;padding:60px 0}
.rail{min-width:0}
.slot{background:var(--panel);border:1px solid var(--edge);border-radius:var(--r);padding:22px 20px;box-shadow:var(--sh);margin-bottom:22px}
.slot h4{margin:0 0 13px;font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:var(--ink-2);font-weight:700}
.slot ul{list-style:none;padding:0;margin:0;font-size:14.5px}
.slot li{padding:9px 0;border-bottom:1px solid var(--edge);display:flex;gap:12px;align-items:baseline}
.slot li:last-child{border-bottom:0;padding-bottom:0}
.slot .k{flex:0 0 46px;font-weight:800;color:var(--coral);font-size:14px}
.slot a{color:var(--ink);font-weight:600}
.slot a:hover{color:var(--forest)}
.mark{background:var(--forest);color:#fff;border-radius:var(--r);padding:26px 22px;margin-bottom:22px;text-align:center}
.mark h4{color:rgba(255,255,255,.7);margin:0 0 8px;font-size:11px;letter-spacing:.18em;text-transform:uppercase;font-weight:700}
.mark .big{font-size:46px;font-weight:800;line-height:1;letter-spacing:-.03em}
.mark .big small{font-size:17px;opacity:.7;font-weight:600}
.mark p{margin:12px 0 0;font-size:14.5px;color:rgba(255,255,255,.85)}
.bars{display:grid;gap:14px}
.bars .row b{display:block;font-size:12.5px;font-weight:700;margin-bottom:5px}
.bars .lane{height:6px;background:var(--paper-2);border-radius:100px;overflow:hidden}
.bars .lane i{display:block;height:100%;width:0;background:var(--forest);border-radius:100px;transition:width 1s ease}
.bars .lane.c i{background:var(--coral)}
.copy{min-width:0;max-width:100%}
.copy h2{margin:38px 0 14px;font-size:clamp(1.3rem,2.5vw,1.72rem);font-weight:800;letter-spacing:-.025em;line-height:1.3}
.copy h2:first-child{margin-top:0}
.copy h3{margin:26px 0 10px;font-size:1.12rem;font-weight:700}
.copy p{margin:0 0 18px;color:#2b382f}
.copy ul,.copy ol{margin:0 0 20px;padding-left:22px;color:#2b382f}
.copy li{margin-bottom:9px}
.copy figure{margin:28px 0}
.copy figure img{border-radius:var(--r);box-shadow:var(--sh)}
.copy figcaption{margin-top:10px;font-size:13px;color:var(--ink-2)}
.copy blockquote{margin:26px 0;padding:20px 24px;background:var(--paper-2);border-left:3px solid var(--coral);border-radius:0 var(--r) var(--r) 0;font-size:17px;color:var(--ink)}
.copy blockquote p:last-child{margin:0}
table.grid{width:100%;border-collapse:collapse;margin:26px 0;font-size:14.5px}
table.grid th,table.grid td{border:1px solid var(--edge);padding:11px 14px;text-align:left}
table.grid th{background:var(--paper-2);font-weight:700}
table.grid tbody tr:nth-child(even){background:rgba(240,244,239,.5)}
.wrapup{background:var(--paper-2);border:1px solid var(--edge);border-radius:var(--r);padding:26px 24px;margin-top:34px}
.wrapup h4{margin:0 0 10px;font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:var(--coral);font-weight:700}
.wrapup p{margin:0;color:var(--ink)}
.chips{display:flex;flex-wrap:wrap;gap:9px;margin-top:26px}
.chips a{font-size:12.5px;border:1px solid var(--edge);border-radius:100px;padding:6px 14px;color:var(--ink-2);background:var(--panel)}
.chips a:hover{border-color:var(--forest);color:var(--forest)}
.turn{display:flex;justify-content:space-between;gap:18px;flex-wrap:wrap;margin-top:26px;padding-top:20px;border-top:1px solid var(--edge);font-size:14px}

/* index list */
.filters{display:flex;flex-wrap:wrap;gap:9px;margin-bottom:36px}
.filters span,.filters a{font-size:13px;font-weight:600;border:1px solid var(--edge);border-radius:100px;padding:8px 16px;background:var(--panel);color:var(--ink-2)}
.filters .now{background:var(--forest);border-color:var(--forest);color:#fff}
.rows{display:grid;gap:22px}
.row-item{display:grid;grid-template-columns:240px minmax(0,1fr);gap:26px;background:var(--panel);border:1px solid var(--edge);border-radius:var(--r);overflow:hidden;box-shadow:var(--sh);transition:.18s}
.row-item:hover{border-color:var(--forest)}
.row-art{position:relative;aspect-ratio:3/2;overflow:hidden}
.row-art img{width:100%;height:100%;object-fit:cover}
.row-in{padding:24px 26px 24px 0}
.row-in h3{margin:9px 0 10px;font-size:19.5px;font-weight:700;line-height:1.3;letter-spacing:-.02em}
.row-in h3 a{color:var(--ink)}
.row-in h3 a:hover{color:var(--forest)}
.row-in p{margin:0 0 14px;color:var(--ink-2);font-size:15px}

/* legal */
.doc{max-width:820px;margin:0 auto;padding:58px 0}
.doc h1{margin:16px 0 14px;font-size:clamp(1.8rem,3.8vw,2.5rem);font-weight:800;letter-spacing:-.03em}
.doc .lede{color:var(--ink-2);font-size:17px;margin:0 0 8px}
.doc h2{margin:32px 0 12px;font-size:1.32rem;font-weight:700;letter-spacing:-.02em}
.doc p{color:#2b382f}
.stampline{font-size:13.5px;color:var(--ink-2);background:var(--paper-2);border-left:3px solid var(--forest);padding:14px 18px;display:block;margin:18px 0 8px;border-radius:0 var(--r) var(--r) 0}

@media (max-width:980px){
  .links{position:fixed;inset:70px 0 auto;flex-direction:column;align-items:stretch;gap:0;background:var(--paper);border-bottom:1px solid var(--edge);padding:8px 22px 18px;display:none;box-shadow:var(--sh)}
  .links.show{display:flex}
  .links a{padding:13px 0;border-bottom:1px solid var(--edge);border-radius:0}
  .tap{display:flex}
  .open .shell{grid-template-columns:1fr;gap:34px;padding-top:52px;padding-bottom:56px}
  .open-art .stamp{position:static;margin-top:16px;max-width:none}
  .counts .shell{grid-template-columns:1fr 1fr}
  .count{border-bottom:1px solid var(--edge)}
  .count:nth-child(2){border-right:0}
  .count:nth-child(3),.count:nth-child(4){border-bottom:0}
  .set,.said,.pair,.grade,.page,.base-grid{grid-template-columns:1fr;gap:26px}
  .page{gap:36px}
  .row-item{grid-template-columns:1fr}
  .row-in{padding:0 22px 22px}
  .block{padding:54px 0}
  .grade{padding:30px 24px}
  .step{grid-template-columns:44px minmax(0,1fr);gap:16px}
}
@media (min-width:981px) and (max-width:1120px){
  .set,.said{grid-template-columns:repeat(2,1fr)}
}
