/* ============================================================
   mock.css — the live website previews.
   One markup shape, seven layout archetypes. Each project
   passes its own type and colour in as custom properties.
   ============================================================ */
.mk{
  --mk-pad:clamp(18px,2.4vw,42px);
  position:relative;background:var(--mk-bg);color:var(--mk-fg);
  border:1px solid color-mix(in srgb,var(--mk-hair) 100%,transparent);
  border-radius:var(--radius);overflow:hidden;isolation:isolate;
  container-type:inline-size;
  transition:transform .8s var(--ease);
}
.mk-chrome{display:flex;align-items:center;gap:7px;padding:10px 14px;
  background:color-mix(in srgb,var(--mk-fg) 8%,var(--mk-bg));border-bottom:1px solid var(--mk-hair)}
.mk-chrome i{width:7px;height:7px;border-radius:50%;background:color-mix(in srgb,var(--mk-fg) 26%,transparent)}
.mk-url{margin-left:12px;font:400 10.5px/1 var(--f-mono);letter-spacing:.06em;color:var(--mk-dim)}
.mk-url::before{content:'concept / '}
.mk-body{position:relative;display:grid;gap:0;padding:var(--mk-pad);min-height:clamp(300px,38vw,560px);
  grid-template-rows:auto 1fr auto;align-content:start}

.mk-photo{position:absolute;inset:0;z-index:0;overflow:hidden}
.mk-photo img{width:100%;height:100%;object-fit:cover;opacity:.3;filter:saturate(.75) contrast(1.05)}
.mk-photo::after{content:'';position:absolute;inset:0;
  background:linear-gradient(160deg,color-mix(in srgb,var(--mk-bg) 72%,transparent),color-mix(in srgb,var(--mk-bg) 96%,transparent) 62%)}
.mk-photo--drawn{background:
  radial-gradient(120% 90% at 82% 8%,color-mix(in srgb,var(--mk-accent) 22%,transparent),transparent 62%),
  repeating-linear-gradient(114deg,color-mix(in srgb,var(--mk-fg) 4%,transparent) 0 1px,transparent 1px 26px),
  linear-gradient(180deg,color-mix(in srgb,var(--mk-fg) 5%,transparent),transparent 70%)}
.mk-photo--drawn::after{background:none}

.mk-nav,.mk-hero,.mk-feats{position:relative;z-index:1}
.mk-nav{display:flex;align-items:center;justify-content:space-between;gap:14px;
  padding-bottom:clamp(14px,1.8vw,26px);border-bottom:1px solid var(--mk-hair);flex-wrap:wrap}
.mk-logo{font-family:var(--mk-disp);font-variation-settings:var(--mk-disp-var);
  font-size:clamp(13px,1.35cqw,19px);letter-spacing:var(--mk-track)}
.mk-links{display:flex;gap:clamp(10px,1.4cqw,22px);font-family:var(--mk-body);
  font-size:clamp(9.5px,.85cqw,12px);color:var(--mk-dim)}
.mk-navcta{font-family:var(--mk-body);font-size:clamp(9px,.8cqw,11.5px);
  padding:7px 13px;border:1px solid var(--mk-accent);color:var(--mk-accent);border-radius:var(--mk-radius)}

.mk-hero{display:grid;gap:clamp(10px,1.3vw,20px);align-content:center;
  padding-block:clamp(26px,4.5vw,72px);max-width:34ch}
.mk-eyebrow{font-family:var(--f-mono);font-size:clamp(8.5px,.72cqw,10.5px);letter-spacing:.16em;
  text-transform:uppercase;color:var(--mk-accent)}
.mk-h{font-family:var(--mk-disp);font-variation-settings:var(--mk-disp-var);
  font-size:clamp(26px,5.1cqw,62px);line-height:.98;letter-spacing:var(--mk-track);text-wrap:balance}
.mk-sub{font-family:var(--mk-body);font-size:clamp(11px,1.05cqw,15px);line-height:1.5;
  color:color-mix(in srgb,var(--mk-fg) 78%,var(--mk-bg));max-width:38ch}
.mk-ctas{display:flex;flex-wrap:wrap;gap:10px;margin-top:6px;font-family:var(--mk-body);
  font-size:clamp(9.5px,.85cqw,12px)}
.mk-btn{padding:10px 17px;background:var(--mk-accent);border-radius:var(--mk-radius);
  color:color-mix(in srgb,var(--mk-bg) 88%,#000)}
.mk-btn2{padding:10px 17px;border:1px solid var(--mk-hair);border-radius:var(--mk-radius);color:var(--mk-dim)}
.mk-feats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1px;
  border-top:1px solid var(--mk-hair);padding-top:clamp(12px,1.6vw,20px)}
.mk-feat{display:flex;align-items:center;gap:9px;font-family:var(--mk-body);
  font-size:clamp(9.5px,.82cqw,12px);color:var(--mk-dim);line-height:1.35}
.mk-feat i{width:5px;height:5px;flex:none;background:var(--mk-accent);border-radius:var(--mk-radius)}
@container (max-width:520px){.mk-feats{grid-template-columns:1fr;gap:8px}.mk-links{display:none}}

/* ---- Archetype: editorial — centred, monumental, air ------- */
.mk--editorial .mk-hero{max-width:26ch;justify-items:center;text-align:center;margin-inline:auto;
  padding-block:clamp(40px,7vw,110px)}
.mk--editorial .mk-h{font-size:clamp(30px,5.8cqw,74px);line-height:.94}
.mk--editorial .mk-ctas{justify-content:center}
.mk--editorial .mk-photo img{opacity:.42}

/* ---- Archetype: technical — left rail, instrument feel ----- */
.mk--technical .mk-body{grid-template-columns:minmax(0,1fr) clamp(96px,15cqw,190px);
  grid-template-areas:'nav nav' 'hero rail' 'feats feats';column-gap:clamp(16px,2.4vw,34px)}
.mk--technical .mk-nav{grid-area:nav}
.mk--technical .mk-hero{grid-area:hero;max-width:30ch}
.mk--technical .mk-feats{grid-area:feats;grid-template-columns:repeat(3,1fr)}
.mk--technical .mk-body::after{content:'ARRAY  8.4 kW\A YIELD  13,910 kWh\A PAYBACK  6.4 yr\A GRID  PNM';
  white-space:pre;grid-area:rail;align-self:center;position:relative;z-index:1;
  font:400 clamp(8px,.72cqw,10px)/2.2 var(--f-mono);letter-spacing:.08em;color:var(--mk-accent);
  border-left:1px solid var(--mk-hair);padding-left:14px}
.mk--technical .mk-h{font-size:clamp(24px,4.3cqw,50px)}
@container (max-width:560px){.mk--technical .mk-body{grid-template-columns:1fr;
  grid-template-areas:'nav' 'hero' 'feats'}.mk--technical .mk-body::after{display:none}}

/* ---- Archetype: swiss — the grid is allowed to show -------- */
.mk--swiss .mk-body{padding:0}
.mk--swiss .mk-nav{padding:var(--mk-pad);border-bottom:1px solid var(--mk-hair)}
.mk--swiss .mk-hero{padding:var(--mk-pad);max-width:42ch;border-bottom:1px solid var(--mk-hair);
  background-image:repeating-linear-gradient(90deg,var(--mk-hair) 0 1px,transparent 1px 16.666%)}
.mk--swiss .mk-h{font-size:clamp(22px,4cqw,46px);line-height:1.02}
.mk--swiss .mk-feats{padding:var(--mk-pad);border-top:0}
.mk--swiss .mk-photo img{opacity:.16}
.mk--swiss .mk-btn{color:var(--mk-bg)}

/* ---- Archetype: brutal — slabs, no gutters ----------------- */
.mk--brutal .mk-body{padding:0;gap:0}
.mk--brutal .mk-nav{padding:14px var(--mk-pad);background:var(--mk-fg);color:var(--mk-bg);border:0}
.mk--brutal .mk-nav .mk-links{color:color-mix(in srgb,var(--mk-bg) 70%,var(--mk-fg))}
.mk--brutal .mk-navcta{background:var(--mk-accent);color:var(--mk-bg);border-color:var(--mk-accent)}
.mk--brutal .mk-hero{padding:var(--mk-pad);max-width:none;gap:12px}
.mk--brutal .mk-h{font-size:clamp(38px,9.4cqw,116px);line-height:.78;text-transform:uppercase}
.mk--brutal .mk-eyebrow{color:var(--mk-accent)}
.mk--brutal .mk-feats{grid-template-columns:repeat(3,1fr);gap:0;border-top:2px solid var(--mk-fg)}
.mk--brutal .mk-feat{padding:16px var(--mk-pad);border-right:1px solid var(--mk-hair);text-transform:uppercase;
  font-size:clamp(8.5px,.7cqw,10px);letter-spacing:.08em}
.mk--brutal .mk-feat:last-child{border-right:0}
.mk--brutal .mk-photo--drawn{background:repeating-linear-gradient(0deg,color-mix(in srgb,var(--mk-fg) 6%,transparent) 0 2px,transparent 2px 9px)}

/* ---- Archetype: warm — curves, firelight, offset ----------- */
.mk--warm .mk-hero{max-width:30ch;margin-left:clamp(0px,4cqw,60px)}
.mk--warm .mk-h{font-size:clamp(28px,5.3cqw,66px);line-height:.96}
.mk--warm .mk-feats{gap:12px}
.mk--warm .mk-feat{padding:13px 16px;border:1px solid var(--mk-hair);border-radius:var(--mk-radius)}
.mk--warm .mk-photo--drawn{background:
  radial-gradient(80% 60% at 24% 78%,color-mix(in srgb,var(--mk-accent) 40%,transparent),transparent 70%),
  radial-gradient(60% 50% at 88% 12%,color-mix(in srgb,var(--mk-accent) 18%,transparent),transparent 70%)}

/* ---- Archetype: kinetic — broken grid, overlap, tilt ------- */
.mk--kinetic .mk-hero{max-width:28ch;transform:rotate(-1.4deg)}
.mk--kinetic .mk-h{font-size:clamp(30px,6.2cqw,78px);line-height:.9}
.mk--kinetic .mk-navcta{background:var(--mk-accent);color:#fff;border-color:var(--mk-accent)}
.mk--kinetic .mk-btn2{border-color:var(--mk-fg)}
.mk--kinetic .mk-feats{gap:10px;grid-template-columns:repeat(3,1fr)}
.mk--kinetic .mk-feat{padding:11px 15px;background:var(--mk-fg);color:var(--mk-bg);border-radius:var(--mk-radius)}
.mk--kinetic .mk-feat i{background:var(--mk-accent)}
.mk--kinetic .mk-feat:nth-child(2){transform:rotate(1.6deg)}
.mk--kinetic .mk-feat:nth-child(3){transform:rotate(-1deg)}
.mk--kinetic .mk-photo--drawn{background:
  radial-gradient(42% 42% at 78% 26%,var(--mk-accent) 0 40%,transparent 41%),
  radial-gradient(30% 30% at 22% 82%,#2b757c 0 40%,transparent 41%);opacity:.5}

/* ---- Archetype: cinema — full-bleed, nearly still ---------- */
.mk--cinema .mk-hero{max-width:24ch;align-self:end;padding-block:clamp(48px,9vw,140px) 0}
.mk--cinema .mk-h{font-size:clamp(30px,5.6cqw,72px);line-height:1}
.mk--cinema .mk-feats{grid-template-columns:repeat(3,1fr);border-top-color:color-mix(in srgb,var(--mk-fg) 22%,transparent)}
.mk--cinema .mk-photo img{opacity:.5}
.mk--cinema .mk-photo--drawn{background:
  linear-gradient(178deg,color-mix(in srgb,var(--mk-accent) 16%,transparent),transparent 44%),
  radial-gradient(140% 70% at 50% 118%,color-mix(in srgb,var(--mk-fg) 12%,transparent),transparent 60%)}

/* ---- Live variants: cursor-reactive tilt ------------------- */
.mk--live{will-change:transform}
@media (prefers-reduced-motion:reduce){.mk--live{transform:none!important}.mk--kinetic .mk-hero,.mk--kinetic .mk-feat{transform:none}}

/* ---- Archetype: dated — the small-business website of 2009 --
   Used only in the before/after. Every choice here is a real
   pattern: bevelled nav, blue underlined links, a paragraph of
   throat-clearing above the fold, and a wall of badges. -------- */
.mk--dated{--mk-pad:clamp(14px,1.8vw,26px);
  background:linear-gradient(180deg,#ffffff 0%,#e6ebf0 100%)}
.mk--dated .mk-chrome{background:#dfe4e9;border-bottom:1px solid #b9c3cd}
.mk--dated .mk-chrome i{background:#a9b4bf}
.mk--dated .mk-url{color:#5d6b7a}
.mk--dated .mk-body{min-height:0;gap:0;
  background:repeating-linear-gradient(0deg,transparent 0 26px,rgba(0,0,0,.012) 26px 27px)}
.mk--dated .mk-nav{display:grid;justify-items:center;gap:8px;text-align:center;
  padding-bottom:10px;border-bottom:2px solid #1a4f8a}
.mk--dated .mk-logo{font-family:Georgia,'Times New Roman',serif;font-weight:700;
  font-size:clamp(15px,2.1cqw,27px);color:#1a4f8a;letter-spacing:0;
  text-shadow:1px 1px 0 rgba(255,255,255,.9)}
.mk--dated .mk-links{display:flex;gap:0;background:linear-gradient(180deg,#4a80b8,#1a4f8a);
  border-radius:4px 4px 0 0;overflow:hidden;color:#fff;margin-top:2px}
.mk--dated .mk-links span{padding:6px clamp(8px,1.1cqw,16px);font-size:clamp(8.5px,.78cqw,11px);
  border-right:1px solid rgba(255,255,255,.28);text-decoration:underline}
.mk--dated .mk-links span:last-child{border-right:0}
.mk--dated .mk-navcta{position:absolute;top:calc(var(--mk-pad) + 4px);right:var(--mk-pad);
  background:linear-gradient(180deg,#ffd35a,#e8a317);border:1px solid #b8811a;border-radius:4px;
  color:#43310c;font-weight:700;font-size:clamp(8.5px,.76cqw,11px);padding:6px 11px;
  box-shadow:0 1px 2px rgba(0,0,0,.28)}
.mk--dated .mk-hero{max-width:none;padding-block:clamp(12px,1.6vw,20px);gap:9px;text-align:center;
  justify-items:center}
.mk--dated .mk-eyebrow{font-family:Georgia,serif;font-style:italic;text-transform:none;
  letter-spacing:0;font-size:clamp(11px,1.1cqw,16px);color:#b3261e}
.mk--dated .mk-h{font-family:Arial,Helvetica,sans-serif;font-weight:700;font-variation-settings:normal;
  font-size:clamp(13px,1.55cqw,22px);line-height:1.25;letter-spacing:0;color:#1e2733;max-width:44ch}
.mk--dated .mk-sub{font-size:clamp(8.5px,.78cqw,11.5px);line-height:1.45;color:#3d4753;
  max-width:none;text-align:justify}
.mk--dated .mk-ctas{justify-content:center;gap:8px}
.mk--dated .mk-btn{background:linear-gradient(180deg,#5aa02c,#3d7a1c);border:1px solid #2f5f14;
  border-radius:4px;color:#fff;font-weight:700;font-size:clamp(8.5px,.76cqw,11px);
  padding:8px 14px;box-shadow:0 1px 2px rgba(0,0,0,.3)}
.mk--dated .mk-btn2{color:#1a4f8a;text-decoration:underline;border:0;padding:8px 4px;
  font-size:clamp(8.5px,.76cqw,11px)}
.mk--dated .mk-feats{grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;
  border-top:1px dashed #b9c3cd;margin-top:6px;padding-top:10px}
.mk--dated .mk-feat{gap:6px;font-size:clamp(8px,.72cqw,10.5px);color:#3d4753;
  background:#fdfbe8;border:1px solid #e0d9a8;border-radius:3px;padding:5px 7px}
.mk--dated .mk-feat i{width:6px;height:6px;background:#b3261e;border-radius:1px}
@container (max-width:520px){.mk--dated .mk-links{display:flex;flex-wrap:wrap}
  .mk--dated .mk-feats{grid-template-columns:repeat(2,1fr)}}

/* Real client work. The chrome bar labels every preview "concept /" so the
   invented studios can never be mistaken for customers — a live client gets
   its own domain back. */
.mk--client .mk-url::before{content:''}
/* A real shop is the proof — let the photograph carry more of the frame
   than the invented studios get. */
.mk--client .mk-photo img{opacity:.62}
.mk--client.mk--cinema .mk-photo::after{background:linear-gradient(120deg,color-mix(in srgb,var(--mk-bg) 82%,transparent),color-mix(in srgb,var(--mk-bg) 30%,transparent) 70%)}
/* With the photograph turned up, the small type needs its own footing. */
.mk--client .mk-links span,.mk--client .mk-feat,.mk--client .mk-logo,.mk--client .mk-sub{
  text-shadow:0 1px 12px rgba(0,0,0,.72)}
.mk--client .mk-links span,.mk--client .mk-feat{color:color-mix(in srgb,var(--mk-fg) 80%,transparent)}
