@import url('https://fonts.googleapis.com/css2?family=DM+Mono:wght@400;500&family=Noto+Serif+SC:wght@500;600;700;900&family=Playfair+Display:ital,wght@0,600;0,700;1,600&display=swap');

:root{--ink:#172235;--muted:#667080;--paper:#f7f4ef;--card:#fff;--navy:#1d304d;--blue:#547493;--pink:#bd637b;--blush:#f2dfe1;--line:#d8d8d6;--green:#146b4b}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;color:var(--ink);background:var(--paper);font:16px/1.6 Inter,"Microsoft YaHei",system-ui,sans-serif}a{color:var(--green)}.shell{width:min(1080px,calc(100% - 40px));margin:auto}.top{display:flex;justify-content:space-between;align-items:center;padding:24px 0}.brand{font-weight:800;text-decoration:none;color:var(--ink)}.lang a{margin-left:12px;text-decoration:none}.hero{padding:76px 0 58px;background:linear-gradient(130deg,#edf5e9,transparent 60%)}h1{font-size:clamp(2.6rem,7vw,5.6rem);line-height:1.02;max-width:800px;margin:.25em 0}.eyebrow{text-transform:uppercase;letter-spacing:.15em;color:var(--green);font-size:.78rem;font-weight:700}.lead{font-size:1.2rem;max-width:630px;color:var(--muted)}.actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:28px}.button{display:inline-block;border:1px solid var(--green);background:var(--green);color:#fff;border-radius:999px;padding:10px 18px;text-decoration:none;font-weight:700;cursor:pointer}.button.ghost{background:transparent;color:var(--green)}.section{padding:48px 0}.section h2{font-size:1.8rem}.grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.card{background:var(--card);border:1px solid var(--line);border-radius:16px;padding:20px}.card h3{margin-top:0}.muted{color:var(--muted)}.footer{border-top:1px solid var(--line);padding:28px 0;color:var(--muted);font-size:.9rem}.library{padding:36px 0 80px}.toolbar{display:flex;gap:10px;flex-wrap:wrap;margin:20px 0}.toolbar input,.toolbar select,input,textarea,select{font:inherit;padding:10px 12px;border:1px solid var(--line);border-radius:9px;background:#fff}.toolbar input{min-width:250px;flex:1}.notice{padding:14px 16px;border-radius:10px;background:#fff4dc;color:#754a0b}.hidden{display:none!important}.file-card{display:flex;justify-content:space-between;gap:16px;align-items:center}.tag{display:inline-block;background:#e6f1e9;color:#246042;border-radius:999px;padding:2px 9px;margin:3px;font-size:.82rem}.admin{margin-top:40px;border-top:2px solid var(--line);padding-top:24px}.form-grid{display:grid;gap:10px;max-width:650px}.form-grid label{font-weight:700}.form-grid textarea{min-height:80px}

/* Public portfolio */
.portfolio{--portfolio-ink:#172235;--portfolio-paper:#f7f4ef;--portfolio-pink:#bd637b;--portfolio-navy:#1d304d;--portfolio-blue:#547493;--portfolio-line:#d8d8d6;background:var(--portfolio-paper);color:var(--portfolio-ink);overflow:hidden}.portfolio *{box-sizing:border-box}.portfolio a{color:inherit}.portfolio-wrap{width:min(1160px,calc(100% - 64px));margin-inline:auto}.portfolio-header{height:78px;display:flex;align-items:center;justify-content:space-between;gap:28px;padding:0 max(32px,calc((100vw - 1160px)/2));border-bottom:1px solid rgba(29,48,77,.14);background:rgba(247,244,239,.88);backdrop-filter:blur(12px);position:sticky;top:0;z-index:10}.portfolio-mark{font-family:"DM Mono",monospace;text-decoration:none;font-size:.88rem;font-weight:500;letter-spacing:.12em;color:var(--portfolio-navy)}.portfolio-mark small{font-size:.58rem;letter-spacing:.14em;color:#8a93a0;margin-left:7px}.mark-flower{color:var(--portfolio-pink);font-size:1.2rem;margin-right:5px}.portfolio-nav{display:flex;gap:25px;font-family:"DM Mono",monospace;font-size:.68rem;letter-spacing:.06em}.portfolio-nav a,.language-switch{text-decoration:none;color:#687080;transition:color .2s}.portfolio-nav a:hover,.language-switch:hover{color:var(--portfolio-pink)}.portfolio-tools{display:flex;align-items:center;gap:16px;font-family:"DM Mono",monospace;font-size:.7rem}.mini-library{color:#fff!important;text-decoration:none;background:var(--portfolio-navy);padding:10px 14px;border-radius:2px;letter-spacing:.04em}.mini-library span{color:#f1bac8;margin-left:4px}.portfolio-hero{position:relative;padding:78px 0 58px;background:radial-gradient(circle at 8% 14%,rgba(246,205,213,.75),transparent 22%),radial-gradient(circle at 94% 88%,rgba(167,196,216,.42),transparent 28%),linear-gradient(125deg,#f8f6f0 18%,#edf0ed 100%)}.paper-orbit{position:absolute;border:1px solid rgba(189,99,123,.24);border-radius:50%;pointer-events:none}.orbit-one{width:440px;height:440px;left:-180px;top:90px}.orbit-two{width:270px;height:270px;right:-110px;top:30px;border-color:rgba(84,116,147,.26)}.hero-grid{position:relative;display:grid;grid-template-columns:minmax(0,1.08fr) minmax(380px,.92fr);gap:70px;align-items:center}.hero-copy{padding:12px 0 0}.hero-kicker,.section-label{font:500 .66rem/1.3 "DM Mono",monospace;letter-spacing:.16em;text-transform:uppercase;color:var(--portfolio-pink);margin:0}.hero-copy h1{font-family:"Playfair Display","Noto Serif SC",serif;font-size:clamp(4.7rem,10vw,8.7rem);line-height:.76;letter-spacing:-.065em;margin:22px 0 27px;max-width:none;color:var(--portfolio-navy)}.hero-copy h1 span{display:block}.hero-copy h1 em{font-family:"Noto Serif SC",serif;font-style:normal;display:block;font-size:.34em;line-height:1.2;letter-spacing:.22em;color:var(--portfolio-pink);margin-left:7px}.hero-role{font-family:"Noto Serif SC","Microsoft YaHei",serif;font-size:1.16rem;font-weight:700;margin:0;color:#263952}.hero-statement{font:600 clamp(1.25rem,2vw,1.65rem)/1.55 "Noto Serif SC","Microsoft YaHei",serif;max-width:570px;margin:26px 0 8px}.hero-intro{max-width:530px;color:#616d7b;margin:0;font-size:.95rem}.hero-actions{display:flex;gap:12px;margin:30px 0}.portfolio-button{display:inline-flex;align-items:center;gap:16px;text-decoration:none;font:500 .73rem "DM Mono",monospace;letter-spacing:.08em;padding:12px 17px;transition:transform .2s,background .2s}.portfolio-button:hover{transform:translateY(-2px)}.portfolio-button.primary{background:var(--portfolio-pink);color:#fff}.portfolio-button.secondary{border:1px solid #b8c1c9;color:var(--portfolio-navy)}.hero-facts{display:flex;gap:0;margin:37px 0 0;padding:0;border-top:1px solid rgba(29,48,77,.16)}.hero-facts div{padding:11px 18px 0 0;margin-right:18px;border-right:1px solid rgba(29,48,77,.16)}.hero-facts div:last-child{border:0}.hero-facts dt{font:500 .7rem "DM Mono",monospace;color:var(--portfolio-pink);margin-bottom:1px}.hero-facts dd{margin:0;font:500 .6rem "DM Mono",monospace;color:#566273;letter-spacing:.04em}.hero-visual{position:relative;justify-self:end;width:min(100%,465px);padding:0 18px 27px 0}.hero-frame{height:565px;position:relative;overflow:hidden;border-radius:185px 185px 3px 3px;background:#e5d7d4;box-shadow:22px 22px 0 rgba(29,48,77,.09)}.hero-frame img{width:100%;height:100%;object-fit:cover;object-position:52% center;display:block}.hero-image-wash{position:absolute;inset:0;background:linear-gradient(180deg,rgba(14,29,54,0) 45%,rgba(15,25,42,.37)),linear-gradient(90deg,rgba(247,216,219,.1),transparent 55%);mix-blend-mode:multiply}.hero-stamp{position:absolute;right:19px;bottom:20px;width:51px;height:51px;display:grid;place-content:center;border-radius:50%;border:1px solid rgba(255,255,255,.85);color:#fff;font:600 .78rem/1.05 "Noto Serif SC",serif;letter-spacing:.08em;text-align:center}.hero-note{position:absolute;bottom:0;left:-42px;width:250px;padding:16px 19px 17px;background:#fffdfa;border-left:4px solid var(--portfolio-pink);box-shadow:0 9px 28px rgba(29,48,77,.12)}.hero-note span{display:block;font:500 .55rem "DM Mono",monospace;color:#9a7080;letter-spacing:.09em}.hero-note strong{display:block;font:600 1rem/1.45 "Noto Serif SC","Microsoft YaHei",serif;margin-top:5px}.hero-note i{position:absolute;right:16px;bottom:14px;font-style:normal;color:var(--portfolio-pink)}
.profile-section{padding:112px 0 90px}.profile-grid{display:grid;grid-template-columns:1.2fr .8fr;gap:20px;margin-top:17px}.about-card{padding:52px 55px;min-height:355px;background:var(--portfolio-navy);color:#f5f3ef;position:relative;overflow:hidden}.about-card::after{content:"雪";position:absolute;right:30px;bottom:-72px;color:rgba(255,255,255,.05);font:900 14rem "Noto Serif SC",serif}.about-card h2,.section-heading h2,.skill-title h2{font:700 clamp(2rem,4vw,3.55rem)/1.17 "Noto Serif SC","Microsoft YaHei",serif;letter-spacing:-.05em;margin:0}.about-card p{font-size:1rem;line-height:2;max-width:560px;margin:27px 0;position:relative}.signature{font:600 1.45rem "Playfair Display","Noto Serif SC",serif;color:#edb4c3;position:relative}.signature span{font:400 .65rem "DM Mono",monospace;color:#b9c5d5;margin-left:9px;letter-spacing:.07em}.portrait-card{height:355px;position:relative;overflow:hidden;background:#d4cbd0}.portrait-card img{height:100%;width:100%;object-fit:cover;object-position:center 35%;display:block;filter:saturate(.86)}.portrait-card::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 45%,rgba(20,30,48,.66))}.portrait-card div{position:absolute;z-index:1;bottom:22px;left:22px;color:#fff}.portrait-card span{display:block;font:500 .55rem "DM Mono",monospace;letter-spacing:.14em;color:#ffd9e1}.portrait-card b{font:600 1.05rem "Noto Serif SC","Microsoft YaHei",serif}.resume-band{padding:62px 0;background:#e7edf0;border-top:1px solid #c7d0d4;border-bottom:1px solid #c7d0d4}.education-layout{display:grid;grid-template-columns:1.1fr .85fr auto;align-items:end;gap:55px;margin-top:18px}.school-mark{font:500 .7rem "DM Mono",monospace;letter-spacing:.18em;color:var(--portfolio-pink);margin:0 0 6px}.education-layout h2{font:700 clamp(2rem,4vw,3.5rem)/1.1 "Noto Serif SC","Microsoft YaHei",serif;margin:0;color:var(--portfolio-navy);letter-spacing:-.05em}.education-layout h3{font:500 .78rem "DM Mono",monospace;letter-spacing:.06em;margin:10px 0 0;color:#4d6178}.education-layout>p{margin:0;line-height:1.9;color:#596879}.education-symbol{font:500 4.3rem/1 "Noto Serif SC",serif;color:var(--portfolio-pink);opacity:.72}.research-section{padding:112px 0 94px}.section-heading{display:flex;justify-content:space-between;gap:50px;align-items:end;margin-bottom:34px}.section-heading>p{width:min(340px,40%);margin:0;color:#687486;font-size:.92rem;line-height:1.75}.research-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.research-card{border-top:3px solid var(--portfolio-navy);background:#fffefa;padding:25px 26px 31px;min-height:285px;position:relative;transition:transform .2s,box-shadow .2s}.research-card:hover{transform:translateY(-5px);box-shadow:0 15px 35px rgba(31,48,76,.1)}.research-card>span{font:500 .66rem "DM Mono",monospace;color:var(--portfolio-pink)}.research-card h3{font:700 1.4rem "Noto Serif SC","Microsoft YaHei",serif;margin:35px 0 11px}.research-card p{font-size:.9rem;line-height:1.8;color:#697486;margin:0}.research-card i{position:absolute;right:22px;bottom:17px;font-style:normal;color:var(--portfolio-pink);font-size:1.2rem}.skill-section{display:grid;grid-template-columns:.8fr 1.2fr;gap:70px;padding:70px 0 110px;border-top:1px solid #d9d7d3}.skill-title h2{font-size:2.35rem;margin-top:16px}.skill-cloud{display:flex;align-content:center;align-items:center;flex-wrap:wrap;gap:11px;padding:10px 0}.skill-chip{font:500 .72rem "DM Mono",monospace;letter-spacing:.03em;padding:11px 15px;border:1px solid #bec6cb;border-radius:999px;color:#374b62;background:#fffdfa}.skill-chip.chip-1{color:var(--portfolio-pink);border-color:#d6a2af;background:#fff8f8}.skill-chip.chip-2{color:var(--portfolio-blue);border-color:#9fb8cd;background:#f5fafc}.learning-area{padding:90px 0 100px;background:linear-gradient(150deg,#233552,#182843);color:#f4f2ec;position:relative}.learning-area::before{content:"";position:absolute;inset:0;background:radial-gradient(circle at 9% 80%,rgba(192,104,127,.4),transparent 24%),radial-gradient(circle at 83% 6%,rgba(115,160,187,.25),transparent 28%)}.learning-area .portfolio-wrap{position:relative}.learning-area .section-label{color:#edb4c3}.learning-area .section-heading>p{color:#c8d4df}.underlined-link{font:500 .7rem "DM Mono",monospace;text-decoration:none;border-bottom:1px solid #e1a1b0;padding-bottom:4px;color:#fff}.underlined-link span{color:#edb4c3}.learning-grid{display:grid;grid-template-columns:1fr 1fr;gap:65px}.focus-list{border-top:1px solid rgba(255,255,255,.26)}.focus-list>div{display:grid;grid-template-columns:34px 1fr 22px;gap:10px;align-items:center;border-bottom:1px solid rgba(255,255,255,.2);padding:20px 0}.focus-list span{font:500 .62rem "DM Mono",monospace;color:#e4a6b6}.focus-list p{font:600 1.12rem "Noto Serif SC","Microsoft YaHei",serif;margin:0}.focus-list i{font-style:normal;color:#a3bfd6}.resource-list{display:grid;gap:11px}.resource-list a{display:grid;grid-template-columns:25px 1fr;gap:12px;text-decoration:none;color:#fff;background:rgba(255,255,255,.08);padding:16px 17px;border:1px solid rgba(255,255,255,.1);transition:background .2s}.resource-list a:hover{background:rgba(255,255,255,.15)}.resource-list>a>span{color:#e3a5b4}.resource-list b{font:500 .79rem "DM Mono",monospace;letter-spacing:.04em}.resource-list p{font-size:.8rem;line-height:1.45;color:#bfcbda;margin:5px 0 0}.gallery-section{padding:105px 0}.gallery-frame{height:425px;overflow:hidden;margin-top:17px;position:relative;background:#27364c}.gallery-frame img{width:100%;height:100%;object-fit:cover;object-position:center 53%;display:block;opacity:.87}.gallery-frame::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(19,35,57,.66),transparent 65%)}.gallery-frame>div{position:absolute;z-index:1;left:47px;bottom:43px;color:#fff;max-width:370px}.gallery-frame span{font:500 .64rem "DM Mono",monospace;letter-spacing:.13em;text-transform:uppercase;color:#f2bdc9;display:block}.gallery-frame strong{display:block;font:600 clamp(1.35rem,3vw,2.45rem)/1.35 "Noto Serif SC","Microsoft YaHei",serif;margin-top:8px}.portfolio-footer{padding:30px 0;background:#111d30;color:#bdc7d3;font:500 .61rem "DM Mono",monospace;letter-spacing:.08em}.portfolio-footer .portfolio-wrap{display:flex;justify-content:space-between;gap:20px}.portfolio-footer a{color:#f0b4c3;text-decoration:none}

@media(max-width:800px){.portfolio-wrap{width:min(100% - 32px,1160px)}.portfolio-header{height:65px;padding:0 16px;gap:10px}.portfolio-mark{font-size:.74rem}.portfolio-mark small,.portfolio-nav{display:none}.portfolio-tools{gap:10px;font-size:.65rem}.mini-library{padding:8px 10px}.portfolio-hero{padding:55px 0 44px}.hero-grid{grid-template-columns:1fr;gap:38px}.hero-copy h1{font-size:clamp(4.3rem,19vw,6.2rem)}.hero-visual{width:min(100%,430px);justify-self:center;padding-right:11px}.hero-frame{height:470px;border-radius:145px 145px 2px 2px}.hero-note{left:-3px;width:220px}.profile-section,.research-section{padding:70px 0}.profile-grid,.education-layout,.learning-grid,.skill-section{grid-template-columns:1fr;gap:18px}.about-card{padding:38px 29px;min-height:0}.portrait-card{height:310px}.education-layout{align-items:start}.education-symbol{display:none}.section-heading{display:block;margin-bottom:28px}.section-heading>p{width:auto;margin-top:18px}.research-grid{grid-template-columns:1fr}.research-card{min-height:0}.skill-section{padding:58px 0 70px}.learning-area{padding:67px 0}.learning-area .section-heading{display:flex;align-items:end;gap:18px}.gallery-section{padding:70px 0}.gallery-frame{height:325px}.gallery-frame>div{left:23px;bottom:24px;max-width:290px}.portfolio-footer .portfolio-wrap{display:grid;gap:9px}.hero-facts dd{font-size:.53rem}.hero-facts div{padding-right:10px;margin-right:10px}}
@media(max-width:700px){.grid{grid-template-columns:1fr}.hero{padding-top:40px}.file-card{align-items:flex-start;flex-direction:column}.shell{width:min(100% - 28px,1080px)}}

/* Public contribution guide and open upload page */
.public-guide{padding:96px 0;background:#f1e2e3}.public-guide .section-heading{margin-bottom:34px}.public-guide .underlined-link{color:var(--portfolio-navy);border-color:var(--portfolio-pink)}.public-guide .underlined-link span{color:var(--portfolio-pink)}.guide-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:13px}.guide-grid article{background:#fffdfa;padding:26px 26px 30px;border-top:3px solid var(--portfolio-pink)}.guide-grid b{font:500 .65rem "DM Mono",monospace;color:var(--portfolio-pink)}.guide-grid h3{margin:24px 0 7px;font:700 1.35rem "Noto Serif SC","Microsoft YaHei",serif;color:var(--portfolio-navy)}.guide-grid p,.guide-rule{margin:0;font-size:.9rem;line-height:1.8;color:#647084}.guide-rule{margin-top:20px;font:500 .7rem/1.7 "DM Mono","Microsoft YaHei",sans-serif;color:#9a6474}
.share-page{min-height:100vh;background:linear-gradient(135deg,#f8f4ee,#edf2ef);color:var(--portfolio-ink)}.share-header{height:74px;display:flex;align-items:center;justify-content:space-between;padding:0 max(26px,calc((100vw - 1060px)/2));border-bottom:1px solid #d3d9d6;background:rgba(250,248,244,.9)}.share-header>a{font:500 .88rem "DM Mono",monospace;letter-spacing:.13em;text-decoration:none;color:var(--portfolio-navy)}.share-header nav{display:flex;gap:18px}.share-header nav a{font:500 .68rem "DM Mono",monospace;text-decoration:none;color:#607085}.share-wrap{width:min(1060px,calc(100% - 40px));margin:auto;padding:70px 0 100px}.share-intro{max-width:760px;margin-bottom:44px}.share-intro>p{font:500 .64rem "DM Mono",monospace;letter-spacing:.15em;color:var(--portfolio-pink);margin:0}.share-intro h1{font:700 clamp(2.5rem,6vw,4.4rem)/1.12 "Noto Serif SC","Microsoft YaHei",serif;letter-spacing:-.05em;margin:16px 0;color:var(--portfolio-navy)}.share-intro>div{color:#647084;line-height:1.9}.share-layout{display:grid;grid-template-columns:360px 1fr;gap:25px;align-items:start}.share-form,.share-list{background:#fffefa;border:1px solid #d7dcd8;padding:26px}.share-form h2,.share-list h2{font:700 1.35rem "Noto Serif SC","Microsoft YaHei",serif;color:var(--portfolio-navy);margin:0 0 18px}.share-form{display:grid;gap:13px}.share-form label{display:grid;gap:5px;font:600 .76rem "Noto Serif SC","Microsoft YaHei",serif;color:#405169}.share-form input,.share-form textarea,.share-list-head input{width:100%;border:1px solid #cfd8d6;background:#fff;padding:9px 10px;border-radius:2px;color:var(--portfolio-ink);font:inherit}.share-form textarea{min-height:75px;resize:vertical}.share-form .checkline{display:flex;grid-template-columns:20px 1fr;align-items:start;gap:8px;font-size:.72rem;line-height:1.55;color:#687486}.checkline input{width:auto;margin-top:3px}.share-submit{border:0;background:var(--portfolio-pink);color:#fff;padding:13px;font:500 .72rem "DM Mono",monospace;letter-spacing:.08em;cursor:pointer}.share-status,.share-muted{margin:0;color:#788392;font-size:.78rem;line-height:1.65}.share-list-head{display:flex;gap:14px;justify-content:space-between;align-items:center;margin-bottom:18px}.share-list-head h2{margin:0;white-space:nowrap}.public-documents{display:grid;gap:10px}.public-document{display:flex;justify-content:space-between;gap:15px;padding:17px 0;border-top:1px solid #dce1df}.public-document h3{font:700 1.05rem "Noto Serif SC","Microsoft YaHei",serif;margin:0;color:#243954}.public-document p{font-size:.84rem;line-height:1.6;color:#6a7686;margin:5px 0}.public-document span{display:inline-block;margin:2px 4px 3px 0;padding:2px 7px;border-radius:20px;background:#f4e4e7;color:#a65970;font-size:.67rem}.public-document small{display:block;color:#8a949e;font:400 .63rem "DM Mono",monospace;margin-top:5px;word-break:break-all}.public-document>a{height:max-content;white-space:nowrap;text-decoration:none;color:var(--portfolio-pink);font:500 .68rem "DM Mono",monospace;border-bottom:1px solid #d8a0ad;padding-bottom:2px}.share-page footer{padding:23px;text-align:center;background:var(--portfolio-navy);color:#bfcbd8;font:500 .6rem "DM Mono",monospace;letter-spacing:.13em}
@media(max-width:800px){.guide-grid,.share-layout{grid-template-columns:1fr}.public-guide{padding:68px 0}.share-wrap{width:min(100% - 28px,1060px);padding:46px 0 65px}.share-header{height:62px;padding:0 14px}.share-list-head{display:block}.share-list-head input{margin-top:10px}.public-document{display:block}.public-document>a{display:inline-block;margin-top:11px}}
.member-contribution{display:grid;grid-template-columns:.8fr 1.2fr;gap:28px;margin-top:42px;padding:28px;border:1px solid #cad8d1;background:#f0f6f2}.member-contribution h2{font:700 1.8rem "Noto Serif SC","Microsoft YaHei",serif;margin:5px 0 10px;color:#1f4f3c}.member-contribution>div>p:not(.eyebrow){margin:0;color:#587065;line-height:1.8}.member-upload-form{display:grid;gap:10px}.member-upload-form h3{margin:0;font-size:1.12rem}.member-upload-form label{display:grid;gap:5px;font-weight:700}.member-upload-form input,.member-upload-form textarea{width:100%}.member-upload-form textarea{min-height:72px}.public-moderation{margin-top:30px;padding:25px;border:1px solid #e4d4d8;background:#fffafb}.public-moderation h3{margin:3px 0;font:700 1.45rem "Noto Serif SC","Microsoft YaHei",serif;color:#71384a}.public-moderation-list{display:grid;gap:8px;margin-top:16px}.public-moderation-list article{display:flex;justify-content:space-between;align-items:center;gap:14px;padding:12px 0;border-top:1px solid #eadde0}.public-moderation-list p,.public-moderation-list small{margin:2px 0;display:block;color:#6f7880;font-size:.82rem}.public-moderation-list small{color:#a65970}@media(max-width:700px){.member-contribution{grid-template-columns:1fr;padding:20px}.public-moderation-list article{align-items:flex-start;flex-direction:column}}
.member-message{min-height:1.5em;margin:0;font-size:.8rem;line-height:1.55}.member-message.success{color:#15744f}.member-message.error{color:#b33e50}
.site-toast{position:fixed;z-index:100;right:24px;bottom:24px;max-width:min(420px,calc(100% - 40px));padding:14px 18px;background:#183a52;color:#fff;border-left:4px solid #e6a3b5;box-shadow:0 14px 35px rgba(22,35,53,.22);font:600 .88rem/1.55 "Noto Serif SC","Microsoft YaHei",serif;opacity:0;transform:translateY(18px);pointer-events:none;transition:opacity .22s,transform .22s}.site-toast.show{opacity:1;transform:translateY(0)}.site-toast.error{background:#7f394c;border-left-color:#ffd1db}.member-choice-list{display:grid;gap:7px;max-height:174px;overflow:auto;padding:8px;border:1px solid #d8dfdb;background:#fffdfa}.member-choice{display:flex;align-items:flex-start;gap:8px;padding:8px 9px;border:1px solid #e2e5e2;background:#fff;cursor:pointer;font-size:.82rem}.member-choice:hover{border-color:#c7899a}.member-choice input{width:auto;margin:4px 0 0}.member-choice span{display:grid;gap:2px}.member-choice b{font-size:.8rem;color:#263e5d;word-break:break-all}.member-choice small{font-size:.72rem;font-weight:400;color:#7d6971}.member-directory,.permission-panel{margin-top:30px;padding:25px;border:1px solid #d9d8d2;background:#fffdfa}.member-directory h3,.permission-panel h3{margin:4px 0;font:700 1.45rem "Noto Serif SC","Microsoft YaHei",serif;color:#263e5d}.member-directory{display:grid;grid-template-columns:.7fr 1.3fr;gap:25px}.member-directory-list{display:grid;gap:8px}.member-directory-list article{display:grid;grid-template-columns:minmax(180px,1fr) 1fr;gap:14px;padding:12px 0;border-top:1px solid #e6e3df}.member-directory-list b{word-break:break-all;color:#29445f;font-size:.86rem}.member-directory-list span{color:#77646c;font-size:.83rem}.permission-list{display:grid;gap:13px;margin-top:20px}.category-permission{display:grid;grid-template-columns:minmax(180px,.7fr) minmax(230px,1.3fr) auto;gap:16px;align-items:center;padding:18px;border-top:1px solid #e4e0db;background:#f8f4ef}.category-permission>div:first-child{display:grid;gap:4px}.category-permission b{color:#263e5d}.category-permission small{font:500 .65rem "DM Mono",monospace;color:#a45e71}.category-permission .member-choice-list{max-height:130px}.category-permission .button{white-space:nowrap}
.form-hint{margin:-2px 0 5px;color:#7b6970;font-size:.78rem;line-height:1.65;border-left:3px solid #e3a7b6;padding-left:9px}.danger-button{border:1px solid #b74e64;background:#fff8f8;color:#a13b53;border-radius:999px;padding:10px 15px;font-weight:700;cursor:pointer;white-space:nowrap}.danger-button:hover{background:#fae8eb}.button:disabled,.danger-button:disabled,.share-submit:disabled{opacity:.62;cursor:wait;transform:none}.share-submit:disabled{background:#9a6a78}
.category-permission{grid-template-columns:minmax(180px,.7fr) minmax(230px,1.3fr) auto auto}

/* Yukino-themed library collections */
.library-yukino{min-height:100vh;background:radial-gradient(circle at 100% 8%,rgba(234,184,198,.28),transparent 22%),linear-gradient(135deg,#f8f5ef,#edf2f1);padding-bottom:75px}.library-header{display:flex;justify-content:space-between;align-items:center;height:76px;border-bottom:1px solid #d8ddd9}.library-brand{font:500 .8rem "DM Mono",monospace;letter-spacing:.14em;color:#1d304d;text-decoration:none}.library-brand span{font-size:.58rem;color:#9b7c84;margin-left:6px}.library-header nav{display:flex;gap:20px}.library-header nav a{font:500 .68rem "DM Mono",monospace;color:#627187;text-decoration:none}.library-yukino .library{padding:40px 0 80px}.library-hero{min-height:218px;display:flex;justify-content:space-between;align-items:center;overflow:hidden;background:linear-gradient(112deg,#1b304d,#2e506f);color:#fff;padding:34px 45px;position:relative}.library-hero::after{content:"雪乃";position:absolute;right:250px;bottom:-34px;font:900 6rem "Noto Serif SC",serif;color:rgba(255,255,255,.05)}.library-hero>div{position:relative;z-index:1;max-width:620px}.library-hero p{font:500 .62rem "DM Mono",monospace;letter-spacing:.16em;color:#f2bac9;margin:0}.library-hero h1{font:700 clamp(2.6rem,5vw,4.3rem)/1 "Noto Serif SC","Microsoft YaHei",serif;margin:15px 0 12px;max-width:none}.library-hero span{color:#cbd7e4;font-size:.92rem}.library-hero img{position:absolute;right:0;top:0;width:295px;height:100%;object-fit:cover;object-position:center 28%;opacity:.78;filter:saturate(.8)}.library-yukino .notice{border-radius:0;margin:16px 0;background:#fff4dc;border-left:3px solid #d49b54}.library-toolbar{display:flex;justify-content:space-between;align-items:end;gap:25px;margin:38px 0 20px}.library-toolbar h2,.collection-heading h2{font:700 2.1rem/1.2 "Noto Serif SC","Microsoft YaHei",serif;color:#1d304d;margin:5px 0 0}.library-toolbar input{max-width:330px}.category-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:13px}.category-card{display:grid;grid-template-columns:40px 1fr 18px;gap:11px;align-items:start;text-align:left;border:1px solid #d4ded9;background:#fffefa;padding:24px;cursor:pointer;transition:transform .2s,box-shadow .2s;color:#1d304d}.category-card:hover{transform:translateY(-4px);box-shadow:0 14px 30px rgba(25,47,72,.1)}.category-card>span{display:grid;place-items:center;width:34px;height:34px;border-radius:50%;background:#f5dfe5;color:#a4556d;font-size:1rem}.category-card small{font:500 .58rem "DM Mono",monospace;color:#a35b70;letter-spacing:.09em}.category-card h3{font:700 1.25rem "Noto Serif SC","Microsoft YaHei",serif;margin:7px 0;color:#263e5d}.category-card p{font-size:.82rem;line-height:1.65;color:#6f7a88;margin:0}.category-card>b{color:#a45e71;margin-top:8px}.collection-view{margin-top:30px}.back-collection{border:0;background:transparent;padding:0;color:#a4556d;font:500 .7rem "DM Mono",monospace;cursor:pointer}.collection-heading{display:flex;justify-content:space-between;gap:20px;align-items:end;margin:18px 0 20px;padding:26px 30px;background:#f0e2e5;overflow:hidden;position:relative}.collection-heading::after{content:"✦";position:absolute;right:30px;top:5px;color:#fff8;font-size:5rem}.collection-heading>div{position:relative;z-index:1}.collection-heading h2{margin:4px 0}.collection-heading img{width:205px;height:105px;object-fit:cover;object-position:center 48%;opacity:.75}.collection-items{display:grid;gap:11px}.collection-item{display:flex;justify-content:space-between;gap:20px;align-items:center;padding:23px 25px;background:#fffefa;border:1px solid #d8dfdb}.collection-item h3{margin:5px 0;font:700 1.2rem "Noto Serif SC","Microsoft YaHei",serif;color:#263e5d}.collection-item p{margin:0 0 7px}.library-yukino .admin{border-top:0;margin-top:56px;padding:30px;background:#f5f0ec}.library-yukino .admin>h2{font:700 2rem "Noto Serif SC","Microsoft YaHei",serif;margin-top:0}.share-intro{position:relative;padding-right:220px}.share-intro::after{content:"";position:absolute;right:0;bottom:-45px;width:180px;height:210px;background:url('/assets/yukino/portrait.jpg') center 25%/cover;border-radius:95px 95px 0 0;opacity:.77;mix-blend-mode:multiply}.share-intro>*{position:relative;z-index:1}
@media(max-width:800px){.library-header{height:62px}.library-yukino .library{padding-top:24px}.library-hero{padding:30px 25px;min-height:200px}.library-hero img{width:155px}.library-hero::after{right:120px}.library-toolbar{display:block}.library-toolbar input{max-width:none;width:100%;margin-top:18px}.category-grid{grid-template-columns:1fr}.collection-heading img{display:none}.collection-item{align-items:flex-start;flex-direction:column}.share-intro{padding-right:130px}.share-intro::after{width:115px;height:150px;bottom:-25px}}@media(max-width:460px){.library-brand span{display:none}.library-header nav{gap:11px}.library-hero img{opacity:.36}.library-hero h1{font-size:2.5rem}.share-intro{padding-right:0}.share-intro::after{display:none}}
@media(max-width:700px){.member-directory{grid-template-columns:1fr}.member-directory-list article,.category-permission{grid-template-columns:1fr}.category-permission{gap:10px}.site-toast{right:14px;bottom:14px}}
