/* ==========================================================================
   KY SCHIEB — PORTFOLIO
   Jeeves design language · dark mode · glowing cyan
   Palette lifted from the Jeeves app shell (app/static/styles.css)
   ========================================================================== */

:root{
  --bg:      #080a12;
  --bg2:     #0d1020;
  --deep:    #05060b;
  --glow:    #141a33;

  --panel:   rgba(255,255,255,.032);
  --panel2:  rgba(255,255,255,.055);
  --line:    rgba(255,255,255,.085);
  --line-hi: rgba(56,232,208,.34);

  --txt:     #eef1f8;
  --dim:     #8b93a7;
  --dimmer:  #5d657a;

  --cy:      #38e8d0;
  --cy-soft: rgba(56,232,208,.14);
  --vi:      #7b6bff;
  --pk:      #ff5fa2;

  --sans: -apple-system, "Segoe UI Variable", "Segoe UI", Inter, system-ui, "Helvetica Neue", Arial, sans-serif;
  --mono: "SF Mono", "Cascadia Mono", "Consolas", "Roboto Mono", ui-monospace, monospace;
}

*{ box-sizing:border-box; -webkit-tap-highlight-color:transparent; }

html{ scroll-behavior:smooth; }

body{
  margin:0;
  min-height:100%;
  color:var(--txt);
  font:15px/1.62 var(--sans);
  background:
    radial-gradient(1200px 700px at 50% -10%, var(--glow) 0%, var(--bg) 55%, var(--deep) 100%);
  background-attachment:fixed;
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
  overflow-x:hidden;
}

/* faint cyan grid, the "console" texture */
body::before{
  content:"";
  position:fixed; inset:0; pointer-events:none; z-index:0;
  background-image:
    linear-gradient(rgba(56,232,208,.030) 1px, transparent 1px),
    linear-gradient(90deg, rgba(56,232,208,.030) 1px, transparent 1px);
  background-size:64px 64px;
  mask-image:radial-gradient(ellipse 90% 60% at 50% 0%, #000 0%, transparent 78%);
  -webkit-mask-image:radial-gradient(ellipse 90% 60% at 50% 0%, #000 0%, transparent 78%);
}

/* a single soft cyan bloom at the top, like the Jeeves orb halo */
body::after{
  content:"";
  position:fixed; top:-260px; left:50%; transform:translateX(-50%);
  width:900px; height:520px; pointer-events:none; z-index:0;
  background:radial-gradient(circle, rgba(56,232,208,.13) 0%, rgba(56,232,208,.04) 45%, transparent 70%);
  filter:blur(30px);
}

.sheet{
  position:relative; z-index:1;
  max-width:960px;
  margin:0 auto;
  padding:64px 40px 72px;
}

/* ==========================================================================
   TYPE
   ========================================================================== */

h1,h2,h3{ margin:0; font-weight:600; letter-spacing:-.01em; }

h1{
  font-size:clamp(2.6rem, 6vw, 3.9rem);
  line-height:1.02;
  letter-spacing:-.035em;
  color:#ffffff;
  text-shadow:
    0 0 26px rgba(56,232,208,.45),
    0 0 64px rgba(56,232,208,.22),
    0 1px 0 rgba(0,0,0,.4);
}

h2{
  font-size:.72rem;
  font-weight:600;
  text-transform:uppercase;
  letter-spacing:.22em;
  color:var(--cy);
  margin:64px 0 22px;
  padding-bottom:12px;
  border-bottom:1px solid var(--line);
  display:flex; align-items:center; gap:12px;
  text-shadow:0 0 18px rgba(56,232,208,.45);
}
h2::before{
  content:"";
  width:7px; height:7px; border-radius:50%;
  background:var(--cy);
  box-shadow:0 0 10px var(--cy), 0 0 22px rgba(56,232,208,.6);
  animation:pulse 2.6s ease-in-out infinite;
  flex:0 0 auto;
}
@keyframes pulse{
  0%,100%{ opacity:.55; transform:scale(.82); }
  50%    { opacity:1;   transform:scale(1.18); }
}

h3{ font-size:1.06rem; letter-spacing:-.005em; }

a{ color:var(--cy); text-decoration:none; transition:color .18s, text-shadow .18s; }
a:hover{ color:#7ff5e4; text-shadow:0 0 14px rgba(56,232,208,.7); }

/* ==========================================================================
   MASTHEAD
   ========================================================================== */

.masthead{
  display:grid;
  grid-template-columns:1fr auto;
  gap:44px;
  align-items:start;
  padding-bottom:40px;
  border-bottom:1px solid var(--line);
  position:relative;
}

/* glowing cyan hairline under the masthead */
.masthead::after{
  content:"";
  position:absolute; left:0; bottom:-1px;
  width:190px; height:1px;
  background:linear-gradient(90deg, var(--cy), transparent);
  box-shadow:0 0 12px rgba(56,232,208,.8);
}

.brandrow{
  display:flex; align-items:center; gap:18px;
  margin-bottom:22px;
}

.orb{
  position:relative;
  width:62px; height:62px; flex:0 0 auto;
  display:grid; place-items:center;
  isolation:isolate;
}
.orb img{
  width:100%; height:100%; border-radius:50%; display:block;
  animation:markGlow 4.2s ease-in-out infinite;
}
@keyframes markGlow{
  0%,100%{ filter:drop-shadow(0 0 7px rgba(56,232,208,.5)) drop-shadow(0 0 18px rgba(56,232,208,.22)); }
  50%    { filter:drop-shadow(0 0 15px rgba(56,232,208,.95)) drop-shadow(0 0 40px rgba(56,232,208,.5)); }
}
.orb .halo{
  position:absolute; inset:-14px; border-radius:50%; z-index:-1;
  background:radial-gradient(circle, rgba(56,232,208,.30) 0%, rgba(56,232,208,.09) 45%, transparent 72%);
  filter:blur(6px);
  animation:haloPulse 4.2s ease-in-out infinite;
}
@keyframes haloPulse{
  0%,100%{ opacity:.55; transform:scale(.94); }
  50%    { opacity:1;   transform:scale(1.08); }
}

.brandtext .eyebrow{
  font:600 .64rem/1 var(--mono);
  letter-spacing:.26em;
  text-transform:uppercase;
  color:var(--dimmer);
}

.role-line{
  margin:12px 0 0;
  font:600 .78rem/1.5 var(--mono);
  letter-spacing:.16em;
  text-transform:uppercase;
  color:var(--cy);
  text-shadow:0 0 16px rgba(56,232,208,.4);
}

.lede{
  margin:18px 0 0;
  max-width:56ch;
  font-size:1.02rem;
  line-height:1.72;
  color:#c3cbdb;
}

.contact{
  font:400 .8rem/2 var(--mono);
  color:var(--dim);
  text-align:right;
  padding:18px 20px;
  border:1px solid var(--line);
  border-radius:14px;
  background:var(--panel);
  backdrop-filter:blur(6px);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.04), 0 0 40px rgba(56,232,208,.05);
  white-space:nowrap;
}
.contact a{ color:#cfd6e4; }
.contact a:hover{ color:var(--cy); }

/* ==========================================================================
   FILM
   ========================================================================== */

.film{
  display:grid;
  grid-template-columns:1.15fr 1fr;
  gap:30px;
  align-items:center;
  padding:26px;
  border:1px solid var(--line);
  border-radius:18px;
  background:linear-gradient(180deg, rgba(255,255,255,.042), rgba(255,255,255,.008));
  box-shadow:0 0 70px rgba(56,232,208,.06);
}

.frame{
  position:relative;
  border-radius:12px;
  overflow:hidden;
  cursor:pointer;
  aspect-ratio:16/9;
  background:#000;
  border:1px solid rgba(56,232,208,.16);
  box-shadow:0 0 40px rgba(56,232,208,.14), inset 0 0 60px rgba(0,0,0,.6);
  transition:box-shadow .3s, border-color .3s;
}
.frame:hover{
  border-color:rgba(56,232,208,.45);
  box-shadow:0 0 60px rgba(56,232,208,.34), inset 0 0 60px rgba(0,0,0,.6);
}
.frame img{
  width:100%; height:100%; object-fit:cover; display:block;
  opacity:.82;
  transition:opacity .3s, transform .5s;
}
.frame:hover img{ opacity:1; transform:scale(1.02); }

.play{
  position:absolute; inset:0;
  display:grid; place-items:center;
  background:radial-gradient(circle at 50% 50%, rgba(4,8,14,.15), rgba(4,8,14,.55));
}
.play i{
  width:70px; height:70px; border-radius:50%;
  border:1.5px solid rgba(56,232,208,.75);
  background:rgba(56,232,208,.10);
  backdrop-filter:blur(3px);
  display:grid; place-items:center;
  box-shadow:0 0 26px rgba(56,232,208,.55), 0 0 70px rgba(56,232,208,.28), inset 0 0 22px rgba(56,232,208,.20);
  animation:playPulse 2.8s ease-in-out infinite;
  transition:transform .25s;
}
.frame:hover .play i{ transform:scale(1.08); }
.play i::after{
  content:"";
  width:0; height:0;
  margin-left:5px;
  border-left:19px solid var(--cy);
  border-top:12px solid transparent;
  border-bottom:12px solid transparent;
  filter:drop-shadow(0 0 10px rgba(56,232,208,.9));
}
@keyframes playPulse{
  0%,100%{ box-shadow:0 0 22px rgba(56,232,208,.45), 0 0 60px rgba(56,232,208,.20), inset 0 0 22px rgba(56,232,208,.16); }
  50%    { box-shadow:0 0 34px rgba(56,232,208,.85), 0 0 96px rgba(56,232,208,.42), inset 0 0 26px rgba(56,232,208,.28); }
}

.tag{
  font:600 .625rem/1 var(--mono);
  letter-spacing:.2em;
  text-transform:uppercase;
  color:var(--cy);
  text-shadow:0 0 14px rgba(56,232,208,.4);
}

.film h3{
  margin:12px 0 12px;
  font-size:1.3rem;
  color:#fff;
  letter-spacing:-.02em;
}
.film p{
  margin:0 0 12px;
  font-size:.885rem;
  line-height:1.7;
  color:#a9b3c6;
}

.shot-cap{
  font:400 .72rem/1.6 var(--mono);
  color:var(--dimmer);
  letter-spacing:.02em;
}

/* ==========================================================================
   DOCUMENT CARDS
   ========================================================================== */

.docs{
  display:grid;
  grid-template-columns:1fr;
  gap:26px;
}

/* the GPA card is a small block of text — keep it from stretching */
.docs .doc:first-child .shot{ max-width:600px; }

.doc{ margin:0; }

.doc figcaption{
  display:flex;
  flex-direction:column;
  gap:3px;
  padding:12px 2px 0;
}

.doc .dt{
  font:600 .68rem/1.3 var(--mono);
  letter-spacing:.16em;
  text-transform:uppercase;
  color:var(--cy);
  text-shadow:0 0 14px rgba(56,232,208,.35);
}

.doc .ds{
  font:400 .74rem/1.5 var(--mono);
  color:var(--dimmer);
}

/* ==========================================================================
   EDUCATION
   ========================================================================== */

.edu{
  display:grid;
  grid-template-columns:1fr .85fr;
  gap:34px;
  align-items:start;
  padding:28px;
  border:1px solid var(--line);
  border-radius:18px;
  background:linear-gradient(180deg, rgba(56,232,208,.055), rgba(255,255,255,.008));
  box-shadow:0 0 70px rgba(56,232,208,.07);
}

.honor{
  display:inline-block;
  font:700 .625rem/1 var(--mono);
  letter-spacing:.22em;
  text-transform:uppercase;
  color:#04121a;
  background:linear-gradient(180deg, #7ff5e4, var(--cy));
  padding:7px 13px;
  border-radius:999px;
  margin-bottom:14px;
  box-shadow:0 0 22px rgba(56,232,208,.65), 0 0 50px rgba(56,232,208,.3);
}

.edu h3{
  font-size:1.34rem;
  color:#fff;
  letter-spacing:-.025em;
  line-height:1.25;
}

.edu .where{ margin:8px 0 14px; }

.edu p{
  margin:0 0 12px;
  font-size:.885rem;
  line-height:1.7;
  color:#a9b3c6;
}

.edu-facts{
  margin:20px 0 0;
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:1px;
  background:var(--line);
  border:1px solid var(--line);
  border-radius:12px;
  overflow:hidden;
}
.edu-facts > div{
  background:rgba(8,10,18,.55);
  padding:13px 15px;
}
.edu-facts dt{
  font:600 .60rem/1.4 var(--mono);
  letter-spacing:.13em;
  text-transform:uppercase;
  color:var(--dimmer);
}
.edu-facts dd{
  margin:6px 0 0;
  font-size:.94rem;
  font-weight:600;
  color:#fff;
}
.edu-facts dd.gpa{
  color:var(--cy);
  font-size:1.15rem;
  text-shadow:0 0 18px rgba(56,232,208,.6);
}

.edu-note{
  padding:18px 20px;
  border-left:2px solid rgba(56,232,208,.45);
  background:rgba(56,232,208,.04);
  border-radius:0 10px 10px 0;
}
.edu-note p{
  margin:0;
  font-size:.845rem;
  line-height:1.7;
  color:#a9b3c6;
}

.shot{
  border:1px solid var(--line);
  border-radius:12px;
  overflow:hidden;
  cursor:pointer;
  background:#000;
  transition:border-color .25s, box-shadow .25s;
  margin-bottom:10px;
}
.shot:hover{
  border-color:var(--line-hi);
  box-shadow:0 0 34px rgba(56,232,208,.25);
}
.shot img{ width:100%; display:block; }

/* ==========================================================================
   CERTIFICATIONS
   ========================================================================== */

.certs{
  display:grid;
  grid-template-columns:repeat(3, 1fr);
  gap:1px;
  background:var(--line);
  border:1px solid var(--line);
  border-radius:16px;
  overflow:hidden;
}
.cert{
  background:rgba(255,255,255,.026);
  padding:18px 18px 17px;
  display:flex;
  flex-direction:column;
  gap:7px;
  transition:background .22s;
  position:relative;
}
.cert:hover{ background:rgba(56,232,208,.075); }
.cert .t{
  font-size:.845rem;
  font-weight:600;
  line-height:1.4;
  color:#e6ebf5;
}
.cert .s{
  font:400 .66rem/1.4 var(--mono);
  letter-spacing:.09em;
  text-transform:uppercase;
  color:var(--dimmer);
}

/* ==========================================================================
   BUILT BY ME
   ========================================================================== */

.built-lede{
  margin:-6px 0 20px;
  max-width:640px;
  font-size:.9rem;
  line-height:1.65;
  color:var(--dim);
}

.built{
  display:grid;
  grid-template-columns:repeat(3, 1fr);
  gap:1px;
  background:var(--line);
  border:1px solid var(--line);
  border-radius:16px;
  overflow:hidden;
}

.site{
  background:rgba(255,255,255,.026);
  padding:20px 19px 19px;
  display:flex;
  flex-direction:column;
  gap:8px;
  text-decoration:none;
  position:relative;
  transition:background .22s;
}
.site::before{
  content:"";
  position:absolute;
  inset:0 auto 0 0;
  width:2px;
  background:var(--cy);
  opacity:0;
  transition:opacity .22s;
}
.site:hover{ background:rgba(56,232,208,.075); }
.site:hover::before{ opacity:1; }

.site .sn{
  font-size:.95rem;
  font-weight:600;
  letter-spacing:-.01em;
  color:#eef1f8;
}
.site .su{
  font:400 .66rem/1.4 var(--mono);
  letter-spacing:.07em;
  color:var(--cy);
  word-break:break-all;
}
.site .sd{
  font-size:.76rem;
  line-height:1.55;
  color:var(--dim);
  margin-top:2px;
}
.site{ cursor:default; }
a.site{ cursor:pointer; }
.site .sa{
  margin-top:auto;
  padding-top:10px;
  border-top:1px solid rgba(255,255,255,.06);
  font:400 .66rem/1.5 var(--mono);
  letter-spacing:.03em;
  color:var(--dimmer);
}

/* --- console proof shot --- */

.proof{
  margin:18px 0 0;
  display:grid;
  grid-template-columns:1fr;
  gap:10px;
}
.proof .shot{ margin-bottom:0; border-radius:14px; }
.proof figcaption{
  display:flex;
  flex-direction:column;
  gap:3px;
  padding-left:2px;
}
.proof .dt{
  font:600 .68rem/1.3 var(--mono);
  letter-spacing:.16em;
  text-transform:uppercase;
  color:var(--cy);
}
.proof .ds{
  font:400 .74rem/1.5 var(--mono);
  letter-spacing:.02em;
  color:var(--dimmer);
}

/* ==========================================================================
   FOOTER
   ========================================================================== */

.foot{
  margin-top:66px;
  padding-top:26px;
  border-top:1px solid var(--line);
  display:flex;
  justify-content:space-between;
  align-items:flex-end;
  gap:20px;
  font:400 .78rem/1.9 var(--mono);
  color:var(--dim);
  position:relative;
}
.foot::before{
  content:"";
  position:absolute; left:0; top:-1px;
  width:120px; height:1px;
  background:linear-gradient(90deg, var(--cy), transparent);
  box-shadow:0 0 12px rgba(56,232,208,.8);
}
.foot strong{ color:#fff; font-weight:600; letter-spacing:.04em; }
.foot a{ color:#cfd6e4; }

/* ==========================================================================
   LIGHTBOX
   ========================================================================== */

.lb{
  position:fixed; inset:0; z-index:100;
  display:none;
  place-items:center;
  padding:5vh 4vw;
  background:rgba(4,6,12,.90);
  backdrop-filter:blur(14px);
}
.lb.on{ display:grid; }

.lb .x{
  position:absolute; top:22px; right:30px;
  font-size:2.1rem; line-height:1;
  color:var(--dim);
  cursor:pointer;
  transition:color .18s, text-shadow .18s;
  user-select:none;
}
.lb .x:hover{ color:var(--cy); text-shadow:0 0 18px rgba(56,232,208,.8); }

#lbBody{ max-width:min(1100px, 94vw); max-height:88vh; display:grid; place-items:center; }
#lbBody img{
  max-width:100%; max-height:88vh;
  border-radius:12px;
  border:1px solid rgba(56,232,208,.28);
  box-shadow:0 0 80px rgba(56,232,208,.28);
}
#lbBody video{
  width:min(1100px, 92vw);
  max-height:88vh;
  border-radius:12px;
  border:1px solid rgba(56,232,208,.30);
  box-shadow:0 0 90px rgba(56,232,208,.32);
  background:#000;
}
#lbBody .note{
  font:400 .9rem/1.7 var(--mono);
  color:var(--dim);
  text-align:center;
  max-width:46ch;
}

/* ==========================================================================
   RESPONSIVE
   ========================================================================== */

@media (max-width:860px){
  .sheet{ padding:44px 22px 56px; }
  .masthead{ grid-template-columns:1fr; gap:26px; }
  .contact{ text-align:left; white-space:normal; }
  .metrics{ grid-template-columns:1fr 1fr; }
  .film{ grid-template-columns:1fr; gap:22px; padding:20px; }
  .edu{ grid-template-columns:1fr; padding:22px; }
  .edu-facts{ grid-template-columns:1fr; }
  .certs{ grid-template-columns:1fr 1fr; }
  .built{ grid-template-columns:1fr; }
  .job{ grid-template-columns:1fr; gap:8px; }
  .when{ padding-top:0; }
  .foot{ flex-direction:column; align-items:flex-start; gap:10px; }
}

@media (max-width:520px){
  .metrics{ grid-template-columns:1fr; }
  .certs{ grid-template-columns:1fr; }
  .built{ grid-template-columns:1fr; }
  h1{ font-size:2.3rem; }
}

/* ==========================================================================
   PRINT — dark pages, colours forced
   ========================================================================== */

@page{ size:Letter; margin:0.55in; }

@media print{
  *{
    -webkit-print-color-adjust:exact !important;
    print-color-adjust:exact !important;
  }
  body{
    background:#080a12 !important;
    font-size:8.2pt;
    line-height:1.46;
  }
  body::before, body::after{ display:none; }
  .sheet{ padding:0; max-width:none; }

  /* --- masthead --- */
  .masthead{ padding-bottom:11pt; gap:22pt; }
  .brandrow{ margin-bottom:9pt; }
  .orb{ width:38pt; height:38pt; }
  h1{ font-size:21pt; }
  .role-line{ margin-top:5pt; font-size:6.6pt; letter-spacing:.14em; }
  .lede{ margin-top:6pt; font-size:8.2pt; line-height:1.5; max-width:none; }
  .contact{ padding:9pt 11pt; font-size:6.8pt; line-height:1.75; border-radius:9pt; }

  /* --- sections --- */
  h2{ margin:12pt 0 6pt; padding-bottom:4pt; font-size:6.4pt; letter-spacing:.2em; }

  /* --- metrics --- */
  .metrics{ margin-top:11pt; border-radius:9pt; }
  .metric{ padding:7pt 9pt; }
  .metric .num{ font-size:14pt; }
  .metric .lbl{ margin-top:4pt; font-size:6.4pt; line-height:1.35; }

  /* --- built by me --- */
  .built-lede{ margin:-2pt 0 8pt; font-size:7.6pt; line-height:1.5; max-width:none; }
  .built{ border-radius:9pt; grid-template-columns:repeat(3, 1fr); }
  .site{ padding:8pt 9pt; gap:3pt; }
  .site .sn{ font-size:8.4pt; }
  .site .su{ font-size:5.4pt; }
  .site .sd{ font-size:6.6pt; line-height:1.45; margin-top:1pt; }
  .site{ cursor:default; }
a.site{ cursor:pointer; }
.site .sa{ padding-top:5pt; font-size:5.2pt; }

  /* --- console proof --- */
  .proof{ margin-top:8pt; gap:5pt; }
  .proof .shot{ border-radius:8pt; }
  .proof .shot img{ max-height:none; width:100%; }
  .proof .dt{ font-size:5.4pt; }
  .proof .ds{ font-size:5.6pt; }

  /* --- cards --- */
  .docs{ gap:12pt; }
  .card{ padding:9pt 10pt; gap:3pt; border-radius:9pt; }
  .card h3{ font-size:10pt; }
  .card p{ font-size:7.6pt; line-height:1.5; }
  .kicker{ font-size:5.4pt; }
  .go{ padding-top:6pt; font-size:5.8pt; }

  /* --- film --- */
  .film{ padding:10pt; gap:14pt; border-radius:10pt; }
  .film h3{ font-size:10.5pt; margin:5pt 0 5pt; }
  .film p{ font-size:7.6pt; line-height:1.5; margin-bottom:5pt; }
  .tag{ font-size:5.4pt; }
  .play i{ width:34pt; height:34pt; }
  .play i::after{ border-left-width:10pt; border-top-width:6pt; border-bottom-width:6pt; }
  .shot-cap{ font-size:5.6pt; line-height:1.4; }

  /* --- experience --- */
  .job{ padding:6.5pt 0 7.5pt; gap:13pt; grid-template-columns:84pt 1fr; }
  .job h3{ font-size:9pt; }
  .when{ font-size:6pt; padding-top:1pt; }
  .where{ margin:2pt 0 5pt; font-size:6.2pt; }
  .job li{ font-size:7.6pt; line-height:1.5; margin-bottom:3pt; padding-left:12pt; }
  .job li::before{ width:3pt; height:3pt; top:.55em; }

  /* --- education --- */
  .edu{ padding:9pt; gap:14pt; border-radius:9pt; grid-template-columns:1fr .74fr; }
  .honor{ font-size:5.4pt; padding:4pt 8pt; margin-bottom:6pt; }
  .edu h3{ font-size:11pt; }
  .edu .where{ margin:3pt 0 6pt; }
  .edu p{ font-size:7.6pt; line-height:1.5; margin-bottom:5pt; }
  .edu-facts{ margin-top:8pt; border-radius:8pt; }
  .edu-facts > div{ padding:6pt 8pt; }
  .edu-facts dt{ font-size:5pt; }
  .edu-facts dd{ margin-top:2pt; font-size:7.6pt; }
  .edu-facts dd.gpa{ font-size:10pt; }
  .shot{ margin-bottom:5pt; border-radius:8pt; }
  .shot img{ max-height:2.5in; width:auto; margin:0 auto; }
  .doc figcaption{ padding-top:5pt; }
  .doc .dt{ font-size:5.6pt; }
  .doc .ds{ font-size:5.8pt; }
  .edu-note{ padding:8pt 10pt; }
  .edu-note p{ font-size:7.6pt; line-height:1.5; }

  /* --- certs --- */
  .certs{ border-radius:10pt; }
  .cert{ padding:6pt 8pt; gap:3pt; }
  .cert .t{ font-size:7.2pt; line-height:1.35; }
  .cert .s{ font-size:5.2pt; }

  /* --- footer --- */
  .foot{ margin-top:9pt; padding-top:7pt; font-size:6.4pt; line-height:1.6; }

  /* --- rules --- */
  .doc, .cert, .film, .edu, .edu-facts, .certs, .built, .site, .proof{ break-inside:avoid; page-break-inside:avoid; }
  h2{ break-after:avoid; page-break-after:avoid; }
  .lb{ display:none !important; }
  a{ color:var(--cy) !important; text-decoration:none !important; }
  .frame{ box-shadow:none; }
  .card, .film, .edu, .metrics, .certs, .built{ box-shadow:none; }
}
