:root{--bg:#faf5ec;--bg-soft:#f5ecdf;--ink:#201719;--ink-soft:#493d3a;--muted:#746864;--line:#eadfce;--line-strong:#d9c7b3;--paper:#fffaf0;--paper-strong:#fffdf6;--pku:#8f0018;--pku-dark:#65000f;--pku-soft:#f8e9e7;--gold:#9c6b2f;--gold-soft:#f5ead8;--danger:#b42318;--shadow-sm:0 1px 2px rgba(56,28,20,0.06);--shadow-md:0 12px 32px rgba(56,28,20,0.09);--radius:8px;--ease-out:cubic-bezier(0.16,1,0.3,1);--ease-soft:cubic-bezier(0.22,0.8,0.22,1);--font-sans:"Avenir Next",Avenir,"Helvetica Neue","PingFang SC","Hiragino Sans GB","Microsoft YaHei",sans-serif;--font-display:Optima,"Songti SC","STSong","Noto Serif SC","Source Han Serif SC",serif}*{box-sizing:border-box}html{background:var(--bg)}body{margin:0;background:radial-gradient(circle at 14% 22%,rgba(255,231,184,.12),transparent 24%),radial-gradient(circle at 78% 18%,rgba(143,0,24,.2),transparent 28%),radial-gradient(circle at 48% 74%,rgba(255,250,240,.08),transparent 26%),linear-gradient(135deg,#130608,#3c0710 46%,#070506);color:var(--ink);font-family:var(--font-sans);font-feature-settings:"kern";text-rendering:geometricPrecision}.welcome-content h1,h1,h2{font-family:var(--font-display);font-weight:700}a{color:inherit;text-underline-offset:4px}button,input,textarea{font:inherit}button{letter-spacing:0}.shell{min-height:100vh;padding:30px}.page{width:min(1180px,100%);margin:0 auto}.topbar{position:-webkit-sticky;position:sticky;top:0;z-index:20;justify-content:space-between;gap:18px;width:auto;margin:-30px -30px 36px;border:0;border-bottom:1px solid rgba(231,220,208,.9);border-radius:0;background:rgba(255,249,242,.94);padding:12px max(30px,calc((100vw - 1180px) / 2));box-shadow:none;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}.brand,.topbar{display:flex;align-items:center}.brand{gap:12px;min-width:0;color:var(--ink);font-size:17px;font-weight:800}.brand-mark{width:40px;height:40px;object-fit:contain;border-radius:var(--radius)}.brand-copy{display:grid;grid-gap:2px;gap:2px;min-width:0;line-height:1.22}.brand-copy span{color:var(--muted);font-size:12px;font-weight:650;letter-spacing:0}.topbar p{margin:8px 0 0 52px;font-size:13px}.muted{color:var(--muted)}.error{color:var(--danger);font-weight:750}.stack{display:grid;grid-gap:18px;gap:18px}.form{display:grid;grid-gap:15px;gap:15px;margin-top:28px}.field{display:grid;grid-gap:8px;gap:8px}.field label,.field-label{color:var(--ink-soft);font-size:13px;font-weight:750}.identity-tabs{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:10px;gap:10px}.identity-tab{cursor:pointer}.identity-tab input{position:absolute;opacity:0;pointer-events:none}.identity-tab span{display:grid;min-height:74px;align-content:center;grid-gap:5px;gap:5px;border:1px solid var(--line);border-left:3px solid transparent;border-radius:var(--radius);background:rgba(255,253,246,.72);padding:14px;transition:border-color .16s ease,background .16s ease,color .16s ease}.identity-tab strong{color:var(--ink);font-size:15px}.identity-tab small{color:var(--muted);font-size:12px;font-weight:700}.identity-tab input:checked+span{border-color:rgba(143,0,24,.32);border-left-color:var(--pku);background:#fff3e8}.identity-tab input:focus-visible+span{box-shadow:0 0 0 3px rgba(143,0,24,.14)}.form-note{margin:-2px 0 0;color:var(--muted);font-size:13px;line-height:1.7}.input,.textarea{width:100%;border:1px solid var(--line-strong);border-radius:var(--radius);background:var(--paper-strong);color:var(--ink);padding:12px 14px;outline:none;transition:border-color .16s ease,box-shadow .16s ease,background .16s ease}.textarea{min-height:150px;resize:vertical;line-height:1.75}.input:focus,.textarea:focus{border-color:var(--pku);background:var(--paper-strong);box-shadow:0 0 0 3px rgba(143,0,24,.14)}.input:disabled,.textarea:disabled{background:#efe7df;color:var(--muted);cursor:not-allowed}.button{display:inline-flex;min-height:42px;max-width:100%;align-items:center;justify-content:center;border:1px solid transparent;border-radius:6px;background:var(--pku);color:white;padding:0 18px;font-size:14px;font-weight:800;line-height:1.2;cursor:pointer;text-align:center;text-decoration:none;white-space:nowrap;box-shadow:none;transition:background .22s var(--ease-soft),border-color .22s var(--ease-soft),color .22s var(--ease-soft),transform .22s var(--ease-out)}.button:hover{background:var(--pku-dark)}.button:active{transform:translateY(1px)}.button:disabled{cursor:not-allowed;opacity:.58;transform:none}.button.secondary{border-color:var(--line-strong);background:var(--paper);color:var(--ink);box-shadow:none}.button.secondary:hover{border-color:var(--pku);background:var(--pku-soft);color:var(--pku)}.button.danger{background:var(--danger)}.auth-switch{margin:20px 0 0;color:var(--muted)}.auth-switch a{color:var(--pku);font-weight:800;text-decoration:none}.hero-panel{position:relative;overflow:hidden;border:1px solid rgba(143,0,24,.16);border-radius:var(--radius);background:linear-gradient(135deg,var(--pku-dark),var(--pku));color:white;padding:42px;box-shadow:none}.hero-panel:after{right:30px;bottom:20px;color:rgba(255,255,255,.08);content:"ALUMNI";font-size:96px;font-weight:900;line-height:.85}.hero-panel:after,.tong-hero:before{position:absolute;pointer-events:none}.tong-hero:before{right:38px;bottom:24px;z-index:0;width:min(260px,32%);aspect-ratio:1;background:url(/logos/crops/class-tong-red.png) 50%/contain no-repeat;content:"";filter:brightness(0) invert(1);opacity:.13}.hero-panel>*{position:relative;z-index:1}.identity-badge{display:inline-flex;min-height:30px;align-items:center;margin-top:18px;border-left:3px solid var(--gold);background:rgba(255,255,255,.08);padding:0 12px;color:#fff5df;font-size:13px;font-weight:850}.hero-panel h1{max-width:720px;margin:18px 0 12px;font-size:48px;line-height:1.08}.hero-panel p{max-width:680px;margin:0;color:rgba(255,255,255,.78);line-height:1.8}.hero-lockup{display:flex;flex-wrap:wrap;gap:16px;align-items:center}.hero-lockup img{object-fit:contain;border-radius:0;background:transparent;padding:0;filter:drop-shadow(0 10px 16px rgba(0,0,0,.2))}.hero-lockup img,.hero-lockup img:nth-child(3){width:54px;height:54px}.brand-band{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-gap:14px;gap:14px;margin:18px 0 30px}.brand-tile{display:flex;min-height:104px;align-items:center;gap:15px;border:1px solid var(--line);border-left:3px solid var(--pku);border-radius:var(--radius);background:var(--paper);padding:18px;box-shadow:var(--shadow-sm)}.brand-tile img{width:58px;height:58px;object-fit:contain;flex:0 0 auto}.brand-tile strong{display:block;margin-bottom:5px;color:var(--ink)}.brand-tile span{line-height:1.55}.grid{display:grid;grid-template-columns:minmax(300px,360px) minmax(0,1fr);grid-gap:24px;gap:24px;align-items:start}.dashboard-grid{grid-template-columns:minmax(280px,340px) minmax(0,1fr)}.card{border:1px solid var(--line);border-radius:var(--radius);background:rgba(255,249,242,.97);padding:24px;box-shadow:var(--shadow-sm)}.card h1,.card h2{margin:0 0 8px}.card h1{font-size:32px;line-height:1.18}.card h2{font-size:22px;line-height:1.25}.profile-card{overflow:hidden;background:var(--paper)}.profile-header{display:flex;gap:14px;align-items:center}.profile-avatar{position:relative;display:grid;width:56px;height:56px;flex:0 0 auto;place-items:center;border:1px solid rgba(255,250,240,.78);border-radius:var(--radius);background:var(--pku);box-shadow:0 0 0 3px rgba(143,0,24,.08),0 10px 28px rgba(55,8,14,.14);color:white;font-size:24px;font-weight:900;overflow:hidden}.profile-avatar img{object-fit:cover}.profile-meta{display:grid;grid-gap:6px;gap:6px;border-top:1px solid var(--line);padding-top:16px}.profile-meta strong{overflow-wrap:anywhere}.qr-frame{border:1px solid var(--line);border-radius:var(--radius);background:var(--paper);padding:18px}.qr-image{width:100%;max-width:360px;height:auto;margin:0 auto}.qr-image,.url-box{display:block;border:1px solid var(--line);border-radius:var(--radius)}.url-box{overflow-wrap:anywhere;border-left:3px solid var(--pku);background:#fbf4ec;padding:12px;color:var(--pku);font-size:13px;text-decoration:none}.admin-console{position:relative;min-height:100vh;overflow:hidden;background:radial-gradient(ellipse at 14% 82%,rgba(255,231,184,.1),transparent 28%),radial-gradient(ellipse at 78% 18%,rgba(143,0,24,.42),transparent 34%),linear-gradient(135deg,#070304,#2a050b 46%,#050304);color:#fffaf0;padding:26px}.admin-console:before{position:absolute;inset:-12%;background:radial-gradient(circle at 8% 18%,rgba(255,250,240,.42) 0 1px,transparent 1.5px),radial-gradient(circle at 18% 72%,rgba(255,224,163,.32) 0 1px,transparent 1.5px),radial-gradient(circle at 33% 43%,rgba(255,250,240,.28) 0 1px,transparent 1.4px),radial-gradient(circle at 47% 16%,rgba(255,231,184,.36) 0 1px,transparent 1.5px),radial-gradient(circle at 61% 66%,rgba(255,250,240,.34) 0 1px,transparent 1.5px),radial-gradient(circle at 76% 34%,rgba(255,224,163,.28) 0 1px,transparent 1.5px),radial-gradient(circle at 91% 80%,rgba(255,250,240,.32) 0 1px,transparent 1.5px);content:"";opacity:.72;animation:starFieldDrift 34s var(--ease-soft) infinite alternate;pointer-events:none}.admin-console>.interactive-starfield{z-index:1;opacity:.58}.admin-console-grid,.admin-console-hero,.admin-console-topbar{position:relative;z-index:3}.admin-console-topbar{display:flex;align-items:center;justify-content:space-between;gap:18px;max-width:1380px;margin:0 auto 24px;border:1px solid rgba(255,231,184,.14);border-radius:var(--radius);background:rgba(10,4,6,.5);padding:14px 16px;box-shadow:0 22px 70px rgba(0,0,0,.24);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px)}.admin-console-topbar .brand{color:#fffaf0}.admin-console-topbar .brand-copy span,.admin-console-topbar p{color:rgba(255,250,240,.64)}.admin-console-topbar p{margin:8px 0 0 52px;font-size:13px}.admin-console .button.secondary{border-color:rgba(255,250,240,.18);background:rgba(255,250,240,.08);color:#fffaf0}.admin-console .button.secondary:hover{border-color:rgba(255,230,166,.4);background:rgba(255,250,240,.14);color:#ffe6a6}.admin-console-hero{max-width:1380px;margin:0 auto 18px;border:1px solid rgba(255,231,184,.16);border-radius:var(--radius);background:linear-gradient(135deg,rgba(143,0,24,.42),rgba(8,3,5,.64)),radial-gradient(ellipse at 18% 25%,rgba(255,231,184,.14),transparent 30%);padding:38px;box-shadow:inset 0 0 44px rgba(255,231,184,.035),0 26px 80px rgba(0,0,0,.28);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px)}.admin-console-hero h1{max-width:760px;margin:20px 0 12px;font-family:var(--font-display);font-size:48px;line-height:1.08}.admin-console-hero p,.admin-table-panel p{max-width:760px;margin:0;color:rgba(255,250,240,.68);line-height:1.75}.admin-console-grid{display:grid;max-width:1380px;grid-template-columns:minmax(180px,240px) minmax(0,1fr);grid-gap:18px;gap:18px;margin:0 auto}.admin-summary,.admin-table-panel{border:1px solid rgba(255,231,184,.14);border-radius:var(--radius);background:rgba(10,4,6,.52);box-shadow:0 24px 74px rgba(0,0,0,.24),inset 0 0 24px rgba(255,231,184,.035);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px)}.admin-summary{display:grid;align-content:start;grid-gap:18px;gap:18px;min-height:150px;padding:24px}.admin-summary span{color:rgba(255,250,240,.62);font-size:13px;font-weight:850}.admin-summary strong{color:#ffe6a6;font-size:58px;line-height:1;text-shadow:0 0 28px rgba(255,214,143,.26)}.admin-table-panel{display:grid;grid-gap:18px;gap:18px;min-width:0;padding:22px}.admin-table-panel h2{margin:0 0 6px;color:#fffaf0;font-size:24px}.admin-table-wrap{overflow-x:auto;border:1px solid rgba(255,231,184,.12);border-radius:var(--radius);background:rgba(255,250,240,.045)}.admin-table{width:100%;min-width:1540px;border-collapse:collapse}.admin-table td,.admin-table th{border-bottom:1px solid rgba(255,231,184,.1);padding:14px 16px;text-align:left;vertical-align:middle}.admin-table th{background:rgba(255,250,240,.07);color:rgba(255,250,240,.66);font-size:13px;font-weight:850}.admin-table td{color:rgba(255,250,240,.78)}.admin-table td strong{color:#fffaf0}.admin-table tr:last-child td{border-bottom:0}.admin-table tbody tr:hover td{background:rgba(255,250,240,.055)}.empty-cell{color:var(--muted);padding:28px 16px;text-align:center}.mono{max-width:240px;overflow-wrap:anywhere;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,monospace;font-size:12px}.password-cell{display:grid;min-width:150px;grid-template-columns:minmax(86px,1fr) auto;align-items:center;grid-gap:10px;gap:10px}.admin-qr-image{display:block;width:96px;height:96px;border:1px solid rgba(255,231,184,.18);border-radius:var(--radius);background:white;padding:6px;box-shadow:0 14px 34px rgba(0,0,0,.22)}.admin-qr-cell{display:grid;min-width:112px;grid-gap:8px;gap:8px;justify-items:center}.admin-qr-actions{display:flex;gap:6px}.admin-qr-actions .mini-button{display:inline-flex;min-height:28px;align-items:center;text-decoration:none}.admin-table td:nth-child(3),.admin-table td:nth-child(4),.admin-table td:nth-child(9){overflow-wrap:anywhere}.permission-cell{display:grid;min-width:130px;grid-template-columns:auto 1fr;grid-gap:6px 10px;gap:6px 10px;align-items:center}.year-permission-cell{display:grid;min-width:190px;grid-template-columns:76px auto;grid-gap:8px;gap:8px;align-items:center}.year-permission-cell span{grid-column:1/-1;color:rgba(255,250,240,.56);font-size:12px;line-height:1.45}.toggle{position:relative;width:46px;height:26px;border:1px solid rgba(255,250,240,.18);border-radius:999px;background:rgba(255,250,240,.16);cursor:pointer;transition:background .22s var(--ease-soft),border-color .22s var(--ease-soft)}.toggle span{position:absolute;top:3px;left:3px;width:18px;height:18px;border-radius:999px;background:white;box-shadow:0 1px 4px rgba(15,23,42,.2);transition:transform .16s ease}.toggle.on{border-color:rgba(255,230,166,.62);background:rgba(143,0,24,.86)}.toggle.on span{transform:translateX(20px)}.toggle:disabled{cursor:wait;opacity:.68}.small-error{grid-column:1/-1;font-size:12px}.icon-button{display:inline-grid;width:34px;height:34px;flex:0 0 auto;place-items:center;border:1px solid rgba(255,250,240,.18);border-radius:6px;background:rgba(255,250,240,.08);color:#ffe6a6;cursor:pointer}.icon-button:hover{border-color:rgba(255,230,166,.42);background:rgba(255,250,240,.14)}.mini-button{min-height:32px;max-width:100%;border:1px solid rgba(255,250,240,.18);border-radius:6px;background:rgba(255,250,240,.08);color:#ffe6a6;padding:0 10px;cursor:pointer;font-size:12px;font-weight:800;line-height:1.2;white-space:nowrap}.mini-button:hover{border-color:rgba(255,230,166,.42);background:rgba(255,250,240,.14)}.mini-button.active{border-color:rgba(255,230,166,.48);background:rgba(143,0,24,.66)}.mini-button.danger{border-color:rgba(255,120,120,.32);color:#ffd2c9}.mini-button.danger:hover{border-color:rgba(255,120,120,.52);background:rgba(180,35,24,.24)}.mini-button:disabled{cursor:wait;opacity:.62}.mini-input{width:76px;min-height:32px;border:1px solid rgba(255,250,240,.16);border-radius:6px;background:rgba(255,250,240,.08);color:#fffaf0;padding:0 8px;font-size:12px;font-weight:800}.editor-card{position:relative;overflow:hidden}.capsule-card:after,.editor-card:after{position:absolute;right:24px;bottom:18px;color:rgba(143,0,24,.05);content:"通";font-size:132px;font-weight:900;line-height:.8;pointer-events:none}.capsule-shell{display:grid;min-height:calc(100vh - 160px);align-items:center}.capsule-card{position:relative;overflow:hidden;padding:52px}.capsule-card h1{font-size:52px;line-height:1.08}.capsule-message{position:relative;z-index:1;margin-top:18px;white-space:pre-wrap;color:#1e293b;line-height:2;font-size:20px}.capsule-unlock-form{position:relative;z-index:1;display:grid;max-width:520px;grid-gap:16px;gap:16px;margin-top:24px;border:1px solid rgba(143,0,24,.12);border-radius:var(--radius);background:linear-gradient(135deg,rgba(255,250,240,.84),rgba(255,255,255,.58)),radial-gradient(circle at 12% 18%,rgba(143,0,24,.07),transparent 34%);padding:24px;box-shadow:var(--shadow-sm)}.capsule-unlock-form>div{display:grid;grid-gap:8px;gap:8px}.capsule-unlock-form>div>span{color:var(--pku);font-size:12px;font-weight:900}.capsule-unlock-form h2{margin:0;font-size:28px}.capsule-unlock-form p{margin:0;color:var(--ink-soft);line-height:1.7}.capsule-year-list{position:relative;z-index:1;display:grid;grid-gap:16px;gap:16px;margin-top:22px}.capsule-year-card{display:grid;grid-gap:10px;gap:10px;border:1px solid rgba(143,0,24,.14);border-radius:var(--radius);background:rgba(255,250,240,.72);padding:22px;box-shadow:var(--shadow-sm)}.capsule-year-card span{color:var(--pku);font-size:13px;font-weight:900}.capsule-year-card h2{margin:0;font-size:26px}.capsule-year-card p{margin:0;color:var(--ink-soft);font-size:17px;line-height:1.9;white-space:pre-wrap}.capsule-year-card small{color:var(--muted);font-size:12px;font-weight:800}.actions{display:flex;flex-wrap:wrap;gap:12px;align-items:center}.welcome-page{position:relative;display:grid;min-height:100vh;overflow:hidden;place-items:center;background:radial-gradient(circle at 18% 72%,rgba(255,231,184,.12),transparent 24%),radial-gradient(circle at 78% 18%,rgba(255,250,240,.1),transparent 22%),linear-gradient(135deg,rgba(15,5,8,.98),rgba(76,5,17,.96)),linear-gradient(180deg,var(--pku-dark),#1d1113);color:#fffaf0}.welcome-canvas{position:absolute;inset:0;width:100%;height:100%}.welcome-corners{position:absolute;inset:32px;display:flex;align-items:flex-start;justify-content:space-between;pointer-events:none}.welcome-corners img{width:74px;height:74px;object-fit:contain;opacity:.86;filter:drop-shadow(0 12px 22px rgba(0,0,0,.3))}.welcome-content{position:relative;z-index:1;width:min(860px,calc(100% - 48px));padding:86px 32px;text-align:center;transition:opacity .9s var(--ease-out),transform .9s var(--ease-out),filter .9s var(--ease-out);will-change:opacity,transform,filter}.welcome-page.auth-floating .welcome-content{opacity:0;filter:blur(8px);transform:translateY(-18px) scale(.98);pointer-events:none}.welcome-page.is-launching .welcome-auth-float,.welcome-page.is-launching .welcome-content,.welcome-page.is-launching .welcome-corners{opacity:0;filter:blur(12px);transform:translateY(-18px) scale(.96);transition:opacity .42s var(--ease-out),transform .42s var(--ease-out),filter .42s var(--ease-out);pointer-events:none}.welcome-kicker{display:inline-flex;min-height:32px;align-items:center;border-left:3px solid var(--gold);background:rgba(255,250,240,.08);padding:0 14px;color:#f8e4bd;font-size:13px;font-weight:850}.welcome-content h1{margin:18px 0;font-size:68px;line-height:1.02}.welcome-content>p:not(.welcome-kicker){max-width:690px;margin:0 auto;color:rgba(255,250,240,.76);font-size:18px;line-height:1.9}.welcome-actions{display:flex;justify-content:center;margin-top:34px}.welcome-button{display:inline-flex;min-width:168px;min-height:48px;align-items:center;justify-content:center;border:1px solid rgba(255,250,240,.42);border-radius:var(--radius);background:rgba(255,250,240,.95);color:var(--pku-dark);cursor:pointer;font-weight:900;text-decoration:none;transition:background .16s ease,transform .16s ease,border-color .16s ease}.welcome-button:hover{border-color:#fffaf0;background:#fffdf6;transform:translateY(-2px)}.welcome-button.secondary{background:rgba(255,250,240,.08);color:#fffaf0}.welcome-auth-float{position:absolute;z-index:3;top:50%;left:50%;display:grid;width:min(460px,calc(100% - 40px));grid-gap:14px;gap:14px;border:1px solid rgba(255,238,204,.24);border-radius:var(--radius);background:rgba(32,7,12,.82);padding:30px;color:#fffaf0;box-shadow:0 28px 80px rgba(0,0,0,.42);-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);animation:authFloatIn .9s var(--ease-out) both;transform:translate(-50%,-50%);text-align:center}.welcome-auth-float.is-register{width:min(560px,calc(100% - 40px))}.welcome-auth-pane{display:grid;grid-gap:14px;gap:14px;animation:authPaneIn .56s var(--ease-out) both}.embedded-auth-form{text-align:left}.embedded-auth-form h2,.embedded-auth-form>span{text-align:center}.embedded-auth-form .field>span{color:rgba(255,250,240,.72);font-size:12px;font-weight:850}.embedded-auth-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:12px;gap:12px}.input.dark{border-color:rgba(255,238,204,.22);background:rgba(255,250,240,.08);color:#fffaf0}.input.dark::placeholder{color:rgba(255,250,240,.42)}.input.dark:focus{border-color:rgba(255,231,184,.64);background:rgba(255,250,240,.12);box-shadow:0 0 0 3px rgba(255,231,184,.12)}.identity-tabs.compact{gap:8px}.identity-tabs.compact .identity-tab span{min-height:64px;border-color:rgba(255,238,204,.18);background:rgba(255,250,240,.07)}.identity-tabs.compact .identity-tab strong{color:#fffaf0;font-size:14px}.identity-tabs.compact .identity-tab small{color:rgba(255,250,240,.58)}.identity-tabs.compact .identity-tab input:checked+span{border-color:rgba(255,231,184,.58);border-left-color:var(--gold-soft);background:rgba(255,250,240,.13)}.auth-text-button{border:0;background:transparent;color:rgba(255,250,240,.72);cursor:pointer;font-weight:850;text-decoration:underline;text-underline-offset:4px}.auth-error,.auth-status{margin:0;text-align:center;font-size:13px;font-weight:850}.auth-status{color:#f5ead8}.auth-error{color:#ffd1c8}.welcome-auth-float span{color:var(--gold-soft);font-size:12px;font-weight:900}.welcome-auth-float h2{margin:0;font-size:28px}.welcome-auth-float p{margin:0;color:rgba(255,250,240,.72);line-height:1.8}.welcome-auth-actions{display:flex;flex-wrap:wrap;justify-content:center;gap:12px;margin-top:8px}.welcome-auth-close{position:absolute;top:12px;right:12px;width:34px;height:34px;border:1px solid rgba(255,250,240,.18);border-radius:999px;background:rgba(255,250,240,.08);color:#fffaf0;cursor:pointer;font-size:22px;line-height:1}.welcome-lift-edge{position:absolute;right:0;bottom:0;left:0;height:9px;background:linear-gradient(90deg,transparent,rgba(255,250,240,.8),transparent)}.rocket-launch-overlay{position:absolute;inset:0;z-index:6;display:grid;place-items:center;overflow:hidden;padding:24px;pointer-events:auto}.rocket-launch-overlay:before{position:absolute;inset:0;background:radial-gradient(circle at 20% 82%,rgba(255,231,184,.1),transparent 23%),radial-gradient(circle at 70% 22%,rgba(255,250,240,.12),transparent 18%),radial-gradient(ellipse at 56% 54%,rgba(143,0,24,.34),transparent 50%),linear-gradient(135deg,rgba(10,3,6,.78),rgba(43,5,12,.82));content:"";animation:launchSkyDeepen .8s var(--ease-soft) both}.rocket-flight-path{position:absolute;inset:0;z-index:1;opacity:0}.rocket-launch-overlay.is-launched .rocket-flight-path{animation:flightPathReveal 2.2s .12s var(--ease-out) both}.rocket-flight-path svg{width:100%;height:100%;overflow:visible}.rocket-flight-light,.rocket-flight-rail{fill:none;stroke-linecap:round;stroke-linejoin:round}.rocket-flight-rail{stroke:rgba(255,232,187,.16);stroke-width:1.2}.rocket-flight-light{stroke:rgba(255,232,187,.78);stroke-dasharray:180 780;stroke-dashoffset:780;stroke-width:2.1;filter:drop-shadow(0 0 8px rgba(255,218,138,.34))}.rocket-launch-overlay.is-launched .rocket-flight-light{animation:flightRailTrace 1.35s linear .06s both}.rocket-ticket{position:relative;z-index:3;width:min(720px,calc(100vw - 42px));overflow:hidden;border-radius:18px;background:radial-gradient(circle at 0 49%,transparent 0 23px,#fffdf6 24px),radial-gradient(circle at 100% 49%,transparent 0 23px,#fffdf6 24px);color:#11090a;box-shadow:0 34px 110px rgba(0,0,0,.44),0 0 0 1px rgba(255,250,240,.52),0 0 70px rgba(255,232,187,.12);transform-origin:50% 64%;animation:ticketBoardingIn .74s var(--ease-out) both}.rocket-launch-overlay.is-launched .rocket-ticket{animation:ticketLaunchDepart 1.2s .12s var(--ease-in) both}.rocket-ticket:before{position:absolute;top:-56px;left:-72px;width:230px;height:142px;border-radius:44% 56% 48% 52%;background:linear-gradient(160deg,#1a3760 0 22%,transparent 22%),repeating-linear-gradient(90deg,rgba(18,22,31,.42) 0 13px,transparent 13px 24px),linear-gradient(150deg,rgba(255,250,240,.88),rgba(255,250,240,.08));content:"";opacity:.86;transform:rotate(-20deg)}.rocket-ticket:after{position:absolute;right:-44px;bottom:-52px;width:148px;height:92px;border:1px solid rgba(24,15,15,.2);border-radius:16px;background:rgba(240,237,225,.54);content:"";transform:rotate(-13deg)}.rocket-ticket-head{position:relative;z-index:1;display:flex;min-height:82px;align-items:center;justify-content:center;gap:14px;background:#b4152e;color:#fffaf0;font-family:var(--font-display);font-size:clamp(22px,4vw,34px);letter-spacing:0}.ticket-pin{position:relative;width:22px;height:30px}.ticket-pin:before{position:absolute;inset:0;border:4px solid;border-radius:999px 999px 999px 0;content:"";transform:rotate(-45deg)}.ticket-pin:after{position:absolute;left:50%;bottom:-5px;width:34px;height:7px;border:2px solid;border-top:0;border-radius:999px;content:"";opacity:.72;transform:translateX(-50%)}.rocket-ticket-body{position:relative;z-index:1;display:grid;grid-gap:24px;gap:24px;padding:36px 52px 34px}.ticket-route{display:grid;grid-template-columns:1fr auto 1fr;grid-gap:22px;gap:22px;align-items:center}.ticket-route>div:last-child{text-align:right}.ticket-meta dt,.ticket-route span{display:block;color:rgba(17,9,10,.64);font-family:var(--font-sans);font-size:18px;line-height:1.2}.ticket-route strong{display:block;font-family:var(--font-display);font-size:clamp(34px,5.5vw,52px);line-height:1.05}.ticket-route small{display:block;margin-top:6px;font-size:clamp(18px,2.5vw,28px);font-weight:850;line-height:1.15}.ticket-route-rocket{width:70px;color:#0c0a0a;filter:none;transform:rotate(90deg)}.ticket-dots{height:11px;background:radial-gradient(circle,#54b9ed 0 5px,transparent 5.5px) 0 50% /24px 11px repeat-x;opacity:.92}.ticket-meta{display:grid;grid-template-columns:minmax(0,1fr) auto;grid-gap:34px;gap:34px;align-items:center}.ticket-meta dl{display:grid;grid-gap:18px;gap:18px;margin:0}.ticket-meta div{display:grid;grid-template-columns:92px minmax(0,1fr);grid-gap:14px;gap:14px;align-items:baseline}.ticket-meta dt:after{display:block;color:rgba(17,9,10,.42);font-size:13px;font-weight:500}.ticket-meta div:first-child dt:after{content:"Name"}.ticket-meta div:nth-child(2) dt:after{content:"Class"}.ticket-meta div:nth-child(3) dt:after{content:"Seat"}.ticket-meta dd{margin:0;font-family:var(--font-display);font-size:clamp(28px,4vw,46px);font-weight:800;line-height:1.08;overflow-wrap:anywhere}.ticket-seal{display:grid;width:116px;aspect-ratio:1;place-items:center;border:3px solid #b4152e;border-radius:999px;opacity:.94}.ticket-seal img{width:92px;height:92px;object-fit:contain;filter:saturate(.9) contrast(1.08)}.ticket-blessing{position:relative;display:flex;align-items:flex-end;min-height:86px}.ticket-blessing strong{font-family:var(--font-display);font-size:clamp(54px,8vw,96px);font-weight:900;line-height:.92;letter-spacing:0}.ticket-blessing span{position:absolute;left:34%;bottom:10px;color:#e9a800;font-family:cursive;font-size:clamp(44px,7vw,82px);font-style:italic;line-height:1;transform:rotate(-8deg)}.ticket-launch-row{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-top:-14px}.ticket-launch-row>p{margin:-14px 0 0;color:rgba(17,9,10,.7);font-size:18px;font-weight:850;letter-spacing:.12em}.ticket-launch-button{min-height:44px;border:1px solid rgba(180,21,46,.28);border-radius:999px;background:#b4152e;box-shadow:0 12px 28px rgba(180,21,46,.2),inset 0 0 0 1px rgba(255,250,240,.2);color:#fffaf0;cursor:pointer;font-size:13px;font-weight:950;letter-spacing:0;padding:0 20px;transition:transform .18s var(--ease-out),box-shadow .18s var(--ease-soft),background .18s var(--ease-soft);white-space:nowrap}.ticket-launch-button:focus-visible:not(:disabled),.ticket-launch-button:hover:not(:disabled){background:#c91c38;box-shadow:0 16px 36px rgba(180,21,46,.28),0 0 0 4px rgba(180,21,46,.08);outline:none;transform:translateY(-2px)}.ticket-launch-button:disabled{cursor:wait;opacity:.76}.launch-rocket{position:absolute;z-index:5;top:0;left:0;width:86px;height:86px;opacity:0;transform:translate3d(48vw,68vh,0) translate(-50%,-50%) rotate(20deg) scale(.46);transform-origin:50% 58%;will-change:opacity,transform}.launch-rocket .rocket-glyph{position:relative;z-index:2;width:100%;height:100%;color:#fff4d7;filter:drop-shadow(0 0 6px rgba(255,232,187,.7)) drop-shadow(0 0 26px rgba(255,190,82,.36))}.launch-rocket span{position:absolute;top:76%;left:50%;z-index:1;width:10px;height:118px;border-radius:999px;background:linear-gradient(180deg,rgba(255,250,240,.92),rgba(255,210,117,.5) 24%,rgba(255,105,60,.16) 56%,transparent 88%);filter:blur(2.8px);opacity:0;transform:translate(-50%,64%) scaleY(.82);transform-origin:50% 0}.launch-rocket span:after,.launch-rocket span:before{position:absolute;top:18px;left:50%;width:26px;height:86px;border-radius:999px;background:linear-gradient(180deg,rgba(255,231,184,.2),rgba(255,160,82,.12),transparent);content:"";filter:blur(8px);transform:translateX(-50%) rotate(8deg)}.launch-rocket span:after{width:42px;opacity:.58;transform:translateX(-50%) rotate(-10deg)}.rocket-glyph{color:currentColor;overflow:visible}.rocket-glyph-body{fill:rgba(255,250,240,.05)}.rocket-glyph circle,.rocket-glyph path{fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:4}.rocket-glyph .rocket-glyph-body,.rocket-glyph .rocket-glyph-flame{fill:rgba(255,250,240,.08)}@keyframes authFloatIn{0%{opacity:0;filter:blur(10px);transform:translate(-50%,calc(-50% + 28px)) scale(.965)}to{opacity:1;filter:blur(0);transform:translate(-50%,-50%) scale(1)}}@keyframes ticketBoardingIn{0%{opacity:0;filter:blur(14px);transform:translate3d(0,38px,0) scale(.9) rotateX(10deg)}to{opacity:1;filter:blur(0);transform:translateZ(0) scale(1) rotateX(0deg)}}@keyframes ticketLaunchDepart{0%{opacity:1;filter:blur(0);transform:translateZ(0) scale(1)}52%{opacity:.82;filter:blur(0);transform:translate3d(-5vw,8vh,0) scale(.76) rotate(-4deg)}to{opacity:0;filter:blur(16px);transform:translate3d(-22vw,28vh,0) scale(.18) rotate(-12deg)}}@keyframes launchSkyDeepen{0%{opacity:0}18%,to{opacity:1}}@keyframes flightPathReveal{0%{opacity:0;filter:blur(10px)}28%,82%{opacity:1;filter:blur(0)}to{opacity:0;filter:blur(8px)}}@keyframes flightRailTrace{0%{stroke-dashoffset:780}to{stroke-dashoffset:0}}@keyframes rocketTakeoff{0%{opacity:0;filter:blur(4px);transform:translate(-50%,-50%) translate3d(-1vw,18vh,0) rotate(5deg) scale(.4)}10%{opacity:1;filter:blur(0);transform:translate(-50%,-50%) translate3d(0,10vh,0) rotate(7deg) scale(.56)}28%{opacity:1;transform:translate(-50%,-50%) translate3d(2.8vw,-4vh,0) rotate(11deg) scale(.74)}56%{opacity:1;transform:translate(-50%,-50%) translate3d(8vw,-26vh,0) rotate(15deg) scale(.98)}82%{opacity:1;filter:blur(0);transform:translate(-50%,-50%) translate3d(14vw,-50vh,0) rotate(18deg) scale(1.04)}to{opacity:0;filter:blur(3px);transform:translate(-50%,-50%) translate3d(20vw,-78vh,0) rotate(20deg) scale(.28)}}@keyframes rocketTrailBurn{0%{opacity:0;transform:translateX(50%) scaleY(.35)}12%{opacity:.96;transform:translateX(50%) scaleY(.86)}50%{opacity:.84;transform:translateX(50%) scaleY(1.3)}82%{opacity:.98;transform:translateX(50%) scaleY(1.72)}to{opacity:0;transform:translateX(50%) scaleY(.24)}}@keyframes authPaneIn{0%{opacity:0;transform:translate3d(0,14px,0)}to{opacity:1;transform:translateZ(0)}}.alumni-dashboard{position:relative;display:block;min-height:100vh;overflow:hidden;background:radial-gradient(circle at 16% 72%,rgba(255,231,184,.12),transparent 24%),radial-gradient(circle at 78% 18%,rgba(255,250,240,.08),transparent 24%),linear-gradient(135deg,#100508,#3e0710 48%,#070405)}.dashboard-corner-logo{position:fixed;z-index:4;width:62px;height:62px;object-fit:contain;opacity:.22;pointer-events:none}.dashboard-corner-logo.pku{top:24px;left:24px}.dashboard-corner-logo.identity{right:24px;bottom:24px}.profile-sidebar{position:fixed;top:78px;left:24px;z-index:6;display:grid;width:min(306px,calc(100vw - 48px));max-height:calc(100vh - 110px);overflow:auto;align-content:start;grid-gap:22px;gap:22px;border:1px solid rgba(255,238,204,.2);border-radius:var(--radius);background:rgba(255,250,240,.88);padding:24px;box-shadow:0 24px 70px rgba(0,0,0,.26);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);transition:transform .24s ease,opacity .24s ease}.profile-toggle-input{display:none;position:fixed;opacity:0;pointer-events:none}.profile-toggle{position:fixed;z-index:6;top:24px;left:24px;display:inline-flex;width:42px;height:42px;align-items:center;justify-content:center;border:1px solid rgba(255,238,204,.22);border-radius:999px;background:radial-gradient(circle at 35% 30%,rgba(255,250,240,.14),transparent 42%),rgba(32,7,12,.74);color:#ffe6a6;cursor:pointer;box-shadow:0 16px 38px rgba(0,0,0,.28),inset 0 0 18px rgba(255,231,184,.045);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);transition:border-color .22s var(--ease-soft),box-shadow .22s var(--ease-soft),transform .22s var(--ease-out)}.profile-toggle:hover{border-color:rgba(255,230,166,.44);box-shadow:0 18px 44px rgba(0,0,0,.3),0 0 24px rgba(255,214,143,.12),inset 0 0 18px rgba(255,231,184,.08);transform:translateY(-1px)}.profile-toggle span{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);-webkit-clip-path:inset(50%);clip-path:inset(50%);white-space:nowrap}.profile-toggle-input:checked~.profile-sidebar{display:none}.profile-avatar.large{width:74px;height:74px;border:1px solid rgba(255,250,240,.86);font-size:32px;cursor:pointer;padding:0}.profile-avatar.large.has-image{background:rgba(143,0,24,.08);box-shadow:0 0 0 3px rgba(255,232,187,.42),0 0 0 5px rgba(143,0,24,.1),0 14px 34px rgba(46,8,14,.16)}.profile-avatar.large:disabled{cursor:wait;opacity:.68}.profile-avatar-overlay{position:absolute;inset:0;display:grid;place-items:center;background:rgba(32,7,12,.58);color:#fffaf0;font-size:11px;font-weight:900;line-height:1.2;opacity:0;padding:8px;text-align:center;transition:opacity .18s var(--ease-soft)}.profile-avatar.large:focus-visible .profile-avatar-overlay,.profile-avatar.large:hover .profile-avatar-overlay{opacity:1}.profile-avatar-uploader{display:grid;justify-items:start;grid-gap:6px;gap:6px}.profile-avatar-action{color:var(--pku);font-size:12px;padding:0}.profile-avatar-uploader .small-error{font-size:12px}.profile-kicker{color:var(--pku);font-size:13px;font-weight:850}.profile-sidebar h1{margin:8px 0 4px;font-size:34px;line-height:1.12}.profile-sidebar p{margin:0;color:var(--muted);line-height:1.75}.profile-tags{display:flex;flex-wrap:wrap;gap:7px;margin-top:10px}.profile-tags span{max-width:100%;border:1px solid rgba(143,0,24,.12);border-radius:999px;background:rgba(143,0,24,.055);color:var(--ink-soft);font-size:12px;font-weight:820;line-height:1.25;overflow-wrap:anywhere;padding:6px 9px}.profile-list{display:grid;grid-gap:0;gap:0;margin:0;border-top:1px solid var(--line)}.profile-list div{display:grid;grid-gap:7px;gap:7px;border-bottom:1px solid var(--line);padding:15px 0}.profile-list dt{color:var(--muted);font-size:12px;font-weight:800}.profile-list dd{margin:0;color:var(--ink);font-weight:780;overflow-wrap:anywhere}.profile-list.compact div{padding:10px 0}.profile-list.compact dd{color:var(--ink-soft);font-size:13px;font-weight:720;line-height:1.55}.profile-details-editor{display:grid;grid-gap:14px;gap:14px}.profile-completion{display:grid;grid-gap:4px;gap:4px;border:1px solid rgba(143,0,24,.12);border-radius:var(--radius);background:rgba(143,0,24,.05);padding:12px}.profile-completion.incomplete{border-color:rgba(143,0,24,.2);background:rgba(143,0,24,.08)}.profile-completion strong{color:var(--pku);font-size:13px;font-weight:900}.profile-completion span{color:var(--muted);font-size:12px;font-weight:800}.profile-edit-button{justify-self:start;color:var(--pku);border-color:rgba(143,0,24,.18);background:rgba(143,0,24,.06)}.profile-details-form{display:grid;grid-gap:12px;gap:12px}.profile-details-form label{display:grid;grid-gap:6px;gap:6px}.profile-details-form label>span{color:var(--muted);font-size:12px;font-weight:850}.profile-details-form .input,.profile-details-form .textarea{min-height:38px;border-color:rgba(143,0,24,.16);background:rgba(255,253,246,.78);font-size:13px}.profile-details-form .textarea{min-height:92px;resize:vertical}.profile-form-actions{display:flex;gap:8px}.profile-sidebar-footer{display:grid;grid-gap:16px;gap:16px;margin-top:auto}.timeline-main{position:absolute;inset:0;z-index:1;display:grid;grid-gap:0;gap:0;min-width:0}.galaxy-stage{position:relative;display:grid;width:100vw;min-height:100vh;overflow:hidden;border:0;border-radius:0;background:radial-gradient(circle at 18% 72%,rgba(255,231,184,.12),transparent 22%),radial-gradient(circle at 82% 20%,rgba(255,250,240,.1),transparent 24%),radial-gradient(ellipse at 50% 56%,rgba(143,0,24,.28),transparent 46%),linear-gradient(135deg,#130608,#4a0712 50%,#080506);box-shadow:inset 0 0 120px rgba(0,0,0,.32),inset 0 0 42px rgba(255,238,204,.055),inset 0 0 1px rgba(255,250,240,.18)}.galaxy-stage:before{position:absolute;inset:-8%;background:radial-gradient(circle at 6% 22%,rgba(255,250,240,.72) 0 1px,transparent 1.6px),radial-gradient(circle at 14% 78%,rgba(255,224,163,.48) 0 1px,transparent 1.5px),radial-gradient(circle at 23% 49%,rgba(255,250,240,.42) 0 1px,transparent 1.5px),radial-gradient(circle at 35% 18%,rgba(255,231,184,.54) 0 1px,transparent 1.6px),radial-gradient(circle at 47% 83%,rgba(255,250,240,.38) 0 1px,transparent 1.5px),radial-gradient(circle at 59% 36%,rgba(255,224,163,.44) 0 1px,transparent 1.5px),radial-gradient(circle at 68% 68%,rgba(255,250,240,.58) 0 1px,transparent 1.6px),radial-gradient(circle at 79% 13%,rgba(255,231,184,.4) 0 1px,transparent 1.5px),radial-gradient(circle at 89% 55%,rgba(255,250,240,.5) 0 1px,transparent 1.5px),radial-gradient(circle at 96% 84%,rgba(255,224,163,.34) 0 1px,transparent 1.5px);content:"";opacity:.26;animation:starFieldDrift 34s var(--ease-soft) infinite alternate;will-change:transform}.identity-watermark{position:absolute;inset:50% auto auto 50%;z-index:1;display:grid;place-items:center;width:min(58vw,620px);aspect-ratio:1;opacity:.1;pointer-events:none;transform:translate(-50%,-50%);-webkit-user-select:none;-moz-user-select:none;user-select:none}.identity-watermark img{width:100%;height:100%;object-fit:contain;filter:brightness(0) invert(1) blur(.8px)}.identity-watermark strong{position:absolute;bottom:14%;color:rgba(255,250,240,.72);font-family:var(--font-display);font-size:clamp(38px,7vw,96px);font-weight:700;letter-spacing:0;text-shadow:0 0 18px rgba(255,232,187,.18),0 0 54px rgba(255,250,240,.08)}.galaxy-stage.is-tong-class .identity-watermark{width:min(64vw,680px);opacity:.13}.galaxy-stage.is-tong-class .identity-watermark img{filter:brightness(0) invert(1) contrast(1.22) blur(.24px) drop-shadow(0 0 18px rgba(255,232,187,.1))}.galaxy-stage.is-phd-class .identity-watermark{width:min(68vw,760px);opacity:.16}.galaxy-stage.is-phd-class .identity-watermark strong{position:static;color:rgba(255,250,240,.74);font-size:clamp(56px,12vw,156px);line-height:.9}.zodiac-map{position:absolute;inset:0;z-index:2;overflow:hidden;touch-action:none}.class-galaxy-stage{position:relative;min-height:100vh;overflow:hidden;background:radial-gradient(circle at 18% 72%,rgba(255,231,184,.12),transparent 22%),radial-gradient(circle at 82% 20%,rgba(255,250,240,.1),transparent 24%),radial-gradient(ellipse at 50% 56%,rgba(143,0,24,.28),transparent 46%),linear-gradient(135deg,#130608,#4a0712 50%,#080506);transform-origin:52% 51%}.class-galaxy-stage.is-phd-class{background:radial-gradient(circle at 17% 72%,rgba(151,217,211,.11),transparent 23%),radial-gradient(circle at 84% 22%,rgba(201,232,225,.08),transparent 25%),radial-gradient(ellipse at 49% 57%,rgba(20,95,96,.36),transparent 48%),radial-gradient(ellipse at 66% 38%,rgba(43,121,119,.22),transparent 44%),linear-gradient(135deg,#041112,#0d3233 47%,#03090b);box-shadow:inset 0 0 130px rgba(0,0,0,.42),inset 0 0 48px rgba(162,224,218,.06),inset 0 0 1px rgba(205,246,238,.16)}.class-galaxy-stage.is-entering{animation:classGalaxyEnter .68s var(--ease-out) both}.class-galaxy-stage.has-arrival-rocket .class-galaxy-copy{animation:arrivalCopyDim 3.2s var(--ease-soft) both}.class-galaxy-copy{position:absolute;top:24px;right:28px;z-index:4;display:grid;max-width:min(360px,calc(100vw - 120px));grid-gap:8px;gap:8px;color:rgba(255,250,240,.72);text-align:right;pointer-events:none}.class-galaxy-copy span{color:rgba(255,232,187,.88);font-size:12px;font-weight:900;letter-spacing:0}.class-galaxy-copy p{margin:0;font-size:13px;line-height:1.75}.class-galaxy-stage.is-phd-class .class-galaxy-copy{color:rgba(219,252,246,.68)}.class-galaxy-stage.is-phd-class .class-galaxy-copy span{color:rgba(184,239,229,.9)}.class-graduate-doodles{position:absolute;inset:0;z-index:2;overflow:visible;pointer-events:none}.class-graduate-star-sketches{position:absolute;inset:0;width:100%;height:100%;color:rgba(255,224,158,.54);opacity:.4;overflow:visible}.class-graduate-star-sketches circle,.class-graduate-star-sketches path{fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.45;vector-effect:non-scaling-stroke}.class-graduate-star-sketches circle{fill:currentColor;stroke:none;filter:drop-shadow(0 0 7px rgba(255,232,187,.38))}.graduate-lineart-figure{position:absolute;height:auto;mix-blend-mode:screen;opacity:.18;filter:drop-shadow(0 0 5px rgba(255,232,187,.18)) drop-shadow(0 0 22px rgba(255,198,94,.14));transform-origin:50% 78%;-webkit-user-select:none;-moz-user-select:none;user-select:none;animation:graduateLineartDrift 9s var(--ease-soft) infinite alternate;will-change:opacity,transform}.graduate-lineart-left{left:clamp(18px,7vw,118px);bottom:-8%;z-index:1;width:clamp(280px,26vw,460px);--figure-flip:1;--figure-rotate:-4deg;--figure-drift-from-x:-2px;--figure-drift-from-y:2px;--figure-drift-x:6px;--figure-drift-y:-7px;--figure-opacity-from:0.18;--figure-opacity-to:0.24}.graduate-lineart-female{right:clamp(180px,22vw,330px);bottom:-9%;z-index:1;width:clamp(220px,18vw,330px);--figure-flip:1;--figure-rotate:-2deg;--figure-drift-from-x:2px;--figure-drift-from-y:1px;--figure-drift-x:-5px;--figure-drift-y:-5px;--figure-opacity-from:0.15;--figure-opacity-to:0.2;animation-delay:-2.1s}.graduate-lineart-camera{right:clamp(10px,5vw,88px);bottom:-8%;z-index:2;width:clamp(240px,20vw,370px);--figure-flip:1;--figure-rotate:5deg;--figure-drift-from-x:3px;--figure-drift-from-y:1px;--figure-drift-x:-7px;--figure-drift-y:-5px;--figure-opacity-from:0.16;--figure-opacity-to:0.22;animation-delay:-3.4s}.class-group-watermark{position:absolute;inset:50% auto auto 50%;z-index:2;width:min(72vw,84vh);aspect-ratio:1.25;opacity:.115;pointer-events:none;transform:translate(-50%,-50%);-webkit-user-select:none;-moz-user-select:none;user-select:none}.class-group-watermark img{width:100%;height:100%;object-fit:contain;filter:brightness(0) invert(1) contrast(1.24) blur(.24px) drop-shadow(0 0 22px rgba(255,232,187,.12))}.class-group-watermark strong{color:rgba(255,250,240,.72);font-family:var(--font-display);font-size:clamp(54px,11vw,148px);font-weight:700;line-height:.88;letter-spacing:0;text-shadow:0 0 18px rgba(255,232,187,.18),0 0 54px rgba(255,250,240,.08)}.class-galaxy-stage.is-phd-class .class-group-watermark{width:min(68vw,760px);opacity:.18}.class-galaxy-stage.is-phd-class .class-group-watermark strong{color:rgba(199,239,232,.72);text-shadow:0 0 18px rgba(126,214,207,.2),0 0 54px rgba(200,245,238,.08)}.class-constellation-field{position:absolute;inset:0;z-index:3}.class-member-constellation{position:absolute;top:var(--member-y);left:var(--member-x);display:block;width:clamp(64px,8.4vw,112px);height:clamp(64px,8.4vw,112px);border:0;background:transparent;color:rgba(255,232,187,.72);cursor:default;opacity:0;padding:0;transform:translate(-50%,-50%) scale(var(--member-scale));animation:classConstellationFloat 7.2s var(--ease-soft) var(--member-delay) infinite alternate,classConstellationIn .8s var(--ease-out) var(--member-delay) both;will-change:transform,opacity}.class-member-constellation.current{color:rgba(255,246,222,.98);cursor:pointer;filter:drop-shadow(0 0 18px rgba(255,214,143,.28))}.class-galaxy-stage.has-arrival-rocket .class-member-constellation.current{animation:classConstellationFloat 7.2s var(--ease-soft) var(--member-delay) infinite alternate,classConstellationIn .8s var(--ease-out) var(--member-delay) both,currentConstellationLock 7.4s var(--ease-out) both}.class-member-constellation svg{position:absolute;inset:0;overflow:visible}.class-member-constellation polyline{fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:.46;opacity:.36;animation:classLineGlimmer 5.8s var(--ease-soft) var(--member-delay) infinite alternate}.class-member-constellation circle{fill:currentColor;opacity:.8;filter:drop-shadow(0 0 2px rgba(255,232,187,.66));transform-box:fill-box;transform-origin:center;animation:classStarPulse 4.8s var(--ease-soft) var(--star-pulse-delay) infinite alternate;will-change:opacity,transform}.class-member-constellation.current polyline{opacity:.52;stroke-width:.54}.class-member-constellation.current circle{opacity:.98;filter:drop-shadow(0 0 3px rgba(255,250,240,.92)) drop-shadow(0 0 14px rgba(255,214,143,.62))}.class-member-constellation span{position:absolute;top:calc(100% - 4px);left:50%;width:max-content;max-width:160px;color:rgba(255,250,240,.68);font-size:11px;font-weight:850;opacity:0;overflow:hidden;text-overflow:ellipsis;transform:translate(-50%,6px);transition:opacity .22s var(--ease-soft),transform .22s var(--ease-out);white-space:nowrap}.class-member-constellation:focus-visible span,.class-member-constellation:hover span{opacity:1;transform:translate(-50%)}.class-member-constellation:focus-visible{outline:none}.class-member-constellation.current:focus-visible{filter:drop-shadow(0 0 18px rgba(255,214,143,.38)) drop-shadow(0 0 54px rgba(255,250,240,.16))}.class-galaxy-stage.is-phd-class .class-member-constellation{color:rgba(174,234,224,.7)}.class-galaxy-stage.is-phd-class .class-member-constellation.current{color:rgba(226,255,249,.98);filter:drop-shadow(0 0 18px rgba(121,224,215,.28))}.class-galaxy-stage.is-phd-class .class-member-constellation.current circle{filter:drop-shadow(0 0 3px rgba(239,255,252,.84)) drop-shadow(0 0 14px rgba(121,224,215,.56))}.class-galaxy-stage.is-phd-class .class-member-constellation span{color:rgba(226,255,249,.66)}.arrival-rocket{position:absolute;top:0;left:0;z-index:5;width:clamp(54px,6vw,86px);height:clamp(54px,6vw,86px);opacity:0;pointer-events:none;transform:translate3d(8vw,82vh,0) rotate(-22deg) scale(.7);transform-origin:50% 58%;will-change:opacity,transform,filter}.arrival-rocket:before{position:absolute;inset:-120%;border-radius:999px;background:radial-gradient(circle,rgba(255,232,187,.18),transparent 28%),conic-gradient(from 20deg,transparent,rgba(255,232,187,.1),transparent 38%,rgba(143,0,24,.1),transparent 68%);content:"";filter:blur(8px);opacity:.72;animation:arrivalRocketAura 1.7s var(--ease-soft) infinite alternate}.arrival-rocket-glyph{position:relative;z-index:2;width:100%;height:100%;color:#fff3d0;filter:drop-shadow(0 0 5px rgba(255,250,240,.64)) drop-shadow(0 0 22px rgba(255,202,101,.36)) drop-shadow(0 0 48px rgba(143,0,24,.22))}.arrival-rocket-glyph circle,.arrival-rocket-glyph path{fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:4}.arrival-rocket-glyph .arrival-rocket-body,.arrival-rocket-glyph .arrival-rocket-flame{fill:rgba(255,250,240,.07)}.arrival-rocket span{position:absolute;top:76%;left:50%;z-index:1;width:9px;height:94px;border-radius:999px;background:linear-gradient(180deg,rgba(255,250,240,.84),rgba(255,197,84,.44) 26%,rgba(255,120,74,.13) 58%,transparent 88%);filter:blur(2.6px);opacity:0;transform:translate(-50%,62%);transform-origin:50% 0}.arrival-rocket span:after,.arrival-rocket span:before{position:absolute;top:16px;left:50%;width:24px;height:68px;border-radius:999px;background:linear-gradient(180deg,rgba(255,232,187,.18),rgba(255,170,92,.1),transparent);content:"";filter:blur(8px);transform:translateX(-50%) rotate(11deg)}.arrival-rocket span:after{width:40px;opacity:.54;transform:translateX(-50%) rotate(-12deg)}.arrival-target-halo{position:absolute;top:calc(var(--arrival-y) * 1vh);left:calc(var(--arrival-x) * 1vw);z-index:4;width:clamp(106px,11vw,170px);aspect-ratio:1;border:1px solid rgba(255,232,187,.28);border-radius:999px;box-shadow:0 0 0 1px rgba(255,250,240,.08),0 0 34px rgba(255,214,143,.34),0 0 92px rgba(255,154,77,.16),inset 0 0 46px rgba(255,232,187,.1);opacity:0;pointer-events:none;transform:translate(-50%,-50%) scale(.42);animation:arrivalTargetHalo 7.4s var(--ease-out) both}.arrival-target-halo:after,.arrival-target-halo:before{position:absolute;inset:13%;border:1px solid rgba(255,250,240,.18);border-radius:999px;content:""}.arrival-target-halo:after{inset:-18%;border-color:rgba(255,214,143,.12);filter:blur(1px)}.class-enter-button{position:absolute;right:28px;bottom:24px;z-index:4;min-height:42px;border:1px solid rgba(255,238,204,.28);border-radius:999px;background:rgba(255,250,240,.12);color:#fffaf0;cursor:pointer;padding:0 18px;font-size:13px;font-weight:900;box-shadow:0 18px 44px rgba(0,0,0,.24),inset 0 0 18px rgba(255,231,184,.055);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);transition:border-color .22s var(--ease-soft),background .22s var(--ease-soft),transform .22s var(--ease-out)}.class-enter-button:focus-visible,.class-enter-button:hover{border-color:rgba(255,232,187,.56);background:rgba(255,250,240,.18);outline:none;transform:translateY(-1px)}.interactive-starfield{position:absolute;inset:0;z-index:1;width:100%;height:100%;opacity:.98}@keyframes classConstellationIn{0%{opacity:0;transform:translate(-50%,-50%) scale(calc(var(--member-scale) * .72))}to{opacity:1;transform:translate(-50%,-50%) scale(var(--member-scale))}}@keyframes classConstellationFloat{0%{transform:translate(-50%,-50%) translate3d(-.8px,1.2px,0) scale(var(--member-scale))}48%{transform:translate(-50%,-50%) translate3d(1.4px,-1px,0) scale(calc(var(--member-scale) * 1.018))}to{transform:translate(-50%,-50%) translate3d(-1px,-1.4px,0) scale(calc(var(--member-scale) * .992))}}@keyframes classStarPulse{0%{opacity:.58;transform:translateZ(0) scale(.92)}42%{opacity:.96;transform:translate3d(calc(var(--star-drift-x) * .52),calc(var(--star-drift-y) * .46),0) scale(1.12)}to{opacity:.72;transform:translate3d(var(--star-drift-x),var(--star-drift-y),0) scale(.98)}}@keyframes classLineGlimmer{0%{opacity:.22}48%{opacity:.46}to{opacity:.3}}@keyframes arrivalCopyDim{0%,20%{opacity:0;transform:translate3d(0,-6px,0)}52%,to{opacity:1;transform:translateZ(0)}}@keyframes arrivalRocketFlight{0%{opacity:0;filter:blur(8px);transform:translate3d(88vw,-10vh,0) rotate(214deg) scale(.52)}10%{opacity:1;filter:blur(0);transform:translate3d(76vw,12vh,0) rotate(214deg) scale(.72)}28%{opacity:1;transform:translate3d(calc((var(--arrival-x) + 18) * 1vw),calc((var(--arrival-y) - 18) * 1vh),0) rotate(216deg) scale(.88)}48%{opacity:1;filter:blur(0);transform:translate3d(calc((var(--arrival-x) + 7.5) * 1vw),calc((var(--arrival-y) - 6.5) * 1vh),0) rotate(214deg) scale(.68)}56%{transform:translate3d(calc((var(--arrival-x) + 1.8) * 1vw),calc((var(--arrival-y) - 8.5) * 1vh),0) rotate(252deg) scale(.62)}64%{opacity:1;transform:translate3d(calc((var(--arrival-x) - 5.8) * 1vw),calc((var(--arrival-y) - 4.2) * 1vh),0) rotate(304deg) scale(.56)}72%{opacity:1;filter:blur(0);transform:translate3d(calc((var(--arrival-x) - 6.6) * 1vw),calc((var(--arrival-y) + 3.6) * 1vh),0) rotate(356deg) scale(.5)}80%{opacity:1;filter:blur(0);transform:translate3d(calc((var(--arrival-x) - .8) * 1vw),calc((var(--arrival-y) + 7.2) * 1vh),0) rotate(414deg) scale(.45)}88%{opacity:1;filter:blur(0);transform:translate3d(calc((var(--arrival-x) + 5.8) * 1vw),calc((var(--arrival-y) + 2.6) * 1vh),0) rotate(474deg) scale(.4)}95%{opacity:.92;filter:blur(0);transform:translate3d(calc((var(--arrival-x) + 1.8) * 1vw),calc((var(--arrival-y) - 2) * 1vh),0) rotate(530deg) scale(.34)}to{opacity:0;filter:blur(4px);transform:translate3d(calc(var(--arrival-x) * 1vw),calc(var(--arrival-y) * 1vh),0) translate(-50%,-50%) rotate(548deg) scale(.22)}}@keyframes arrivalRocketAura{0%{opacity:.42;transform:scale(.82) rotate(0deg)}to{opacity:.78;transform:scale(1.08) rotate(18deg)}}@keyframes currentConstellationLock{0%,48%{filter:drop-shadow(0 0 18px rgba(255,214,143,.28))}64%,94%{filter:drop-shadow(0 0 6px rgba(255,250,240,.98)) drop-shadow(0 0 28px rgba(255,214,143,.82)) drop-shadow(0 0 86px rgba(255,154,77,.34))}to{filter:drop-shadow(0 0 18px rgba(255,214,143,.28))}}@keyframes arrivalTargetHalo{0%,46%{opacity:0;transform:translate(-50%,-50%) scale(.42) rotate(0deg)}56%{opacity:.62;transform:translate(-50%,-50%) scale(.82) rotate(18deg)}70%,93%{opacity:.96;transform:translate(-50%,-50%) scale(1.08) rotate(132deg)}to{opacity:0;transform:translate(-50%,-50%) scale(1.38) rotate(220deg)}}@keyframes graduateLineartDrift{0%{opacity:var(--figure-opacity-from);transform:translate3d(var(--figure-drift-from-x),var(--figure-drift-from-y),0) scaleX(var(--figure-flip)) rotate(calc(var(--figure-rotate) - 1deg))}to{opacity:var(--figure-opacity-to);transform:translate3d(var(--figure-drift-x),var(--figure-drift-y),0) scaleX(var(--figure-flip)) rotate(calc(var(--figure-rotate) + 1deg))}}@keyframes classGalaxyEnter{0%{opacity:1;filter:blur(0);transform:scale(1)}to{opacity:0;filter:blur(10px);transform:scale(2.2)}}.zodiac-map:after,.zodiac-map:before{position:absolute;inset:0;content:"";pointer-events:none}.zodiac-map:before{background:linear-gradient(112deg,transparent 17%,rgba(255,236,198,.055) 35%,transparent 58%),radial-gradient(ellipse at 52% 54%,rgba(255,222,165,.07),transparent 42%);mix-blend-mode:screen}.zodiac-constellation{position:absolute;inset:0;z-index:2;transform-origin:50% 52%}.zodiac-map.dragging{cursor:-webkit-grabbing;cursor:grabbing}.zodiac-map.dragging .zodiac-nebula{animation-play-state:paused;filter:blur(12px)}.zodiac-map:after{background:radial-gradient(circle at 50% 50%,transparent 0 48%,rgba(0,0,0,.24) 100%),linear-gradient(180deg,rgba(0,0,0,.06),transparent 36%,rgba(0,0,0,.1))}.zodiac-nebula{position:absolute;top:13%;left:12%;width:78%;height:70%;border-radius:999px;background:radial-gradient(ellipse at 38% 58%,rgba(255,238,199,.16),transparent 46%),radial-gradient(ellipse at 62% 42%,rgba(143,0,24,.26),transparent 54%),linear-gradient(90deg,transparent,rgba(255,231,184,.08),transparent);filter:blur(18px);transform:rotate(-22deg);animation:zodiacNebula 13s var(--ease-soft) infinite;will-change:opacity,transform}.zodiac-lines{position:absolute;inset:0;z-index:1;width:100%;height:100%;overflow:visible}.zodiac-lines path,.zodiac-lines polyline{fill:none;stroke-linecap:round;stroke-linejoin:round}.zodiac-path-base{stroke:rgba(255,236,198,.16);stroke-width:.11}.zodiac-lit-line{stroke:rgba(255,232,187,.58);stroke-width:.18;filter:drop-shadow(0 0 3px rgba(255,214,143,.34))}.zodiac-lit-glow{stroke:rgba(255,214,143,.1);stroke-width:.72;filter:blur(.38px) drop-shadow(0 0 8px rgba(255,214,143,.18))}.zodiac-future-line{stroke:rgba(255,232,187,.22);stroke-width:.13;filter:drop-shadow(0 0 3px rgba(255,250,240,.08))}.zodiac-map.dragging .zodiac-future-line,.zodiac-map.dragging .zodiac-lit-glow,.zodiac-map.dragging .zodiac-lit-line{filter:none}.zodiac-orbit{stroke:rgba(255,236,198,.07);stroke-width:.08}.zodiac-orbit.primary{stroke:rgba(255,231,184,.11)}.zodiac-star{position:absolute;top:0;left:0;z-index:2;width:44px;height:44px;border:0;border-radius:999px;background:transparent;color:#fffaf0;cursor:pointer;transform:translate3d(calc(var(--star-x-num) * 1vw),calc(var(--star-y-num) * 1vh),0) translate(-50%,-50%);animation:none;will-change:transform}.zodiac-star.capsule.dormant{opacity:.78}.zodiac-star{touch-action:none;cursor:-webkit-grab;cursor:grab}.zodiac-star:active{cursor:-webkit-grabbing;cursor:grabbing}.zodiac-map.dragging .zodiac-tooltip{display:none}.zodiac-star-halo{position:absolute;inset:-2px;border-radius:999px;background:radial-gradient(circle,rgba(255,252,236,.34) 0 7%,rgba(255,226,170,.2) 22%,transparent 58%),conic-gradient(from 28deg,transparent,rgba(255,236,198,.16),transparent 30%,rgba(143,0,24,.18),transparent 66%,rgba(255,214,143,.13),transparent);filter:blur(1.8px);opacity:.82;transform:scale(calc(var(--star-scale) * 1.48));transition:opacity .28s var(--ease-soft),transform .28s var(--ease-out),filter .28s var(--ease-soft)}.zodiac-star.capsule.sealed .zodiac-star-halo,.zodiac-star.lit .zodiac-star-halo,.zodiac-star.memory .zodiac-star-halo{opacity:.96}.zodiac-star-halo:after,.zodiac-star-halo:before{position:absolute;inset:50% auto auto 50%;width:58px;height:1px;border-radius:999px;background:linear-gradient(90deg,transparent,rgba(255,250,240,.5),transparent);content:"";opacity:.38;transform:translate(-50%,-50%) rotate(42deg) scaleX(var(--star-scale))}.zodiac-star-halo:after{opacity:.22;transform:translate(-50%,-50%) rotate(-48deg) scaleX(calc(var(--star-scale) * .76))}.zodiac-star-core{position:absolute;inset:11px;border-radius:999px;background:radial-gradient(circle at 35% 30%,#ffffff 0 10%,#fffaf0 20%,#ffe3a1 42%,#c87d37 72%,rgba(143,0,24,.24) 100%);box-shadow:inset -2px -3px 5px rgba(76,0,12,.22),inset 2px 2px 4px rgba(255,255,255,.74),0 0 0 5px rgba(255,236,198,.08),0 0 16px rgba(255,232,187,.86),0 0 44px rgba(143,0,24,.54),0 0 86px rgba(255,205,116,.14);transform:scale(var(--star-scale));transition:background .26s var(--ease-soft),box-shadow .26s var(--ease-soft),transform .26s var(--ease-out);will-change:transform}.graduation-cap-mark{position:absolute;left:50%;top:-68px;z-index:4;width:68px;height:76px;color:#ffd986;filter:drop-shadow(0 0 3px rgba(255,236,198,.58)) drop-shadow(0 0 13px rgba(255,192,84,.3)) drop-shadow(0 0 26px rgba(143,0,24,.24));pointer-events:none;transform:translateX(-50%) rotate(-4deg) scale(calc(.78 + var(--star-scale) * .14));transform-origin:50% 78%}.graduation-cap-mark circle,.graduation-cap-mark path{fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:2;vector-effect:non-scaling-stroke}.graduation-cap-mark .graduation-mark-face,.graduation-cap-mark .graduation-mark-fill{fill:rgba(255,217,134,.045)}.graduation-cap-mark .graduation-mark-aura{opacity:.34;stroke-width:1.3}.graduation-cap-mark .graduation-mark-spark{opacity:.74;stroke-width:1.7}.zodiac-star:after,.zodiac-star:before{position:absolute;top:50%;left:50%;background:linear-gradient(90deg,transparent,rgba(255,250,240,.78),transparent);content:"";opacity:.72;transform:translate(-50%,-50%);transition:opacity .26s var(--ease-soft),transform .26s var(--ease-out)}.zodiac-star.capsule.sealed:after,.zodiac-star.capsule.sealed:before,.zodiac-star.lit:after,.zodiac-star.lit:before,.zodiac-star.memory:after,.zodiac-star.memory:before{opacity:.86}.zodiac-star:before{width:34px;height:1px}.zodiac-star:after{width:1px;height:34px;background:linear-gradient(180deg,transparent,rgba(255,250,240,.78),transparent)}.zodiac-star.capsule.available .zodiac-star-core{background:radial-gradient(circle at 35% 30%,#fffdf6 0 9%,#fff0c5 24%,#d8a04d 54%,rgba(143,0,24,.16) 100%);box-shadow:inset -2px -3px 5px rgba(80,39,8,.24),inset 2px 2px 4px rgba(255,255,255,.66),0 0 0 8px rgba(240,199,125,.1),0 0 18px rgba(240,199,125,.58),0 0 48px rgba(255,221,151,.3)}.zodiac-star.capsule.available .zodiac-star-halo{background:radial-gradient(circle,rgba(255,239,202,.22),transparent 54%),conic-gradient(from 18deg,rgba(240,199,125,.18),transparent 20%,rgba(240,199,125,.18),transparent 46%,rgba(255,250,240,.1),transparent 70%);opacity:.7}.zodiac-star.capsule.available:after,.zodiac-star.capsule.available:before{opacity:.48}.zodiac-star.capsule.sealed .zodiac-star-core{background:radial-gradient(circle at 35% 30%,#ffffff 0 10%,#fff8e2 24%,#ffe6a6 48%,rgba(255,230,166,.24) 100%);box-shadow:inset -2px -3px 5px rgba(88,45,8,.2),inset 2px 2px 4px rgba(255,255,255,.8),0 0 0 8px rgba(255,230,166,.14),0 0 28px rgba(255,230,166,.9),0 0 76px rgba(255,218,138,.52)}.zodiac-star.capsule.sealed .zodiac-star-halo{background:radial-gradient(circle,rgba(255,230,166,.3),transparent 56%),radial-gradient(circle,rgba(255,218,138,.16),transparent 74%)}.zodiac-star.capsule.dormant{cursor:default}.zodiac-star.capsule.dormant .zodiac-star-core{background:radial-gradient(circle at 38% 32%,rgba(255,250,240,.44),rgba(185,177,166,.14) 48%,rgba(255,250,240,.025) 100%);box-shadow:inset 1px 1px 3px rgba(255,255,255,.18),inset -2px -2px 5px rgba(0,0,0,.22),0 0 0 4px rgba(255,250,240,.025),0 0 9px rgba(255,250,240,.1)}.zodiac-star.capsule.dormant .zodiac-star-halo{opacity:.18;background:radial-gradient(circle,rgba(255,250,240,.08),transparent 58%),conic-gradient(from 24deg,transparent,rgba(255,250,240,.06),transparent 42%);filter:blur(1.2px) grayscale(.8)}.zodiac-star.capsule.dormant:after,.zodiac-star.capsule.dormant:before{opacity:.18;transform:translate(-50%,-50%) scale(.68)}.zodiac-star.capsule.dormant .zodiac-star-date{color:rgba(255,250,240,.24)}.galaxy-stage.is-phd-class{background:radial-gradient(circle at 17% 72%,rgba(151,217,211,.11),transparent 23%),radial-gradient(circle at 84% 22%,rgba(201,232,225,.08),transparent 25%),radial-gradient(ellipse at 49% 57%,rgba(20,95,96,.36),transparent 48%),radial-gradient(ellipse at 66% 38%,rgba(43,121,119,.22),transparent 44%),linear-gradient(135deg,#041112,#0d3233 47%,#03090b);box-shadow:inset 0 0 130px rgba(0,0,0,.42),inset 0 0 48px rgba(162,224,218,.06),inset 0 0 1px rgba(205,246,238,.16)}.galaxy-stage.is-phd-class:before{background:radial-gradient(circle at 6% 22%,rgba(216,250,244,.66) 0 1px,transparent 1.6px),radial-gradient(circle at 14% 78%,rgba(125,202,197,.5) 0 1px,transparent 1.5px),radial-gradient(circle at 23% 49%,rgba(185,232,225,.42) 0 1px,transparent 1.5px),radial-gradient(circle at 35% 18%,rgba(140,213,207,.54) 0 1px,transparent 1.6px),radial-gradient(circle at 47% 83%,rgba(218,252,245,.34) 0 1px,transparent 1.5px),radial-gradient(circle at 59% 36%,rgba(116,196,191,.46) 0 1px,transparent 1.5px),radial-gradient(circle at 68% 68%,rgba(210,248,242,.5) 0 1px,transparent 1.6px),radial-gradient(circle at 79% 13%,rgba(141,215,208,.38) 0 1px,transparent 1.5px),radial-gradient(circle at 89% 55%,rgba(215,250,244,.46) 0 1px,transparent 1.5px),radial-gradient(circle at 96% 84%,rgba(109,190,186,.36) 0 1px,transparent 1.5px);opacity:.28}.galaxy-stage.is-phd-class .identity-watermark{opacity:.18}.galaxy-stage.is-phd-class .identity-watermark strong{color:rgba(199,239,232,.72);text-shadow:0 0 18px rgba(126,214,207,.2),0 0 54px rgba(200,245,238,.08)}.galaxy-stage.is-phd-class .zodiac-map:before{background:linear-gradient(112deg,transparent 17%,rgba(153,225,216,.055) 35%,transparent 58%),radial-gradient(ellipse at 52% 54%,rgba(124,210,204,.085),transparent 42%)}.galaxy-stage.is-phd-class .zodiac-nebula{background:radial-gradient(ellipse at 38% 58%,rgba(174,231,221,.14),transparent 46%),radial-gradient(ellipse at 62% 42%,rgba(18,127,126,.32),transparent 54%),linear-gradient(90deg,transparent,rgba(126,207,199,.1),transparent)}.galaxy-stage.is-phd-class .zodiac-path-base{stroke:rgba(177,231,224,.15)}.galaxy-stage.is-phd-class .zodiac-lit-line{stroke:rgba(154,225,216,.62);filter:drop-shadow(0 0 3px rgba(112,208,201,.36))}.galaxy-stage.is-phd-class .zodiac-lit-glow{stroke:rgba(96,198,191,.12);filter:blur(.38px) drop-shadow(0 0 8px rgba(100,210,202,.2))}.galaxy-stage.is-phd-class .zodiac-future-line{stroke:rgba(148,218,210,.22)}.galaxy-stage.is-phd-class .zodiac-orbit{stroke:rgba(167,230,221,.07)}.galaxy-stage.is-phd-class .zodiac-orbit.primary{stroke:rgba(150,222,214,.11)}.galaxy-stage.is-phd-class .zodiac-star-halo{background:radial-gradient(circle,rgba(217,252,244,.28) 0 7%,rgba(126,211,203,.2) 22%,transparent 58%),conic-gradient(from 28deg,transparent,rgba(148,222,214,.15),transparent 30%,rgba(20,111,111,.2),transparent 66%,rgba(180,236,224,.12),transparent)}.galaxy-stage.is-phd-class .zodiac-star-core{background:radial-gradient(circle at 35% 30%,#f7fffc 0 10%,#d8fbf3 21%,#8bd0c8 44%,#286c6d 73%,rgba(5,47,50,.42) 100%);box-shadow:inset -2px -3px 5px rgba(3,31,33,.32),inset 2px 2px 4px rgba(245,255,252,.68),0 0 0 5px rgba(164,230,221,.07),0 0 16px rgba(132,221,211,.7),0 0 44px rgba(13,122,122,.46),0 0 86px rgba(92,198,190,.13)}.galaxy-stage.is-phd-class .graduation-cap-mark{color:#b7e9df;filter:drop-shadow(0 0 3px rgba(218,252,244,.5)) drop-shadow(0 0 13px rgba(113,215,206,.28)) drop-shadow(0 0 26px rgba(6,78,80,.32))}.galaxy-stage.is-phd-class .graduation-cap-mark .graduation-mark-face,.galaxy-stage.is-phd-class .graduation-cap-mark .graduation-mark-fill{fill:rgba(157,226,216,.045)}.galaxy-stage.is-phd-class .zodiac-star:after,.galaxy-stage.is-phd-class .zodiac-star:before{background:linear-gradient(90deg,transparent,rgba(213,250,243,.7),transparent)}.galaxy-stage.is-phd-class .zodiac-star:after{background:linear-gradient(180deg,transparent,rgba(213,250,243,.7),transparent)}.galaxy-stage.is-phd-class .zodiac-star.capsule.available .zodiac-star-core{background:radial-gradient(circle at 35% 30%,#f6fffb 0 9%,#c9f3e9 24%,#66bdb4 55%,rgba(17,102,103,.24) 100%);box-shadow:inset -2px -3px 5px rgba(4,54,56,.28),inset 2px 2px 4px rgba(245,255,252,.62),0 0 0 8px rgba(135,218,207,.08),0 0 18px rgba(123,217,207,.5),0 0 48px rgba(99,203,195,.25)}.galaxy-stage.is-phd-class .zodiac-star.capsule.sealed .zodiac-star-core{background:radial-gradient(circle at 35% 30%,#ffffff 0 10%,#dffcf6 24%,#a8e5dc 48%,rgba(129,216,207,.28) 100%);box-shadow:inset -2px -3px 5px rgba(4,55,58,.2),inset 2px 2px 4px rgba(250,255,253,.76),0 0 0 8px rgba(151,227,218,.12),0 0 28px rgba(141,224,215,.74),0 0 76px rgba(103,209,201,.42)}.galaxy-stage.is-phd-class .zodiac-star.capsule.dormant .zodiac-star-core{background:radial-gradient(circle at 38% 32%,rgba(222,250,244,.35),rgba(104,139,139,.14) 48%,rgba(189,237,229,.025) 100%);box-shadow:inset 1px 1px 3px rgba(232,255,250,.14),inset -2px -2px 5px rgba(0,0,0,.24),0 0 0 4px rgba(195,238,231,.025),0 0 9px rgba(156,220,212,.09)}.galaxy-stage.is-phd-class .zodiac-star.capsule.dormant .zodiac-star-date{color:rgba(213,250,243,.26)}:is(.galaxy-stage,.class-galaxy-stage).is-phd-class .class-graduate-star-sketches{color:rgba(178,236,226,.5);opacity:.26}:is(.galaxy-stage,.class-galaxy-stage).is-phd-class .graduate-lineart-figure{filter:hue-rotate(105deg) saturate(.78) brightness(.92) drop-shadow(0 0 5px rgba(194,248,239,.16)) drop-shadow(0 0 24px rgba(105,212,203,.14))}:is(.galaxy-stage,.class-galaxy-stage).is-phd-class .graduate-lineart-left{--figure-opacity-from:0.12;--figure-opacity-to:0.17}:is(.galaxy-stage,.class-galaxy-stage).is-phd-class .graduate-lineart-female{--figure-opacity-from:0.1;--figure-opacity-to:0.15}:is(.galaxy-stage,.class-galaxy-stage).is-phd-class .graduate-lineart-camera{--figure-opacity-from:0.11;--figure-opacity-to:0.16}:is(.galaxy-stage,.class-galaxy-stage).is-phd-class .arrival-rocket-glyph{color:#c4f4ea;filter:drop-shadow(0 0 5px rgba(221,255,249,.54)) drop-shadow(0 0 22px rgba(121,224,215,.34)) drop-shadow(0 0 48px rgba(10,95,98,.26))}:is(.galaxy-stage,.class-galaxy-stage).is-phd-class .arrival-rocket:before{background:radial-gradient(circle,rgba(201,248,238,.16),transparent 28%),conic-gradient(from 20deg,transparent,rgba(167,234,224,.1),transparent 38%,rgba(20,111,111,.12),transparent 68%)}:is(.galaxy-stage,.class-galaxy-stage).is-phd-class .arrival-rocket span{background:linear-gradient(180deg,rgba(237,255,251,.82),rgba(149,231,220,.44) 26%,rgba(65,178,174,.13) 58%,transparent 88%)}:is(.galaxy-stage,.class-galaxy-stage).is-phd-class .arrival-rocket span:after,:is(.galaxy-stage,.class-galaxy-stage).is-phd-class .arrival-rocket span:before{background:linear-gradient(180deg,rgba(205,250,242,.16),rgba(104,218,208,.1),transparent)}:is(.galaxy-stage,.class-galaxy-stage).is-phd-class .arrival-target-halo{border-color:rgba(190,245,235,.26);box-shadow:0 0 0 1px rgba(232,255,250,.06),0 0 34px rgba(139,226,215,.28),0 0 92px rgba(75,195,188,.14),inset 0 0 46px rgba(184,244,234,.09)}:is(.galaxy-stage,.class-galaxy-stage).is-phd-class .arrival-target-halo:before{border-color:rgba(226,255,250,.14)}:is(.galaxy-stage,.class-galaxy-stage).is-phd-class .arrival-target-halo:after{border-color:rgba(132,225,213,.12)}.galaxy-stage.has-arrival-rocket .zodiac-star[data-node-id=graduate] .zodiac-star-core{box-shadow:inset -2px -3px 5px rgba(76,0,12,.18),inset 2px 2px 5px rgba(255,255,255,.84),0 0 0 11px rgba(255,236,198,.16),0 0 34px rgba(255,232,187,.96),0 0 94px rgba(255,205,116,.34)}.galaxy-stage.is-phd-class.has-arrival-rocket .zodiac-star[data-node-id=graduate] .zodiac-star-core{box-shadow:inset -2px -3px 5px rgba(3,39,41,.24),inset 2px 2px 5px rgba(245,255,252,.76),0 0 0 11px rgba(158,229,219,.12),0 0 34px rgba(141,225,215,.8),0 0 94px rgba(91,206,197,.32)}.zodiac-star:focus-visible,.zodiac-star:hover{z-index:10;outline:none}.zodiac-star:focus-visible .zodiac-star-core,.zodiac-star:hover .zodiac-star-core{box-shadow:inset -2px -3px 5px rgba(76,0,12,.18),inset 2px 2px 5px rgba(255,255,255,.86),0 0 0 9px rgba(255,236,198,.14),0 0 30px rgba(255,232,187,.98),0 0 82px rgba(255,205,116,.34),0 0 128px rgba(143,0,24,.42);transform:scale(calc(var(--star-scale) * 1.56))}.galaxy-stage.is-phd-class .zodiac-star:focus-visible .zodiac-star-core,.galaxy-stage.is-phd-class .zodiac-star:hover .zodiac-star-core{box-shadow:inset -2px -3px 5px rgba(3,39,41,.24),inset 2px 2px 5px rgba(245,255,252,.78),0 0 0 9px rgba(158,229,219,.12),0 0 30px rgba(141,225,215,.82),0 0 82px rgba(91,206,197,.32),0 0 128px rgba(8,111,114,.42)}.zodiac-star:focus-visible .zodiac-star-halo,.zodiac-star:hover .zodiac-star-halo{filter:blur(2.8px);opacity:1;transform:scale(calc(var(--star-scale) * 1.98))}.zodiac-star:focus-visible:after,.zodiac-star:focus-visible:before,.zodiac-star:hover:after,.zodiac-star:hover:before{opacity:.92;transform:translate(-50%,-50%) scale(1.34)}.zodiac-star-date{position:absolute;top:29px;left:50%;color:rgba(255,250,240,.44);font-size:11px;font-weight:800;opacity:0;transform:translateX(-50%);transition:opacity .26s var(--ease-soft),transform .26s var(--ease-out);white-space:nowrap}.zodiac-star:focus-visible .zodiac-star-date,.zodiac-star:hover .zodiac-star-date{opacity:1;transform:translate(-50%,4px)}.zodiac-tooltip{position:absolute;bottom:calc(100% + 14px);left:50%;display:grid;width:min(286px,42vw);grid-gap:6px;gap:6px;border:1px solid rgba(255,238,204,.22);border-radius:8px;background:rgba(36,9,13,.86);padding:14px 15px;color:#fffaf0;text-align:left;box-shadow:0 18px 38px rgba(0,0,0,.3);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);opacity:0;pointer-events:none;transform:translate(-50%,8px);transition:opacity .24s var(--ease-soft),transform .24s var(--ease-out)}.zodiac-star[data-edge=left] .zodiac-tooltip{left:0;transform:translateY(8px)}.zodiac-star[data-edge=right] .zodiac-tooltip{right:0;left:auto;transform:translateY(8px)}.zodiac-tooltip small{color:var(--gold-soft);font-size:12px;font-weight:900}.zodiac-tooltip strong{font-size:16px;line-height:1.24}.zodiac-tooltip span{color:rgba(255,250,240,.68);font-size:13px;line-height:1.55}.zodiac-star:focus-visible .zodiac-tooltip,.zodiac-star:hover .zodiac-tooltip{opacity:1;transform:translate(-50%)}.zodiac-star[data-edge=left]:focus-visible .zodiac-tooltip,.zodiac-star[data-edge=left]:hover .zodiac-tooltip,.zodiac-star[data-edge=right]:focus-visible .zodiac-tooltip,.zodiac-star[data-edge=right]:hover .zodiac-tooltip{transform:translate(0)}.zodiac-dialog{border-color:rgba(255,238,204,.22);background:rgba(255,250,240,.94);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px)}.zodiac-tools{position:absolute;right:24px;bottom:22px;z-index:5;display:flex;align-items:center;gap:10px;padding:8px;border:1px solid rgba(255,231,184,.14);border-radius:999px;background:rgba(8,3,5,.52);box-shadow:0 18px 54px rgba(0,0,0,.24),inset 0 0 18px rgba(255,231,184,.05);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px)}.zodiac-tools span{padding:0 8px;font-size:12px;white-space:nowrap}.button.compact{min-height:34px;padding:0 14px;border-radius:999px;font-size:12px}.zodiac-dialog.capsule{background:rgba(36,9,13,.9);color:#fffaf0}.zodiac-dialog.capsule h2,.zodiac-dialog.capsule p{color:#fffaf0}.zodiac-dialog.capsule p{color:rgba(255,250,240,.76)}.capsule-form.in-dialog{margin:10px 0 18px}@keyframes zodiacNebula{0%,to{opacity:.5;transform:rotate(-22deg) scale(.985) translate3d(-.5%,.2%,0)}50%{opacity:.74;transform:rotate(-22deg) scale(1.035) translate3d(.6%,-.4%,0)}}@keyframes starHaloBreath{0%,to{opacity:.66;filter:blur(1.5px) saturate(1)}46%{opacity:.92;filter:blur(2.1px) saturate(1.18)}68%{opacity:.76;filter:blur(1.8px) saturate(1.08)}}@keyframes starCoreGlimmer{0%,to{filter:brightness(1) saturate(1)}40%{filter:brightness(1.18) saturate(1.12)}72%{filter:brightness(.96) saturate(1.04)}}.timeline-intro{min-height:260px;border:1px solid rgba(143,0,24,.16);border-radius:var(--radius);background:linear-gradient(135deg,rgba(101,0,15,.96),rgba(143,0,24,.9)),linear-gradient(180deg,var(--pku),var(--pku-dark));color:#fffaf0;padding:44px}.capsule-composer>div>span,.timeline-intro span,.timeline-section-heading span{color:var(--gold-soft);font-size:13px;font-weight:850}.timeline-intro h1{max-width:780px;margin:14px 0;font-size:52px;line-height:1.06}.timeline-intro p{max-width:780px;margin:0;color:rgba(255,250,240,.76);line-height:1.85}.capsule-composer,.timeline-section{border:1px solid var(--line);border-radius:var(--radius);background:rgba(255,253,246,.9);padding:28px;box-shadow:var(--shadow-sm)}.timeline-section-heading{display:grid;grid-gap:6px;gap:6px;margin-bottom:18px}.capsule-composer>div>span,.timeline-section-heading span{color:var(--pku)}.capsule-composer h2,.timeline-section-heading h2{margin:0;font-size:26px;line-height:1.22}.constellation-map{position:relative;min-height:500px;overflow:hidden;border:1px solid rgba(143,0,24,.14);border-radius:calc(var(--radius) - 6px);background:radial-gradient(ellipse at 16% 72%,rgba(255,231,184,.18),transparent 26%),radial-gradient(ellipse at 72% 20%,rgba(255,250,240,.13),transparent 24%),radial-gradient(ellipse at 52% 50%,rgba(143,0,24,.36),transparent 42%),linear-gradient(135deg,#16070b,#3a0810 42%,#090609);box-shadow:inset 0 0 100px rgba(0,0,0,.34),0 18px 46px rgba(56,28,20,.08)}.constellation-map:after,.constellation-map:before{position:absolute;inset:0;content:"";pointer-events:none}.constellation-map:before{opacity:.58;inset:-8%;background-image:radial-gradient(circle at 7% 18%,rgba(255,250,240,.7) 0 1px,transparent 1.6px),radial-gradient(circle at 19% 62%,rgba(255,224,163,.46) 0 1px,transparent 1.5px),radial-gradient(circle at 31% 35%,rgba(255,250,240,.42) 0 1px,transparent 1.4px),radial-gradient(circle at 46% 80%,rgba(255,231,184,.46) 0 1px,transparent 1.5px),radial-gradient(circle at 58% 24%,rgba(255,250,240,.52) 0 1px,transparent 1.6px),radial-gradient(circle at 74% 56%,rgba(255,224,163,.38) 0 1px,transparent 1.5px),radial-gradient(circle at 91% 31%,rgba(255,250,240,.44) 0 1px,transparent 1.4px);animation:starFieldDrift 34s var(--ease-soft) infinite alternate}.constellation-map:after{background:linear-gradient(108deg,transparent 12%,rgba(255,236,198,.07) 34%,transparent 58%),radial-gradient(circle at 50% 50%,transparent 0 44%,rgba(0,0,0,.34) 100%);mix-blend-mode:screen}.future-constellation{background:radial-gradient(ellipse at 22% 30%,rgba(255,231,184,.14),transparent 22%),radial-gradient(ellipse at 78% 70%,rgba(156,107,47,.2),transparent 28%),radial-gradient(ellipse at 50% 68%,rgba(143,0,24,.28),transparent 40%),linear-gradient(135deg,#12070a,#3a0d0e 52%,#100d0b)}.constellation-glow{position:absolute;top:50%;left:50%;width:76%;height:44%;border-radius:999px;background:radial-gradient(ellipse,rgba(255,238,199,.16),transparent 64%),linear-gradient(90deg,transparent,rgba(143,0,24,.2),transparent);filter:blur(14px);transform:translate(-50%,-50%) rotate(-13deg);animation:constellationPulse 12s var(--ease-soft) infinite;pointer-events:none}.constellation-lines{position:absolute;inset:0;z-index:1;width:100%;height:100%;overflow:visible}.constellation-lines polyline{fill:none;stroke:rgba(255,228,179,.62);stroke-dasharray:.8 2.2;stroke-linecap:round;stroke-linejoin:round;stroke-width:.28;filter:drop-shadow(0 0 4px rgba(255,214,143,.68))}.constellation-orbit{fill:none;stroke:rgba(255,250,240,.18);stroke-dasharray:.5 3.4;stroke-linecap:round;stroke-width:.2;filter:drop-shadow(0 0 8px rgba(255,250,240,.22))}.constellation-star{position:absolute;top:var(--star-y);left:var(--star-x);z-index:2;width:32px;height:32px;border:0;border-radius:999px;background:transparent;color:var(--paper-strong);cursor:pointer;transform:translate(-50%,-50%);animation:starFloat 8.8s var(--ease-soft) infinite;animation-delay:var(--float-delay)}.star-date{position:absolute;top:25px;left:50%;color:rgba(255,250,240,.44);font-size:11px;font-weight:760;opacity:0;transform:translateX(-50%);transition:opacity .18s ease,transform .18s ease;white-space:nowrap}.star-core{position:absolute;inset:9px;border-radius:999px;background:#fff7df;box-shadow:0 0 0 4px rgba(255,236,198,.12),0 0 15px rgba(255,232,187,.86),0 0 30px rgba(143,0,24,.58);transform:scale(var(--star-scale));transition:transform .18s ease,box-shadow .18s ease,background .18s ease}.constellation-star:after,.constellation-star:before{position:absolute;top:50%;left:50%;background:rgba(255,245,224,.72);content:"";transform:translate(-50%,-50%);transition:opacity .18s ease,transform .18s ease}.constellation-star:before{width:24px;height:1px}.constellation-star:after{width:1px;height:24px}.constellation-star:focus-visible,.constellation-star:hover{z-index:8;outline:none}.constellation-star:focus-visible .star-core,.constellation-star:hover .star-core{background:var(--gold-soft);box-shadow:0 0 0 7px rgba(255,236,198,.14),0 0 22px rgba(255,232,187,.96),0 0 52px rgba(255,222,156,.7);transform:scale(calc(var(--star-scale) * 1.48))}.constellation-star:focus-visible:after,.constellation-star:focus-visible:before,.constellation-star:hover:after,.constellation-star:hover:before{opacity:.92;transform:translate(-50%,-50%) scale(1.18)}.constellation-star.is-locked .star-core{background:#e6b86e;box-shadow:0 0 0 4px rgba(230,184,110,.14),0 0 18px rgba(230,184,110,.82),0 0 36px rgba(143,0,24,.58)}.constellation-star:focus-visible .star-date,.constellation-star:hover .star-date{opacity:1;transform:translate(-50%,4px)}.star-tooltip{position:absolute;bottom:calc(100% + 14px);left:50%;display:grid;width:min(280px,42vw);grid-gap:6px;gap:6px;border:1px solid rgba(255,238,204,.22);border-radius:8px;background:rgba(36,9,13,.86);padding:14px 15px;color:var(--paper-strong);text-align:left;box-shadow:0 18px 38px rgba(0,0,0,.28);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);opacity:0;pointer-events:none;transform:translate(-50%,8px);transition:opacity .16s ease,transform .16s ease}.constellation-star[data-edge=left] .star-tooltip{left:0;transform:translateY(8px)}.constellation-star[data-edge=right] .star-tooltip{right:0;left:auto;transform:translateY(8px)}.star-tooltip small{color:var(--gold-soft);font-size:12px;font-weight:900}.star-tooltip strong{font-size:16px;line-height:1.24}.star-tooltip span{color:rgba(255,250,240,.68);font-size:13px;line-height:1.55}.constellation-star:focus-visible .star-tooltip,.constellation-star:hover .star-tooltip{opacity:1;transform:translate(-50%)}.constellation-star[data-edge=left]:focus-visible .star-tooltip,.constellation-star[data-edge=left]:hover .star-tooltip,.constellation-star[data-edge=right]:focus-visible .star-tooltip,.constellation-star[data-edge=right]:hover .star-tooltip{transform:translate(0)}@keyframes starFieldDrift{0%{transform:translate3d(-.8%,-.55%,0) scale(1.005)}to{transform:translate3d(1%,.75%,0) scale(1.012)}}@keyframes constellationPulse{0%,to{opacity:.36;transform:translate(-50%,-50%) rotate(-13deg) scale(.99)}50%{opacity:.62;transform:translate(-50%,-50%) rotate(-13deg) scale(1.035)}}@keyframes starFloat{0%,to{transform:translate(-50%,-50%) translateZ(0)}50%{transform:translate(-50%,-50%) translate3d(0,-5px,0)}}.winding-timeline{position:relative;display:grid;grid-gap:18px;gap:18px;padding:10px 0}.winding-timeline:before{position:absolute;top:18px;bottom:18px;left:50%;width:2px;background:linear-gradient(180deg,rgba(143,0,24,.12),rgba(143,0,24,.52),rgba(156,107,47,.45));content:""}.memory-node{position:relative;display:grid;width:min(430px,47%);min-height:118px;grid-gap:8px;gap:8px;border:1px solid var(--line);border-left:3px solid var(--pku);border-radius:var(--radius);background:var(--paper-strong);padding:18px;color:var(--ink);cursor:pointer;text-align:left;box-shadow:var(--shadow-sm);transition:border-color .16s ease,transform .16s ease,background .16s ease}.memory-node:hover{border-color:rgba(143,0,24,.42);background:#fff7ec;transform:translateY(-2px)}.memory-node[data-turn=left]{justify-self:start}.memory-node[data-turn=right]{justify-self:end}.memory-node:after{position:absolute;top:38px;width:calc(50vw - 238px);max-width:88px;height:2px;background:rgba(143,0,24,.24);content:""}.memory-node[data-turn=left]:after{right:-88px}.memory-node[data-turn=right]:after{left:-88px}.node-dot{position:absolute;top:31px;width:16px;height:16px;border:3px solid var(--paper-strong);border-radius:999px;background:var(--pku);box-shadow:0 0 0 1px rgba(143,0,24,.32)}.memory-node[data-turn=left] .node-dot{right:-97px}.memory-node[data-turn=right] .node-dot{left:-97px}.node-date{color:var(--pku);font-size:13px;font-weight:900}.memory-node strong{font-size:18px;line-height:1.26}.memory-node>span:last-child{color:var(--muted);line-height:1.65}.future-timeline:before{background:linear-gradient(180deg,rgba(156,107,47,.16),rgba(156,107,47,.55),rgba(143,0,24,.38))}.capsule-node{border-left-color:var(--gold)}.capsule-node .node-dot{background:var(--gold)}.capsule-node.empty{border-left-color:var(--line-strong);opacity:.72}.capsule-node.empty .node-dot{background:var(--line-strong)}.capsule-composer{display:grid;grid-template-columns:minmax(220px,.72fr) minmax(0,1fr);grid-gap:24px;gap:24px;align-items:start}.capsule-composer p{margin:10px 0 0;color:var(--muted);line-height:1.8}.capsule-form{display:grid;grid-gap:14px;gap:14px}.memory-dialog{position:fixed;inset:0;z-index:50;display:grid;place-items:center;padding:22px}.dialog-backdrop{position:absolute;inset:0;border:0;background:rgba(32,23,25,.48);cursor:pointer}.memory-dialog-card{position:relative;z-index:1;width:min(620px,100%);border:1px solid var(--line);border-radius:var(--radius);background:var(--paper-strong);padding:28px;box-shadow:var(--shadow-md)}.memory-dialog-card>span{color:var(--pku);font-size:13px;font-weight:900}.memory-dialog-card h2{margin:10px 0 12px;font-size:30px;line-height:1.2}.memory-dialog-card p{margin:0 0 18px;color:var(--ink-soft);line-height:1.85}.memory-dialog-card strong{display:block;margin-bottom:18px;color:var(--pku)}@media (max-width:900px){.shell{padding:18px}.topbar{align-items:flex-start;flex-direction:column;margin:-18px -18px 24px;padding:12px 18px}.topbar p{margin-left:0}.brand-band,.grid{grid-template-columns:1fr}.hero-panel{padding:28px}.hero-panel:after{right:18px;bottom:18px;font-size:58px}.hero-panel h1{font-size:34px}.capsule-card{padding:28px}.capsule-card h1{font-size:34px}.capsule-message{font-size:18px}.button{width:auto;white-space:normal}.welcome-content{padding:70px 12px}.welcome-content h1{font-size:46px}.welcome-content>p:not(.welcome-kicker){font-size:16px}.welcome-corners{inset:18px}.welcome-corners img{width:54px;height:54px}.welcome-auth-float{top:54%;right:auto;bottom:auto;left:50%;padding:22px}.welcome-auth-float.is-register{width:min(460px,calc(100% - 40px))}.embedded-auth-grid,.identity-tabs.compact{grid-template-columns:1fr}.rocket-launch-overlay{padding:14px}.rocket-ticket{border-radius:14px}.rocket-ticket-head{min-height:58px;font-size:20px}.rocket-ticket-body{gap:16px;padding:24px 22px}.ticket-route{grid-template-columns:1fr;gap:10px}.ticket-route,.ticket-route>div:last-child{text-align:left}.ticket-route-rocket{width:48px;transform:rotate(180deg)}.ticket-meta{grid-template-columns:1fr;gap:16px}.ticket-meta div{grid-template-columns:68px minmax(0,1fr)}.ticket-seal{position:absolute;right:20px;bottom:92px;width:82px;opacity:.72}.ticket-seal img{width:66px;height:66px}.ticket-blessing{min-height:58px}.ticket-blessing span{left:38%;bottom:4px}.ticket-launch-row{align-items:stretch;flex-direction:column;gap:12px}.ticket-launch-row>p{margin:0;font-size:14px}.ticket-launch-button{width:100%}.launch-rocket{width:68px;height:68px}.admin-console{padding:12px}.admin-console-topbar{align-items:flex-start;flex-direction:column;margin-top:52px}.admin-console-topbar p{margin-left:0}.admin-console-hero{padding:28px}.admin-console-hero h1{font-size:36px}.admin-console-grid{grid-template-columns:1fr}.alumni-dashboard{min-height:100vh}.profile-sidebar{top:66px;left:12px;width:min(306px,calc(100vw - 24px));max-height:calc(100vh - 84px)}.profile-toggle{top:16px;left:16px}.profile-toggle-input:checked~.profile-sidebar{display:none}.timeline-intro{min-height:220px;padding:28px}.timeline-intro h1{font-size:36px}.capsule-composer{grid-template-columns:1fr}.constellation-map{min-height:390px}.galaxy-stage{min-height:100vh}.class-graduate-doodles{transform:scale(1.04)}.graduate-lineart-left{left:-72px;bottom:-6%;width:clamp(220px,48vw,320px);--figure-opacity-from:0.11;--figure-opacity-to:0.15}.class-graduate-star-sketches,.graduate-lineart-camera,.graduate-lineart-female{display:none}.zodiac-tooltip{width:min(240px,74vw)}.constellation-star{width:38px;height:38px}.star-core{inset:10px}.star-tooltip{width:min(240px,72vw)}.winding-timeline:before{left:10px}.memory-node,.memory-node[data-turn=left],.memory-node[data-turn=right]{width:calc(100% - 34px);justify-self:end}.memory-node:after{left:-25px;width:25px}.memory-node[data-turn=left]:after,.memory-node[data-turn=right]:after{right:auto;left:-25px}.memory-node[data-turn=left] .node-dot,.memory-node[data-turn=right] .node-dot{right:auto;left:-36px}}@media (prefers-reduced-motion:reduce){*,:after,:before{scroll-behavior:auto!important}.arrival-rocket,.arrival-rocket:before,.constellation-glow,.constellation-map:before,.constellation-star,.galaxy-stage:before,.graduate-lineart-figure,.launch-rocket,.rocket-flight-light,.rocket-flight-path,.rocket-ticket,.welcome-auth-float,.welcome-auth-pane,.welcome-content,.zodiac-nebula,.zodiac-star,.zodiac-star-core,.zodiac-star-halo{animation:none!important;transition-duration:.01ms!important}}