/* Homepage only: bring usable content into the first two screens. */
.portal-home{overflow-x:clip}
.portal-home #main:focus{outline:none}
.portal-home .hero{min-height:0;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.65fr);gap:32px;padding:34px 0 76px;align-items:center}
.portal-home .hero-copy{min-width:0}
.portal-home .welcome{font-size:18px;letter-spacing:.17em;margin-bottom:15px}
.portal-home .hero-njfu{font-size:clamp(105px,10vw,142px)}
.portal-home .title-spark{font-size:28px;right:-45px;top:7px}
.portal-home .guide-title{font-size:clamp(43px,4.7vw,63px);margin-top:15px}
.portal-home .hero-description{display:block;margin-top:24px}
.portal-home .hero-description h2{font-size:16px;letter-spacing:.06em}
.portal-home .hero-description p{border:0;padding:0;margin-top:11px;font-size:12px;color:#8f9f92;max-width:none}
.portal-home .hero-actions{margin-top:24px;gap:23px}
.portal-home .hero-actions .button{min-height:45px;font-size:12px;gap:25px}
.portal-home .hero-actions .text-link{font-size:11px;gap:12px}
.portal-home .hero-art{width:480px;height:390px;right:29%;top:0;opacity:.38;mask-image:linear-gradient(90deg,transparent,#000 35%,transparent);animation:none}
.portal-home .art-floor{display:none}
.portal-home .hero-baseline{min-height:44px;font-size:10px}
.portal-home .campus-names{font-size:11px;gap:14px}
.portal-home .scroll-link{gap:18px;color:#a6b69e}
.notice-board{min-width:0;position:relative;z-index:2;padding:20px 22px 5px;background:linear-gradient(145deg,#172018ee,#101510f5);border:1px solid #b0ed8d23;border-radius:17px;box-shadow:0 18px 55px #0002;animation:arrival .8s .1s both}
.notice-heading{display:flex;align-items:center;justify-content:space-between;gap:15px;margin-bottom:15px}
.notice-heading h2{display:flex;align-items:center;gap:9px;font-size:14px;font-weight:550;letter-spacing:.04em}
.notice-heading>span{font-size:10px;color:#7f927c}
.notice-dot{width:5px;height:5px;border-radius:50%;background:var(--green);box-shadow:0 0 12px #b0ed8d55}
.notice-feature{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:19px 17px;border:1px solid #e9c4d320;border-radius:10px;background:radial-gradient(ellipse at 100% 0,#b9819920,transparent 80%),#1c1c20;overflow:hidden;margin-bottom:6px}
.notice-feature-copy{position:relative;z-index:1;min-width:0}
.notice-tag{display:flex;align-items:center;gap:12px;font-size:9px;color:#d3a8bb;letter-spacing:.05em}
.notice-tag time{color:#9f8c98;font-family:monospace;font-size:10px}
.notice-feature h3{font-size:26px;font-weight:500;letter-spacing:-.03em;line-height:1.35;margin:11px 0 9px;color:#efe5ec}
.notice-feature p{font-size:10px;color:#b5a4b1;line-height:1.7}
.notice-feature-link{display:flex;align-items:center;gap:16px;font-size:11px;color:#e1b7cb;margin-top:14px}
.notice-feature-link>span{font-size:16px;transition:transform .2s}
.notice-feature:hover .notice-feature-link>span{transform:translate(3px,-3px)}
.notice-feature img{display:block;flex-shrink:0;width:clamp(115px,12vw,166px);height:auto;aspect-ratio:1;object-fit:contain;border:6px solid #eadfd3;border-bottom-width:17px;border-radius:5px;transform:rotate(6deg);box-shadow:0 6px 22px #0004;transition:transform .35s}
.notice-feature:hover img{transform:rotate(3deg) translateY(-3px)}
.notice-row{display:flex;align-items:center;gap:10px;padding:14px 1px;font-size:11px;line-height:1.65;color:#b8c6b4}
.notice-row+.notice-row{border-top:1px solid #b2d8a315}
.notice-row-label{font-size:9px;color:#8d9f84;white-space:nowrap}
.notice-row>span:last-child{margin-left:auto;color:#8aac7e;font-size:16px;flex-shrink:0}
.notice-row:hover{color:var(--green)}
.portal-shortcuts{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-top:21px}
.portal-shortcut{display:flex;align-items:center;gap:13px;padding:19px 17px;background:#111612;border:1px solid #a9d5951b;border-radius:12px;transition:background .2s,border-color .2s,transform .2s;min-width:0}
.portal-shortcut:hover{background:#19231a;border-color:#a9d59544;transform:translateY(-3px)}
.shortcut-icon{width:40px;height:40px;display:grid;place-items:center;flex-shrink:0;color:#b1ce9d;border-radius:11px;background:#b0ed8d0b}
.shortcut-icon svg{width:23px;height:23px;fill:none;stroke:currentColor;stroke-width:1.25;stroke-linecap:round;stroke-linejoin:round}
.shortcut-icon img{width:100%;height:100%;display:block;object-fit:contain;border-radius:50%}
.shanshan-icon{background:#dfead5;border-radius:50%;padding:4px}
.sakura-shortcut{background:none}
.portal-shortcut>span:nth-child(2){min-width:0}
.portal-shortcut strong{display:block;font-size:13px;font-weight:500;line-height:1.7;color:#dbe5d6}
.portal-shortcut small{display:block;font-size:10px;line-height:1.6;color:#80937d;margin-top:4px}
.shortcut-arrow{margin-left:auto;color:#8eb57c;font-size:16px;flex-shrink:0}
.portal-discover{padding-top:48px}
.portal-section-heading{display:flex;justify-content:space-between;align-items:end;gap:20px;margin-bottom:22px}
.portal-kicker{font-size:9px;letter-spacing:.12em;color:#76906e;margin-bottom:9px}
.portal-section-heading h2{font-size:29px;font-weight:500;letter-spacing:-.03em}
.portal-section-heading .text-link{font-size:11px;gap:12px;padding-bottom:3px}
.portal-columns{display:grid;grid-template-columns:minmax(0,1.9fr) minmax(275px,1fr);gap:22px;align-items:start}
.updates-panel{background:#101511;border:1px solid #b0ed8d1d;border-radius:14px;overflow:hidden}
.feed-filters{display:flex;gap:8px;padding:17px 22px;border-bottom:1px solid #b0ed8d17}
.feed-filters button{display:flex;align-items:center;gap:7px;color:#91a28b;font-size:11px;min-height:35px;padding:7px 12px;border:1px solid transparent;border-radius:7px;white-space:nowrap;transition:color .2s,background .2s}
.feed-filters button span{font-size:9px;opacity:.65;font-variant-numeric:tabular-nums}
.feed-filters button[aria-pressed=true]{color:#d8edce;background:#b0ed8d10;border-color:#b0ed8d2e}
.feed-filters button:hover{color:var(--green)}
.feed-filters[hidden],.update-entry[hidden]{display:none!important}
.update-entry{margin:0 24px;border-bottom:1px solid #b0ed8d13}
.update-entry summary{display:grid;grid-template-columns:100px minmax(0,1fr) 19px;align-items:center;gap:19px;padding:22px 0;list-style:none;cursor:pointer}
.update-entry summary::-webkit-details-marker{display:none}
.update-meta{display:flex;flex-direction:column;align-items:start;gap:9px}
.update-category{font-size:9px;line-height:1;padding:5px 7px;border:1px solid #b0ed8d28;border-radius:4px;color:#b9d7a8;background:#b0ed8d05}
.category-new{color:#d9bdcb;border-color:#d9bdcb30;background:#d9bdcb08}
.category-community{color:#ceca9a;border-color:#ceca9a2e;background:#ceca9a06}
.update-meta time,.update-time{font-size:9px;color:#748a72;line-height:1.6;font-variant-numeric:tabular-nums}
.update-summary strong{display:block;font-size:14px;line-height:1.65;color:#d9e5d5;font-weight:450;transition:color .2s}
.update-summary>span{display:block;font-size:11px;line-height:1.8;color:#7e957b;margin-top:5px}
.update-entry summary:hover .update-summary strong{color:var(--green)}
.update-toggle{font-size:18px;color:#859e7d;transition:transform .2s}
.update-entry[open] .update-toggle{transform:rotate(45deg)}
.update-entry[open] .update-summary strong{color:#cbe8bc}
.update-body{padding:0 38px 23px 119px;font-size:12px;color:#a6b59e;line-height:1.95}
.update-body p{margin-bottom:13px}
.update-body a{display:inline-flex;align-items:center;gap:15px;color:#bfdcae;font-size:11px;min-height:32px}
.update-body a:hover{color:var(--green)}
.updates-footer{display:flex;align-items:center;justify-content:space-between;gap:15px;padding:19px 24px;font-size:9px;color:#758970;line-height:1.8}
.updates-footer a{color:#a2b595}
.portal-sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.portal-sidebar{display:grid;gap:18px}
.journal-digest{border:1px solid #d9bdd123;border-radius:14px;background:linear-gradient(135deg,#211c2370,#141318);padding:23px}
.digest-heading{display:flex;align-items:center;gap:11px;padding-bottom:18px;border-bottom:1px solid #d9bdd11c}
.digest-heading img{border-radius:50%;width:35px;height:35px;object-fit:cover}
.digest-heading h3{font-size:14px;font-weight:500;color:#e0cedd}
.digest-heading>div>span{display:block;font-size:9px;color:#917a92;margin-top:5px}
.digest-heading>a{margin-left:auto;color:#cbaac1;font-size:20px;padding:6px}
.digest-story{display:block;padding-top:19px}
.digest-story+.digest-story{border-top:1px solid #d9bdd117;margin-top:20px}
.digest-meta{display:flex;justify-content:space-between;gap:10px;font-size:9px;line-height:1.8;color:#c3a0b6}
.digest-meta>span{color:#867289;font-size:8px}
.digest-story h4{font-size:18px;font-weight:450;line-height:1.55;color:#ddd0e0;margin-top:12px;letter-spacing:-.02em}
.digest-story:hover h4{color:#f2c8df}
.digest-story p{font-size:10px;line-height:1.9;color:#9d88a5;margin-top:8px}
.digest-read{display:flex;align-items:center;justify-content:space-between;gap:10px;font-size:9px;color:#bb9dbb;margin-top:14px}
.digest-spoiler{color:#b19a88;font-size:9px}
.source-links{border:1px solid #b0ed8d1c;border-radius:13px;background:#101511;padding:20px 23px 7px}
.source-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;padding-bottom:7px}
.source-heading h3{font-size:13px;font-weight:500;color:#c8d9c0}
.source-heading>span{font-size:8px;color:#75886c}
.source-links>a{display:flex;justify-content:space-between;align-items:center;gap:10px;font-size:11px;line-height:1.7;padding:13px 0;color:#a7b79f;border-bottom:1px solid #b0ed8d10}
.source-links>a:last-child{border:0}
.source-links>a>span{font-size:9px;color:#78916c;flex-shrink:0}
.source-links>a:hover{color:var(--green)}
.portal-home .section{padding-top:60px}
.portal-home .section-heading{margin-bottom:24px}
.portal-home .section-heading h2{font-size:29px}
.portal-home .assistant-card{padding:34px 36px;gap:40px;border-radius:17px}
.portal-home .assistant-identity{margin-top:16px;gap:15px}
.portal-home .shanshan-portrait{width:67px;height:67px}
.portal-home .assistant-identity h3{font-size:30px}
.portal-home .assistant-intro{margin-top:12px}
.portal-home .assistant-collections{margin-top:20px}
.portal-home .assistant-guide{padding:24px}
.portal-home .roadmap{padding-bottom:55px}
.portal-home .card-art{height:117px}
.portal-home .club-flower{font-size:95px}
.portal-home .food-art i{scale:.72}
.portal-home .card-content{padding-top:9px}
.portal-home .card-content h3{font-size:21px}
.portal-home .build-section{padding-block:55px}
.portal-home .build-layout{gap:65px}
.portal-home .build-copy h2{font-size:43px}
.portal-home .afterword{padding-top:43px}
.portal-home .closing{padding-block:50px 45px}
.portal-home .closing h2{font-size:60px}
.portal-home .closing-spark{top:49px;font-size:57px}
@media(max-width:1100px){
  .portal-home .hero{gap:30px;grid-template-columns:1.05fr 1fr}.portal-home .hero-njfu{font-size:114px}.portal-home .guide-title{font-size:48px}.portal-home .welcome{font-size:15px}.portal-home .hero-description p{font-size:11px}.portal-home .hero-actions{gap:18px}.portal-home .hero-actions .button{padding-inline:16px;font-size:11px}.portal-home .hero-actions .text-link{font-size:10px;gap:9px}.notice-board{padding:17px 17px 3px}.notice-feature{padding:17px 13px;gap:9px}.notice-feature h3{font-size:24px}.notice-feature img{width:120px}.notice-feature p{font-size:9px}.notice-row{font-size:10px;gap:8px}.portal-shortcut{padding:16px 13px;gap:10px}.shortcut-icon{width:33px;height:33px}.portal-shortcut strong{font-size:12px}.portal-shortcut small{font-size:9px}.shortcut-arrow{font-size:14px}.portal-columns{grid-template-columns:minmax(0,1.6fr) minmax(265px,1fr);gap:18px}.update-entry{margin-inline:20px}.update-entry summary{grid-template-columns:80px minmax(0,1fr) 16px;gap:13px}.update-summary strong{font-size:13px}.update-summary>span{font-size:10px}.update-body{padding-left:93px;padding-right:24px}.feed-filters{gap:3px;padding-inline:17px}.feed-filters button{font-size:10px;padding-inline:10px}.updates-footer{padding-inline:20px;flex-wrap:wrap;gap:5px}.portal-home .assistant-card{gap:30px;padding:30px}.portal-home .build-layout{gap:40px}
}
@media(max-width:800px){
  .portal-home .hero{gap:23px;grid-template-columns:1fr 1fr;padding-top:29px}.portal-home .hero-njfu{font-size:99px}.portal-home .guide-title{font-size:41px}.portal-home .hero-description h2{font-size:14px}.portal-home .hero-description p{max-width:22em;font-size:10px}.portal-home .hero-actions{gap:13px;flex-wrap:wrap}.notice-feature img{width:91px;border-width:4px;border-bottom-width:11px}.notice-feature h3{font-size:21px}.notice-feature p{font-size:9px;max-width:10em}.notice-feature-link{margin-top:10px}.notice-row{font-size:10px;padding-block:13px;gap:7px}.notice-row-label{font-size:8px}.portal-shortcuts{grid-template-columns:repeat(2,minmax(0,1fr));gap:11px;margin-top:17px}.portal-shortcut{padding:17px}.portal-shortcut strong{font-size:13px}.portal-shortcut small{font-size:10px}.shortcut-icon{width:37px;height:37px}.portal-columns{grid-template-columns:1fr}.portal-sidebar{grid-template-columns:1fr 1fr;align-items:start}.feed-filters{padding:15px 18px;gap:9px}.feed-filters button{font-size:11px;padding-inline:13px}.update-entry summary{grid-template-columns:94px minmax(0,1fr) 20px;gap:20px}.update-summary strong{font-size:14px}.update-summary>span{font-size:11px}.update-body{padding-left:114px}.portal-home .assistant-card{grid-template-columns:1fr}.portal-home .assistant-guide{padding:24px}.portal-home .build-copy h2{font-size:37px}.portal-home .build-layout{gap:35px}.portal-home .closing h2{font-size:50px}
}
@media(max-width:600px){
  .portal-home .hero{display:flex;flex-direction:column;align-items:stretch;gap:25px;padding:30px 0 65px;min-height:0}.portal-home .welcome{font-size:12px;letter-spacing:.17em;margin-bottom:14px}.portal-home .hero-njfu{font-size:101px}.portal-home .title-spark{font-size:24px;right:-39px;top:4px}.portal-home .guide-title{font-size:43px;margin-top:12px}.portal-home .hero-description{margin-top:20px}.portal-home .hero-description h2{font-size:14px}.portal-home .hero-description p{font-size:11px;max-width:none;margin-top:8px}.portal-home .hero-actions{margin-top:19px;gap:20px}.portal-home .hero-actions .button{min-height:43px;font-size:11px;gap:24px}.portal-home .hero-actions .text-link{font-size:10px;gap:9px}.portal-home .hero-art{width:95%;height:350px;right:-30px;top:4px;opacity:.35;mask-image:linear-gradient(90deg,transparent,#000 65%)}.portal-home .hero-baseline{font-size:9px;min-height:41px;gap:14px}.portal-home .campus-names{font-size:10px;gap:12px}.portal-home .scroll-link{gap:10px}.notice-board{padding:16px 16px 1px;border-radius:13px}.notice-heading{margin-bottom:13px}.notice-heading h2{font-size:13px}.notice-heading>span{font-size:9px}.notice-feature{padding:16px 17px;gap:15px}.notice-feature h3{font-size:24px;margin:9px 0 7px}.notice-feature p{font-size:10px;max-width:none}.notice-feature img{width:120px}.notice-tag{font-size:9px}.notice-feature-link{font-size:10px;margin-top:10px}.notice-row{font-size:11px;padding-block:13px;gap:10px}.notice-row-label{font-size:9px}.portal-shortcuts{gap:9px;margin-top:16px}.portal-shortcut{padding:14px 12px;gap:9px;align-items:flex-start;position:relative}.shortcut-icon{width:30px;height:30px;margin-top:3px}.shortcut-icon svg{width:21px;height:21px}.portal-shortcut strong{font-size:12px}.portal-shortcut small{font-size:9px;max-width:9em;line-height:1.75;margin-top:3px}.shortcut-arrow{display:none}.portal-discover{padding-top:35px}.portal-section-heading{margin-bottom:18px}.portal-kicker{font-size:8px;margin-bottom:8px}.portal-section-heading h2{font-size:26px}.portal-section-heading .text-link{font-size:10px;gap:9px}.portal-columns{gap:17px}.feed-filters{gap:3px;padding:12px;justify-content:space-between}.feed-filters button{font-size:10px;padding:8px 9px;min-height:36px;gap:5px}.feed-filters button span{font-size:8px}.update-entry{margin-inline:18px}.update-entry summary{grid-template-columns:minmax(0,1fr) 17px;row-gap:11px;column-gap:10px;padding:19px 0}.update-meta{grid-column:1 / -1;flex-direction:row;align-items:center;gap:10px}.update-meta time,.update-time{font-size:9px}.update-category{font-size:8px;padding:4px 6px}.update-summary strong{font-size:13px;line-height:1.7}.update-summary>span{font-size:10px;line-height:1.8;margin-top:6px}.update-body{padding:0 23px 20px 0;font-size:12px}.update-body a{font-size:11px}.updates-footer{padding:15px 18px;font-size:8px;gap:7px}.portal-sidebar{grid-template-columns:1fr;gap:17px}.journal-digest{padding:21px}.digest-heading h3{font-size:14px}.digest-heading>div>span{font-size:10px}.digest-story h4{font-size:19px}.digest-meta{font-size:10px}.digest-meta>span{font-size:9px}.digest-story p{font-size:11px}.digest-read{font-size:10px}.source-links{padding:19px 21px 5px}.source-heading h3{font-size:14px}.source-heading>span{font-size:9px}.source-links>a{font-size:12px;padding-block:14px}.source-links>a>span{font-size:10px}.portal-home .section{padding-top:40px}.portal-home .section-heading{margin-bottom:19px}.portal-home .section-heading h2{font-size:26px}.portal-home .assistant-card{padding:26px 22px;gap:26px}.portal-home .assistant-guide{padding:21px 19px}.portal-home .assistant-identity h3{font-size:27px}.portal-home .shanshan-portrait{width:62px;height:62px}.portal-home .roadmap{padding-bottom:35px}.portal-home .guide-card{min-height:260px}.portal-home .card-art{height:139px;top:63px}.portal-home .club-flower{font-size:116px}.portal-home .card-content{padding-top:32px}.portal-home .card-content h3{font-size:23px}.portal-home .build-section{padding-block:38px}.portal-home .build-copy h2{font-size:37px}.portal-home .build-layout{gap:31px}.portal-home .afterword{padding-top:32px}.portal-home .closing{padding-block:39px 35px}.portal-home .closing h2{font-size:39px}.portal-home .closing-spark{font-size:37px;top:41px}.portal-home .footer>div{flex-wrap:wrap;gap:14px}
}
@media(max-width:360px){.portal-home .hero-njfu{font-size:88px}.portal-home .guide-title{font-size:38px}.notice-feature{padding-inline:12px;gap:9px}.notice-feature h3{font-size:22px}.notice-feature img{width:95px}.notice-feature p{font-size:9px}.notice-row{font-size:10px}.portal-shortcut{padding-inline:10px;gap:7px}.portal-shortcut strong{font-size:11px}.shortcut-icon{width:26px;height:26px}.feed-filters{padding-inline:9px;gap:0}.feed-filters button{padding-inline:7px;font-size:9px}.portal-home .assistant-collections{grid-template-columns:1fr}.portal-home .closing h2{font-size:33px}}
@media(prefers-reduced-motion:reduce){.notice-board{animation:none}.portal-shortcut:hover,.notice-feature:hover img{transform:none}.notice-feature img,.update-toggle,.portal-shortcut{transition:none}}
@media(max-width:600px){.notice-feature h3{font-size:22px}.notice-feature img{width:105px}}
@media(max-width:360px){.notice-feature h3{font-size:18px}.notice-feature img{width:90px}}

/* Shanshan stays first; other announcements remain visible below the pinned card. */
.notice-board{padding:22px 22px 7px}
.notice-shanshan{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:20px;min-height:238px;padding:24px;border:1px solid #b0ed8d48;border-radius:11px;background:radial-gradient(ellipse at 100% 0,#b0ed8d1c,transparent 72%),#1b281c;transition:border-color .2s,background .2s}
.notice-shanshan:hover{border-color:#b0ed8d90;background-color:#213123}
.notice-pin{display:flex;align-items:center;gap:7px;color:#b9df9f;font-size:10px;letter-spacing:.04em}
.notice-pin svg{width:13px;height:13px;fill:none;stroke:currentColor;stroke-width:1.4;stroke-linecap:round;stroke-linejoin:round}
.notice-shanshan h3{display:flex;align-items:baseline;flex-wrap:wrap;gap:7px;font-size:25px;font-weight:450;line-height:1.35;margin:17px 0 12px;color:#e5efdf}
.notice-shanshan h3 .name-font{font-size:40px;white-space:nowrap;letter-spacing:.03em;color:#d9efbd}
.notice-shanshan p{font-size:12px;line-height:1.9;color:#afc2a7;max-width:25em}
.notice-chat-link{display:inline-flex;align-items:center;gap:25px;padding:10px 16px;margin-top:19px;background:#b0ed8d;border-radius:7px;color:#162411;font-size:12px;font-weight:550}
.notice-chat-link>span{font-size:18px;line-height:1}
.notice-shanshan-portrait{display:grid;place-items:center;width:118px;aspect-ratio:1;border:1px solid #c7e6b554;border-radius:50%;padding:12px;background:#d9e9cb;box-shadow:0 0 0 9px #b0ed8d07;transform:rotate(-6deg);transition:transform .25s}
.notice-shanshan-portrait img{width:100%;height:auto;display:block}
.notice-shanshan:hover .notice-shanshan-portrait{transform:rotate(0)}
.notice-sakura{padding:16px 20px;min-height:131px;margin:12px 0 3px;gap:18px}
.notice-sakura h3{font-size:20px;line-height:1.5;margin:7px 0 5px}
.notice-sakura p{font-size:11px;max-width:none}
.notice-sakura .notice-feature-link{display:inline-flex;font-size:10px;margin-top:8px}
.notice-sakura img{width:89px;border-width:4px;border-bottom-width:11px}
.notice-row{padding-block:16px}
.update-category.category-pinned{color:#c3eaa8;border-color:#b0ed8d55;background:#b0ed8d10}
.update-pinned .update-summary strong{color:#d4ebc4}
.shanshan-digest{padding:22px;border:1px solid #b0ed8d30;border-radius:14px;background:linear-gradient(135deg,#1c2b1d,#121913)}
.shanshan-digest .digest-heading{border-bottom-color:#b0ed8d20}
.shanshan-digest .digest-heading img{background:#d9e9cb;padding:4px;width:42px;height:42px}
.shanshan-digest .digest-heading h3{color:#c3e3ae;font-size:22px;line-height:1.1}
.shanshan-digest .digest-heading>div>span{color:#91a68a;font-size:10px}
.shanshan-digest .digest-heading>a{color:#b0ed8d}
.shanshan-digest>p{font-size:12px;line-height:1.9;color:#aaba9f;margin:16px 0}
.shanshan-digest-link{display:flex;justify-content:space-between;align-items:center;min-height:37px;font-size:12px;color:#c3e3ae}
.shanshan-digest-link:hover{color:var(--green)}
@media(max-width:1100px){.portal-home .hero{grid-template-columns:1fr 1.12fr}.notice-board{padding:18px 17px 5px}.notice-shanshan{padding:21px 18px;gap:14px}.notice-shanshan h3{font-size:21px;gap:5px}.notice-shanshan h3 .name-font{font-size:34px}.notice-shanshan-portrait{width:90px;padding:9px}.notice-shanshan p{font-size:11px}.notice-sakura{padding:15px 17px}.notice-sakura h3{font-size:18px}.notice-sakura img{width:76px}}
@media(min-width:601px) and (max-width:850px){.portal-home .hero{grid-template-columns:1fr 1.15fr;gap:22px}.portal-home .hero-njfu{font-size:99px}.portal-home .guide-title{font-size:39px}.notice-shanshan{position:relative;display:block;min-height:253px;padding:21px 17px}.notice-shanshan-copy{position:relative;z-index:1}.notice-shanshan-portrait{position:absolute;top:18px;right:16px;width:49px;padding:5px;box-shadow:none;opacity:.8}.notice-pin{max-width:calc(100% - 55px);min-height:26px;font-size:9px}.notice-shanshan h3{margin-top:22px}.notice-sakura{gap:12px;padding:15px 13px}.notice-sakura h3{font-size:16px}.notice-sakura p{font-size:10px}.notice-sakura img{width:62px}}
@media(max-width:800px){.shanshan-digest{grid-column:1 / -1}.shanshan-digest>p{margin-bottom:6px}}
@media(max-width:600px){.notice-board{padding:17px 15px 4px}.notice-shanshan{padding:22px 17px;gap:13px;min-height:237px}.notice-shanshan h3{font-size:21px}.notice-shanshan h3 .name-font{font-size:34px}.notice-shanshan p{font-size:11px;line-height:1.85}.notice-shanshan-portrait{width:78px;padding:8px;box-shadow:0 0 0 6px #b0ed8d07}.notice-chat-link{font-size:11px;padding:10px 13px;margin-top:17px;gap:20px}.notice-sakura{min-height:127px;padding:15px 16px;gap:13px}.notice-sakura h3{font-size:18px}.notice-sakura p{font-size:10px}.notice-sakura img{width:75px}.notice-row{padding-block:15px}.shanshan-digest{padding:21px}}
@media(max-width:360px){.notice-shanshan{gap:10px;padding:21px 14px}.notice-shanshan h3{font-size:19px}.notice-shanshan h3 .name-font{font-size:31px}.notice-shanshan-portrait{width:58px;padding:6px}.notice-pin{font-size:9px}.notice-sakura{padding-inline:13px;gap:10px}.notice-sakura h3{font-size:16px}.notice-sakura img{width:60px}}
@media(prefers-reduced-motion:reduce){.notice-shanshan,.notice-shanshan-portrait{transition:none}.notice-shanshan:hover .notice-shanshan-portrait{transform:rotate(-6deg)}}

/* A living title: slow metallic light, an orbital backdrop, and a quiet pause control. */
.portal-home .hero-copy{pointer-events:auto;isolation:isolate}
.portal-home .hero-copy:before{content:'';position:absolute;z-index:-1;inset:-55px -20px 75px -60px;pointer-events:none;background:radial-gradient(ellipse at 42% 42%,#a8e88910,transparent 66%);filter:blur(10px);animation:hero-aura 7s ease-in-out infinite alternate;animation-play-state:paused}
.portal-home .hero-art{left:-45px;right:auto;top:38px;width:calc(40% + 80px);height:490px;opacity:.66;mask-image:radial-gradient(ellipse at 52% 43%,#000 14%,#0009 46%,transparent 74%)}
.portal-home .welcome{display:flex;align-items:center;gap:12px;font-size:13px;letter-spacing:.24em;color:#b9c8b4;margin-bottom:23px;line-height:1.4}
.portal-home .welcome:before{content:'';width:29px;height:2px;background:linear-gradient(90deg,#b0ed8d,transparent);flex-shrink:0}
.portal-home .hero-njfu{line-height:1.04;padding:0 .025em .035em 0;margin-left:-.025em;letter-spacing:-.08em;background-image:linear-gradient(115deg,#81b567 0%,#bbe99f 15%,#f5ffe9 24%,#a1d889 34%,#659c52 45%,#c5f0b0 57%,#f3ffe9 64%,#93c976 76%,#d7f6c8 88%,#81b567 100%);background-size:260% 100%;background-position:0% 50%;animation:hero-liquid-light 8s ease-in-out infinite alternate;animation-play-state:paused;filter:drop-shadow(0 2px 20px #a9e9840b);transition:filter .45s}
.portal-home .hero-njfu:hover{filter:drop-shadow(0 2px 24px #a9e98435)}
.portal-home .title-spark{font-size:25px;top:18px;right:-37px;animation:hero-spark-orbit 18s linear infinite;animation-play-state:paused}
.portal-home .guide-title{display:flex;align-items:baseline;gap:.22em;font-size:clamp(43px,4.5vw,61px);margin-top:1px;white-space:nowrap;letter-spacing:-.055em;line-height:1.12;color:#ecf0e9}
.portal-home .guide-title em{font-family:Georgia,'Times New Roman',serif;font-weight:400;letter-spacing:-.065em;color:#c5dcba}
.portal-home .hero-description{margin-top:27px}
.portal-home .hero-description h2{font-size:16px;letter-spacing:.12em;color:#dde6d7}
.portal-home .hero-description p{color:#a0ad9a;line-height:1.9;max-width:29em}
.portal-home .hero-actions{margin-top:28px}
.portal-home .hero-actions .button{position:relative;isolation:isolate;overflow:hidden;min-height:47px;border:1px solid #d4f8b96b;background:linear-gradient(115deg,#b8ec91,#c7f3a6);box-shadow:inset 0 1px 0 #f6ffdf70,0 4px 25px #9ed6780c;transition:transform .25s,box-shadow .25s}
.portal-home .hero-actions .button:before{content:'';position:absolute;inset:-80% -35%;z-index:-1;pointer-events:none;background:linear-gradient(110deg,transparent 35%,#fff9 48%,transparent 62%);transform:translateX(-100%);transition:transform .7s}
.portal-home .hero-actions .button:hover:before{transform:translateX(100%)}
.portal-home .hero-actions .button:hover{box-shadow:inset 0 1px 0 #f6ffdf70,0 6px 27px #9ed67826}
.portal-home .hero-actions .button>span{transition:transform .25s}
.portal-home .hero-actions .button:hover>span{transform:translate(2px,-2px)}
.hero-motion-toggle{position:absolute;right:2px;top:-7px;display:grid;place-items:center;width:32px;height:32px;padding:8px;color:#8da780;background:#b0ed8d05;border:1px solid #b0ed8d1c;border-radius:50%;transition:color .2s,background .2s;pointer-events:auto}
.hero-motion-toggle[hidden]{display:none}
.hero-motion-toggle:hover{color:#d3edc3;background:#b0ed8d12}
.hero-motion-toggle svg{width:13px;height:13px;fill:none;stroke:currentColor;stroke-width:1.4;stroke-linecap:round;stroke-linejoin:round}
.hero-motion-toggle .motion-play,.hero-motion-toggle[aria-pressed=true] .motion-pause{display:none}
.hero-motion-toggle[aria-pressed=true] .motion-play{display:block}
.portal-home .hero[data-motion=running] .hero-njfu,.portal-home .hero[data-motion=running] .title-spark,.portal-home .hero[data-motion=running] .hero-copy:before{animation-play-state:running}
@keyframes hero-liquid-light{from{background-position:0% 50%}to{background-position:100% 50%}}
@keyframes hero-aura{from{opacity:.4;transform:translate(-8px,8px) scale(.95)}to{opacity:1;transform:translate(8px,-8px) scale(1.08)}}
@keyframes hero-spark-orbit{to{transform:rotate(360deg)}}
@media(max-width:1100px){.portal-home .guide-title{font-size:46px}.portal-home .hero-art{width:46%;left:-28px;height:480px;top:42px}.portal-home .hero-description h2{font-size:15px}.portal-home .welcome{font-size:12px;gap:10px}}
@media(min-width:601px) and (max-width:850px){.portal-home .guide-title{font-size:37px}.portal-home .hero-art{width:53%;top:94px;left:-27px;height:410px}.portal-home .hero-description h2{font-size:13px}.portal-home .welcome{font-size:10px;gap:8px;letter-spacing:.18em}.portal-home .welcome:before{width:19px}.hero-motion-toggle{width:27px;height:27px;top:-5px;padding:6px}.portal-home .hero-description{margin-top:22px}}
@media(max-width:600px){.portal-home .hero-art{left:-28px;right:auto;top:6px;width:calc(100% + 42px);height:370px;opacity:.56;mask-image:radial-gradient(ellipse at 53% 42%,#000 13%,#0008 43%,transparent 71%)}.portal-home .welcome{font-size:11px;letter-spacing:.21em;gap:10px;margin-bottom:15px}.portal-home .welcome:before{width:24px}.portal-home .title-spark{font-size:23px;top:12px;right:-36px}.portal-home .guide-title{font-size:43px;margin-top:0}.portal-home .hero-description{margin-top:21px}.portal-home .hero-description h2{font-size:14px;letter-spacing:.09em}.portal-home .hero-description p{font-size:11px}.portal-home .hero-actions{margin-top:23px;gap:18px}.portal-home .hero-actions .button{min-height:44px}.hero-motion-toggle{top:-5px;width:28px;height:28px;padding:7px}.portal-home .hero-copy:before{inset:-30px -10px 55px -15px}}
@media(max-width:360px){.portal-home .guide-title{font-size:38px}.portal-home .hero-actions{gap:14px}.portal-home .hero-art{height:340px}}
@media(prefers-reduced-motion:reduce){.portal-home .hero-njfu{background-position:38% 50%;filter:none}.portal-home .hero-copy:before{opacity:.65}.hero-motion-toggle{display:none}.portal-home .hero-actions .button:before{display:none}.portal-home .hero-actions .button:hover>span{transform:none}}
