:root{
  --bg:#ffffff;
  --ink:#111111;
  --gray:#6b6b6b;
  --line:#111111;
  --hair:#dcdcdc;
  --dot:#e8e8e8;
  --red:#e5341a;
}
*{box-sizing:border-box;margin:0;padding:0;}
html{scroll-behavior:smooth;}
html,body{background:var(--bg);color:var(--ink);font-size:15px;
  font-family:"JetBrains Mono",ui-monospace,SFMono-Regular,Menlo,monospace;
  -webkit-font-smoothing:antialiased;line-height:1.55;
  background-image:radial-gradient(var(--dot) 1px,transparent 1px);background-size:22px 22px;}
::selection{background:var(--red);color:#fff;}
a{color:inherit;text-decoration:none;}
.up{text-transform:uppercase;}

.wrap{max-width:1120px;margin:0 auto;padding:0 28px;}
.rule{height:1px;background:var(--line);}
.rule.thick{height:3px;}

/* top bar */
.bar{position:sticky;top:0;z-index:60;background:var(--bg);border-bottom:1px solid var(--line);}
.bar .in{max-width:1120px;margin:0 auto;padding:0 28px;height:46px;display:flex;align-items:center;justify-content:space-between;font-size:12px;letter-spacing:.04em;}
.bar .logo{font-weight:800;letter-spacing:.02em;}
.bar .logo .r{color:var(--red);}
.bar .nav{display:flex;gap:0;}
.bar .nav a{padding:6px 11px;color:var(--gray);text-transform:uppercase;letter-spacing:.08em;font-size:11px;transition:color .12s,background .12s;}
.bar .nav a:hover{color:var(--bg);background:var(--ink);}
.bar .nav a.on{color:var(--bg);background:var(--ink);}
.bar .clock{color:var(--gray);font-size:11px;letter-spacing:.06em;cursor:pointer;user-select:none;transition:color .12s;}
.bar .clock:hover{color:var(--ink);}
.bar .clock::after{content:" ▸";color:var(--red);}

/* marquee */
.marq{border-bottom:1px solid var(--line);background:var(--ink);color:var(--bg);overflow:hidden;white-space:nowrap;}
.marq .track{display:inline-block;padding:9px 0;animation:scroll 26s linear infinite;font-size:12px;letter-spacing:.14em;font-weight:500;}
.marq .track span{margin:0 4px;}
.marq .track .s{color:var(--red);}
.marq:hover .track{animation-play-state:paused;}
@keyframes scroll{from{transform:translateX(0);}to{transform:translateX(-50%);}}

/* section label */
.seclabel{display:flex;align-items:center;gap:14px;padding:18px 0 16px;}
.seclabel .no{font-size:12px;color:var(--red);font-weight:700;letter-spacing:.06em;}
.seclabel h2{font-size:13px;font-weight:700;letter-spacing:.18em;text-transform:uppercase;}
.seclabel .ln{flex:1;height:1px;background:var(--hair);}

/* page header (sub-pages) */
.phead{padding:40px 0 6px;}
.phead .eyebrow{font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--red);font-weight:700;}
.phead h1{font-weight:800;font-size:clamp(34px,6vw,74px);line-height:.94;letter-spacing:-.025em;text-transform:uppercase;margin-top:12px;}
.phead .lead{font-size:clamp(14px,1.6vw,17px);margin-top:16px;max-width:64ch;color:var(--ink);}
.phead .lead .red{color:var(--red);}
.back{display:inline-flex;align-items:center;gap:8px;font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--gray);transition:color .12s;}
.back:hover{color:var(--red);}

/* corner-marked box — registration crosshairs on all 4 corners, exact-centered */
.box{position:relative;border:1px solid var(--line);background-color:var(--bg);
  background-image:
    url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='9' height='9'%3E%3Cpath d='M4.5 0v9M0 4.5h9' stroke='%23e5341a' stroke-width='1'/%3E%3C/svg%3E"),
    url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='9' height='9'%3E%3Cpath d='M4.5 0v9M0 4.5h9' stroke='%23e5341a' stroke-width='1'/%3E%3C/svg%3E"),
    url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='9' height='9'%3E%3Cpath d='M4.5 0v9M0 4.5h9' stroke='%23e5341a' stroke-width='1'/%3E%3C/svg%3E"),
    url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='9' height='9'%3E%3Cpath d='M4.5 0v9M0 4.5h9' stroke='%23e5341a' stroke-width='1'/%3E%3C/svg%3E");
  background-repeat:no-repeat;
  background-position:left -4.5px top -4.5px, right -4.5px top -4.5px, left -4.5px bottom -4.5px, right -4.5px bottom -4.5px;}

/* HERO */
.hero{padding:34px 0 8px;}
.hero .h1{font-weight:800;font-size:clamp(40px,8.6vw,104px);line-height:.92;letter-spacing:-.03em;text-transform:uppercase;}
.hero .lead{font-size:clamp(14px,1.6vw,17px);margin-top:14px;max-width:62ch;color:var(--ink);}
.hero .lead b{font-weight:700;}
.hero .lead .red{color:var(--red);}
.specs{display:grid;grid-template-columns:repeat(5,1fr);margin-top:26px;}
.specs .cell{border-right:1px solid var(--hair);padding:14px 16px;}
.specs .cell:last-child{border-right:0;}
.specs .cell .k{font-size:10px;letter-spacing:.12em;text-transform:uppercase;color:var(--gray);}
.specs .cell .v{font-size:13px;font-weight:500;margin-top:7px;line-height:1.35;}
.specs .cell .v .live{color:#1f9d3a;}
.hero .cta-row{display:flex;flex-wrap:wrap;gap:10px;margin-top:26px;}
.btn{font-family:inherit;font-size:12px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;
  padding:13px 20px;min-height:46px;display:inline-flex;align-items:center;gap:9px;border:1px solid var(--line);
  background:var(--ink);color:var(--bg);cursor:pointer;transition:background .12s,color .12s;}
.btn:hover{background:var(--bg);color:var(--ink);}
.btn.gh{background:var(--bg);color:var(--ink);}
.btn.gh:hover{background:var(--ink);color:var(--bg);}

/* RESULTS — terminal bars */
.vd-grid{display:grid;grid-template-columns:1fr 1fr;gap:1px;background:var(--line);border:1px solid var(--line);}
.vd-card{background:var(--bg);padding:18px 20px 20px;}
.vd-head{display:flex;align-items:baseline;gap:10px;font-size:10px;letter-spacing:.12em;text-transform:uppercase;}
.vd-idx{color:var(--red);font-weight:800;}
.vd-lab{font-weight:700;color:var(--ink);}
.vd-ctx{margin-left:auto;color:var(--gray);text-align:right;}
.vd-big{font-size:clamp(30px,4.6vw,46px);font-weight:800;letter-spacing:-.04em;line-height:1;margin:12px 0 14px;font-variant-numeric:tabular-nums;text-transform:uppercase;color:var(--ink);}
.vd-rows{border-top:1px solid var(--hair);padding-top:12px;display:grid;gap:7px;}
.vd-row{display:flex;align-items:center;gap:10px;}
.vd-rlab{font-size:10px;letter-spacing:.14em;color:var(--gray);width:3.4em;flex:none;}
.vd-rval{font-size:12px;min-width:4.6ch;text-align:right;font-variant-numeric:tabular-nums;color:var(--ink);}
.vd-rval.vd-c{font-weight:700;}
.vd-bar{flex:1;display:flex;gap:2px;min-width:0;}
.vd-bar i{flex:1;height:14px;background:conic-gradient(var(--hair) 90deg,transparent 90deg 180deg,var(--hair) 180deg 270deg,transparent 270deg) 0 0/4px 4px;}
.vd-bar i.vd-f{background:var(--red);}
.vd-now i.vd-f{background:var(--ink);}
@keyframes vd-blink{0%,49%{opacity:1}50%,100%{opacity:.2}}
.vd-now i.vd-lf{animation:vd-blink 1.1s steps(1,end) infinite;}
@media (max-width:560px){
  .vd-grid{grid-template-columns:1fr;}
  .vd-head{flex-wrap:wrap;}
  .vd-ctx{margin-left:0;flex-basis:100%;text-align:left;}
}

/* WHAT I DO */
.do{border-top:1px solid var(--line);border-left:1px solid var(--line);display:grid;grid-template-columns:repeat(3,1fr);}
.do .c{position:relative;border-right:1px solid var(--line);border-bottom:1px solid var(--line);padding:20px 18px;transition:background .12s,color .12s;}
.do .c:hover{background:var(--ink);color:var(--bg);}
.do .c:hover .n,.do .c:hover p{color:inherit;}
.do .c .n{font-size:12px;font-weight:700;color:var(--red);letter-spacing:.1em;}
.do .c h3{font-size:15px;font-weight:700;margin:12px 0 7px;letter-spacing:-.01em;}
.do .c p{font-size:12.5px;line-height:1.5;color:var(--gray);}
.do .c .pix{position:absolute;top:16px;right:16px;color:var(--red);}

/* PROCESS & TEAM */
.pt-hero{text-align:center;max-width:64ch;margin:4px auto 0;}
.pt-hero h3{font-size:clamp(20px,2.6vw,30px);font-weight:800;letter-spacing:-.02em;text-transform:uppercase;line-height:1.18;}
.pt-modes{display:grid;grid-template-columns:repeat(3,1fr);gap:28px;margin-top:26px;text-align:center;}
.pt-mode .pix{color:var(--red);display:block;margin:0 auto 10px;}
.pt-mode .mn{color:var(--red);font-weight:700;font-size:11px;letter-spacing:.08em;}
.pt-mode h4{display:inline;font-size:14px;font-weight:700;text-transform:uppercase;letter-spacing:.03em;margin-left:6px;}
.pt-mode p{font-size:12px;color:var(--gray);margin-top:6px;line-height:1.5;}
@media (max-width:640px){.pt-modes{grid-template-columns:1fr;gap:20px;}}

/* EXPERIENCE table */
.xp{width:100%;border-collapse:collapse;border:1px solid var(--line);font-size:13px;margin-top:2px;table-layout:fixed;}
.xp th{text-align:left;font-size:10px;letter-spacing:.12em;text-transform:uppercase;color:var(--gray);font-weight:700;
  padding:10px 14px;border-bottom:1px solid var(--line);background:#fafafa;}
.xp td{padding:14px;border-bottom:1px solid var(--hair);vertical-align:top;line-height:1.5;}
.xp tr:last-child td{border-bottom:0;}
.xp tr:hover td{background:#fafafa;}
.xp td.yr{color:var(--red);white-space:nowrap;font-weight:700;font-size:12px;}
.xp td .role{font-weight:700;}
.xp td .org{font-size:11px;color:var(--gray);margin-top:3px;text-transform:uppercase;letter-spacing:.05em;}
.xp td.m{font-weight:700;}
.xp td.d{color:var(--gray);font-size:12px;line-height:1.5;}

/* GALLERY */
.gal{display:grid;grid-template-columns:repeat(4,1fr);gap:0;border-top:1px solid var(--line);border-left:1px solid var(--line);}
.gal .ph{border-right:1px solid var(--line);border-bottom:1px solid var(--line);aspect-ratio:4/5;position:relative;overflow:hidden;background:#f4f4f4;
  display:flex;align-items:center;justify-content:center;}
.gal .ph img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;filter:grayscale(1) contrast(1.05);transition:filter .2s;}
.gal .ph:hover img{filter:grayscale(0);}
.gal .ph .fill{position:absolute;inset:0;background:repeating-linear-gradient(45deg,#ededed 0 8px,#f6f6f6 8px 16px);}
.gal .ph .fig{position:relative;z-index:2;font-size:11px;color:var(--gray);letter-spacing:.1em;}
.gal .ph .cap{position:absolute;left:0;right:0;bottom:0;z-index:3;border-top:1px solid var(--line);background:var(--bg);
  font-size:10px;letter-spacing:.08em;text-transform:uppercase;color:var(--gray);padding:5px 8px;display:flex;justify-content:space-between;}

/* gallery — click to reveal */
.gal .ph{cursor:pointer;font-family:inherit;padding:0;margin:0;text-align:inherit;color:inherit;border-top:0;border-left:0;}
.gal .ph:focus-visible{outline:2px solid var(--red);outline-offset:-2px;}
.gal .ph .media{position:absolute;inset:0;z-index:4;background:var(--ink);opacity:0;pointer-events:none;transition:opacity .16s;}
.gal .ph.open .media{opacity:1;}
.gal .ph .media img,.gal .ph .media video{width:100%;height:100%;object-fit:cover;display:block;}
.gal .ph.open .fig{opacity:0;}
.gal .ph .cap .count{color:var(--red);font-weight:700;}
.gal .ph .hint{position:absolute;top:8px;right:8px;z-index:3;font-size:9px;letter-spacing:.12em;text-transform:uppercase;color:var(--gray);opacity:0;transition:opacity .14s;}
.gal .ph:hover .hint{opacity:1;}
.gal .ph.open .hint{opacity:0;}

/* STARTUPS — vibe-coded gallery */
.st{display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid var(--line);border-left:1px solid var(--line);}
.st .card{border-right:1px solid var(--line);border-bottom:1px solid var(--line);display:flex;flex-direction:column;background:var(--bg);}
.st .head{display:flex;justify-content:space-between;align-items:center;padding:8px 12px;border-bottom:1px solid var(--hair);font-size:10px;letter-spacing:.1em;text-transform:uppercase;color:var(--gray);}
.st .head .idx{color:var(--red);font-weight:700;}
.st .shot{position:relative;aspect-ratio:16/10;overflow:hidden;background:#f4f4f4;display:flex;align-items:center;justify-content:center;border-bottom:1px solid var(--line);}
.st .shot img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:top;filter:grayscale(1) contrast(1.05);transition:filter .2s;}
.st .card:hover .shot img{filter:grayscale(0);}
.st .shot .fill{position:absolute;inset:0;background:repeating-linear-gradient(45deg,#ededed 0 8px,#f6f6f6 8px 16px);}
.st .shot .fig{position:relative;z-index:2;font-size:11px;color:var(--gray);letter-spacing:.1em;}
.st .body{padding:14px 14px 16px;display:flex;flex-direction:column;gap:7px;flex:1;}
.st .name{display:flex;justify-content:space-between;align-items:baseline;font-size:15px;font-weight:700;letter-spacing:-.01em;}
.st .name .lnk{font-size:12px;color:var(--gray);transition:color .12s;}
.st .card:hover .name .lnk{color:var(--red);}
.st .body p{font-size:12px;color:var(--gray);line-height:1.5;}
.st .meta{margin-top:auto;padding-top:10px;display:flex;gap:6px;flex-wrap:wrap;}
.st .tag{border:1px solid var(--hair);padding:3px 8px;font-size:9.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--gray);}
.st .tag.live{border-color:#1f9d3a;color:#1f9d3a;}

/* STARTER PACK — bill of materials */
.bom .bhead{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:10px 14px;border-bottom:1px solid var(--line);background:#fafafa;font-size:10px;letter-spacing:.12em;text-transform:uppercase;color:var(--gray);flex-wrap:wrap;}
.bom .bhead b{color:var(--ink);}
.bom .row{display:grid;grid-template-columns:74px 190px 1fr 96px;border-bottom:1px solid var(--hair);transition:background .12s;}
.bom .row:hover{background:#fafafa;}
.bom .row>div{padding:13px 14px;font-size:12.5px;line-height:1.5;}
.bom .row .ref{color:var(--red);font-weight:700;font-size:11px;letter-spacing:.06em;}
.bom .row .mod{font-weight:700;}
.bom .row .cont{color:var(--gray);}
.bom .row .stat{font-size:10px;letter-spacing:.1em;text-transform:uppercase;color:var(--gray);text-align:right;}
.bom .bfoot{display:flex;justify-content:space-between;align-items:center;gap:14px;padding:13px 14px;border-top:1px solid var(--line);flex-wrap:wrap;}
.bom .bfoot p{font-size:11.5px;color:var(--gray);letter-spacing:.02em;}

/* CLIENTS */
.cl{display:flex;flex-wrap:wrap;gap:8px;margin-top:4px;}
.cl .t{border:1px solid var(--line);padding:7px 12px;font-size:12px;letter-spacing:.04em;transition:background .12s,color .12s;cursor:default;}
.cl .t:hover{background:var(--ink);color:var(--bg);}

/* CONTACT */
.contact{display:grid;grid-template-columns:1fr 1fr;border:1px solid var(--line);}
.contact .left{padding:26px 24px;border-right:1px solid var(--line);}
.contact .left h3{font-size:clamp(24px,3.4vw,40px);font-weight:800;letter-spacing:-.02em;text-transform:uppercase;line-height:.98;}
.contact .left p{font-size:13px;color:var(--gray);margin:14px 0 20px;line-height:1.55;}
.contact .direct a{display:flex;justify-content:space-between;align-items:center;padding:11px 0;border-top:1px solid var(--hair);font-size:13px;transition:padding-left .12s,color .12s;}
.contact .direct a:first-child{border-top:0;}
.contact .direct a:hover{padding-left:7px;color:var(--red);}
.contact .right{padding:26px 24px;}
form .field{margin-bottom:14px;}
form label{display:block;font-size:10px;letter-spacing:.12em;text-transform:uppercase;color:var(--gray);margin-bottom:6px;}
form input,form textarea{width:100%;background:var(--bg);border:1px solid var(--line);color:var(--ink);
  font-family:inherit;font-size:14px;padding:11px 12px;transition:box-shadow .12s,border-color .12s;}
form input:focus,form textarea:focus{outline:none;box-shadow:inset 0 0 0 2px var(--red);border-color:var(--red);}
form textarea{resize:vertical;min-height:90px;}
form .frow{display:grid;grid-template-columns:1fr 1fr;gap:14px;}
form button{width:100%;}
form .note{font-size:11px;color:var(--gray);margin-top:10px;letter-spacing:.03em;}

footer{border-top:1px solid var(--line);margin-top:0;}
footer .in{max-width:1120px;margin:0 auto;padding:18px 28px;display:flex;justify-content:space-between;flex-wrap:wrap;gap:10px;font-size:10.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--gray);}

@media (prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important;scroll-behavior:auto;}}
@media (max-width:820px){
  .bar .nav{display:flex;gap:0;}
  .bar .nav a{padding:6px 8px;font-size:10px;letter-spacing:.05em;}
  .bar .clock{display:none;}
  .specs{grid-template-columns:1fr 1fr;}
  .specs .cell{border-bottom:1px solid var(--hair);}
  .do,.gal{grid-template-columns:1fr 1fr;}
  .st{grid-template-columns:1fr 1fr;}
  .bom .row{grid-template-columns:64px 140px 1fr 82px;}
  .contact{grid-template-columns:1fr;}
  .contact .left{border-right:0;border-bottom:1px solid var(--line);}
}
@media (max-width:520px){
  .do,.gal{grid-template-columns:1fr;}
  .st{grid-template-columns:1fr;}
  .bom .row{display:block;padding:11px 0;}
  .bom .row>div{padding:2px 14px;}
  .bom .row .stat{text-align:left;}
  form .frow{grid-template-columns:1fr;gap:0;}
  .xp,.xp tbody,.xp tr,.xp td{display:block;width:100%;}
  .xp thead{display:none;}
  .xp td{border-bottom:0;padding:2px 14px;}
  .xp td.m{margin-top:6px;}
  .xp td.d{margin-top:4px;}
  .xp tr{border-bottom:1px solid var(--line);padding:12px 0;}
}
