/* Self-hosted fonts (no live requests to Google servers) */
@font-face{
  font-family:'Space Grotesk'; font-style:normal; font-weight:500; font-display:swap;
  src:url('../fonts/space-grotesk-500.woff2') format('woff2');
}
@font-face{
  font-family:'Space Grotesk'; font-style:normal; font-weight:600; font-display:swap;
  src:url('../fonts/space-grotesk-600.woff2') format('woff2');
}
@font-face{
  font-family:'Space Grotesk'; font-style:normal; font-weight:700; font-display:swap;
  src:url('../fonts/space-grotesk-700.woff2') format('woff2');
}
@font-face{
  font-family:'Inter'; font-style:normal; font-weight:400; font-display:swap;
  src:url('../fonts/inter-400.woff2') format('woff2');
}
@font-face{
  font-family:'Inter'; font-style:normal; font-weight:500; font-display:swap;
  src:url('../fonts/inter-500.woff2') format('woff2');
}
@font-face{
  font-family:'Inter'; font-style:normal; font-weight:600; font-display:swap;
  src:url('../fonts/inter-600.woff2') format('woff2');
}
@font-face{
  font-family:'Inter'; font-style:normal; font-weight:700; font-display:swap;
  src:url('../fonts/inter-700.woff2') format('woff2');
}

:root{
  --bg:#FAF7F1;
  --card:#FFFFFF;
  --text:#161A17;
  --text-dim:#666f69;
  --green:#149361;
  --green-deep:#0d6e49;
  --green-tint:#E7F5EE;
  --blue:#3556E8;
  --blue-deep:#22399E;
  --blue-tint:#EAEEFD;
  --border:rgba(22,26,23,0.08);
  --shadow:0 14px 34px -18px rgba(20,30,24,0.18);
  --shadow-hover:0 22px 44px -16px rgba(20,30,24,0.24);
  --r-lg:26px;
  --r-md:18px;
  --gap:26px;
  --pad:36px;
  --maxw:1040px;
  --font-display:'Space Grotesk', system-ui, sans-serif;
  --font-body:'Inter', system-ui, -apple-system, "Segoe UI", Roboto, Arial, sans-serif;

  --idunau-bg:#FBEFD8;
  --idunau-bg2:#F7E4BE;
  --idunau-navy:#16273F;
  --idunau-navy-soft:#3a4c68;
  --idunau-orange:#F1801F;
  --idunau-orange-deep:#D96F12;
  --idunau-orange-tint:rgba(241,128,31,0.14);
  --idunau-teal:#0E93A6;
  --idunau-teal-tint:rgba(14,147,166,0.12);
  --idunau-coral:#E8544A;
  --idunau-coral-tint:rgba(232,84,74,0.12);
  --idunau-purple:#6D5BD0;
  --idunau-purple-tint:rgba(109,91,208,0.12);
  --idunau-teal-deep:#0B6E7A;
  --idunau-coral-deep:#C43F36;
  --idunau-purple-deep:#4E3FAE;

  --glass-bg:rgba(255,255,255,0.7);
  --glass-border:rgba(22,26,23,0.10);
  --overlay:rgba(20,24,21,0.28);
}

:root[data-theme="dark"]{
  --bg:#0E1210;
  --card:#171C19;
  --text:#EEF2EF;
  --text-dim:#8C978F;
  --green:#22C58D;
  --green-deep:#3EE0A6;
  --green-tint:rgba(34,197,141,0.16);
  --blue:#6C8BFF;
  --blue-deep:#B7C4FF;
  --blue-tint:rgba(108,139,255,0.16);
  --border:rgba(255,255,255,0.09);
  --shadow:0 16px 36px -18px rgba(0,0,0,0.6);
  --shadow-hover:0 26px 50px -16px rgba(0,0,0,0.7);

  --idunau-bg:#241C10;
  --idunau-bg2:#2E2313;
  --idunau-navy:#F6E9D2;
  --idunau-navy-soft:#D8C6A4;
  --idunau-orange:#FF9A42;
  --idunau-orange-deep:#FFB268;
  --idunau-orange-tint:rgba(255,154,66,0.18);
  --idunau-teal:#34C6DB;
  --idunau-teal-tint:rgba(52,198,219,0.16);
  --idunau-coral:#FF8478;
  --idunau-coral-tint:rgba(255,132,120,0.16);
  --idunau-purple:#A996FF;
  --idunau-purple-tint:rgba(169,150,255,0.16);
  --idunau-teal-deep:#5FE0F0;
  --idunau-coral-deep:#FF9C90;
  --idunau-purple-deep:#C4B6FF;

  --glass-bg:rgba(23,28,25,0.65);
  --glass-border:rgba(255,255,255,0.10);
  --overlay:rgba(0,0,0,0.5);
}

*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  margin:0;
  background:var(--bg);
  color:var(--text);
  font-family:var(--font-body);
  -webkit-font-smoothing:antialiased;
  position:relative;
  overflow-x:hidden;
  transition:background .3s ease, color .3s ease;
}
body::before{
  content:"";
  position:fixed; inset:0; z-index:0;
  opacity:0.035;
  pointer-events:none;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='120' height='120'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
}
main{position:relative; z-index:1; max-width:var(--maxw); margin:0 auto; padding:64px 24px 30px;}

.topbar{display:flex; align-items:center; justify-content:space-between; gap:14px; margin-bottom:44px; flex-wrap:wrap;}
.topbar-left{display:flex; align-items:center; gap:10px; flex:0 0 auto;}
.mark{
  width:38px; height:38px; border-radius:11px; flex:0 0 auto;
  background:linear-gradient(155deg, var(--green), var(--green-deep));
  color:#fff; font-family:var(--font-display); font-weight:700; font-size:14px;
  display:flex; align-items:center; justify-content:center;
  text-decoration:none;
}
.back-link{
  display:inline-flex; align-items:center; gap:6px;
  font-size:13px; font-weight:500; color:var(--text-dim); text-decoration:none;
  padding:8px 14px; border-radius:99px; background:var(--card); border:1px solid var(--border);
  transition:color .2s ease, border-color .2s ease;
}
.back-link:hover{color:var(--green-deep); border-color:rgba(20,147,97,0.3);}

/* nav buttons (top right) */
.nav-buttons{display:flex; align-items:center; gap:8px; flex-wrap:wrap;}
.nav-btn{
  display:inline-flex; align-items:center; gap:7px;
  padding:9px 15px 9px 12px; border-radius:99px;
  background:var(--card); border:1px solid var(--border);
  color:var(--text); font-size:13px; font-weight:500;
  text-decoration:none; cursor:pointer;
  transition:transform .2s ease, border-color .2s ease, box-shadow .2s ease;
  font-family:var(--font-body);
}
.nav-btn svg{width:16px; height:16px; flex:0 0 auto; color:var(--text-dim);}
.nav-btn:hover{transform:translateY(-2px); border-color:rgba(20,147,97,0.3); box-shadow:var(--shadow);}
.nav-btn.is-settings svg{color:var(--text-dim);}
.nav-btn.is-academy svg{color:var(--idunau-orange);}
.nav-btn.is-artifacts svg{color:var(--blue);}
@media (max-width:480px){
  .nav-btn .nav-btn-label{display:none;}
  .nav-btn{padding:10px;}
}

.cell{
  background:var(--card);
  border:1px solid var(--border);
  border-radius:var(--r-lg);
  box-shadow:var(--shadow);
  padding:var(--pad);
  position:relative;
  overflow:hidden;
  transition:transform .3s cubic-bezier(.2,.8,.2,1), box-shadow .3s ease, border-color .3s ease, background .3s ease;
}
a.cell{text-decoration:none; color:inherit;}
.cell.hoverable:hover, .cell.hoverable:focus-visible{
  transform:translateY(-4px);
  box-shadow:var(--shadow-hover);
  border-color:rgba(20,147,97,0.28);
}

/* row 1: hero + about */
.top-row{display:grid; grid-template-columns:1.3fr 1fr; gap:var(--gap); margin-bottom:var(--gap);}
.hero{display:flex; flex-direction:column; justify-content:center; gap:18px; min-height:220px;}
.blob{
  position:absolute; width:260px; height:260px; top:-70px; right:-70px;
  background:linear-gradient(140deg, var(--green), var(--blue));
  filter:blur(46px); opacity:0.32;
  border-radius:42% 58% 63% 37% / 41% 44% 56% 59%;
  animation:blobmove 14s ease-in-out infinite alternate;
}
@keyframes blobmove{
  from{ border-radius:42% 58% 63% 37% / 41% 44% 56% 59%; transform:translate(0,0) scale(1); }
  to{ border-radius:58% 42% 39% 61% / 55% 60% 40% 45%; transform:translate(-10px,12px) scale(1.06); }
}
.avatar{
  position:relative; z-index:1;
  width:64px; height:64px; border-radius:18px;
  display:flex; align-items:center; justify-content:center;
  font-family:var(--font-display); font-weight:700; font-size:20px; color:#fff;
  background:linear-gradient(155deg, var(--green), var(--blue));
  box-shadow:0 10px 24px -10px rgba(20,147,97,0.55);
}
.hero h1{position:relative; z-index:1; font-family:var(--font-display); font-size:clamp(28px,4vw,38px); font-weight:700; letter-spacing:-0.01em; margin:0;}
.hero .tagline{position:relative; z-index:1; margin:0; color:var(--text-dim); font-size:15.5px; line-height:1.6; max-width:380px;}

.about{display:flex; flex-direction:column; justify-content:center; gap:12px; min-height:220px;}
.tag{
  display:inline-flex; align-self:flex-start;
  font-size:11px; font-weight:600; letter-spacing:.04em; text-transform:uppercase;
  color:var(--green-deep); background:var(--green-tint); padding:4px 11px; border-radius:99px;
}
.about p{margin:0; font-size:15px; line-height:1.65; color:var(--text); opacity:.85;}

/* academy teaser - big ad block on homepage */
.academy{
  margin-bottom:var(--gap);
  background:linear-gradient(160deg, var(--idunau-bg), var(--idunau-bg2));
  border-color:rgba(22,39,63,0.10);
  display:grid; grid-template-columns:1.4fr 1fr; gap:28px; align-items:center; padding:40px;
}
.academy:hover{ box-shadow:0 26px 50px -18px rgba(22,39,63,0.28); }
.academy-content{position:relative; z-index:1;}
.academy .tag{color:#8a4c0c; background:rgba(241,128,31,0.16);}
:root[data-theme="dark"] .academy .tag{color:#FFD9AE; background:rgba(241,128,31,0.22);}
.academy h2{font-family:var(--font-display); color:var(--idunau-navy); font-size:clamp(24px,3vw,32px); font-weight:700; letter-spacing:-0.01em; margin:14px 0 10px; line-height:1.15;}
.academy > .academy-content > p.lead{margin:0 0 22px; color:var(--idunau-navy-soft); font-size:15.5px; line-height:1.6; max-width:460px;}
.academy-points{display:grid; grid-template-columns:1fr 1fr; gap:12px 22px; margin-bottom:26px; list-style:none; padding:0;}
.academy-points li{display:flex; align-items:center; gap:10px; font-size:13.5px; color:var(--idunau-navy); font-weight:500;}
.academy-points .pt-icon{flex:0 0 auto; width:26px; height:26px; border-radius:8px; background:var(--idunau-orange); color:#fff; display:flex; align-items:center; justify-content:center;}
.academy-points .pt-icon svg{width:14px; height:14px;}
.academy-cta{display:inline-flex; align-items:center; gap:9px; background:var(--idunau-orange); color:#fff; font-weight:700; font-size:14.5px; padding:13px 22px; border-radius:99px; box-shadow:0 12px 26px -10px rgba(241,128,31,0.55); transition:transform .25s ease, background .25s ease;}
.academy:hover .academy-cta{ background:var(--idunau-orange-deep); transform:translateX(3px); }
.academy-visual{position:relative; display:flex; align-items:center; justify-content:center; height:100%; min-height:180px;}
.academy-visual .glow{position:absolute; width:210px; height:210px; border-radius:50%; background:radial-gradient(circle, rgba(241,128,31,0.30), transparent 70%); filter:blur(10px);}
.academy-visual svg{position:relative; z-index:1; width:130px; height:130px; color:var(--idunau-navy);}

/* artifacts teaser grid (homepage) */
.section-label{font-family:var(--font-display); font-size:13px; font-weight:600; letter-spacing:.06em; text-transform:uppercase; color:var(--text-dim); margin:0 0 16px;}
.artifacts-grid{display:grid; grid-template-columns:repeat(auto-fit, minmax(240px, 1fr)); gap:var(--gap); margin-bottom:var(--gap);}
.artifact{display:flex; flex-direction:column; gap:16px; min-height:150px;}
.card-icon{flex:0 0 auto; width:44px; height:44px; border-radius:13px; display:flex; align-items:center; justify-content:center; color:#fff; overflow:hidden;}
.card-icon svg{width:21px; height:21px;}
.card-icon.has-image img{width:100%; height:100%; object-fit:cover; display:block;}
.artifact h3{font-family:var(--font-display); font-size:16px; font-weight:600; margin:0 0 6px;}
.artifact p{margin:0; font-size:13.5px; color:var(--text-dim); line-height:1.5;}
.artifact .card-arrow{margin-top:auto; align-self:flex-end; color:var(--text-dim); transition:transform .25s ease, color .25s ease;}
.artifact:hover .card-arrow{transform:translateX(4px); color:var(--blue-deep);}

/* contact */
.contact{text-align:center; padding:44px var(--pad); margin-bottom:var(--gap);}

/* zone tint colors: green = personal (hero/about/contact), orange = idunau academy, blue = artifacts */
.hero, .about, .contact{
  background:linear-gradient(160deg, var(--green-tint), var(--card) 62%);
  border-color:rgba(20,147,97,0.18);
}
.artifact{
  background:linear-gradient(160deg, var(--blue-tint), var(--card) 62%);
  border-color:rgba(53,86,232,0.18);
}
.artifact .card-icon{background:var(--blue);}
.contact .tag{margin:0 auto 14px;}
.contact h2{font-family:var(--font-display); font-size:22px; font-weight:600; margin:0 0 10px;}
.contact p{margin:0 0 22px; color:var(--text-dim); font-size:14.5px;}
.socials{display:flex; gap:11px; justify-content:center; flex-wrap:wrap;}
.socials a{width:42px; height:42px; border-radius:12px; display:flex; align-items:center; justify-content:center; color:var(--text-dim); border:1px solid var(--border); background:var(--bg); transition:color .2s ease, border-color .2s ease, transform .2s ease;}
.socials a:hover{color:var(--blue); border-color:rgba(53,86,232,.35); transform:translateY(-2px);}
.socials svg{width:18px; height:18px;}
.socials .email-text{width:auto; height:42px; padding:0 4px; display:flex; align-items:center; color:var(--text-dim); font-family:var(--font-body); font-size:14px; font-weight:600;}

footer{position:relative; z-index:1; max-width:var(--maxw); margin:0 auto; padding:20px 24px 56px; text-align:center;}
.footer-links{display:flex; gap:18px; justify-content:center; margin-bottom:10px; flex-wrap:wrap;}
.footer-links a{color:var(--text-dim); font-size:12.5px; text-decoration:none; border-bottom:1px solid transparent;}
.footer-links a:hover{color:var(--green-deep); border-color:currentColor;}
footer p{margin:0; color:var(--text-dim); font-size:12.5px;}

[data-animate]{opacity:0; transform:translateY(14px); transition:opacity .55s ease, transform .55s ease;}
[data-animate].is-visible{opacity:1; transform:none;}

/* legal pages */
.legal-content h1{font-family:var(--font-display); font-size:clamp(24px,3.5vw,32px); margin:0 0 6px;}
.legal-content .updated{color:var(--text-dim); font-size:13px; margin:0 0 28px;}
.legal-content h2{font-family:var(--font-display); font-size:16px; font-weight:600; margin:28px 0 8px;}
.legal-content h2:first-of-type{margin-top:6px;}
.legal-content p{margin:0 0 12px; font-size:14.5px; line-height:1.7; color:var(--text); opacity:.88;}
.legal-content ul{margin:0 0 12px; padding-left:20px; font-size:14.5px; line-height:1.7; color:var(--text); opacity:.88;}

/* ===== Settings modal (glass) ===== */
.settings-overlay{
  position:fixed; inset:0; z-index:50;
  background:var(--overlay);
  display:flex; align-items:center; justify-content:center;
  padding:20px;
  opacity:0; pointer-events:none;
  transition:opacity .25s ease;
}
.settings-overlay.is-open{opacity:1; pointer-events:auto;}
.settings-modal{
  width:100%; max-width:380px;
  background:var(--glass-bg);
  -webkit-backdrop-filter:blur(24px) saturate(160%);
  backdrop-filter:blur(24px) saturate(160%);
  border:1px solid var(--glass-border);
  border-radius:24px;
  box-shadow:0 30px 60px -20px rgba(0,0,0,0.35);
  padding:26px;
  transform:translateY(10px) scale(.98); opacity:0;
  transition:transform .25s cubic-bezier(.2,.8,.2,1), opacity .25s ease;
}
.settings-overlay.is-open .settings-modal{transform:translateY(0) scale(1); opacity:1;}
.settings-modal-head{display:flex; align-items:center; justify-content:space-between; margin-bottom:18px;}
.settings-modal-head h2{font-family:var(--font-display); font-size:17px; font-weight:600; margin:0;}
.settings-close{
  width:30px; height:30px; border-radius:50%; border:1px solid var(--border); background:var(--card);
  color:var(--text-dim); display:flex; align-items:center; justify-content:center; cursor:pointer;
}
.settings-close:hover{color:var(--text);}
.setting-row{display:flex; align-items:center; justify-content:space-between; gap:16px; padding:14px 0; border-top:1px solid var(--border);}
.setting-row:first-of-type{border-top:none;}
.setting-label{font-size:14px; font-weight:600; margin:0 0 2px;}
.setting-sub{font-size:12px; color:var(--text-dim); margin:0;}

.switch{
  --w:52px; --h:30px;
  width:var(--w); height:var(--h); border-radius:99px; flex:0 0 auto;
  background:rgba(120,130,124,0.22);
  border:1px solid var(--glass-border);
  -webkit-backdrop-filter:blur(6px); backdrop-filter:blur(6px);
  position:relative; cursor:pointer; padding:0;
  transition:background .25s ease;
}
.switch .thumb{
  position:absolute; top:2px; left:2px; width:24px; height:24px; border-radius:50%;
  background:#fff; box-shadow:0 3px 8px rgba(0,0,0,0.25), inset 0 0 0 1px rgba(0,0,0,0.03);
  transition:transform .28s cubic-bezier(.2,.8,.2,1);
}
.switch[aria-checked="true"]{background:linear-gradient(155deg, var(--green), var(--green-deep));}
.switch[aria-checked="true"] .thumb{transform:translateX(22px);}

/* ===== Primary button (contact CTA, form submit) ===== */
.btn-primary{
  display:inline-flex; align-items:center; justify-content:center; gap:8px;
  background:linear-gradient(155deg, var(--green), var(--green-deep));
  color:#fff; font-family:var(--font-body); font-weight:700; font-size:14.5px;
  padding:12px 24px; border:none; border-radius:99px; cursor:pointer;
  box-shadow:0 12px 26px -10px rgba(20,147,97,0.45);
  transition:transform .2s ease, box-shadow .2s ease, opacity .2s ease;
}
.btn-primary svg{width:17px; height:17px; flex:0 0 auto;}
.btn-primary:hover{transform:translateY(-2px); box-shadow:0 16px 32px -10px rgba(20,147,97,0.55);}
.btn-primary:disabled{opacity:.6; cursor:default; transform:none; box-shadow:none;}
.contact .contact-cta{margin-top:22px;}

/* ===== Contact modal + form ===== */
.contact-modal{max-width:560px; max-height:88vh; overflow-y:auto;}
.contact-form .form-row-2{display:grid; grid-template-columns:1fr 1fr; gap:14px;}
.contact-form .form-field{margin-bottom:16px; display:flex; flex-direction:column; gap:6px;}
.contact-form label{font-size:13px; font-weight:600; color:var(--text);}
.contact-form .required-mark{color:var(--green-deep);}
.contact-form .field-optional{font-weight:400; color:var(--text-dim); font-size:12px;}
.contact-form input[type="text"],
.contact-form input[type="email"],
.contact-form textarea{
  width:100%; font-family:var(--font-body); font-size:14px; color:var(--text);
  background:var(--bg); border:1px solid var(--border); border-radius:12px;
  padding:11px 14px; transition:border-color .2s ease, box-shadow .2s ease;
}
.contact-form input[type="text"]:focus,
.contact-form input[type="email"]:focus,
.contact-form textarea:focus{
  outline:none; border-color:var(--green); box-shadow:0 0 0 3px var(--green-tint);
}
.contact-form textarea{resize:vertical; min-height:120px; line-height:1.55; font-family:var(--font-body);}
.contact-form .form-checkbox{
  display:flex; align-items:flex-start; gap:10px; font-size:13px; color:var(--text-dim);
  line-height:1.55; margin:4px 0 22px; cursor:pointer;
}
.contact-form .form-checkbox input{margin-top:3px; flex:0 0 auto; width:16px; height:16px; accent-color:var(--green); cursor:pointer;}
.contact-form .form-checkbox a{color:var(--green-deep); text-decoration:underline;}
.contact-form .form-actions{display:flex; align-items:center; justify-content:space-between; gap:14px; flex-wrap:wrap;}
.contact-form .form-status{flex:1 1 auto; margin:0; font-size:13px; color:var(--text-dim);}
.contact-form .form-status.is-error{color:#E5484D;}
.contact-form .form-status.is-success{color:var(--green-deep);}
@media (max-width:560px){
  .contact-form .form-row-2{grid-template-columns:1fr;}
}

@media (max-width:840px){
  .top-row{grid-template-columns:1fr;}
  .academy{grid-template-columns:1fr; padding:30px;}
  .academy-visual{display:none;}
  .artifacts-grid{grid-template-columns:repeat(2, 1fr);}
}
@media (max-width:560px){
  .artifacts-grid{grid-template-columns:1fr;}
  .academy-points{grid-template-columns:1fr;}
  :root{--pad:26px; --gap:18px;}
}
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto;}
  .blob{animation:none;}
  [data-animate]{opacity:1; transform:none; transition:none;}
  .cell{transition:none;}
}

/* ===== Academy page ===== */
.academy-hero{
  background:linear-gradient(160deg, var(--idunau-bg), var(--idunau-bg2));
  border-color:rgba(22,39,63,0.10);
  text-align:center;
  padding:56px 32px;
  margin-bottom:var(--gap);
}
.academy-hero .tag{position:relative; z-index:1; color:#8a4c0c; background:rgba(241,128,31,0.16); margin:0 auto 16px;}
:root[data-theme="dark"] .academy-hero .tag{color:#FFD9AE; background:rgba(241,128,31,0.22);}
.academy-hero h1{position:relative; z-index:1; font-family:var(--font-display); color:var(--idunau-navy); font-size:clamp(30px,5vw,46px); font-weight:700; letter-spacing:-0.01em; margin:0 0 16px;}
.academy-hero h1 .accent{color:var(--idunau-orange);}
.academy-hero p.lead{position:relative; z-index:1; max-width:560px; margin:0 auto 28px; color:var(--idunau-navy-soft); font-size:16.5px; line-height:1.6;}
.academy-hero .academy-cta{position:relative; z-index:1; font-size:15.5px; padding:15px 28px;}
.academy-hero .tagline-strap{position:relative; z-index:1; margin-top:16px; font-family:var(--font-display); font-style:italic; color:var(--idunau-navy-soft); font-size:14px;}
.academy-logo{position:relative; z-index:1; display:block; margin:0 auto 18px; width:76px; height:76px; border-radius:22px; box-shadow:0 14px 30px -14px rgba(20,30,24,0.35);}

/* decorative floating icons in the academy hero */
.academy-decor{position:absolute; inset:0; z-index:0; pointer-events:none; overflow:hidden;}
.academy-decor svg{position:absolute; opacity:.16; fill:none; stroke:currentColor; stroke-width:1.8;}
.academy-decor .d1{top:22px; left:34px; width:52px; height:52px; color:var(--idunau-orange); transform:rotate(-12deg);}
.academy-decor .d2{top:30px; right:40px; width:44px; height:44px; color:var(--idunau-teal); transform:rotate(10deg);}
.academy-decor .d3{bottom:26px; left:60px; width:38px; height:38px; color:var(--blue); transform:rotate(8deg);}
.academy-decor .d4{bottom:20px; right:64px; width:46px; height:46px; color:var(--idunau-coral); transform:rotate(-8deg);}
@media (max-width:760px){ .academy-decor{display:none;} }

/* free / urgency banner */
.free-banner{position:relative; z-index:1; margin:0 0 22px;}
.free-banner-pill{
  display:inline-flex; align-items:center; gap:8px;
  background:linear-gradient(135deg, var(--idunau-coral), var(--idunau-orange));
  color:#fff; font-weight:700; font-size:13.5px; letter-spacing:.01em;
  padding:9px 20px; border-radius:99px;
  box-shadow:0 12px 26px -10px rgba(232,84,74,0.5);
}
.free-banner-pill strong{font-weight:800;}
.free-banner-icon{font-size:15px; line-height:1;}

/* visible icon band - graduation cap, lightbulb, book, rocket, trophy, brain */
.academy-icon-band{display:flex; align-items:flex-end; justify-content:center; gap:22px; flex-wrap:wrap; margin-bottom:var(--gap);}
.icon-badge{
  width:60px; height:60px; border-radius:18px; flex:0 0 auto;
  display:flex; align-items:center; justify-content:center; color:#fff;
  box-shadow:0 12px 24px -10px rgba(20,30,24,0.32);
  transition:transform .25s ease, box-shadow .25s ease;
}
.icon-badge svg{width:28px; height:28px;}
.icon-badge:hover{transform:translateY(-5px) scale(1.05); box-shadow:0 16px 30px -10px rgba(20,30,24,0.4);}
.icon-badge.orange{background:linear-gradient(155deg, var(--idunau-orange), var(--idunau-orange-deep));}
.icon-badge.coral{background:linear-gradient(155deg, var(--idunau-coral), var(--idunau-coral-deep));}
.icon-badge.blue{background:linear-gradient(155deg, var(--blue), var(--blue-deep));}
.icon-badge.purple{background:linear-gradient(155deg, var(--idunau-purple), var(--idunau-purple-deep));}
.icon-badge.teal{background:linear-gradient(155deg, var(--idunau-teal), var(--idunau-teal-deep));}
.icon-badge.green{background:linear-gradient(155deg, var(--green), var(--green-deep));}
.icon-badge:nth-child(odd){transform:translateY(-9px);}
.icon-badge:nth-child(odd):hover{transform:translateY(-14px) scale(1.05);}
@media (max-width:560px){
  .icon-badge{width:46px; height:46px; border-radius:14px;}
  .icon-badge svg{width:21px; height:21px;}
  .academy-icon-band{gap:12px;}
  .icon-badge:nth-child(odd){transform:translateY(-5px);}
}

.academy-section{margin-bottom:var(--gap);}
.academy-section .section-label{color:var(--idunau-orange-deep);}
:root[data-theme="dark"] .academy-section .section-label{color:var(--idunau-orange);}
.academy-list{display:grid; grid-template-columns:1fr 1fr; gap:14px;}
.academy-list.single{grid-template-columns:1fr;}
.academy-list-item{display:flex; align-items:center; gap:14px; padding:18px 20px;}
.academy-list-item .pt-icon{flex:0 0 auto; width:38px; height:38px; border-radius:11px; display:flex; align-items:center; justify-content:center; color:#fff;}
.academy-list-item .pt-icon svg{width:19px; height:19px;}
.academy-list-item span.label{font-size:14.5px; font-weight:600;}

/* module curriculum grid */
.academy-modules-label{font-family:var(--font-display); font-size:15px; font-weight:600; margin:28px 0 16px; color:var(--idunau-orange-deep);}
:root[data-theme="dark"] .academy-modules-label{color:var(--idunau-orange);}
.academy-modules-grid{display:grid; grid-template-columns:repeat(3, 1fr); gap:var(--gap);}
.module-card{
  background:var(--card); border:1px solid var(--border); border-radius:var(--r-lg);
  box-shadow:var(--shadow); overflow:hidden; position:relative;
  transition:transform .3s cubic-bezier(.2,.8,.2,1), box-shadow .3s ease;
}
.module-card:hover{transform:translateY(-4px); box-shadow:var(--shadow-hover);}
.module-card-img{aspect-ratio:3/2; overflow:hidden; background:var(--idunau-bg2);}
.module-card-img img{width:100%; height:100%; object-fit:cover; display:block;}
.module-card .module-num{
  position:absolute; top:14px; left:14px; z-index:1;
  width:32px; height:32px; border-radius:10px; color:#fff;
  display:flex; align-items:center; justify-content:center;
  font-family:var(--font-display); font-weight:700; font-size:13px;
  box-shadow:0 8px 18px -8px rgba(0,0,0,0.45);
}
.module-card:nth-child(1) .module-num{background:var(--idunau-orange);}
.module-card:nth-child(2) .module-num{background:var(--idunau-coral);}
.module-card:nth-child(3) .module-num{background:var(--blue);}
.module-card:nth-child(4) .module-num{background:var(--idunau-purple);}
.module-card:nth-child(5) .module-num{background:var(--idunau-teal);}
.module-card:nth-child(6) .module-num{background:var(--green);}
.module-card h4{font-family:var(--font-display); font-size:16px; font-weight:600; margin:16px 18px 6px;}
.module-card p{margin:0 18px 18px; font-size:13.5px; color:var(--text-dim); line-height:1.55;}
@media (max-width:860px){
  .academy-modules-grid{grid-template-columns:repeat(2, 1fr);}
}
@media (max-width:560px){
  .academy-modules-grid{grid-template-columns:1fr;}
}
.academy-list-item.orange{background:linear-gradient(160deg, var(--idunau-orange-tint), var(--card) 65%); border-color:rgba(241,128,31,0.24);}
.academy-list-item.orange .pt-icon{background:var(--idunau-orange);}
.academy-list-item.green{background:linear-gradient(160deg, var(--green-tint), var(--card) 65%); border-color:rgba(20,147,97,0.24);}
.academy-list-item.green .pt-icon{background:var(--green);}
.academy-list-item.blue{background:linear-gradient(160deg, var(--blue-tint), var(--card) 65%); border-color:rgba(53,86,232,0.24);}
.academy-list-item.blue .pt-icon{background:var(--blue);}
.academy-list-item.teal{background:linear-gradient(160deg, var(--idunau-teal-tint), var(--card) 65%); border-color:rgba(14,147,166,0.24);}
.academy-list-item.teal .pt-icon{background:var(--idunau-teal);}
.academy-list-item.coral{background:linear-gradient(160deg, var(--idunau-coral-tint), var(--card) 65%); border-color:rgba(232,84,74,0.24);}
.academy-list-item.coral .pt-icon{background:var(--idunau-coral);}
.academy-list-item.purple{background:linear-gradient(160deg, var(--idunau-purple-tint), var(--card) 65%); border-color:rgba(109,91,208,0.24);}
.academy-list-item.purple .pt-icon{background:var(--idunau-purple);}

.feature-strip{
  display:grid; grid-template-columns:repeat(4, 1fr); gap:2px;
  background:var(--idunau-navy); color:var(--idunau-bg);
  border-radius:var(--r-lg); overflow:hidden; margin-bottom:var(--gap);
}
:root[data-theme="dark"] .feature-strip{background:#131B2E; color:#F5E7CE;}
.feature-strip div{display:flex; flex-direction:column; align-items:center; gap:8px; text-align:center; padding:22px 12px; font-size:12.5px; font-weight:600;}

.academy-final-cta{
  background:linear-gradient(160deg, var(--idunau-bg), var(--idunau-bg2));
  border-color:rgba(22,39,63,0.10);
  text-align:center;
  padding:44px 32px;
}
.academy-final-cta h2{font-family:var(--font-display); color:var(--idunau-navy); font-size:clamp(22px,3vw,28px); font-weight:700; letter-spacing:-0.01em; margin:0 0 10px;}
.academy-final-cta p{max-width:520px; margin:0 auto 22px; color:var(--idunau-navy-soft); font-size:15px; line-height:1.6;}
.academy-final-cta .academy-cta{font-size:15px; padding:14px 26px;}
.feature-strip svg{width:22px; height:22px; color:var(--idunau-orange);}
.feature-strip div:nth-child(2) svg{color:var(--idunau-teal);}
.feature-strip div:nth-child(3) svg{color:var(--blue);}
.feature-strip div:nth-child(4) svg{color:var(--idunau-coral);}

/* ===== Artifacts list page ===== */
.artifact-row{
  display:grid; grid-template-columns:220px 1fr; gap:26px; align-items:stretch;
  margin-bottom:var(--gap);
}
.artifact-row .preview{
  border-radius:var(--r-md); background:linear-gradient(155deg, var(--green-tint), var(--blue-tint));
  display:flex; align-items:center; justify-content:center; min-height:150px;
  color:var(--text-dim); font-size:12px; font-weight:600; text-align:center; padding:14px;
  border:1px dashed var(--border);
}
.artifact-row .preview svg{width:34px; height:34px; opacity:.5;}
.artifact-row .preview.has-image{border-style:solid; padding:0; overflow:hidden;}
.artifact-row .preview.has-image img{width:100%; height:100%; object-fit:cover; display:block; border-radius:inherit;}
.artifact-row .content{display:flex; flex-direction:column; justify-content:center; gap:10px;}
.artifact-row h3{font-family:var(--font-display); font-size:19px; font-weight:600; margin:0;}
.artifact-row p{margin:0; font-size:14.5px; line-height:1.6; color:var(--text-dim);}
.artifact-row .artifact-link{
  display:inline-flex; align-self:flex-start; align-items:center; gap:7px;
  margin-top:4px; font-size:13.5px; font-weight:600; color:var(--green-deep); text-decoration:none;
}
.artifact-row .artifact-link:hover{text-decoration:underline;}
@media (max-width:640px){
  .artifact-row{grid-template-columns:1fr;}
  .artifact-row .preview{min-height:120px;}
}
