:root{--pine:#0b5f48;--emerald:#188a68;--gold:#cba86b;--ink:#23332e;--muted:#77827d;--paper:#fbf8f0;--line:#e5e4db;--shadow:0 16px 40px rgba(16,91,69,.12)}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:#f1eee6;color:var(--ink);font-family:"PingFang SC","Microsoft YaHei",sans-serif}.app-shell{max-width:480px;margin:0 auto;min-height:100vh;background:var(--paper);padding:0 18px 94px;position:relative;overflow:hidden}.topbar{height:76px;display:flex;align-items:center;justify-content:space-between;background:var(--paper);position:sticky;top:0;z-index:10}.brand{display:flex;align-items:center;gap:10px}.brand img{width:42px;height:42px;border-radius:50%;object-fit:cover}.brand strong{display:block;font-size:13px;letter-spacing:.02em}.brand span{display:block;margin-top:3px;color:var(--muted);font-size:10px}.icon-btn{border:0;background:transparent;color:var(--pine);font-size:25px}.hero{height:390px;border-radius:25px;overflow:hidden;position:relative;color:white;box-shadow:var(--shadow)}.hero-photo{position:absolute;inset:0;background-image:url('../assets/slices/anniversary-campus.png');background-size:cover;background-position:center}.hero-overlay{position:absolute;inset:0;background:linear-gradient(180deg,rgba(7,44,35,.08),rgba(4,43,33,.85))}.hero-content{position:absolute;left:24px;right:24px;bottom:24px}.hero-date{font-size:12px;letter-spacing:.18em;color:#e9d39d;margin-bottom:14px}.hero h1{font-family:Georgia,"Songti SC",serif;font-weight:500;font-size:34px;line-height:1.25;margin:0}.hero h1 em{font-style:normal;color:#f4dca1}.hero p{font-size:13px;opacity:.86;margin:14px 0 20px}.light-button,.dark-button,.outline-button{border:0;border-radius:99px;padding:11px 15px;font-size:12px;cursor:pointer}.light-button{background:#f6ead0;color:var(--pine)}.light-button span,.dark-button span{margin-left:8px;font-size:17px;vertical-align:-1px}.countdown{display:flex;align-items:center;justify-content:space-between;padding:18px 6px 20px;border-bottom:1px solid var(--line)}.countdown div:first-child{display:flex;align-items:baseline;gap:7px}.countdown span{font-size:12px;color:var(--muted)}.countdown strong{font-family:Georgia,serif;font-size:38px;color:var(--emerald);font-weight:500}.countdown small{font-size:12px;color:var(--muted)}.countdown-mark{text-align:center;color:var(--gold);font-family:Georgia,serif;font-size:22px;line-height:.8}.section-block{padding:27px 0 0}.section-title{display:flex;justify-content:space-between;align-items:flex-end;margin-bottom:16px}.section-title span,.page-heading>span{color:var(--emerald);font-size:11px;letter-spacing:.16em}.section-title h2{font-family:Georgia,"Songti SC",serif;font-weight:500;font-size:23px;margin:6px 0 0}.text-link{border:0;background:none;color:var(--emerald);font-size:12px;padding:0;cursor:pointer}.text-link span{font-size:17px;margin-left:4px}.quick-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--line);border:1px solid var(--line)}.quick-item{background:var(--paper);min-height:108px;border:0;display:flex;flex-direction:column;align-items:flex-start;justify-content:center;padding:14px;cursor:pointer;color:var(--ink)}.quick-item:hover{background:#f5f0e3}.quick-icon{font-size:27px;color:var(--emerald);font-family:Georgia,serif;margin-bottom:9px}.quick-item span:not(.quick-icon){font-size:13px;font-weight:600}.quick-item small{color:#9a9e93;font-size:10px;margin-top:4px}.activity-card{display:flex;align-items:center;gap:13px;border-top:1px solid var(--line);padding:16px 0}.activity-card:last-child{border-bottom:1px solid var(--line)}.activity-date{width:45px;text-align:center;color:var(--emerald)}.activity-date b{display:block;font-family:Georgia,serif;font-size:28px;font-weight:500}.activity-date span{font-size:10px}.activity-info{flex:1;min-width:0}.activity-info strong,.activity-info span,.activity-info small{display:block}.activity-info strong{font-size:13px}.activity-info span{font-size:11px;color:var(--muted);margin-top:6px}.activity-info small{font-size:10px;color:#ae9870;margin-top:5px}.outline-button{background:transparent;border:1px solid var(--emerald);color:var(--emerald);padding:8px 13px}.muted-card{opacity:.73}.memory-strip{background:var(--pine);color:#f9f5e8;margin:32px -18px 0;padding:27px 24px;display:flex;gap:15px;min-height:205px;overflow:hidden}.memory-strip span,.blessing-preview span{color:#d3b77a;font-size:11px;letter-spacing:.15em}.memory-strip h2,.blessing-preview h2{font-family:Georgia,"Songti SC",serif;font-weight:500;font-size:22px;line-height:1.35;margin:8px 0}.memory-strip p{font-size:11px;opacity:.72;line-height:1.7;margin:0 0 16px}.dark-button{background:#d8bc82;color:var(--pine)}.memory-collage{display:flex;gap:5px;transform:rotate(7deg);margin-right:-45px;margin-top:15px}.memory-collage div{width:55px;height:120px;border:4px solid #f8f1df;background-size:cover;background-position:center}.memory-collage div:nth-child(1){background-image:url('../assets/slices/forum-reunion.png')}.memory-collage div:nth-child(2){background-image:url('../assets/slices/anniversary-campus.png');margin-top:-18px}.memory-collage div:nth-child(3){background-image:url('../assets/slices/me-memories.png')}.blessing-preview{padding:28px 0}.quote-card{display:flex;align-items:center;gap:12px;border:1px solid var(--line);padding:14px;border-radius:14px}.avatar,.profile-avatar,.class-emblem{width:36px;height:36px;border-radius:50%;background:#d5e6d8;color:var(--emerald);display:grid;place-items:center;font-weight:600;flex:none}.quote-card p{font-family:Georgia,"Songti SC",serif;font-size:13px;margin:0;line-height:1.6}.quote-card small{font-size:10px;color:var(--muted)}.heart{margin-left:auto;color:#b78d67!important;letter-spacing:0!important;font-size:10px!important}.page-heading{padding:24px 0 26px;border-bottom:1px solid var(--line)}.page-heading h1{font-family:Georgia,"Songti SC",serif;font-size:36px;font-weight:500;margin:10px 0}.page-heading p{font-size:12px;color:var(--muted);margin:0}.feature-band{background:var(--pine);color:white;border-radius:18px;margin-top:24px;padding:20px;display:flex;align-items:center;gap:13px}.feature-band>b{font-family:Georgia,serif;font-size:25px;color:#e0c282}.feature-band div{flex:1}.feature-band strong,.feature-band span{display:block}.feature-band strong{font-size:12px}.feature-band span{font-size:10px;color:#a8c0b6;margin-top:6px}.feature-band .light-button{padding:9px;font-size:10px}.timeline{border-left:1px solid #c5d2ca;padding-left:20px}.timeline>div{position:relative;padding:0 0 23px}.timeline>div:before{content:"";position:absolute;left:-25px;top:5px;width:9px;height:9px;border-radius:50%;background:var(--gold)}.timeline b{font-family:Georgia,serif;color:var(--emerald);font-size:20px;margin-right:10px}.timeline span{font-size:11px;color:var(--muted)}.alumni-row{display:grid;grid-template-columns:1fr 1fr;gap:10px}.alumni-row>div{border-top:2px solid var(--emerald);padding-top:11px}.alumni-row b{color:var(--gold);font:20px Georgia}.alumni-row strong,.alumni-row span{display:block}.alumni-row strong{font-size:12px;margin-top:8px}.alumni-row span{font-size:10px;color:var(--muted);margin-top:5px}.forum-tabs{display:flex;gap:20px;border-bottom:1px solid var(--line);padding:16px 0}.forum-tabs button{border:0;background:none;color:var(--muted);font-size:12px;padding:0 0 10px}.forum-tabs .active{color:var(--emerald);border-bottom:2px solid var(--emerald)}.class-card{display:flex;align-items:center;gap:12px;border-bottom:1px solid var(--line);padding:18px 0}.class-emblem{background:var(--pine);color:#dfc184;border-radius:12px;font-family:Georgia,serif}.class-card div:nth-child(2){flex:1}.class-card strong,.class-card span{display:block}.class-card strong{font-size:13px}.class-card span{font-size:10px;color:var(--muted);margin-top:5px}.post{padding:20px 0;border-bottom:1px solid var(--line)}.post-head{display:flex;align-items:center;gap:9px}.post-head>div:nth-child(2){flex:1}.post-head strong,.post-head small{display:block}.post-head strong{font-size:12px}.post-head small{font-size:10px;color:var(--muted);margin-top:4px}.post-head button{border:0;background:none;color:var(--muted)}.post p{font-size:13px;line-height:1.7}.post-image{height:150px;border-radius:13px;background:url('../assets/slices/forum-reunion.png') center/cover}.post-actions{display:flex;justify-content:space-between;color:var(--muted);font-size:11px;padding-top:13px}.floating-button{position:fixed;right:max(calc((100vw - 444px)/2),24px);bottom:86px;border:0;border-radius:99px;background:var(--emerald);color:white;padding:12px 17px;box-shadow:0 8px 20px rgba(24,138,104,.3);font-size:12px}.profile-head{display:flex;align-items:center;gap:13px;padding:27px 0;border-bottom:1px solid var(--line)}.profile-avatar{width:54px;height:54px;background:var(--gold);color:white}.profile-head div:nth-child(2){flex:1}.profile-head h1{font:24px Georgia,"Songti SC",serif;margin:0}.profile-head p{font-size:11px;color:var(--muted);margin:6px 0 0}.my-grid{display:grid;grid-template-columns:1fr 1fr;border-bottom:1px solid var(--line)}.my-grid button{border:0;background:transparent;text-align:left;padding:23px 8px;border-bottom:1px solid var(--line);cursor:pointer}.my-grid button:nth-child(odd){border-right:1px solid var(--line)}.my-grid span{display:block;color:var(--emerald);font:25px Georgia}.my-grid strong,.my-grid small{display:block}.my-grid strong{font-size:12px;margin-top:10px}.my-grid small{font-size:10px;color:var(--muted);margin-top:5px}.notice{display:flex;align-items:center;gap:12px;margin-top:23px;background:#f0ede3;padding:15px;border-radius:12px}.notice>span:first-child{font-size:23px;color:var(--gold)}.notice div{flex:1}.notice strong{font-size:12px}.notice p{font-size:10px;color:var(--muted);margin:5px 0 0}.notice>span:last-child{font-size:18px;color:var(--muted)}.bottom-nav{position:fixed;z-index:20;bottom:0;left:50%;transform:translateX(-50%);width:min(480px,100vw);height:74px;padding:9px 18px max(9px,env(safe-area-inset-bottom));display:grid;grid-template-columns:repeat(4,1fr);background:rgba(251,248,240,.96);border-top:1px solid var(--line);backdrop-filter:blur(15px)}.nav-item{border:0;background:none;color:#9aa29b;font-size:10px;display:flex;flex-direction:column;align-items:center;gap:5px;cursor:pointer}.nav-item span{font-size:22px;line-height:1;font-family:Georgia,serif}.nav-item.is-active{color:var(--emerald)}.toast{position:fixed;z-index:50;left:50%;bottom:95px;transform:translateX(-50%);max-width:calc(100vw - 40px);padding:12px 16px;background:rgba(11,63,52,.94);color:white;border-radius:8px;font-size:12px;box-shadow:var(--shadow);white-space:nowrap}@media(min-width:700px){.app-shell{box-shadow:0 0 50px rgba(0,0,0,.08)}}
