/* CV — two A4 sheets in the portfolio's transit style. 794 × 1123 px = A4 at 96 dpi. */
.cv-body{background:var(--bg);background-image:radial-gradient(circle at 15% 10%,#ffc5150f,transparent 40%),radial-gradient(circle at 85% 60%,#b4a5ff10,transparent 40%)}
.cv-top{background:#0c0c0dcc;backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border-color:var(--line)}
.cv-actions{display:flex;gap:8px}
.desk{display:flex;flex-wrap:wrap;justify-content:center;gap:56px;padding:48px 24px 96px}
.sheet{--paper:#f6f1e6;width:794px;height:1123px;flex:none;background:var(--paper);color:#151515;position:relative;overflow:hidden;box-shadow:0 40px 80px #000c,0 2px 0 #fff3 inset;font-size:11.5px;line-height:1.45;display:flex;flex-direction:column}
.sheet:before{content:'';position:absolute;inset:0;pointer-events:none;background-image:radial-gradient(#0000000b 1px,transparent 1px);background-size:3px 3px;z-index:0}
.sheet>*{position:relative;z-index:1}
.s1{transform:rotate(-.6deg)}.s2{transform:rotate(.5deg)}
.sheet h2{margin:0;font-weight:900;letter-spacing:-.04em;line-height:1}
.sheet a{text-decoration:none}
.kicker{font-family:var(--mono);font-size:9.5px;letter-spacing:.16em;color:#ffffffa6;margin:0;display:flex;align-items:center;gap:8px}
.kicker.dark{color:#555}
.sr{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}

/* Screen decorations */
.clip{position:absolute!important;top:-14px;left:120px;width:26px;height:74px;border:4px solid #b9b9bd;border-radius:14px;z-index:5!important;transform:rotate(8deg)}
.clip:after{content:'';position:absolute;inset:10px 3px 14px;border:3px solid #b9b9bd;border-radius:10px}
.tape{position:absolute!important;top:-10px;right:90px;width:130px;height:34px;background:#ffc515cc;transform:rotate(4deg);z-index:5!important;clip-path:polygon(3% 0,97% 4%,100% 50%,96% 100%,2% 96%,0 50%)}

/* ---------- Sheet 1 ---------- */
.cv-board{background:#0f0f10;color:var(--ink);padding:38px 40px 76px;display:grid;grid-template-columns:150px 1fr;gap:16px 28px;position:relative}
.id-tile{display:flex;flex-direction:column;gap:8px;background:#f6f1e6;padding:8px 8px 10px;transform:rotate(-3deg);box-shadow:0 10px 24px #0008;align-self:start}
.id-art{aspect-ratio:1;display:grid;grid-template-columns:1fr 1fr;grid-template-rows:1fr 1fr;background:#151515;position:relative;overflow:hidden}
.id-art i{display:block}
.id-art .q1{background:var(--yellow);border-radius:0 0 100% 0}
.id-art .q2{background:var(--orange);border-radius:50%}
.id-art .q3{background:var(--lilac);border-radius:0 100% 0 0}
.id-art .q4{background:repeating-radial-gradient(circle at 0 100%,#f6f1e6 0 3px,#151515 3px 6px);border-radius:100% 0 0 0}
.id-art span{position:absolute;right:6px;bottom:2px;font-family:var(--display);font-size:34px;color:#f6f1e6;mix-blend-mode:difference;line-height:1}
.id-code{height:22px;background:repeating-linear-gradient(90deg,#151515 0 2px,transparent 2px 4px,#151515 4px 5px,transparent 5px 8px,#151515 8px 11px,transparent 11px 12px)}
.cv-board h1{font-size:54px;line-height:.88;letter-spacing:-.06em;font-weight:900;margin:10px 0 10px;text-transform:none}
.role{margin:0 0 12px;font-size:16px;font-weight:800;letter-spacing:-.02em;color:var(--yellow)}
.routes{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:6px 14px;font-size:11.5px;font-weight:600;color:#ddd6ca}
.routes li{display:flex;align-items:center;gap:6px}
.routes .bullet.sm{--s:18px;font-size:9px}
.contacts{grid-column:1/-1;list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:6px}
.contacts a,.contacts span{display:inline-flex;align-items:center;gap:7px;background:#1f1f22;border:1px solid #333;border-radius:99px;padding:4px 11px 4px 4px;font-size:10.5px;font-weight:600;color:#eee7da}
.contacts b{width:19px;height:19px;border-radius:50%;background:var(--cream);color:#111;display:grid;place-items:center;font-size:9.5px;font-weight:800}
.contacts li:nth-child(2) b{background:var(--yellow)}
.contacts li:nth-child(4) b{background:var(--blue);color:#fff}
.board-lines{position:absolute;left:0;right:0;bottom:-2px;width:100%;height:64px;fill:none;stroke-width:6.5}
.sticker{position:absolute!important;right:34px;top:30px;width:100px;height:100px;border-radius:50%;background:var(--yellow);color:#111;display:grid;place-content:center;text-align:center;font-family:var(--display);font-size:17px;line-height:.95;transform:rotate(12deg);box-shadow:0 8px 20px #0006;z-index:4!important}
.sticker small{display:block;font-family:var(--mono);font-size:9px;letter-spacing:.12em;margin-top:3px}
.sticker:before{content:'';position:absolute;inset:5px;border-radius:50%;border:1.5px dashed #111}

.profile{padding:22px 40px 4px}
.profile .lead{font-size:18px;font-weight:900;letter-spacing:-.035em;line-height:1.1;margin:0 0 7px}
.profile p{margin:0;font-size:11.8px;color:#333}

.numbers{display:grid;grid-template-columns:repeat(6,1fr);gap:6px;padding:16px 40px 0}
.num{padding:10px 9px 9px;min-height:84px;display:flex;flex-direction:column;justify-content:space-between;color:#111;clip-path:polygon(0 0,calc(100% - 12px) 0,100% 12px,100% 100%,0 100%)}
.num b{font-family:var(--display);font-weight:400;font-size:26px;line-height:1;letter-spacing:.005em}
.num span{font-size:9.5px;font-weight:700;line-height:1.2;margin-top:6px}
.n-yellow{background:var(--yellow)}.n-red{background:var(--red);color:#fff}.n-orange{background:var(--orange)}.n-lilac{background:var(--lilac)}.n-green{background:var(--green);color:#fff}.n-sky{background:var(--sky)}
.fine{padding:5px 40px 0;margin:0;font-family:var(--mono);font-size:7.5px;color:#888;letter-spacing:.02em}

.job{padding:18px 40px 0}
.job-head{display:grid;grid-template-columns:auto 1fr auto;gap:12px;align-items:center;padding-bottom:10px;border-bottom:2px solid #151515}
.job-bullet{--s:42px;font-size:20px}
.job-head h2{font-size:23px}
.org{margin:3px 0 0;font-weight:600;color:#555;font-size:11.5px}
.when{font-family:var(--mono);font-size:10px;font-weight:600;letter-spacing:.08em;background:#151515;color:var(--yellow);padding:6px 10px;border-radius:99px;white-space:nowrap}
.venues{display:flex;flex-wrap:wrap;gap:6px;margin:10px 0 2px}
.tag{font-family:var(--display);font-size:13px;letter-spacing:.03em;padding:5px 16px 4px 9px;clip-path:polygon(0 0,calc(100% - 9px) 0,100% 9px,100% 100%,0 100%);color:#111}
.tag small{font-family:var(--sans);font-size:9.5px;font-weight:600;letter-spacing:0;margin-left:4px;opacity:.75}
.t-yellow{background:var(--yellow)}.t-sky{background:var(--sky)}.t-blue{background:var(--blue);color:#fff}
.points{list-style:none;margin:10px 0 0;padding:0;display:grid;gap:8px}
.points li{position:relative;padding-left:20px;font-size:11.6px;color:#2a2a2a}
.points li:before{content:'';position:absolute;left:0;top:3px;width:11px;height:11px;border-radius:50%;background:#151515;box-shadow:inset 0 0 0 3px var(--yellow)}
.points b{color:#111}

.line-map{margin:auto 40px 0;padding:14px 16px 12px;background:#0f0f10;color:var(--ink);border-radius:16px}
.line-map .kicker{color:#bbb}
.line-map ol{list-style:none;margin:14px 0 0;padding:0;display:grid;grid-template-columns:repeat(8,1fr);position:relative;counter-reset:st}
.line-map ol:before{content:'';position:absolute;left:4px;right:4px;top:7px;height:8px;border-radius:99px;background:linear-gradient(90deg,var(--yellow),var(--orange) 55%,var(--red))}
.line-map li{position:relative;padding:26px 6px 0 0;counter-increment:st}
.line-map li:before{content:'';position:absolute;left:0;top:1px;width:20px;height:20px;border-radius:50%;background:var(--ink);border:4px solid #0f0f10}
.line-map li:after{content:'0' counter(st);position:absolute;left:24px;top:3px;font-family:var(--mono);font-size:7.5px;color:#888;display:none}
.line-map li b{font-size:10px;line-height:1.15;display:block;letter-spacing:-.01em}
.line-note{margin:10px 0 0;font-size:10px;color:#bdb6aa}

.sheet-foot{display:flex;justify-content:space-between;align-items:center;padding:12px 40px 16px;font-family:var(--mono);font-size:8.5px;letter-spacing:.14em;color:#777}
.sheet-foot .dots{margin:0}
.sheet-foot .dots i{width:7px;height:7px;animation:none}

/* ---------- Sheet 2 ---------- */
.stage{background:#140504;color:var(--ink);padding:36px 40px 22px;position:relative;overflow:hidden;isolation:isolate}
.contour{position:absolute;right:-150px;top:-170px;width:420px;height:420px;z-index:-1}
.contour i{position:absolute;inset:0;border-radius:46% 54% 42% 58%/55% 45% 55% 45%}
.contour i:nth-child(1){background:#ffc515}.contour i:nth-child(2){background:#ff8a00;inset:9%}.contour i:nth-child(3){background:#f0450f;inset:18%}.contour i:nth-child(4){background:#c41a1f;inset:27%}.contour i:nth-child(5){background:#6e0c18;inset:36%}.contour i:nth-child(6){background:#140504;inset:45%}
.stage:after{content:'';position:absolute;inset:0;z-index:-1;background:linear-gradient(90deg,#140504 55%,#14050400)}
.job-head.light{border-color:#ffffff30}
.job-head.light h2{font-size:21px;color:var(--ink);max-width:470px}
.job-head.light .org{color:#d6c6ba}
.job-head.light .when{background:var(--yellow);color:#111}
.points.light li{color:#e2d6cc}
.points.light b{color:#fff}
.points.light li:before{background:var(--red);box-shadow:inset 0 0 0 3px #140504}
.stage-lead{margin:12px 0 0;font-size:13px;font-weight:600;color:#f3e9de;max-width:640px;line-height:1.4}
.stage-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:6px;margin-top:12px}
.stage-stats div{background:#0c0c0dcc;border:1px solid #ffffff1c;padding:8px 10px;display:flex;flex-direction:column;gap:2px}
.stage-stats div:first-child{background:var(--yellow);color:#111;border-color:var(--yellow)}
.stage-stats b{font-family:var(--display);font-weight:400;font-size:26px;line-height:1}
.stage-stats span{font-size:9px;font-weight:700;line-height:1.25;opacity:.85}
.wall{margin:12px 0 0;font-size:9.6px;line-height:1.55;color:#d6c6ba}
.wall b{color:#fff}
.wall i{color:var(--yellow);font-style:normal;font-weight:700}
.wall-h{font-family:var(--mono);font-size:8px;letter-spacing:.12em;background:var(--red);color:#fff;padding:2px 6px;margin-right:4px}
.credits{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:14px}
.credit{background:#0c0c0d;border-radius:8px;overflow:hidden;padding:0 12px 10px;display:flex;flex-direction:column;gap:4px;border-top:9px solid #000;box-shadow:0 10px 20px #0006}
.credit:nth-child(2){background:var(--cream);color:#111}
.credit .c-name{font-size:15px;font-weight:800;letter-spacing:-.03em;margin-top:8px;line-height:1.05}
.credit .c-src{font-size:9.5px;opacity:.75;line-height:1.3}
.also{margin:8px 0 0;font-size:9.6px;color:#d6c6ba}
.also b{color:var(--yellow)}

.builds{padding:18px 40px 0}
.sec-row{display:flex;align-items:baseline;justify-content:space-between;gap:12px}
.sheet .builds h2,.sheet .toolkit h2,.sheet .side h2{font-size:20px}
.note{font-family:'Caveat',cursive;font-size:19px;color:var(--red);transform:rotate(-2deg);white-space:nowrap}
.tix{display:grid;grid-template-columns:repeat(4,1fr);gap:7px;margin-top:10px}
.tk{--c:var(--yellow);background:#fffdf8;border:1.5px solid #151515;display:flex;flex-direction:column;gap:3px;padding:0 9px 8px;position:relative;min-height:112px}
.tk:after{content:'';position:absolute;left:-1px;right:-1px;bottom:22px;border-top:1.5px dashed #b9b1a2}
.tk-top{display:flex;justify-content:space-between;align-items:center;background:var(--c);margin:0 -9px 5px;padding:5px 7px;font-family:var(--mono);font-size:8.5px;font-weight:600;letter-spacing:.08em;border-bottom:1.5px solid #151515}
.tk-top .bullet.sm{--s:17px;font-size:8.5px;background:#151515;color:var(--c)}
.tk b{font-size:12px;letter-spacing:-.03em;line-height:1.05}
.tk>span:not(.tk-top){font-size:9.4px;line-height:1.3;color:#3a3a3a;flex:1}
.tk em{font-style:normal;font-family:var(--mono);font-size:7.6px;letter-spacing:.04em;color:#666;padding-top:7px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.k-yellow{--c:var(--yellow)}.k-lilac{--c:var(--lilac)}.k-red{--c:var(--red)}.k-pink{--c:var(--pink)}.k-orange{--c:var(--orange)}.k-green{--c:var(--green)}.k-blue{--c:var(--blue)}.k-cream{--c:#151515}
.k-red .tk-top,.k-green .tk-top,.k-blue .tk-top,.k-cream .tk-top{color:#fff}
.k-cream .tk-top .bullet.sm{background:var(--yellow);color:#111}
.k-cream{background:#151515;color:var(--ink)}
.k-cream>span:not(.tk-top){color:#cfc8bb}
.k-cream em{color:var(--yellow)}
.k-cream:after{border-color:#444}

.lower{display:grid;grid-template-columns:1.25fr 1fr;gap:18px;padding:18px 40px 0}
.kit{margin-top:9px}
.kit-h{display:flex;align-items:center;gap:7px;margin:0 0 5px;font-weight:800;font-size:11.5px;letter-spacing:-.01em}
.kit-h .bullet.sm{--s:17px;font-size:8.5px}
.chips-cv{display:flex;flex-wrap:wrap;gap:4px;margin:0}
.chips-cv span{font-size:9.6px;font-weight:600;border:1.3px solid #151515;border-radius:99px;padding:2px 8px;background:#fffdf8}
.side{display:flex;flex-direction:column;gap:12px}
.edu{display:grid;grid-template-columns:44px 1fr;background:var(--yellow);color:#111;box-shadow:4px 4px 0 #151515;border:1.5px solid #151515}
.edu-band{writing-mode:vertical-rl;transform:rotate(180deg);font-family:var(--display);font-size:22px;line-height:.9;text-align:center;background:#151515;color:var(--yellow);padding:10px 0;letter-spacing:.04em}
.edu-body{padding:12px 13px 10px;display:grid;gap:9px}
.edu-body div:not(.edu-code){display:grid}
.edu-body b{font-size:14px;font-weight:900;letter-spacing:-.03em}
.edu-body span{font-size:10.5px;font-weight:600}
.edu-body em{font-style:normal;font-family:var(--mono);font-size:9px;letter-spacing:.06em}
.edu-code{height:18px;background:repeating-linear-gradient(90deg,#151515 0 2px,transparent 2px 4px,#151515 4px 5px,transparent 5px 8px,#151515 8px 11px,transparent 11px 12px);opacity:.85}
.langs p{display:flex;align-items:center;gap:7px;margin:7px 0 0;font-weight:700;font-size:12px}
.langs .bullet.sm{--s:22px;font-size:8.5px}
.langs .bullet.sm+.bullet,.langs p>.bullet:nth-of-type(2){margin-left:8px}
.how ol{list-style:none;margin:8px 0 0;padding:0;display:grid;grid-template-columns:1fr 1fr;gap:5px;counter-reset:h}
.how li{counter-increment:h;font-size:10.5px;font-weight:700;background:#ebe4d5;padding:6px 8px;border-radius:8px;display:flex;gap:6px;align-items:center}
.how li:before{content:'0' counter(h);font-family:var(--mono);font-size:8.5px;color:var(--orange)}

.metro-foot{margin-top:auto;background:var(--yellow);color:#111;position:relative;overflow:hidden;padding:20px 40px 0}
.mf-arcs{position:absolute!important;right:-20px;top:-118px;width:280px;height:190px}
.mf-arcs i{position:absolute;inset:0;border-radius:0 0 0 100%;border-left:20px solid var(--orange);border-bottom:20px solid var(--orange)}
.mf-arcs i:nth-child(2){inset:20px 0 20px 20px;border-color:var(--sky)}
.mf-arcs i:nth-child(3){inset:40px 0 40px 40px;border-color:var(--red)}
.mf-copy{display:flex;flex-direction:column;gap:3px;position:relative;padding-bottom:16px}
.mf-label{font-family:var(--mono);font-size:9px;font-weight:600;letter-spacing:.16em}
.mf-line{font-weight:800;font-size:14px;letter-spacing:-.01em;display:flex;flex-wrap:wrap;gap:4px 8px;align-items:center}
.mf-line i{font-style:normal;opacity:.45}
.mf-strip{margin:0 -40px;background:#151515;color:var(--yellow);display:flex;justify-content:space-between;padding:9px 40px;font-family:var(--mono);font-size:9.5px;font-weight:600;letter-spacing:.1em;position:relative}

/* ---------- Small screens: let the sheets flow ---------- */
@media screen and (max-width:860px){
  .desk{padding:20px 10px 60px;gap:28px}
  .sheet{width:100%;height:auto;transform:none}
  .clip,.tape{display:none}
  .cv-board{grid-template-columns:1fr;padding:28px 20px 78px}
  .id-tile{width:110px}
  .cv-board h1{font-size:44px}
  .sticker{width:78px;height:78px;font-size:13px;right:16px;top:18px}
  .profile,.job,.builds,.lower{padding-left:20px;padding-right:20px}
  .numbers{grid-template-columns:repeat(3,1fr);padding:16px 20px 0}
  .fine{padding:5px 20px 0}
  .line-map{margin:20px 20px 0}
  .line-map ol{grid-template-columns:repeat(4,1fr);row-gap:14px}
  .line-map ol:before{display:none}
  .stage{padding:28px 20px 20px}
  .credits{grid-template-columns:1fr}
  .stage-stats{grid-template-columns:1fr 1fr}
  .tix{grid-template-columns:1fr 1fr}
  .lower{grid-template-columns:1fr}
  .job-head{grid-template-columns:auto 1fr}
  .job-head .when{grid-column:1/-1;justify-self:start}
  .metro-foot{padding:20px 20px 0;margin-top:24px}
  .mf-strip{margin:0 -20px;padding:9px 20px}
  .sheet-foot{padding:12px 20px 16px}
  .cv-actions .pill-ghost{display:none}
  .hide-sm{display:none}
  .stage:after{background:linear-gradient(180deg,#140504e6,#140504f2)}
  .note{white-space:normal}
}

/* ---------- Print: exact A4 pages ---------- */
@page{size:A4;margin:0}
@media print{
  html,body,.cv-body{background:#fff!important;background-image:none!important}
  .cv-top,.clip,.tape{display:none!important}
  .desk{display:block;padding:0;gap:0}
  .sheet{width:210mm;height:297mm;transform:none!important;box-shadow:none;page-break-after:always;break-after:page;margin:0}
  .sheet:last-child{page-break-after:auto;break-after:auto}
  .sheet:before{display:none}
  *{-webkit-print-color-adjust:exact;print-color-adjust:exact}
}
