/* White, code-inspired visual language shared by the portfolio and cases. */
:root{--ink:#151515;--muted:#686868;--subtle:#888;--line:#e4e4e4;--soft:#fafafa}
.symbol{border-radius:2px;font-family:var(--mono);font-style:normal;font-size:12px;letter-spacing:-.08em}
.brand-type,.eyebrow,.cap-code,.case-eyebrow,.case-meta dt,.case-nav,.case-actions,.category-nav,.pdf-actions,.kicker{font-family:var(--mono)}
.eyebrow:before,.case-eyebrow:before,.cap-code:before{content:'// ';color:#a4a4a4}
.mast nav a:last-child,.hero-actions a,.category-nav a,.part-links button,.arrow,.modal-actions a,.modal-actions button,.close-dialog{border-radius:2px}
.hero-actions a{font-family:var(--mono)}
.category-nav a{border-color:transparent;border-bottom-color:var(--line);padding-inline:4px;margin-right:15px}
.category-nav small:before{content:'['}.category-nav small:after{content:']'}
.category-nav a:hover{background:#fff;border-color:transparent;border-bottom-color:#222}
.index-no{border:0;padding:0;color:#8a8a8a;white-space:nowrap}
.index-no:before{content:'[';margin-right:3px}.index-no:after{content:']';margin-left:3px}
.topic,.screen,.resume,.directory,.case-section{position:relative}
.topic:before,.screen:before,.resume:before{content:'+';position:absolute;top:-8px;left:-3px;font:12px var(--mono);line-height:14px;color:#9a9a9a;background:white}
.topic:after,.resume:after{content:'+';position:absolute;top:-8px;right:-3px;font:12px var(--mono);line-height:14px;color:#9a9a9a;background:white}
.screen:before{left:calc(var(--gutter) - 3px)}
.title-lock{gap:17px}.title-lock :is(h2,h3){letter-spacing:-.035em}
.hero-art{border:0;border-radius:0;background:transparent}
.case-visual,.poster,#business .unit,dialog{border-radius:3px}
.case-visual .visual-open{border-radius:2px;background:#fff}
.part-links button{font-family:var(--mono)}
.case-actions button,.case-actions a{font-family:var(--mono);font-size:10px}
.case-actions a:before,.film-project:before{content:'↳ ';color:#9a9a9a}
.progress{height:1px}.progress span{top:-1px;height:3px}
.system-demo{background:#fff;border-color:#dcdcdc;border-radius:2px;font-family:var(--body)}
.demo-chrome{background:#fff;border-color:#e5e5e5;padding-block:12px}
.demo-chrome b{font:500 11px var(--mono);color:#333}.demo-chrome small{color:#888}
.demo-dot{width:17px;height:auto;border-radius:0;background:none;color:#777;font:12px var(--mono)}
.demo-dot:before{content:'>_'}
.demo-tabs button{border-radius:2px;border-color:#e1e1e1;color:#777;font-family:var(--mono)}
.demo-tabs button[aria-pressed=true]{background:#fff;border-color:#333;color:#111;box-shadow:inset 0 -2px #333}
.demo-focus{background:#fff;border:1px dashed #d7d7d7;border-radius:2px}
.demo-focus small,.demo-node-heading small{color:#888}.demo-fields b{color:#555}
.demo-node-heading small:before{content:'// '}.demo-resource{border-color:#e5e5e5;color:#888;font-family:var(--mono)}
.demo-resource i{color:#aaa}.demo-task-head small,.demo-task-head>div:last-child>span{color:#888}
.mini-book{background:white;color:#202020;box-shadow:3px 2px 0 #eee;border:1px solid #bdbdbd;border-radius:1px;font-family:var(--mono)}
.demo-book>span{font-family:var(--mono);color:#999}
.demo-app-grid button{border-radius:2px;border-color:#e5e5e5}
.demo-app-grid button[aria-pressed=true]{background:#fafafa;border-color:#aaa}
.demo-app-grid small,.demo-graph-detail{color:#888}.demo-app-icon{font-family:var(--mono)}
.demo-graph path{stroke:#c9c9c9}.demo-graph circle{stroke:#b6b6b6}.demo-graph text{fill:#333}
.demo-book-select,.demo-editor-label textarea,.shot-table,.asset-tiles>div,.export-options label,.publish-fields select,.publish-fields input,.role-pills span{border-radius:2px;border-color:#e1e1e1}
.demo-book-select>span,.demo-editor-label,.demo-editor-meta,.demo-plan-row,.demo-plan-row b,.publish-fields label,.role-pills span,.artifact-list>div,.artifact-list>div>span,.export-options span,.export-tracks{color:#858585}
.demo-editor-label textarea,.publish-fields select,.publish-fields input,.export-options strong{color:#555}
.shot-head{background:#fafafa;color:#999}.shot-row{border-color:#ebebeb}.shot-row b,.frame-glyph,.audio-glyph{color:#999}
.system-demo input[type=radio]{accent-color:#222}
.code-cover,.case-demo{background-color:#fff;background-image:linear-gradient(#f1f1f1 1px,transparent 1px),linear-gradient(90deg,#f1f1f1 1px,transparent 1px);background-size:24px 24px}
.code-cover{border:1px solid #e1e1e1;padding:20px 20px 0}
.code-cover .system-demo,.case-demo .system-demo{box-shadow:none}
.case-demo{border:1px solid var(--line);border-radius:2px}
.case-metrics,.decision-grid article,.workflow-strip>div,.case-video,.book-reader{border-radius:2px}
.case-metrics>div,.workflow-strip>div{background:#fff}
.case-metrics strong{font-family:var(--mono);font-weight:500;font-size:clamp(27px,2.8vw,40px);letter-spacing:-.065em}
.case-section-title>span:before,.decision-num:before{content:'['}.case-section-title>span:after,.decision-num:after{content:']'}
.case-section:after{content:'+';position:absolute;right:-3px;bottom:-7px;background:white;color:#aaa;font:12px/14px var(--mono)}
.workflow-strip span{font-family:var(--mono)}.workflow-strip span:before{content:'step_'}
.tech-grid small:before{content:'// ';color:#aaa}.tech-grid small{font-family:var(--mono)}
.book-toc{background:#fafafa}.book-toc button,.book-toolbar select,.book-pager button{border-radius:2px}
.book-toc button[aria-current=true]{box-shadow:none;border-left:2px solid #222;background:#fff}
.book-toolbar,.book-pager,.manuscript-heading small{font-family:var(--mono)}
.case-lead,.problem-text,.unit p,.bio p,.book-text p,.decision-grid p,.tech-grid p,.outcome-list p{color:#626262}
.metric-note,.visual-note,.evidence-note,.case-metrics small,.case-section-title>span,.decision-num,.tech-grid small{color:#888}
@media(max-width:760px){.title-lock{gap:10px}.category-nav{gap:7px}.category-nav a{margin-right:4px;padding:8px 2px;font-size:10px}.code-cover{padding:13px 12px 0}.case-metrics strong{font-size:clamp(17px,4.6vw,22px)}.case-demo{padding:12px}.screen .index-no{font-size:8px}.screen .title-lock{gap:7px}}

/* Compact production credits; no extra separator line around each card. */
.creation-meta{margin:15px 0 17px;display:grid;gap:7px;font-size:10px;line-height:1.7}
.creation-meta>div{display:grid;grid-template-columns:64px minmax(0,1fr);gap:10px;align-items:baseline}
.creation-meta dt{margin:0;color:#939393;font:9px/1.7 var(--mono);font-weight:400}
.creation-meta dd{margin:0;color:#535353;font-size:10px;overflow-wrap:anywhere}
.creation-meta dd.meta-pending{color:#a1a1a1}
.modal-text .creation-meta{margin:19px 0 23px;gap:8px}
.modal-text .creation-meta dt{font-size:10px;margin:0;font-weight:400}
.modal-text .creation-meta dd{font-size:12px;line-height:1.7}
@media(max-width:760px){.creation-meta{gap:6px;margin-block:13px 16px}.creation-meta>div{grid-template-columns:58px minmax(0,1fr);gap:8px}.creation-meta dd{font-size:10px}}

.lingjing-product-cover{aspect-ratio:1.6;background:#fafafa;position:relative;padding:0;isolation:isolate}
.lj-cover-heading{position:absolute;top:21px;left:25px;right:25px;display:flex;gap:11px;align-items:baseline;z-index:2}
.lj-cover-heading>span{font:8px var(--mono);letter-spacing:.13em;color:#888}.lj-cover-heading>b{font:650 25px var(--display);letter-spacing:-.04em}.lj-cover-heading>small{margin-left:auto;font:9px var(--mono);color:#888}
.lj-cover-main{position:absolute;left:5%;top:20%;width:90%;height:auto;border:1px solid #dedede;background:white;box-shadow:0 12px 30px #00000009;overflow:hidden;border-radius:4px}
.lj-cover-bar{font:7px var(--mono);color:#888;height:23px;display:flex;align-items:center;padding-left:12px;border-bottom:1px solid #eee}
.lj-cover-main img{display:block;width:100%;height:auto}
.lj-cover-float{position:absolute;width:24%;right:6%;top:29%;height:92%;padding:8px;background:white;border:1px solid #ddd;border-radius:5px;box-shadow:0 9px 25px #0000000e;overflow:hidden}
.lj-cover-float>span{display:block;font:6px var(--mono);color:#888;margin:1px 0 7px;text-align:center}.lj-cover-float>img{width:100%;height:auto;display:block}
@media(max-width:760px){.lj-cover-heading{top:16px;left:17px;right:17px;gap:8px}.lj-cover-heading>b{font-size:22px}.lj-cover-heading>span{font-size:7px}.lj-cover-heading>small{font-size:8px}.lj-cover-main{position:absolute;left:5%;top:22%;width:90%;height:auto;border:1px solid #dedede;background:white;box-shadow:0 12px 30px #00000009;overflow:hidden;border-radius:4px}.lj-cover-float{top:32%;padding:5px}.lj-cover-bar{height:19px;font-size:6px}}

/* Lingjing V2: canvas-first product cover */
.lj-cover-bar{justify-content:space-between;padding-inline:10px}.lj-cover-bar>span{font-size:5px;letter-spacing:.02em}.lj-cover-foot{position:absolute;bottom:13px;left:6%;right:6%;display:flex;justify-content:space-between;font:8px var(--mono);color:#888}.lj-cover-foot>span:first-child{color:#444}.lingjing-product-cover .visual-open{z-index:3}@media(max-width:760px){.lj-cover-bar>span{font-size:5px}.lj-cover-foot{bottom:8px;font-size:7px}.lj-cover-bar{height:19px}}

.lj-cover-foot{display:none}.lj-cover-bar{height:20px}@media(max-width:760px){.lj-cover-bar{height:14px}}

@media(max-width:760px){.lingjing-product-cover .lj-cover-main{left:7%;width:86%;top:20%}}

/* A single company collection, followed by personal work. */
#projects .collection-heading{display:flex;align-items:baseline;margin-bottom:25px}
.collection-heading .title-lock h2,.personal-work>.title-lock h2{font-size:clamp(32px,3vw,42px);font-weight:650;letter-spacing:-.04em}
.personal-jump{font-size:11px;color:#777;white-space:nowrap;border-bottom:1px solid #ddd;padding-bottom:4px}
.personal-jump:hover{color:#111;border-color:#111}
.personal-work{padding-top:42px}
@media(max-width:760px){#projects .collection-heading{margin-bottom:19px;gap:15px}.collection-heading .title-lock h2,.personal-work>.title-lock h2{font-size:30px}.personal-jump{font-size:10px}.personal-work{padding-top:30px}}
