/* MacroLabs Card v1: all geometry lives HERE, never in a university theme. */
.ml-card-frame { width:100%; aspect-ratio:1/2; position:relative; min-width:0; }
.ml-card-frame--interactive { cursor:pointer; }
.ml-card, .ml-card * { box-sizing:border-box; }
.ml-card {
  --primary:#163f65; --header:#d6dfe6; --title:#103658; --paper:#fbfaf7;
  position:absolute; left:0; top:0; width:480px; height:960px;
  transform-origin:top left; overflow:hidden; border-radius:22px;
  background:var(--paper); border:1px solid rgba(22,42,61,.065);
  color:#142436; box-shadow:0 10px 28px rgba(47,49,44,.065),0 1px 3px rgba(47,49,44,.025);
  font-family:Arial,Helvetica,sans-serif;
}
.ml-card .ml-header { position:absolute; inset:0 0 auto; height:292px; background-color:var(--header); background-image:linear-gradient(115deg,rgba(255,255,255,.18),rgba(255,255,255,0)); overflow:hidden; }
.ml-card .ml-campus { position:absolute; top:20px; right:-1px; width:226px; height:273px; object-fit:fill; opacity:.74; pointer-events:none; }
.ml-card .ml-university { position:absolute; z-index:1; left:36px; top:37px; width:408px; height:159px; margin:0; color:var(--title); font-family:"Bodoni 72",Didot,"Times New Roman",serif; font-size:60px; line-height:.90; font-weight:500; letter-spacing:-1.9px; white-space:pre-line; overflow-wrap:normal; }
.ml-card .ml-program { position:absolute; z-index:1; left:37px; top:211px; width:357px; height:65px; margin:0; color:var(--title); font-family:"Bodoni 72",Didot,"Times New Roman",serif; font-size:25px; line-height:1.08; font-weight:400; white-space:pre-line; }
.ml-card .ml-body-paper { position:absolute; left:0; right:0; top:291px; bottom:0; border-radius:13px 13px 0 0; background:var(--paper); }
.ml-card .ml-ribbon { position:absolute; left:0; top:333px; width:480px; height:245px; color:var(--primary); z-index:1; pointer-events:none; }
.ml-card .ml-shadow { position:absolute; left:150px; top:570px; width:288px; height:23px; background:rgba(41,37,27,.085); border-radius:50%; filter:blur(.7px); z-index:2; }
.ml-card .ml-hero { position:absolute; left:106px; top:236px; width:376px; height:357px; z-index:3; display:flex; align-items:flex-end; justify-content:center; pointer-events:none; }
.ml-card .ml-mascot { display:block; max-width:100%; width:auto; height:100%; object-fit:contain; object-position:center bottom; }
.ml-card .ml-divider { position:absolute; top:610px; left:37px; width:42px; height:1px; background:#4f5965; }
.ml-card .ml-session { position:absolute; left:36px; top:630px; width:411px; height:79px; margin:0; font-family:"Bodoni 72",Didot,"Times New Roman",serif; font-size:33px; line-height:1.08; font-weight:500; letter-spacing:-.65px; overflow-wrap:normal; white-space:pre-line; }
.ml-card .ml-description { position:absolute; left:37px; top:724px; width:411px; height:49px; margin:0; color:#74777b; font-size:18px; line-height:1.32; white-space:pre-line; }
.ml-card .ml-meta { position:absolute; top:800px; left:37px; width:411px; height:49px; display:grid; grid-template-columns:184px 1fr; column-gap:29px; }
.ml-card .ml-meta::after { content:""; position:absolute; left:187px; top:0; height:46px; border-left:1px solid #a8afb5; }
.ml-card .ml-meta-item { display:grid; grid-template-columns:33px 1fr; gap:13px; align-items:start; min-width:0; }
.ml-card .ml-icon { display:block; width:31px; height:31px; margin-top:1px; stroke:currentColor; fill:none; stroke-width:1.7; stroke-linecap:round; stroke-linejoin:round; }
.ml-card .ml-meta-main { font-size:17px; line-height:1.2; font-weight:500; margin:0 0 5px; white-space:nowrap; }
.ml-card .ml-meta-sub { font-size:14px; line-height:1.15; color:#767d86; white-space:normal; margin:0; }
.ml-card .ml-footer { position:absolute; left:33px; top:872px; width:414px; height:64px; }
.ml-card .ml-cta { position:absolute; top:0; left:0; width:244px; height:64px; border:0; border-radius:34px; background:var(--primary); color:#fff; display:flex; justify-content:space-between; align-items:center; padding:0 32px 0 40px; font-size:20px; text-decoration:none; cursor:pointer; font-family:Arial,Helvetica,sans-serif; }
.ml-card .ml-cta:hover { filter:brightness(1.08); }
.ml-card .ml-cta:focus-visible { outline:3px solid var(--primary); outline-offset:5px; }
.ml-card .ml-arrow { width:25px; height:25px; stroke:currentColor; fill:none; stroke-width:1.25; stroke-linecap:round; stroke-linejoin:round; }
.ml-card .ml-signature { position:absolute; right:0; top:3px; width:112px; margin:0; padding-left:24px; border-left:1px solid #a8afb5; height:61px; display:flex; flex-direction:column; justify-content:center; gap:6px; color:#5d6672; font-size:11.5px; line-height:1.05; letter-spacing:2.05px; }
.ml-card .ml-signature strong { color:#2c3e50; font-weight:500; }
.ml-card[data-overflow="true"] { outline:3px solid #a33434; }
.ml-card-frame[data-guides="true"] .ml-card [data-slot] { outline:1px dashed rgba(39,126,140,.70); background-color:rgba(39,126,140,.018); }
.ml-card-frame[data-guides="true"] .ml-card [data-slot]::before { content:attr(data-slot); position:absolute; top:-14px; right:0; color:#226873; font:10px/1 Arial,sans-serif; letter-spacing:.5px; }
@media (prefers-reduced-motion:no-preference) { .ml-cta { transition:filter .15s; } }

.ml-card .ml-meta-copy { min-width:0; }
.ml-card-frame[data-compact="true"] .ml-card .ml-meta-sub { font-size:20px; }
.ml-card-frame[data-compact="true"] .ml-card .ml-icon { width:36px; height:36px; }
.ml-card-frame[data-compact="true"] .ml-card .ml-cta { font-size:28px; padding-left:34px; padding-right:28px; }
.ml-card-frame[data-compact="true"] .ml-card .ml-signature { font-size:15px; letter-spacing:1.6px; }
