:root{color:#fff;background:#6964e8;font-family:Inter,PingFang SC,Microsoft YaHei,Noto Sans SC,Arial,sans-serif;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased}*{box-sizing:border-box}body{margin:0;min-width:320px}button{font:inherit}.portal-page{min-height:100vh;overflow-x:hidden;background:linear-gradient(180deg,#6474e6,#7064ea)}.portal-content{width:min(100% - 36px,560px);margin:0 auto;padding:clamp(68px,8vh,112px) 0 56px;text-align:center}.portal-logo{display:block;width:82px;height:82px;margin:0 auto;border:1px solid rgba(255,255,255,.74);border-radius:8px;object-fit:cover;box-shadow:0 10px 30px #261f7629}.portal-heading h1{margin:20px 0 0;font-size:30px;line-height:1.18;letter-spacing:0}.portal-heading p{margin:10px 0 0;color:#ffffffdb;font-size:16px;line-height:1.6;letter-spacing:0}.portal-heading strong{display:block;margin-top:18px;font-size:18px;line-height:1.65;letter-spacing:0}.entry-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin-top:30px}.entry-card{display:grid;place-items:center;align-content:center;gap:13px;min-height:112px;padding:16px 10px;border:1px solid rgba(255,255,255,.68);border-radius:8px;background:#ffffff17;color:#fff;cursor:pointer;font-size:18px;font-weight:700;letter-spacing:0;transition:transform .16s ease,background .16s ease,box-shadow .16s ease}.entry-card:hover,.entry-card:focus-visible{background:#ffffff2e;box-shadow:0 12px 26px #201c6c2e;outline:none;transform:translateY(-2px)}.entry-icon{display:grid;place-items:center;width:42px;height:42px;border-radius:8px;color:#fff;box-shadow:0 8px 16px #261f762b}.entry-icon--violet{background:#8d37de}.entry-icon--cyan{background:#2fb9ee}.entry-icon--green{background:#50c943}.entry-icon--orange{background:#f58a4b}.entry-icon--pink{background:#e05c91}.entry-icon--blue{background:#5b7cff}.notice{position:fixed;right:18px;bottom:18px;left:18px;width:fit-content;max-width:calc(100% - 36px);margin:0 auto;padding:12px 18px;border:1px solid rgba(255,255,255,.48);border-radius:8px;background:#292576e0;color:#fff;box-shadow:0 14px 32px #1d19604d;font-size:15px}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;padding:20px;background:#221d607a}.intro-modal{position:relative;width:min(100%,440px);padding:30px 26px 26px;border:1px solid rgba(255,255,255,.58);border-radius:8px;background:#fff;color:#342966;box-shadow:0 20px 46px #201b604d;text-align:center}.intro-modal img{width:68px;height:68px;border-radius:8px;object-fit:cover}.intro-modal h2{margin:14px 0 8px;font-size:26px;letter-spacing:0}.intro-modal p{margin:0;color:#665d85;font-size:16px;line-height:1.8;letter-spacing:0;white-space:pre-line}.modal-close{position:absolute;top:10px;right:10px;display:grid;place-items:center;width:36px;height:36px;border:0;border-radius:50%;background:#f0effb;color:#5b5290;cursor:pointer}.articles-page,.article-detail-page{position:relative;width:min(100% - 36px,640px);min-height:100vh;margin:0 auto;padding:clamp(76px,13vh,180px) 0 64px}.articles-page h1,.article-detail-page>h1{margin:0 0 24px;color:#fff;font-size:30px;line-height:1.2;text-align:center;letter-spacing:0}.back-button{position:fixed;top:20px;left:20px;z-index:5;display:inline-flex;align-items:center;gap:6px;min-height:42px;padding:0 14px;border:1px solid rgba(255,255,255,.5);border-radius:999px;background:#ffffff1c;color:#fff;cursor:pointer;font-size:15px;font-weight:700}.article-list{display:grid;gap:11px}.article-row{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:18px;min-height:58px;padding:0 18px;border:1px solid rgba(255,255,255,.12);border-radius:8px;background:#ffffff1f;color:#fff;cursor:pointer;font-size:16px;text-align:left}.article-row span{min-width:0;overflow-wrap:anywhere}.article-row time{color:#ffffffc7;font-size:14px;white-space:nowrap}.article-card{width:min(100%,720px);margin:0 auto;padding:clamp(26px,5vw,44px);border-radius:8px;background:#fff;color:#251b35;box-shadow:0 22px 54px #231c682e}.article-card header{padding-bottom:18px;border-bottom:1px solid #ece9f4;text-align:center}.article-card h1{margin:0;font-size:clamp(24px,4vw,34px);line-height:1.35;letter-spacing:0}.article-card time{display:block;margin-top:12px;color:#8a819c;font-size:14px}.article-body{display:grid;gap:16px;padding:28px 0}.article-body p{margin:0;color:#4e455f;font-size:16px;line-height:1.9;letter-spacing:0}.article-image{display:block;width:min(100%,760px);max-height:68vh;margin:10px auto;border-radius:8px;object-fit:contain;box-shadow:0 12px 30px #1f18561a}.article-nav{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;padding-top:20px;border-top:1px solid #ece9f4}.article-nav button{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:50px;padding:0 14px;border:1px solid #ddd7f1;border-radius:8px;background:#f6f3ff;color:#6251d8;cursor:pointer;font-size:14px;font-weight:700}.article-nav button:disabled{cursor:not-allowed;opacity:.45}.article-nav span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}@media(min-width:900px){.portal-content{width:min(100% - 48px,560px);padding-top:80px}.portal-logo{width:82px;height:82px}.portal-heading h1{margin-top:14px;font-size:34px}.portal-heading p{margin-top:6px;font-size:20px}.portal-heading strong{margin-top:14px;font-size:22px}.entry-grid{gap:16px;margin-top:24px}.entry-card{min-height:96px;gap:10px;font-size:16px}.entry-icon{width:34px;height:34px}.entry-icon svg{width:22px;height:22px}}@media(max-width:480px){.portal-content{width:min(100% - 32px,440px);padding-top:54px}.portal-logo{width:104px;height:104px}.portal-heading h1{font-size:28px}.portal-heading p{font-size:18px}.portal-heading strong{font-size:19px}.entry-grid{gap:12px;margin-top:28px}.entry-card{min-height:132px;font-size:18px}.articles-page,.article-detail-page{width:min(100% - 28px,440px);padding-top:76px}.articles-page h1{font-size:30px}.back-button{top:14px;left:14px;min-height:38px;padding:0 12px;font-size:14px}.article-row{grid-template-columns:1fr;gap:6px;min-height:78px;padding:12px 16px;font-size:18px}.article-row time{font-size:15px}.article-card{padding:24px 18px}.article-body p{font-size:15px}.article-image{max-height:58vh}.article-nav{grid-template-columns:1fr}}
