/* ============================================================
   CASE STUDY — MOBILE (390px fixed canvas)
   Values traced to Figma file kswfK4pEmcAqyCK11PqS1c
   ============================================================ */
:root{
  --brand:#ff6600; --green:#35ff83; --paper:#f7faff; --blue:#7eaee9;
  --navy:#0e1236; --page:#0e1236;
}
*{margin:0;padding:0;box-sizing:border-box}
html,body{background:var(--page)}
body{font-family:'Jost',system-ui,-apple-system,'Segoe UI',sans-serif;-webkit-font-smoothing:antialiased}
img{display:block;border:0}
a{text-decoration:none;color:inherit}

.mcase{position:relative;width:390px;margin:0 auto;background:var(--page);overflow:hidden}

/* ---------- nav ---------- */
.mnav{position:absolute;left:0;top:0;width:390px;height:64px;background:rgba(126,174,233,0.14);
  backdrop-filter:blur(7.65px);-webkit-backdrop-filter:blur(7.65px);overflow:hidden;z-index:40}
.mnav-brand{position:absolute;font-weight:700;font-size:12px;line-height:normal;color:#fff;white-space:nowrap}
.mnav-brand span{color:var(--brand)}
/* background/border/padding must be reset explicitly: this is a <button>, and
   the case-study pages do not load style.css (which carries the global button
   reset). Without this the UA default ButtonFace chrome shows as a grey box
   behind the green icon. Matches .ml-menu in landing-mobile.css. */
.mnav-icon{position:absolute;width:28px;height:28px;background:none;background-color:transparent;
  border:0;padding:0;-webkit-appearance:none;appearance:none;box-shadow:none;border-radius:0;
  color:inherit;font:inherit;outline:none}
.mnav-icon img{width:100%;height:100%}

/* ---------- sections ---------- */
.msec{position:absolute;left:0;width:390px;overflow:hidden}
.msec-tint{background:rgba(126,174,233,0.14)}

/* ---------- intro ---------- */
.mback{position:absolute;font-style:italic;font-weight:400;font-size:13px;line-height:1.3;
  color:var(--brand);transition:color .18s ease}
.mback::before{content:"";position:absolute;left:0;right:0;top:-14px;height:44px}
.mback:hover,.mback:focus-visible{color:#ff8a3d}
.mkicker{position:absolute;font-weight:700;font-size:14px;line-height:1.25;color:var(--green);white-space:pre-wrap}
.mkicker .o{color:var(--brand)}
.mkicker .w{color:#fff}
.mtitle{position:absolute;font-weight:900;font-size:34px;line-height:1.08;color:#fff}
.mtitle .o{color:var(--brand)}
.mdesc{position:absolute;font-weight:500;font-size:15px;line-height:1.45;color:#fff}
.mdesc .hl{font-weight:800;font-style:italic;color:var(--green)}
.mhero{position:absolute;border-radius:10px;overflow:hidden}
.mhero img{position:absolute;left:0;top:0;width:100%;height:100%;object-fit:cover;max-width:none}

/* ---------- proof ---------- */
.mproof{position:absolute;border:1px solid rgba(126,174,233,0.22);border-radius:9px;overflow:hidden}
.mproof-v{position:absolute;font-family:'Racing Sans One',cursive;font-weight:400;font-size:20px;line-height:normal}
.mproof-l{position:absolute;font-weight:700;font-size:12px;line-height:1.3;color:#fff}
.mproof-l p+p{margin-top:0}

/* ---------- details ---------- */
.mwin{position:absolute;background:#1a245c;border:1px solid rgba(126,174,233,0.28);border-radius:10px;overflow:hidden}
.mwin-t{position:absolute;font-family:'Racing Sans One',cursive;font-weight:400;font-size:20px;
  line-height:normal;color:var(--brand);white-space:nowrap}
.mwin-b{position:absolute;font-weight:700;font-size:18px;line-height:1.25;color:#fff}
.mwin-b .g{color:var(--green)}
.mmod{position:absolute;border-radius:9px;overflow:hidden}
.mmod-l{position:absolute;font-weight:700;font-size:12px;line-height:normal;white-space:nowrap}
.mmod-b{position:absolute;font-weight:500;font-size:14px;line-height:1.45;color:#fff}

/* ---------- gallery ---------- */
.mgal-h{position:absolute;font-weight:700;font-size:30px;line-height:1.1;color:#fff}
.mgal-h .big{font-weight:700;line-height:1.1}
.mgal-h .small{font-weight:300;font-size:12.004px;line-height:1.1}
.mgal-b{position:absolute;font-weight:500;font-size:15px;line-height:1.45;color:#fff}
.mtile{position:absolute;overflow:hidden}
.mtile img{position:absolute;left:0;top:0;width:100%;height:100%;max-width:none}

/* ---------- next project ---------- */
.mnext{position:absolute;display:block;background:#57291f;border-radius:10px;overflow:hidden;
  transition:filter .2s ease, transform .2s ease}
.mnext:hover{filter:brightness(1.15);transform:translateY(-2px)}
.mnext-l{position:absolute;font-weight:700;font-size:12px;line-height:normal;color:var(--brand)}
.mnext-t{position:absolute;font-weight:700;font-size:18px;line-height:1.25;color:#fff}
.mnext-a{position:absolute;font-family:'Racing Sans One',cursive;font-weight:400;font-size:16px;
  line-height:normal;color:var(--green);white-space:nowrap}

/* ---------- footer ---------- */
.mfoot{position:absolute;left:0;width:390px;overflow:hidden}
.mcopy{position:absolute;font-weight:500;font-size:11px;line-height:normal;color:#fff;white-space:nowrap}
.mhome{position:absolute;font-weight:700;font-size:11px;line-height:normal;color:var(--brand);
  white-space:nowrap;text-align:right}

.sr-only-skip{position:absolute;left:-9999px;top:0;z-index:100;background:#35ff83;color:#0e1236;
  padding:8px 14px;border-radius:6px;font-weight:700;font-size:13px}
.sr-only-skip:focus{left:12px;top:12px}
:focus-visible{outline:3px solid var(--green);outline-offset:2px;border-radius:4px}
@media (prefers-reduced-motion: reduce){*{transition-duration:0ms !important}}

/* ---------- mobile menu (hamburger) ---------- */
.mnav-icon,.ml-menu{cursor:pointer;-webkit-tap-highlight-color:transparent}
.mnav-icon img,.ml-menu img{transition:transform .22s ease}
.mnav-icon.is-open img,.ml-menu.is-open img{transform:none}
.mnav-panel{
  position:absolute;left:0;top:64px;width:390px;z-index:39;
  background:rgba(20,26,64,0.97);
  backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);
  border-bottom:1px solid rgba(126,174,233,0.28);
  box-shadow:0 18px 24px rgba(0,0,0,0.38);
  opacity:0;transform:translateY(-8px);
  transition:opacity .2s ease, transform .2s ease;
}
.mnav-panel.is-open{opacity:1;transform:translateY(0)}
.mnav-list{list-style:none;margin:0;padding:6px 0}
.mnav-item{
  display:block;padding:15px 20px;
  font-weight:700;font-size:16px;line-height:1.2;color:#fff;
  border-left:3px solid transparent;
  transition:color .16s ease,background .16s ease,border-color .16s ease;
}
.mnav-item.is-active{color:var(--brand,#ff6600);border-left-color:var(--brand,#ff6600)}
.mnav-item:hover,.mnav-item:active,.mnav-item:focus-visible{
  color:var(--brand,#ff6600);background:rgba(126,174,233,0.12)}
@media (prefers-reduced-motion: reduce){
  .mnav-panel{transition:none}
  .mnav-icon img,.ml-menu img{transition:none}
}

/* ---------- touch feedback (mobile has no hover state) ---------- */
@media (hover: none){
  .ml-card:active,.mnext:active{transform:scale(.985);filter:brightness(1.12)}
  .ml-gtile:active{filter:brightness(1.25)}
  .ml-ct-btn:active,.ml-btn-solid:active,.ml-btn-outline:active{filter:brightness(1.18)}
  .mback:active,.ml-home:active,.mhome:active{color:#ff8a3d}
}
.ml-card,.ml-gtile,.mnext,.ml-ct-btn,.ml-btn-solid,.ml-btn-outline,.mback,.mhome,.ml-home{
  -webkit-tap-highlight-color:rgba(53,255,131,0.18)}


/* ---------- footer contact row (mobile case studies) ----------
   Desktop and tablet case pages expose email / LinkedIn / resume in the footer.
   On mobile these previously existed only inside the JS-injected hamburger, so a
   reader without JavaScript - including most AI crawlers - saw none of them.
   This row makes all three available in the static HTML. */
.mfoot-links{position:absolute;left:0;top:10px;width:390px;display:flex;
  align-items:center;justify-content:center;gap:9px;line-height:1}
.mfl{font-weight:700;font-size:11px;letter-spacing:1.1px;white-space:nowrap;
  padding:6px 2px;transition:opacity .18s ease}
.mfl.is-green{color:var(--green)}
.mfl.is-blue{color:var(--blue)}
.mfl.is-orange{color:var(--brand)}
.mfl:hover,.mfl:active{opacity:.72}
.mfl-sep{color:rgba(126,174,233,.55);font-size:11px}
