:root{
  --paper:#f7f4ee;
  --ink:#0d0f14;
  --muted:#3b4152;
  --line:#0d0f14;
  --accent:#ff3b3b;
  --accent2:#2b59ff;
  --accent3:#00a36c;
  --shadow: 8px 10px 0 rgba(13,15,20,.90);
  --shadowSoft: 0 24px 60px rgba(13,15,20,.18);
  --radius: 16px;
  --mono: ui-monospace, SFMono-Regular, Menlo, Consolas, "Liberation Mono", monospace;
}

@media (prefers-color-scheme: dark){
  :root{
    --paper:#0b0d12;
    --ink:#f4f3ef;
    --muted:#b7bfd6;
    --line:#f4f3ef;
    --shadow: 10px 12px 0 rgba(0,0,0,.85);
    --shadowSoft: 0 24px 70px rgba(0,0,0,.35);
  }
}

*{box-sizing:border-box}
html,body{height:100%}
body{
  margin:0;
  font-family:Inter,system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif;
  color:var(--ink);
  background:var(--paper);
  overflow-x:hidden;
}

a{color:inherit}
.container{max-width:1100px;margin:0 auto;padding:0 18px}

.skip{
  position:absolute;left:-9999px;top:10px;
  padding:10px 12px;border-radius:12px;
  background:var(--paper);
  border:2px solid var(--line);
}
.skip:focus{left:12px;z-index:1000}

/* Paper texture + ink splats */
.paper{
  position:fixed;inset:-30%;
  pointer-events:none;
  background:
    radial-gradient(1200px 800px at 20% 0%, rgba(255,59,59,.10), transparent 60%),
    radial-gradient(900px 700px at 90% 20%, rgba(43,89,255,.10), transparent 55%),
    radial-gradient(900px 700px at 70% 95%, rgba(0,163,108,.10), transparent 55%),
    repeating-linear-gradient(90deg, rgba(13,15,20,.03) 0 1px, transparent 1px 44px);
  mix-blend-mode:multiply;
  opacity:.75;
  filter: contrast(105%);
  z-index:-2;
}
@media (prefers-color-scheme: dark){
  .paper{
    mix-blend-mode:screen;
    opacity:.25;
    background:
      radial-gradient(1200px 800px at 20% 0%, rgba(255,59,59,.18), transparent 60%),
      radial-gradient(900px 700px at 90% 20%, rgba(43,89,255,.18), transparent 55%),
      radial-gradient(900px 700px at 70% 95%, rgba(0,163,108,.16), transparent 55%),
      repeating-linear-gradient(90deg, rgba(244,243,239,.06) 0 1px, transparent 1px 44px);
  }
}

/* Progress bar */
.progress{
  position:fixed;left:0;top:0;right:0;height:4px;
  background:transparent;
  z-index:60;
}
.progress__bar{
  height:100%;
  width:0%;
  background: linear-gradient(90deg, var(--accent), var(--accent2), var(--accent3));
}

/* Masthead */
.mast{
  position:sticky;top:0;z-index:50;
  background: color-mix(in srgb, var(--paper) 92%, transparent);
  backdrop-filter: blur(10px);
  border-bottom:2px solid var(--line);
}
.mast__inner{
  display:flex;align-items:center;justify-content:space-between;
  padding:12px 0;gap:14px;
}
.stamp{
  width:46px;height:46px;border-radius:12px;
  border:2px solid var(--line);
  display:grid;place-items:center;
  font-family:var(--mono);
  letter-spacing:.12em;
  background: linear-gradient(135deg, rgba(255,59,59,.18), rgba(43,89,255,.14));
  box-shadow: 3px 4px 0 rgba(13,15,20,.85);
}
.mast__name{font-weight:800;letter-spacing:-.03em}
.mast__role{font-size:13px;color:var(--muted)}
.dock{
  display:flex;gap:10px;flex-wrap:wrap;justify-content:flex-end;
}
.dock a{
  text-decoration:none;
  font-family:var(--mono);
  font-size:13px;
  padding:8px 10px;
  border-radius:999px;
  border:2px solid var(--line);
  background: color-mix(in srgb, var(--paper) 86%, white 14%);
  box-shadow: 3px 4px 0 rgba(13,15,20,.88);
  transition: transform .08s ease;
}
.dock a:hover{transform: translate(-1px,-1px)}
.dock a:active{transform: translate(2px,2px); box-shadow: 1px 2px 0 rgba(13,15,20,.88)}

/* Cover */
.cover{
  display:grid;
  grid-template-columns: 1.15fr .85fr;
  gap:16px;
  padding:22px 0 10px;
  align-items:start;
}
.title{
  margin:14px 0 10px;
  font-size:44px;
  line-height:1.02;
  letter-spacing:-.05em;
}
.title__cut{
  display:block;
  margin-top:10px;
  font-size:14px;
  font-family:var(--mono);
  letter-spacing:.18em;
  text-transform:uppercase;
  color:var(--muted);
}
.lede{
  margin:0;
  color:var(--muted);
  line-height:1.65;
  max-width:62ch;
}
.cta{display:flex;gap:10px;margin-top:14px;flex-wrap:wrap}

.btn2{
  text-decoration:none;
  border:2px solid var(--line);
  border-radius:999px;
  padding:10px 14px;
  font-weight:800;
  letter-spacing:-.01em;
  background: linear-gradient(135deg, rgba(255,59,59,.25), rgba(43,89,255,.18));
  box-shadow: 4px 5px 0 rgba(13,15,20,.9);
  transition: transform .08s ease;
}
.btn2:hover{transform: translate(-1px,-1px)}
.btn2:active{transform: translate(2px,2px); box-shadow: 1px 2px 0 rgba(13,15,20,.9)}
.btn2--ghost{
  background: color-mix(in srgb, var(--paper) 86%, white 14%);
}

/* Bento tiles */
.bento{
  display:grid;
  grid-template-columns: 1fr 1fr;
  gap:12px;
}
.tile{
  border:2px solid var(--line);
  border-radius: var(--radius);
  padding:14px;
  background: color-mix(in srgb, var(--paper) 88%, white 12%);
  box-shadow: var(--shadow);
  position:relative;
  overflow:hidden;
}
.tile::before{
  content:"";
  position:absolute;inset:-1px;
  background: repeating-linear-gradient(135deg, rgba(13,15,20,.05) 0 7px, transparent 7px 14px);
  opacity:.22;
  pointer-events:none;
}
.tile--big{grid-column:1 / -1}
.tile--wide{grid-column:1 / -1}
.tile--links{grid-column:1 / -1}
.tile__k{
  font-family:var(--mono);
  font-size:12px;
  letter-spacing:.18em;
  text-transform:uppercase;
  color:var(--muted);
  margin-bottom:8px;
}
.tile__v{font-weight:900;letter-spacing:-.02em}
.tile__s{margin-top:6px;color:var(--muted);line-height:1.55;font-size:13px}
.links{display:flex;gap:8px;flex-wrap:wrap}
.pill{
  display:inline-flex;
  border:2px solid var(--line);
  border-radius:999px;
  padding:7px 10px;
  font-family:var(--mono);
  text-decoration:none;
  background: rgba(255,255,255,.22);
}
.pill--thin{padding:6px 9px; font-size:12px}
.link2{
  text-decoration:none;
  font-weight:800;
  border-bottom:2px solid currentColor;
}
.link2:hover{opacity:.85}

/* Blocks */
.block{padding:14px 0}
.block__head{
  display:flex;align-items:flex-end;justify-content:space-between;
  gap:10px;flex-wrap:wrap;
  margin-bottom:10px;
}
.block__head h2{
  margin:0;
  font-size:20px;
  letter-spacing:-.02em;
}
.hint{
  font-family:var(--mono);
  font-size:12px;
  letter-spacing:.14em;
  text-transform:uppercase;
  color:var(--muted);
}

/* Work */
.work{
  display:grid;
  grid-template-columns: repeat(2, 1fr);
  gap:12px;
}
.workcard{
  border:2px solid var(--line);
  border-radius: var(--radius);
  padding:14px;
  background: var(--paper);
  box-shadow: var(--shadow);
}
.workcard__top{
  display:flex;align-items:flex-start;justify-content:space-between;gap:10px;flex-wrap:wrap;
}
.workcard h3{margin:0;font-size:16px;letter-spacing:-.01em}
.workcard p{margin:10px 0 0;color:var(--muted);line-height:1.6}
.workcard__stack{display:flex;gap:8px;flex-wrap:wrap}
.workcard__links{display:flex;gap:12px;flex-wrap:wrap;margin-top:10px}
.link2--btn{
  appearance:none;
  background:transparent;
  padding:0;
  border:none;
  cursor:pointer;
  font: inherit;
}
.link2--btn:focus-visible{
  outline:3px solid color-mix(in srgb, var(--accent2) 55%, transparent);
  outline-offset:4px;
  border-radius:6px;
}

/* Skills */
.skills{display:flex;gap:10px;flex-wrap:wrap}
.chip2{
  border:2px solid var(--line);
  border-radius:999px;
  padding:8px 10px;
  background: color-mix(in srgb, var(--paper) 84%, white 16%);
  box-shadow: 3px 4px 0 rgba(13,15,20,.88);
  font-weight:800;
  font-size:13px;
}

/* Timeline */
.timeline{
  border:2px solid var(--line);
  border-radius: var(--radius);
  overflow:hidden;
  box-shadow: var(--shadowSoft);
}
.line{
  display:grid;
  grid-template-columns: 160px 1fr 96px;
  gap:12px;
  padding:14px;
  border-top:2px solid var(--line);
  background: color-mix(in srgb, var(--paper) 88%, white 12%);
}
.line:first-child{border-top:none}
.line__when{font-family:var(--mono);color:var(--muted);font-size:12px;letter-spacing:.14em;text-transform:uppercase}
.line__title{font-weight:900;letter-spacing:-.01em}
.line__meta{color:var(--muted);margin-top:4px;line-height:1.5}
.line__tag{
  justify-self:end;
  align-self:start;
  border:2px solid var(--line);
  border-radius:999px;
  padding:6px 10px;
  font-family:var(--mono);
  font-size:12px;
  background: rgba(255,255,255,.22);
}
.bul{margin:10px 0 0;padding-left:18px;color:var(--muted);line-height:1.65}
.bul li{margin:6px 0}

/* Split panels */
.split{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.panel{
  border:2px solid var(--line);
  border-radius: var(--radius);
  padding:14px;
  background: color-mix(in srgb, var(--paper) 90%, white 10%);
  box-shadow: var(--shadow);
}
.panel h3{margin:0 0 8px}
.ref__name{font-weight:900;margin-bottom:8px}
.ref__line{display:flex;gap:10px;align-items:baseline;color:var(--muted);margin:6px 0}
.ref__line span{min-width:54px;font-family:var(--mono);font-size:12px;letter-spacing:.14em;text-transform:uppercase}

/* Contact */
.section{padding:18px 0}
.contact{
  display:grid;
  grid-template-columns: 1fr .9fr;
  gap:12px;
}
.form2{
  border:2px solid var(--line);
  border-radius: var(--radius);
  padding:14px;
  background: var(--paper);
  box-shadow: var(--shadow);
  display:grid;
  grid-template-columns: 1fr 1fr;
  gap:10px;
}
.form2 label{display:flex;flex-direction:column;gap:6px}
.form2 span{font-family:var(--mono);font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}
.form2 input,.form2 textarea{
  border:2px solid var(--line);
  border-radius: 12px;
  padding:10px 12px;
  background: color-mix(in srgb, var(--paper) 86%, white 14%);
  color:var(--ink);
  font: inherit;
  outline:none;
}
.form2 input:focus,.form2 textarea:focus{box-shadow: 0 0 0 4px rgba(43,89,255,.16)}
.form__full{grid-column:1 / -1}
.form__actions{display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.hp{position:absolute;left:-9999px}
.note{
  border:2px solid var(--line);
  border-radius: var(--radius);
  padding:14px;
  background: linear-gradient(135deg, rgba(255,59,59,.12), rgba(43,89,255,.10), rgba(0,163,108,.10));
  box-shadow: var(--shadow);
}
.note--footer{margin: 10px 0 0}
.note__title{
  font-family:var(--mono);
  letter-spacing:.18em;
  text-transform:uppercase;
  font-size:12px;
  color:var(--muted);
  margin-bottom:10px;
}
.note__line{display:flex;gap:10px;align-items:baseline;color:var(--muted);margin:8px 0}
.note__line span{min-width:56px;font-family:var(--mono);font-size:12px;letter-spacing:.14em;text-transform:uppercase}
.note__actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:10px}

/* Flash */
.flash2{
  margin:10px 0 14px;
  border:2px solid var(--line);
  border-radius: 14px;
  padding:12px 14px;
  background: color-mix(in srgb, var(--paper) 86%, white 14%);
  box-shadow: var(--shadowSoft);
  font-weight:800;
}
.flash2--ok{background: color-mix(in srgb, rgba(0,163,108,.18) 55%, var(--paper))}
.flash2--error{background: color-mix(in srgb, rgba(255,59,59,.18) 55%, var(--paper))}

/* Footer */
.footer{padding:22px 0;border-top:2px solid var(--line);margin-top:22px}
.footer__inner{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap}
.muted{color:var(--muted)}

/* Project modal */
.pm[hidden]{display:none}
.pm{
  position:fixed;inset:0;
  z-index:80;
}
.pm__backdrop{
  position:absolute;inset:0;
  background: rgba(13,15,20,.55);
}
@media (prefers-color-scheme: dark){
  .pm__backdrop{background: rgba(0,0,0,.62)}
}
.pm__panel{
  position:absolute;
  left:50%;
  top:50%;
  transform: translate(-50%, -50%);
  width: min(900px, calc(100vw - 24px));
  max-height: min(78vh, 760px);
  display:flex;
  flex-direction:column;
  border:2px solid var(--line);
  border-radius: var(--radius);
  background: var(--paper);
  box-shadow: 18px 22px 0 rgba(13,15,20,.92);
  overflow:hidden;
}
.pm__bar{
  display:flex;align-items:center;justify-content:space-between;
  gap:10px;
  padding:10px 12px;
  border-bottom:2px solid var(--line);
  background: linear-gradient(135deg, rgba(255,59,59,.14), rgba(43,89,255,.10));
}
.pm__brand{
  font-family:var(--mono);
  letter-spacing:.22em;
  text-transform:uppercase;
  font-size:12px;
  color:var(--muted);
}
.pm__close{
  appearance:none;
  border:2px solid var(--line);
  border-radius:12px;
  width:38px;height:34px;
  background: color-mix(in srgb, var(--paper) 86%, white 14%);
  box-shadow: 3px 4px 0 rgba(13,15,20,.88);
  cursor:pointer;
  font-size:20px;
  line-height:1;
}
.pm__close:hover{transform: translate(-1px,-1px)}
.pm__close:active{transform: translate(2px,2px); box-shadow: 1px 2px 0 rgba(13,15,20,.88)}
.pm__content{
  padding:14px;
  overflow:auto;
}
.pm__head{
  display:flex;align-items:flex-start;justify-content:space-between;gap:10px;flex-wrap:wrap;
  margin-bottom:12px;
}
.pm__title{
  font-weight:900;
  letter-spacing:-.02em;
  font-size:20px;
}
.pm__stack{display:flex;gap:8px;flex-wrap:wrap}
.pm__grid{
  display:grid;
  grid-template-columns: 1fr 1fr;
  gap:12px;
}
.pm__block{
  border:2px solid var(--line);
  border-radius: 14px;
  padding:12px;
  background: color-mix(in srgb, var(--paper) 88%, white 12%);
  box-shadow: var(--shadowSoft);
}
.pm__k{
  font-family:var(--mono);
  font-size:12px;
  letter-spacing:.16em;
  text-transform:uppercase;
  color:var(--muted);
  margin-bottom:8px;
}
.pm__v{color:var(--muted);line-height:1.65}
.pm__list{margin:0;padding-left:18px;color:var(--muted);line-height:1.65}
.pm__list li{margin:6px 0}

@media (max-width: 820px){
  .pm__grid{grid-template-columns:1fr}
  .pm__panel{max-height: 84vh}
}

@media (max-width: 980px){
  .cover{grid-template-columns:1fr}
  .work{grid-template-columns:1fr}
  .split{grid-template-columns:1fr}
  .contact{grid-template-columns:1fr}
  .form2{grid-template-columns:1fr}
  .title{font-size:36px}
  .line{grid-template-columns:1fr}
  .line__tag{justify-self:start}
}

