:root{--ink:#192238;--muted:#717b8e;--line:#e7eaf0;--pink:#f65d92;--blue:#279dd6;--paper:#f6f8fb;--ease:cubic-bezier(.22,1,.36,1);font-family:"Microsoft YaHei","PingFang SC",Arial,sans-serif;color:var(--ink);background:#fff;font-synthesis:none;letter-spacing:0}
*{box-sizing:border-box}body{margin:0;min-width:320px}button,input,textarea,select{font:inherit}button,a,input,select,textarea{-webkit-tap-highlight-color:transparent}a{color:inherit;text-decoration:none}button{cursor:pointer}button:disabled{opacity:.42;cursor:not-allowed}button,input,select,textarea{border-radius:6px}img{display:block;max-width:100%}h1,h2,h3,p{margin:0;overflow-wrap:anywhere}svg{display:block;flex-shrink:0}[data-icon]{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0}[hidden]{display:none!important}:focus-visible{outline:3px solid #76bbed;outline-offset:3px}.sr-only{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.button{display:inline-flex;align-items:center;justify-content:center;gap:9px;padding:11px 18px;min-height:43px;border:1px solid transparent;border-radius:6px;font-size:14px;font-weight:700;white-space:nowrap;transition:background .2s,box-shadow .2s,transform .3s var(--ease)}.button:hover{transform:translateY(-1px)}.primary{color:white;background:var(--pink)}.primary:hover{background:#eb4d84;box-shadow:0 6px 18px #f65d9220}.secondary{background:white;color:var(--ink);border-color:var(--line)}.secondary:hover{background:var(--paper)}.icon-button{width:38px;height:38px;flex:0 0 38px;display:inline-grid;place-items:center;border:1px solid transparent;background:transparent;color:var(--ink);transition:background .2s}.icon-button:hover{background:#e9eef5}.brand{display:flex;align-items:center;gap:11px;color:var(--pink);white-space:nowrap;font-size:21px}.brand-mark{display:grid;grid-template-columns:12px 12px;grid-template-rows:12px 12px;gap:4px}.brand-mark i{border-radius:4px;background:var(--pink)}.brand-mark i:nth-child(2){background:#61bff3}.site-header{position:sticky;top:0;z-index:30;height:76px;border-bottom:1px solid var(--line);background:#fffffff2;backdrop-filter:blur(16px);padding:0 max(24px,calc((100% - 1280px)/2));display:flex;align-items:center;gap:32px}.site-nav{display:flex;align-items:center;justify-content:center;gap:34px;margin:auto;font-size:15px;font-weight:700;white-space:nowrap}.site-nav a{padding:25px 0;position:relative}.site-nav a:hover,.site-nav a.active{color:var(--pink)}.site-nav .active:after{content:"";position:absolute;left:0;right:0;bottom:16px;height:2px;background:var(--pink)}.header-contact{border-radius:30px}.menu-toggle{display:none}.catalog-main{max-width:1280px;width:calc(100% - 64px);margin:auto}.catalog-heading{display:flex;align-items:end;justify-content:space-between;gap:32px;padding:70px 0 44px}.eyebrow{font-size:11px;color:var(--blue);font-weight:800;line-height:1.5}.catalog-heading h1{font-size:48px;line-height:1.2;margin:12px 0 18px;font-weight:800}.catalog-heading h1 span{color:var(--pink);margin-left:4px}.heading-subtitle{font-size:16px;color:var(--muted)}.search-field{display:flex;gap:10px;align-items:center;height:44px;padding:0 14px;background:var(--paper);border:1px solid transparent;border-radius:6px;width:260px;color:var(--muted)}.search-field:focus-within{border-color:#a6cce8;background:white}.search-field input{border:0;background:none;outline:none;width:100%;min-width:0;font-size:14px;color:var(--ink)}.category-nav{display:flex;flex-wrap:wrap;gap:12px;border-bottom:1px solid var(--line);padding-bottom:22px}.filter-button{border:1px solid transparent;display:inline-flex;align-items:center;justify-content:center;gap:9px;min-height:44px;padding:10px 17px;color:#5b6578;background:white;font-size:14px;line-height:1.4;transition:background .2s,color .2s,border-color .2s}.filter-button:hover{background:var(--paper);color:var(--ink)}.filter-button[aria-pressed=true]{background:#eaf6fd;color:#177fbc;border-color:#cbe6f7}.subcategory-nav{display:flex;flex-wrap:wrap;gap:6px;padding:18px 0 2px}.subcategory-nav .filter-button{min-height:34px;padding:7px 12px;font-size:13px}.subcategory-nav .filter-button[aria-pressed=true]{background:#fff1f6;color:#d9497f;border-color:transparent}.case-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:36px 28px;padding-top:32px;min-height:100px}.case-card{display:block;min-width:0;transition:transform .5s var(--ease)}.case-card:hover{transform:translateY(-5px)}.card-visual{position:relative;aspect-ratio:16/10;background:#eef2f7;border-radius:8px;overflow:hidden}.card-visual img{width:100%;height:100%;object-fit:cover;transition:transform .7s var(--ease)}.case-card:hover img{transform:scale(1.035)}.cover-fallback{display:none;padding:24px;font-weight:700;color:var(--muted)}.missing-cover .cover-fallback{display:block}.card-open{position:absolute;right:16px;bottom:16px;width:38px;height:38px;display:grid;place-items:center;background:white;border-radius:50%;box-shadow:0 3px 12px #17233d14;transition:background .2s,color .2s}.case-card:hover .card-open{background:var(--pink);color:white}.card-body{padding:21px 0 0}.card-category{font-size:12px;color:var(--blue);margin-bottom:10px}.card-body h2{font-size:21px;line-height:1.5;margin-bottom:9px}.card-intro{color:var(--muted);font-size:14px;line-height:1.9;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.list-end{display:flex;justify-content:center;margin-top:32px}.empty-state{text-align:center;padding:76px 20px;color:var(--muted)}.empty-state>span{color:#97a7bd;margin-bottom:20px}.empty-state h2{font-size:22px;font-weight:600;margin-bottom:24px;color:var(--ink)}#loading{padding-top:50px;color:var(--muted);text-align:center}.contact-band{display:flex;align-items:center;justify-content:space-between;gap:24px;border-top:1px solid var(--line);margin-top:88px;padding:46px 0 58px}.contact-band h2{font-size:24px;line-height:1.6;margin-top:9px}.site-footer{padding:26px max(24px,calc((100% - 1280px)/2));display:flex;flex-wrap:wrap;align-items:center;gap:24px;background:#f6f8fb;color:var(--muted);font-size:13px}.site-footer>span{margin-right:auto}.back-top{position:fixed;z-index:25;bottom:24px;right:24px;width:44px;height:44px;border-radius:50%;color:white;background:var(--blue);box-shadow:0 6px 20px #279dd630}.back-top:hover{background:#218cc0}.modal-open{overflow:hidden}
.case-dialog{width:min(1540px,calc(100% - 40px));height:min(880px,calc(100dvh - 40px));max-width:none;max-height:none;padding:0;border:0;border-radius:8px;color:var(--ink);box-shadow:0 24px 100px #0f152748;overflow:hidden}.case-dialog::backdrop,.editor::backdrop{background:#111c33a8;backdrop-filter:blur(6px)}.case-dialog[open]{display:flex;flex-direction:column;animation:dialog-in .3s var(--ease)}.dialog-top{display:flex;align-items:center;justify-content:space-between;gap:24px;padding:18px 24px;border-bottom:1px solid var(--line);flex-shrink:0}.preview-category{font-size:11px;color:var(--blue);margin-bottom:5px}.dialog-top h2{font-size:20px;line-height:1.4}.preview-layout{display:grid;grid-template-columns:minmax(0,1fr) 264px;flex:1;min-height:0}.preview-workspace{display:flex;flex-direction:column;min-width:0;min-height:0;background:#f0f3f7}.preview-toolbar{display:flex;align-items:center;gap:8px;padding:10px 16px;border-bottom:1px solid var(--line);background:#fff}.device-switch{display:flex;padding:3px;background:#f1f4f8;border-radius:6px}.device-switch button{display:flex;align-items:center;gap:7px;background:transparent;border:0;padding:7px 12px;font-size:12px;color:var(--muted);border-radius:4px;min-height:34px}.device-switch button[aria-pressed=true]{background:white;box-shadow:0 1px 4px #111c3315;color:var(--blue)}.device-switch svg{width:17px;height:17px}.viewport-size{font-size:11px;color:var(--muted);margin-left:auto;white-space:nowrap}.preview-stage{flex:1;min-height:0;min-width:0;display:flex;align-items:center;justify-content:center;overflow:hidden}.viewport-shell{position:relative;flex:none;background:white;overflow:hidden;border-radius:4px;box-shadow:0 10px 30px #233a5718}.preview-content{border:0;max-width:none;display:block;transform-origin:0 0}.preview-content:is(video,img){object-fit:contain;background:#111722}.preview-status{font-size:11px;text-align:center;color:var(--muted);height:30px;line-height:22px;padding:0 12px;flex-shrink:0}.preview-details{border-left:1px solid var(--line);padding:26px 22px;overflow-y:auto;min-height:0;display:flex;flex-direction:column;gap:14px}.preview-details h3{font-size:14px}.preview-intro{font-size:13px;color:var(--muted);line-height:1.9;white-space:pre-line}.qr-block{margin:auto 0 10px;text-align:center;padding-top:24px}.qr{display:grid;place-items:center;background:#fff;min-height:180px}.qr img,.qr canvas{width:180px;height:180px;object-fit:contain;max-width:100%}.qr-block p{font-size:12px;color:var(--muted);margin-top:12px}.preview-details .button{width:100%;font-size:13px;padding:10px}.notice{position:fixed;bottom:28px;left:50%;transform:translateX(-50%);padding:13px 20px;max-width:calc(100vw - 32px);background:#17233d;color:white;border-radius:6px;z-index:1000;font-size:13px;box-shadow:0 5px 22px #111c3330}.notice.error{background:#a92d4a}@keyframes dialog-in{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}
.admin-body{background:#f6f7f9}.admin-header{height:70px;display:flex;align-items:center;gap:20px;padding:0 32px;background:#fff;border-bottom:1px solid var(--line);font-size:14px}.admin-divider{height:20px;width:1px;background:var(--line)}.header-spacer{flex:1}.text-link{display:inline-flex;align-items:center;gap:7px;font-size:13px;color:var(--muted)}.text-link svg{width:16px;height:16px}.login-view{width:360px;max-width:calc(100% - 40px);margin:12vh auto}.login-view h1{font-size:27px;margin:12px 0 30px}.login-view label{display:grid;gap:9px;margin:18px 0;font-size:14px}.login-view .button{width:100%;margin-top:10px}input:not([type=checkbox],[type=file]),select,textarea{border:1px solid #dce1e9;background:white;padding:11px 12px;min-width:0;max-width:100%;color:var(--ink)}input:focus,select:focus,textarea:focus{outline:2px solid #a2d4ef;outline-offset:1px}.search-field input{border:0;padding:0;background:transparent}.search-field input:focus{outline:0}.admin-main{max-width:1440px;margin:auto;padding:38px 32px}.admin-title{display:flex;justify-content:space-between;align-items:center;gap:16px;margin-bottom:28px}.admin-title h1{font-size:28px;margin-top:8px}.action-row{display:flex;gap:10px}.admin-filters{display:flex;gap:12px;margin-bottom:20px;align-items:center}.admin-filters select{font-size:13px;min-width:150px;height:44px}.admin-filters .search-field{background:white;border-color:#dce1e9;width:320px}.table-wrap{overflow-x:auto;border-top:1px solid var(--line);background:white}table{width:100%;border-collapse:collapse;min-width:900px;font-size:13px;text-align:left}th{font-size:12px;color:var(--muted);font-weight:500;background:#f0f3f7;padding:14px 16px;white-space:nowrap}td{padding:18px 16px;border-bottom:1px solid var(--line)}td small{display:block;margin-top:5px;color:var(--muted)}td:first-child{width:45%}.table-case{display:flex;gap:16px;align-items:center;min-width:0}.table-case strong{font-size:14px}.table-case p{color:var(--muted);font-size:12px;line-height:1.6;margin-top:6px;max-width:380px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.table-cover{flex:0 0 84px;width:84px;height:56px;border-radius:4px;overflow:hidden;background:#eef2f7}.table-cover img{width:100%;height:100%;object-fit:cover}.status-badge{font-size:11px;display:inline-block;white-space:nowrap;padding:5px 8px;background:#eef0f4;color:var(--muted);border-radius:4px}.status-badge.published{color:#148059;background:#e8f5ee}.date-cell{font-size:12px;color:var(--muted);white-space:nowrap}.row-actions{display:flex;gap:2px}.row-actions .icon-button{width:32px;height:32px;flex-basis:32px}.row-actions svg{width:17px;height:17px}.admin-count{font-size:12px;color:var(--muted);margin-top:18px}.session-loading{text-align:center;margin:80px;color:var(--muted)}.editor{width:780px;max-width:calc(100% - 32px);max-height:calc(100dvh - 36px);padding:0;border:0;border-radius:8px;color:var(--ink);overflow:hidden}.editor form{display:flex;flex-direction:column;max-height:calc(100dvh - 36px)}.editor-top{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:16px 24px;border-bottom:1px solid var(--line)}.editor-top h2{font-size:19px}.editor-fields{display:grid;grid-template-columns:1fr 1fr;gap:20px;padding:24px;overflow-y:auto;min-height:0}.field{display:flex;flex-direction:column;gap:9px;min-width:0;font-size:13px}.full{grid-column:1/-1}.field label{font-weight:600}.field input,.field textarea,.field select{width:100%}.field textarea{resize:vertical;min-height:80px}.cover-preview,.qr-preview{height:150px;background:#f6f8fb;border:1px solid var(--line);border-radius:6px;display:flex;align-items:center;justify-content:center;overflow:hidden;color:var(--muted);font-size:12px}.cover-preview img{width:100%;height:100%;object-fit:contain}.qr-preview img,.qr-preview canvas{width:142px;height:142px;object-fit:contain}.upload-button{cursor:pointer}.upload-button:focus-within{outline:3px solid #76bbed;outline-offset:3px}.checkbox-field{display:flex;align-items:center;gap:9px;font-size:14px}.checkbox-field input{accent-color:var(--blue);width:17px;height:17px}.editor-actions{display:flex;gap:10px;align-items:center;padding:16px 24px;border-top:1px solid var(--line);background:#fff;flex-shrink:0}.form-error{color:#b72d53;font-size:13px;line-height:1.7}.form-error:empty{display:none}
@media(min-width:1600px){.catalog-main{max-width:1360px}.case-grid{gap:40px 32px}}
@media(max-width:1100px){.site-header{padding:0 24px;gap:20px}.site-nav{gap:22px}.header-contact{display:none}.site-nav{margin-left:auto;margin-right:0}.category-nav{gap:7px}.filter-button{padding:10px 13px}.preview-layout{grid-template-columns:minmax(0,1fr) 220px}.preview-details{padding:20px 16px}.device-switch button{padding:7px 9px}.preview-toolbar{padding:8px}.viewport-size{display:none}.case-grid{gap:30px 22px}.card-body h2{font-size:19px}}
@media(max-width:767px){.site-header{height:66px;padding:0 20px}.brand{font-size:19px}.menu-toggle{display:inline-grid;margin-left:auto}.site-nav{display:none;position:absolute;top:70px;left:16px;right:16px;padding:8px 16px;background:white;border:1px solid var(--line);box-shadow:0 8px 24px #19223812;border-radius:6px;gap:0}.site-nav.is-open{display:flex;flex-direction:column;align-items:stretch}.site-nav a{padding:14px 8px}.site-nav .active:after{display:none}.catalog-main{width:calc(100% - 40px)}.catalog-heading{padding:38px 0 28px;display:block}.catalog-heading h1{font-size:36px;margin:10px 0 13px}.heading-subtitle{font-size:14px}.catalog-heading .search-field{margin-top:24px;width:100%}.category-nav{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;padding-bottom:18px}.filter-button{font-size:13px;padding:10px 6px;gap:6px;min-width:0}.filter-button svg{width:17px;height:17px}.subcategory-nav{gap:4px}.subcategory-nav .filter-button{font-size:12px;padding:8px 9px}.case-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:28px 16px;padding-top:24px}.card-open{width:30px;height:30px;right:10px;bottom:10px}.card-open svg{width:17px;height:17px}.card-body{padding-top:14px}.card-category{font-size:10px;line-height:1.7;margin-bottom:5px}.card-body h2{font-size:17px;line-height:1.6;margin-bottom:6px}.card-intro{font-size:12px;-webkit-line-clamp:2}.contact-band{margin-top:50px;padding:30px 0 38px;display:block}.contact-band h2{font-size:20px;margin-bottom:20px}.site-footer{padding:24px 20px;gap:12px 20px;font-size:11px}.site-footer>span{flex-basis:100%}.case-dialog{width:calc(100% - 16px);height:calc(100dvh - 16px)}.dialog-top{padding:14px 16px}.dialog-top h2{font-size:17px}.preview-layout{display:flex;flex-direction:column;overflow-y:auto}.preview-workspace{min-height:420px;flex:1;flex-shrink:0}.preview-details{border-left:0;border-top:1px solid var(--line);display:block;overflow:visible}.preview-details .button{width:auto;display:inline-flex;margin:12px 8px 0 0}.qr-block{display:none}.preview-intro{margin-top:8px}.admin-header{padding:0 16px;gap:12px}.admin-header .brand{font-size:16px}.admin-header .text-link{font-size:12px}.admin-main{padding:28px 16px}.admin-title{align-items:end}.admin-title h1{font-size:24px}.action-row .button{padding:9px 11px;font-size:12px}.admin-filters{flex-wrap:wrap;gap:8px}.admin-filters .search-field{width:100%}.admin-filters select{min-width:0;flex:1}.editor-fields{padding:18px;gap:16px}.editor-top,.editor-actions{padding:12px 18px}.editor-actions .button{font-size:12px;padding:10px}.editor{max-width:calc(100% - 16px)}.login-view{margin-top:9vh}.admin-divider{display:none}.admin-header>.brand+span+span{font-size:12px}}
@media(max-width:440px){.case-grid{grid-template-columns:1fr;gap:32px}.card-body h2{font-size:20px}.card-intro{font-size:14px}.card-category{font-size:12px}.editor-fields{grid-template-columns:1fr}.preview-toolbar{gap:3px}.device-switch button{font-size:11px;padding:7px}.preview-toolbar>.icon-button{width:32px;flex-basis:32px}.admin-header>.brand+span+span{display:none}.contact-band h2{font-size:19px}.brand-mark{grid-template-columns:10px 10px;grid-template-rows:10px 10px}.category-nav .filter-button{font-size:12px;gap:5px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;animation:none!important;transition:none!important}.case-card:hover,.case-card:hover img,.button:hover{transform:none}}
