@font-face{font-family:Noto Serif SC;src:url(/fonts/noto-serif-sc-400.woff2)format("woff2");font-style:normal;font-weight:400;font-display:swap}@font-face{font-family:Noto Serif SC;src:url(/fonts/noto-serif-sc-600.woff2)format("woff2");font-style:normal;font-weight:600;font-display:swap}:root{color-scheme:light;--paper:#f4f1ea;--paper-2:#ebe6db;--surface:#fffdf8;--ink:#1c1b19;--ink-body:#2f2d29;--ink-2:#55524b;--ink-3:#6b675f;--ink-mute:#8b877e;--rule:#cfc9bc;--acc:#a8361c;--font-serif:"Noto Serif SC", "Songti SC", "STSong", "SimSun", serif;--font-sans:-apple-system, BlinkMacSystemFont, "PingFang SC", "Microsoft YaHei", "Noto Sans SC", sans-serif;--content-width:1120px;--page-gutter:48px;--page-gutter-mobile:20px;--space-6:6px;--space-10:10px;--space-14:14px;--space-18:18px;--space-22:22px;--space-28:28px;--space-32:32px;--space-40:40px;--space-48:48px;--space-56:56px;--space-72:72px;--space-80:80px;--ease-editorial:cubic-bezier(.2, .7, .2, 1)}*{box-sizing:border-box}html{scroll-behavior:smooth;background:var(--paper)}body{background:var(--paper);color:var(--ink);font-family:var(--font-sans);margin:0;font-size:16px;line-height:1.85}button,a{color:inherit;font:inherit}a{text-underline-offset:4px;text-decoration-thickness:1px}button:focus-visible,a:focus-visible{outline:2px solid var(--acc);outline-offset:3px}.site-container{width:min(100%, var(--content-width));padding-inline:var(--page-gutter);margin-inline:auto}.site-header{background:var(--paper);position:relative}.header-inner{justify-content:space-between;align-items:center;min-height:72px;display:flex;position:relative}.header-inner:after{background:var(--ink);content:"";transform-origin:0;height:1px;animation:nav-line .9s var(--ease-editorial) forwards;position:absolute;bottom:0;left:0;right:0;transform:scaleX(0)}.site-wordmark{min-height:44px;color:var(--ink);font-family:var(--font-serif);align-items:center;font-size:22px;font-weight:600;line-height:1.3;text-decoration:none;display:inline-flex}.site-nav a{min-width:44px;min-height:44px;color:var(--ink-2);justify-content:center;align-items:center;font-size:15px;text-decoration:none;display:inline-flex}.site-nav a:hover{color:var(--acc);text-decoration:underline;text-decoration-color:var(--acc);text-underline-offset:5px}.home-intro{padding-block:var(--space-80) var(--space-56)}.eyebrow{margin:0 0 var(--space-18);color:var(--ink-3);letter-spacing:.1em;font-size:12px;line-height:1.5}.home-title{max-width:900px;font-family:var(--font-serif);margin:0;font-size:46px;font-weight:600;line-height:1.3}.title-line{animation:title-rise .85s var(--ease-editorial) both;display:block;overflow:hidden}.title-line+.title-line{animation-delay:.12s}.title-signature{position:relative}.title-signature:after{background:var(--acc);content:"";transform-origin:0;height:2px;animation:signature-line .7s var(--ease-editorial) .9s forwards;position:absolute;bottom:-3px;left:0;right:0;transform:scaleX(0)}.home-lede{max-width:680px;margin:var(--space-22) 0 0;color:var(--ink-2);animation:intro-rise .7s var(--ease-editorial) .45s both;font-size:17px;line-height:1.75}.project-list{border-top:1px solid var(--rule)}.project-row{column-gap:var(--space-32);padding-block:var(--space-40);border-bottom:1px solid var(--rule);grid-template-columns:72px minmax(0,1fr) 440px;align-items:center;display:grid}.project-number{color:var(--ink-mute);font-family:var(--font-serif);align-self:start;margin:0;font-size:40px;line-height:1.2}.project-copy{min-width:0}.project-title{margin:0 0 var(--space-14);font-family:var(--font-serif);font-size:28px;font-weight:600;line-height:1.35}.project-title a{align-items:center;min-height:44px;text-decoration:none;display:inline-flex}.project-problem{margin:0 0 var(--space-18);color:var(--ink-body);font-size:16px;line-height:1.85}.project-facts{gap:var(--space-10);margin:0;display:grid}.project-facts div{column-gap:var(--space-10);grid-template-columns:48px minmax(0,1fr);display:grid}.project-facts dt{color:var(--ink-3);letter-spacing:.08em;font-size:12px}.project-facts dd{color:var(--ink-body);margin:0;font-size:15px;line-height:1.75}.project-outcome--accent span{color:var(--acc);font-size:16px}.result-emphasis{color:var(--acc);font-size:inherit;font-weight:400}.project-actions{gap:var(--space-22);margin-top:var(--space-18);flex-wrap:wrap;display:flex}.text-link{align-items:center;gap:var(--space-6);min-width:44px;min-height:44px;color:var(--ink);text-decoration:underline;text-decoration-color:var(--ink);text-underline-offset:4px;transition:color .3s var(--ease-editorial), text-decoration-color .3s var(--ease-editorial);font-size:15px;display:inline-flex;position:relative}.text-link:hover{color:var(--acc);text-decoration-color:var(--acc)}.text-link span{transition:transform .3s var(--ease-editorial);display:inline-block}.text-link:hover span{transform:translate(4px)}.project-preview-wrap{gap:var(--space-10);min-width:0;display:grid}.project-preview{aspect-ratio:16/9;border:1px solid var(--rule);min-width:0;color:var(--ink-3);background:var(--paper-2);text-align:center;transition:border-color .3s var(--ease-editorial), transform .8s var(--ease-editorial);text-decoration:none;display:grid;position:relative;overflow:hidden}.project-preview picture,.project-preview img{width:100%;height:100%;display:block}.project-preview img{object-fit:cover}.project-preview .figure-image-fallback{inset:0}.preview-note{max-width:24em;padding:var(--space-18);font-size:13px;line-height:1.6}.project-row:hover .project-number,.project-row:focus-within .project-number{color:var(--acc)}.project-row:hover .project-preview,.project-row:focus-within .project-preview{border-color:var(--acc);transform:scale(1.025)}[data-reveal]{transition:opacity .7s var(--ease-editorial), transform .7s var(--ease-editorial), clip-path 1s var(--ease-editorial)}.has-reveal [data-reveal]:not(.is-visible){opacity:0;transform:translateY(18px)}.has-reveal [data-reveal=media]:not(.is-visible){clip-path:inset(0 0 0 100%);transform:translate(18px)}.has-reveal [data-reveal].is-visible,.has-reveal [data-reveal]:focus-within{opacity:1;clip-path:inset(0);transform:translate(0)}.contact-section{gap:var(--space-32);padding-block:var(--space-72);border-bottom:1px solid var(--rule);grid-template-columns:1fr 1fr;display:grid}.contact-heading .eyebrow{margin-bottom:var(--space-10)}.contact-heading h2{font-family:var(--font-serif);margin:0;font-size:22px;font-weight:600}.contact-content{align-items:center;column-gap:var(--space-22);row-gap:var(--space-10);flex-wrap:wrap;display:flex}.contact-email{color:var(--ink);font-family:var(--font-serif);overflow-wrap:anywhere;user-select:text;margin:0;font-size:22px}.copy-button{cursor:pointer;background:0 0;border:0;padding:0}.copy-button.is-copied{color:var(--acc);text-decoration-color:var(--acc)}.visually-hidden{clip-path:inset(50%);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.site-footer{border-top:1px solid var(--ink)}.footer-inner{justify-content:space-between;align-items:center;min-height:72px;display:flex}.footer-inner p{color:var(--ink-3);margin:0;font-size:13px}.footer-inner a{align-items:center;min-width:44px;min-height:44px;display:inline-flex}.not-found-page{padding-block:var(--space-80)}.not-found-page h1{max-width:680px;font-family:var(--font-serif);margin:0;font-size:44px;font-weight:600;line-height:1.3}.not-found-page>p:not(.eyebrow){max-width:680px;margin:var(--space-18) 0 var(--space-22);color:var(--ink-body);font-size:16px;line-height:1.85}.case-page{padding-top:var(--space-22)}.breadcrumb{align-items:center;gap:var(--space-10);margin:0 0 var(--space-28);color:var(--ink-3);letter-spacing:.08em;flex-wrap:wrap;font-size:13px;display:flex}.breadcrumb a{min-height:44px;color:var(--ink-2);align-items:center;text-decoration:none;display:inline-flex}.breadcrumb a:hover{color:var(--acc);text-decoration:underline}.case-header{column-gap:var(--space-32);padding-bottom:var(--space-48);margin-bottom:var(--space-48);border-bottom:1px solid var(--rule);grid-template-columns:minmax(0,1fr) 440px;align-items:center;display:grid}.case-heading-copy{min-width:0}.case-heading-copy .eyebrow{margin-bottom:var(--space-14)}.case-heading-copy h1{font-family:var(--font-serif);margin:0;font-size:44px;font-weight:600;line-height:1.3}.case-lede{max-width:680px;margin:var(--space-18) 0 0;color:var(--ink-2);font-family:var(--font-serif);font-size:20px;line-height:1.75}.case-meta{gap:var(--space-10);margin:var(--space-22) 0;display:grid}.case-meta div{column-gap:var(--space-10);grid-template-columns:72px minmax(0,1fr);display:grid}.case-meta dt{color:var(--ink-3);letter-spacing:.08em;font-size:12px}.case-meta dd{color:var(--ink-body);margin:0;font-size:15px}.primary-button{align-items:center;gap:var(--space-10);min-height:44px;padding:var(--space-10) var(--space-14);background:var(--ink);color:var(--paper);transition:background-color .3s var(--ease-editorial);font-size:15px;text-decoration:none;display:inline-flex}.primary-button:hover{background:var(--acc)}.case-layout{column-gap:var(--space-56);grid-template-columns:200px minmax(0,1fr);align-items:start;display:grid}.case-sidebar{top:var(--space-48);position:sticky}.stage-toc-title{margin:0 0 var(--space-14);color:var(--ink-3);letter-spacing:.1em;font-size:12px}.stage-toc ol{gap:var(--space-10);margin:0;padding:0;list-style:none;display:grid}.stage-toc a{align-items:center;gap:var(--space-10);width:calc(100% - 22px);min-height:44px;color:var(--ink-2);transition:color .3s var(--ease-editorial), transform .3s var(--ease-editorial);font-size:14px;line-height:1.5;text-decoration:none;display:flex;transform:translate(0)}.stage-toc a span:first-child{color:var(--ink-3);font-family:var(--font-serif)}.stage-toc a[aria-current=location]{color:var(--ink);position:relative;transform:translate(22px)}.stage-toc a[aria-current=location]:before{background:var(--acc);content:"";width:14px;height:1px;position:absolute;left:-22px}.stage-toc a:hover{color:var(--ink)}.case-article{min-width:0}.stage-section{padding-block:var(--space-48);border-top:1px solid var(--rule);scroll-margin-top:var(--space-48)}.stage-section:first-child{border-top:0;padding-top:0}.stage-heading{column-gap:var(--space-18);margin-bottom:var(--space-22);grid-template-columns:40px minmax(0,1fr);align-items:start;display:grid}.stage-number{color:var(--acc);font-family:var(--font-serif);font-size:34px;line-height:1.3}.stage-heading h2{font-family:var(--font-serif);margin:0;font-size:26px;font-weight:600;line-height:1.45}.stage-content{max-width:680px;color:var(--ink-body);font-size:16px;line-height:1.85}.stage-content p,.technical-details p{margin:0 0 var(--space-18)}.stage-content p:last-child,.technical-details p:last-child{margin-bottom:0}.case-figure{min-width:0;margin:var(--space-32) 0 0}.figure-media,.figure-dialog-media{border:1px solid var(--rule);background:var(--paper-2);width:100%;display:block;position:relative;overflow:hidden}.figure-media picture,.figure-dialog-media picture,.figure-media img,.figure-dialog-media img{width:100%;height:auto;display:block}.figure-image-fallback{align-content:center;justify-items:center;gap:var(--space-10);padding:var(--space-22);border:1px dashed var(--ink-mute);background:var(--paper-2);color:var(--ink-2);text-align:center;display:grid;position:absolute;inset:0}.figure-image-fallback[hidden],.figure-image-recovery[hidden]{display:none}.figure-image-recovery{align-items:center;gap:var(--space-10);min-width:0;padding:var(--space-10) 0 var(--space-10) var(--space-10);border-left:2px solid var(--acc);color:var(--ink-2);flex-wrap:wrap;font-size:13px;display:flex}.figure-image-recovery button{min-height:44px}.figure-trigger{cursor:zoom-in;text-align:left;background:0 0;border:0;width:100%;padding:0;display:block}.figure-trigger:focus-visible{outline:2px solid var(--acc);outline-offset:3px}.figure-placeholder{aspect-ratio:16/9;justify-content:center;align-items:center;gap:var(--space-10);padding:var(--space-22);border:1px dashed var(--ink-mute);background:var(--paper-2);color:var(--ink-3);text-align:center;flex-direction:column;display:flex}.figure-placeholder-title{color:var(--ink-body);font-size:16px;line-height:1.5}.figure-placeholder-note{max-width:680px;font-size:13px;line-height:1.5}.figure-trigger:hover .figure-placeholder,.figure-trigger:focus-visible .figure-placeholder{border-color:var(--acc)}.case-figure figcaption{align-items:baseline;gap:var(--space-10);padding-left:var(--space-10);margin-top:var(--space-10);border-left:2px solid var(--acc);color:var(--ink-2);letter-spacing:.08em;flex-wrap:wrap;font-size:12px;display:flex}.case-figure figcaption span{color:var(--ink-3)}.figure-dialog{width:min(1120px,100vw - 40px);max-width:none;max-height:calc(100vh - 40px);padding:var(--space-22);border:1px solid var(--ink);background:var(--paper);color:var(--ink)}.figure-dialog::backdrop{background:#1c1b19b3}.figure-dialog-inner{max-height:calc(100vh - 84px);overflow:auto}.figure-dialog-header{justify-content:space-between;align-items:center;gap:var(--space-18);margin-bottom:var(--space-18);display:flex}.figure-dialog-header h2{font-family:var(--font-serif);margin:0;font-size:22px;font-weight:600}.figure-dialog .figure-placeholder--expanded{aspect-ratio:16/9}.technical-details{max-width:680px;margin-top:var(--space-22);border-top:1px solid var(--rule);border-bottom:1px solid var(--rule)}.technical-details summary{min-height:44px;padding-block:var(--space-10);color:var(--ink-2);cursor:pointer;font-size:14px}.technical-details>div{padding-bottom:var(--space-18);color:var(--ink-2);font-size:15px;line-height:1.75}.case-navigation{justify-content:space-between;align-items:center;gap:var(--space-18);padding-top:var(--space-22);margin-top:var(--space-48);border-top:1px solid var(--ink);flex-wrap:wrap;display:flex}.reading-progress{z-index:10;pointer-events:none;width:100%;height:2px;position:fixed;top:0;left:0}.reading-progress span{background:var(--acc);transform-origin:0;width:100%;height:100%;display:block;transform:scaleX(0)}.meli-demo-page{background:var(--paper);grid-template-rows:72px auto auto auto minmax(0,1fr);width:100%;height:100dvh;display:grid}.meli-demo-bar{align-items:center;gap:var(--space-22);min-width:0;padding-inline:var(--page-gutter);border-bottom:1px solid var(--ink);grid-row:1;display:flex}.meli-demo-back{align-items:center;gap:var(--space-6);min-width:44px;min-height:44px;color:var(--ink-2);font-size:14px;text-decoration:none;display:inline-flex}.meli-demo-back:hover{color:var(--acc)}.meli-demo-bar h1{font-family:var(--font-serif);margin:0;font-size:22px;font-weight:600;line-height:1.3}.demo-sample-badge{padding:var(--space-6) var(--space-10);border:1px solid var(--acc);color:var(--acc);letter-spacing:.08em;white-space:nowrap;font-size:12px;line-height:1.5}.meli-demo-flow{align-items:center;gap:var(--space-10);color:var(--ink-2);white-space:nowrap;margin-left:auto;font-size:14px;display:flex}.meli-flow-button[aria-pressed=true]{color:var(--acc);text-decoration-color:var(--acc)}.meli-demo-scope{justify-content:space-between;align-items:center;gap:var(--space-14);min-width:0;padding:var(--space-6) var(--page-gutter);border-bottom:1px solid var(--rule);background:var(--paper-2);color:var(--ink-2);grid-row:2;font-size:14px;line-height:1.5;display:flex}.meli-demo-scope p{margin:0}.meli-demo-scope[hidden]{display:none}.meli-demo-tips{border-bottom:1px solid var(--rule);transition:grid-template-rows .45s var(--ease-editorial);grid-row:3;grid-template-rows:1fr;display:grid;overflow:hidden}.meli-demo-tips.is-collapsed{border-bottom:0;grid-template-rows:0fr}.meli-demo-tips.is-collapsed .meli-demo-tips-inner{padding-block:0}.meli-demo-tips-inner{column-gap:var(--space-32);row-gap:var(--space-10);min-width:0;min-height:0;padding:var(--space-14) var(--page-gutter);background:var(--paper-2);grid-template-columns:200px minmax(0,1fr);align-items:center;display:grid;overflow:hidden}.meli-demo-target h2{margin:0 0 var(--space-6);font-family:var(--font-serif);font-size:18px;font-weight:600}.meli-demo-target p{color:var(--ink-body);margin:0;font-size:14px;line-height:1.6}.meli-demo-tips ol{gap:var(--space-14);padding-left:var(--space-22);color:var(--ink-2);grid-template-columns:repeat(4,minmax(0,1fr));margin:0;font-size:13px;line-height:1.5;display:grid}.meli-demo-tip-note{color:var(--ink-3);grid-column:1/-1;margin:0;font-size:12px;line-height:1.5}.meli-demo-messages{padding-inline:var(--page-gutter);border-bottom:1px solid var(--rule);flex-direction:column;grid-row:4;display:flex}.meli-demo-status{min-width:0;min-height:40px;padding-block:var(--space-10);color:var(--ink-2);align-items:center;margin:0;font-size:13px;display:flex}.meli-demo-recovery{gap:var(--space-18);padding-bottom:var(--space-10);flex-wrap:wrap;display:flex}.meli-demo-recovery[hidden]{display:none}.meli-demo-completion{padding:var(--space-10) 0 var(--space-10) var(--space-10);margin:0 0 var(--space-10);border-left:2px solid var(--acc);color:var(--acc);font-size:15px;line-height:1.5}.meli-demo-completion[hidden]{display:none}.meli-demo-frame{background:var(--paper);border:0;grid-row:5;width:100%;height:100%;display:block}.meli-demo-frame[hidden]{display:none}.meli-mobile-preview{align-content:start;gap:var(--space-14);min-width:0;padding:var(--space-18) var(--page-gutter);grid-row:5;display:grid}.meli-mobile-preview[hidden]{display:none}.meli-mobile-preview h2{margin:0 0 var(--space-6);font-family:var(--font-serif);font-size:18px;font-weight:600}.meli-mobile-preview p{color:var(--ink-2);margin:0;font-size:14px;line-height:1.6}.meli-mobile-preview-figure{min-width:0;padding:var(--space-6);border:1px solid var(--ink);background:var(--surface);margin:0}.meli-mobile-preview-figure img{width:100%;height:auto;display:block}.meli-mobile-preview-figure img[hidden]{display:none}.meli-mobile-preview-figure figcaption{padding-top:var(--space-6);color:var(--ink-3);font-size:12px;line-height:1.5}.meli-preview-error{color:var(--ink-2)}.meli-preview-error[hidden]{display:none}.gacha-demo-page{background:var(--paper);grid-template-rows:72px auto auto auto minmax(0,1fr);width:100%;min-width:0;height:100dvh;display:grid}.gacha-demo-bar{align-items:center;gap:var(--space-22);min-width:0;padding-inline:var(--page-gutter);border-bottom:1px solid var(--ink);grid-row:1;display:flex}.gacha-demo-back{align-items:center;gap:var(--space-6);min-width:44px;min-height:44px;color:var(--ink-2);font-size:14px;text-decoration:none;display:inline-flex}.gacha-demo-back:hover{color:var(--acc)}.gacha-demo-bar h1{font-family:var(--font-serif);margin:0;font-size:22px;font-weight:600;line-height:1.3}.gacha-demo-flow{color:var(--ink-2);white-space:nowrap;margin-left:auto;font-size:14px}.gacha-demo-flows{align-items:center;gap:var(--space-10);min-width:0;margin-left:auto;display:flex}.gacha-demo-flows .gacha-demo-tool{white-space:nowrap}.gacha-demo-flows .gacha-demo-tool[aria-pressed=true]{border-bottom-color:var(--acc);color:var(--acc)}.gacha-demo-tool{min-width:44px;min-height:44px;padding:0 var(--space-6);border:0;border-bottom:1px solid var(--rule);color:var(--ink-2);cursor:pointer;background:0 0;border-radius:0;justify-content:center;align-items:center;font-size:14px;display:inline-flex}.gacha-demo-tool:hover{border-bottom-color:var(--acc);color:var(--acc)}.gacha-demo-scope{justify-content:space-between;align-items:center;gap:var(--space-14);min-width:0;padding:var(--space-6) var(--page-gutter);border-bottom:1px solid var(--rule);background:var(--paper-2);color:var(--ink-2);grid-row:2;font-size:14px;line-height:1.5;display:flex}.gacha-demo-scope p{margin:0}.gacha-demo-scope[hidden]{display:none}.gacha-demo-tips{border-bottom:1px solid var(--rule);transition:grid-template-rows .45s var(--ease-editorial);grid-row:3;grid-template-rows:1fr;display:grid;overflow:hidden}.gacha-demo-tips.is-collapsed{border-bottom:0;grid-template-rows:0fr}.gacha-demo-tips.is-collapsed .gacha-demo-tips-inner{padding-block:0}.gacha-demo-tips-inner{column-gap:var(--space-32);row-gap:var(--space-10);min-width:0;min-height:0;padding:var(--space-14) var(--page-gutter);background:var(--paper-2);grid-template-columns:200px minmax(0,1fr);align-items:center;display:grid;overflow:hidden}.gacha-demo-target h2{margin:0 0 var(--space-6);color:var(--ink-3);font-size:12px;font-weight:400}.gacha-demo-target p{font-family:var(--font-serif);color:var(--ink-body);margin:0;font-size:15px;font-weight:600;line-height:1.6}.gacha-demo-tips ol{gap:var(--space-14);padding-left:var(--space-22);color:var(--ink-2);grid-template-columns:repeat(4,minmax(0,1fr));margin:0;font-size:13px;line-height:1.5;display:grid}.gacha-demo-tip-note{color:var(--ink-3);grid-column:1/-1;margin:0;font-size:12px;line-height:1.5}.gacha-demo-messages{padding-inline:var(--page-gutter);border-bottom:1px solid var(--rule);flex-direction:column;grid-row:4;display:flex}.gacha-demo-status{min-width:0;min-height:40px;padding-block:var(--space-10);color:var(--ink-2);align-items:center;margin:0;font-size:13px;line-height:1.5;display:flex}.gacha-demo-recovery{gap:var(--space-18);padding-bottom:var(--space-10);flex-wrap:wrap;display:flex}.gacha-demo-recovery[hidden]{display:none}.gacha-demo-completion{padding:var(--space-10) 0 var(--space-10) var(--space-10);margin:0 0 var(--space-10);border-left:2px solid var(--acc);color:var(--acc);font-size:15px;line-height:1.5}.gacha-demo-completion[hidden]{display:none}.gacha-demo-frame{background:var(--paper);border:0;grid-row:5;width:100%;height:100%;min-height:0;display:block}.gacha-demo-frame[hidden]{display:none}.skill-demo-page{background:var(--paper);grid-template-rows:72px minmax(0,1fr);width:100%;min-width:0;height:100dvh;display:grid}.skill-demo-bar{align-items:center;gap:var(--space-22);min-width:0;padding-inline:var(--page-gutter);border-bottom:1px solid var(--ink);display:flex}.skill-demo-back{align-items:center;gap:var(--space-6);min-width:44px;min-height:44px;color:var(--ink-2);font-size:14px;text-decoration:none;display:inline-flex}.skill-demo-back:hover{color:var(--acc)}.skill-demo-bar h1{font-family:var(--font-serif);margin:0;font-size:22px;font-weight:600;line-height:1.3}.skill-workbench{background:var(--paper);min-width:0;min-height:0;color:var(--ink-body);grid-template-columns:220px minmax(0,1fr);display:grid}.skill-workbench.has-artifact{grid-template-columns:220px minmax(0,1fr) minmax(0,1fr)}.skill-conversations{min-width:0;padding:var(--space-18) var(--space-14);border-right:1px solid var(--rule);overflow-y:auto}.skill-sidebar-title{margin:0 0 var(--space-10);color:var(--ink-3);letter-spacing:.08em;font-size:12px;font-weight:400}.skill-conversation-choice{align-items:center;gap:var(--space-6);width:100%;min-width:44px;min-height:44px;padding:var(--space-10);border:0;border-left:2px solid var(--acc);background:var(--paper-2);color:var(--ink);text-align:left;cursor:pointer;border-radius:0;font-family:inherit;display:flex}.skill-conversation-choice:not([aria-current=true]){color:var(--ink-2);background:0 0;border-left-color:#0000}.skill-conversation-id{color:var(--acc);font-size:13px}.skill-conversation-separator{color:var(--ink-3)}.skill-conversation-title{font-size:14px;font-weight:600}.skill-conversation-note{margin:var(--space-14) 0 0;color:var(--ink-3);font-size:12px;line-height:1.5}.skill-mobile-menu,.skill-drawer-close,.skill-drawer-backdrop,.skill-artifact-back{display:none}.skill-mobile-menu,.skill-drawer-close,.skill-artifact-back{font-family:inherit}.skill-chat-count{display:none}.skill-prototype-focus-sentinel{opacity:0;pointer-events:none;block-size:1px;inline-size:1px;position:fixed;overflow:hidden}.skill-chat-pane{flex-direction:column;min-width:0;min-height:0;display:flex}.skill-workbench.has-artifact .skill-chat-pane{border-right:1px solid var(--rule)}.skill-chat-header{justify-content:space-between;align-items:center;gap:var(--space-14);min-width:0;padding:var(--space-14) var(--space-22);border-bottom:1px solid var(--rule);display:flex}.skill-chat-header h2{color:var(--ink);margin:0;font-size:15px;font-weight:600}.skill-chat-header span{color:var(--ink-3);font-size:12px}.skill-chat-scroll{min-width:0;min-height:0;padding:0 var(--space-22) var(--space-32);flex:1;position:relative;overflow-y:auto}.skill-chat-scroll.has-bottom-mask:after{z-index:1;height:var(--space-48);margin-top:calc(var(--space-48) * -1);background:linear-gradient(to bottom, transparent, var(--paper));content:"";pointer-events:none;display:block;position:sticky;bottom:0}.skill-chat-messages{max-width:680px;margin:0 auto;padding:0;list-style:none}.skill-message{padding-block:var(--space-18);border-bottom:1px solid var(--rule)}.skill-message-speaker{margin:0 0 var(--space-6);color:var(--ink-3);font-size:12px}.skill-message-text{color:var(--ink-body);white-space:pre-wrap;overflow-wrap:anywhere;margin:0;font-size:16px;line-height:1.85}.skill-message-files{gap:var(--space-10);margin-top:var(--space-10);flex-wrap:wrap;display:flex}.skill-file-link{border:0;border-bottom:1px solid var(--rule);min-width:44px;min-height:44px;color:var(--ink-2);cursor:pointer;background:0 0;border-radius:0;align-items:center;padding:0;font-size:15px;display:inline-flex}.skill-file-link:hover{border-bottom-color:var(--acc);color:var(--acc)}.skill-artifact-panel{border-left:1px solid var(--rule);background:var(--surface);flex-direction:column;min-width:0;min-height:0;display:flex}.skill-artifact-header{justify-content:space-between;align-items:center;gap:var(--space-14);min-width:0;padding:var(--space-18) var(--space-22);border-bottom:1px solid var(--rule);display:flex}.skill-artifact-actions{gap:var(--space-10);flex:none;display:flex}.skill-artifact-kind{margin:0 0 var(--space-6);color:var(--ink-3);font-size:12px}.skill-artifact-header h2{color:var(--ink);font-family:var(--font-serif);overflow-wrap:anywhere;margin:0;font-size:22px;font-weight:600;line-height:1.4}.skill-artifact-tabs{gap:var(--space-14);min-width:0;padding-inline:var(--space-22);border-bottom:1px solid var(--rule);display:flex;overflow-x:auto}.skill-artifact-tab{min-width:44px;min-height:44px;color:var(--ink-2);white-space:nowrap;cursor:pointer;background:0 0;border:0;border-bottom:1px solid #0000;border-radius:0;align-items:center;padding:0;font-size:14px;display:inline-flex}.skill-artifact-tab[aria-selected=true]{border-bottom-color:var(--acc);color:var(--ink)}.skill-artifact-pane{flex-direction:column;flex:1;min-width:0;min-height:0;display:flex}.skill-artifact-pane[hidden]{display:none}.skill-artifact-loading,.skill-artifact-error{justify-content:space-between;align-items:flex-start;gap:var(--space-14);min-width:0;padding:var(--space-22);color:var(--ink-2);font-size:14px;line-height:1.6;display:flex}.skill-artifact-loading p,.skill-artifact-error p{margin:0}.skill-prototype-toolbar{min-width:0;padding:var(--space-10) var(--space-22);border-bottom:1px solid var(--rule);justify-content:flex-end;display:flex}.skill-artifact-close{min-width:44px;min-height:44px;padding:0 var(--space-6);border:0;border-bottom:1px solid var(--rule);color:var(--ink-2);cursor:pointer;background:0 0;border-radius:0;justify-content:center;align-items:center;font-size:14px;display:inline-flex}.skill-artifact-close:hover{border-bottom-color:var(--acc);color:var(--acc)}.skill-artifact-scroll{min-width:0;min-height:0;padding:var(--space-22);flex:1;overflow-y:auto}.skill-artifact-notice{padding:var(--space-10) 0 var(--space-10) var(--space-10);margin:0 0 var(--space-22);border-left:2px solid var(--acc);color:var(--ink-3);font-size:12px;line-height:1.5}.skill-artifact-content{max-width:680px;color:var(--ink-body);overflow-wrap:anywhere;margin:0 auto;font-size:16px;line-height:1.85}.skill-artifact-content h3{margin:0 0 var(--space-18);color:var(--ink);font-family:var(--font-serif);font-size:22px;font-weight:600;line-height:1.4}.skill-artifact-content h4{margin:var(--space-28) 0 var(--space-10);color:var(--ink);font-family:var(--font-serif);font-size:20px;font-weight:600;line-height:1.45}.skill-artifact-content h5{margin:var(--space-22) 0 var(--space-10);color:var(--ink);font-size:16px;font-weight:600;line-height:1.5}.skill-artifact-content p{margin:0 0 var(--space-14)}.skill-artifact-content blockquote{padding-left:var(--space-14);margin:var(--space-18) 0;border-left:1px solid var(--rule);color:var(--ink-2)}.skill-artifact-content ul,.skill-artifact-content ol{padding-left:var(--space-22);margin:0 0 var(--space-18)}.skill-artifact-content li{padding-left:var(--space-6);margin-bottom:var(--space-6)}.skill-artifact-content strong{color:var(--ink);font-weight:600}.skill-artifact-content code{padding:0 var(--space-6);border-bottom:1px solid var(--rule);font-size:14px}.skill-diff-summary{max-width:920px;margin:0 auto var(--space-14);color:var(--ink-2);font-size:14px;line-height:1.6}.skill-diff-lines{border-top:1px solid var(--rule);max-width:920px;margin:0 auto}.skill-diff-line{align-items:start;gap:var(--space-6);min-width:0;padding:var(--space-6) var(--space-10);border-bottom:1px solid var(--rule);color:var(--ink-body);grid-template-columns:24px 52px minmax(0,1fr);font-size:14px;line-height:1.65;display:grid}.skill-diff-symbol,.skill-diff-label{color:var(--ink-2);font-variant-numeric:tabular-nums}.skill-diff-symbol{text-align:center;font-weight:600}.skill-diff-label{font-size:12px}.skill-diff-line code{overflow-wrap:anywhere;white-space:pre-wrap;min-width:0;color:var(--ink-body);font:inherit;user-select:text;display:block}.skill-prototype-notice{margin:var(--space-18) var(--space-22) var(--space-14)}.skill-prototype-preview{aspect-ratio:16/9;border:1px solid var(--rule);background:var(--paper);width:100%;position:relative}.skill-prototype-frame{background:var(--paper);border:0;width:100%;height:100%;display:block;position:absolute;inset:0}.skill-prototype-preview.is-expanded{z-index:1000;aspect-ratio:auto;background:var(--paper);border:0;grid-template-rows:72px minmax(0,1fr);width:100vw;height:100dvh;display:grid;position:fixed;inset:0}.skill-prototype-expanded-header{justify-content:space-between;align-items:center;gap:var(--space-14);min-width:0;padding-inline:var(--page-gutter);border-bottom:1px solid var(--ink);background:var(--paper);display:flex}.skill-prototype-expanded-header h2{color:var(--ink);font-family:var(--font-serif);margin:0;font-size:22px;font-weight:600}.skill-prototype-preview.is-expanded .skill-prototype-frame{min-height:0;position:static}.skill-prototype-placeholder{aspect-ratio:16/9;width:100%}@keyframes title-rise{0%{transform:translateY(105%)}to{transform:translateY(0)}}@keyframes intro-rise{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:translateY(0)}}@keyframes signature-line{to{transform:scaleX(1)}}@keyframes nav-line{to{transform:scaleX(1)}}@media (width<=1023px){.project-row{grid-template-columns:72px minmax(0,1fr) minmax(0,34%)}.case-header{grid-template-columns:minmax(0,1fr) minmax(0,34%)}.meli-demo-page,.gacha-demo-page{grid-template-rows:auto auto auto auto minmax(0,1fr);height:auto;min-height:100dvh}.meli-demo-bar,.gacha-demo-bar{gap:var(--space-10);height:auto;min-height:72px;padding-inline:var(--page-gutter-mobile);padding-block:var(--space-10);flex-wrap:wrap}.meli-demo-flow{white-space:normal;flex-wrap:wrap;flex:0 0 100%;margin-left:0}.gacha-demo-flows{flex:100%;margin-left:0}.gacha-demo-flows .gacha-demo-tool{min-width:0;padding-inline:var(--space-6);white-space:normal;flex:1 1 0}.meli-demo-tips-inner,.gacha-demo-tips-inner{padding-inline:var(--page-gutter-mobile);grid-template-columns:minmax(0,1fr)}.meli-demo-tips ol,.gacha-demo-tips ol{grid-template-columns:repeat(2,minmax(0,1fr))}.meli-demo-messages,.gacha-demo-messages,.meli-demo-scope,.gacha-demo-scope{padding-inline:var(--page-gutter-mobile)}}@media (width<=640px){.site-container{padding-inline:var(--page-gutter-mobile)}.header-inner{min-height:56px}.home-intro{padding-block:var(--space-56) var(--space-40)}.home-title{font-size:30px;line-height:1.3}.home-lede{margin-top:var(--space-18)}.project-row{row-gap:var(--space-18);padding-block:var(--space-28);grid-template-columns:minmax(0,1fr)}.project-preview-wrap{order:-1}.project-number{display:none}.project-title{margin-bottom:var(--space-10);font-size:23px;line-height:1.35}.project-problem{margin-bottom:var(--space-14)}.project-actions{gap:var(--space-18);margin-top:var(--space-14)}.contact-section{gap:var(--space-18);padding-block:var(--space-56);grid-template-columns:minmax(0,1fr)}.case-page{padding-top:var(--space-18)}.not-found-page{padding-block:var(--space-56)}.not-found-page h1{font-size:30px}.case-header{row-gap:var(--space-28);padding-bottom:var(--space-40);margin-bottom:var(--space-40);grid-template-columns:minmax(0,1fr)}.case-heading-copy h1{font-size:30px}.case-lede{font-size:17px}.case-layout{row-gap:var(--space-22);grid-template-columns:minmax(0,1fr)}.case-sidebar{position:static}.stage-toc ol{grid-template-columns:minmax(0,1fr)}.stage-toc a{padding-block:var(--space-10);align-items:flex-start}.stage-section{padding-block:var(--space-40)}.stage-section:first-child{padding-top:0}.stage-heading{column-gap:var(--space-14);grid-template-columns:32px minmax(0,1fr)}.stage-number{font-size:34px}.stage-heading h2{font-size:22px}.figure-dialog{width:calc(100vw - 40px)}.figure-dialog-header{align-items:flex-start}.footer-inner{min-height:72px}.meli-demo-bar{gap:var(--space-10);height:auto;min-height:72px;padding-inline:var(--page-gutter-mobile);padding-block:var(--space-10);flex-wrap:wrap}.meli-demo-bar h1{font-size:22px}.skill-demo-page{grid-template-rows:auto minmax(0,1fr);height:auto;min-height:100dvh}.skill-demo-bar{gap:var(--space-10);min-height:72px;padding-inline:var(--page-gutter-mobile);padding-block:var(--space-10);flex-wrap:wrap}.skill-workbench,.skill-workbench.has-artifact{grid-template-columns:minmax(0,1fr)}.skill-mobile-menu{min-width:44px;min-height:44px;padding:0 var(--space-6);border:0;border-bottom:1px solid var(--rule);color:var(--ink-2);cursor:pointer;background:0 0;border-radius:0;flex:none;justify-content:center;align-items:center;font-size:14px;display:inline-flex}.skill-mobile-menu:hover{border-bottom-color:var(--acc);color:var(--acc)}.skill-conversations{z-index:950;width:min(280px,82vw);padding:var(--space-18) var(--space-14);border-right:1px solid var(--ink);background:var(--paper);visibility:hidden;transition:transform .3s var(--ease-editorial), visibility .3s linear;display:block;position:fixed;inset-block:0;inset-inline-start:0;transform:translate(-100%)}.skill-conversations.is-open{visibility:visible;transition:transform .3s var(--ease-editorial);transform:none}.skill-drawer-backdrop{z-index:940;background:0 0;display:block;position:fixed;inset:0}.skill-conversations-header{justify-content:space-between;align-items:center;gap:var(--space-10);display:flex}.skill-conversations-header .skill-sidebar-title{margin:0}.skill-drawer-close{min-width:44px;min-height:44px;padding:0 var(--space-6);border:0;border-bottom:1px solid var(--rule);color:var(--ink-2);cursor:pointer;background:0 0;border-radius:0;justify-content:center;align-items:center;font-size:14px;display:inline-flex}.skill-drawer-close:hover{border-bottom-color:var(--acc);color:var(--acc)}.skill-chat-pane,.skill-workbench.has-artifact .skill-chat-pane{border-right:0;border-bottom:1px solid var(--rule)}.skill-chat-header,.skill-chat-scroll{padding-inline:var(--page-gutter-mobile)}.skill-chat-header{justify-content:flex-start;gap:var(--space-10)}.skill-chat-header h2{flex:auto;min-width:0}.skill-chat-preset{display:none}.skill-chat-count{white-space:nowrap;display:inline}.skill-artifact-tabs{padding-inline:var(--page-gutter-mobile)}.skill-artifact-panel{z-index:960;border-top:0;border-left:0;position:fixed;inset:0}.skill-artifact-header,.skill-artifact-scroll{padding-inline:var(--page-gutter-mobile)}.skill-artifact-header{padding-block:var(--space-14);flex-wrap:wrap;align-items:flex-start}.skill-artifact-header .skill-artifact-back{border-bottom:0;flex:1 0 100%;justify-content:flex-start;display:inline-flex}.skill-artifact-header>div{padding-block:var(--space-6);flex:auto}.skill-artifact-header>.skill-artifact-close:not(.skill-artifact-back){display:none}.skill-prototype-toolbar{padding-inline:var(--page-gutter-mobile)}.skill-prototype-notice{margin-inline:var(--page-gutter-mobile)}.skill-prototype-expanded-header{padding-inline:var(--page-gutter-mobile)}.gacha-demo-bar{gap:var(--space-10);height:auto;min-height:72px;padding-inline:var(--page-gutter-mobile);padding-block:var(--space-10);flex-wrap:wrap}.gacha-demo-flow{display:none}.gacha-demo-flows{gap:var(--space-6);flex:0 0 100%;margin-left:0}.gacha-demo-flows .gacha-demo-tool{min-width:0;padding-inline:var(--space-6);white-space:normal;flex:1 1 0}.meli-demo-flow{white-space:normal;flex-wrap:wrap;flex:0 0 100%;margin-left:0;display:flex}.meli-demo-tips-inner,.gacha-demo-tips-inner{padding-inline:var(--page-gutter-mobile);grid-template-columns:minmax(0,1fr)}.meli-demo-tips ol{grid-template-columns:repeat(2,minmax(0,1fr))}.meli-demo-page[data-flow=M2] .meli-demo-tips ol{grid-template-columns:minmax(0,1fr)}.gacha-demo-tips ol{grid-template-columns:repeat(2,minmax(0,1fr))}.meli-demo-messages,.gacha-demo-messages{padding-inline:var(--page-gutter-mobile)}.meli-demo-scope,.gacha-demo-scope{padding-inline:var(--page-gutter-mobile);align-items:flex-start}.meli-demo-page{grid-template-rows:auto auto auto auto auto;height:auto;min-height:100dvh}.meli-mobile-preview{padding-inline:var(--page-gutter-mobile)}.gacha-demo-page{grid-template-rows:auto auto auto auto minmax(0,1fr);height:100dvh}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition:none!important;animation:none!important}.header-inner:after,.title-signature:after,.has-reveal [data-reveal]:not(.is-visible){opacity:1;clip-path:none;transform:none}.skill-chat-scroll.has-bottom-mask:after{display:none}}@supports not (background:linear-gradient(to bottom, transparent, var(--paper))){.skill-chat-scroll.has-bottom-mask:after{display:none}}
