:root{font-family:Inter,"PingFang SC","Microsoft YaHei",system-ui,sans-serif;color:#172237;background:#f4f6fa;line-height:1.6}
*{box-sizing:border-box}
body{margin:0;min-height:100vh;background:radial-gradient(circle at 90% 0,#dfe8ff 0,transparent 32%),#f4f6fa}
.portalHeader{background:#172237;color:#fff;border-bottom:3px solid #e8a11d}
.portalHeaderInner{max-width:1120px;min-height:72px;margin:auto;padding:12px 24px;display:flex;align-items:center;gap:12px}
.brandMark{width:42px;height:42px;border-radius:12px;display:grid;place-items:center;background:#2859d9;font-size:22px;font-weight:800}
.portalHeader strong,.portalHeader span{display:block}
.portalHeader strong{font-size:17px}
.portalHeader span{font-size:10px;letter-spacing:.15em;color:#b8c4d9}
.privateBadge{margin-left:auto;padding:6px 11px;border:1px solid #526078;border-radius:999px;font-size:12px;color:#dce4f4}
main{max-width:1120px;margin:auto;padding:64px 24px 80px}
.hero{max-width:740px;margin-bottom:56px}
.eyebrow{margin:0;color:#2859d9;font-size:12px;font-weight:800;letter-spacing:.16em}
h1{font-size:clamp(32px,6vw,54px);line-height:1.14;margin:10px 0 16px;letter-spacing:-.04em}
.hero>p:last-child{font-size:17px;color:#596579;margin:0}
.sectionHead{display:flex;align-items:end;justify-content:space-between;gap:20px;margin-bottom:18px}
.sectionHead h2{font-size:23px;margin:0}
.sectionHead p{margin:4px 0 0;color:#6a7485}
.sectionHead>span{white-space:nowrap;padding:5px 10px;border-radius:999px;background:#e7ecf6;color:#4b5870;font-size:12px}
.projectGrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}
.projectCard{min-height:300px;display:flex;flex-direction:column;padding:24px;border:1px solid #dde3ec;border-radius:20px;background:#fff;color:inherit;text-decoration:none;box-shadow:0 12px 40px rgba(23,34,55,.07);transition:.2s ease}
a.projectCard:hover,a.projectCard:focus-visible{transform:translateY(-3px);border-color:#8da9ee;box-shadow:0 18px 48px rgba(23,34,55,.12);outline:3px solid rgba(40,89,217,.18);outline-offset:2px}
.projectIcon{width:52px;height:52px;border-radius:15px;display:grid;place-items:center;background:#e8efff;color:#2859d9;font-size:21px;font-weight:800}
.projectBody{display:flex;flex:1;flex-direction:column}
.projectMeta{display:flex;justify-content:space-between;margin-top:22px;color:#60708d;font-size:12px}
.projectMeta span:last-child{color:#217a4c}
.projectCard h3{font-size:24px;margin:8px 0 7px}
.projectCard p{margin:0;color:#667186}
.projectStats{display:flex;gap:16px;flex-wrap:wrap;margin-top:22px;padding-top:18px;border-top:1px solid #edf0f5;color:#69758a;font-size:12px}
.projectStats b{color:#172237;font-size:15px}
.enter{margin-top:auto;padding-top:20px;color:#2859d9}
.placeholder{border-style:dashed;background:rgba(255,255,255,.58);box-shadow:none}
.placeholder .projectIcon{background:#edf0f5;color:#8a94a4}
footer{text-align:center;padding:24px;color:#758096;font-size:12px}
@media(max-width:700px){main{padding:42px 18px 60px}.portalHeaderInner{padding-inline:18px}.projectGrid{grid-template-columns:1fr}.projectCard{min-height:280px}.sectionHead{align-items:start}.privateBadge{font-size:0}.privateBadge::after{content:"私人";font-size:12px}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}
