.brand-name{font-family:"Microsoft YaHei",sans-serif;font-size:24px;font-weight:900;letter-spacing:-1px;white-space:nowrap}.service{margin:24px 6px 0;padding-top:20px;border-top:1px solid #deded8;text-align:center}.service img{display:block;width:126px;max-width:100%;margin:auto;border-radius:8px}.service p{font-size:13px;color:#777;margin:10px 0}.card[data-link]{cursor:pointer}.brand{cursor:pointer}.gallery-shell{width:min(1600px,calc(100% - 96px));margin:auto;padding:42px 0 80px}.page-heading{display:flex;justify-content:space-between;align-items:end;margin-bottom:30px}.page-heading h1{font-size:40px;margin:14px 0 8px;letter-spacing:-1.5px}.page-heading p{color:#777;margin:0}.pill{border:1px solid #ddd;background:transparent;padding:10px 18px;border-radius:999px;cursor:pointer;font:inherit;color:inherit;text-decoration:none}.pill:hover,.pill.active{background:#171717;color:#fff;border-color:#171717}.filters{display:flex;gap:8px;flex-wrap:wrap;margin:22px 0}.masonry{columns:3;column-gap:20px}.asset-tile{position:relative;break-inside:avoid;margin:0 0 20px;overflow:hidden;border-radius:20px;background:#17191f;cursor:zoom-in}.asset-tile img{display:block;width:100%;object-fit:cover;transition:transform .5s}.asset-tile:hover img{transform:scale(1.035)}.asset-tile:nth-child(3n+1) img{aspect-ratio:3/4}.asset-tile:nth-child(3n+2) img{aspect-ratio:4/3}.asset-tile:nth-child(3n) img{aspect-ratio:1}.prompt-bar{position:absolute;bottom:0;left:0;right:0;display:flex;align-items:end;gap:14px;padding:44px 18px 18px;background:linear-gradient(transparent,rgba(0,0,0,.88));color:#fff;transform:translateY(100%);transition:transform .3s}.asset-tile:hover .prompt-bar,.asset-tile:focus-within .prompt-bar{transform:none}.prompt-bar p{flex:1;margin:0;font-size:14px;line-height:1.5;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.copy{flex:none;border:0;border-radius:999px;padding:8px 12px;background:#fff;color:#111;cursor:pointer}.asset-label{position:absolute;top:14px;left:14px;padding:5px 10px;border-radius:999px;background:#0008;color:#fff;font-size:12px}.tutorial-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}.lesson{padding:0;text-align:left;border:1px solid #deded8;border-radius:20px;background:#fff;overflow:hidden;cursor:pointer;color:#111;font:inherit}.lesson-cover{position:relative;aspect-ratio:16/10;background:#17191f;overflow:hidden}.lesson-cover img{width:100%;height:100%;object-fit:cover;transition:.4s}.lesson:hover img{transform:scale(1.04)}.lesson-cover span{position:absolute;bottom:15px;left:15px;background:#fff;color:#111;border-radius:50%;width:40px;height:40px;display:grid;place-items:center}.lesson-info{padding:18px}.lesson h2{font-size:18px;margin:0 0 8px}.lesson p{margin:0;color:#777;font-size:14px}dialog.viewer{border:0;max-width:calc(100vw - 24px);max-height:94svh;width:min(1120px,94vw);padding:0;border-radius:20px;background:#111;color:#fff;overflow:auto}dialog.viewer::backdrop{background:rgba(0,0,0,.85);backdrop-filter:blur(8px)}.viewer-head{display:flex;align-items:center;justify-content:space-between;padding:16px 22px;gap:20px}.viewer-head h2{margin:0;font-size:20px}.close-viewer{background:#ffffff1a;color:#fff;border:0;border-radius:50%;width:38px;height:38px;cursor:pointer;font-size:24px}.viewer-image{display:block;width:100%;max-height:68svh;object-fit:contain;background:#090909}.viewer video{display:block;width:100%;max-height:68svh;background:#000}.viewer-bottom{padding:18px 22px;display:flex;align-items:center;justify-content:space-between;gap:20px}.viewer-bottom p{margin:0;color:#bbb;font-size:14px;flex:1}.viewer .pill{color:#fff;border-color:#555}.viewer .pill:hover{background:#fff;color:#111}.video-nav{display:flex;justify-content:space-between;padding:18px 22px;gap:12px}.video-nav span{align-self:center;color:#999;font-size:14px}.demo-notice{font-size:13px!important;color:#888;margin-top:12px!important}.toast{position:fixed;z-index:1000;bottom:28px;left:50%;transform:translateX(-50%);background:#171717;color:#fff;padding:12px 22px;border-radius:999px;box-shadow:0 8px 25px #0003}.toast:empty{display:none}@media(max-width:1000px){.masonry{columns:2}.tutorial-grid{grid-template-columns:repeat(2,1fr)}}@media(max-width:620px){.gallery-shell{width:calc(100% - 28px);padding-top:24px}.page-heading{display:block}.page-heading h1{font-size:32px}.masonry{columns:1}.tutorial-grid{grid-template-columns:1fr}.prompt-bar{transform:none}.viewer-bottom{flex-wrap:wrap}.viewer-head h2{font-size:16px}.brand-name{font-size:20px}}
.tutorial-viewer{width:min(1380px,96vw)!important}.player-layout{display:grid;grid-template-columns:minmax(0,1fr) 320px;min-height:480px}.player-screen{background:#000;display:flex;align-items:center;min-width:0}.player-screen video{max-height:84svh}.player-sidebar{padding:22px;background:#1c1c1c;overflow:auto}.playlist-heading{display:flex;align-items:center;justify-content:space-between;gap:16px;color:#999;font-size:14px}.player-sidebar h2{font-size:23px;line-height:1.5;margin:24px 0 10px}.playlist-caption{color:#888;font-size:13px;margin:0 0 24px}.playlist-item{display:flex;width:100%;align-items:flex-start;gap:12px;margin-bottom:8px;padding:15px 13px;text-align:left;background:transparent;color:#aaa;border:0;border-radius:12px;cursor:pointer;font:inherit;font-size:14px;line-height:1.6;transition:background .2s,color .2s}.playlist-item span:first-child{color:#777;font-size:12px;line-height:22px}.playlist-item:hover{background:#303030;color:#fff}.playlist-item.active{background:#fff;color:#111}.playlist-item.active span:first-child{color:#666}@media(max-width:800px){.player-layout{grid-template-columns:1fr;min-height:0}.player-sidebar{padding:18px}.player-sidebar h2{margin:12px 0;font-size:20px}.player-screen video{max-height:52svh}.playlist-caption{margin-bottom:12px}}
/* Shared sign-in interaction across home and inner pages. */
.topbar .brand .brand-logo{display:block;width:112px;height:auto;filter:brightness(0)}
body:has(.hero-video) .topbar .brand .brand-logo,body:has(.backdrop) .topbar .brand .brand-logo{filter:brightness(0) invert(1)}
@media(max-width:760px){.topbar .brand .brand-logo{width:94px}}
.topbar .login{background-color:#171717;background-image:linear-gradient(#fff,#fff);background-repeat:no-repeat;background-position:left center;background-size:0 100%;border:1px solid #171717;color:#fff;transition:color .25s cubic-bezier(.2,.8,.2,1),background-size .3s cubic-bezier(.2,.8,.2,1),border-color .25s;transform:none}
.topbar .login:hover,.topbar .login:focus-visible{background-color:#171717;background-image:linear-gradient(#fff,#fff);background-size:100% 100%;border-color:#fff;color:#111;transform:none;outline:none}
body:has(.hero-video) .topbar .login,body:has(.backdrop) .topbar .login{background-color:#fff;background-image:linear-gradient(#111,#111);border-color:#fff;color:#111}
body:has(.hero-video) .topbar .login:hover,body:has(.hero-video) .topbar .login:focus-visible,body:has(.backdrop) .topbar .login:hover,body:has(.backdrop) .topbar .login:focus-visible{background-color:#fff;background-image:linear-gradient(#111,#111);background-size:100% 100%;border-color:#111;color:#fff;outline:none}
@media(prefers-reduced-motion:reduce){.topbar .login{transition:none}}
.large-image-frame{position:relative}.image-copy-success{position:absolute;z-index:10;left:50%;top:50%;transform:translate(-50%,-50%);display:flex;align-items:center;gap:10px;padding:14px 20px;border-radius:14px;background:rgba(17,17,17,.88);color:#fff;font-size:15px;font-weight:600;white-space:nowrap;pointer-events:none;backdrop-filter:blur(12px);box-shadow:0 8px 28px #0003}.image-copy-success svg{width:24px;height:24px;flex:none;color:#fff}
dialog.asset-viewer{width:100vw;max-width:100vw;height:100svh;max-height:100svh;margin:0;border-radius:0;background:#0b0d0f;overflow:hidden}.asset-browser{display:grid;grid-template-columns:minmax(0,1fr) 350px 88px;height:100%;min-height:0}.asset-stage{position:relative;display:flex;align-items:center;justify-content:center;min-width:0;min-height:0;padding:20px 50px;background:radial-gradient(ellipse at center,#171b1f,#0b0d0f 75%)}.asset-stage>.close-viewer{position:absolute;z-index:20;top:14px;right:14px;background:transparent;font-size:30px}.asset-stage .large-image-frame{display:flex;align-items:center;justify-content:center;max-width:100%;max-height:100%;min-height:0}.asset-stage .viewer-image{width:auto;height:auto;max-width:100%;max-height:calc(100svh - 40px);object-fit:contain;background:transparent;border-radius:10px}.asset-details{display:flex;flex-direction:column;min-height:0;padding:32px 26px;border-left:1px solid #ffffff0a;background:#101214;overflow:auto}.asset-kicker{font-size:12px;color:#81858a}.asset-details h2{font-size:24px;line-height:1.5;margin:18px 0 12px}.asset-type{align-self:flex-start;padding:5px 10px;border-radius:6px;background:#202328;color:#aaa;font-size:12px}.asset-prompt{margin-top:32px;flex:1}.asset-prompt h3{font-size:13px;color:#8e9298;font-weight:500;margin:0 0 12px}.asset-prompt p{font-size:16px;line-height:1.9;color:#ddd;margin:0;white-space:pre-wrap;user-select:text}.asset-actions{display:grid;gap:10px;padding-top:28px;margin-top:32px}.asset-actions .pill{width:100%;text-align:center;border:0;background:#26292e;color:#fff;font-size:14px;font-weight:600;transition:background .25s,color .25s}.asset-actions .pill:first-child{background:#fff;color:#111}.asset-actions .pill:hover{background:#fff;color:#111}.asset-actions .pill:first-child:hover{background:#ddd}.asset-thumbnails{display:flex;flex-direction:column;gap:12px;overflow-y:auto;padding:14px 12px;background:#0b0d0f;scrollbar-width:thin;scrollbar-color:#393939 transparent}.asset-thumbnail{padding:0;flex-shrink:0;width:64px;height:76px;border:2px solid transparent;border-radius:9px;background:#222;overflow:hidden;cursor:pointer;opacity:.55;transition:opacity .2s,border-color .2s}.asset-thumbnail img{width:100%;height:100%;object-fit:cover;display:block}.asset-thumbnail:hover,.asset-thumbnail.active{opacity:1}.asset-thumbnail.active{border-color:#fff}.asset-thumbnail:focus-visible{outline:2px solid #fff;outline-offset:2px}@media(max-width:1000px){.asset-browser{grid-template-columns:minmax(0,1fr) 290px 76px}.asset-stage{padding:24px}.asset-details{padding:26px 20px}.asset-thumbnail{width:52px;height:64px}}@media(max-width:700px){dialog.asset-viewer{overflow:auto}.asset-browser{grid-template-columns:minmax(0,1fr) 68px;grid-template-rows:58svh auto;height:auto;min-height:100%}.asset-stage{grid-column:1;grid-row:1;padding:20px 12px}.asset-stage .viewer-image{max-height:calc(58svh - 40px)}.asset-thumbnails{grid-column:2;grid-row:1;padding:14px 8px}.asset-details{grid-column:1/-1;grid-row:2;border-left:0;border-top:1px solid #ffffff12;padding:24px}.asset-details h2{margin-top:10px}.asset-prompt{margin-top:20px}.asset-actions{grid-template-columns:1fr 1fr;margin-top:20px;padding-top:0}}
/* Large tutorial player, shared by the homepage and tutorial route. */
dialog.viewer.tutorial-viewer{width:86vw!important;max-width:1600px;height:75svh;max-height:82svh;overflow:visible;margin:auto}
.tutorial-viewer .player-layout{height:100%;min-height:0;border-radius:20px;overflow:hidden;grid-template-columns:minmax(0,1fr) 320px}
.tutorial-viewer .player-screen{height:100%;min-height:0}
.tutorial-viewer .player-screen video{width:100%;height:100%;max-height:none;object-fit:contain}
.tutorial-viewer .player-sidebar{min-height:0}
.tutorial-viewer .close-viewer{position:absolute;top:-58px;right:0;width:42px;height:42px;background:rgba(255,255,255,.12);z-index:5}
.tutorial-viewer .close-viewer:hover{background:#fff;color:#111}
@media(max-width:1000px){dialog.viewer.tutorial-viewer{width:92vw!important}.tutorial-viewer .player-layout{grid-template-columns:minmax(0,1fr) 280px}}
@media(max-width:800px){dialog.viewer.tutorial-viewer{height:auto;max-height:80svh;overflow:auto}.tutorial-viewer .player-layout{height:auto;grid-template-columns:1fr}.tutorial-viewer .player-screen{height:auto}.tutorial-viewer .player-screen video{height:auto;max-height:46svh}.tutorial-viewer .close-viewer{position:fixed;top:16px;right:16px}.tutorial-viewer .player-sidebar{max-height:34svh}}
.managed-cover{display:block;width:100%;height:100%;object-fit:cover}.managed-placeholder{height:100%;display:grid;place-items:center;background:#181a20;color:#ddd;font-weight:800;font-size:38px}.managed-empty{padding:32px 20px;color:#888;font-size:15px}.detail-cover{display:block;width:100%;height:100%;object-fit:contain}.detail-placeholder{min-height:420px;display:grid;place-items:center;color:#fff;padding:40px;font-size:28px;text-align:center}.uploaded-asset img{aspect-ratio:auto!important}
/* Uploaded covers share the original homepage frame without stretching. */
#plugins .rail,#skills .rail{grid-auto-flow:row;grid-auto-columns:auto;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;overflow:visible}
#plugins .view-all,#skills .view-all{display:none}
.catalog-sections .card[hidden]{display:none!important}
.catalog-pagination{display:flex;align-items:center;justify-content:center;gap:8px;margin-top:24px}
.catalog-pagination button{padding:9px 15px;border:0;border-radius:999px;background:#eaeae5;color:#666;font:inherit;font-size:13px;cursor:pointer;transition:background .25s,color .25s}
.catalog-pagination button:hover:not(:disabled),.catalog-pagination button.active{background:#171717;color:#fff}
.catalog-pagination button:disabled{opacity:.35;cursor:default}
.service p{line-height:1.7}
@media(max-width:1100px){#plugins .rail,#skills .rail{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:620px){#plugins .rail,#skills .rail{grid-template-columns:1fr}.catalog-pagination{gap:6px;flex-wrap:wrap}}
.catalog-sections .card{transition:transform .5s cubic-bezier(.22,.61,.36,1),border-color .35s ease,background-color .35s ease}
.catalog-sections .card:hover{transform:translateY(-3px)}
@media(prefers-reduced-motion:reduce){.catalog-sections .card{transition:none}.catalog-sections .card:hover{transform:none}}
.rail .cover>.managed-cover,.rail .cover>.managed-placeholder{position:absolute;inset:0;width:100%;height:100%}
/* Detail media never inherits the uploaded file's intrinsic height. */
.skill-route{position:fixed;inset:0;z-index:200;background:#f4f4f1}
.skill-route[aria-busy="true"]{background:transparent;pointer-events:none}
.skill-route iframe{display:block;width:100%;height:100%;border:0;background:#f4f4f1}
.hero:has(>.summary)>.demo{align-self:start;width:100%;height:auto;min-height:0;aspect-ratio:16/9}
.hero:has(>.summary)>.demo>video,.hero:has(>.summary)>.demo>.detail-cover,.hero:has(>.summary)>.demo>.detail-placeholder{position:absolute;inset:0;width:100%;height:100%;min-height:0;max-height:none;object-fit:contain}
.rail.managed-rail{grid-auto-columns:calc((100% - 42px)/4)}
.rail.wide-rail.managed-rail{grid-auto-columns:calc((100% - 28px)/3)}
@media(max-width:1100px){.rail.managed-rail,.rail.wide-rail.managed-rail{grid-auto-columns:minmax(260px,42vw)}}
@media(max-width:760px){.rail.managed-rail,.rail.wide-rail.managed-rail{grid-auto-columns:82vw}}
dialog.auth-dialog{box-sizing:border-box;padding:0;border:0;border-radius:28px;width:min(1180px,94vw);height:min(800px,88svh);max-width:94vw;max-height:88svh;margin:auto;background:#090a0d;color:#fff;overflow:visible;box-shadow:0 30px 100px #0006}
dialog.auth-dialog::backdrop{background:#000b;backdrop-filter:blur(8px)}
.auth-frame{display:block;width:100%;height:100%;border:0;border-radius:inherit;background:#090a0d}
.auth-close{position:absolute;z-index:2;right:14px;top:14px;width:38px;height:38px;display:grid;place-items:center;border:0;border-radius:50%;background:#111b;color:#fff;font:28px/1 sans-serif;cursor:pointer;transition:background .2s,color .2s}
.auth-close:hover,.auth-close:focus-visible{background:#fff;color:#111}
html[data-auth-modal] .topbar{display:none}
html[data-auth-modal] .page{min-height:100svh;padding:42px 40px 24px}
html[data-auth-modal] .auth-wrap{gap:40px}
html[data-auth-modal] .integration{margin-top:18px}
@media(max-width:900px){html[data-auth-modal] .page{padding:52px 24px 24px}html[data-auth-modal] .intro h1{font-size:40px}html[data-auth-modal] .intro{padding:0}html[data-auth-modal] .steps{margin-top:20px}}
@media(max-width:620px){dialog.auth-dialog{width:94vw;height:88svh;border-radius:22px}html[data-auth-modal] .page{padding:56px 14px 20px}html[data-auth-modal] .card{padding:24px 18px}html[data-auth-modal] .qr-frame{width:230px}}
