:root{color-scheme:dark}.dfhub-app{min-height:100vh;position:relative;overflow:hidden;color:#fff;font-family:Inter,system-ui,-apple-system,Segoe UI,Arial,sans-serif}.dfhub-bg,.dfhub-video,.dfhub-overlay{position:fixed;inset:0;z-index:-3}.dfhub-bg{background:radial-gradient(circle at 70% 20%,rgba(32,230,220,.18),transparent 35%),#061018;background-size:cover;background-position:center;animation:dfhubDrift 80s ease-in-out infinite alternate}.dfhub-video{width:100%;height:100%;object-fit:cover;z-index:-2}.dfhub-overlay{z-index:-1;background:linear-gradient(90deg,rgba(0,0,0,var(--dfhub-overlay)) 0%,rgba(0,0,0,calc(var(--dfhub-overlay) * .82)) 55%,rgba(0,0,0,calc(var(--dfhub-overlay) * .95)) 100%)}.dfhub-style-light{color:#071018}.dfhub-style-light .dfhub-overlay{background:linear-gradient(90deg,rgba(255,255,255,var(--dfhub-overlay)) 0%,rgba(255,255,255,calc(var(--dfhub-overlay) * .80)) 56%,rgba(255,255,255,calc(var(--dfhub-overlay) * .92)) 100%)}.dfhub-style-light .dfhub-copy p,.dfhub-style-light .dfhub-card-desc,.dfhub-style-light .dfhub-modal-desc{color:rgba(7,16,24,.74)}.dfhub-style-light .dfhub-card,.dfhub-style-light .dfhub-badges span{color:#071018;background:linear-gradient(180deg,rgba(255,255,255,.82),rgba(255,255,255,.58));border-color:rgba(7,16,24,.16)}.dfhub-style-light .dfhub-modal-panel{color:#071018;background:linear-gradient(180deg,rgba(255,255,255,.96),rgba(232,247,249,.93));border-color:rgba(7,16,24,.16)}.dfhub-style-light .dfhub-modal-close{color:#071018;background:rgba(7,16,24,.07);border-color:rgba(7,16,24,.12)}.dfhub-shell{width:min(1180px,calc(100% - 44px));margin:0 auto;padding:clamp(18px,2.4vh,34px) 0 42px}.dfhub-hero{display:grid;grid-template-columns:150px minmax(0,720px);gap:24px;align-items:center;min-height:auto}.dfhub-photo-wrap{animation:dfhubInLeft .7s ease both}.dfhub-photo{width:132px;height:132px;object-fit:cover;border-radius:26px;border:8px solid rgba(255,255,255,.9);box-shadow:0 26px 70px rgba(0,0,0,.45),0 0 35px rgba(32,230,220,.15)}.dfhub-copy{animation:dfhubInUp .7s ease both}.dfhub-kicker{text-transform:uppercase;letter-spacing:.22em;color:var(--dfhub-accent);font-weight:900;font-size:13px;margin-bottom:14px}.dfhub-copy h1{font-size:clamp(42px,5.0vw,68px);line-height:.9;margin:0 0 12px;font-weight:1000;letter-spacing:-.06em}.dfhub-copy h2{font-size:clamp(21px,2.2vw,30px);line-height:1.05;margin:0 0 14px;font-weight:950;max-width:780px}.dfhub-copy p{font-size:clamp(15px,1.45vw,18px);line-height:1.45;color:rgba(255,255,255,.82);max-width:780px;margin:0 0 18px}.dfhub-cta{display:inline-flex;align-items:center;gap:8px;background:linear-gradient(135deg,var(--dfhub-accent),#38bdf8);color:#031216;text-decoration:none;font-weight:950;border-radius:999px;padding:13px 24px;box-shadow:0 18px 48px rgba(32,230,220,.25);transition:transform .22s ease,box-shadow .22s ease}.dfhub-cta:hover{transform:translateY(-3px);box-shadow:0 24px 60px rgba(32,230,220,.35)}.dfhub-badges{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin:18px 0 16px;animation:dfhubInUp .7s .12s ease both}.dfhub-badges span{display:flex;align-items:center;justify-content:center;gap:8px;background:rgba(255,255,255,.075);border:1px solid rgba(255,255,255,.16);border-radius:18px;padding:10px 16px;text-align:center;font-size:14px;font-weight:900;box-shadow:inset 0 1px rgba(255,255,255,.12)}.dfhub-badge-icon{font-size:1.1em;line-height:1}.dfhub-modules{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;scroll-margin-top:20px}.dfhub-card{min-height:138px;text-align:center;border:1px solid rgba(255,255,255,.16);border-radius:22px;background:linear-gradient(180deg,rgba(255,255,255,.12),rgba(255,255,255,.055));box-shadow:0 20px 55px rgba(0,0,0,.28),inset 0 1px rgba(255,255,255,.14);color:#fff;padding:20px 16px;cursor:pointer;backdrop-filter:blur(14px);transition:transform .25s ease,border-color .25s ease,box-shadow .25s ease;animation:dfhubCard .65s ease both;animation-delay:var(--delay)}.dfhub-card:hover,.dfhub-card:focus-visible{transform:translateY(-8px) scale(1.025);border-color:color-mix(in srgb,var(--dfhub-accent),white 20%);box-shadow:0 30px 70px rgba(0,0,0,.38),0 0 30px rgba(32,230,220,.17)}.dfhub-card-icon{display:block;font-size:34px;margin-bottom:10px;transition:transform .22s ease}.dfhub-card:hover .dfhub-card-icon{transform:scale(1.14)}.dfhub-card-title{display:block;font-size:17px;font-weight:1000;margin-bottom:7px}.dfhub-card-desc{display:block;color:rgba(255,255,255,.76);font-size:13px;line-height:1.3}.dfhub-modal{position:fixed;inset:0;z-index:1000;display:grid;place-items:center;padding:24px;opacity:0;pointer-events:none;transition:opacity .24s ease}.dfhub-modal.is-open{opacity:1;pointer-events:auto}.dfhub-modal.is-closing{opacity:0;pointer-events:none}.dfhub-modal-backdrop{position:absolute;inset:0;background:rgba(0,0,0,.66);backdrop-filter:blur(10px)}.dfhub-modal-panel{position:relative;width:min(720px,100%);max-height:min(720px,88vh);overflow:auto;border-radius:28px;background:linear-gradient(180deg,rgba(20,42,46,.92),rgba(10,18,28,.88));border:1px solid rgba(255,255,255,.22);box-shadow:0 40px 110px rgba(0,0,0,.6),inset 0 1px rgba(255,255,255,.18);padding:34px;transform:translateY(10px) scale(.96);opacity:0;transition:transform .28s cubic-bezier(.2,.8,.2,1),opacity .22s ease}.dfhub-modal.is-open .dfhub-modal-panel{transform:translateY(0) scale(1);opacity:1}.dfhub-modal.is-closing .dfhub-modal-panel{transform:translateY(10px) scale(.98);opacity:0}.dfhub-modal-close{position:absolute;right:16px;top:14px;width:40px;height:40px;border-radius:12px;border:1px solid rgba(255,255,255,.18);background:rgba(255,255,255,.08);color:#fff;font-size:28px;line-height:1;cursor:pointer}.dfhub-modal-icon{font-size:44px;margin-bottom:8px}.dfhub-modal h3{font-size:34px;margin:0 0 8px}.dfhub-modal-desc{color:rgba(255,255,255,.78);margin:0 0 22px}.dfhub-modal-links{display:grid;grid-template-columns:repeat(2,1fr);gap:14px}.dfhub-modal-links a{display:flex;align-items:center;justify-content:center;text-align:center;min-height:60px;border-radius:17px;text-decoration:none;color:#031216;font-weight:950;background:linear-gradient(135deg,var(--dfhub-accent),#38bdf8);box-shadow:0 15px 38px rgba(32,230,220,.2);transition:transform .2s ease,filter .2s ease;animation:dfhubLink .35s ease both}.dfhub-modal-links a:hover{transform:translateY(-3px);filter:brightness(1.08)}.dfhub-float{position:fixed;right:34px;bottom:34px;z-index:30;width:58px;height:58px;border-radius:50%;border:0;background:linear-gradient(135deg,var(--dfhub-accent),#38bdf8);color:#032027;font-size:26px;font-weight:900;box-shadow:0 18px 50px rgba(0,0,0,.35);cursor:pointer}.dfhub-quick{position:fixed;right:34px;bottom:104px;z-index:29;display:grid;gap:10px;opacity:0;transform:translateY(10px);pointer-events:none;transition:.22s ease}.dfhub-quick.is-open{opacity:1;transform:none;pointer-events:auto}.dfhub-quick a{color:#fff;background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.16);padding:11px 15px;border-radius:999px;text-decoration:none;backdrop-filter:blur(10px)}@keyframes dfhubInUp{from{opacity:0;transform:translateY(18px)}to{opacity:1;transform:none}}@keyframes dfhubInLeft{from{opacity:0;transform:translateX(-18px)}to{opacity:1;transform:none}}@keyframes dfhubCard{from{opacity:0;transform:translateY(18px) scale(.98)}to{opacity:1;transform:none}}@keyframes dfhubLink{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}@keyframes dfhubDrift{from{transform:scale(1.03) translateX(-14px)}to{transform:scale(1.06) translateX(14px)}}@media(max-width:900px){.dfhub-shell{padding-top:34px;width:min(100% - 28px,760px)}.dfhub-hero{grid-template-columns:1fr;text-align:left;gap:16px}.dfhub-photo{width:118px;height:118px}.dfhub-badges{grid-template-columns:repeat(2,1fr);margin-top:28px}.dfhub-modules{grid-template-columns:repeat(2,1fr)}.dfhub-copy h1{font-size:48px}.dfhub-modal-links{grid-template-columns:1fr}}@media(max-width:560px){.dfhub-modules,.dfhub-badges{grid-template-columns:1fr}.dfhub-copy h1{font-size:46px}.dfhub-copy h2{font-size:25px}.dfhub-card{min-height:140px}.dfhub-float{right:18px;bottom:18px}}@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}

.dfhub-page-wrap{min-height:100vh;background:#071018;color:#fff;padding:48px 22px;font-family:Inter,system-ui,-apple-system,Segoe UI,Arial,sans-serif}.dfhub-page-content{width:min(920px,100%);margin:0 auto;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.14);border-radius:24px;padding:clamp(24px,4vw,48px);box-shadow:0 30px 80px rgba(0,0,0,.35)}.dfhub-page-content h1{font-size:clamp(34px,4vw,56px);line-height:1;margin:0 0 22px}.dfhub-page-body{font-size:18px;line-height:1.65;color:rgba(255,255,255,.86)}.dfhub-page-body a{color:var(--dfhub-accent,#20e6dc)}

/* v1.7 production polish: green graduated cards and classic bordered modal links */
.dfhub-card{
  background:linear-gradient(145deg,rgba(74,132,98,.72) 0%,rgba(37,91,64,.62) 48%,rgba(18,42,32,.58) 100%);
  border:1px solid rgba(220,255,232,.42);
  box-shadow:0 20px 55px rgba(0,0,0,.30),inset 0 1px rgba(255,255,255,.22),inset 0 -34px 60px rgba(0,0,0,.18);
}
.dfhub-card:hover,.dfhub-card:focus-visible{
  border-color:rgba(235,255,240,.82);
  box-shadow:0 30px 72px rgba(0,0,0,.42),0 0 36px rgba(110,235,158,.25),inset 0 1px rgba(255,255,255,.28);
}
.dfhub-modal{transition:opacity .36s ease,visibility .36s ease;}
.dfhub-modal-backdrop{transition:opacity .36s ease,backdrop-filter .36s ease;}
.dfhub-modal.is-closing .dfhub-modal-backdrop{opacity:0;backdrop-filter:blur(0)}
.dfhub-modal-panel{
  background:linear-gradient(145deg,rgba(81,139,103,.88),rgba(45,103,70,.88) 52%,rgba(30,76,54,.88));
  border:3px solid rgba(239,255,244,.82);
  box-shadow:0 40px 110px rgba(0,0,0,.62),0 0 30px rgba(210,255,224,.22),inset 0 1px rgba(255,255,255,.26);
}
.dfhub-modal-links a{
  position:relative;
  justify-content:center;
  min-height:92px;
  color:#fff;
  background:linear-gradient(145deg,rgba(76,139,99,.62),rgba(33,91,62,.62));
  border:5px solid rgba(226,255,234,.76);
  border-radius:14px;
  box-shadow:inset 0 1px rgba(255,255,255,.15),0 12px 30px rgba(0,0,0,.16);
  padding:18px 42px 18px 72px;
}
.dfhub-modal-links a::before{
  content:'➤';
  position:absolute;
  left:28px;
  top:50%;
  transform:translateY(-50%);
  font-size:36px;
  line-height:1;
  color:#fff;
  text-shadow:0 2px 8px rgba(0,0,0,.25);
}
.dfhub-modal-links a:hover{filter:brightness(1.08);transform:translateY(-4px);border-color:#fff;}
.dfhub-style-light .dfhub-card{background:linear-gradient(145deg,rgba(104,169,127,.78),rgba(72,139,94,.66) 50%,rgba(40,93,62,.62));color:#fff;}
.dfhub-style-light .dfhub-modal-panel{color:#fff;background:linear-gradient(145deg,rgba(94,155,117,.92),rgba(50,113,77,.90) 52%,rgba(32,82,58,.90));}
.dfhub-style-light .dfhub-modal-desc{color:rgba(255,255,255,.82)}
@media(max-width:900px){.dfhub-modal-links a{min-height:76px}}


/* v1.8: reliable modal fade-out. Keep visible during close, then JS hides after animation. */
.dfhub-modal{
  opacity:0;
  visibility:hidden;
  pointer-events:none;
  transition:opacity  .4s ease, visibility 0s linear  .4s;
}
.dfhub-modal.is-open{
  opacity:1;
  visibility:visible;
  pointer-events:auto;
  transition:opacity .28s ease, visibility 0s linear 0s;
}
.dfhub-modal.is-closing{
  opacity:0;
  visibility:visible;
  pointer-events:none;
  transition:opacity  .4s ease, visibility 0s linear  .4s;
}
.dfhub-modal .dfhub-modal-backdrop{
  opacity:0;
  transition:opacity  .4s ease, backdrop-filter  .4s ease;
}
.dfhub-modal.is-open .dfhub-modal-backdrop{opacity:1;}
.dfhub-modal.is-closing .dfhub-modal-backdrop{opacity:0;backdrop-filter:blur(0);}
.dfhub-modal .dfhub-modal-panel{
  opacity:0;
  transform:translateY(12px) scale(.965);
  transition:opacity  .4s ease, transform  .4s cubic-bezier(.2,.8,.2,1);
}
.dfhub-modal.is-open .dfhub-modal-panel{
  opacity:1;
  transform:translateY(0) scale(1);
}
.dfhub-modal.is-closing .dfhub-modal-panel{
  opacity:0;
  transform:translateY(10px) scale(.98);
}
