
:root{
  color-scheme:dark;
  --bg:#08090b;--panel:#111215;--panel2:#16171b;--line:#2a2b30;--line2:#3a3b41;
  --muted:#9c9da6;--white:#f7f7f8;--accent:#d2ff3d;--danger:#ff6b6b;
  --ease:cubic-bezier(.2,.7,.1,1);
}
*{box-sizing:border-box}
html{scroll-behavior:smooth;overflow-x:hidden}
body{margin:0;background:var(--bg);color:var(--white);font:14px/1.6 Inter,Arial,'Noto Sans SC',sans-serif;-webkit-font-smoothing:antialiased}
button,input,textarea,select{font:inherit}
button{cursor:pointer}
a{color:inherit;text-decoration:none}
::selection{background:var(--accent);color:#000}
:focus-visible{outline:2px solid var(--accent);outline-offset:3px}
.shell{width:min(1200px,calc(100% - 32px));margin:auto}

/* ---------- 顶部 ---------- */
#progress{position:fixed;left:0;top:0;height:2px;width:0;background:var(--accent);z-index:60;transition:width .1s linear}
.top{position:sticky;top:0;z-index:40;display:flex;justify-content:space-between;align-items:center;padding:22px 0;gap:18px;transition:padding .3s var(--ease),transform .6s var(--ease)}
.top:before{content:'';position:absolute;top:0;bottom:0;left:calc(50% - 50vw);right:calc(50% - 50vw);background:#08090bcc;backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);opacity:0;transition:opacity .3s;z-index:-1;border-bottom:1px solid var(--line)}
.top.scrolled{padding:12px 0}
.top.hide{transform:translateY(-110%)}
.top.scrolled:before{opacity:1}
.logo{font-size:28px;font-weight:850;letter-spacing:-2px;display:inline-flex}
.logo sup{font-size:12px;margin-top:6px}
.logo:hover .seven{animation:spin .7s var(--ease)}
.seven{display:inline-block}
@keyframes spin{to{transform:rotateY(360deg)}}
.nav{display:flex;align-items:center;gap:26px;flex-wrap:wrap}
.nav a{font-size:11px;letter-spacing:1.3px;color:#999;position:relative;padding:4px 0;transition:color .2s}
.nav a:after{content:'';position:absolute;left:0;right:0;bottom:-2px;height:1px;background:currentColor;transform:scaleX(0);transform-origin:right;transition:transform .35s var(--ease)}
.nav a:hover:after,.nav a.active:after{transform:scaleX(1);transform-origin:left}
.nav a.active,.nav a:hover{color:#fff}
.clock{font-variant-numeric:tabular-nums}
.conditions{display:inline-flex;align-items:center;gap:12px;white-space:nowrap}
.weather{border:0;background:transparent;color:var(--muted);font-size:11px;line-height:1.6;padding:4px 0;font-variant-numeric:tabular-nums;white-space:nowrap}
.weather:hover{color:var(--white)}
.weather:disabled{cursor:wait;opacity:.6}
.weather[hidden],.weatherCredit[hidden]{display:none}
.weatherCredit{font-size:10px;margin-left:12px;opacity:.7}
.weatherCredit:hover{opacity:1;text-decoration:underline}

/* ---------- 通用 ---------- */
.panel{background:var(--panel);border-radius:18px;padding:clamp(18px,3.2vw,43px);margin-bottom:24px;min-height:70vh;animation:pageIn .55s var(--ease) both}
@keyframes pageIn{from{opacity:0;transform:translateY(14px)}}
.eyebrow{display:flex;justify-content:space-between;color:#999;letter-spacing:.3px;font-size:11px;gap:16px}
.heroTitle{font-size:clamp(52px,9vw,122px);line-height:.95;letter-spacing:-.075em;font-weight:850;margin:75px 0 24px}
.heroTitle .ln{display:block;overflow:hidden}
.heroTitle .ln span{display:block;animation:rise .9s var(--ease) both}
.heroTitle .ln:nth-child(2) span{animation-delay:.08s}
.heroTitle .ln:nth-child(3) span{animation-delay:.16s}
@keyframes rise{from{transform:translateY(105%)}}
.pageTitle{font-size:clamp(38px,6vw,66px);line-height:1.1;letter-spacing:-.055em;margin:26px 0 13px}
.lead{color:#b2b3ba;max-width:620px}
.heroArt{height:clamp(280px,42vw,560px);border-radius:12px;overflow:hidden;position:relative;margin:38px 0 16px;--mx:0;--my:0;background:#101012}
.heroArt i{position:absolute;inset:-6%;background:radial-gradient(ellipse at 68% 40%,#5b5d63 0%,#1a1a1f 25%,transparent 55%),repeating-linear-gradient(117deg,#111 0 15px,#f5f5f5 16px 18px,#101012 20px 33px);transform:translate(calc(var(--mx)*-18px),calc(var(--my)*-18px)) scale(1.04);transition:transform .6s var(--ease)}
.heroArt:after{content:attr(data-brand);position:absolute;right:4%;bottom:-18%;font-size:clamp(180px,28vw,400px);font-weight:900;letter-spacing:-.16em;color:#ffffff1a;transform:translate(calc(var(--mx)*26px),calc(var(--my)*26px)) rotate(-9deg);transition:transform .6s var(--ease)}
.line{height:1px;background:var(--line);margin:28px 0}
.sectiontop{display:flex;justify-content:space-between;gap:12px;align-items:end}
.sectiontop h2{font-size:clamp(24px,4vw,42px);letter-spacing:-.05em;margin:7px 0 24px}
.muted{color:var(--muted)}
.small{font-size:11px}
.ulink{position:relative}
.ulink:after{content:'';position:absolute;left:0;right:0;bottom:-2px;height:1px;background:currentColor;transform:scaleX(0);transform-origin:right;transition:transform .35s var(--ease)}
.ulink:hover:after{transform:scaleX(1);transform-origin:left}

/* 跑马灯 */
.marquee{overflow:hidden;border-block:1px solid var(--line);padding:16px 0;margin:30px 0;mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent)}
.marquee div{display:flex;gap:42px;width:max-content;animation:mq 28s linear infinite;font-size:clamp(22px,3vw,34px);font-weight:800;letter-spacing:-.04em}
.marquee:hover div{animation-play-state:paused}
.marquee span:nth-child(even){color:transparent;-webkit-text-stroke:1px #777}
@keyframes mq{to{transform:translateX(-50%)}}

/* 按钮 */
.pillrow{display:flex;flex-wrap:wrap;gap:7px;margin:23px 0 13px}
.pill,.action{border-radius:24px;border:1px solid #49494d;background:transparent;color:#ddd;padding:7px 13px;font-size:12px;transition:background .2s,color .2s,border-color .2s,transform .15s;display:inline-flex;align-items:center;gap:6px}
.pill:active,.action:active{transform:scale(.96)}
.pill.active,.pill:hover{background:#f5f5f6;color:#101013;border-color:#f5f5f6}
.pill .n{font-size:10px;opacity:.55;font-variant-numeric:tabular-nums}
.pill.danger:hover{background:var(--danger);border-color:var(--danger);color:#000}
.action{padding:12px 18px;border-color:#666}
.action.primary{background:white;color:#08090b;font-weight:700;border-color:#fff}
.action.primary:hover{background:var(--accent);border-color:var(--accent)}
.action:hover{border-color:#fff}
.action .arr{display:inline-block;transition:transform .3s var(--ease)}
.action:hover .arr{transform:translate(3px,-3px)}

/* ---------- 作品列表工具条 ---------- */
.tools{display:flex;align-items:center;gap:9px;flex-wrap:wrap}
.searchBox{position:relative;flex:1;min-width:200px}
.searchBox .field{padding-right:62px}
.searchBox kbd,.searchBox .clear{position:absolute;right:12px;top:50%;transform:translateY(-50%);font-size:10px;color:#777;border:1px solid #444;border-radius:5px;padding:1px 6px;background:transparent}
.searchBox .clear{color:#ccc;border-radius:50%;width:22px;height:22px;padding:0;display:none}
.searchBox.has .clear{display:block}
.searchBox.has kbd{display:none}
.field{border:1px solid #45464b;background:transparent;color:white;padding:11px 16px;border-radius:25px;outline:0;width:100%;transition:border-color .2s}
.field:focus{border-color:white}
.select{appearance:none;border:1px solid #45464b;background:transparent url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6'%3E%3Cpath d='M1 1l4 4 4-4' fill='none' stroke='%23aaa'/%3E%3C/svg%3E") no-repeat right 14px center;color:#ddd;padding:10px 34px 10px 15px;border-radius:25px;outline:0;font-size:12px}
.select:focus{border-color:#fff}
.select option{background:#151619}
.seg{display:flex;border:1px solid #45464b;border-radius:25px;padding:3px;gap:2px}
.seg button{border:0;background:transparent;color:#999;border-radius:20px;width:36px;height:32px;transition:.2s}
.seg button.active{background:#fff;color:#000}
.activeFilters{display:flex;gap:8px;flex-wrap:wrap;align-items:center;min-height:0;font-size:11px;color:var(--muted);margin-top:12px}
.chip{display:inline-flex;align-items:center;gap:6px;border:1px dashed #555;border-radius:20px;padding:3px 6px 3px 11px;color:#ddd;background:transparent;font-size:11px}
.chip:hover{border-color:#fff}
.chip b{font-weight:400;opacity:.6}

/* ---------- 作品卡片 ---------- */
.workGrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:30px 20px;margin:22px 0 34px}
.workGrid.cols3{grid-template-columns:repeat(3,minmax(0,1fr))}
.workGrid.list{grid-template-columns:1fr;gap:0}
.work{cursor:pointer}
.cover{aspect-ratio:1.32;overflow:hidden;border-radius:6px;background:#222;position:relative}
.cover img,.feature img,.gallery img{display:block;width:100%;height:100%;object-fit:cover;transition:transform .7s var(--ease),filter .5s}
.work:hover .cover img{transform:scale(1.05)}
.cover .badge{position:absolute;left:12px;top:12px;font-size:10px;letter-spacing:.6px;background:#000a;backdrop-filter:blur(6px);padding:3px 9px;border-radius:20px;color:#fff}
.cover .hoverInfo{position:absolute;inset:auto 0 0 0;padding:40px 16px 14px;background:linear-gradient(transparent,#000d);font-size:12px;color:#ddd;transform:translateY(100%);transition:transform .45s var(--ease)}
.work:hover .hoverInfo{transform:none}
.workName{display:flex;justify-content:space-between;font-weight:750;font-size:13px;margin-top:11px}
.workName .arr{transition:transform .3s var(--ease)}
.work:hover .workName .arr{transform:translate(3px,-3px) rotate(0deg);color:var(--accent)}
.workMeta{display:flex;justify-content:space-between;color:#a0a1ad;font-size:12px;margin-top:2px}
mark{background:var(--accent);color:#000;border-radius:2px;padding:0 1px}
/* 列表视图 */
.workGrid.list .work{display:grid;grid-template-columns:56px 1.6fr 1fr 1fr 70px 30px;align-items:center;gap:14px;padding:16px 4px;border-bottom:1px solid var(--line);position:relative}
.workGrid.list .cover{display:none}
.workGrid.list .workName,.workGrid.list .workMeta{display:contents}
.workGrid.list .idx{color:#666;font-size:12px;font-variant-numeric:tabular-nums}
.workGrid.list .workName span:first-child{font-size:clamp(16px,2.2vw,24px);letter-spacing:-.03em;transition:transform .35s var(--ease)}
.workGrid.list .work:hover .workName span:first-child{transform:translateX(8px)}
.workGrid.list .work:hover{background:#18191d}
.workGrid.list .work .loc{color:#888;font-size:12px}
.workGrid.list .work .arr{text-align:right}
.workGrid:not(.list) .idx,.workGrid:not(.list) .loc{display:none}
.workGrid.list .idx{order:0}.workGrid.list .workName span:first-child{order:1}.workGrid.list .ct{order:2}.workGrid.list .loc{order:3}.workGrid.list .yr{order:4}.workGrid.list .arr{order:5}
/* 列表悬停预览 */
#peek{position:fixed;width:260px;aspect-ratio:1.32;border-radius:8px;overflow:hidden;pointer-events:none;z-index:50;opacity:0;transform:translate(-50%,-50%) scale(.85);transition:opacity .25s,transform .35s var(--ease);box-shadow:0 20px 60px #000c}
#peek.on{opacity:1;transform:translate(-50%,-50%) scale(1)}
#peek img{width:100%;height:100%;object-fit:cover}
.empty{padding:60px 0;text-align:center;color:var(--muted)}
.empty b{display:block;font-size:44px;color:#333;letter-spacing:-.05em;margin-bottom:6px}

.foot{display:flex;justify-content:space-between;padding-top:19px;border-top:1px solid var(--line);font-size:11px;gap:12px}
.feature{aspect-ratio:16/8;overflow:hidden;border-radius:8px;background:linear-gradient(120deg,#16161b,#555 50%,#18181b);cursor:zoom-in}
.cols{display:grid;grid-template-columns:1fr 1fr;gap:35px}
.editorial{font-size:clamp(21px,3vw,37px);line-height:1.45;letter-spacing:-.03em;max-width:850px}
.gallery{display:grid;grid-template-columns:repeat(2,1fr);gap:15px}
.gallery>div{background:#242429;border-radius:6px;overflow:hidden;aspect-ratio:4/3;cursor:zoom-in}
.gallery>div:hover img{transform:scale(1.04)}
.service{display:flex;justify-content:space-between;padding:22px 0;border-bottom:1px solid #333;font-size:clamp(18px,3vw,26px);cursor:default;transition:padding .35s var(--ease),color .3s}
.service:hover{padding-left:14px;color:var(--accent)}
.service .arr{transition:transform .35s var(--ease)}
.service:hover .arr{transform:rotate(45deg)}
.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin:26px 0}
.stat{border:1px solid var(--line);border-radius:12px;padding:16px 18px}
.stat b{display:block;font-size:clamp(28px,4vw,44px);letter-spacing:-.05em;line-height:1.1;font-variant-numeric:tabular-nums}
.stat span{font-size:11px;color:var(--muted);letter-spacing:.4px}

/* ---------- 表单 ---------- */
.form{display:grid;gap:15px;max-width:690px}
.form label{font-size:11px;color:#aaa;display:grid;gap:7px;text-transform:uppercase;letter-spacing:.5px}
.form input,.form textarea,.form select{background:#151619;color:white;border:1px solid #45454a;border-radius:8px;padding:12px;width:100%;outline:0;transition:border-color .2s}
.form input:focus,.form textarea:focus,.form select:focus{border-color:#fff}
.form textarea{min-height:135px;resize:vertical}
.form .hint{text-transform:none;letter-spacing:0;color:#666;font-size:11px;justify-self:end;margin-top:-4px}
.notice{padding:12px 15px;border:1px solid #454545;border-radius:8px;color:#bbb;font-size:12px}
.actions{display:flex;gap:10px;flex-wrap:wrap;align-items:center}
.drop{border:1px dashed #555;border-radius:10px;padding:18px;display:grid;place-items:center;gap:6px;text-align:center;color:#999;cursor:pointer;transition:border-color .2s,background .2s;text-transform:none;letter-spacing:0;font-size:12px;position:relative;min-height:120px;overflow:hidden}
.drop:hover,.drop.over{border-color:var(--accent);background:#d2ff3d0a;color:#ddd}
.drop input{position:absolute;inset:0;opacity:0;cursor:pointer}
.drop img{max-height:180px;max-width:100%;border-radius:6px;object-fit:contain}
.thumbs{display:flex;gap:8px;flex-wrap:wrap}
.thumb{position:relative;width:86px;height:66px;border-radius:6px;overflow:hidden;background:#222}
.thumb img{width:100%;height:100%;object-fit:cover}
.thumb button{position:absolute;right:3px;top:3px;width:20px;height:20px;border-radius:50%;border:0;background:#000b;color:#fff;font-size:11px;line-height:1;opacity:0;transition:opacity .2s}
.thumb:hover button{opacity:1}
.editorWrap{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:36px;align-items:start}
.previewCard{position:sticky;top:90px}
.previewCard .work{cursor:default}
.switchRow{display:flex!important;align-items:center;gap:10px;flex-direction:row!important}

.projectMeta{display:flex;justify-content:space-between;gap:15px;border-bottom:1px solid var(--line);padding:12px 6px}
.hidd{display:none!important}
footer{display:flex;justify-content:space-between;color:#777;padding:12px 0 28px;font-size:11px;gap:12px}

/* ---------- 浮层 ---------- */
#toast{position:fixed;bottom:22px;left:50%;background:#eee;color:#111;padding:11px 18px;border-radius:30px;box-shadow:0 10px 35px #0008;z-index:90;transform:translate(-50%,140%);opacity:0;transition:transform .4s var(--ease),opacity .3s;font-size:13px;display:flex;gap:12px;align-items:center}
#toast.on{transform:translate(-50%,0);opacity:1}
#toast button{border:0;background:#111;color:#fff;border-radius:20px;padding:3px 11px;font-size:12px}
.modal{position:fixed;inset:0;background:#000a;backdrop-filter:blur(6px);display:grid;place-items:center;z-index:80;animation:fade .2s both;padding:16px}
.modal .box{background:#17181c;border:1px solid #333;border-radius:14px;padding:26px;max-width:400px;width:100%;animation:pop .3s var(--ease) both}
.modal h3{margin:0 0 8px;font-size:18px;letter-spacing:-.02em}
.modal p{margin:0 0 22px;color:#aaa}
@keyframes fade{from{opacity:0}}
@keyframes pop{from{opacity:0;transform:scale(.94) translateY(8px)}}
.lightbox{position:fixed;inset:0;background:#000e;z-index:85;display:grid;place-items:center;animation:fade .25s both}
.lightbox img{max-width:min(92vw,1400px);max-height:84vh;border-radius:6px;animation:pop .35s var(--ease) both}
.lightbox .lbBtn{position:absolute;top:50%;transform:translateY(-50%);width:48px;height:48px;border-radius:50%;border:1px solid #555;background:#0008;color:#fff;font-size:18px}
.lightbox .lbBtn:hover{border-color:#fff}
.lightbox .prev{left:18px}.lightbox .next{right:18px}
.lightbox .close{position:absolute;top:18px;right:18px;border:1px solid #555;background:transparent;color:#fff;border-radius:20px;padding:6px 14px;font-size:12px}
.lightbox .count{position:absolute;bottom:20px;left:50%;transform:translateX(-50%);color:#aaa;font-size:12px;font-variant-numeric:tabular-nums}
#toTop{position:fixed;right:22px;bottom:22px;width:44px;height:44px;border-radius:50%;border:1px solid #444;background:#111215dd;color:#fff;z-index:30;opacity:0;pointer-events:none;transform:translateY(10px);transition:.3s var(--ease)}
#toTop.on{opacity:1;pointer-events:auto;transform:none}
#toTop:hover{border-color:var(--accent);color:var(--accent)}
.reveal{opacity:0;transform:translateY(26px);transition:opacity .8s var(--ease),transform .8s var(--ease)}
.reveal.in{opacity:1;transform:none}

.urlRow{display:flex;gap:8px}
.urlRow input{flex:1}
.urlRow .action{padding:10px 14px;white-space:nowrap;text-transform:none;letter-spacing:0}
.form .lbl{font-size:11px;color:#aaa;display:grid;gap:7px;text-transform:uppercase;letter-spacing:.5px}
.srcTag{font-size:10px;color:#888;text-transform:none;letter-spacing:0}
.video{aspect-ratio:16/9;border-radius:8px;overflow:hidden;background:#000;margin-top:17px}
.video iframe{width:100%;height:100%;border:0}
/* ---------- Lusion 式动效（只加动效，不改风格） ---------- */
html.lenis,html.lenis body{height:auto}
.lenis.lenis-smooth{scroll-behavior:auto!important}
.lenis.lenis-stopped{overflow:hidden}
/* 加载：计数 000→100 后整块上滑 */
#loader{position:fixed;inset:0;z-index:200;background:#000;color:#fff;transition:transform 1s var(--ease)}
#loader.done{transform:translateY(-100%)}
#loader .bar{position:absolute;left:50%;top:50%;width:130px;height:22px;margin:-11px 0 0 -65px;background:#2a2a2e}
#loader .bar i{display:block;height:100%;width:0;background:#fff;transition:width .2s}
#loader .num{position:absolute;left:0;bottom:-.1em;font-size:clamp(70px,14vw,200px);font-weight:850;letter-spacing:-.06em;line-height:1;font-variant-numeric:tabular-nums}
/* 标题逐词上浮 */
.w{display:inline-block;overflow:hidden;vertical-align:top;padding-bottom:.08em;margin-bottom:-.08em}
.w>span{display:inline-block;transform:translateY(110%);transition:transform 1.1s var(--ease);transition-delay:calc(var(--d)*40ms)}
.sw.in .w>span{transform:none}
/* 作品图：滚动进入时从小窗口展开 + 缩放回位 */
.work .cover{clip-path:inset(14% 6% 0 6% round 6px);transition:clip-path 1.3s var(--ease)}
.work.in .cover{clip-path:inset(0 0 0 0 round 6px)}
.work .cover img,.work .cover .wenxinPlaceholderArt{transform:scale(1.22);transition:transform 1.5s var(--ease)}
.work.in .cover img,.work.in .cover .wenxinPlaceholderArt{transform:scale(1)}
.work.in:hover .cover img,.work.in:hover .cover .wenxinPlaceholderArt{transform:scale(1.05)}
.workGrid:not(.list) .work .workName,.workGrid:not(.list) .work .workMeta{opacity:0;transform:translateY(14px);transition:opacity .9s var(--ease) .2s,transform .9s var(--ease) .2s}
.work.in .workName,.work.in .workMeta{opacity:1!important;transform:none!important}
.workGrid.list .work{opacity:0;transform:translateY(16px);transition:opacity .7s var(--ease),transform .7s var(--ease),background .2s}
.workGrid.list .work.in{opacity:1;transform:none}
/* 悬停：图片中央弹出 VIEW 按钮 */
.cover .view{position:absolute;left:50%;top:50%;z-index:2;transform:translate(-50%,-50%) scale(.6);opacity:0;transition:.5s var(--ease);background:#fff;color:#000;border-radius:30px;padding:10px 18px;font-size:11px;font-weight:800;letter-spacing:.6px;white-space:nowrap}
.work:hover .cover .view{opacity:1;transform:translate(-50%,-50%) scale(1)}
/* 首页 3D：黑白灰十字件，鼠标推开、点击炸开 */
.heroArt:after{z-index:0}
.heroArt canvas{position:absolute;inset:0;width:100%!important;height:100%!important;z-index:1;opacity:0;transition:opacity 1.2s}
.heroArt i{transition:opacity 1s}
.heroArt.gl canvas{opacity:1}
.heroArt.gl i{opacity:0}
.heroArt.gl{cursor:grab;background:radial-gradient(ellipse at 50% 45%,#2a2b31 0%,#101012 60%)}
.heroArt .hint{position:absolute;left:16px;bottom:14px;z-index:2;font-size:10px;letter-spacing:.8px;color:#ffffff70;pointer-events:none}

@media(max-width:900px){
  .workGrid.cols3{grid-template-columns:repeat(2,minmax(0,1fr))}
  .editorWrap{grid-template-columns:1fr}
  .previewCard{position:static;order:-1;max-width:340px}
  .workGrid.list .work{grid-template-columns:40px 1fr 1fr 24px}
  .workGrid.list .work .loc,.workGrid.list .work .yr{display:none}
}
@media(max-width:700px){
  .top{align-items:start}
  .nav{gap:12px;justify-content:flex-end}
  .nav a{font-size:10px}
  .nav .clock{font-size:10px}
  .conditions{gap:8px}
  .weather{font-size:10px}
  .panel{min-height:60vh}
  .workGrid,.workGrid.cols3,.cols,.gallery{grid-template-columns:1fr}
  .heroTitle{margin-top:65px}
  .feature{aspect-ratio:4/3}
  .stats{grid-template-columns:repeat(2,1fr)}
  .seg .c3{display:none}
  .adminRow{flex-wrap:wrap}
  .adminRow .mini{display:none}
  .workGrid.list .work{grid-template-columns:30px 1fr 24px}
  .workGrid.list .work .ct{display:none}
  .lightbox .lbBtn{top:auto;bottom:16px;transform:none}
  .urlRow{flex-wrap:wrap}
}
@media(hover:none),(pointer:coarse){#peek{display:none}}

.projectContent{margin:40px 0}.projectContent section{margin:40px 0}.projectContent h2{font-size:clamp(26px,4vw,42px);letter-spacing:-.04em}.projectContent p{max-width:850px;color:#b2b3ba;white-space:pre-line}.projectContent img,.projectContent video{display:block;max-width:100%;height:auto;border-radius:8px}.projectContent figure{margin:28px 0}.projectContent figcaption{font-size:12px;color:var(--muted);margin-top:10px}.work{display:block}.work:focus-visible{outline:2px solid var(--accent)}
.projectContent p{white-space:normal}
.projectContent p:has(>img:only-child){max-width:none}
.projectContent a{color:var(--accent);text-decoration:underline;text-underline-offset:3px}
.projectContent h3{font-size:24px;margin-top:28px}
.projectContent ul,.projectContent ol{padding-left:24px;color:#b2b3ba}
.projectContent blockquote{border-left:2px solid var(--accent);padding-left:20px;margin:24px 0;color:var(--muted)}
.projectContent pre{background:var(--bg);padding:20px;border-radius:8px;overflow:auto}
.projectContent code{font-family:Consolas,monospace;font-size:.9em}
.projectContent table{display:block;overflow-x:auto;border-collapse:collapse;margin:24px 0}
.projectContent th,.projectContent td{border:1px solid var(--line);padding:10px 14px;text-align:left}

/* 07S artwork covers: subtle muted gallery tone; original images and Markdown stay unchanged. */
.workGrid:not(.list) .work .cover img,
#peek img,
.previewCard .cover img{
  filter:saturate(82%) brightness(98%) contrast(96%);
}
@media (hover:hover){
  .workGrid:not(.list) .work:hover .cover img,
  .workGrid:not(.list) .work:focus-within .cover img,
  .previewCard .work:hover .cover img{
    filter:saturate(100%) brightness(100%) contrast(100%);
  }
}
@media (prefers-reduced-motion:reduce){
  .workGrid .cover img,#peek img,.previewCard .cover img{transition:none}
}

/* WENXIN uses the same WORKS cards, filters and motion rules. */

/* ---------- WORKS / SERIES NAVIGATION ---------- */
.nav{flex-wrap:nowrap}
.worksNavGroup{display:flex;align-items:center;position:relative}
.worksDropdown{position:absolute;top:100%;left:-24px;z-index:60;width:270px;padding:16px;background:#1b1c21;border:1px solid #393a42;border-radius:14px;box-shadow:0 24px 72px #000b;opacity:0;visibility:hidden;pointer-events:none;transform:translateY(9px);transition:opacity .23s var(--ease),transform .23s var(--ease),visibility .23s}
.worksNavGroup:hover .worksDropdown,.worksNavGroup:focus-within .worksDropdown{opacity:1;visibility:visible;pointer-events:auto;transform:translateY(0)}
.worksDropdown .dropdownEyebrow{display:block;padding:0 7px 9px;color:#8d8e97;font-size:10px;letter-spacing:.18em}
.worksDropdown>a{display:flex;align-items:center;gap:13px;padding:12px 7px!important;color:#e9e9ed!important;border-top:1px solid #35363d;font-size:12px!important;letter-spacing:.03em!important}
.worksDropdown>a>span:last-child{margin-left:auto;color:#888}
.worksDropdown>a:hover{color:var(--accent)!important}
.worksDropdown>a:hover:after,.worksDropdown>a:after{display:none}
.worksDropdown small{display:block;color:#81838d;font-size:9px;letter-spacing:.035em}
.dropdownNumber{font-size:10px;color:#8c8e97;letter-spacing:.08em}
.mobileMenuToggle,.mobileNavPanel,.mobileNavBackdrop{display:none}

/* WENXIN media placeholders only: shared WORKS handles card geometry and motion. */
.wenxinPanel .wenxinTools{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:10px;margin:19px 0 8px;align-items:center}
.wenxinPanel .wenxinTools .searchBox{min-width:0}
.wenxinPanel .wenxinTools .select{min-width:156px}
.wenxinPanel .wenxinTools .seg{justify-self:end}
.wenxinPlaceholder{cursor:default}
.wenxinPlaceholder .cover{background:#1c1d22;border:1px solid #35363c}
.wenxinPlaceholderArt{position:absolute;inset:0;display:grid;place-items:center;background:radial-gradient(ellipse at 75% 20%,#2d2e35 0%,#18191e 55%,#0c0d10 100%)}
.wenxinPlaceholder:nth-child(2n) .wenxinPlaceholderArt{background:radial-gradient(ellipse at 25% 80%,#303037 0%,#19191e 52%,#0c0d10 100%)}
.wenxinPlaceholder:nth-child(3n) .wenxinPlaceholderArt{background:radial-gradient(ellipse at 50% 12%,#2a2d33 0%,#19191e 50%,#0c0d10 100%)}
.wenxinPlaceholder .wenxinSymbol{font-family:serif;font-size:clamp(30px,5vw,55px);font-weight:400;letter-spacing:.08em;color:#b0b1b8}
.wenxinPlaceholder .wenxinPlay{display:grid;place-items:center;width:60px;height:60px;border:1px solid #777985;border-radius:50%;font-size:19px;padding-left:4px;color:#ececf0}
.wenxinPlaceholderIndex,.wenxinPending{position:absolute;z-index:2;left:14px;font-size:10px;letter-spacing:.12em;color:#a1a2ab}
.wenxinPlaceholderIndex{top:12px;font-variant-numeric:tabular-nums}
.wenxinPending{bottom:12px;font-size:9px}
.wenxinPreviewLabel{white-space:nowrap}
.wenxinPanel .wenxinPlaceholder .workName,.wenxinPanel .wenxinPlaceholder .workMeta{min-width:0}
/* ---------- MOBILE HEADER / RIGHT DRAWER ---------- */
@media(max-width:760px){
  .shell{width:calc(100% - 24px)}
  .top,.top.scrolled{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:10px;padding:13px 0;transform:none}
  .top.hide{transform:none}
  .top .logo{font-size:25px;white-space:nowrap}
  .top .nav{min-width:0;justify-content:flex-end;gap:0;flex-wrap:nowrap}
  .top .nav>a,.top .nav .worksNavGroup{display:none}
  .top .conditions{display:inline-flex;justify-content:flex-end;min-width:0;max-width:100%;gap:7px;white-space:nowrap;overflow:hidden}
  .top .weather{font-size:10px;max-width:130px;overflow:hidden;text-overflow:ellipsis}
  .top .clock{font-size:10px;flex-shrink:0}
  .mobileMenuToggle{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px;width:42px;height:42px;border:1px solid #45464c;border-radius:50%;background:#191a1f;color:#fff;transition:background .2s,border-color .2s}
  .mobileMenuToggle span{width:17px;height:1.5px;background:currentColor;border-radius:2px}
  .mobileMenuToggle:hover{border-color:#eee;background:#26272d}
  .mobileNavBackdrop{display:block;position:fixed;inset:0;padding:0;border:0;background:rgba(0,0,0,.72);backdrop-filter:blur(5px);-webkit-backdrop-filter:blur(5px);z-index:100;opacity:0;visibility:hidden;pointer-events:none;transition:opacity .32s,visibility .32s}
  .mobileNavPanel{display:flex;flex-direction:column;position:fixed;right:0;top:0;bottom:0;isolation:isolate;width:min(388px,91vw);height:100dvh;max-height:none;overflow-y:auto;overscroll-behavior:contain;background:linear-gradient(150deg,#202126 0%,#17181c 31%,#121317 100%);border-left:1px solid #50515a;box-shadow:-24px 0 90px #000c;z-index:101;transform:translate3d(105%,0,0);visibility:hidden;pointer-events:none;padding:max(32px,env(safe-area-inset-top)) 27px max(30px,env(safe-area-inset-bottom));transition:transform .38s var(--ease),visibility .38s}
  body.mobileNavOpen{overflow:hidden}
  body.mobileNavOpen .mobileNavBackdrop{opacity:1;visibility:visible;pointer-events:auto}
  body.mobileNavOpen .mobileNavPanel{transform:translateX(0);visibility:visible;pointer-events:auto}
  .mobileNavHeader{display:flex;align-items:center;justify-content:space-between;gap:20px;padding-bottom:24px;border-bottom:1px solid #404148}
  .mobileNavBrand{font-size:34px;font-weight:850;letter-spacing:-.095em;line-height:1}
  .mobileNavBrand span{display:block;margin-top:9px;color:#90919c;font-size:10px;font-weight:500;letter-spacing:.21em}
  .mobileNavClose{display:grid;place-items:center;width:43px;height:43px;flex:none;border:1px solid #555760;border-radius:50%;background:#25262c;color:#f7f7f7;font-size:26px;font-weight:300;line-height:1;transition:transform .18s,border-color .18s,background .18s}
  .mobileNavClose:hover{border-color:#ddd}
  .mobileNavBody{margin-top:20px;flex:1}
  .mobileNavItem{position:relative;border-bottom:1px solid #373942}
  .mobileNavPrimary{display:flex;align-items:center;gap:14px;min-height:76px;padding:15px 7px;font-size:24px;letter-spacing:-.04em;font-weight:730;line-height:1.2;transition:color .22s,transform .22s}
  .mobileNavPrimary:hover,.mobileSeriesLink:hover{color:var(--accent)}
  .mobileNavIndex{font-size:10px;font-weight:550;letter-spacing:.07em;color:#888b95;min-width:23px}
  .mobileNavArrow{margin-left:auto;color:#7a7d87;font-size:18px;font-weight:400;transition:transform .2s,color .2s}
  .mobileNavSeries{position:relative;margin:0 2px 20px 34px;padding:15px 13px 14px;border:1px solid #41434b;border-radius:11px;background:linear-gradient(120deg,#28292f,#1f2026);box-shadow:0 6px 16px #0002}
  .mobileNavSeriesCaption{display:flex;align-items:center;justify-content:space-between;font-size:10px;letter-spacing:.13em;color:#a8a9b1;margin-bottom:11px}
  .mobileSeriesLink{display:flex;align-items:center;gap:12px;min-height:57px;padding:11px 8px;border-top:1px solid #44464f;font-size:17px;font-weight:650;line-height:1.2;transition:background .22s,color .22s}
  .mobileSeriesNumber{color:#9d9faa;font-size:10px;font-weight:500}
  .mobileSeriesLink small{display:block;margin-top:4px;color:#8b8e99;font-size:9px;font-weight:450;letter-spacing:.025em;line-height:1.4}
  .mobileSeriesArrow{margin-left:auto;color:#9799a2;font-size:17px}
  .mobileNavFooter{margin-top:28px;padding-top:20px;border-top:1px solid #40424a;color:#9698a2;font-size:10px;letter-spacing:.16em;line-height:1.8}
  .mobileNavPanel:before{content:"";position:absolute;left:27px;top:0;width:61px;height:3px;background:var(--accent);border-radius:0 0 3px 3px}
  .mobileNavBrand sup{font-size:11px;font-weight:650;letter-spacing:0;position:relative;top:-15px;margin-left:3px}
  .mobileNavClose:hover,.mobileNavClose:focus-visible{border-color:#f3f3f5;background:#33353e;transform:rotate(90deg)}
  .mobileNavItem.is-active>.mobileNavPrimary{color:#fff}
  .mobileNavItem.is-active>.mobileNavPrimary:before{content:"";position:absolute;left:-10px;top:calc(38px - 11px);width:3px;height:22px;border-radius:2px;background:var(--accent)}
  .mobileNavItem.is-active .mobileNavIndex{color:var(--accent)}
  .mobileNavPrimary:focus-visible,.mobileSeriesLink:focus-visible{outline:1px solid var(--accent);outline-offset:-1px}
  .mobileNavPrimary:hover,.mobileNavPrimary:focus-visible{transform:translateX(3px)}
  .mobileNavPrimary:hover .mobileNavArrow{transform:translate(2px,-2px);color:var(--accent)}
  .mobileNavSeriesCaption span{font-variant-numeric:tabular-nums;color:#b3b4bc}
  .mobileSeriesLink.is-active{color:#fff;background:linear-gradient(90deg,#393a40 0%,transparent 96%)}
  .mobileSeriesLink.is-active .mobileSeriesNumber,.mobileSeriesLink.is-active .mobileSeriesArrow{color:var(--accent)}
  .mobileMenuToggle:focus-visible,.mobileNavClose:focus-visible{outline:2px solid var(--accent);outline-offset:3px}

  .panel{padding:20px 15px;border-radius:12px;min-height:60vh}
  .pageTitle{margin-top:18px}
  .pillrow{flex-wrap:nowrap;overflow-x:auto;overscroll-behavior-x:contain;scrollbar-width:none;margin:18px 0 14px;padding-bottom:3px}
  .pillrow::-webkit-scrollbar{display:none}
  .pillrow .pill{white-space:nowrap;flex:none}
  .tools{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:8px}
  .searchBox{grid-column:1/-1;min-width:0}
  .tools .searchBox .field{width:100%}
  .tools #yearSel,.tools #sortSel{width:100%;min-width:0;max-width:100%}
  .tools .seg{grid-column:1/-1;justify-self:end}
  .workGrid{margin-top:18px}
  .wenxinPanel .wenxinTools{grid-template-columns:minmax(0,1fr) auto;gap:9px;margin:18px 0 12px}
  .wenxinPanel .wenxinTools .searchBox{grid-column:1/-1}
  .wenxinPanel .wenxinTools .select{grid-column:1;min-width:0;width:100%}
  .wenxinPanel .wenxinTools .seg{grid-column:2;justify-self:end}
  .wenxinPanel .workGrid:not(.list){grid-template-columns:minmax(0,1fr);gap:30px 20px}
  .wenxinPanel .wenxinSymbol{font-size:clamp(30px,8vw,48px)}
  .wenxinPanel .wenxinPlay{width:54px;height:54px;font-size:17px}
  .wenxinPanel .wenxinPlaceholderIndex{top:9px;left:9px;font-size:9px}
  .wenxinPanel .wenxinPending{bottom:9px;left:9px;font-size:8px;letter-spacing:.02em}
  .wenxinPanel .wenxinPlaceholder .workName{font-size:13px}
  .wenxinPanel .wenxinPlaceholder .workMeta{font-size:12px}
}
@media(min-width:761px){.mobileNavPanel,.mobileNavBackdrop,.mobileMenuToggle{display:none!important}}
@media(prefers-reduced-motion:reduce){.mobileNavBackdrop,.mobileNavPanel{transition:none}}
