:root{
  --bg:#141518; --panel:#1d1f24; --line:#2e3138; --text:#f0eee9; --muted:#a7a49c;
  --orange:#ff7a1a; --orange-dk:#c24f00; --green:#6dbb45; --blue:#4a8fe0; --mat:#1b3a2c;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--bg);color:var(--text);font:16px/1.6 'Rubik',system-ui,sans-serif}
a{color:var(--orange)}
img{max-width:100%;display:block}
.wrap{max-width:1040px;margin:0 auto;padding:0 16px}
h1,h2,h3{font-family:'Archivo Black',Impact,sans-serif;font-weight:400;line-height:1.1}
h2{font-size:clamp(26px,4vw,36px);margin:0 0 6px}
h3{font-size:18px;margin:0}
.muted{color:var(--muted)}
.kicker{text-transform:uppercase;letter-spacing:3px;font-size:13px;color:var(--orange);margin:0 0 10px;font-weight:800}

/* Hero: a cutting mat */
.hero{padding:72px 0 48px;border-bottom:4px solid var(--orange);
  background:
   linear-gradient(rgba(255,255,255,.05) 1px,transparent 1px) 0 0/40px 40px,
   linear-gradient(90deg,rgba(255,255,255,.05) 1px,transparent 1px) 0 0/40px 40px,
   linear-gradient(160deg,#1f4a36,var(--mat) 60%,#122a20)}
.hero h1{font-size:clamp(48px,12vw,112px);margin:0 0 16px}
.hero h1 span{color:var(--orange)}
.lede{font-size:clamp(17px,2.3vw,21px);max-width:640px;margin:0 0 24px}
.jump{display:flex;flex-wrap:wrap;gap:10px}
.jump a{color:var(--text);text-decoration:none;border:2px solid rgba(255,255,255,.35);border-radius:999px;padding:6px 14px;font-weight:600;font-size:14px}
.jump a:hover{border-color:var(--orange);color:var(--orange)}

section{margin:56px 0}
.card{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:24px}
.btn{display:inline-block;background:var(--orange);color:#160a00;border-radius:8px;padding:10px 18px;font-weight:800;text-decoration:none;white-space:nowrap}
.btn:hover{background:#ff9140}

/* Goals */
.systems{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;margin-top:20px}
.system{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:20px;display:flex;flex-direction:column;gap:14px}
.sys-head{display:flex;align-items:center;gap:12px}
.sys-tag{flex:0 0 auto;width:48px;height:48px;border-radius:10px;background:var(--orange);color:#160a00;display:grid;place-items:center;font:16px 'Archivo Black'}
.step-label{font-size:12px;text-transform:uppercase;letter-spacing:2px;color:var(--muted);font-weight:800;margin:4px 0 -6px}
.goal{border-left:4px solid var(--line);padding:4px 0 4px 12px}
.goal.doing{border-color:var(--orange)} .goal.done{border-color:var(--green)}
.goal-top{display:flex;justify-content:space-between;gap:10px;align-items:baseline}
.goal p{margin:2px 0 8px;font-size:14px;color:var(--muted)}
.status{font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:1px;padding:2px 8px;border-radius:999px;white-space:nowrap;background:var(--line);color:var(--muted)}
.status.doing{background:var(--orange);color:#160a00} .status.done{background:var(--green);color:#0b1606}
.bar{height:10px;background:var(--line);border-radius:999px;overflow:hidden}
.bar i{display:block;height:100%;background:var(--orange)}
.count{font-size:13px;color:var(--muted);margin-top:4px}
.tbc{font-size:13px;color:var(--muted);font-style:italic}
.miles{display:grid;grid-template-columns:repeat(5,1fr);gap:6px}
.mile{text-align:center;border:2px solid var(--line);border-radius:8px;padding:6px 2px;font-size:13px;font-weight:800;color:var(--muted)}
.mile.hit{border-color:var(--green);background:rgba(109,187,69,.15);color:var(--text)}
.play{margin-top:auto;background:rgba(255,122,26,.08);border:1px dashed var(--orange);border-radius:10px;padding:12px}
.play.done{border-style:solid;border-color:var(--green);background:rgba(109,187,69,.1)}

/* Orktober */
.ork-head{display:flex;justify-content:space-between;align-items:flex-end;gap:16px;flex-wrap:wrap;margin-bottom:16px}
.ork-head p{margin:0}
.ork-grid{display:grid;grid-template-columns:repeat(8,minmax(0,1fr));gap:8px}
.oday{aspect-ratio:1;border-radius:8px;border:2px solid var(--line);background:#16181c;position:relative;overflow:hidden;padding:0;color:var(--text);font:inherit;cursor:default}
.oday .n{position:absolute;top:4px;left:6px;font:14px 'Archivo Black';color:var(--muted);z-index:1;text-shadow:0 1px 2px #000}
.oday.has{border-color:var(--orange);cursor:pointer}
.oday.has .n{color:#fff}
.oday.today{border-color:var(--orange);border-style:dashed}
.oday img{width:100%;height:100%;object-fit:cover}
.oday .m{position:absolute;inset:auto 0 0 0;font-size:10px;line-height:1.2;padding:4px 5px;background:linear-gradient(transparent,rgba(0,0,0,.85));text-align:left;font-weight:600}

/* Gallery */
.legend{display:flex;flex-wrap:wrap;gap:8px;align-items:center;font-size:13px;color:var(--muted);margin:12px 0 18px}
.badge{font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:1px;padding:2px 8px;border-radius:999px}
.badge.printed{background:var(--blue);color:#06121f} .badge.official{background:var(--green);color:#0b1606}
.gallery{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:14px}
.shot{background:var(--panel);border:1px solid var(--line);border-radius:10px;overflow:hidden;cursor:pointer;padding:0;text-align:left;color:var(--text);font:inherit}
.shot img{aspect-ratio:1;object-fit:cover;width:100%}
.shot div{padding:10px 12px}
.shot b{display:block}
.shot span.note{font-size:13px;color:var(--muted)}
.empty{border:2px dashed var(--line);border-radius:10px;padding:28px;text-align:center;color:var(--muted);grid-column:1/-1}

.about p{max-width:720px}
.links{display:flex;flex-wrap:wrap;gap:10px;margin-top:10px}
.links a{border:2px solid var(--line);border-radius:8px;padding:8px 14px;text-decoration:none;font-weight:600;color:var(--text)}
.links a:hover{border-color:var(--orange)}

.footer{border-top:1px solid var(--line);padding:24px 16px 48px;color:var(--muted);font-size:13px}

.modal{position:fixed;inset:0;background:rgba(0,0,0,.85);display:grid;place-items:center;padding:16px;z-index:10}
.modal[hidden]{display:none}
.modal-card{position:relative;max-width:900px;width:100%}
.modal-card img{max-height:80vh;margin:0 auto;border-radius:8px}
.modal-card p{text-align:center;margin:10px 0 0}
.close{position:absolute;top:-8px;right:0;background:none;border:0;color:#fff;font-size:34px;cursor:pointer;z-index:1}

@media (max-width:760px){
  .systems{grid-template-columns:1fr}
  .ork-grid{grid-template-columns:repeat(5,minmax(0,1fr))}
}
@media (max-width:400px){.miles{grid-template-columns:repeat(3,1fr)}}
