:root{font-family:system-ui,'Noto Sans JP',sans-serif;color:#132035}*{box-sizing:border-box}body{margin:0;background:#f5f7fa}a{text-decoration:none}.portal-header{display:flex;justify-content:space-between;align-items:center;gap:22px;padding:20px clamp(20px,5vw,75px);background:#0c1628;color:white}.logo{font-size:21px;font-weight:950;letter-spacing:.06em;color:white}.logo span{font-size:10px;display:block;letter-spacing:.18em;color:#e74a60}.portal-header nav{display:flex;gap:22px;flex-wrap:wrap}.portal-header nav a{color:#ecf1fa;font-size:12px;font-weight:700}.hero{background:linear-gradient(110deg,#0a172c,#203b63 70%,#0b1a31);color:white;min-height:470px;display:flex;align-items:center}.inner{width:min(1140px,90%);margin:auto;padding:70px 0}.eyebrow{font-size:12px;font-weight:850;letter-spacing:.22em;color:#ef6372}.hero h1{font-size:clamp(34px,6vw,78px);line-height:1.3;margin:20px 0}.hero p{font-size:clamp(15px,2vw,20px);color:#d2e1f3}.cta{display:inline-block;background:#df304b;padding:15px 23px;color:#fff;font-weight:800;margin-top:20px}.portal-main{max-width:1140px;padding:65px 20px;margin:auto}.portal-main h2{font-size:clamp(27px,4vw,41px);margin:12px 0}.dark{color:#d62c48}.lead{color:#68788e}.search{display:flex;gap:10px;align-items:end;max-width:600px;margin:24px 0}.search label{flex:1;display:grid;gap:7px;font-weight:600;font-size:13px}.search input{padding:13px;border:1px solid #ccd5e3;border-radius:7px;font:inherit;min-width:0}.search button{padding:14px 21px;background:#d72d4a;color:white;border:0;border-radius:7px;font-weight:750;cursor:pointer}.cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:18px}.team{display:block;background:white;padding:25px;border:1px solid #e2e7ef;border-radius:9px;color:#11203a}.team small{color:#d32e48;letter-spacing:.18em}.team h3{font-size:23px;margin:35px 0}.team span{color:#445a79;font-weight:700;font-size:12px}.join{margin-top:72px;padding:45px;background:#101b2e;color:white}.join h2{max-width:780px}.join p:last-child{color:#d6dce5}footer{padding:28px;text-align:center;background:#0b1526;color:#c0cede;font-size:12px}@media(max-width:680px){.portal-header{align-items:start;display:block}.portal-header nav{padding-top:16px}.search{flex-direction:column;align-items:stretch}.join{padding:28px}}
