@font-face { font-family:Inter; font-style:normal; font-weight:100 900; font-display:swap; src:url("assets/fonts/InterVariable.woff2") format("woff2-variations"); }
:root { --canvas:#fff; --surface:#f5f5f5; --ink:#000; --muted:#737373; --border:#e5e5e5; --rail:208px; --gutter:clamp(22px,4.2vw,72px); --ease:cubic-bezier(.2,0,0,1); --quick:180ms; --standard:320ms; --slow:680ms; color-scheme:light; }
[data-theme="dark"] { --canvas:#000; --surface:#141414; --ink:#fff; --muted:#a3a3a3; --border:#2a2a2a; color-scheme:dark; }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; background:var(--canvas); }
body { margin:0; background:var(--canvas); color:var(--ink); font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI","PingFang SC","Microsoft YaHei",Arial,sans-serif; font-size:16px; line-height:1.45; letter-spacing:-.015em; transition:background var(--standard) var(--ease),color var(--standard) var(--ease); }
button,a { color:inherit; font:inherit; }
a { text-decoration:none; }
button { border:0; background:none; cursor:pointer; }
img { display:block; height:auto; max-width:100%; }
.lang-zh { display:none; }
[data-lang="zh"] .lang-en { display:none; }
[data-lang="zh"] .lang-zh { display:inline; }
.skip-link { background:var(--ink); color:var(--canvas); left:16px; padding:10px 14px; position:fixed; top:-60px; z-index:20; }
.skip-link:focus { top:16px; }
.sr-only { clip:rect(0,0,0,0); clip-path:inset(50%); height:1px; overflow:hidden; position:absolute; white-space:nowrap; width:1px; }
:focus-visible { outline:2px solid var(--ink); outline-offset:4px; }
[data-theme="dark"] :focus-visible { outline-color:#fff; }
.rail { align-items:stretch; background:var(--canvas); border-right:1px solid var(--border); display:flex; flex-direction:column; height:100vh; left:0; padding:28px 26px 24px; position:fixed; top:0; width:var(--rail); z-index:8; }
.monogram { display:block; line-height:1; width:62px; }
.monogram img { aspect-ratio:553 / 242; display:block; height:auto; object-fit:contain; width:100%; }
[data-theme="dark"] .monogram img,[data-theme="dark"] .case-nav-brand img { filter:invert(1); }
.rail-name { font-size:13px; font-weight:800; letter-spacing:-.05em; line-height:.92; margin-top:38px; }
.rail-role { color:var(--muted); font-size:10px; font-weight:650; letter-spacing:.045em; line-height:1.3; margin:13px 0 0; text-transform:uppercase; }
.rail-nav { display:flex; flex-direction:column; gap:3px; margin-top:clamp(48px,9vh,116px); }
.rail-nav > a,.nav-parent { align-items:center; border-bottom:1px solid var(--border); display:flex; font-size:11px; font-weight:720; justify-content:space-between; letter-spacing:.04em; min-height:43px; padding:0; text-align:left; transition:color var(--quick) var(--ease),padding-left var(--quick) var(--ease); }
.rail-nav > a:hover,.nav-parent:hover { padding-left:5px; }
.nav-parent svg { fill:none; height:14px; stroke:currentColor; stroke-linecap:round; stroke-linejoin:round; stroke-width:1.7; transition:transform var(--quick) var(--ease); width:14px; }
.nav-parent[aria-expanded="false"] svg { transform:rotate(-90deg); }
.project-nav { display:grid; gap:1px; max-height:160px; overflow:hidden; transition:max-height 220ms var(--ease),opacity 160ms var(--ease); }
.project-nav.is-collapsed { max-height:0; opacity:0; }
.project-nav a { color:var(--muted); display:flex; font-size:10px; font-weight:550; gap:9px; letter-spacing:.005em; line-height:1.15; padding:7px 0; transition:color var(--quick) var(--ease),transform var(--quick) var(--ease); }
.project-nav a span { color:var(--ink); font-size:9px; font-variant-numeric:tabular-nums; }
.project-nav a:hover,.project-nav a.is-current { color:var(--ink); transform:translateX(4px); }
.rail-utils { display:flex; gap:11px; margin-top:auto; }
.utility-button { align-items:center; color:var(--muted); display:inline-flex; font-size:9px; font-weight:700; gap:5px; letter-spacing:.05em; min-height:32px; padding:0; text-transform:uppercase; transition:color var(--quick) var(--ease),transform var(--quick) var(--ease); }
.utility-button:hover { color:var(--ink); }
.utility-button:active { transform:translateY(1px); }
.utility-button svg { fill:none; height:13px; stroke:currentColor; stroke-linecap:round; stroke-width:1.4; width:13px; }
.mobile-header,.mobile-menu { display:none; }
main { margin-left:var(--rail); }
.section { border-bottom:1px solid var(--border); padding:clamp(72px,9vw,150px) var(--gutter); position:relative; }
.section-index,.fact-label,.contact-label { color:var(--muted); font-size:10px; font-weight:700; letter-spacing:.055em; margin:0; text-transform:uppercase; }
.hero { display:grid; grid-template-columns:minmax(0,1.7fr) minmax(260px,.75fr); min-height:100vh; padding-top:clamp(108px,14vh,180px); }
.hero-copy { max-width:850px; }
.hero h1,.section h2 { font-size:clamp(52px,6.5vw,116px); font-weight:770; letter-spacing:-.075em; line-height:.91; margin:22px 0 30px; max-width:11ch; }
.hero h1 { color:color-mix(in srgb,var(--ink) 82%,var(--canvas)); }
[data-lang="zh"] .hero h1,[data-lang="zh"] .section h2 { letter-spacing:-.06em; line-height:1.04; }
.hero-intro { color:var(--muted); font-size:clamp(16px,1.45vw,22px); line-height:1.38; margin:0; max-width:600px; }
.cta-row { display:flex; flex-wrap:wrap; gap:10px; margin-top:34px; }
.cta { align-items:center; border:1px solid var(--ink); border-radius:100px; display:inline-flex; font-size:12px; font-weight:700; gap:20px; justify-content:space-between; letter-spacing:-.005em; min-height:46px; padding:0 17px; transition:background var(--quick) var(--ease),color var(--quick) var(--ease),transform var(--quick) var(--ease); }
.cta:hover { transform:translateY(-2px); }
.cta-solid { background:var(--ink); color:var(--canvas); }
.cta-solid:hover { background:var(--surface); color:var(--ink); }
.cta-outline:hover { background:var(--ink); color:var(--canvas); }
.cta-light { background:var(--canvas); border-color:var(--canvas); color:var(--ink); }
.cta-light:hover { background:transparent; color:var(--canvas); }
.pending-note { color:var(--muted); font-size:11px; min-height:16px; margin:10px 0 0; }
.hero-game { margin-top:clamp(76px,9vh,112px); max-width:100%; }
.trex-game { border-bottom:1px solid var(--border); border-top:1px solid var(--border); cursor:pointer; height:clamp(220px,18vw,240px); outline:none; position:relative; touch-action:manipulation; user-select:none; width:100%; }
.trex-game:focus-visible { border-color:var(--ink); outline:none; }
.trex-game-canvas { display:block; height:100%; width:100%; }
.hero-facts { border-left:1px solid var(--border); display:flex; flex-direction:column; gap:48px; margin-left:clamp(28px,5vw,92px); padding-left:clamp(22px,3vw,48px); padding-top:35px; }
.fact { border-bottom:1px solid var(--border); padding-bottom:24px; }
.fact p { font-size:14px; line-height:1.45; margin:9px 0 0; }
.process-line { align-self:end; display:grid; grid-column:1/-1; grid-template-columns:repeat(4,1fr); margin-top:clamp(80px,13vh,170px); position:relative; }
.process-line::before { background:var(--border); content:""; height:1px; left:0; position:absolute; right:0; top:0; }
.process-line div { padding-top:22px; position:relative; }
.process-line i { background:var(--canvas); border:1px solid var(--ink); border-radius:50%; height:14px; left:0; position:absolute; top:-7px; width:14px; }
.process-line span,.process-line small { display:block; font-size:11px; font-weight:650; letter-spacing:.015em; }
.process-line small { color:var(--muted); font-size:10px; font-weight:500; margin-top:4px; }
.section-dark { background:var(--ink); color:var(--canvas); }
.section-dark .section-index,.section-dark .side-copy { color:color-mix(in srgb,var(--canvas) 65%,transparent); }
.practice { display:grid; grid-template-columns:minmax(180px,.42fr) 1fr; gap:clamp(46px,9vw,150px); min-height:780px; }
.practice-side { display:flex; flex-direction:column; min-height:100%; }
.side-copy { font-size:15px; line-height:1.45; margin:25px 0; max-width:215px; }
.text-link { align-items:center; border-bottom:1px solid currentColor; display:inline-flex; font-size:12px; font-weight:700; gap:19px; margin-top:auto; padding-bottom:7px; transition:opacity var(--quick) var(--ease); width:max-content; }
.text-link:hover { opacity:.6; }
.practice-main { display:flex; flex-direction:column; }
.practice h2 { font-size:clamp(58px,7vw,124px); margin:0; max-width:9ch; }
.practice-process { display:grid; grid-template-columns:repeat(4,1fr); margin-top:auto; padding-top:100px; position:relative; }
.practice-process::before { background:var(--border); content:""; height:1px; left:0; position:absolute; right:0; top:100px; }
.practice-process div { padding-top:22px; position:relative; }
.practice-process b { background:var(--ink); border:1px solid var(--canvas); border-radius:50%; font-size:0; height:15px; left:0; position:absolute; top:-7px; width:15px; }
.practice-process span,.practice-process small { display:block; font-size:11px; font-weight:700; }
.practice-process small { color:color-mix(in srgb,var(--canvas) 58%,transparent); font-weight:500; margin-top:4px; }
.work-index { padding-bottom:0; }
.section-heading { display:grid; grid-template-columns:.36fr 1.35fr .65fr; gap:25px; margin-bottom:72px; }
.section-heading h2 { font-size:clamp(48px,5.7vw,100px); margin:0; max-width:none; }
.section-heading > p:last-child { align-self:end; color:var(--muted); font-size:15px; line-height:1.45; margin:0 0 8px; max-width:280px; }
.work-list { border-top:1px solid var(--border); }
.work-row { display:grid; grid-template-areas:"meta media" "title media"; grid-template-columns:.27fr 1fr; grid-template-rows:auto 1fr; min-height:clamp(270px,28vw,470px); padding:20px 0; transition:opacity var(--quick) var(--ease); }
.work-row + .work-row { border-top:1px solid var(--border); }
.work-row:hover { opacity:.72; }
.work-meta { align-items:flex-start; color:var(--muted); display:flex; flex-direction:column; font-size:10px; font-weight:650; gap:5px; grid-area:meta; letter-spacing:.025em; padding:9px 28px 0 0; }
.work-row figure { grid-area:media; margin:0; overflow:hidden; }
.work-row img { aspect-ratio:16/8.4; object-fit:cover; transition:transform 600ms var(--ease); width:100%; }
.work-row:hover img { transform:scale(1.025); }
.work-row figcaption { display:none; }
.work-title { align-items:end; align-self:end; color:var(--ink); display:flex; grid-area:title; justify-content:space-between; padding:0 28px 8px 0; }
.work-title h3 { font-size:clamp(27px,3.25vw,55px); letter-spacing:-.065em; line-height:.9; margin:0; max-width:4.7ch; }
.work-title span { font-size:24px; }
.case { overflow:hidden; }
.case-media { margin:0; overflow:hidden; }
.case-media img,.wide-evidence img { aspect-ratio:16/8; object-fit:cover; width:100%; }
.case-grid { display:grid; gap:clamp(55px,12vw,210px); grid-template-columns:.7fr 1fr; padding-top:clamp(44px,7vw,100px); }
.case-intro h2 { font-size:clamp(50px,6.6vw,112px); margin:18px 0 14px; max-width:none; }
.case-type,.project-mark { color:var(--muted); font-size:11px; font-weight:650; letter-spacing:.02em; margin:0; }
.project-mark { border:1px solid var(--border); border-radius:100px; display:inline-block; padding:6px 10px; }
.case-copy { align-self:end; max-width:560px; }
.case-copy > p { font-size:clamp(18px,2vw,29px); letter-spacing:-.04em; line-height:1.13; margin:0 0 42px; }
.case-copy dl { border-top:1px solid var(--border); margin:0; padding-top:17px; }
.case-copy dl div { display:grid; grid-template-columns:130px 1fr; gap:18px; }
.case-copy dt { color:var(--muted); font-size:10px; font-weight:700; letter-spacing:.055em; text-transform:uppercase; }
.case-copy dd { font-size:13px; line-height:1.42; margin:0; }
.case-evidence { border-top:1px solid var(--border); display:grid; gap:20px; grid-template-columns:1fr 1fr; margin-top:clamp(55px,8vw,120px); padding-top:20px; }
.case-evidence figure,.wide-evidence { margin:0; }
.case-evidence img { aspect-ratio:16/9; object-fit:cover; width:100%; }
figcaption { color:var(--muted); font-size:10px; font-weight:600; letter-spacing:.015em; margin-top:9px; }
.case-roa .case-media img { aspect-ratio:16/7.2; }
.case-split { align-items:start; display:grid; gap:clamp(45px,8vw,138px); grid-template-columns:.85fr 1fr; }
.case-zero .case-media img { aspect-ratio:1.06/1; }
.case-summary { font-size:clamp(18px,2vw,28px); letter-spacing:-.04em; line-height:1.14; margin:45px 0 0; max-width:510px; }
.wide-evidence { border-top:1px solid var(--border); margin-top:clamp(60px,10vw,160px); padding-top:20px; }
.case-dice .case-media img { aspect-ratio:16/7; }
.profile { display:grid; gap:clamp(32px,4.5vw,74px); grid-template-columns:minmax(260px,1fr) minmax(330px,.95fr) minmax(190px,.5fr); }
.profile h2 { font-size:clamp(47px,5.5vw,90px); margin:22px 0 30px; }
.profile-intro { color:var(--muted); font-size:15px; line-height:1.48; margin:0; max-width:390px; }
.profile-copy .text-link { margin-top:44px; }
.profile-details { display:flex; flex-direction:column; gap:38px; }
.profile-block > .fact-label { display:block; margin-bottom:14px; }
.profile-history { border-top:1px solid var(--border); }
.history-item { border-bottom:1px solid var(--border); display:grid; grid-template-columns:minmax(105px,.85fr) 1.35fr; gap:18px; padding:18px 0; }
.history-item > span { color:var(--muted); font-size:9px; font-variant-numeric:tabular-nums; font-weight:700; letter-spacing:.025em; line-height:1.3; }
.history-item p { font-size:13px; line-height:1.38; margin:0; }
.history-item strong { font-size:13px; font-weight:720; }
.skills-grid { border-top:1px solid var(--border); display:grid; grid-template-columns:1fr 1fr; }
.skills-grid > div { border-bottom:1px solid var(--border); min-height:108px; padding:15px 15px 16px 0; }
.skills-grid > div:nth-child(odd) { border-right:1px solid var(--border); padding-right:16px; }
.skills-grid > div:nth-child(even) { padding-left:16px; }
.skills-grid strong { font-size:11px; font-weight:750; letter-spacing:.02em; }
.skills-grid p { color:var(--muted); font-size:11px; line-height:1.4; margin:8px 0 0; }
.profile-image { align-self:start; margin:0; }
.profile-image img { aspect-ratio:2/3; object-fit:cover; width:100%; }
.contact { display:grid; grid-template-columns:1fr 1fr; gap:clamp(48px,11vw,180px); min-height:760px; padding-bottom:30px; }
.contact h2 { font-size:clamp(58px,7.2vw,124px); margin:22px 0 36px; }
.contact-list { align-self:center; }
.contact-list a,.contact-cv { align-items:center; border-bottom:1px solid var(--border); display:grid; font-size:clamp(14px,1.3vw,19px); grid-template-columns:105px 1fr auto; gap:15px; padding:20px 0; text-align:left; transition:opacity var(--quick) var(--ease); width:100%; }
.contact-list a:first-child { border-top:1px solid var(--border); }
.contact-list a:hover { opacity:.65; }
.contact-list .contact-label { color:var(--muted); font-size:10px; }
.contact-list b { font-size:19px; font-weight:400; }
.contact-cv { color:var(--muted); cursor:pointer; }
.contact footer { align-items:end; color:var(--muted); display:flex; font-size:9px; font-weight:700; grid-column:1/-1; justify-content:space-between; letter-spacing:.05em; margin-top:auto; text-transform:uppercase; }
.reveal { opacity:0; transform:translateY(18px); transition:opacity 560ms var(--ease),transform 560ms var(--ease); }
.reveal.is-visible { opacity:1; transform:none; }
.reveal-delay { transition-delay:80ms; }
.reveal-delay-2 { transition-delay:160ms; }
.case-page main { margin-left:0; padding-top:0; }
.case-nav { align-items:center; background:var(--canvas); border-bottom:1px solid var(--border); display:flex; isolation:isolate; justify-content:space-between; padding:18px var(--gutter); position:sticky; top:0; z-index:5; }
.case-nav-brand { align-items:center; display:flex; gap:18px; }
.case-nav-brand img { aspect-ratio:553 / 242; flex:0 0 auto; height:auto; object-fit:contain; width:43px; }
.case-nav-brand span,.case-nav a { font-size:11px; font-weight:750; letter-spacing:.025em; }
.case-nav-controls { align-items:center; display:flex; gap:22px; }
.case-nav .utility-button { min-height:24px; }
.case-project { padding:clamp(64px,9vw,144px) var(--gutter) 36px; }
.case-project-head { align-items:end; display:grid; gap:40px; grid-template-columns:.38fr 1fr .65fr; margin-bottom:clamp(48px,7vw,96px); }
.case-project-head h1 { font-size:clamp(62px,9vw,152px); font-weight:770; letter-spacing:-.08em; line-height:.82; margin:0; }
.case-project-head > p:last-child { color:var(--muted); font-size:15px; line-height:1.45; margin:0; max-width:340px; }
.case-project-hero { margin:0; }
.case-project-hero img { aspect-ratio:16/8; object-fit:cover; width:100%; }
.case-project-info { display:grid; gap:clamp(36px,9vw,150px); grid-template-columns:.78fr 1fr; padding:clamp(46px,7vw,100px) 0; }
.case-overview { min-width:0; }
.case-section-label { color:var(--muted); font-size:10px; font-weight:700; letter-spacing:.055em; margin:0 0 18px; text-transform:uppercase; }
.case-project-copy { font-size:clamp(21px,2.3vw,34px); letter-spacing:-.045em; line-height:1.13; margin:0; max-width:650px; }
.case-project-meta { border-top:1px solid var(--border); display:grid; grid-template-columns:130px 1fr; gap:20px; margin:0; padding-top:16px; }
.case-project-meta dt { color:var(--muted); font-size:10px; font-weight:700; letter-spacing:.055em; text-transform:uppercase; }
.case-project-meta dd { font-size:13px; line-height:1.45; margin:0; }
.case-evidence-grid { border-top:1px solid var(--border); display:grid; gap:20px; grid-template-columns:1fr 1fr; padding-top:20px; }
.case-evidence-grid figure { margin:0; }
.case-evidence-grid img { aspect-ratio:16/9; object-fit:cover; width:100%; }
.case-study-section { border-top:1px solid var(--border); margin-top:clamp(72px,10vw,150px); padding-top:20px; scroll-margin-top:90px; }
.case-evidence-grid--single { grid-template-columns:minmax(0,1fr); }
.case-outcome-figure { border-top:1px solid var(--border); margin:0; padding-top:20px; }
.case-outcome-figure img { aspect-ratio:3/2; display:block; object-fit:cover; width:100%; }
.case-outcome-figure figcaption { color:var(--muted); font-size:10px; font-weight:700; letter-spacing:.045em; line-height:1.25; margin-top:11px; text-transform:uppercase; }
.evidence-media--portrait img { object-fit:contain; }
.case-outcome-poster .evidence-media { aspect-ratio:3508/4967; margin-inline:auto; max-width:498px; }
.case-outcome-poster img { aspect-ratio:3508/4967; object-fit:contain; }
.case-poster-trigger { background:transparent; border:0; cursor:zoom-in; display:block; margin:0; padding:0; width:100%; }
.case-poster-trigger .evidence-media { transition:transform 320ms var(--ease); }
.case-poster-trigger img { transition:transform 420ms var(--ease); }
.case-poster-trigger:focus-visible { outline:1px solid var(--ink); outline-offset:7px; }
@media (hover:hover) { .case-poster-trigger:hover .evidence-media { transform:translateY(-2px); } .case-poster-trigger:hover img { transform:scale(1.012); } }
.image-lightbox { align-items:center; display:flex; inset:0; justify-content:center; opacity:0; padding:clamp(20px,4vw,56px); position:fixed; transition:opacity 320ms var(--ease); z-index:100; }
.image-lightbox[hidden] { display:none; }
.image-lightbox.is-open { opacity:1; }
.image-lightbox-backdrop { background:rgb(0 0 0 / .78); inset:0; position:absolute; }
.image-lightbox-dialog { align-items:center; display:flex; height:100%; justify-content:center; max-width:min(100%, 1180px); opacity:0; position:relative; transform:translateY(10px) scale(.985); transition:opacity 360ms var(--ease) 30ms,transform 360ms var(--ease) 30ms; width:100%; }
.image-lightbox.is-open .image-lightbox-dialog { opacity:1; transform:none; }
.image-lightbox-image { display:block; height:100%; max-height:calc(100dvh - clamp(40px,8vw,112px)); max-width:100%; object-fit:contain; width:100%; }
.image-lightbox-close { align-items:center; background:var(--canvas); border:1px solid var(--border); border-radius:0; color:var(--ink); display:flex; font:inherit; font-size:10px; font-weight:700; height:34px; justify-content:center; letter-spacing:.04em; line-height:1; padding:0; position:absolute; right:0; text-transform:uppercase; top:0; transition:background var(--quick) var(--ease),color var(--quick) var(--ease); width:34px; }
.image-lightbox-close:hover,.image-lightbox-close:focus-visible { background:var(--ink); color:var(--canvas); }
.image-lightbox-close:focus-visible { outline:1px solid var(--canvas); outline-offset:3px; }
body.lightbox-open { overflow:hidden; }
.case-gallery { border-top:1px solid var(--border); margin-top:clamp(72px,10vw,150px); padding-top:20px; scroll-margin-top:90px; }
.case-gallery-heading { align-items:start; display:grid; gap:36px; grid-template-columns:.32fr minmax(0,1.08fr) minmax(210px,.62fr); margin-bottom:28px; }
.case-gallery-heading h2 { font-size:clamp(42px,5vw,78px); letter-spacing:-.07em; line-height:.9; margin:0; }
.case-gallery-heading > p:last-child { color:var(--muted); font-size:14px; line-height:1.42; margin:4px 0 0; max-width:280px; }
.case-gallery-grid { display:grid; gap:20px; grid-template-columns:minmax(0,1.18fr) minmax(0,.82fr); grid-template-rows:repeat(2,1fr); }
.gallery-frame { background:var(--surface); margin:0; overflow:hidden; }
.gallery-frame--feature { aspect-ratio:4/3; grid-row:span 2; }
.gallery-frame:not(.gallery-frame--feature) { aspect-ratio:16/9; }
.gallery-frame img { display:block; height:100%; object-fit:cover; transition:filter 320ms var(--ease),transform 600ms var(--ease); width:100%; }
.gallery-frame--feature img { object-position:50% 72%; }
.gallery-frame:not(.gallery-frame--feature) img { object-position:50% 68%; }
.gallery-frame figcaption { align-items:center; color:var(--muted); display:flex; font-size:10px; font-weight:700; justify-content:space-between; letter-spacing:.045em; line-height:1.25; padding:11px 0 1px; text-transform:uppercase; transition:color 320ms var(--ease),transform 320ms var(--ease); }
.gallery-frame:hover img { filter:contrast(1.02); transform:scale(1.025); }
.gallery-frame:hover figcaption { color:var(--ink); transform:translateX(4px); }
.case-page-footer { align-items:center; border-top:1px solid var(--border); display:flex; font-size:10px; font-weight:700; justify-content:space-between; letter-spacing:.04em; margin-top:clamp(68px,10vw,150px); padding:22px var(--gutter); text-transform:uppercase; }
.case-scroll-progress { background:var(--ink); bottom:-1px; height:1px; left:0; position:absolute; right:0; transform:scaleX(0); transform-origin:left center; will-change:transform; z-index:1; }
.case-back { align-items:center; display:inline-flex; justify-content:center; min-height:24px; min-width:24px; }
.case-back-arrow { display:inline-block; transition:transform var(--quick) var(--ease); }
.case-back:hover .case-back-arrow,.case-back:focus-visible .case-back-arrow { transform:translateX(-3px); }
.case-title-line { display:block; margin-bottom:-.08em; overflow:hidden; padding-bottom:.08em; }
.case-title-line > span { display:block; transform:translateY(112%); transition:transform var(--slow) var(--ease); }
.case-title-line + .case-title-line > span { transition-delay:70ms; }
.case-project-head.case-entrance > .section-index,.case-project-head.case-entrance > p:last-child { opacity:0; transform:translateY(10px); transition:opacity 420ms var(--ease),transform 420ms var(--ease); }
.case-project-head.case-entrance > p:last-child { transition-delay:190ms; }
.case-project-head.case-entrance.is-visible .case-title-line > span { transform:none; }
.case-project-head.case-entrance.is-visible > .section-index,.case-project-head.case-entrance.is-visible > p:last-child { opacity:1; transform:none; }
.case-project-hero.case-entrance { opacity:0; transform:translateY(10px); transition:opacity 520ms var(--ease) 140ms,transform 520ms var(--ease) 140ms; }
.case-project-hero.case-entrance.is-visible { opacity:1; transform:none; }
.case-project-hero-media,.evidence-media { background:var(--surface); overflow:hidden; }
.case-project-hero-media img { transform:scale(1.018); transition:transform var(--slow) var(--ease) 140ms; }
.case-project-hero.is-visible .case-project-hero-media img { transform:none; }
.case-project-hero.case-entrance figcaption { opacity:0; transform:translateX(-5px); transition:opacity 320ms var(--ease) 400ms,transform 320ms var(--ease) 400ms; }
.case-project-hero.case-entrance.is-visible figcaption { opacity:1; transform:none; }
.reveal-copy { transform:translateY(.55em); }
.case-project-meta.reveal-meta { border-top:0; opacity:1; position:relative; transform:none; transition:none; }
.case-project-meta.reveal-meta::before { background:var(--border); content:""; height:1px; left:0; position:absolute; right:0; top:0; transform:scaleX(0); transform-origin:left center; transition:transform 520ms var(--ease); }
.case-project-meta.reveal-meta dt,.case-project-meta.reveal-meta dd { opacity:0; transform:translateY(8px); transition:opacity 360ms var(--ease),transform 360ms var(--ease); }
.case-project-meta.reveal-meta dd { transition-delay:70ms; }
.case-project-meta.reveal-meta.is-visible::before { transform:scaleX(1); }
.case-project-meta.reveal-meta.is-visible dt,.case-project-meta.reveal-meta.is-visible dd { opacity:1; transform:none; }
.case-evidence-grid.reveal-group > figure { opacity:0; transform:translateY(12px); transition:opacity 460ms var(--ease),transform 460ms var(--ease); }
.case-evidence-grid.reveal-group > figure:nth-child(2) { transition-delay:80ms; }
.case-evidence-grid.reveal-group.is-visible > figure { opacity:1; transform:none; }
.case-evidence-grid.reveal-group img { transform:scale(1.018); transition:filter var(--standard) var(--ease),transform var(--slow) var(--ease); }
.case-evidence-grid.reveal-group.is-visible img { transform:none; }
.case-evidence-grid.reveal-group figcaption { opacity:0; transform:translateX(-4px); transition:color var(--standard) var(--ease),opacity 320ms var(--ease) 180ms,transform 320ms var(--ease) 180ms; }
.case-evidence-grid.reveal-group.is-visible figcaption { opacity:1; transform:none; }
.evidence-media--diagram img { object-position:center; }
.next-project { align-items:center; display:inline-flex; gap:7px; }
.next-project-arrow { display:inline-block; transition:transform var(--quick) var(--ease); }
.next-project:hover .next-project-arrow,.next-project:focus-visible .next-project-arrow { transform:translate(3px,3px); }
@media (hover:hover) {
  .case-evidence-grid.reveal-group figure:hover img { filter:contrast(1.025); transform:scale(1.012); }
  .case-evidence-grid.reveal-group figure:hover figcaption { color:var(--ink); transform:translateX(3px); }
}
@media (max-width:900px) { :root { --rail:0px; } .rail { display:none; } main { margin-left:0; padding-top:64px; } .mobile-header { align-items:center; background:var(--canvas); border-bottom:1px solid var(--border); display:flex; height:64px; justify-content:space-between; left:0; padding:0 20px; position:fixed; right:0; top:0; z-index:10; } .mobile-name { font-size:12px; font-weight:800; letter-spacing:-.055em; } .mobile-actions { align-items:center; display:flex; gap:15px; } .mobile-language { color:var(--muted); font-size:10px; font-weight:700; padding:9px 0; } .menu-toggle { height:44px; padding:0; position:relative; width:44px; } .menu-toggle span { background:var(--ink); height:1px; left:11px; position:absolute; transition:transform var(--quick) var(--ease),top var(--quick) var(--ease); width:22px; } .menu-toggle span:first-child { top:18px; } .menu-toggle span:last-child { top:25px; } .menu-toggle[aria-expanded="true"] span:first-child { top:22px; transform:rotate(45deg); } .menu-toggle[aria-expanded="true"] span:last-child { top:22px; transform:rotate(-45deg); } .mobile-menu { background:var(--canvas); clip-path:inset(0 0 100% 0); display:flex; flex-direction:column; height:calc(100dvh - 64px); justify-content:space-between; left:0; padding:42px 22px 30px; position:fixed; right:0; top:64px; transition:clip-path 300ms var(--ease); z-index:9; } .mobile-menu.is-open { clip-path:inset(0); } .mobile-menu nav { display:flex; flex-direction:column; } .mobile-menu nav a { border-bottom:1px solid var(--border); font-size:clamp(25px,7vw,40px); font-weight:730; letter-spacing:-.06em; line-height:1; padding:14px 0; } .mobile-menu nav a:nth-child(n+2):nth-child(-n+6) { color:var(--muted); font-size:15px; font-weight:570; letter-spacing:-.025em; padding:9px 0; } .mobile-theme { border:1px solid var(--border); border-radius:100px; color:var(--muted); font-size:11px; font-weight:700; min-height:44px; padding:0 16px; text-align:left; } .hero { grid-template-columns:1fr; min-height:auto; padding-top:68px; } .hero-facts { border-left:0; border-top:1px solid var(--border); flex-direction:row; gap:22px; margin:62px 0 0; padding:20px 0 0; } .fact { border-bottom:0; flex:1; padding:0; } .fact p { font-size:12px; } .process-line { margin-top:70px; } .practice { grid-template-columns:1fr; min-height:680px; } .section-heading { grid-template-columns:1fr; margin-bottom:46px; } .section-heading > p:last-child { margin:0; max-width:440px; } .work-row { grid-template-areas:"meta" "media" "title"; grid-template-columns:1fr; grid-template-rows:auto auto auto; min-height:0; } .work-meta { flex-direction:row; gap:10px; padding:0 0 12px; } .work-meta span:nth-child(2)::before { content:"/ "; } .work-title { padding:16px 0 6px; } .work-title h3 { max-width:none; } .case-grid,.case-split,.profile,.contact { grid-template-columns:1fr; } .case-grid { gap:35px; } .case-copy { max-width:620px; } .case-split .case-media { grid-row:1; } .case-split .case-intro { grid-row:2; } .case-zero .case-media img { aspect-ratio:16/10; } .profile-details { gap:30px; } .profile-image { max-width:460px; } .contact { min-height:680px; } .contact-list { align-self:start; } .contact footer { margin-top:60px; } }
@media (max-width:600px) { .image-lightbox { padding:16px; } .image-lightbox-image { max-height:calc(100dvh - 32px); } .image-lightbox-close { right:4px; top:4px; } }
@media (prefers-reduced-motion:reduce) { .case-poster-trigger .evidence-media,.case-poster-trigger img,.image-lightbox,.image-lightbox-dialog,.image-lightbox-close { transition:none; } }
@media (max-width:600px) { .section { padding:68px 20px; } .hero { min-height:calc(100dvh - 64px); padding-top:52px; } .hero h1 { font-size:clamp(48px,14vw,73px); } .hero-intro { font-size:16px; } .cta { font-size:11px; min-height:44px; } .hero-facts { margin-top:45px; } .process-line { gap:9px; margin-top:auto; padding-top:54px; } .process-line span { font-size:10px; } .process-line small { font-size:9px; } .practice { gap:42px; min-height:620px; } .practice-side { min-height:auto; } .side-copy { margin:20px 0 0; max-width:310px; } .practice-side .text-link { display:none; } .practice h2 { font-size:clamp(57px,15vw,83px); } .practice-process { margin-top:80px; padding-top:25px; } .practice-process::before { top:25px; } .practice-process span { font-size:10px; } .practice-process small { font-size:9px; } .section-heading h2 { font-size:clamp(48px,13vw,71px); } .work-row img { aspect-ratio:16/10; } .work-title h3 { font-size:31px; } .case-media img,.case-roa .case-media img,.case-dice .case-media img,.wide-evidence img { aspect-ratio:16/10; } .case-intro h2 { font-size:clamp(53px,15vw,78px); } .case-copy > p,.case-summary { font-size:21px; } .case-copy dl div { grid-template-columns:1fr; gap:8px; } .case-evidence { grid-template-columns:1fr; } .profile h2,.contact h2 { font-size:clamp(55px,15vw,82px); } .profile-intro { font-size:15px; } .contact-list a,.contact-cv { grid-template-columns:68px 1fr auto; font-size:13px; } .contact footer { flex-direction:column; gap:7px; } }
@media (max-width:700px) { .case-nav { padding:15px 20px; } .case-nav-brand { gap:12px; } .case-nav-brand span { font-size:10px; } .case-nav-controls { gap:14px; } .case-project { padding:62px 20px 24px; } .case-project-head { align-items:start; gap:22px; grid-template-columns:1fr; } .case-project-head h1 { font-size:clamp(58px,16vw,88px); } .case-project-head > p:last-child { font-size:14px; } .case-project-hero img { aspect-ratio:16/10; } .case-project-info { grid-template-columns:1fr; } .case-project-meta { grid-template-columns:1fr; gap:9px; } .case-evidence-grid { grid-template-columns:1fr; } .case-gallery-heading { gap:18px; grid-template-columns:1fr; margin-bottom:22px; } .case-gallery-heading > p:last-child { margin-top:0; } .case-gallery-grid { grid-template-columns:1fr; grid-template-rows:none; } .gallery-frame--feature,.gallery-frame:not(.gallery-frame--feature) { aspect-ratio:3/2; grid-row:auto; } .gallery-frame img { height:auto; } .case-page-footer { padding:20px; } }
@media (prefers-reduced-motion:reduce) { *,*::before,*::after { scroll-behavior:auto !important; transition-delay:0ms !important; transition-duration:1ms !important; animation-duration:1ms !important; } .reveal,.case-entrance { opacity:1; transform:none; } .case-title-line > span,.case-project-head.case-entrance > .section-index,.case-project-head.case-entrance > p:last-child,.case-project-hero-media img,.case-project-hero.case-entrance figcaption,.case-project-meta.reveal-meta::before,.case-project-meta.reveal-meta dt,.case-project-meta.reveal-meta dd,.case-evidence-grid.reveal-group > figure,.case-evidence-grid.reveal-group img,.case-evidence-grid.reveal-group figcaption { opacity:1; transform:none; } }

/* Architectural unfolding: one restrained motion language across the portfolio. */
html { overflow-x:hidden; }
body { overflow-wrap:anywhere; }
body.menu-open { overflow:hidden; }
a,button { touch-action:manipulation; -webkit-tap-highlight-color:color-mix(in srgb,var(--ink) 12%,transparent); }
h1,h2,h3 { text-wrap:balance; }
h1[id],h2[id],h3[id] { scroll-margin-top:90px; }
.rail-nav > a.is-current,.nav-parent.is-current { color:var(--ink); padding-left:5px; }
.motion-heading > .lang-en,.motion-heading > .lang-zh { display:block; }
[data-lang="en"] .motion-heading > .lang-zh,[data-lang="zh"] .motion-heading > .lang-en { display:none; }
.motion-line { display:block; margin-bottom:-.08em; overflow:hidden; padding-bottom:.08em; }
.motion-line > span { display:block; }
.motion-ready .hero-entrance .motion-line > span,.motion-ready .reveal .motion-line > span { transform:translateY(112%); transition:transform var(--slow) var(--ease); }
.motion-ready .motion-line + .motion-line > span { transition-delay:70ms; }
.motion-ready .hero-entrance > .section-index,.motion-ready .hero-entrance > .hero-intro,.motion-ready .hero-entrance > .cta-row,.motion-ready .hero-entrance > .hero-game { opacity:0; transform:translateY(10px); transition:opacity 420ms var(--ease),transform 420ms var(--ease); }
.motion-ready .hero-entrance > .hero-intro { transition-delay:150ms; }
.motion-ready .hero-entrance > .cta-row { transition-delay:220ms; }
.motion-ready .hero-entrance > .hero-game { transition-delay:290ms; }
.hero-entrance.is-visible .motion-line > span,.reveal.is-visible .motion-line > span,.hero-entrance.is-visible > .section-index,.hero-entrance.is-visible > .hero-intro,.hero-entrance.is-visible > .cta-row,.hero-entrance.is-visible > .hero-game { opacity:1; transform:none; }
.motion-ready .reveal { opacity:0; transform:translateY(18px); }
.motion-ready .reveal.is-visible { opacity:1; transform:none; }
html:not(.motion-ready) .case-title-line > span,html:not(.motion-ready) .case-project-head.case-entrance > .section-index,html:not(.motion-ready) .case-project-head.case-entrance > p:last-child,html:not(.motion-ready) .case-project-hero.case-entrance,html:not(.motion-ready) .case-project-hero.case-entrance figcaption,html:not(.motion-ready) .case-project-meta.reveal-meta dt,html:not(.motion-ready) .case-project-meta.reveal-meta dd,html:not(.motion-ready) .case-evidence-grid.reveal-group > figure { opacity:1; transform:none; }
.motion-ready .process-line::before,.motion-ready .practice-process::before { transform:scaleX(0); transform-origin:left center; transition:transform 540ms var(--ease) 120ms; }
.motion-ready .process-line.is-visible::before,.motion-ready .practice-main.is-visible .practice-process::before { transform:scaleX(1); }
.cta,.text-link,.contact-list a,.contact-cv,.work-row { transition:color var(--quick) var(--ease),opacity var(--quick) var(--ease),transform var(--quick) var(--ease); }
.cta:active,.text-link:active,.contact-list a:active,.contact-cv:active { transform:translateY(1px) scale(.99); }
.work-row:hover,.work-row:focus-visible { opacity:1; }
.work-row:hover .work-meta,.work-row:focus-visible .work-meta { color:var(--ink); }
.work-title > span { display:inline-block; transition:transform var(--quick) var(--ease); }
.work-row:hover .work-title > span,.work-row:focus-visible .work-title > span { transform:translate(5px,5px); }
.work-row:hover img,.work-row:focus-visible img { transform:scale(1.015); }
.contact-cv { color:inherit; }
body > main,.case-nav,.rail,.mobile-header { transition:opacity 180ms var(--ease),transform 180ms var(--ease); }
body.is-leaving > main { opacity:0; transform:translateY(6px); }
body.is-leaving .case-nav,body.is-leaving .rail,body.is-leaving .mobile-header { opacity:0; }

.case-title { min-width:0; }
.case-project-meta--stack { display:block; }
.case-project-meta--stack > div { display:grid; gap:20px; grid-template-columns:130px 1fr; }
.case-project-meta--stack > div + div { border-top:1px solid var(--border); margin-top:14px; padding-top:14px; }
.case-chapter { border-top:1px solid var(--border); margin-top:clamp(72px,10vw,150px); padding-top:20px; scroll-margin-top:90px; }
.case-chapter-heading { align-items:start; display:grid; gap:36px; grid-template-columns:.32fr minmax(0,1.08fr) minmax(210px,.62fr); margin-bottom:clamp(38px,5vw,68px); }
.case-chapter-heading h2 { font-size:clamp(42px,5vw,78px); letter-spacing:-.07em; line-height:.9; margin:0; max-width:11ch; }
.case-chapter-heading > p:last-child { color:var(--muted); font-size:14px; line-height:1.45; margin:4px 0 0; max-width:300px; }
.case-story-grid { display:grid; gap:20px; grid-template-columns:repeat(3,1fr); }
.case-story-card { border-top:1px solid var(--border); min-width:0; padding-top:14px; }
.case-story-card > span { color:var(--muted); display:block; font-size:10px; font-weight:700; letter-spacing:.055em; margin-bottom:clamp(28px,4vw,58px); text-transform:uppercase; }
.case-story-card h3 { font-size:clamp(20px,2vw,30px); letter-spacing:-.045em; line-height:1.02; margin:0 0 14px; max-width:14ch; }
.case-story-card p { color:var(--muted); font-size:14px; line-height:1.48; margin:0; max-width:34ch; }
.motion-ready .chapter-entrance .case-chapter-heading > *,.motion-ready .chapter-entrance .case-story-card { opacity:0; transform:translateY(12px); transition:opacity 460ms var(--ease),transform 460ms var(--ease); }
.motion-ready .chapter-entrance .case-chapter-heading > :nth-child(2),.motion-ready .chapter-entrance .case-story-card:nth-child(2) { transition-delay:70ms; }
.motion-ready .chapter-entrance .case-chapter-heading > :nth-child(3),.motion-ready .chapter-entrance .case-story-card:nth-child(3) { transition-delay:140ms; }
.motion-ready .chapter-entrance.is-visible .case-chapter-heading > *,.motion-ready .chapter-entrance.is-visible .case-story-card { opacity:1; transform:none; }
.case-gallery--equal .case-gallery-grid { grid-template-columns:repeat(2,1fr); grid-template-rows:none; }
.case-gallery--equal .gallery-frame { aspect-ratio:16/9; grid-row:auto; }
.case-gallery--wide .case-gallery-grid { display:block; }
.case-gallery--wide .gallery-frame { aspect-ratio:16/7; }
.case-gallery--wide .gallery-frame img { object-position:center; }
.next-project { text-align:right; }
.next-project-name { color:var(--muted); font-weight:600; }

@media (max-width:900px) {
  .mobile-header { padding-left:max(20px,env(safe-area-inset-left)); padding-right:max(20px,env(safe-area-inset-right)); padding-top:env(safe-area-inset-top); }
  .mobile-menu { opacity:0; overscroll-behavior:contain; pointer-events:none; visibility:hidden; }
  .mobile-menu.is-open { opacity:1; pointer-events:auto; visibility:visible; }
  #mobile-menu nav > .mobile-section-link { color:var(--ink); font-size:clamp(25px,7vw,40px); font-weight:730; letter-spacing:-.06em; line-height:1; padding:14px 0; }
  .mobile-project-links { display:flex; flex-direction:column; margin-top:8px; }
  #mobile-menu nav .mobile-project-links a { color:var(--muted); font-size:15px; font-weight:570; letter-spacing:-.025em; line-height:1.15; padding:9px 0; }
  .motion-ready .mobile-menu nav a,.motion-ready .mobile-theme { opacity:0; transform:translateY(10px); transition:opacity 300ms var(--ease),transform 300ms var(--ease); }
  .motion-ready .mobile-menu.is-open nav a,.motion-ready .mobile-menu.is-open .mobile-theme { opacity:1; transform:none; }
  .motion-ready .mobile-menu.is-open .mobile-section-link:nth-of-type(2) { transition-delay:35ms; }
  .motion-ready .mobile-menu.is-open .mobile-section-link:nth-of-type(3) { transition-delay:70ms; }
  .motion-ready .mobile-menu.is-open .mobile-project-links a:nth-child(1) { transition-delay:105ms; }
  .motion-ready .mobile-menu.is-open .mobile-project-links a:nth-child(2) { transition-delay:140ms; }
  .motion-ready .mobile-menu.is-open .mobile-project-links a:nth-child(3) { transition-delay:175ms; }
  .motion-ready .mobile-menu.is-open .mobile-project-links a:nth-child(4) { transition-delay:210ms; }
  .motion-ready .mobile-menu.is-open .mobile-project-links a:nth-child(5) { transition-delay:245ms; }
  .motion-ready .mobile-menu.is-open .mobile-theme { transition-delay:280ms; }
}

@media (max-width:700px) {
  .case-project-head .case-title { order:2; }
  .case-project-head > .section-index { order:1; }
  .case-project-head > p:last-child { order:3; }
  .case-project-meta--stack > div { grid-template-columns:1fr; gap:9px; }
  .case-chapter-heading { gap:18px; grid-template-columns:1fr; margin-bottom:34px; }
  .case-chapter-heading > p:last-child { margin-top:0; }
  .case-story-grid { grid-template-columns:1fr; }
  .case-story-card span { margin-bottom:22px; }
  .case-gallery--equal .case-gallery-grid { grid-template-columns:1fr; }
  .case-gallery--wide .gallery-frame { aspect-ratio:3/2; }
  .next-project { align-items:flex-end; flex-direction:column; gap:1px; }
}

@media (prefers-reduced-motion:reduce) {
  body.is-leaving > main,body.is-leaving .case-nav,body.is-leaving .rail,body.is-leaving .mobile-header { opacity:1; transform:none; }
  .motion-line > span,.hero-entrance > .section-index,.hero-entrance > .hero-intro,.hero-entrance > .cta-row,.hero-entrance > .hero-game,.chapter-entrance .case-chapter-heading > *,.chapter-entrance .case-story-card,.mobile-menu nav a,.mobile-theme { opacity:1 !important; transform:none !important; }
  .process-line::before,.practice-process::before { transform:scaleX(1) !important; }
}
/* Download menu */
.resume-menu { display: inline-flex; position: relative; }
.resume-menu-toggle { cursor: pointer; }
.resume-menu-options { background: var(--canvas); border: 1px solid var(--border); box-shadow: 0 14px 34px color-mix(in srgb, var(--ink) 12%, transparent); display: grid; left: 0; min-width: 236px; padding: 6px; position: absolute; top: calc(100% + 10px); z-index: 20; }
.resume-menu-options[hidden] { display: none; }
.resume-menu-options a { align-items: center; border: 0; color: var(--ink); display: grid; gap: 12px; grid-template-columns: 28px 1fr auto; padding: 12px; text-align: left; transition: background var(--quick) var(--ease), color var(--quick) var(--ease); }
.resume-menu-options a + a { border-top: 1px solid var(--border); }
.resume-menu-options a:hover, .resume-menu-options a:focus-visible { background: var(--surface); opacity: 1; }
.resume-language { font-size: 10px; font-weight: 750; letter-spacing: .07em; }
.resume-file { display: grid; font-size: 12px; font-weight: 700; gap: 2px; }
.resume-file small { color: var(--muted); font-size: 9px; letter-spacing: .07em; }
.resume-menu--contact { display: block; width: 100%; }
.resume-menu--contact .contact-cv { align-items: center; background: transparent; border: 0; border-bottom: 1px solid var(--border); color: var(--muted); cursor: pointer; display: grid; font: inherit; font-size: clamp(14px, 1.3vw, 19px); gap: 15px; grid-template-columns: 105px 1fr auto; padding: 20px 0; text-align: left; transition: opacity var(--quick) var(--ease); width: 100%; }
.resume-menu--contact .contact-cv:hover { opacity: .65; }
.resume-menu--contact .resume-menu-options { min-width: min(100%, 280px); top: calc(100% + 8px); }
@media (max-width: 600px) { .resume-menu--contact .contact-cv { font-size: 13px; grid-template-columns: 68px 1fr auto; } .resume-menu-options { min-width: 220px; } }


/* Breath Easy story media */
.case-story-media { margin:clamp(22px,2.5vw,36px) 0 0; }
.case-story-media img { aspect-ratio:3 / 2; display:block; object-fit:cover; width:100%; }
.case-story-media figcaption { color:var(--muted); font-size:10px; line-height:1.35; margin-top:8px; }


/* Cross-project media alignment and long-title protection */
@media (min-width:701px) {
  .case-story-grid { align-items:stretch; }
  .case-story-grid .case-story-card { display:flex; flex-direction:column; }
  .case-story-grid .case-story-media { margin-top:auto; padding-top:clamp(22px,2.5vw,36px); }
}
.work-row--long-title .work-title h3 { max-width:10ch; overflow-wrap:normal; word-break:normal; }
.practice--image { display:block; min-height:0; }
.practice-collage { margin:0; }
.practice-collage img { display:block; height:auto; width:100%; }
.case-poster-media { align-items:center; display:flex; justify-content:center; margin:clamp(34px,5vw,72px) 0 0; }
.case-poster-media img { display:block; height:auto; max-width:100%; object-fit:contain; width:min(520px,100%); }

@media (max-width:900px) {
  .hero-game { margin-top:64px; }
  .trex-game { height:230px; }
}

@media (max-width:600px) {
  .hero-game { margin-top:56px; }
  .trex-game { height:210px; }
}
