:root{font-family:Arial,"Helvetica Neue","PingFang SC","Microsoft YaHei",sans-serif;color:#111;background:#fff;font-size:16px}*{box-sizing:border-box}body{margin:0}a{color:inherit;text-decoration:none}a:hover{text-decoration:underline;text-underline-offset:5px}a:focus-visible,button:focus-visible{outline:2px solid #111;outline-offset:5px}header{display:grid;grid-template-columns:1fr 2fr;gap:30px;align-items:center;padding:48px 40px 44px}.brand{font-size:23px;white-space:nowrap;letter-spacing:.025em}.brand strong{margin-left:16px}nav{display:flex;gap:28px;align-items:center;flex-wrap:wrap}nav a{font-size:17px;line-height:1.6;white-space:nowrap}nav a span{font-size:15px;margin-right:5px}nav a[aria-current]{font-weight:700}.toggle{display:none}main{min-height:65vh;padding:62px 40px 90px}.section{display:grid;grid-template-columns:1fr 2fr;gap:30px;margin-bottom:60px}h1{font-size:18px;line-height:1.6;margin:0;font-weight:700}.grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:70px 30px}.card{display:block;min-width:0}.picture{height:260px;display:flex;align-items:center;justify-content:center;background:#fff}.picture img{display:block;max-width:100%;max-height:100%;width:auto;height:auto;object-fit:contain}.card h2{font-size:17px;line-height:1.55;font-weight:600;margin:17px 0 0}.detail{max-width:850px;font-size:16px;line-height:1.8;overflow-wrap:anywhere}.detail img{display:block;max-width:100%;height:auto;margin:25px auto}.detail video,.detail iframe{max-width:100%}.detail p{margin:0 0 18px}.detail h1,.detail h2,.detail h3{font-size:20px}.detail font,.detail span,.detail strong{font-family:inherit}.detail table{max-width:100%;width:100%}.detail a{text-decoration:underline}footer{margin:0 40px;padding:26px 0 35px;border-top:1px solid #111;display:flex;align-items:center;gap:30px;font-size:13px}footer .instagram{display:inline-flex;align-items:center;gap:9px;margin-right:auto;font-size:14px}.skip{position:absolute;left:20px;top:-100px}.skip:focus{top:8px}.toggle{font:inherit;color:inherit;background:white;border:0;padding:12px;cursor:pointer}@media(min-width:1600px){header,main{padding-left:4vw;padding-right:4vw}.picture{height:330px}footer{margin-left:4vw;margin-right:4vw}}@media(max-width:1000px){header{grid-template-columns:1fr auto;padding:28px 24px}.toggle{display:block}nav{grid-column:1/-1;display:flex;padding-top:18px;gap:20px}html.enhanced nav{display:none}html.enhanced nav.open{display:flex}main{padding:38px 24px 60px}.section{grid-template-columns:180px minmax(0,1fr);gap:24px}.picture{height:210px}footer{margin:0 24px}}@media(max-width:650px){header{padding:22px 20px}.brand{font-size:20px}nav{flex-direction:column;align-items:flex-start;gap:0}nav a{display:block;padding:10px 0;width:100%;font-size:19px}main{padding:36px 20px 60px}.section{display:block;margin-bottom:35px}h1{margin-bottom:30px}.grid{grid-template-columns:1fr;gap:42px}.picture{height:auto;min-height:80px}.picture img{width:auto;max-height:430px}.detail{font-size:16px}.card h2{margin-top:13px}footer{margin:0 20px;gap:16px;flex-wrap:wrap}footer .instagram{width:100%;margin-bottom:8px}}
/* Greene Naftali-inspired: compact navigation, thin rules, large images. */
:root{font-family:"Helvetica Neue",Arial,"PingFang SC",sans-serif}header{display:flex;position:sticky;top:0;z-index:20;background:#fff;gap:28px;min-height:74px;padding:14px 16px;border-bottom:1px solid #222;margin:0 15px}.brand{font-size:17px;order:3;margin-left:auto;letter-spacing:.01em}.brand strong{margin-left:8px}nav{gap:24px;flex-wrap:nowrap}nav a{font-size:16px;color:#757575;font-weight:400}nav a span{font-size:14px;margin-right:3px}nav a:hover,nav a[aria-current]{color:#111}nav a[aria-current]{font-weight:600}.toggle{display:none}main{padding:8px 15px 65px}.section{display:block;border-top:1px solid #222;margin-top:40px;padding-top:10px}h1{font-size:17px;font-weight:500;margin:0 0 30px}.grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:45px 24px}.picture{height:290px;justify-content:flex-start}.card h2{font-weight:400;font-size:15px;margin-top:10px}.detail{max-width:980px;line-height:1.75}.detail img{margin-left:0;max-height:90vh;object-fit:contain;object-position:left center}.detail p{max-width:800px}.gallery-stage{position:relative;min-height:200px}.gallery-image{display:block;max-width:calc(100% - 110px);width:auto;height:72vh;max-height:850px;object-fit:contain;object-position:left center}.expand{position:absolute;right:0;top:2px;border:0;background:none;color:#666;font:inherit;font-size:14px;cursor:pointer;padding:6px}.gallery-caption{display:flex;justify-content:space-between;gap:24px;align-items:center;padding-top:9px;color:#666;font-size:14px;min-height:40px}.gallery-controls{display:flex;align-items:center;gap:15px;white-space:nowrap}.gallery-controls button{background:none;border:0;font-size:24px;cursor:pointer;min-width:44px;min-height:44px}.gallery.fullscreen{position:fixed;inset:0;z-index:50;background:white;padding:20px;overflow:auto}.gallery.fullscreen .gallery-image{height:calc(100vh - 115px);width:100%;max-width:100%;max-height:none;object-position:center}.gallery.fullscreen .expand{background:white}.gallery.fullscreen .gallery-stage{padding-top:28px}footer{margin:0 15px;padding:18px 0 28px;gap:28px;font-size:13px}footer .instagram{font-size:13px}@media(max-width:1100px){header{gap:16px}nav{gap:14px}nav a{font-size:14px}nav a span{font-size:13px}.brand{font-size:15px}.picture{height:230px}}@media(max-width:850px){header{flex-wrap:wrap;padding:12px 0;min-height:60px}.toggle{display:block;order:0;padding:8px 0}.brand{order:1}nav{order:2;width:100%;padding:10px 0 14px;flex-wrap:wrap}html.enhanced nav{display:none}html.enhanced nav.open{display:flex}.grid{grid-template-columns:repeat(2,minmax(0,1fr))}.gallery-image{height:60vh;max-width:100%;padding-top:30px}.gallery-caption{align-items:flex-start}.gallery-title{line-height:1.6}}@media(max-width:550px){header{margin:0 12px}main{padding:8px 12px 45px}nav{flex-direction:column;align-items:flex-start;gap:0}nav a{font-size:17px}.grid{grid-template-columns:1fr;gap:32px}.picture{height:auto}.picture img{max-height:65vh}.gallery-image{height:53vh}.gallery-caption{font-size:13px;gap:12px}.gallery-controls{gap:3px}.gallery-controls button{min-width:35px}.section{margin-top:25px}.gallery.fullscreen{padding:12px}footer{margin:0 12px}}
/* Final navigation and preview-image refinements. */
main > .section:first-child{border-top:0;margin-top:24px}
.picture{width:100%;height:auto;min-height:0;max-height:none;aspect-ratio:auto;display:block;overflow:visible}
.picture img{display:block;width:100%;height:auto;max-width:100%;max-height:none;object-fit:contain;object-position:center}
nav a{position:relative;text-decoration:none !important}
nav a:hover::after{content:"";position:absolute;left:0;right:0;bottom:0;height:1px;background:currentColor}
/* News: consistent spacing independent of legacy paragraph wrappers. */
.news-list{display:flex;flex-direction:column;gap:64px}
.news-item{display:flex;flex-direction:column;align-items:flex-start;gap:16px;margin:0;padding:0}
.news-item p{margin:0}
.news-item img{display:block;margin:0;max-width:100%;height:auto}
.news-item>a{display:block;max-width:100%}
@media(max-width:550px){.news-list{gap:48px}.news-item{gap:14px}}
.critics-heading{font-size:17px;font-weight:500;margin:0 0 28px}
.critics-archive{border-top:1px solid #000;margin-top:44px;padding-top:12px}
.about-page .section h1{margin-bottom:10px}
.about-page .detail>.post>p:first-child:empty{display:none}
/* Pointer feedback and artist-name destination. */
html,body,body *{cursor:default}
a[href],a[href] *,button:not(:disabled),button:not(:disabled) *,[role="button"]:not([aria-disabled="true"]),[role="button"]:not([aria-disabled="true"]) *,summary,summary *{cursor:pointer}
header .brand,header .brand:hover,header .brand:focus{ text-decoration:none }
/* Vielmetter-inspired portrait menu: three equal rules form a hollow triangle. */
.menu-icon{display:block;position:relative;width:30px;height:30px;transition:transform .38s cubic-bezier(.65,0,.35,1)}
.menu-icon span{position:absolute;left:0;width:30px;height:1px;background:#111;transform-origin:center;transition:top .32s ease,left .32s ease,transform .32s ease}
.menu-icon span:nth-child(1){top:4px}
.menu-icon span:nth-child(2){top:14.5px}
.menu-icon span:nth-child(3){top:25px}
.toggle:is([aria-expanded="true"], .menu-arriving) .menu-icon{transform:rotate(90deg)}
.toggle:is([aria-expanded="true"], .menu-arriving) .menu-icon span:nth-child(1){left:-13px;top:14.5px;transform:rotate(90deg)}
.toggle:is([aria-expanded="true"], .menu-arriving) .menu-icon span:nth-child(2){top:7px;transform:rotate(30deg)}
.toggle:is([aria-expanded="true"], .menu-arriving) .menu-icon span:nth-child(3){top:22px;transform:rotate(-30deg)}
@media(max-width:850px){
  header{border-bottom-color:transparent}
  header::after{content:"";position:absolute;left:0;right:0;bottom:-1px;height:1px;background:#222;opacity:1;transition:opacity .35s ease}
  body.menu-open header::after{opacity:0}
  .toggle{display:inline-flex;align-items:center;justify-content:center;order:0;width:44px;height:44px;padding:7px 0}
  html.enhanced nav,html.enhanced nav.open{display:flex;position:fixed;z-index:19;inset:60px 0 0;background:#fff;padding:24px 28px 40px;flex-direction:column;align-items:flex-start;align-content:flex-start;gap:0;overflow:auto;transition:opacity .35s ease,visibility 0s linear .35s}
  html.enhanced nav{opacity:0;visibility:hidden;pointer-events:none}
  html.enhanced nav.open{opacity:1;visibility:visible;pointer-events:auto;transition:opacity .35s ease .04s,visibility 0s}
  html.enhanced nav a,html.enhanced nav.open a{width:auto;padding:9px 0;font-size:19px;line-height:1.35;text-align:left;transition:opacity .3s ease,transform .3s ease}
  html.enhanced nav a{opacity:0;transform:translateY(4px)}
  html.enhanced nav.open a{opacity:1;transform:translateY(0)}
  html.enhanced nav.open a:nth-child(1){transition-delay:.07s}
  html.enhanced nav.open a:nth-child(2){transition-delay:.10s}
  html.enhanced nav.open a:nth-child(3){transition-delay:.13s}
  html.enhanced nav.open a:nth-child(4){transition-delay:.16s}
  html.enhanced nav.open a:nth-child(5){transition-delay:.19s}
}
@media(prefers-reduced-motion:reduce){header::after,.menu-icon,.menu-icon span,html.enhanced nav,html.enhanced nav a{transition:none !important}}

/* Upward triangle matches the 30px, 1px-stroke menu icon. */
.back-to-top{position:fixed;right:calc(18px + env(safe-area-inset-right,0px));bottom:calc(18px + env(safe-area-inset-bottom,0px));z-index:18;display:flex;align-items:center;justify-content:center;width:48px;height:48px;padding:9px;border:0;border-radius:0;background:transparent;color:#111;cursor:pointer}
.back-to-top[hidden]{display:none}
.back-to-top svg{display:block;overflow:visible;pointer-events:none}
.back-to-top:hover,.back-to-top:active,.back-to-top:focus{background:transparent;box-shadow:none}

/* Shared image widths on all detail pages; preserve image proportions. */
.detail img:not(.gallery-image) {
  display: block;
  width: var(--detail-image-width, 640px) !important;
  max-width: 100% !important;
  height: auto !important;
  max-height: none !important;
  object-fit: contain;
  object-position: left center;
}
@media (max-width: 550px) {
  .detail img:not(.gallery-image) { width: 100% !important; }
}

/* Establish the destination triangle without playing an opening animation. */
.toggle.menu-arrival-start .menu-icon,
.toggle.menu-arrival-start .menu-icon span { transition: none !important; }

.archive-year{display:grid;grid-template-columns:100px minmax(0,1fr);gap:24px;padding:24px 0;border-top:1px solid #ddd;max-width:980px}.archive-year h2{font-size:17px;font-weight:400;margin:0}.archive-year ul{list-style:none;margin:0;padding:0}.archive-year li{margin:0 0 18px;line-height:1.6}.archive-year p{margin:0;line-height:1.6}html.enhanced nav.open a:nth-child(6){transition-delay:.22s}@media(max-width:550px){.archive-year{grid-template-columns:64px minmax(0,1fr);gap:16px}}

/* Show complete content images and let their wrappers grow naturally. */
main img { object-fit:contain; }
.picture, .card, .news-item, .news-item > a,
.detail, .detail .post, .detail .entry, .detail p, .detail h2,
.gallery-stage {
 height:auto; max-height:none; overflow:visible;
}
.picture { aspect-ratio:auto; min-height:0; }
.picture img, .news-item img {
 height:auto; max-height:none; max-width:100%; object-fit:contain;
}
.detail img:not(.gallery-image) { object-fit:contain !important; }
/* The fullscreen viewer remains scrollable and contains the whole image. */
.gallery.fullscreen { overflow:auto; }
.gallery-image { object-fit:contain; }

/* Preview cards: consistent 4:3 frames, centered complete images. */
.picture {
 display:flex; align-items:center; justify-content:center;
 width:100%; height:auto; min-height:0; max-height:none;
 aspect-ratio:4 / 3; overflow:visible;
}
.picture img {
 display:block; width:100%; height:100%;
 max-width:100%; max-height:100%;
 object-fit:contain; object-position:center center;
 margin:0;
}

.picture { position:relative; }
.picture img { position:absolute; inset:0; }

/* Fill 4:3 preview frames without distortion; detail images stay unchanged. */
.picture { overflow:hidden; }
.picture img { object-fit:cover; object-position:center center; }

/* Match the Projects section heading, across all viewports. */
header .brand, .home-page header .brand { font-size:17px; }
header .brand strong { font-size:inherit; }

/* Bold both the Chinese artist name and its existing English label. */
header .brand, .home-page header .brand { font-weight:700; }
header .brand strong { font-weight:700; }
/* ==================================================
   XU ZHE — Desktop content width
   文字 / 图片 / 音频统一版心
   ================================================== */

@media screen and (min-width: 769px) {

    /* 右侧正文区域 */
    #content {
        width: 600px;
        box-sizing: border-box;
    }

    /* 文字与横版图片同宽 */
    #content p,
    #content .post {
        width: 100%;
        max-width: 600px;
        box-sizing: border-box;
    }

    /* 图片保持原始比例，不允许截断 */
    #content img {
        max-width: 100%;
        height: auto !important;
        object-fit: contain;
    }

    /* 以后加入音频播放器也自动对齐 */
    #content audio,
    #content .audio-player {
        width: 100%;
        max-width: 600px;
        box-sizing: border-box;
    }
}
