@charset "UTF-8";

/* Approved portfolio refinement: quieter reading areas, stronger artwork hierarchy. */
:root { --ref-card:#fffdf7b8; --ref-border:#d9ded1; --ref-radius:12px; }
html { scroll-padding-top:180px; }
.site-header { height:84px; }
.site-nav .nav-link { font-size:12px; padding:10px 15px; font-weight:600; }
.header-note { font-size:8px; letter-spacing:1.1px; }
.site-footer { font-size:10px; }
.page { padding-block:48px 70px; }
.page-heading { display:grid; grid-template-columns:auto minmax(0,1fr); gap:12px 28px; align-items:end; padding-bottom:25px; margin-bottom:28px; }
.page-heading .eyebrow { grid-column:1/-1; margin:0; font-size:9px; letter-spacing:1.8px; }
.page-heading h1 { font-size:42px; font-weight:650; line-height:1.15; letter-spacing:-1.6px; margin:0; }
.page-heading .page-lede { margin:0 0 2px; max-width:670px; font-size:12px; line-height:1.8; }
.section-heading { margin-bottom:20px; }
.section-heading h2 { margin:0; font-size:23px; font-weight:600; letter-spacing:-.7px; }
.section-heading .section-kicker { margin:0 0 8px; }
.section-heading > span { font-size:11px; }
.button { border-radius:5px; }
.button:disabled { opacity:.75; }
.back-link { margin-bottom:24px; }

/* The light moves behind the composition; the introduction keeps a stable dark field. */
body[data-page="home"] .ambient-photo { opacity:.86; background-position:75% 50%; }
body[data-page="home"] .site-atmosphere::after { background:linear-gradient(90deg,#03130de6 0%,#06180fba 24%,#06180f62 44%,#06180f10 65%,transparent 83%),linear-gradient(0deg,#06180f9c,transparent 28%); }
body[data-page="home"] .ambient-glow { opacity:.2; background:radial-gradient(ellipse at 88% 18%,#b3db3850 0,transparent 42%),radial-gradient(ellipse at 78% 89%,#297b6940 0,transparent 37%); }
body[data-page="home"] .ambient-canvas { opacity:.22; mask-image:linear-gradient(90deg,transparent 0%,#0002 45%,#000 83%); }
body[data-page="home"] .ambient-grid { opacity:.35; mask-image:linear-gradient(90deg,transparent,#0002 60%,#0008); }
body[data-page="home"] .ambient-orb { opacity:.1; }
.home-page { padding-top:12px; }
.hero { min-height:610px; grid-template-columns:1.12fr 1fr; gap:30px; padding-block:38px 48px; }
.hero-copy { padding-block:8px; }
.hero-copy .eyebrow { color:#c6d6bd; margin-bottom:25px; font-size:9px; letter-spacing:1.8px; }
.hero-title { font-size:clamp(82px,8.5vw,118px); line-height:1.08; letter-spacing:-6px; text-shadow:0 5px 28px #00170db3; }
.hero-title .title-mask:nth-child(2) { color:#def588; }
.hero-copy .hero-intro { font-size:13px; line-height:1.9; color:#c2cfc0; max-width:390px; margin-block:25px 28px; }
.hero-copy .hero-actions { gap:14px; }
.hero-copy .hero-actions .button { border-radius:3px; min-height:50px; font-size:12px; padding-inline:25px; }
.hero-note { margin-top:32px; font-size:8px; letter-spacing:1px; }
.home-page .hero-art { width:85%; justify-self:end; aspect-ratio:1; border:0; max-height:460px; background:transparent; overflow:visible; }
.home-page .art-monogram { font-size:clamp(130px,13.6vw,196px); letter-spacing:-17px; top:29%; height:39%; color:#edf4d8; }
.home-page .hero-art .art-ring { left:13%; top:17%; height:70%; width:74%; border-color:#cfdfaa52; }
.home-page .hero-art .art-grid,.home-page .hero-art .art-aurora { opacity:.06; }
.home-page .hero-art .orbit-canvas { opacity:.45; }
.home-page .hero-art::before { opacity:.3; }
.home-page .hero-art::after { opacity:.2; }
.home-page .hero-art .art-small { left:15px; bottom:68px; font-size:7px; color:#a8bf99; }
.home-page .hero-art .art-cross { right:14px; bottom:65px; opacity:.65; }
.home-page .hero-art .art-caption { bottom:13px; left:15px; right:14px; font-size:7px; opacity:.75; }
.home-page .axis-top { top:20%; font-size:7px; opacity:.65; }
.home-page .axis-side { right:4px; opacity:.5; }
.creative-ribbon { padding-block:12px; margin-bottom:22px; }
.ribbon-track > span { font-size:10px; letter-spacing:2.7px; }
.home-page .home-index { margin-bottom:28px; padding-block:12px; }

/* Commercial projects remain honest placeholders until their real covers are supplied. */
.curated-grid { display:grid; grid-template-columns:2fr 1fr 1fr; gap:17px; }
.curated-grid .work-card { min-width:0; }
.curated-grid .work-art { height:315px; aspect-ratio:auto; border-radius:7px; }
.placeholder-cover { position:relative; overflow:hidden; isolation:isolate; }
.placeholder-cover.theme-lime { background:linear-gradient(145deg,#dce1c9 0%,#ecede4 38%,#d8e0d7 72%,#cbd5cf 100%); }
.placeholder-cover.theme-clay { background:linear-gradient(145deg,#e1caba 0%,#efe6d9 48%,#dccdc1 100%); }
.placeholder-cover.theme-blue { background:linear-gradient(140deg,#d8e0e6 0%,#e9edf0 53%,#c8d5df 100%); }
.placeholder-cover::before { content:""; position:absolute; inset:-30% -20%; z-index:0; background:repeating-linear-gradient(150deg,transparent 0 23%,#fffffc64 23.2% 23.5%,transparent 23.6% 26%,#fff7 26.3% 31.5%,transparent 32% 42%); transform:rotate(-8deg); opacity:.65; }
.placeholder-cover .cover-ribbon { position:absolute; width:140%; height:80%; left:-22%; top:3%; border-radius:50%; border:1px solid #fffffdb3; box-shadow:0 -16px 40px #fff6,inset 0 14px 35px #fffff938; transform:rotate(-27deg); opacity:.7; pointer-events:none; }
.placeholder-cover .cover-ribbon::before { content:""; position:absolute; inset:16% -4%; border:1px solid #fffffd7d; border-radius:50%; }
.placeholder-cover .cover-label { position:absolute; left:21px; right:28px; bottom:29px; z-index:2; }
.placeholder-cover .cover-label strong { display:block; font-size:18px; line-height:1.45; font-weight:600; letter-spacing:-.6px; }
.placeholder-cover .cover-label small { display:block; margin-top:8px; font-size:11px; color:#657267; }
.is-featured .placeholder-cover .cover-label strong { font-size:25px; letter-spacing:-1px; }
.curated-grid .work-number { left:19px; top:17px; bottom:auto; right:auto; color:#5c6b60; font-size:9px; letter-spacing:1px; }
.curated-grid .work-meta { margin-top:16px; margin-bottom:9px; }
.curated-grid .work-label { font-size:8px; letter-spacing:.7px; }
.curated-grid .status { font-size:8px; padding:2px 5px; }
.curated-grid .work-card h2 { font-size:18px; letter-spacing:-.4px; }
.curated-grid .work-summary { font-size:11px; line-height:1.85; margin-top:9px; }
.curated-grid .is-featured .work-summary { max-width:450px; }

/* A single experiment gets the width of the collection, rather than an empty second column. */
.featured-grid { display:block; }
.experiment-feature { display:grid; grid-template-columns:1.12fr 1fr; align-items:stretch; border:1px solid var(--ref-border); border-radius:10px; overflow:hidden; background:#fffdf870; }
.experiment-feature .experiment-cover { width:100%; height:100%; min-height:300px; aspect-ratio:16/9; }
.experiment-feature .experiment-cover img { height:100%; object-fit:cover; }
.experiment-feature .experiment-content { min-width:0; padding:32px 34px; display:flex; flex-direction:column; justify-content:center; }
.experiment-feature .experiment-meta { margin:0 0 13px; font-size:9px; color:var(--muted); }
.experiment-feature h2 { margin:0 0 12px; font-size:31px; font-weight:650; line-height:1.35; letter-spacing:-1px; }
.experiment-feature p { margin:0 0 20px; color:var(--muted); max-width:390px; font-size:12px; line-height:1.85; }
.experiment-actions { display:flex; flex-direction:column; align-items:stretch; gap:9px; max-width:300px; }
.experiment-actions .button { border-radius:30px; min-height:42px; padding:10px 18px; justify-content:flex-start; font-size:11px; gap:12px; }
.experiment-actions .button-outline { border-color:transparent; background:#e7e9df; }
.filter-bar { gap:7px; margin-bottom:24px; }
.filter-button { border-radius:5px; font-size:11px; padding:10px 16px; }
.filter-button[aria-disabled="true"],.filter-button.is-empty { color:#8d9388; background:#f2f2eccc; border-color:#e1e4da; }
.filter-button small { display:block; line-height:1.3; font-size:8px; opacity:.75; }
.filter-button.is-selected { color:var(--paper); background:var(--ink); border-color:var(--ink); }
.empty-state { min-height:270px; border-radius:10px; }

/* The case has a reading order: film, shots, then the chosen asset set. */
.experiment-page { padding-top:34px; }
.experiment-page .experiment-heading { align-items:center; padding-bottom:7px; gap:25px; }
.experiment-heading .eyebrow { font-size:9px; margin-bottom:8px; }
.experiment-heading h1 { font-size:43px; font-weight:650; line-height:1.2; letter-spacing:-1.7px; margin:0 0 12px; }
.experiment-info { padding-top:0; font-size:10px; }
.experiment-info span { margin-bottom:5px; }
.experiment-summary { margin:0 0 24px; font-size:12px; max-width:740px; line-height:1.9; }
.case-nav { display:grid; grid-auto-flow:column; grid-auto-columns:minmax(0,1fr); gap:3px; padding:4px; margin:22px 0 24px; background:#eef0e7e8; border:1px solid #d6ddce; border-radius:7px; box-shadow:0 4px 15px #20382006; overflow-x:auto; scrollbar-width:none; }
.case-nav::-webkit-scrollbar { display:none; }
.case-nav.sticky { position:sticky; top:112px; z-index:18; backdrop-filter:blur(16px); -webkit-backdrop-filter:blur(16px); }
.case-nav button { padding:10px 14px; border:0; border-radius:4px; background:transparent; color:#536052; font-size:11px; white-space:nowrap; min-height:39px; transition:background .2s,color .2s; }
.case-nav button:hover { background:#dce5ce; color:#1e3025; }
.case-nav button.is-active,.case-nav button[aria-current="true"] { background:var(--ink); color:#f5f5ed; }
.experiment-page #film,.experiment-page #storyboard,.experiment-page #assets { scroll-margin-top:183px; }
.experiment-page .video-frame { border-radius:7px; overflow:hidden; margin:0; background:#0b1712; }
.experiment-page .video-frame video { max-height:none; }
.storyboard-section,.assets-section { margin-top:34px; }
.shot-tabs { display:inline-flex; flex-wrap:wrap; gap:5px; padding:4px; border:1px solid #e1e5d7; border-radius:7px; background:#edeee7; margin:0 0 18px; }
.shot-tabs button { border:0; background:transparent; padding:8px 16px; min-height:36px; font-size:11px; border-radius:4px; color:#687162; }
.shot-tabs button.is-active,.shot-tabs button[aria-selected="true"] { background:#fffef8; color:#243626; box-shadow:0 1px 5px #2038200b; }
.shot-browser { display:grid; grid-template-columns:30px minmax(0,1fr) 30px; gap:9px; align-items:center; }
.shot-arrow { display:grid; place-items:center; width:30px; height:40px; border:1px solid #d9dfcf; border-radius:30px; background:#fffef7bd; font-size:19px; line-height:1; padding:0; }
.shot-arrow:hover { background:var(--lime); border-color:var(--lime); }
.shot-arrow:disabled { color:#a9b09f; background:#e9ece3; cursor:default; }
.shot-strip { display:grid; grid-auto-flow:column; grid-auto-columns:calc((100% - 36px)/4); gap:12px; overflow-x:auto; overscroll-behavior-inline:contain; scroll-snap-type:x mandatory; scroll-behavior:smooth; padding-bottom:10px; scrollbar-width:thin; scrollbar-color:#bfccb0 #e8ece2; min-width:0; }
.shot-strip::-webkit-scrollbar { height:4px; }
.shot-strip::-webkit-scrollbar-thumb { background:#bfccb0; border-radius:4px; }
.shot-card { scroll-snap-align:start; background:#fffef8; border:1px solid #dce2d4; border-radius:5px; overflow:hidden; }
.shot-card .shot-topline { display:flex; align-items:center; justify-content:space-between; gap:5px; padding:5px 7px; background:#24392e; color:#f3f4e9; font-size:9px; font-family:Arial,sans-serif; }
.shot-topline strong { font-size:10px; font-weight:600; }
.shot-topline span:last-child { color:#b9c9b4; font-size:8px; }
.shot-card img { width:100%; aspect-ratio:16/9; object-fit:cover; }
.shot-card .image-caption { padding:9px 8px 10px; margin:0; font-size:10px; color:#4b5b4e; line-height:1.6; min-height:49px; background:#fffef8; }
.board-overviews { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px; margin-top:18px; }
.board-overview { min-width:0; display:grid; grid-template-columns:94px minmax(0,1fr); align-items:center; gap:13px; border:1px solid #dce2d4; border-radius:7px; background:#fffdf78c; padding:11px; text-align:left; }
.board-overview img { width:94px; height:68px; object-fit:contain; background:#e3e8dc; border-radius:3px; }
.board-overview:hover { border-color:#9eaf85; background:#fffef7; }
.board-overview strong { font-size:11px; font-weight:500; display:block; margin-bottom:5px; }
.board-overview span,.board-overview small { font-size:10px; line-height:1.7; color:#6f7a69; }
.board-overview .image-caption { margin:0; padding:0; background:transparent; }
.asset-tabs { display:flex; gap:5px; margin:0 0 21px; padding:4px; border:1px solid #dce2d5; background:#eceedf; border-radius:7px; max-width:550px; }
.asset-tabs button { display:flex; align-items:center; justify-content:center; gap:9px; flex:1; min-height:40px; padding:9px 14px; border:0; background:transparent; border-radius:4px; color:#687360; font-size:11px; white-space:nowrap; }
.asset-tabs button.is-active,.asset-tabs button[aria-selected="true"] { background:var(--ink); color:#f5f5ed; }
.asset-tabs button .count { margin-left:0; }
.asset-grid { display:grid; gap:18px; grid-template-columns:repeat(3,minmax(0,1fr)); }
.asset-grid.props { grid-template-columns:repeat(4,minmax(0,1fr)); gap:15px; }
.asset-grid .image-card { border:1px solid #dce2d4; border-radius:8px; padding:8px; background:#fffef8a6; overflow:hidden; }
.asset-grid .image-card img { width:100%; background:#ebeee6; object-fit:contain; border-radius:3px; }
.asset-grid.characters .image-card img { aspect-ratio:2/3; max-height:485px; object-fit:contain; }
.asset-grid.scenes .image-card img,.asset-grid.props .image-card img { aspect-ratio:16/9; object-fit:contain; }
.asset-grid .image-caption { background:transparent; margin:0; padding:11px 3px 4px; font-size:11px; color:#54624f; display:flex; align-items:center; justify-content:space-between; gap:7px; }
.asset-grid .image-card:hover img { transform:scale(1.005); }

/* A useful introduction: one profile block, followed by three clearly scoped records. */
.profile-overview { display:grid; grid-template-columns:1.2fr 1fr; align-items:center; gap:55px; padding:12px 25px 40px 0; position:relative; isolation:isolate; }
.profile-overview::after { content:""; position:absolute; width:50%; height:110%; top:-10%; right:-1%; background:radial-gradient(ellipse,#dfe8c8b5,transparent 72%); z-index:-1; pointer-events:none; }
.profile-overview .about-copy h2 { font-size:31px; line-height:1.4; letter-spacing:-1px; margin:0 0 12px; }
.profile-overview .about-copy .profile-role { margin:0 0 18px; color:#2c3b2a; font-size:15px; font-weight:500; }
.profile-overview .about-copy p { max-width:450px; font-size:13px; line-height:1.9; }
.profile-overview .about-copy .back-link { margin-top:8px; margin-bottom:0; }
.profile-portrait { width:190px; height:240px; justify-self:center; border:1px solid #fdfdf7; border-radius:25px; background:linear-gradient(140deg,#f0efe9,#e5e8de); overflow:hidden; box-shadow:0 15px 40px #4964370b; }
.profile-portrait > img { width:100%; height:100%; object-fit:cover; }
.profile-avatar-placeholder { height:100%; width:100%; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:16px; color:#7d8775; font-size:11px; text-align:center; }
.profile-avatar-placeholder svg { width:65px; height:65px; color:#bdc6b6; }
.profile-details { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:17px; margin-top:10px; }
.profile-card { min-width:0; min-height:267px; border:1px solid #dfe4d7; border-radius:12px; background:var(--ref-card); padding:25px; display:flex; flex-direction:column; align-items:flex-start; }
.profile-card .num,.profile-card > .row-number { color:#82936c; font-size:9px; letter-spacing:1px; }
.profile-card .num::before { content:""; display:inline-block; width:4px; height:4px; margin-right:9px; border-radius:50%; background:#a5bf45; vertical-align:1px; }
.profile-card h2 { font-size:22px; line-height:1.55; margin:22px 0 14px; font-weight:600; letter-spacing:-.6px; }
.profile-card p { font-size:12px; line-height:1.9; color:#7a8474; margin:0 0 14px; }
.profile-card .lines { margin-top:auto; width:100%; display:grid; gap:7px; }
.profile-card .lines span { display:block; height:5px; border-radius:3px; background:#e9ece3; }
.profile-card .lines span:last-child { width:72%; }
.profile-card .button { font-size:10px; min-height:40px; margin-top:auto; padding:10px 14px; }
.profile-card .tags,.profile-card .skill-list { display:flex; flex-wrap:wrap; gap:7px; }
.profile-card .tag { padding:5px 8px; border-radius:4px; border:1px solid #dce3d1; font-size:10px; }
.profile-card h3 { font-size:13px; font-weight:500; margin:8px 0; }
.profile-card .empty-line::before { display:none; }

/* The principal contact and the WeChat alternative share the same readable card pattern. */
.contact-stack { grid-template-columns:1fr; gap:17px; border:0; }
.contact-stack .contact-card { display:grid; grid-template-columns:76px minmax(0,1fr) 190px; gap:23px; align-items:center; min-height:166px; padding:27px 30px; border:1px solid #dce2d5; border-radius:13px; background:#fffdf7b5; }
.contact-stack .contact-card + .contact-card { padding:27px 30px; border:1px solid #dce2d5; }
.contact-stack .contact-card.is-primary { background:#fffdf7de; }
.contact-icon { width:66px; height:66px; border-radius:50%; display:grid; place-items:center; background:radial-gradient(circle at 35% 30%,#edf5d5,#e2edc8); color:#2b432d; }
.contact-icon svg { width:29px; height:29px; stroke-width:1.5; }
.contact-card-body { min-width:0; }
.contact-card-body .contact-index { margin:0 0 8px; font-size:10px; letter-spacing:.1px; color:#697761; }
.contact-stack .contact-card h2 { font-size:24px; font-weight:600; line-height:1.4; letter-spacing:-.6px; margin:0 0 9px; overflow-wrap:anywhere; }
.contact-stack .contact-description { font-size:11px; line-height:1.9; margin:0; }
.contact-stack .contact-value { font-size:13px; color:#4b6148; margin:7px 0 0; }
.contact-card-action { border-left:1px solid #e0e6d8; min-height:90px; display:flex; align-items:center; justify-content:center; padding-left:22px; }
.contact-card-action .button { border-radius:24px; font-size:10px; min-height:39px; padding:9px 17px; gap:8px; }
.contact-card-body > .button { margin-top:14px; }
.wechat-qr { width:126px; height:126px; padding:16px; border:1px dashed #b8c2ad; border-radius:8px; display:flex; flex-direction:column; justify-content:center; align-items:center; gap:10px; color:#8c9783; }
.wechat-qr img { width:100%; height:100%; object-fit:contain; }
.wechat-qr svg { width:39px; height:39px; }
.wechat-qr small { font-size:9px; line-height:1.6; text-align:center; }
.contact-note { display:flex; align-items:flex-start; gap:12px; border:1px solid #dce2d5; border-radius:9px; padding:17px 20px; margin-top:20px; color:#75816c; background:#e8eddf80; font-size:11px; line-height:1.8; }
.contact-note svg { flex:0 0 18px; width:18px; height:18px; margin-top:2px; }
.contact-note p { margin:0; }
.contact-note strong { display:block; font-weight:500; color:#3c503b; margin-bottom:3px; }
.contact-page .contact-closing { font-size:19px; line-height:1.7; margin-top:30px; letter-spacing:-.3px; }
.contact-page .contact-closing p { margin:0 0 12px; }

@media (min-width:1600px) {
  .hero { min-height:650px; }
}
@media (max-width:1100px) and (min-width:761px) {
  .site-header { padding-inline:17px; gap:15px; }
  .site-nav .nav-link { padding-inline:11px; font-size:11px; }
  .hero { min-height:560px; grid-template-columns:1.13fr 1fr; gap:15px; }
  .hero-title { font-size:clamp(74px,8.6vw,92px); letter-spacing:-5px; }
  .home-page .hero-art { width:87%; min-height:0; }
  .home-page .art-monogram { font-size:15vw; }
  .curated-grid { grid-template-columns:1.7fr 1fr 1fr; gap:13px; }
  .curated-grid .work-art { height:280px; }
  .placeholder-cover .cover-label { left:17px; bottom:23px; right:14px; }
  .placeholder-cover .cover-label strong { font-size:16px; }
  .is-featured .placeholder-cover .cover-label strong { font-size:22px; }
  .curated-grid .work-meta { flex-wrap:wrap; gap:6px; }
  .experiment-feature .experiment-content { padding:24px; }
  .experiment-feature .experiment-cover { min-height:295px; }
  .experiment-feature h2 { font-size:27px; }
  .profile-overview { gap:35px; }
  .profile-card { padding:21px; }
  .profile-card h2 { font-size:20px; }
  .contact-stack .contact-card { grid-template-columns:68px minmax(0,1fr) 165px; gap:18px; }
}
@media (max-width:760px) {
  html { scroll-padding-top:160px; }
  .site-shell { padding-inline:20px; }
  .site-header { height:70px; padding-inline:14px; top:9px; margin-top:9px; border-radius:12px; }
  .brand-name { font-size:16px; letter-spacing:-.7px; }
  .brand-name > span { font-size:20px; }
  .brand-role { font-size:7px; letter-spacing:1.5px; }
  .menu-toggle { height:38px; width:38px; }
  .site-nav { left:0; right:0; }
  .site-nav .nav-link { font-size:13px; padding:12px 15px; }
  .page { padding:34px 0 48px; }
  .page-heading { grid-template-columns:1fr; gap:9px; padding-bottom:22px; margin-bottom:23px; }
  .page-heading .eyebrow { grid-column:1; font-size:8px; letter-spacing:1.4px; }
  .page-heading h1 { font-size:35px; letter-spacing:-1.4px; }
  .page-heading .page-lede { font-size:11px; margin:2px 0 0; line-height:1.85; }
  .section-heading { margin-bottom:17px; }
  .section-heading h2 { font-size:20px; }
  .section-heading > span { font-size:10px; max-width:100%; }
  .section-kicker { font-size:8px; letter-spacing:1.2px; }
  .back-link { margin-bottom:20px; font-size:10px; }
  body[data-page="home"] .ambient-photo { background-position:57% 50%; opacity:.8; }
  body[data-page="home"] .site-atmosphere::after { background:linear-gradient(180deg,#03150ee6 0%,#03150ed4 25%,#03150e8c 47%,#03150e24 69%,#03150e76 100%),linear-gradient(90deg,#03150e55,transparent 78%); }
  body[data-page="home"] .ambient-canvas { opacity:.16; mask-image:linear-gradient(180deg,transparent 0%,#0001 40%,#000 75%); }
  body[data-page="home"] .ambient-grid { opacity:.2; }
  .home-page { padding-top:0; }
  .hero { min-height:0; display:flex; flex-direction:column; align-items:stretch; gap:1px; padding:40px 0 10px; }
  .hero-copy { padding:0; z-index:4; }
  .hero-copy .eyebrow { font-size:7px; letter-spacing:.9px; margin-bottom:22px; white-space:nowrap; }
  .hero-copy .eyebrow::before { width:4px; height:4px; margin-right:7px; vertical-align:1px; }
  .hero-title { font-size:clamp(56px,16vw,78px); line-height:1.1; letter-spacing:-3.8px; }
  .hero-title .title-mask { padding-bottom:.075em; margin-bottom:-.035em; }
  .hero-copy .hero-intro { margin-block:22px 23px; font-size:12px; line-height:1.9; max-width:305px; }
  .hero-copy .hero-actions { gap:10px; }
  .hero-copy .hero-actions .button { min-height:45px; padding:11px 19px; font-size:11px; }
  .hero-note { margin-top:23px; font-size:7px; }
  .home-page .hero-art { width:100%; height:220px; aspect-ratio:auto; min-height:0; max-height:220px; border:0; border-radius:0; box-shadow:none; margin:0; background:transparent; justify-self:auto; }
  .home-page .art-monogram { font-size:122px; letter-spacing:-10px; height:104px; top:54px; color:#eff5db; padding-right:7px; }
  .home-page .hero-art .art-ring { width:53%; height:80%; left:24%; top:5%; }
  .home-page .hero-art .orbit-canvas { opacity:.35; }
  .home-page .hero-art .art-small { bottom:23px; font-size:6px; left:10px; opacity:.7; }
  .home-page .hero-art .art-caption { display:none; }
  .home-page .hero-art .art-cross { bottom:20px; right:12px; width:11px; height:11px; background-size:1px 11px,11px 1px; opacity:.45; }
  .home-page .hero-art .axis-top { top:12px; font-size:6px; }
  .home-page .hero-art .axis-side { display:none; }
  .home-page .hero-art .art-aurora,.home-page .hero-art .art-grid { display:none; }
  .creative-ribbon { padding-block:10px; margin-bottom:13px; }
  .ribbon-track > span { font-size:8px; letter-spacing:2px; }
  .ribbon-track i { margin-inline:20px; }
  .home-page .home-index { margin-bottom:22px; padding-block:10px; }
  .index-item { padding-right:8px; }
  .index-item + .index-item { padding-left:10px; }
  .index-item strong { font-size:9px; }
  .index-item span:first-child { font-size:6px; letter-spacing:.5px; }
  .site-footer { font-size:8px; padding-block:18px; }
  .curated-grid { grid-template-columns:1fr; gap:26px; }
  .curated-grid .work-art { height:240px; }
  .curated-grid .is-featured .work-art { height:300px; }
  .placeholder-cover .cover-label { left:20px; bottom:24px; }
  .placeholder-cover .cover-label strong { font-size:21px; }
  .is-featured .placeholder-cover .cover-label strong { font-size:25px; }
  .placeholder-cover .cover-label small { font-size:11px; }
  .curated-grid .work-meta { margin-top:13px; }
  .curated-grid .work-card h2 { font-size:20px; }
  .curated-grid .work-summary { font-size:11px; }
  .filter-bar { gap:5px; margin-bottom:20px; }
  .filter-button { font-size:10px; min-height:38px; padding:8px 10px; }
  .filter-button .count { font-size:8px; margin-left:5px; }
  .experiment-feature { grid-template-columns:1fr; border-radius:9px; }
  .experiment-feature .experiment-cover { min-height:0; height:auto; aspect-ratio:16/9; }
  .experiment-feature .experiment-content { padding:23px 21px 24px; }
  .experiment-feature .experiment-meta { font-size:8px; margin-bottom:10px; }
  .experiment-feature h2 { font-size:28px; margin-bottom:10px; }
  .experiment-feature p { font-size:11px; line-height:1.9; margin-bottom:18px; }
  .experiment-actions { max-width:none; gap:8px; }
  .experiment-actions .button { font-size:11px; min-height:42px; }
  .empty-state { padding:32px 22px; min-height:270px; }
  .experiment-page { padding-top:28px; }
  .experiment-page .experiment-heading { align-items:flex-start; gap:0; padding-bottom:4px; }
  .experiment-heading .eyebrow { margin-bottom:9px; font-size:8px; }
  .experiment-heading h1 { font-size:33px; letter-spacing:-1.3px; margin-bottom:9px; }
  .experiment-info { display:flex; gap:13px; font-size:9px; padding:0; }
  .experiment-summary { font-size:11px; margin-bottom:16px; line-height:1.9; }
  .case-nav { display:flex; gap:4px; padding:4px; margin-block:17px 19px; width:100%; border-radius:7px; }
  .case-nav.sticky { top:90px; }
  .case-nav button { flex:1 0 auto; font-size:10px; min-height:37px; padding:8px 12px; }
  .experiment-page #film,.experiment-page #storyboard,.experiment-page #assets { scroll-margin-top:151px; }
  .experiment-page .video-frame { border-radius:5px; }
  .storyboard-section,.assets-section { margin-top:28px; }
  .shot-tabs { padding:3px; margin-bottom:14px; gap:3px; }
  .shot-tabs button { font-size:10px; padding:7px 13px; min-height:34px; }
  .shot-browser { grid-template-columns:25px minmax(0,1fr) 25px; gap:5px; }
  .shot-arrow { width:25px; height:36px; font-size:17px; }
  .shot-strip { grid-auto-columns:80%; gap:10px; padding-bottom:8px; }
  .shot-card .shot-topline { font-size:9px; padding:5px 8px; }
  .shot-card .image-caption { font-size:10px; padding:9px 9px 10px; min-height:47px; }
  .board-overviews { grid-template-columns:1fr; gap:10px; margin-top:15px; }
  .board-overview { padding:9px; grid-template-columns:76px minmax(0,1fr); gap:11px; }
  .board-overview img { width:76px; height:56px; }
  .board-overview strong { font-size:10px; margin-bottom:3px; }
  .board-overview span,.board-overview small { font-size:9px; }
  .asset-tabs { max-width:none; gap:3px; padding:3px; margin-bottom:17px; }
  .asset-tabs button { gap:5px; padding:8px 10px; min-height:37px; font-size:10px; }
  .asset-grid { gap:13px; }
  .asset-grid.characters { grid-template-columns:1fr; }
  .asset-grid.characters .image-card img { aspect-ratio:auto; height:auto; width:100%; max-height:none; object-fit:contain; }
  .asset-grid.scenes,.asset-grid.props { grid-template-columns:repeat(2,minmax(0,1fr)); gap:11px; }
  .asset-grid .image-card { padding:6px; border-radius:7px; }
  .asset-grid .image-caption { padding:9px 2px 4px; font-size:10px; line-height:1.7; }
  .profile-overview { grid-template-columns:1fr; gap:24px; padding:4px 0 27px; }
  .profile-overview::after { width:100%; height:60%; top:30%; right:0; }
  .profile-overview .about-copy h2 { font-size:27px; letter-spacing:-.8px; margin-bottom:8px; }
  .profile-overview .about-copy .profile-role { font-size:13px; margin-bottom:16px; }
  .profile-overview .about-copy p { font-size:12px; }
  .profile-portrait { width:160px; height:195px; border-radius:20px; }
  .profile-avatar-placeholder { gap:13px; font-size:10px; }
  .profile-avatar-placeholder svg { width:54px; height:54px; }
  .profile-details { grid-template-columns:1fr; gap:12px; margin-top:0; }
  .profile-card { padding:22px; min-height:205px; border-radius:10px; }
  .profile-card h2 { font-size:21px; margin:17px 0 12px; line-height:1.5; }
  .profile-card p { font-size:11px; line-height:1.9; }
  .profile-card .lines { margin-top:11px; gap:6px; max-width:220px; }
  .profile-card .lines span { height:4px; }
  .profile-card .button { min-height:39px; margin-top:8px; }
  .contact-stack { gap:13px; }
  .contact-stack .contact-card,.contact-stack .contact-card + .contact-card { grid-template-columns:50px minmax(0,1fr); gap:15px; padding:22px 19px; min-height:0; border-radius:10px; }
  .contact-icon { width:50px; height:50px; align-self:start; }
  .contact-icon svg { width:24px; height:24px; }
  .contact-card-body .contact-index { font-size:9px; margin-bottom:6px; }
  .contact-stack .contact-card h2 { font-size:20px; margin:0 0 8px; line-height:1.45; }
  .contact-stack .contact-description { font-size:10px; line-height:1.85; }
  .contact-stack .contact-value { font-size:12px; margin-top:7px; }
  .contact-card-action { grid-column:2; padding:0; border-left:0; min-height:0; justify-content:flex-start; }
  .contact-card-action .button { min-height:37px; font-size:10px; padding:8px 15px; }
  .wechat-qr { width:110px; height:110px; gap:8px; margin-top:3px; }
  .wechat-qr svg { width:31px; height:31px; }
  .wechat-qr small { font-size:8px; }
  .contact-note { font-size:10px; padding:14px 15px; border-radius:8px; margin-top:15px; gap:10px; }
  .contact-note svg { flex-basis:16px; width:16px; height:16px; }
  .contact-page .contact-closing { font-size:17px; margin-top:24px; }
}
@media (max-width:359px) {
  .site-shell { padding-inline:17px; }
  .brand-name { font-size:15px; }
  .brand-role { font-size:6px; letter-spacing:1.4px; }
  .hero-title { font-size:54px; letter-spacing:-3.5px; }
  .hero-copy .eyebrow { font-size:6px; letter-spacing:.7px; }
  .hero-copy .hero-actions { flex-direction:row; }
  .hero-copy .hero-actions .button { font-size:10px; padding-inline:14px; gap:17px; }
  .case-nav button { padding-inline:10px; font-size:9px; }
  .filter-button { padding-inline:8px; }
  .filter-button .count { margin-left:4px; }
}
@media (prefers-reduced-motion:reduce) {
  .shot-strip { scroll-behavior:auto; }
  .placeholder-cover::before,.placeholder-cover .cover-ribbon { transition:none; }
}

/* Match the final component markup without changing its content or behavior. */
.compact-heading > div { min-width:0; }
.compact-heading > div .eyebrow { margin-bottom:9px; }
.text-button { display:inline-flex; align-items:center; gap:10px; width:fit-content; padding:0; border:0; background:transparent; font-size:11px; color:#445c3e; line-height:1.8; }
.text-button:hover { text-decoration:underline; text-underline-offset:4px; }
.content-note,.gallery-hint { font-size:10px; line-height:1.8; color:#7d8775; margin:20px 0 0; }
.curated-grid .work-number { left:auto; right:18px; }
.placeholder-cover .art-note { font-size:9px; letter-spacing:1px; color:#64745e; }
.work-art > img { width:100%; height:100%; object-fit:cover; }
.filter-button.is-active,.filter-button[aria-pressed="true"] { color:var(--paper); background:var(--ink); border-color:var(--ink); }
.case-nav { position:sticky; top:112px; z-index:18; backdrop-filter:blur(16px); -webkit-backdrop-filter:blur(16px); }
.case-nav button > span { font-size:9px; opacity:.6; margin-left:5px; }
.experiment-page .video-frame { position:relative; display:block; width:100%; aspect-ratio:16/9; }
.experiment-page .video-frame video { position:absolute; inset:0; display:block; width:100%; height:100%; max-width:none; max-height:none; object-fit:contain; }
.film-play { position:absolute; z-index:2; left:50%; top:50%; transform:translate(-50%,-50%); display:grid; justify-items:center; gap:12px; padding:0; border:0; background:transparent; color:#fff; cursor:pointer; }
.film-play > span { display:grid; place-items:center; width:76px; height:76px; padding-left:4px; border:1px solid #f6ffe8b3; border-radius:50%; background:#132c1c80; backdrop-filter:blur(10px); font-size:24px; box-shadow:0 8px 40px #00190d55; transition:background .2s,color .2s,scale .2s; }
.film-play > strong { font-size:11px; font-weight:500; letter-spacing:1px; text-shadow:0 2px 8px #000; }
.film-play:hover > span,.film-play:focus-visible > span { background:#def18a; color:#203525; scale:1.06; }
.video-frame.has-started .film-play { display:none; }
.film-stills { margin-top:16px; border:1px solid #dce3d4; border-radius:7px; background:#fffdf75c; }
.film-stills summary { display:flex; justify-content:space-between; align-items:center; gap:15px; padding:13px 16px; list-style:none; font-size:11px; color:#65765b; cursor:pointer; }
.film-stills summary::-webkit-details-marker { display:none; }
.film-stills summary > span { font-size:17px; transition:rotate .2s; }
.film-stills[open] summary > span { rotate:45deg; }
.film-stills .image-grid { padding:0 14px 14px; gap:13px; }
.film-stills .image-caption { padding-top:7px; font-size:10px; background:transparent; }
.shot-topline time { color:#b9c9b4; font-size:8px; white-space:nowrap; }
.board-overview { grid-template-columns:94px minmax(0,1fr) 18px; }
.board-overview > [aria-hidden="true"] { font-size:19px; text-align:right; color:#526746; }
.asset-tabs button svg { flex:0 0 18px; width:18px; height:18px; }
.asset-tabs button > span { font-size:9px; opacity:.6; }
.asset-panel-heading { display:flex; justify-content:space-between; gap:15px; align-items:baseline; margin:0 0 15px; }
.asset-panel-heading h3 { margin:0; font-weight:500; font-size:15px; }
.asset-panel-heading > span { font-size:10px; color:#7a8771; }
.profile-portrait { position:relative; }
.profile-mark { position:absolute; right:13px; top:9px; font-size:27px; line-height:1; color:#a5bc58; }
.profile-avatar-placeholder strong { font-size:11px; font-weight:500; }
.profile-avatar-placeholder small { font-size:9px; color:#919b89; }
.profile-card .card-number { color:#82936c; font-size:9px; letter-spacing:1px; }
.profile-card .card-number::before { content:""; display:inline-block; width:4px; height:4px; margin-right:9px; border-radius:50%; background:#a5bf45; vertical-align:1px; }
.profile-card .placeholder-lines { margin-top:auto; width:100%; display:grid; gap:7px; }
.profile-card .placeholder-lines span { display:block; height:5px; border-radius:3px; background:#e9ece3; }
.profile-card .placeholder-lines span:last-child { width:72%; }
.profile-card .button svg { width:16px; height:16px; flex:0 0 16px; }
.profile-card .skill-tags { display:flex; flex-wrap:wrap; gap:7px; }
.profile-card .skill-tags > span { padding:5px 8px; border-radius:4px; border:1px solid #dce3d1; font-size:10px; color:#5d7051; }
.profile-card ul { padding-left:17px; margin:0; font-size:12px; color:#7a8474; line-height:1.85; }
.contact-stack .contact-card h2 { font-size:13px; font-weight:500; line-height:1.4; letter-spacing:0; margin:0 0 7px; color:#53684b; }
.contact-stack .contact-value { font-size:23px; font-weight:600; line-height:1.5; letter-spacing:-.5px; color:#263b28; margin:0 0 8px; }
.contact-card-action { flex-direction:column; gap:10px; }
.contact-stack .wechat-qr { justify-self:center; }
.wechat-qr > span { font-size:9px; line-height:1.6; text-align:center; }
.contact-page .contact-closing { display:flex; flex-wrap:wrap; gap:15px 28px; align-items:center; justify-content:space-between; max-width:none; }
.project-page .project-hero h1 { font-size:43px; line-height:1.2; letter-spacing:-1.5px; margin:0 0 16px; }
.project-page .detail-tabs { display:flex; gap:10px; margin-block:22px 32px; }
.project-page .detail-tabs button { width:auto; border:1px solid #d7e0ce; border-radius:5px; padding:8px 13px; font-size:11px; background:#fffdf773; }
.project-page .detail-tabs button:hover { background:#e2ebd0; }
.project-content { min-width:0; }
.project-page .placeholder-art { height:330px; min-height:330px; }
@media (max-width:760px) {
  .case-nav { top:90px; }
  .board-overview { grid-template-columns:76px minmax(0,1fr) 16px; gap:9px; }
  .board-overview > [aria-hidden="true"] { font-size:17px; }
  .asset-tabs button svg { flex-basis:16px; width:16px; height:16px; }
  .asset-tabs button > span { font-size:8px; }
  .asset-panel-heading { gap:10px; margin-bottom:13px; }
  .asset-panel-heading h3 { font-size:13px; }
  .asset-panel-heading > span { font-size:8px; }
  .film-stills { margin-top:12px; }
  .film-stills summary { padding:11px 13px; font-size:10px; }
  .film-stills .image-grid { padding:0 10px 10px; gap:9px; }
  .film-stills .image-caption { font-size:8px; }
  .profile-card .placeholder-lines { margin-top:11px; gap:6px; max-width:220px; }
  .profile-card .placeholder-lines span { height:4px; }
  .contact-stack .contact-card h2 { font-size:12px; margin-bottom:5px; }
  .contact-stack .contact-value { font-size:20px; margin:0 0 8px; letter-spacing:-.4px; }
  .contact-stack .wechat-qr { grid-column:2; justify-self:start; }
  .wechat-qr > span { font-size:8px; }
  .contact-card-action { align-items:flex-start; }
  .contact-page .contact-closing { gap:14px; align-items:flex-start; flex-direction:column; }
  .project-page .project-hero h1 { font-size:33px; letter-spacing:-1.2px; }
  .project-page .detail-tabs { gap:7px; margin-block:18px 25px; }
  .project-page .detail-tabs button { font-size:10px; padding:8px 10px; }
  .project-page .placeholder-art { height:260px; min-height:260px; }
}
