:root{--ink:#1c211d;--muted:#737b72;--line:#e6e9e3;--lime:#c7f04c;--paper:#f7f8f4}*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font-family:system-ui,-apple-system,"Segoe UI","Microsoft YaHei","PingFang SC",Arial,sans-serif}.topbar{height:82px;background:#fbfcf9;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 max(5vw,30px)}.logo{font-size:23px;font-weight:700;color:var(--ink);text-decoration:none;letter-spacing:-1px}.logo-mark{display:inline-grid;place-items:center;width:27px;height:27px;border-radius:50%;background:var(--ink);color:var(--lime);font-size:18px;margin-right:7px;vertical-align:middle}.topbar nav{display:flex;gap:36px;margin-left:100px}.topbar nav a{font-size:14px;font-weight:600;text-decoration:none;color:#8d948c}.topbar nav a.active{color:var(--ink)}.header-actions{display:flex;align-items:center;gap:15px}.upload,.primary{border:0;background:var(--ink);color:#fff;border-radius:9px;padding:12px 17px;font:600 14px inherit;cursor:pointer}.avatar{border:0;width:37px;height:37px;background:#d8b193;color:#fff;border-radius:50%;font-weight:700;cursor:pointer}.page{max-width:1120px;margin:0 auto;padding:55px 35px 80px}.eyebrow{font-size:10px;letter-spacing:1.7px;font-weight:700;color:#899187;margin:0 0 9px}.page-head{display:flex;align-items:end;justify-content:space-between;margin-bottom:30px}.page-head h1{font-family:system-ui,-apple-system,"Segoe UI","Microsoft YaHei","PingFang SC",sans-serif;margin:0;font-size:33px;letter-spacing:-1.6px}.page-head p:last-child{font-size:14px;color:var(--muted);margin:9px 0 0}.button-light,.follow-btn{border:1px solid #dce1d8;background:#fff;border-radius:8px;padding:9px 13px;font:600 13px inherit;cursor:pointer}.follow-btn.following{background:#eef1ea;color:#6f786e}.feed{display:grid;gap:13px;max-width:760px}.feed-card{display:flex;gap:15px;align-items:center;background:#fff;border:1px solid var(--line);border-radius:13px;padding:15px}.feed-card img{width:58px;height:58px;border-radius:50%;object-fit:cover}.feed-card main{flex:1}.feed-card strong{font-size:15px}.feed-card small{display:block;color:var(--muted);margin-top:3px}.feed-card p{font-size:13px;color:#586057;margin:8px 0 0}.saved-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.saved-card{overflow:hidden;background:#fff;border-radius:12px;box-shadow:0 4px 15px #2830240a}.saved-card img{width:100%;height:220px;object-fit:cover;display:block}.saved-card div{padding:12px}.saved-card p{margin:0 0 4px;font-size:14px;font-weight:600}.saved-card small{color:var(--muted)}.card-actions{display:flex;justify-content:space-between;align-items:center;margin-top:12px}.like{border:0;background:transparent;color:#727b70;font:600 12px inherit;cursor:pointer}.profile-cover{height:175px;border-radius:16px;background:linear-gradient(120deg,#c9dc9e,#dfb998 48%,#8da8a0)}.profile-info{display:flex;align-items:end;gap:17px;margin:-45px 28px 0;position:relative}.profile-avatar{width:100px;height:100px;border:5px solid var(--paper);border-radius:50%;background:#d8b193;color:#fff;display:grid;place-items:center;font-size:31px;font-weight:700}.profile-info main{flex:1;padding-bottom:7px}.profile-info h1{font-size:25px;margin:0}.profile-info p{color:var(--muted);font-size:13px;margin:4px 0}.bio{line-height:1.8;font-size:14px;margin:28px}.stats{display:flex;gap:32px;margin:0 28px 24px}.stats span{display:grid;gap:3px;font-size:11px;color:var(--muted)}.stats b{font-size:17px;color:var(--ink)}.tabs{border-bottom:1px solid var(--line);display:flex;gap:24px}.tabs a{padding:12px 4px;text-decoration:none;color:#818980;font-weight:600;font-size:13px}.tabs a.active{color:var(--ink);border-bottom:2px solid var(--ink)}.toast{position:fixed;bottom:25px;left:50%;transform:translate(-50%,70px);opacity:0;background:var(--ink);color:#fff;padding:11px 17px;border-radius:9px;font-size:13px;transition:.25s}.toast.show{transform:translate(-50%,0);opacity:1}@media(max-width:720px){.topbar{height:68px;padding:0 20px}.topbar nav{display:none}.upload{font-size:0;padding:11px}.upload:first-letter{font-size:20px}.page{padding:38px 20px 70px}.page-head h1{font-size:27px}.saved-grid{grid-template-columns:1fr 1fr}.saved-card img{height:160px}.profile-info{margin:-40px 8px 0;gap:11px}.profile-avatar{width:80px;height:80px;font-size:25px}.profile-info h1{font-size:20px}.bio,.stats{margin-left:8px}.stats{gap:22px}.feed-card{align-items:flex-start}.feed-card .follow-btn{align-self:center}}
:where(button,a,input,textarea,select):focus-visible{outline:3px solid rgba(145,181,45,.48);outline-offset:3px}.module-mobile-nav a:focus-visible{outline-offset:-3px}.follow-btn{transition:transform .18s ease,background .18s ease,border-color .18s ease}.follow-btn:active{transform:scale(.97)}
.photo-actions{display:flex;align-items:center;gap:7px}.save-button,.delete-button{border:0;border-radius:50%;width:27px;height:27px;background:#edf0ea;color:#4f574e;font-size:15px;cursor:pointer}.save-button.saved{background:#c7f04c;color:#1c211d}.delete-button{background:#fff1f1;color:#ba4a4a;font-size:19px;line-height:1}.delete-button:hover{background:#f9dede}.like.liked{color:#d95c62}
.photo-actions button:disabled,.follow-btn:disabled{cursor:wait;opacity:.62}
.profile-empty{margin:28px 0;padding:24px;text-align:center;border:1px dashed #d6ddd0;border-radius:12px;color:#7a8378;font-size:14px}
.following-work-section{margin-bottom:44px}.following-creators{padding-top:4px}.subsection-head{display:flex;align-items:baseline;justify-content:space-between;margin-bottom:16px}.subsection-head h2{margin:0;font-size:20px;letter-spacing:-.7px}.subsection-head span{color:var(--muted);font-size:12px}
.page-head .button-light{display:inline-flex;align-items:center;gap:8px;border-color:#cfd8c8;background:#fff;color:var(--ink);padding:10px 14px;text-decoration:none;box-shadow:0 5px 14px #2830240a;transition:transform .2s,background .2s,border-color .2s}.page-head .button-light:after{content:"→";font-size:17px;line-height:1;transition:transform .2s}.page-head .button-light:hover{transform:translateY(-2px);border-color:#a9c56f;background:#f6faef}.page-head .button-light:hover:after{transform:translateX(3px)}.page-head .button-light:focus-visible{outline:3px solid #a8cf31;outline-offset:3px}
.page-head .button-light{gap:10px;border:0;border-radius:999px;background:var(--lime);padding:6px 7px 6px 16px;color:var(--ink);box-shadow:0 9px 20px #91ad3733}.page-head .button-light:after{width:28px;height:28px;border-radius:50%;display:grid;place-items:center;background:var(--ink);color:#fff;font-size:16px;line-height:1}.page-head .button-light:hover{border-color:transparent;background:#d8f76f;box-shadow:0 12px 24px #91ad3748}.page-head .button-light:hover:after{transform:translateX(2px) rotate(-8deg)}
.profile-modal{position:fixed;z-index:20;inset:0;display:none;place-items:center;padding:20px;background:#1c211d88}.profile-modal.show{display:grid}.profile-modal-content{position:relative;width:min(500px,100%);max-height:calc(100vh - 40px);overflow:auto;border-radius:17px;background:#fff;padding:32px}.modal-close{position:absolute;top:12px;right:15px;border:0;background:transparent;color:#737b72;font-size:27px;line-height:1;cursor:pointer}.profile-modal h2{margin:0 0 7px;font-size:27px;letter-spacing:-1px}.modal-intro{margin:0 0 24px;color:var(--muted);font-size:14px;line-height:1.7}.profile-form{display:grid;gap:16px}.profile-form label{display:grid;gap:7px;font-size:13px;font-weight:600}.profile-form input,.profile-form textarea{width:100%;border:1px solid #dce1d8;border-radius:8px;background:#fbfcf9;padding:10px 11px;color:var(--ink);font:400 14px inherit;outline:0;resize:vertical}.profile-form input:focus,.profile-form textarea:focus{border-color:#92b52d;box-shadow:0 0 0 3px #c7f04c55}.profile-form small{font-size:11px;font-weight:400;color:var(--muted)}.profile-form-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:4px}.profile-form-actions .button-light{background:#fff}.profile-form-actions .primary{padding:10px 15px}.profile-form-actions .primary:disabled{cursor:wait;opacity:.65}
.saved-card.image-error{position:relative;background:linear-gradient(135deg,#e1e7dc,#b9cbb5)}.saved-card.image-error:after{content:"图片暂时无法加载";position:absolute;top:0;left:0;right:0;height:220px;display:grid;place-items:center;color:#4f5a4e;font-size:12px}.saved-card.image-error img{opacity:0}@media(max-width:720px){.saved-card.image-error:after{height:160px}}
.saved-card{transition:transform .2s,box-shadow .2s}.saved-card:hover{transform:translateY(-2px);box-shadow:0 10px 24px #28302418}.saved-card:focus-within{box-shadow:0 10px 24px #28302418}.photo-detail-link{display:block;color:inherit;text-decoration:none;cursor:pointer}.photo-detail-link:focus-visible{outline:3px solid #a8cf31;outline-offset:-3px}
.module-mobile-nav{display:none}@media(max-width:720px){body{padding-bottom:68px}.profile-modal{padding:14px}.profile-modal-content{max-height:calc(100vh - 28px);padding:29px 20px}.profile-modal h2{font-size:24px}.module-mobile-nav{position:fixed;z-index:6;left:0;right:0;bottom:0;height:65px;display:flex;align-items:center;justify-content:space-around;background:#fff;border-top:1px solid var(--line)}.module-mobile-nav a{display:grid;justify-items:center;gap:2px;color:#899187;text-decoration:none;font-size:18px}.module-mobile-nav a.active{color:var(--ink)}.module-mobile-nav a span{font-size:9px;font-weight:600}.module-mobile-nav .mobile-upload{width:43px;height:43px;padding:0;border-radius:50%;font-size:27px;line-height:1;color:var(--lime)}}
/* Public creator pages expose published work without profile editing controls. */
.creator-avatar-link,.creator-name-link{color:inherit;text-decoration:none}.creator-avatar-link{display:grid}.creator-name-link:hover{text-decoration:underline}
body.public-profile [data-edit],body.public-profile .tabs a[href="collections.html"]{display:none!important}
body.public-profile .profile-cover,body.public-profile #profileAvatar{pointer-events:none;cursor:default}
body.public-profile .profile-cover::before,body.public-profile #profileAvatar::before{display:none!important}
.profile-follow-button{min-width:92px;min-height:42px;border:0;border-radius:999px;padding:9px 17px;background:var(--ink);color:#fff;font:700 13px inherit;cursor:pointer;box-shadow:0 9px 20px #202a1e26;transition:transform .18s ease,background .18s ease,box-shadow .18s ease}.profile-follow-button:hover{transform:translateY(-1px);box-shadow:0 12px 25px #202a1e32}.profile-follow-button:active{transform:scale(.97)}.profile-follow-button.following{border:1px solid #dce3d8;background:#f2f5ef;color:#5c6759;box-shadow:none}.profile-follow-button:disabled{cursor:wait;opacity:.66}
@media(max-width:720px){body{padding-bottom:calc(76px + env(safe-area-inset-bottom))!important}.module-mobile-nav{height:calc(66px + env(safe-area-inset-bottom))!important;padding:0 6px env(safe-area-inset-bottom);background:rgba(255,255,255,.94)!important;box-shadow:0 -10px 28px rgba(28,39,28,.09);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px)}.module-mobile-nav a{min-width:52px;min-height:48px;align-content:center;border-radius:13px;touch-action:manipulation;transition:color .18s ease,background .18s ease,transform .18s ease}.module-mobile-nav a.active{background:#f1f7df;color:#263124}.module-mobile-nav a:active{transform:scale(.95)}.module-mobile-nav a span{font-size:10px!important}}

@media(max-width:720px){
  body[data-page="profile"] .saved-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:11px}
  body[data-page="profile"] .saved-card img{aspect-ratio:1/1!important;padding:4px!important}
  body[data-page="profile"] .saved-card .photo-detail-link>div{min-width:0;padding:9px 10px}
  body[data-page="profile"] .saved-card p,body[data-page="profile"] .saved-card small{display:block;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  body[data-page="profile"] .saved-card .card-actions{justify-content:flex-end;min-height:48px;margin-top:0;padding:4px 6px;border-top:1px solid #edf0ea}
  body[data-page="profile"] .saved-card .card-actions>small{display:none}
  body[data-page="profile"] .saved-card .photo-actions{display:flex;justify-content:flex-end;gap:2px;width:100%}
  body[data-page="profile"] #profileMeta{display:block;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
}

/* Cross-page responsive polish: prevent identity/actions overlap and align empty states. */
.profile-info main{min-width:0}
#profileName,#profileMeta{max-width:100%;overflow-wrap:anywhere}
.profile-empty,.notification-empty{min-height:190px;align-content:center}
@media(max-width:720px){
  .page{min-height:calc(100vh - 133px);padding:30px 16px 86px}
  .page-head{align-items:flex-start;gap:14px;margin-bottom:24px}
  .page-head>div{min-width:0}
  .page-head .button-light{flex:0 0 auto;max-width:132px;padding-left:12px;text-align:center;font-size:11px;line-height:1.35}
  .profile-info{align-items:center;flex-wrap:wrap;margin:-40px 8px 0}
  .profile-info main{flex:1 1 140px}
  .profile-info h1{display:flex;gap:5px;align-items:center;min-width:0}
  #profileName{line-height:1.2}
  #profileMeta{font-size:11px;line-height:1.45}
  .profile-info>.button-light{flex:0 0 auto;padding:8px 10px;font-size:11px}
  .profile-empty{margin:20px 0;padding:20px;min-height:170px}
  .subsection-head{gap:12px}.subsection-head span{text-align:right}
  .saved-grid{gap:11px}
  .feed-card{padding:13px;gap:11px}
  .feed-card main{min-width:0}.feed-card p{overflow-wrap:anywhere}
}
/* Mobile public-profile visual hierarchy and touch targets. */
@media(max-width:720px){
  body.public-profile .profile-info{align-items:center!important;margin:-34px 8px 0!important;padding:10px 11px 9px!important;border:1px solid rgba(223,229,219,.96);border-radius:17px;background:rgba(255,255,255,.94);box-shadow:0 12px 28px rgba(32,43,31,.13);backdrop-filter:blur(12px)}
  body.public-profile .profile-info main{padding-bottom:0!important}
  body.public-profile .profile-follow-button{min-width:78px;min-height:38px;padding:8px 13px;font-size:11px}
  body.public-profile #profileName{font-size:19px!important;letter-spacing:-.5px}
  body.public-profile #profileMeta{margin-top:3px!important;color:#697368!important}
  body.public-profile .stats{gap:10px!important;margin:19px 8px 23px!important}
  body.public-profile .stats span{min-width:66px;padding:9px 11px;border:1px solid #e5eae2;border-radius:12px;background:#f8faf6}
  body.public-profile .saved-card{border-radius:15px!important;box-shadow:0 9px 24px rgba(32,43,31,.09)!important}
  body.public-profile .saved-card .card-actions{min-height:52px;margin-top:0!important;padding:7px 10px!important;border-top:1px solid #edf0ea}
  body.public-profile .saved-card .photo-actions button{display:inline-grid!important;place-items:center;min-width:40px!important;width:40px!important;min-height:40px!important;height:40px!important;border-radius:999px!important}
  body.public-profile .saved-card .photo-actions button:active{transform:scale(.96)}
}
/* Persistent signed-out state after the login dialog is dismissed. */
.guest-required{display:grid!important;place-content:center;justify-items:center;gap:8px;min-height:230px!important;text-align:center}
.guest-required strong{color:var(--ink);font-size:18px}
.guest-required span{max-width:360px;color:var(--muted);font-size:13px;line-height:1.65}
.guest-login-button{min-width:124px;min-height:44px;margin-top:8px;border:0;border-radius:999px;background:var(--ink);color:#fff;font:600 13px inherit;cursor:pointer;box-shadow:0 9px 20px #202a1e26}
.guest-login-button:active{transform:scale(.97)}
.public-profile .saved-card{transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease}
.public-profile .saved-card:hover{transform:translateY(-3px);border-color:#dce5d7;box-shadow:0 14px 32px rgba(32,43,31,.12)!important}
.public-profile .saved-card .photo-detail-link{display:block;color:inherit;text-decoration:none}
.public-profile .saved-card .photo-detail-link>div{min-height:54px;padding:10px 12px 8px}
.public-profile .saved-card .photo-detail-link p{margin-bottom:3px;font-size:15px;line-height:1.3}
.public-profile .saved-card .photo-detail-link small{font-size:11px}
.public-profile .saved-card .card-actions{min-height:48px;margin-top:0;padding:4px 8px;border-top:1px solid #edf0ea}
.public-profile .saved-card .photo-actions{display:flex;align-items:center;gap:3px}
.public-profile .saved-card .photo-actions button{display:inline-grid;place-items:center;min-width:40px;min-height:40px;border-radius:999px}
.public-profile .saved-card .photo-actions button:hover{background:#edf2e9}
@media(max-width:720px){.public-profile .saved-card .photo-detail-link>div{min-height:50px;padding:8px 9px 7px}.public-profile .saved-card .photo-detail-link p{font-size:13px}.public-profile .saved-card .card-actions{min-height:46px;padding:3px 5px}.public-profile .saved-card .photo-actions button{min-width:40px;min-height:40px}}
body[data-page="collections"] .empty-collection.guest-required,
body[data-page="following"] .profile-empty.guest-required{position:relative;isolation:isolate;overflow:hidden}
body[data-page="collections"] .empty-collection.guest-required{background:radial-gradient(circle at 82% 18%,rgba(199,240,76,.22),transparent 28%),linear-gradient(135deg,#fbfcf7,#f1f6e9)!important}
body[data-page="following"] .profile-empty.guest-required{background:radial-gradient(circle at 82% 18%,rgba(92,129,234,.13),transparent 30%),linear-gradient(135deg,#fafcf8,#f0f4ee)!important}
body[data-page="collections"] .empty-collection.guest-required::before{content:"♡";background:#dff39f;color:#263324}
body[data-page="following"] .profile-empty.guest-required::before{content:"◎";background:#e2e9fb;color:#395aa8}
.guest-required::after{content:"";position:absolute;z-index:-1;right:-36px;bottom:-54px;width:150px;height:150px;border:1px solid rgba(116,137,104,.14);border-radius:50%}
.guest-required .guest-login-button{transition:transform .18s ease,box-shadow .18s ease,background .18s ease}
.guest-required .guest-login-button:hover{transform:translateY(-2px);background:#111814;box-shadow:0 13px 27px rgba(32,42,30,.24)}
.guest-required .guest-login-button:focus-visible{outline:3px solid rgba(112,146,55,.28);outline-offset:3px}
.guest-required .guest-login-button:active{transform:scale(.97)}
.module-guest .page{max-width:980px}
.module-guest .page-head{max-width:840px;margin-left:auto;margin-right:auto}
.module-guest .following-work-section,.module-guest .empty-collection.guest-required{width:100%;max-width:840px;margin-left:auto!important;margin-right:auto!important}
.module-error-state{position:relative;isolation:isolate;overflow:hidden;background:linear-gradient(145deg,#fffaf7,#f5f1ed)!important;border-color:#e5d2c5!important}
.module-error-state::before{content:"!"!important;background:#f1ddd0!important;color:#9b4c38!important}
.module-retry-button{min-height:42px;padding:0 16px;border:0;border-radius:999px;background:#1c251d;color:#fff;font:700 11px inherit;cursor:pointer;box-shadow:0 9px 22px rgba(28,38,29,.17)}
.module-retry-button:hover{transform:translateY(-1px);background:#2b372c}
@media(max-width:720px){.guest-required::after{right:-54px;bottom:-70px}.guest-required strong{font-size:17px}}
