:root{--bg:#f7f8fa;--surface:#fff;--text:#20242a;--muted:#747b86;--line:#e8eaee;--blue:#5277ff;--soft:#eef2ff;--shadow:0 12px 35px rgba(31,38,52,.07)}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;font-family:Inter,"Noto Sans SC",sans-serif;background:var(--bg);color:var(--text);transition:.25s}body.dark{--bg:#131517;--surface:#1c1f22;--text:#e9ebed;--muted:#979da5;--line:#2c3035;--soft:#232b46;--shadow:0 12px 35px #0003}a{text-decoration:none;color:inherit}button,input,textarea{font:inherit}.topbar{height:68px;background:color-mix(in srgb,var(--surface) 88%,transparent);border-bottom:1px solid var(--line);position:sticky;top:0;z-index:20;backdrop-filter:blur(14px)}.nav-wrap{height:100%;max-width:1120px;margin:auto;padding:0 24px;display:flex;align-items:center}.logo{display:flex;align-items:center;gap:10px;margin-right:55px}.logo-mark{display:grid;place-items:center;width:32px;height:32px;border-radius:10px;color:#fff;font-weight:800;background:linear-gradient(140deg,#7158ee,#4a89ff);box-shadow:0 6px 15px #5873ee55}.logo strong{font-size:16px}.topbar nav{display:flex;height:100%;gap:34px}.topbar nav a{height:100%;display:flex;align-items:center;font-size:14px;color:var(--muted);position:relative}.topbar nav a.active{color:var(--text);font-weight:600}.topbar nav a.active:after{content:"";position:absolute;bottom:0;left:20%;right:20%;height:2px;background:var(--blue);border-radius:2px}.actions{display:flex;gap:7px;margin-left:auto}.actions button{height:34px;border:0;border-radius:9px;background:transparent;color:var(--muted);cursor:pointer;padding:0 10px}.actions button:hover{background:var(--line);color:var(--text)}.actions em{font-style:normal;font-size:12px;margin-left:5px}#menuBtn{display:none}.page{display:none;max-width:1120px;margin:auto;padding:55px 24px 90px}.page.active{display:block;animation:appear .3s ease}@keyframes appear{from{opacity:0;transform:translateY(5px)}}.page-title{background:linear-gradient(125deg,#eef1ff,#f8f3ff 58%,#e8f7ff);border:1px solid #e8eafb;border-radius:18px;padding:35px 40px;margin-bottom:30px;display:flex;justify-content:space-between;align-items:center;overflow:hidden;position:relative}.dark .page-title{background:linear-gradient(125deg,#22283d,#28243a 58%,#1e3037);border-color:#30364a}.page-title h1{font-size:30px;margin:5px 0 8px;letter-spacing:-.03em}.page-title p{margin:0;color:var(--muted);font-size:14px}.page-title .hello{color:var(--blue);font-size:12px;font-weight:600}.planet{font-size:110px;line-height:.5;color:#9bafff;transform:rotate(-25deg);opacity:.65}.layout{display:grid;grid-template-columns:minmax(0,1fr) 260px;gap:28px}.feed-head{display:flex;justify-content:space-between;align-items:center;margin:5px 0 12px}.feed-head>span{font-weight:600;font-size:14px}.feed-head button{border:0;background:transparent;color:var(--muted);font-size:12px;padding:7px 8px;cursor:pointer}.feed-head button.active{color:var(--blue)}.post-list{background:var(--surface);border:1px solid var(--line);border-radius:14px;overflow:hidden}.post-item{padding:27px 29px;border-bottom:1px solid var(--line);cursor:pointer;transition:.2s}.post-item:last-child{border-bottom:0}.post-item:hover{background:color-mix(in srgb,var(--soft) 40%,var(--surface));}.post-item h2{font-size:19px;line-height:1.55;margin:7px 0 9px;letter-spacing:-.02em}.post-item h2 a{background:linear-gradient(var(--blue),var(--blue)) left bottom/0 1px no-repeat;transition:.3s}.post-item:hover h2 a{background-size:100% 1px;color:var(--blue)}.post-item>p{font-size:13.5px;line-height:1.75;color:var(--muted);margin:0 0 14px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.post-top,.post-bottom{display:flex;align-items:center;gap:9px;color:var(--muted);font-size:11px}.type{color:#7b62e8;background:#f0edff;padding:4px 7px;border-radius:5px}.dark .type{background:#302b48}.post-bottom .tags{display:flex;gap:6px}.post-bottom .tags span{background:var(--bg);padding:4px 7px;border-radius:5px}.post-bottom time{margin-left:auto}.side-card{background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:20px;margin-bottom:16px}.author-card{text-align:center;padding-top:25px}.avatar,.big-avatar{margin:auto;width:65px;height:65px;border-radius:50%;display:grid;place-items:center;color:#fff;font-weight:700;background:linear-gradient(135deg,#f5ad58,#e85e77 55%,#7366d9)}.author-card h3{margin:12px 0 6px;font-size:16px}.author-card p{color:var(--muted);font-size:12px;line-height:1.7}.stats{border-top:1px solid var(--line);margin-top:16px;padding-top:15px;display:flex;justify-content:space-around}.stats span{display:grid;font-size:10px;color:var(--muted);gap:3px}.stats b{font-size:15px;color:var(--text)}.side-card>h3{font-size:13px;margin:0 0 13px}.tag-cloud{display:flex;flex-wrap:wrap;gap:7px}.tag-cloud button{border:0;background:var(--bg);color:var(--muted);font-size:11px;padding:6px 8px;border-radius:6px;cursor:pointer}.status{display:flex;align-items:center;gap:11px}.status-dot{width:9px;height:9px;border-radius:50%;background:#2fcf75;box-shadow:0 0 0 5px #2fcf7520}.status div{display:grid;gap:4px}.status b{font-size:12px}.status small{font-size:10px;color:var(--muted)}.pagination{display:flex;justify-content:center;gap:7px;margin-top:22px}.pagination button{border:1px solid var(--line);background:var(--surface);color:var(--muted);border-radius:7px;width:34px;height:34px;cursor:pointer}.pagination button.active{background:var(--blue);border-color:var(--blue);color:#fff}.narrow{max-width:960px}.inner-title{text-align:center;padding:35px 0 45px}.inner-title small,.comment-heading small{color:var(--blue);font-size:10px;letter-spacing:.18em;font-weight:700}.inner-title h1{font-size:32px;margin:9px 0}.inner-title p{color:var(--muted);font-size:14px}.project-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.project-grid article{background:var(--surface);border:1px solid var(--line);border-radius:15px;padding:25px;position:relative}.project-grid article>span{position:absolute;right:20px;color:var(--line);font-weight:700}.project-icon{width:46px;height:46px;border-radius:12px;display:grid;place-items:center;font-size:22px}.project-icon.blue{background:#eaf0ff;color:#5277ff}.project-icon.orange{background:#fff0e6;color:#e88a42}.project-icon.green{background:#e7f8ef;color:#35a66b}.project-grid h2{font-size:17px;margin:18px 0 9px}.project-grid p{color:var(--muted);font-size:12px;line-height:1.7;min-height:62px}.project-grid i{font-style:normal;font-size:10px;background:var(--bg);color:var(--muted);padding:4px 7px;border-radius:5px;margin-right:5px}.project-grid a{display:block;color:var(--blue);font-size:12px;margin-top:20px}.about-box{background:var(--surface);border:1px solid var(--line);border-radius:16px;padding:42px;display:grid;grid-template-columns:120px 1fr;gap:40px}.big-avatar{width:100px;height:100px;font-size:22px}.about-box h2{margin-top:0}.about-box h3{font-size:15px;margin-top:28px}.about-box p,.about-box li{color:var(--muted);font-size:13px;line-height:1.9}.friend-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}.friend-grid>a{background:var(--surface);border:1px solid var(--line);padding:18px;border-radius:13px;display:flex;gap:13px;align-items:center}.friend-grid>a:hover{border-color:#aab8f5}.friend-grid b{width:40px;height:40px;border-radius:10px;background:var(--soft);color:var(--blue);display:grid;place-items:center}.friend-grid span{display:grid;gap:4px}.friend-grid strong{font-size:13px}.friend-grid small{color:var(--muted)}.apply-card{margin-top:35px;text-align:center;border:1px dashed var(--line);border-radius:14px;padding:30px}.apply-card h2{font-size:18px}.apply-card p{font-size:12px;color:var(--muted);max-width:570px;margin:10px auto 20px;line-height:1.8}.apply-card a{font-size:12px;color:var(--blue)}footer{border-top:1px solid var(--line);max-width:1072px;margin:auto;padding:36px 0 45px;display:grid;grid-template-columns:1fr auto;gap:8px;color:var(--muted);font-size:11px}footer strong{color:var(--text);font-size:13px}footer p{margin:7px 0}.footer-links{display:flex;gap:20px}footer>small{grid-column:1/-1;margin-top:15px}#toTop{position:fixed;right:25px;bottom:25px;border:1px solid var(--line);background:var(--surface);color:var(--text);width:40px;height:40px;border-radius:10px;box-shadow:var(--shadow);cursor:pointer;opacity:0;transform:translateY(10px);transition:.2s}#toTop.show{opacity:1;transform:none}
dialog{border:1px solid var(--line);border-radius:16px;background:var(--surface);color:var(--text);padding:0;box-shadow:var(--shadow)}dialog::backdrop{background:#10131a80;backdrop-filter:blur(4px)}#searchDialog{width:min(590px,92vw);padding:22px}.dialog-title{display:flex;justify-content:space-between}.dialog-title button,.article-close{border:0;background:transparent;color:var(--muted);font-size:23px;cursor:pointer}.search-box{display:flex;align-items:center;gap:8px;background:var(--bg);border:1px solid var(--line);border-radius:9px;padding:0 13px;margin:18px 0 10px}.search-box input{border:0;background:transparent;color:var(--text);height:45px;width:100%;outline:0}.search-result{padding:13px 6px;border-bottom:1px solid var(--line);cursor:pointer}.search-result:hover{color:var(--blue)}.search-result small,.search-hint{color:var(--muted);font-size:10px}.search-hint{display:block;text-align:center;margin-top:14px}.article-dialog{width:min(820px,95vw);max-height:94vh}.article-close{position:sticky;float:right;top:16px;margin:16px;z-index:2;width:38px;height:38px;border-radius:10px;background:var(--surface);border:1px solid var(--line)}.article-body{padding:72px clamp(28px,9vw,78px)}.article-meta{color:var(--blue);font-size:11px}.article-body h1{font-size:clamp(27px,5vw,38px);line-height:1.45;margin:13px 0}.article-body .lead{font-size:16px;color:var(--muted);line-height:1.8}.article-text{font-size:14px;line-height:2;margin-top:38px}.article-text h2{font-size:21px;margin-top:38px}.code{background:#171a20;color:#c7d0dc;padding:18px;border-radius:10px;font:12px/1.8 monospace;overflow:auto}.comments{background:var(--bg);border-top:1px solid var(--line);padding:50px clamp(28px,9vw,78px)}.comment-heading{display:flex;justify-content:space-between;align-items:end}.comment-heading h2{margin:6px 0;font-size:23px}.comment-heading p{color:var(--muted);font-size:11px}#commentForm{margin:25px 0 35px}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:12px}label{display:block;color:var(--muted);font-size:11px;margin-bottom:12px}input,textarea{display:block;width:100%;margin-top:7px;border:1px solid var(--line);background:var(--surface);color:var(--text);border-radius:8px;padding:11px;outline:0}textarea{height:105px;resize:vertical}.form-foot{display:flex;justify-content:space-between;align-items:center}.form-foot button{border:0;background:var(--blue);color:#fff;border-radius:7px;padding:10px 17px;cursor:pointer}.comment{display:grid;grid-template-columns:38px 1fr;gap:12px;border-top:1px solid var(--line);padding:19px 0}.comment .avatar{width:36px;height:36px;font-size:11px}.comment-head{display:flex;justify-content:space-between;font-size:12px}.comment-head time{color:var(--muted);font-size:9px}.comment p{font-size:12px;line-height:1.7}.like-btn{border:0;background:transparent;color:var(--muted);padding:0;cursor:pointer;font-size:11px}#toast{position:fixed;left:50%;bottom:28px;transform:translate(-50%,15px);background:#222;color:white;border-radius:8px;padding:10px 16px;font-size:11px;opacity:0;transition:.2s;z-index:99}#toast.show{opacity:1;transform:translate(-50%,0)}
@media(max-width:800px){.topbar nav{display:none;position:absolute;top:68px;left:0;right:0;height:auto;background:var(--surface);border-bottom:1px solid var(--line);padding:10px 24px;flex-direction:column;gap:0}.topbar nav.open{display:flex}.topbar nav a{padding:13px 0}.topbar nav a.active:after{display:none}#menuBtn{display:block}.actions em{display:none}.page{padding:32px 16px 65px}.page-title{padding:27px 24px}.planet{font-size:70px}.layout{grid-template-columns:1fr}aside{display:grid;grid-template-columns:1fr 1fr;gap:12px}.side-card{margin:0}.author-card{grid-column:1/-1}.post-item{padding:22px 20px}.project-grid{grid-template-columns:1fr}.friend-grid{grid-template-columns:1fr}.about-box{grid-template-columns:1fr;padding:28px}.form-row{grid-template-columns:1fr}footer{margin:0 16px;padding:30px 0}.comment-heading>p{display:none}}@media(max-width:470px){aside{grid-template-columns:1fr}.page-title .planet{display:none}.feed-head{align-items:flex-start;gap:8px;flex-direction:column}.post-bottom{align-items:flex-end}.post-bottom .tags{flex-wrap:wrap}.topbar .logo{margin-right:0}}

/* Mobile experience */
html{-webkit-text-size-adjust:100%}[hidden]{display:none!important}body{overflow-wrap:anywhere}body.nav-open{overflow:hidden}button,a{-webkit-tap-highlight-color:transparent}button{touch-action:manipulation}#navBackdrop{display:none}#toTop{bottom:calc(25px + env(safe-area-inset-bottom))}#toast{bottom:calc(28px + env(safe-area-inset-bottom))}
@media(max-width:800px){
  .topbar{height:60px}.nav-wrap{padding:0 16px}.logo{margin-right:0}.logo-mark{width:30px;height:30px}
  .topbar nav{display:flex;position:fixed;z-index:32;top:0;right:0;bottom:0;left:auto;width:min(82vw,330px);height:100dvh;background:var(--surface);padding:82px 22px max(24px,env(safe-area-inset-bottom));flex-direction:column;gap:4px;border:0;box-shadow:-18px 0 45px #12172225;transform:translateX(105%);transition:transform .28s cubic-bezier(.22,.8,.25,1)}
  .topbar nav.open{display:flex;transform:translateX(0)}.topbar nav a{height:auto;min-height:50px;padding:0 15px;border-radius:10px;font-size:15px}.topbar nav a.active{background:var(--soft);color:var(--blue)}.topbar nav a.active:after{display:none}
  #navBackdrop{display:block;position:fixed;z-index:19;inset:0;background:#11172266;opacity:0;visibility:hidden;transition:.25s;backdrop-filter:blur(2px)}body.nav-open #navBackdrop{opacity:1;visibility:visible}
  #menuBtn{display:block;position:relative;z-index:34;min-width:38px}.actions em{display:none}.actions button{min-width:38px;height:38px;padding:0}
  .page{padding:26px 14px 60px}.page-title{padding:25px 22px;margin-bottom:18px;border-radius:14px}.page-title h1{font-size:25px}.planet{font-size:68px}.layout{grid-template-columns:1fr;gap:18px}
  aside{display:grid;grid-template-columns:1fr 1fr;gap:12px}.side-card{margin:0}.author-card{grid-column:1/-1}.post-item{padding:21px 18px}.post-item h2{font-size:17px}.post-item>p{-webkit-line-clamp:3;font-size:13px}.post-list{border-radius:12px}.post-bottom time{white-space:nowrap}.pagination button{width:40px;height:40px}
  .project-grid{grid-template-columns:1fr}.project-grid article{padding:22px}.friend-grid{grid-template-columns:1fr}.about-box{grid-template-columns:1fr;padding:26px}.big-avatar{margin-left:0}.form-row{grid-template-columns:1fr}.form-foot button{min-height:44px}
  footer{margin:0 16px;padding:30px 0 max(30px,env(safe-area-inset-bottom));grid-template-columns:1fr}.footer-links{grid-row:2;flex-wrap:wrap}footer>small{grid-row:3}
  dialog{margin:auto 0 0;width:100%!important;max-width:none!important;border-radius:18px 18px 0 0;border-bottom:0;max-height:92dvh}.article-dialog{height:94dvh;max-height:94dvh}.article-close{top:10px;margin:10px}.article-body{padding:58px 21px 42px}.article-body h1{font-size:27px}.article-body .lead{font-size:15px}.article-text{font-size:15px}.code{margin-inline:-5px;font-size:11px;-webkit-overflow-scrolling:touch}.comments{padding:38px 20px max(35px,env(safe-area-inset-bottom))}.comment{grid-template-columns:34px 1fr}.comment .avatar{width:32px;height:32px}
  #searchDialog{padding:20px 18px max(20px,env(safe-area-inset-bottom))}.search-box input,input,textarea{font-size:16px}input,textarea{min-height:44px}textarea{min-height:120px}#toTop{right:14px;width:42px;height:42px}
}
@media(max-width:470px){
  aside{grid-template-columns:1fr}.page-title .planet{display:none}.feed-head{align-items:flex-start;gap:8px;flex-direction:column;width:100%}#filters{display:flex;width:100%;overflow-x:auto;scrollbar-width:none}#filters::-webkit-scrollbar{display:none}#filters button{flex:0 0 auto;min-height:36px;padding:7px 11px}
  .post-bottom{align-items:flex-end}.post-bottom .tags{flex-wrap:wrap}.post-bottom .tags span:nth-child(n+3){display:none}.page-title{padding:23px 19px}.inner-title{padding:25px 8px 32px}.inner-title h1{font-size:27px}.apply-card{padding:25px 18px}
}
@media(max-width:350px){.logo strong{display:none}.post-bottom time{display:none}.actions{gap:2px}.page{padding-inline:10px}}
@media(hover:none){.post-item:hover{background:var(--surface)}.post-item:hover h2 a{background-size:0 1px;color:inherit}}

/* Authentication */
.auth-btn.logged-in{color:var(--blue);background:var(--soft)}.auth-dialog{width:min(430px,92vw);padding:26px}.auth-dialog .dialog-title{align-items:flex-start}.auth-dialog .dialog-title small{color:var(--blue);font-size:9px;letter-spacing:.16em}.auth-dialog .dialog-title h2{margin:5px 0 0;font-size:23px}.auth-tabs{display:grid;grid-template-columns:1fr 1fr;background:var(--bg);border-radius:9px;padding:4px;margin:24px 0 20px}.auth-tabs button{border:0;background:transparent;color:var(--muted);height:36px;border-radius:7px;cursor:pointer}.auth-tabs button.active{background:var(--surface);color:var(--text);box-shadow:0 2px 8px #17203312}.auth-dialog label{margin-bottom:14px}.primary-btn,.danger-button{width:100%;height:43px;border:0;border-radius:8px;cursor:pointer}.primary-btn{background:var(--blue);color:#fff;margin-top:3px}.primary-btn:disabled{opacity:.55;cursor:wait}.text-button{border:0;background:transparent;color:var(--blue);font-size:11px;display:block;margin:15px auto;cursor:pointer}.auth-note{text-align:center;color:var(--muted);font-size:9px;line-height:1.7}.user-profile{display:flex;align-items:center;gap:13px;background:var(--bg);padding:17px;border-radius:11px;margin:25px 0}.user-profile .avatar{margin:0;width:43px;height:43px}.user-profile>div:last-child{display:grid;gap:4px}.user-profile small{color:var(--muted);font-size:10px}.danger-button{background:#fff0f0;color:#d64a4a}.dark .danger-button{background:#392526;color:#ff8a8a}.comment-login-tip{background:var(--surface);border:1px dashed var(--line);border-radius:9px;padding:16px;text-align:center;color:var(--muted);font-size:11px;margin:24px 0}.comment-login-tip button{border:0;background:transparent;color:var(--blue);cursor:pointer}.comments.login-required #commentForm{display:none}.comment-delete{border:0;background:transparent;color:#d56b6b;font-size:10px;cursor:pointer;margin-left:12px}
@media(max-width:800px){.auth-dialog{padding:23px 18px max(24px,env(safe-area-inset-bottom))}.auth-tabs button{min-height:40px}.auth-btn em{display:none}}
.password-input{position:relative;margin-top:7px}.password-input input{margin-top:0;padding-right:58px}.password-input button{position:absolute;right:5px;top:50%;transform:translateY(-50%);border:0;background:transparent;color:var(--blue);font-size:10px;padding:8px;cursor:pointer}.form-message{border-radius:7px;padding:10px 11px;margin:2px 0 12px;font-size:11px;line-height:1.6}.form-message.error{background:#fff0f0;color:#bd3f49}.form-message.success{background:#eaf8ef;color:#23834d}.dark .form-message.error{background:#392426;color:#ff999f}.dark .form-message.success{background:#1d3528;color:#79d59e}.recovery-intro{color:var(--muted);font-size:12px;line-height:1.7;margin:24px 0 18px}#authRecovery .primary-btn{margin-top:4px}.auth-dialog input:focus{border-color:var(--blue);box-shadow:0 0 0 3px color-mix(in srgb,var(--blue) 13%,transparent)}

/* Writing dashboard */
.admin-page{max-width:1220px}.admin-header{display:flex;align-items:flex-end;justify-content:space-between;margin-bottom:25px}.admin-header small,.editor-top small{color:var(--blue);font-size:9px;letter-spacing:.18em;font-weight:700}.admin-header h1{font-size:30px;margin:8px 0}.admin-header p{color:var(--muted);font-size:13px;margin:0}.admin-header>.primary-btn{width:auto;padding:0 18px}.admin-gate{max-width:430px;margin:70px auto;text-align:center;background:var(--surface);border:1px solid var(--line);border-radius:15px;padding:42px}.admin-gate .project-icon{margin:auto}.admin-gate h2{font-size:18px}.admin-gate p{color:var(--muted);font-size:12px}.admin-gate .primary-btn{width:auto;padding:0 25px}.admin-layout{display:grid;grid-template-columns:265px minmax(0,1fr);gap:18px;align-items:start}.admin-posts,.post-editor{background:var(--surface);border:1px solid var(--line);border-radius:14px}.admin-posts{position:sticky;top:84px;max-height:calc(100vh - 105px);overflow:auto}.admin-list-head{position:sticky;top:0;background:var(--surface);display:flex;align-items:center;justify-content:space-between;padding:17px;border-bottom:1px solid var(--line);z-index:1}.admin-list-head strong{font-size:12px}.admin-list-head button{border:0;background:transparent;color:var(--muted);cursor:pointer}.admin-list-item{padding:14px 16px;border-bottom:1px solid var(--line);cursor:pointer}.admin-list-item:hover,.admin-list-item.active{background:var(--soft)}.admin-list-item strong{display:block;font-size:12px;line-height:1.5;margin-bottom:6px}.admin-list-item div{display:flex;justify-content:space-between;color:var(--muted);font-size:9px}.status-badge{padding:3px 6px;border-radius:4px;background:#f1f2f4}.status-badge.published{background:#e7f8ef;color:#25824e}.dark .status-badge{background:#292d31}.dark .status-badge.published{background:#20372b;color:#75d09a}.post-editor{padding:25px}.editor-top{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:22px}.editor-top h2{font-size:20px;margin:6px 0}.editor-top #saveState{font-size:10px;color:var(--muted)}.post-editor label>small{float:right}.post-editor textarea{line-height:1.7}.post-editor textarea[name=description],.post-editor textarea[name=lead]{height:85px;min-height:85px}.post-editor .body-editor{min-height:390px;font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:13px;tab-size:2}.form-row.three{grid-template-columns:1fr 1.3fr .7fr}.editor-actions{display:flex;align-items:flex-end;justify-content:space-between;margin-top:15px}.editor-actions>div{display:flex;gap:8px}.editor-actions .primary-btn,.editor-actions .danger-button{width:auto;padding:0 18px}.secondary-btn{height:43px;padding:0 16px;border:1px solid var(--line);background:var(--surface);color:var(--text);border-radius:8px;cursor:pointer}.status-select{margin:0}.status-select select{display:block;margin-top:7px;border:1px solid var(--line);background:var(--surface);color:var(--text);border-radius:8px;padding:9px 30px 9px 10px}
@media(max-width:900px){.admin-layout{grid-template-columns:1fr}.admin-posts{position:static;max-height:280px}.form-row.three{grid-template-columns:1fr 1fr}.form-row.three label:last-child{grid-column:1/-1}}
@media(max-width:600px){.admin-header{align-items:flex-start;gap:18px;flex-direction:column}.admin-header>.primary-btn{min-height:44px}.post-editor{padding:18px}.form-row.three{grid-template-columns:1fr}.form-row.three label:last-child{grid-column:auto}.editor-actions{align-items:stretch;flex-direction:column;gap:14px}.editor-actions>div{display:grid;grid-template-columns:1fr 1fr}.editor-actions .primary-btn{grid-column:1/-1}.post-editor label>small{float:none;display:block;margin-top:4px}.post-editor .body-editor{min-height:55vh}}

/* Motion system */
:root{--ease-out:cubic-bezier(.22,.75,.2,1);--ease-spring:cubic-bezier(.2,.9,.25,1.08)}
.page.active{animation:pageFallback .28s var(--ease-out) both;will-change:opacity,transform}
.theme-switching,.theme-switching .topbar,.theme-switching .page-title,.theme-switching .side-card,.theme-switching .post-list,.theme-switching .post-editor,.theme-switching .admin-posts{transition:background-color .2s ease,color .2s ease,border-color .2s ease}

@keyframes pageFallback{from{opacity:0;transform:translateY(9px)}to{opacity:1;transform:none}}
@keyframes dialogIn{from{opacity:0;transform:translateY(14px) scale(.99)}to{opacity:1;transform:none}}
@keyframes dialogOut{from{opacity:1;transform:none}to{opacity:0;transform:translateY(8px) scale(.995)}}
@keyframes backdropIn{from{background:#10131a00}to{background:#10131a80}}
@keyframes backdropOut{to{background:#10131a00}}
@keyframes listItemIn{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}
@keyframes softPop{0%{transform:scale(.93);opacity:.4}100%{transform:scale(1);opacity:1}}

dialog::backdrop{backdrop-filter:none}
dialog[open]{animation:dialogIn .24s var(--ease-out) both;will-change:opacity,transform}
dialog[open]::backdrop{animation:backdropIn .16s ease both}
dialog[open].dialog-closing{animation:dialogOut .14s ease both}
dialog[open].dialog-closing::backdrop{animation:backdropOut .14s ease both}
.post-list.is-refreshing .post-item{animation:listItemIn .3s var(--ease-out) both}
.post-list.is-refreshing .post-item:nth-child(2){animation-delay:45ms}.post-list.is-refreshing .post-item:nth-child(3){animation-delay:90ms}.post-list.is-refreshing .post-item:nth-child(4){animation-delay:135ms}
.page.active .project-grid article,.page.active .friend-grid>a{animation:listItemIn .32s var(--ease-out) both}
.page.active .project-grid article:nth-child(2),.page.active .friend-grid>a:nth-child(2){animation-delay:60ms}.page.active .project-grid article:nth-child(3),.page.active .friend-grid>a:nth-child(3){animation-delay:120ms}.page.active .friend-grid>a:nth-child(4){animation-delay:180ms}
.admin-list-item{animation:listItemIn .3s var(--ease-out) both}.comment{animation:listItemIn .35s var(--ease-out) both}.comment:nth-child(2){animation-delay:45ms}.comment:nth-child(3){animation-delay:90ms}
.auth-tabs button,.filters button,.tag-cloud button,.pagination button,.actions button,.primary-btn,.secondary-btn,.danger-button,.like-btn,.friend-grid>a,.project-grid article{transition:transform .22s var(--ease-out),color .22s ease,background-color .22s ease,border-color .22s ease,box-shadow .22s ease}
.primary-btn:not(:disabled):hover,.secondary-btn:hover{transform:translateY(-2px);box-shadow:0 7px 18px #5277ff25}.primary-btn:not(:disabled):active,.secondary-btn:active{transform:translateY(0) scale(.98)}
.actions button:hover,.filters button:hover,.tag-cloud button:hover,.pagination button:hover{transform:translateY(-1px)}.like-btn:active{transform:scale(1.18)}
#adminQuickBtn{color:var(--blue);background:var(--soft)}#adminQuickBtn span{font-size:15px}#adminQuickBtn:hover{box-shadow:0 5px 14px #5277ff20}
.project-grid article:hover,.friend-grid>a:hover{transform:translateY(-4px);box-shadow:var(--shadow)}.logo-mark{transition:transform .35s var(--ease-spring),box-shadow .3s ease}.logo:hover .logo-mark{transform:rotate(-7deg) scale(1.08);box-shadow:0 9px 20px #5873ee70}
.status-dot{animation:statusPulse 2.2s ease-in-out infinite}@keyframes statusPulse{50%{box-shadow:0 0 0 8px #2fcf7508;transform:scale(.92)}}
.motion-ready .page-title .planet{animation:softPop .7s var(--ease-spring) both}.article-dialog[open] .article-meta{animation:listItemIn .38s .08s var(--ease-out) both}.article-dialog[open] .article-body h1{animation:listItemIn .42s .13s var(--ease-out) both}.article-dialog[open] .lead{animation:listItemIn .42s .18s var(--ease-out) both}

@media(max-width:800px){
  @keyframes dialogIn{from{opacity:0;transform:translateY(100%)}to{opacity:1;transform:none}}
  @keyframes dialogOut{to{opacity:0;transform:translateY(40%)}}
}
@media(prefers-reduced-motion:reduce){
  html{scroll-behavior:auto!important}*,*::before,*::after{animation-duration:.01ms!important;animation-delay:0ms!important;transition-duration:.01ms!important;scroll-behavior:auto!important}
}
