:root{--navy:#062e75;--blue:#007ce7;--light:#f4f8fd;--muted:#5b6b88}*{box-sizing:border-box}body{margin:0;background:var(--light);color:var(--navy);font-family:Arial,Helvetica,sans-serif;-webkit-font-smoothing:antialiased}.header{height:94px;padding:4px 4.6%;display:flex;align-items:center;justify-content:space-between;gap:24px;background:#fff}.brand{display:flex;align-items:center;gap:20px;text-decoration:none;color:var(--navy)}.brand img{width:80px;height:86px;object-fit:contain}.brand span{font-size:20px;font-weight:800;line-height:1.1;letter-spacing:.2px}.brand strong{display:block;font-size:45px;letter-spacing:-1.5px}.department{display:flex;align-items:center;gap:16px;text-align:right}.department strong{display:block;font-size:22px}.department span{display:block;font-size:13px;margin-top:4px;position:relative}.department span:after{content:'';position:absolute;right:0;bottom:-12px;width:60px;height:4px;border-radius:8px;background:#13a2ef}.department svg{width:48px;height:58px;fill:none;stroke:var(--navy);stroke-width:3}.hero{height:480px;position:relative;background:#0c3b70 url('assets/hero.png') center center/cover no-repeat;isolation:isolate}.hero-copy{position:relative;padding:50px 4.7% 80px;z-index:1}.eyebrow{font-size:20px;letter-spacing:1.8px;margin:0 0 27px}.eyebrow:after{content:'';display:block;background:#20b9f3;width:90px;height:3px;margin-top:10px}.hero h1{font-size:clamp(44px,4.6vw,78px);line-height:.99;letter-spacing:-2px;margin:0;color:white;font-weight:800}.hero h1 span{color:#99e9ff}.intro{font-size:clamp(19px,1.8vw,29px);color:white;margin:16px 0 20px}.eyebrow{color:white}.papal{display:inline-flex;gap:20px;align-items:center;padding:13px 24px;border:2px solid #ffd04a;border-radius:40px;color:#ffd04a;font-size:24px;font-weight:bold;background:#052d60b3}.papal svg{width:42px;height:34px;stroke:currentColor;stroke-width:1.5;fill:none}.papal>span:last-child{font-size:34px;font-weight:normal;line-height:1}.wave{position:absolute;bottom:-1px;left:0;width:100%;height:80px;z-index:2}.platforms{padding:0 3.8% 20px;max-width:1800px;margin:-10px auto 0;position:relative;z-index:3}.platforms h2{font-size:40px;margin:0 0 3px;letter-spacing:-1px;padding-left:14px}.section-intro{margin:0 0 18px;padding-left:14px;color:var(--muted);font-size:22px}.cards{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:16px}.card{display:flex;flex-direction:column;background:white;border-radius:17px;padding:12px 30px 16px;box-shadow:0 8px 25px #174a8810;transition:transform .2s,box-shadow .2s;text-decoration:none;color:inherit;min-height:245px;border:1px solid #fff}.card:hover{transform:translateY(-5px);box-shadow:0 12px 28px #174a8820;border-color:#d4e9ff}.card:focus-visible,button:focus-visible,.brand:focus-visible{outline:3px solid #008cf0;outline-offset:5px}.icon{align-self:center;width:94px;height:94px;border-radius:50%;display:grid;place-items:center;background:#e3f4ff;margin-bottom:9px}.icon svg{height:51px;width:51px;stroke:var(--navy);fill:none;stroke-width:2.7;stroke-linecap:round;stroke-linejoin:round}.card h3{font-size:21px;letter-spacing:-.6px;margin:0 0 6px;white-space:nowrap}.card p{font-size:18px;line-height:1.18;color:var(--muted);margin:0 0 10px}.access{font-size:19px;color:#0063ed;margin-top:auto}.access span{margin-left:5px}footer{border-top:1px solid #cbdcec;display:flex;justify-content:space-between;padding:11px 3.8%;font-size:14px}footer span:last-child{color:#6b83a7}dialog{border:0;border-radius:20px;padding:32px;max-width:440px;width:calc(100% - 32px);color:var(--navy);box-shadow:0 20px 100px #001b5080}dialog::backdrop{background:#00193599;backdrop-filter:blur(4px)}dialog h2{font-size:25px}dialog p{color:var(--muted);line-height:1.6}.close{position:absolute;right:12px;top:9px;background:none;color:var(--muted);font-size:28px;border:0;cursor:pointer}.accept{background:var(--navy);color:#fff;padding:12px 22px;border:0;border-radius:9px;cursor:pointer;font-size:16px}.notice-icon{font-size:32px;color:var(--blue)}@media(min-width:1500px){.hero{height:480px}.hero-copy{padding-top:50px}.card{min-height:245px}}@media(max-width:1200px){.brand span{font-size:16px}.brand strong{font-size:36px}.department strong{font-size:18px}.department span{font-size:10px}.card{padding:16px}.card h3{font-size:17px}.card p{font-size:16px}.hero{height:440px}.hero-copy{padding-top:45px}.platforms h2{font-size:34px}.section-intro{font-size:19px}.papal{font-size:20px}}@media(max-width:850px){.header{height:auto;min-height:94px;padding:10px 5%;gap:14px}.brand{gap:10px}.brand img{width:58px;height:65px}.brand span{font-size:11px}.brand strong{font-size:28px}.department strong{font-size:14px}.department span{font-size:9px;max-width:230px;line-height:1.4}.department svg{display:none}.hero{height:430px;background-position:62% center}.hero:before{content:'';position:absolute;inset:0;background:linear-gradient(90deg,#05285cbb,transparent)}.hero-copy{padding-top:42px}.eyebrow{font-size:14px}.hero h1{font-size:48px}.intro{max-width:420px;font-size:19px;line-height:1.4}.papal{font-size:17px;padding:10px 16px;gap:12px}.papal svg{width:30px}.cards{grid-template-columns:repeat(2,minmax(0,1fr))}.card{min-height:238px;padding:20px}.card h3{font-size:21px}.card:last-child{grid-column:1/-1}.platforms{padding:5px 5% 28px}.platforms h2,.section-intro{padding-left:0}.card p{font-size:17px}.icon{width:80px;height:80px}.icon svg{width:44px;height:44px}}@media(max-width:480px){.header{flex-wrap:wrap;justify-content:center;gap:10px;padding:12px 5% 20px}.brand img{height:70px;width:66px}.brand span{font-size:15px}.brand strong{font-size:35px}.department{text-align:center;width:100%;justify-content:center}.department span{max-width:none}.department span:after{right:calc(50% - 30px);bottom:-9px}.hero{height:430px;background-position:67% center}.hero:before{background:#05285c80}.hero-copy{padding-top:35px}.eyebrow{font-size:11px;letter-spacing:1.4px;margin-bottom:24px}.hero h1{font-size:39px;letter-spacing:-1.4px}.intro{font-size:17px;max-width:270px}.papal{font-size:15px;gap:10px;margin-top:8px}.platforms h2{font-size:28px}.section-intro{font-size:16px;line-height:1.4}.cards{gap:12px}.card{padding:17px 12px;min-height:250px}.card h3{font-size:16px;white-space:normal;letter-spacing:-.3px}.card p{font-size:15px;line-height:1.35}.access{font-size:16px}.icon{width:68px;height:68px}.icon svg{height:38px;width:38px}footer{gap:12px;flex-direction:column;font-size:12px;padding:16px 5%}}@media(prefers-reduced-motion:reduce){*{transition:none!important}}

/* Fit the complete desktop portal to the available browser viewport. */
@media (min-width: 851px) {
  body { min-height: 600px; min-height: max(600px, 100dvh); display: grid; grid-template-rows: clamp(66px, 10dvh, 94px) 1fr clamp(30px, 4dvh, 40px); }
  .header { height: 100%; min-height: 0; }
  .brand { gap: clamp(10px, 1.3vw, 20px); }
  .brand img { height: clamp(58px, 9dvh, 86px); width: clamp(54px, 8.5dvh, 80px); }
  .brand span { font-size: clamp(12px, 1.2vw, 20px); }
  .brand strong { font-size: clamp(28px, 2.7vw, 45px); }
  .department strong { font-size: clamp(15px, 1.35vw, 22px); }
  .department span { font-size: clamp(9px, .8vw, 13px); }
  .department svg { height: clamp(40px, 6.2dvh, 58px); width: clamp(34px, 3vw, 48px); }
  main { display: grid; grid-template-rows: minmax(280px, 1fr) auto; min-height: 0; }
  .hero { height: auto; min-height: 0; }
  .hero-copy { padding: clamp(22px, 4.6dvh, 50px) 4.7% 50px; }
  .eyebrow { font-size: clamp(12px, 2dvh, 20px); margin-bottom: clamp(12px, 2.3dvh, 27px); }
  .eyebrow:after { margin-top: 8px; }
  .hero h1 { font-size: clamp(36px, min(4.6vw, 8dvh), 78px); }
  .intro { font-size: clamp(16px, min(1.8vw, 3dvh), 29px); margin: clamp(9px, 1.6dvh, 16px) 0; }
  .papal { font-size: clamp(16px, 2.5dvh, 24px); padding: clamp(7px, 1.2dvh, 13px) 22px; gap: 16px; }
  .papal svg { height: clamp(24px, 3.5dvh, 34px); width: 36px; }
  .papal>span:last-child { font-size: 28px; }
  .wave { height: clamp(38px, 7.5dvh, 80px); }
  .platforms { width: 100%; margin: -6px auto 0; padding: 0 3.8% clamp(10px, 2dvh, 20px); }
  .platforms h2 { font-size: clamp(26px, 4.3dvh, 40px); }
  .section-intro { font-size: clamp(15px, 2.3dvh, 22px); margin-bottom: clamp(10px, 1.8dvh, 18px); }
  .cards { gap: clamp(10px, 1vw, 16px); }
  .card { min-height: 0; padding: clamp(10px, 1.3dvh, 14px) clamp(12px, 1.8vw, 30px); }
  .icon { width: clamp(54px, 9dvh, 94px); height: clamp(54px, 9dvh, 94px); margin-bottom: clamp(6px, 1dvh, 9px); flex-shrink: 0; }
  .icon svg { width: 55%; height: 55%; }
  .card h3 { white-space: normal; font-size: clamp(15px, min(1.3vw, 2.3dvh), 21px); line-height: 1.15; letter-spacing: -.4px; }
  .card p { font-size: clamp(13px, min(1.1vw, 1.95dvh), 18px); line-height: 1.2; margin-bottom: clamp(7px, 1dvh, 10px); }
  .access { font-size: clamp(14px, 2dvh, 19px); }
  footer { align-items: center; padding-top: 0; padding-bottom: 0; font-size: clamp(11px, 1.5dvh, 14px); }
}
@media (min-width: 851px) and (max-height: 680px) {
  body { grid-template-rows: 60px 1fr 26px; }
  .brand img { height: 54px; width: 51px; }
  main { grid-template-rows: minmax(235px, 1fr) auto; }
  .hero-copy { padding-top: 18px; padding-bottom: 38px; }
  .eyebrow { margin-bottom: 12px; font-size: 12px; }
  .hero h1 { font-size: clamp(34px, 6.8dvh, 44px); }
  .intro { font-size: 16px; margin: 9px 0; }
  .papal { padding: 6px 18px; font-size: 15px; }
  .papal svg { height: 23px; }
  .wave { height: 35px; }
  .platforms h2 { font-size: 26px; }
  .section-intro { font-size: 14px; margin-bottom: 8px; }
  .platforms { padding-bottom: 9px; }
  .card { padding: 9px 12px; }
  .icon { width: 46px; height: 46px; margin-bottom: 5px; }
  .card h3 { font-size: 14px; margin-bottom: 5px; }
  .card p { font-size: 12px; line-height: 1.2; margin-bottom: 7px; }
  .access { font-size: 13px; }
}

/* Immersive blue-hour environment and unified platform icon system. */
:root { --light: #071a34; --muted: #b7cce3; --cyan: #70deff; }
body { background: #071a34; }
.header { position: relative; z-index: 5; box-shadow: 0 1px 0 #80dfff55, 0 6px 28px #00132840; }
main { position: relative; isolation: isolate; background: #071a34; }
main::before { content: ''; position: absolute; z-index: -1; inset: 0; pointer-events: none; background: radial-gradient(ellipse at 15% 90%, #0873bd25, transparent 50%); }
.hero { background-position: center 40%; }
.hero::after { content: ''; position: absolute; inset: 0; pointer-events: none; background: linear-gradient(0deg, #071a34 0%, #071a3400 28%), linear-gradient(90deg, #02152f38, transparent 65%); }
.hero-copy { z-index: 2; }
.eyebrow { font-weight: 600; color: #c9eaff; }
.eyebrow:after { height: 2px; box-shadow: 0 0 18px #30caff; }
.hero h1 { text-shadow: 0 4px 30px #00172c66; }
.hero h1 span { background: linear-gradient(110deg, #d4f8ff, #66d5ff 85%); -webkit-background-clip: text; background-clip: text; color: transparent; }
.intro { color: #e6f3ff; text-shadow: 0 2px 10px #00172c; }
.papal { border: 1px solid #edce716e; background: linear-gradient(110deg, #123657b3, #09233b99); backdrop-filter: blur(14px); color: #ffe4a1; box-shadow: inset 0 1px 0 #fff2, 0 6px 24px #00102033; }
.wave { display: none; }
.platforms { color: #f3f9ff; }
.platforms h2 { font-weight: 700; letter-spacing: -.8px; }
.section-intro { color: #aac2dd; }
.cards { perspective: 1000px; }
.card { position: relative; overflow: hidden; background: linear-gradient(145deg, #21476880, #0a2547b8); border: 1px solid #8dbce82b; border-radius: 18px; color: #f0f8ff; box-shadow: inset 0 1px 0 #c3e5ff0d, 0 8px 24px #000e2429; backdrop-filter: blur(20px); transition: transform .25s ease, border-color .25s ease, background .25s ease, box-shadow .25s ease; }
.card::before { content: ''; position: absolute; inset: 0; pointer-events: none; opacity: 0; background: radial-gradient(250px circle at var(--pointer-x, 50%) var(--pointer-y, 0%), #5bcaff22, transparent 70%); transition: opacity .25s; }
.card::after { content: ''; position: absolute; height: 2px; left: 25%; right: 25%; bottom: 0; background: linear-gradient(90deg, transparent, #50cbff, transparent); opacity: .3; transition: opacity .25s; }
.card:hover { transform: translateY(-4px); border-color: #60d6ff88; background: linear-gradient(145deg, #285d8380, #0c3158e0); box-shadow: 0 12px 30px #000e2455, 0 0 24px #31bfff12; }
.card:hover::before, .card:hover::after { opacity: 1; }
.icon { position: relative; border-radius: 21%; background: linear-gradient(145deg, #2a679050, #0c2c4b90); border: 1px solid #78d8ff40; box-shadow: inset 0 1px 0 #c1efff20, 0 6px 18px #000e2430; }
.icon::after { content: ''; position: absolute; inset: 5px; border: 1px solid #86dcff10; border-radius: 18%; pointer-events: none; }
.icon svg { color: #8ce4ff; stroke: currentColor; stroke-width: 1.65; fill: none; filter: drop-shadow(0 0 5px #50cfff33); transition: transform .25s, filter .25s; }
.card:hover .icon svg { transform: scale(1.08); filter: drop-shadow(0 0 8px #50cfff88); }
.card h3 { color: #f1f8ff; }
.card p { color: #b2c9e2; }
.access { display: flex; align-items: center; justify-content: space-between; gap: 8px; color: #80dcff; padding-top: 8px; border-top: 1px solid #b0ddff17; }
.access .access-arrow { display: grid; place-items: center; width: 25px; height: 25px; margin: 0; background: #6dd9ff12; border: 1px solid #8bdfff26; border-radius: 50%; transition: background .25s, transform .25s; }
.access-arrow svg { width: 13px; height: 13px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.card:hover .access-arrow { transform: translate(1px, -1px); background: #6dd9ff2b; }
footer { color: #93afcd; background: #06162d; border-color: #79c7ff1c; }
footer span:last-child { color: #93afcd; }
dialog { background: #0c2542; color: #f1f8ff; border: 1px solid #66cfff44; box-shadow: 0 25px 100px #000b23aa; }
dialog p { color: #b7cce3; }
.close { color: #b7cce3; }
.accept { background: #77dbff; color: #052341; font-weight: bold; }
.notice-icon { color: #77dbff; }
@media (min-width: 851px) { .platforms { margin-top: 0; } .hero-copy { padding-bottom: 35px; } }
@media (min-width: 851px) and (max-height: 680px) { .access { padding-top: 5px; } .access .access-arrow { width: 21px; height: 21px; } }
@media (max-width: 850px) { .platforms { padding-top: 12px; margin-top: 0; } .hero::after { background: linear-gradient(0deg, #071a34, transparent 30%); } }
@media (prefers-reduced-motion: reduce) { .card:hover, .card:hover .icon svg, .card:hover .access-arrow { transform: none; } }
@media (max-width: 480px) { .hero { background-position: 80% center; } }
