:root{--paper:#fcfcfb;--ink:#232527;--muted:#707379;--line:#eaeaea;--green:#4769df;--sage:#e8eeff;--lilac:#eeeafa;--peach:#f8ebe3;--butter:#f0f1e7;--sidebar:224px;--blue:#4265dc;--ease:cubic-bezier(.22,1,.36,1)}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--paper);color:var(--ink);font:14px/1.6 -apple-system,BlinkMacSystemFont,'Segoe UI',Helvetica,Arial,sans-serif;-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}button{font:inherit;color:inherit;cursor:pointer;border:0;background:none}a,button{-webkit-tap-highlight-color:transparent}a:focus-visible,button:focus-visible{outline:2px solid var(--blue);outline-offset:5px}a:hover{color:var(--blue)}[hidden]{display:none!important}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.skip-link{position:fixed;top:-100px;left:20px;padding:12px 20px;background:white;z-index:50}.skip-link:focus{top:12px}
.sidebar{width:var(--sidebar);position:fixed;inset:0 auto 0 0;padding:35px 18px 20px;border-right:1px solid var(--line);display:flex;flex-direction:column;background:#f8f9fa;z-index:20}.brand{display:flex;align-items:center;gap:11px;font-size:13px;font-weight:600;line-height:1.5;margin:0 8px 48px}.brand small{display:block;font-size:10px;font-weight:400;color:#7f838c;margin-top:1px}.brand-mark{font-family:Georgia,serif;font-style:italic;font-size:25px;letter-spacing:-4px;display:flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:11px;color:#fff;background:#4565d8;box-shadow:inset 0 1px 2px #ffffff66,0 2px 3px #263d791c;padding-right:4px}.brand-mark span{font-size:21px}nav>a{display:flex;align-items:center;gap:11px;padding:9px 12px;border-radius:7px;color:#727680;font-size:12px;margin:4px 0;transition:background .2s,color .2s}nav>a>span:first-child{width:15px;text-align:center;font-size:15px}nav>a.active{background:white;color:#2b303a;font-weight:550;box-shadow:0 1px 4px #252b3410,0 0 0 1px #24283305}nav>a:hover{background:#eef0f4;color:#323b51}.nav-count{margin-left:auto;font:9px ui-monospace,monospace;color:#979ba6}.nav-label{font:9px ui-monospace,monospace;letter-spacing:1.2px;margin:30px 12px 13px;color:#a0a4ad}nav>a.project-nav{font-size:11px;gap:11px}.project-nav small{margin-left:auto;font:8px ui-monospace,monospace;letter-spacing:.5px}.dot{width:6px;height:6px;border-radius:2px;display:inline-block;flex-shrink:0;transform:rotate(-12deg)}.dot.sage{background:#708dec}.dot.lilac{background:#b4a1d9}.dot.peach{background:#e1ae90}.dot.butter{background:#9dae84}.sidebar-bottom{margin-top:auto;padding-top:30px}.onboarding{border:1px solid #e5e7ec;border-radius:12px;padding:13px;background:#fff;box-shadow:0 3px 9px #26334d03}.onboarding>button{width:100%;display:flex;justify-content:space-between;padding:0;font-size:11px;font-weight:550}.onboarding>button span span{margin-right:5px;color:#6480d7;font-size:14px}#checklistBody>p{font-size:10px;color:#9297a3;margin:6px 0 12px}.progress-track{height:3px;background:#eef0f5;margin:13px 0;border-radius:4px;overflow:hidden}#progressFill{height:100%;background:#7792ed;transition:width .35s}.onboarding a{display:flex;gap:8px;font-size:10px;padding:5px 0;color:#747b8b}.check-circle{color:#bdc5d5}.onboarding a.done .check-circle{color:#6a83d0}.onboarding #progressText{font:9px ui-monospace,monospace;margin:10px 0 0;color:#939aa8}.sidebar-foot{display:flex;justify-content:space-between;align-items:center;margin:17px 3px 0;color:#a0a5af;font-size:9px}.sidebar-foot a{font-size:16px}.main-wrap{margin-left:var(--sidebar)}main{min-height:85vh;max-width:1380px;margin:auto;padding:36px 6.7% 80px}main:focus{outline:none}.page-topline{display:flex;justify-content:space-between;color:#9498a0;font:9px ui-monospace,monospace;letter-spacing:1.1px;margin-bottom:76px}.page-topline .edition{letter-spacing:0;font:11px -apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;color:#a2a5ac}.hero{position:relative;display:flex;align-items:center;gap:30px;padding-bottom:78px}.hero-copy{flex:1;min-width:0}.intro-line{display:flex;gap:9px;align-items:center;font-size:12px;color:#6e7480;margin-bottom:24px}.intro-line i{width:6px;height:6px;background:#7089d7;border-radius:50%;box-shadow:0 0 0 4px #eaf0ff}h1,h2,h3,p{margin-top:0}h1{font-weight:500;font-size:clamp(42px,4.7vw,68px);line-height:1.08;letter-spacing:-3.2px;margin-bottom:24px}h1 em{font-weight:450;font-style:normal;color:#888e9b}.hero h1{font-size:clamp(40px,4.1vw,62px);white-space:nowrap;position:relative}.heading-dot{display:inline-block;font-size:29px;color:#6280de;vertical-align:top;margin:8px 0 0 9px;transform:rotate(-12deg)}p.lede{max-width:465px;font-size:14px;line-height:1.85;color:#818692}.hero-bottom{margin-top:28px;display:flex;align-items:center;gap:22px}.text-link{display:inline-flex;align-items:center;gap:20px;font-size:11px;border:1px solid #e4e7ec;border-radius:7px;padding:8px 12px;background:white;box-shadow:0 1px 3px #252b3405;transition:box-shadow .2s,transform .2s}.text-link:hover{transform:translateY(-2px);box-shadow:0 4px 12px #33477910}.hero-note{font-size:10px;color:#a0a5ae}.hello-object{position:relative;flex:0 0 175px;width:175px;height:190px;margin-top:0;perspective:700px;padding:0;isolation:isolate;transform:rotate(7deg)}.object-face{position:absolute;inset:14px 14px 34px;background:linear-gradient(140deg,#8aabff,#577de8 50%,#3f5dc5);border-radius:32px;box-shadow:inset 1px 2px 3px #dce8ff99,inset -2px -3px 3px #213b8d55,0 12px 22px #536aa536;display:flex;flex-direction:column;align-items:center;justify-content:center;transition:transform .8s var(--ease),background .5s}.object-face>span{font:italic 78px/1 Georgia,serif;letter-spacing:-14px;color:#f0f5ff;padding-right:12px;text-shadow:0 2px 2px #314e9c44}.object-face>span>span{font-size:62px}.object-face i{font:5px ui-monospace,monospace;letter-spacing:1.4px;color:#d8e4ff;position:absolute;bottom:16px}.object-shadow{position:absolute;left:32px;right:20px;bottom:21px;height:17px;background:#a0b5e3;filter:blur(14px);border-radius:50%;opacity:.4}.object-star{position:absolute;top:0;right:0;color:#d9ec7f;font-size:69px;line-height:1;text-shadow:0 3px 2px #71893433;transform:rotate(-13deg);transition:transform .8s var(--ease);z-index:2}.object-label{position:absolute;bottom:0;left:30px;right:0;font:10px ui-monospace,monospace;color:#969dac;transform:rotate(-7deg)}.hello-object:hover .object-face{transform:rotateY(-15deg) rotate(-5deg) translateY(-5px)}.hello-object:hover .object-star{transform:rotate(35deg)}.hello-object.is-playful .object-face{transform:rotateY(360deg) rotate(-12deg);background:linear-gradient(140deg,#bdcba1,#89a86f)}.hello-object.is-playful .object-star{transform:rotate(160deg);color:#f1bf8f}.section-heading{display:flex;justify-content:space-between;align-items:center;padding-top:24px;border-top:1px solid var(--line);margin-bottom:25px}.section-heading h2{font-size:14px;letter-spacing:-.2px;font-weight:550;margin:0}.section-heading h2 span{font:9px ui-monospace,monospace;display:inline-block;margin-left:7px;background:#f0f1f4;border-radius:4px;padding:1px 5px;color:#8d93a1}.section-heading>span{font-size:10px;color:#a1a6b0}.section-heading>span>span{margin-left:15px;font-size:15px}.projects{display:grid;grid-template-columns:1fr 1fr;gap:42px 26px}.project-card{display:block;min-width:0}.project-art{height:310px;border-radius:14px;position:relative;overflow:hidden;display:flex;align-items:center;justify-content:center;isolation:isolate;border:1px solid #00000003;transition:box-shadow .45s,transform .45s var(--ease)}.project-art:after{content:'';position:absolute;inset:0;pointer-events:none;box-shadow:inset 0 1px 0 #ffffff99;border-radius:inherit}.project-art.sage{background:radial-gradient(ellipse at 65% 0%,#eaf3ff 0,transparent 60%),linear-gradient(145deg,#e3ecfc,#dbe5fa 60%,#dae4f7)}.project-art.lilac{background:radial-gradient(ellipse at 0 100%,#e0d6f6,transparent 80%),#eeeaf6}.project-art.peach{background:radial-gradient(ellipse at 100% 0,#fff2e8,transparent 80%),#f1e5dc}.project-art.butter{background:linear-gradient(140deg,#e7eddf,#e0e8d8)}.project-card:hover .project-art{transform:translateY(-3px);box-shadow:0 12px 30px #263a6910}.art-number{position:absolute;top:16px;left:18px;font:7px ui-monospace,monospace;letter-spacing:1px;color:#697a9b;opacity:.65;z-index:3}.art-label{position:absolute;bottom:13px;left:18px;font:7px ui-monospace,monospace;letter-spacing:.4px;color:#75829a;z-index:3}.card-meta{display:flex;justify-content:space-between;gap:10px;margin:18px 0 9px;font:8px ui-monospace,monospace;letter-spacing:.65px;color:#959aa5}.card-meta span:last-child{letter-spacing:0;color:#a2a7af}.project-card h3{font-weight:500;font-size:22px;line-height:1.3;letter-spacing:-.65px;max-width:400px;margin-bottom:8px}.project-card p{font-size:12px;color:#9095a0;max-width:390px;line-height:1.8;margin-bottom:0}.card-title-row{display:flex;justify-content:space-between;gap:15px}.card-arrow{flex-shrink:0;display:flex;align-items:center;justify-content:center;border:1px solid #e5e8ee;background:#fff;width:28px;height:28px;border-radius:50%;font-size:14px;color:#8d97a9;transition:background .2s,color .2s,transform .3s}.project-card:hover .card-arrow{background:#496bd9;border-color:#496bd9;color:white;transform:rotate(8deg)}
.product-scene{position:relative;width:100%;height:100%;display:flex;align-items:center;justify-content:center;pointer-events:none;transition:transform .6s var(--ease)}.product-scene svg{width:15px;height:15px;flex-shrink:0}.project-card:hover .product-scene{transform:scale(1.035)}.demo-app{display:flex;width:84%;height:225px;background:#ffffff;border:1px solid #f8fbff;border-radius:9px;box-shadow:0 22px 35px #4b64a21c,0 3px 5px #506ba514;transform:rotate(-3deg);overflow:hidden}.demo-rail{background:#f8f9fc;width:33px;border-right:1px solid #edf0f5;display:flex;align-items:center;flex-direction:column;gap:15px;padding-top:12px;flex-shrink:0;color:#a9b3c6}.demo-rail b{font:italic 15px Georgia,serif;color:#5e78bd;margin-bottom:6px}.demo-rail svg{width:12px;height:12px}.demo-main{flex:1;padding:10px 15px;min-width:0}.demo-toolbar{display:flex;justify-content:space-between;color:#acb4c4;font-size:6px;border-bottom:1px solid #f0f2f7;padding-bottom:7px}.demo-welcome{margin:15px 0 10px}.demo-welcome>small{font:4px ui-monospace,monospace;letter-spacing:1px;color:#9ca9bf}.demo-welcome h4{font-size:17px;line-height:1.12;font-weight:550;letter-spacing:-.6px;color:#343e55;margin:6px 0}.demo-welcome p{font-size:5px!important;margin:0;color:#a2aabb}.demo-cards{display:flex;gap:6px}.demo-card{position:relative;flex:1;border:1px solid #e9edf6;border-radius:5px;padding:7px;min-width:0;background:#fcfdff}.demo-card.lead{flex:1.35}.demo-card b{display:block;font-size:5px;line-height:1.5;color:#536079;margin-top:6px}.demo-card small{display:block;font:3px ui-monospace,monospace;color:#6a84c7;letter-spacing:.6px}.demo-card>span{display:flex;align-items:center;gap:3px;font-size:4px;line-height:1.5;color:#9ba6bb;margin-top:3px}.demo-card>span svg{width:6px;height:6px}.demo-docs{height:35px;position:relative;width:42px;margin:0 auto 8px}.demo-docs i{position:absolute;top:3px;left:4px;width:25px;height:31px;background:#e5edff;border:1px solid #d6e0f4;border-radius:2px;transform:rotate(-15deg)}.demo-docs i:nth-child(2){left:18px;transform:rotate(12deg);background:#f2e9d9;border-color:#e6dbc5}.demo-docs i:nth-child(3){left:11px;top:0;transform:rotate(0);background:#fff;box-shadow:0 3px 5px #7691bf13}.demo-docs i:nth-child(3):after{content:'';position:absolute;top:10px;left:4px;right:4px;height:2px;background:#e3e9f4;box-shadow:0 5px #e3e9f4,0 10px #e3e9f4}.demo-orb{width:30px;height:30px;background:#efeafd;border:1px solid #e5dcf8;border-radius:10px;margin:2px auto 17px;color:#a28ad0;display:grid;place-items:center}.demo-people{height:35px;display:flex;align-items:center;justify-content:center;margin-bottom:14px}.demo-people i{font-size:5px;font-style:normal;background:#dfe8f9;color:#7d91be;border:2px solid white;border-radius:50%;display:grid;place-items:center;width:18px;height:18px;margin-left:-4px}.demo-people i:nth-child(2){background:#f7e7df;color:#c3967e}.demo-people i:nth-child(3){background:#e8eddc;color:#8d9d6e}.floating-note{position:absolute;bottom:36px;left:12px;background:#fffefb;padding:8px 11px;border-radius:7px;box-shadow:0 4px 13px #4a619b14;font-size:7px;color:#7f8c72;transform:rotate(3deg);display:flex;align-items:center;gap:5px}.floating-note svg{width:10px;height:10px;color:#8aab71}.floating-cursor{position:absolute;right:16px;top:65px;color:#5773d0;font-size:27px;transform:rotate(5deg)}.floating-cursor span{font:6px -apple-system,sans-serif;background:#6484df;color:white;padding:4px 6px;border-radius:2px 5px 5px 5px;display:block;margin-left:15px;margin-top:-7px}.answer-card{width:70%;max-width:300px;background:#fefeff;border:1px solid #ffffff;border-radius:12px;padding:17px;box-shadow:0 17px 30px #68518c1c;transform:rotate(3deg)}.answer-top{display:flex;align-items:center;gap:7px;color:#666274}.answer-top>span:last-child{margin-left:auto;color:#aaa3b7}.agent-logo{display:grid;place-items:center;width:26px;height:26px;border-radius:8px;background:linear-gradient(140deg,#baabd9,#8c78b6);color:white;box-shadow:inset 0 1px 0 #ffffff88}.answer-top b{font-size:9px;font-weight:550;display:block}.answer-top small{font-size:5px;color:#aaa3b7;display:block;margin-top:2px}.demo-question{font-size:7px;background:#eeeaf5;padding:8px 10px;border-radius:8px 8px 2px 8px;max-width:75%;margin:17px 0 13px auto;color:#8b7fa3}.demo-answer>b{font-size:8px;color:#6c647d;font-weight:500}.answer-lines{margin:10px 0;display:flex;flex-direction:column;gap:5px}.answer-lines i{height:3px;border-radius:2px;background:#eeebf3;width:100%;display:block}.answer-lines i:nth-child(2){width:89%}.answer-lines i:nth-child(3){width:65%}.demo-source{display:inline-flex;align-items:center;gap:4px;font-size:5px;border:1px solid #e9e4f0;border-radius:4px;padding:4px 5px;color:#a69ab8}.demo-source svg{width:7px;height:7px}.answer-bottom{display:flex;justify-content:space-between;font-size:6px;border:1px solid #e9e5ef;border-radius:5px;margin-top:17px;padding:7px;color:#b6adbf}.answer-bottom>span:last-child{color:#fff;background:#a18cbd;border-radius:3px;width:12px;text-align:center}.question-note{position:absolute;left:12px;top:32px;font:7px ui-monospace,monospace;color:#9f8cb5;transform:rotate(-6deg)}.ask-ai-pill{position:absolute;bottom:30px;right:23px;display:flex;gap:6px;align-items:center;padding:8px 12px;background:#fff;border:1px solid #ede6f7;border-radius:7px;box-shadow:0 5px 12px #765c9a14;font-size:8px;color:#9080aa;transform:rotate(-4deg)}.ask-ai-pill svg{width:10px;height:10px}.ask-ai-pill>span{margin-left:7px;color:#b4a6c6}.purchase-card{width:84%;max-width:390px;background:#fff;border:1px solid #fff;border-radius:9px;padding:18px;box-shadow:0 20px 30px #87654b14;transform:rotate(-3deg)}.purchase-head{display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid #f3eeea;padding-bottom:13px;font-size:13px;font-weight:500;color:#65594f}.purchase-head small{font-size:5px;color:#b4a89e;display:flex;gap:3px;align-items:center}.purchase-head small svg{width:7px;height:7px}.purchase-cols{display:grid;grid-template-columns:1.2fr 1fr;gap:12px;margin-top:13px}.purchase-plan{border:1px solid #e1d8cc;border-radius:6px;padding:11px}.plan-symbol{color:#bca487;font-size:20px;line-height:1}.purchase-plan b{display:block;font-size:8px;margin:6px 0 3px;color:#897664}.purchase-plan small{font-size:5px;color:#b4a89c}.plan-options{font-size:5px;background:#f6f1eb;border-radius:4px;padding:3px;display:flex;gap:3px;margin-top:10px}.plan-options>span{padding:3px 6px;color:#b0a395}.plan-options .selected{background:#fff;border-radius:3px;box-shadow:0 1px 2px #b6a59124;color:#8c7966}.payment-field{font-size:6px;color:#b0a499;margin-top:10px;border:1px solid #eee7de;padding:7px;border-radius:4px;display:flex;justify-content:space-between}.purchase-summary{background:#f9f5ef;border-radius:6px;padding:12px}.purchase-summary>b{font-size:8px;font-weight:500;color:#9c8872}.purchase-summary .answer-lines{margin:14px 0}.purchase-summary .answer-lines i{background:#e9dfd1}.summary-rule{height:1px;background:#e9dfd1;margin:15px 0 9px}.purchase-summary>span{font-size:5px;color:#b5a692}.demo-pay{display:flex;justify-content:space-between;align-items:center;font-size:6px;color:#fff;padding:6px;background:#8c957d;border-radius:3px;margin-top:10px}.demo-pay svg{width:7px;height:7px}.decision-sticker{position:absolute;right:13px;bottom:29px;font-size:10px;line-height:1.2;color:#b79778;transform:rotate(7deg);background:#fbf2dc;box-shadow:0 3px 6px #8e714414;width:80px;padding:10px;border-radius:1px}.decision-sticker span{position:absolute;top:6px;right:8px;font-size:14px}.living-board{width:83%;background:#fffefa;border:1px solid #ffffff;border-radius:8px;padding:17px;box-shadow:0 17px 30px #5d76501a;transform:rotate(3deg)}.living-heading{display:flex;justify-content:space-between;font-size:12px;letter-spacing:-.2px;color:#69775f;padding-bottom:13px}.living-heading>span{color:#9ba78e}.living-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.living-object{position:relative;background:#e9ede0;border-radius:5px;min-height:140px;display:flex;flex-direction:column;align-items:center;justify-content:center}.vase{position:relative;width:48px;height:64px;border-radius:6px 6px 22px 22px;background:linear-gradient(90deg,#d2ad86,#edd0af 40%,#cda67e);box-shadow:3px 7px 8px #78845919}.vase:before{content:'';position:absolute;top:-6px;left:0;width:48px;height:12px;border-radius:50%;background:#dfbf9c;box-shadow:inset 0 0 0 4px #d0ad83}.living-object small{font-size:4px;color:#a2ac93;margin-top:13px}.living-list{padding:14px 0}.living-list>small{font:4px ui-monospace,monospace;letter-spacing:.7px;color:#a4ae95}.living-list>b{font-size:9px;font-weight:500;color:#7e8b70;display:block;margin:10px 0 17px}.living-list>span{display:block;font-size:5px;color:#abb49d;margin:9px 0}.living-sticker{position:absolute;bottom:21px;left:18px;font:8px/1.2 ui-monospace,monospace;transform:rotate(-10deg);background:#f7f0d4;border:1px solid #ebe3bf;color:#a1986b;padding:9px 28px 9px 10px;border-radius:4px}.living-sticker span{position:absolute;right:7px;top:7px;font-size:20px}
.closing{margin-top:80px;padding:40px 0 0;border-top:1px solid var(--line);display:flex;justify-content:space-between;align-items:center;gap:25px}.closing h2{font-size:26px;font-weight:500;letter-spacing:-.8px;margin-bottom:7px}.closing p{font-size:12px;color:#9399a4;margin:0}.closing .text-link{white-space:nowrap}footer{margin:0 6.7%;padding:24px 0;border-top:1px solid var(--line);display:flex;gap:20px;justify-content:space-between;color:#a1a6ae;font-size:9px}footer>a{color:#758099}.mobile-header,.mobile-close{display:none}.menu-scrim{display:none}.page-intro{max-width:740px;margin:60px 0 45px}.eyebrow{font:9px ui-monospace,monospace;letter-spacing:1.5px;color:#929baa}.page-intro .eyebrow{margin-bottom:25px}.page-intro h1{font-size:clamp(42px,4.8vw,65px)}.about-copy{max-width:620px;font-size:17px;line-height:1.9;color:#868c97}.about-copy strong{font-weight:500;color:#3a424e}.stack{display:flex;flex-wrap:wrap;gap:10px;margin-top:25px}.stack span{border:1px solid #e7e9ed;background:#fff;box-shadow:0 2px 4px #242d3f04;padding:10px 16px;border-radius:9px;font-size:12px;color:#7d8798;transition:transform .2s}.stack span:hover{transform:translateY(-3px)}.subhead{font:9px ui-monospace,monospace;letter-spacing:1px;text-transform:uppercase;margin-top:48px;color:#929baa}.contact-links{display:flex;flex-direction:column;max-width:600px;margin-top:40px}.contact-links a{display:flex;justify-content:space-between;padding:22px 0;border-bottom:1px solid var(--line);font-size:23px;letter-spacing:-.6px}.contact-note{font-size:12px;color:#959ca8;max-width:400px}.back-link{font-size:10px;color:#8c96a8;display:inline-flex;margin:15px 0 45px;gap:12px}.case-header{max-width:820px}.case-header h1{font-size:clamp(40px,4.5vw,62px);margin-top:20px;letter-spacing:-2.7px}.case-header .lede{max-width:600px}.case-meta{display:flex;gap:40px;margin:30px 0;font-size:10px;color:#a0a7b3}.case-meta strong{display:block;font-weight:500;color:#687487;font-size:12px;margin-top:5px}.draft-chip{display:inline-block;font:9px ui-monospace,monospace;background:#f0f3fa;color:#8b99b7;padding:5px 9px;border-radius:5px;margin-bottom:24px}.case-art .project-art{height:440px;border-radius:16px}.case-art .product-scene{max-width:680px}.case-art .demo-app{height:310px;width:82%;transform:rotate(-2deg)}.case-art .demo-rail{width:42px;padding-top:20px;gap:21px}.case-art .demo-main{padding:15px 22px}.case-art .demo-toolbar{font-size:8px;padding-bottom:10px}.case-art .demo-welcome{margin:18px 0 16px}.case-art .demo-welcome h4{font-size:26px;margin:8px 0}.case-art .demo-welcome>small{font-size:6px}.case-art .demo-welcome p{font-size:7px!important}.case-art .demo-card{padding:10px}.case-art .demo-card b{font-size:8px}.case-art .demo-card small{font-size:5px}.case-art .demo-card>span{font-size:6px}.case-art .demo-docs{margin-bottom:15px}.case-art .demo-orb{margin-bottom:25px}.case-art .demo-people{margin-bottom:24px}.case-art .answer-card{max-width:330px;padding:25px;transform:rotate(2deg)}.case-art .answer-top b{font-size:12px}.case-art .answer-top small{font-size:8px}.case-art .demo-question{font-size:9px}.case-art .demo-answer>b{font-size:11px}.case-art .demo-source{font-size:8px}.case-art .answer-bottom{font-size:9px}.case-art .question-note{left:60px;top:50px}.case-art .purchase-card{max-width:480px;padding:27px}.case-art .purchase-head{font-size:19px}.case-art .purchase-plan b{font-size:12px}.case-art .purchase-plan small{font-size:8px}.case-art .purchase-summary>b{font-size:12px}.case-art .purchase-summary>span{font-size:8px}.case-art .plan-options{font-size:8px}.case-art .payment-field{font-size:9px}.case-art .demo-pay{font-size:9px;padding:8px}.case-art .living-board{max-width:460px;padding:26px}.case-art .living-heading{font-size:19px}.case-art .living-object{min-height:180px}.case-art .living-list>b{font-size:13px}.case-art .living-list>small{font-size:6px}.case-art .living-list>span{font-size:8px}.case-tools{display:flex;justify-content:space-between;gap:20px;align-items:center;margin:25px 0 70px}.thinking{font-size:10px;border:1px solid #e2e7f2;border-radius:7px;padding:8px 12px;color:#8593b2;background:#fff}.thinking[aria-pressed=true]{background:#edf2ff;color:#5371bc}.case-tools p{font-size:10px;color:#a2a9b6;margin:0}.case-body{max-width:710px;margin:auto}.case-section{margin-bottom:65px}.case-section h2{font-size:30px;font-weight:500;line-height:1.22;letter-spacing:-1.2px;max-width:610px;margin-bottom:18px}.case-section p{font-size:14px;color:#88909d;line-height:1.9;max-width:600px}.visual-slot{padding:40px 25px;border:1px dashed #d9dfeb;background:#f5f7fb;border-radius:12px;margin:25px 0 12px;min-height:190px;display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center}.visual-slot span{font:8px ui-monospace,monospace;letter-spacing:1.5px;color:#a3aec2}.visual-slot strong{font-size:18px;font-weight:400;margin:12px 0;color:#8595b1;letter-spacing:-.4px}.visual-caption{font-size:10px!important;color:#9ba6b8!important}.thinking-note{border-left:2px solid #b7c7ed;padding:15px 20px;background:#f1f5fe;margin-top:25px;border-radius:0 8px 8px 0}.thinking-note h3{font:9px ui-monospace,monospace;text-transform:uppercase;letter-spacing:.8px;margin-bottom:8px;color:#8296bd}.thinking-note p{font-size:12px;margin:0;color:#8b9ab4}.case-outcome{padding:30px;background:#f0f4fd;border-radius:12px}.case-outcome h2{font-size:25px}.case-outcome p{margin-bottom:0}.next-project{display:flex;justify-content:space-between;gap:20px;border-top:1px solid var(--line);padding-top:30px;margin-top:65px;font-size:23px;letter-spacing:-.5px}.next-project small{display:block;font:8px ui-monospace,monospace;letter-spacing:1px;color:#a4acb9;margin-bottom:9px}
@media(min-width:1500px){.project-art{height:360px}.demo-app{height:250px}.demo-welcome h4{font-size:21px}.demo-welcome{margin-top:19px}.demo-cards{margin-top:17px}.demo-card{padding:10px}.demo-card b{font-size:7px}.demo-card>span{font-size:5px}.demo-card small{font-size:4px}}
@media(max-width:1200px){:root{--sidebar:200px}.sidebar{padding-left:14px;padding-right:14px}.brand{margin-left:6px;gap:9px}main{padding:32px 5.5% 70px}.hello-object{flex-basis:130px;width:130px;height:155px}.object-face{border-radius:25px;inset:13px 6px 30px}.object-face>span{font-size:65px}.object-face>span>span{font-size:50px}.object-face i{font-size:4px;letter-spacing:1px;bottom:12px}.object-star{font-size:52px;right:-3px}.object-label{font-size:8px;left:20px}.hero h1{font-size:clamp(36px,4.4vw,54px);letter-spacing:-2.2px}.heading-dot{font-size:24px}.hero{gap:10px}.hero-note{display:none}.project-art{height:275px}.demo-app{height:205px}.demo-main{padding:8px 10px}.demo-welcome{margin:12px 0 8px}.demo-welcome h4{font-size:15px}.demo-card{padding:5px}.demo-card b{font-size:4px}.demo-docs{transform:scale(.8);margin-bottom:2px}.demo-orb{transform:scale(.8);margin-bottom:10px}.demo-people{transform:scale(.8);margin-bottom:7px}.project-card h3{font-size:20px}.floating-note{font-size:6px;bottom:30px;left:9px;padding:6px}.floating-cursor{font-size:22px;right:7px;top:55px}.floating-cursor span{font-size:5px}.answer-card{padding:13px}.question-note{font-size:5px}.purchase-card{padding:13px}.purchase-head{font-size:11px}.purchase-cols{gap:8px}.purchase-plan{padding:8px}.purchase-summary{padding:8px}.decision-sticker{font-size:8px;width:65px;right:8px}.living-heading{font-size:10px}.living-board{padding:13px}.living-object{min-height:120px}.living-list{padding:7px 0}.living-list>b{font-size:7px}.living-list>span{font-size:4px}.living-list>small{font-size:3px}}
@media(max-width:980px) and (min-width:801px){.hello-object{display:none}.hero{padding-bottom:60px}.hero h1{font-size:48px}.project-art{height:250px}.demo-app{width:90%}.demo-rail{width:24px}.demo-toolbar{font-size:5px}.demo-card>span{font-size:3px}.demo-card b{font-size:4px}.answer-card{width:78%}.answer-top small{font-size:4px}.demo-answer>b{font-size:6px}.purchase-head small{display:none}.purchase-summary>b{font-size:6px}.decision-sticker{bottom:20px}.case-header h1{font-size:47px}}
@media(max-width:800px){:root{--sidebar:0px}.sidebar{width:250px;transform:translateX(-100%);transition:transform .3s var(--ease);z-index:30;padding:28px 20px 18px}.sidebar.is-open{transform:translateX(0)}.mobile-close{display:block;position:absolute;right:10px;top:17px;font-size:24px}.mobile-header{display:flex;align-items:center;justify-content:space-between;padding:14px 6%;border-bottom:1px solid var(--line);font-size:12px;background:#fff}.icon-button{font-size:19px;min-width:40px;min-height:40px}.menu-scrim:not([hidden]){display:block;position:fixed;inset:0;background:#1d2b4b33;backdrop-filter:blur(3px);z-index:25}.main-wrap{margin:0}main{padding:25px 6% 60px}.page-topline{margin-bottom:55px;font-size:8px}.page-topline .edition{font-size:9px}.hero{padding-bottom:55px;gap:20px}.hero h1{font-size:clamp(37px,6vw,49px)}.hello-object{flex-basis:120px;width:120px;height:145px}.hero p.lede{font-size:13px}.hero .heading-dot{display:none}.intro-line{font-size:11px}.project-art{height:280px}.demo-app{height:210px}.projects{gap:34px 22px}.case-art .project-art{height:370px}.case-tools{margin-bottom:50px}.page-intro{margin-top:40px}.case-header h1{font-size:49px}.closing h2{font-size:24px}footer{margin:0 6%}}
@media(max-width:600px){.hero h1{white-space:normal;font-size:42px;letter-spacing:-2px;line-height:1.1}.hero h1 br{display:none}.hello-object{position:absolute;top:13px;right:-2px;width:77px;height:90px;transform:rotate(9deg)}.object-face{border-radius:15px;inset:3px 4px 13px}.object-face>span{font-size:42px;letter-spacing:-8px;padding-right:6px}.object-face>span>span{font-size:32px}.object-face i{display:none}.object-star{font-size:30px;top:-3px;right:-3px}.object-label{display:none}.hero-copy .intro-line{padding-right:80px;max-width:260px;margin-bottom:29px;font-size:10px;min-height:40px;align-items:center;line-height:1.5}.intro-line i{flex-shrink:0;width:5px;height:5px}.hero-copy{padding-top:0}.hero h1{max-width:370px}.hero p.lede{max-width:340px}.hero-bottom{margin-top:23px}.page-topline{margin-bottom:28px}.page-topline .edition{display:none}.hero{padding-bottom:40px}.projects{grid-template-columns:1fr;gap:35px}.project-art{height:320px}.project-card h3{font-size:23px}.project-card p{font-size:12px}.demo-app{height:235px;width:84%}.demo-main{padding:11px 16px}.demo-rail{width:32px}.demo-welcome{margin:17px 0 12px}.demo-welcome h4{font-size:19px}.demo-card b{font-size:6px}.demo-card>span{font-size:5px}.demo-card small{font-size:4px}.demo-card{padding:8px}.demo-docs{transform:none;margin-bottom:10px}.demo-orb{transform:none;margin-bottom:17px}.demo-people{transform:none;margin-bottom:14px}.floating-note{font-size:7px;bottom:34px}.floating-cursor{font-size:26px;right:12px;top:65px}.floating-cursor span{font-size:6px}.answer-card{padding:20px;width:74%;max-width:300px}.answer-top b{font-size:10px}.answer-top small{font-size:6px}.question-note{font-size:7px;top:31px}.demo-answer>b{font-size:9px}.demo-question{font-size:8px}.demo-source{font-size:6px}.answer-bottom{font-size:7px}.purchase-card{padding:18px;width:85%;max-width:360px}.purchase-head{font-size:14px}.purchase-cols{gap:12px}.purchase-plan{padding:11px}.purchase-summary{padding:12px}.purchase-summary>b{font-size:9px}.purchase-plan b{font-size:9px}.purchase-plan small{font-size:6px}.plan-options{font-size:6px}.decision-sticker{font-size:10px;width:80px;bottom:30px}.living-board{padding:18px}.living-heading{font-size:14px}.living-object{min-height:150px}.living-list{padding:14px 0}.living-list>b{font-size:10px}.living-list>small{font-size:5px}.living-list>span{font-size:6px}.section-heading>span{font-size:8px;max-width:160px;text-align:right}.section-heading>span>span{display:none}.section-heading{padding-top:20px}.closing{flex-direction:column;align-items:flex-start;gap:20px;margin-top:55px;padding-top:30px}.closing h2{font-size:25px}.closing p{font-size:11px}footer{font-size:8px;flex-wrap:wrap}footer>span:nth-child(2){display:none}.page-intro h1,.case-header h1{font-size:42px;letter-spacing:-1.8px}.about-copy{font-size:16px}.case-meta{gap:25px}.case-tools{flex-direction:column;align-items:flex-start;gap:12px;margin:22px 0 40px}.case-section h2{font-size:27px;letter-spacing:-.9px}.case-section{margin-bottom:45px}.case-art .project-art{height:320px}.case-art .demo-app{height:235px;width:86%}.case-art .demo-main{padding:10px 14px}.case-art .demo-rail{width:30px;padding-top:13px;gap:15px}.case-art .demo-toolbar{font-size:6px}.case-art .demo-welcome{margin:12px 0 10px}.case-art .demo-welcome h4{font-size:19px}.case-art .demo-welcome>small{font-size:4px}.case-art .demo-welcome p{font-size:5px!important}.case-art .demo-card{padding:6px}.case-art .demo-card b{font-size:5px}.case-art .demo-card>span{font-size:4px}.case-art .demo-card small{font-size:3px}.case-art .demo-orb{margin-bottom:17px}.case-art .demo-people{margin-bottom:14px}.case-art .answer-card{padding:20px;max-width:280px}.case-art .answer-top b{font-size:10px}.case-art .answer-top small{font-size:6px}.case-art .demo-answer>b{font-size:9px}.case-art .demo-source{font-size:6px}.case-art .question-note{left:10px;top:27px;font-size:6px}.case-art .purchase-card{padding:16px}.case-art .purchase-head{font-size:14px}.case-art .purchase-plan b{font-size:9px}.case-art .purchase-plan small{font-size:6px}.case-art .purchase-summary>b{font-size:8px}.case-art .purchase-summary>span{font-size:5px}.case-art .plan-options{font-size:5px}.case-art .payment-field{font-size:6px}.case-art .demo-pay{font-size:6px}.case-art .living-board{padding:18px}.case-art .living-heading{font-size:13px}.case-art .living-object{min-height:150px}.case-art .living-list>b{font-size:9px}.case-art .living-list>small{font-size:4px}.case-art .living-list>span{font-size:5px}}
@media(max-width:360px){.hero h1{font-size:37px}.project-art{height:285px}.demo-app{height:215px;width:87%}.demo-main{padding:9px}.demo-welcome h4{font-size:16px}.demo-card b{font-size:5px}.demo-card>span{font-size:4px}.demo-docs{transform:scale(.85);margin-bottom:4px}.demo-orb{transform:scale(.85);margin-bottom:10px}.demo-people{transform:scale(.85);margin-bottom:7px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{transition:none!important;animation:none!important}.hello-object.is-playful .object-face{transform:none}}
/* Keep supporting copy readable on the light canvas. */
p.lede{color:#6b7380}.project-card p{color:#707987}.case-section p{color:#707987}.about-copy{color:#707987}.card-meta{color:#788292}.hero-note,.case-tools p{color:#798495}.art-label{color:#697892}
@media(max-width:600px){.hero h1 em{display:block;margin-top:3px}}
/* Component gallery: replace these decorative placeholders with original assets. */
.gallery-header{display:flex;justify-content:space-between;align-items:flex-end;gap:25px;margin:-20px 0 32px}.gallery-header h1{font-size:clamp(42px,4.8vw,65px);margin:15px 0 16px;letter-spacing:-2.8px}.gallery-header .lede{max-width:445px;margin:0}.gallery-motion{flex-shrink:0;display:flex;align-items:center;gap:18px;background:#fff;border:1px solid #e3e7ee;border-radius:8px;padding:8px 12px;box-shadow:0 2px 4px #24395b04;font-size:10px;color:#7e8aa0}.gallery-motion:hover{color:#4767cf;border-color:#c7d2ec}.gallery-motion span{font-size:13px;color:#97a5bf}.gallery-motion[aria-pressed=true]{background:#f0f4ff;color:#6078bb}.gallery-stage{position:relative;height:690px;width:100%;border:1px solid #e8ebef;background:radial-gradient(ellipse at 15% 10%,#f1f5fc,transparent 65%),radial-gradient(ellipse at 90% 100%,#f6f3f8,transparent 70%),#f8f9fb;border-radius:20px;isolation:isolate;overflow:hidden}.gallery-grain{position:absolute;inset:0;background-image:radial-gradient(#c2c9d9 0.65px,transparent .65px);background-size:18px 18px;opacity:.27;mask-image:linear-gradient(transparent,#000 20%,#000 80%,transparent)}.gallery-shapes{position:absolute;inset:0}.gallery-stage-note{position:absolute;bottom:25px;left:25px;font:8px ui-monospace,monospace;letter-spacing:.7px;color:#a1aabb;pointer-events:none}.gallery-placeholder-note{position:absolute;bottom:25px;right:25px;font-size:8px;color:#a5acb9;pointer-events:none}.gallery-afterword{display:flex;justify-content:space-between;gap:20px;margin-top:18px;font-size:10px;color:#a0a7b5}.gallery-afterword>span:last-child{font:8px ui-monospace,monospace;letter-spacing:.3px}.gallery-piece{position:absolute;will-change:transform;border:1px solid #ffffff77;box-shadow:inset 0 1px 1px #ffffffaa,0 9px 17px #5263850d,0 2px 4px #536b8f05;background:var(--piece);border-radius:14px;display:flex;align-items:center;justify-content:center;pointer-events:none}.piece-blue{--piece:linear-gradient(135deg,#a8c4ff,#7399ec);--detail:#eff5ff;--solid:#8babe9}.piece-peach{--piece:linear-gradient(135deg,#ffe6cf,#efbb99);--detail:#fff4e8;--solid:#e6bd9f}.piece-lilac{--piece:linear-gradient(135deg,#e4d8fc,#b7a3e1);--detail:#f7f1ff;--solid:#bfabe3}.piece-lime{--piece:linear-gradient(135deg,#e4edb3,#b7cc82);--detail:#f8fce6;--solid:#c5d58d}.piece-pink{--piece:linear-gradient(135deg,#f7dce3,#e4abbc);--detail:#fff3f6;--solid:#e6b4c3}.piece-cream{--piece:linear-gradient(135deg,#fff9e8,#e9dbb3);--detail:#fffdf5;--solid:#e3d9b5}.piece-card{border-radius:9px;background:#fff;box-shadow:0 10px 25px #5263850c,0 2px 4px #536b8f08;border:1px solid #e9edf3}.piece-card .piece-detail{position:absolute;top:13%;left:10%;width:24%;height:32%;background:var(--piece);border-radius:5px}.piece-card:before,.piece-card:after{content:'';position:absolute;left:10%;height:5%;border-radius:2px;background:#eef0f5}.piece-card:before{top:61%;width:70%}.piece-card:after{top:76%;width:44%}.piece-orb{border-radius:50%;background:radial-gradient(circle at 32% 25%,var(--detail),transparent 63%),var(--piece);box-shadow:inset -3px -5px 7px #52638512,0 10px 18px #52638510}.piece-orb .piece-detail{width:42%;height:42%;border:1px solid #ffffff77;border-radius:50%}.piece-pill{border-radius:100px}.piece-pill .piece-detail{position:absolute;left:13%;width:17%;aspect-ratio:1;background:#ffffff99;box-shadow:0 1px 3px #52638512;border-radius:50%}.piece-pill:after{content:'';position:absolute;left:39%;width:39%;height:7%;background:#ffffff88;border-radius:10px}.piece-arch{border-radius:60% 60% 14px 14px}.piece-arch .piece-detail{width:30%;height:43%;border-radius:50% 50% 3px 3px;background:#ffffff66;box-shadow:inset 0 1px 2px #ffffff99}.piece-tile{border-radius:23%;background:linear-gradient(145deg,#ffffff88,transparent),var(--piece)}.piece-tile .piece-detail{width:38%;height:38%;border-radius:20%;background:#ffffffaa;transform:rotate(-15deg);box-shadow:2px 3px 0 #ffffff33}.piece-ring{border-radius:50%;background:transparent;border:0;box-shadow:none}.piece-ring .piece-detail{position:absolute;inset:0;border-radius:50%;border:solid var(--solid);border-width:clamp(12px,2.4vw,22px);box-shadow:inset 1px 2px 3px #52638512,0 4px 8px #52638512}.piece-star{border:0;border-radius:0;background:transparent;box-shadow:none;filter:drop-shadow(0 6px 5px #52638510)}.piece-star .piece-detail{position:absolute;inset:0;background:var(--piece);clip-path:polygon(50% 0,60% 28%,85% 15%,72% 40%,100% 50%,72% 60%,85% 85%,60% 72%,50% 100%,40% 72%,15% 85%,28% 60%,0 50%,28% 40%,15% 15%,40% 28%)}.piece-stack{border:0;box-shadow:none;background:transparent}.piece-stack:before,.piece-stack:after,.piece-stack .piece-detail{content:'';position:absolute;inset:0;border:1px solid #ffffff99;border-radius:8px;background:var(--piece);box-shadow:0 5px 10px #52638508}.piece-stack:before{transform:rotate(-10deg) translate(-7px,-3px);opacity:.6}.piece-stack:after{transform:rotate(8deg) translate(7px,1px);opacity:.6}.piece-stack .piece-detail{z-index:1;background:#fff}.piece-stack .piece-detail:after{content:'';position:absolute;left:15%;right:15%;top:22%;height:40%;border-radius:4px;background:var(--piece)}
@media(max-width:1200px){.gallery-stage{height:640px}.gallery-header{margin-top:-15px}.gallery-header .lede{max-width:370px}.gallery-placeholder-note{font-size:7px}.gallery-stage-note{font-size:7px}}
@media(max-width:800px){.gallery-header{margin-top:-18px}.gallery-header h1{font-size:47px;letter-spacing:-2px}.gallery-header{align-items:flex-start}.gallery-motion{margin-top:42px}.gallery-stage{height:670px}}
@media(max-width:600px){.gallery-header{flex-direction:column;gap:18px;margin:8px 0 24px}.gallery-header h1{font-size:43px;letter-spacing:-1.9px;margin-bottom:14px}.gallery-header .lede{font-size:13px;max-width:310px}.gallery-motion{margin:0;padding:7px 10px}.gallery-stage{height:760px;border-radius:14px}.gallery-stage-note{font-size:6px;bottom:36px;left:17px;letter-spacing:.4px}.gallery-placeholder-note{font-size:7px;left:17px;right:auto;bottom:19px}.gallery-afterword{flex-direction:column;gap:6px}.piece-ring .piece-detail{border-width:12px}}
@media(prefers-reduced-motion:reduce){.gallery-piece{will-change:auto}}
/* Edge-to-edge gallery canvas; the navigation keeps its own space. */
body.gallery-page{overflow:hidden}body.gallery-page main{max-width:none;padding:0;margin:0;min-height:0}body.gallery-page .main-wrap>footer{display:none}body.gallery-page .gallery-stage{height:100vh;height:100dvh;border:0;border-radius:0;background:radial-gradient(ellipse at 8% 5%,#f1f5fc,transparent 58%),radial-gradient(ellipse at 95% 95%,#f6f0f8,transparent 60%),#fcfcfd}body.gallery-page .gallery-grain{opacity:.2}body.gallery-page .gallery-header{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:min(620px,calc(100% - 64px));margin:0;display:block;text-align:center;pointer-events:none;z-index:3}body.gallery-page .gallery-header h1{font-size:clamp(42px,4.8vw,68px);letter-spacing:-2.8px;margin:16px 0 20px}body.gallery-page .gallery-header .lede{margin:0 auto;max-width:410px;font-size:14px;line-height:1.8}body.gallery-page .gallery-header .eyebrow{margin:0;color:#959eae}.gallery-corner-label{position:absolute;left:32px;top:32px;font:8px ui-monospace,monospace;letter-spacing:1.2px;color:#929eaf;z-index:4;pointer-events:none}body.gallery-page .gallery-motion{position:absolute;top:24px;right:28px;z-index:5;margin:0}body.gallery-page .gallery-stage-note{left:32px;bottom:27px;z-index:4}body.gallery-page .gallery-placeholder-note{right:32px;bottom:27px;z-index:4}body.gallery-page .gallery-shapes{z-index:1}body.gallery-page .sidebar{overflow-y:auto}
@media(max-width:800px){body.gallery-page .gallery-stage{height:calc(100vh - 69px);height:calc(100dvh - 69px)}body.gallery-page .gallery-header h1{font-size:48px;letter-spacing:-2px}.gallery-corner-label{left:22px;top:27px}body.gallery-page .gallery-motion{top:18px;right:20px}body.gallery-page .gallery-header .lede{max-width:360px;font-size:13px}body.gallery-page .gallery-stage-note{left:22px}body.gallery-page .gallery-placeholder-note{right:22px}}
@media(max-width:600px){body.gallery-page .gallery-header{width:calc(100% - 42px)}body.gallery-page .gallery-header h1{font-size:42px;letter-spacing:-1.8px;margin:13px 0 16px}body.gallery-page .gallery-header .eyebrow{font-size:7px;letter-spacing:1px}body.gallery-page .gallery-header .lede{font-size:12px;max-width:285px}.gallery-corner-label{font-size:7px;left:18px;top:26px;letter-spacing:.7px}body.gallery-page .gallery-motion{right:15px;top:17px;font-size:9px;gap:10px;padding:6px 9px}body.gallery-page .gallery-stage-note{left:18px;bottom:35px;font-size:6px}body.gallery-page .gallery-placeholder-note{left:18px;right:auto;bottom:19px;font-size:7px}}
/* Small, optional moments of play around the portfolio. */
.project-card{perspective:900px}.project-card .project-art{transform:perspective(900px) rotateX(var(--peek-x,0deg)) rotateY(var(--peek-y,0deg));transform-origin:center;transition:box-shadow .35s,transform .12s linear}.project-card:hover .project-art{transform:perspective(900px) rotateX(var(--peek-x,0deg)) rotateY(var(--peek-y,0deg)) translateY(-3px)}.project-card:focus-visible .card-arrow{background:#496bd9;color:#fff;border-color:#496bd9}.project-card:hover .floating-note{translate:-3px -3px}.project-card:hover .ask-ai-pill{translate:4px -4px}.project-card:hover .decision-sticker{rotate:-6deg}.project-card:hover .living-sticker{rotate:7deg}.floating-note,.ask-ai-pill,.decision-sticker,.living-sticker{transition:translate .65s var(--ease),rotate .65s var(--ease)}.thinking-note:not([hidden]){animation:thinking-in .25s var(--ease) both}.next-project>span:last-child{transition:transform .4s var(--ease);display:inline-block}.next-project:hover>span:last-child{transform:translate(5px,-5px) rotate(8deg)}.brand:hover .brand-mark{rotate:-7deg;scale:1.06}.brand-mark{transition:rotate .4s var(--ease),scale .4s var(--ease)}
.playground-teaser{display:flex;align-items:center;justify-content:space-between;gap:25px;margin-top:65px;min-height:215px;border:1px solid #e5eaf4;border-radius:14px;background:radial-gradient(ellipse at 95% 0,#f1f3fc,transparent 75%),#f9fafc;padding:32px 36px;overflow:hidden}.teaser-copy{flex:1;min-width:0}.teaser-copy .eyebrow{font-size:8px;letter-spacing:1px}.teaser-copy h2{font-size:26px;font-weight:500;letter-spacing:-.9px;line-height:1.2;margin:14px 0 12px}.teaser-copy p{font-size:12px;color:#828c9d;margin-bottom:20px}.teaser-link{font-size:10px;color:#758ab6;display:inline-flex;gap:20px}.teaser-link>span{transition:transform .35s var(--ease)}.playground-teaser:hover .teaser-link>span{transform:translate(3px,-3px)}.teaser-toys{position:relative;flex:0 0 220px;height:150px;pointer-events:none}.teaser-card{position:absolute;left:0;top:31px;width:108px;height:77px;background:#fff;border:1px solid #e5eaf4;box-shadow:0 6px 15px #566eaa0c;border-radius:7px;transform:rotate(-10deg);padding:14px;transition:transform .65s var(--ease)}.teaser-card>i{display:block;height:3px;width:67%;background:#e9edf6;border-radius:2px;margin:8px 0}.teaser-card>i:first-child{width:21px;height:19px;background:#c3d2fa;border-radius:3px;margin:0 0 10px}.teaser-orb{position:absolute;right:28px;top:8px;width:82px;height:82px;border-radius:50%;background:radial-gradient(circle at 30% 25%,#fffdf0,transparent 70%),linear-gradient(135deg,#eee8b8,#d0cf9e);box-shadow:inset -3px -4px 5px #8b8f6612,0 5px 8px #7a87550a;transition:transform .7s var(--ease)}.teaser-star{position:absolute;right:0;bottom:14px;width:61px;height:61px;color:#afbee9;rotate:9deg;filter:drop-shadow(0 3px 4px #6376a614);transition:transform .7s var(--ease)}.teaser-star svg,.desk-spark svg{width:100%;height:100%}.teaser-sticker{position:absolute;left:79px;bottom:0;padding:7px 12px;background:#edf2df;border:1px solid #e4ebd4;border-radius:3px;transform:rotate(7deg);font:8px/1.3 ui-monospace,monospace;color:#94a279;transition:transform .7s var(--ease)}.playground-teaser:hover .teaser-card{transform:translate(-7px,-4px) rotate(-15deg)}.playground-teaser:hover .teaser-orb{transform:translate(6px,-6px)}.playground-teaser:hover .teaser-star{transform:translate(8px,3px) rotate(35deg)}.playground-teaser:hover .teaser-sticker{transform:translate(-3px,5px) rotate(-4deg)}
.desk-section{margin-top:48px;max-width:760px}.desk-heading{display:flex;justify-content:space-between;align-items:center;margin-bottom:17px;gap:20px}.desk-heading .subhead{margin:0}.desk-toggle{border:1px solid #e3e8f1;background:#fff;border-radius:6px;padding:6px 10px;font-size:9px;color:#8b98b2;display:flex;align-items:center;gap:14px;min-height:32px}.desk-toggle:hover{background:#f3f6fd;color:#5879bf}.tool-desk{position:relative;padding:30px 32px 48px;min-height:190px;background:linear-gradient(130deg,#f5f7fc,#fafbfc);border:1px solid #e8edf5;border-radius:13px;overflow:hidden}.desk-grid{position:absolute;inset:0;background-image:radial-gradient(#c6d0e1 .6px,transparent .6px);background-size:15px 15px;opacity:.35;pointer-events:none}.tool-desk .stack{list-style:none;display:flex;position:relative;flex-wrap:wrap;gap:17px 14px;margin:0;padding:0;max-width:640px;align-items:center}.tool-desk .stack li{display:inline-flex;align-items:center;gap:8px;background:#fff;border:1px solid #e4e9f3;border-radius:8px;padding:10px 13px;box-shadow:0 3px 6px #41547c07;font-size:11px;color:#7d899d;transform:translateY(var(--tool-y)) rotate(var(--tool-angle));transition:transform .7s var(--ease),box-shadow .3s;user-select:none}.tool-desk .stack li:hover{transform:translateY(-5px) rotate(0);box-shadow:0 6px 14px #41547c10}.tool-desk.is-tidy .stack li{transform:translateY(0) rotate(0)}.tool-desk .stack .tool-symbol{padding:0;border:0;box-shadow:none;display:grid;place-items:center;width:22px;height:22px;border-radius:6px;font-size:12px;font-weight:550;background:#e9effe;color:#899dcb}.tool-desk .stack .tool-symbol-1{background:#f0f0ee;color:#999995}.tool-desk .stack .tool-symbol-2{background:#e6efe9;color:#8ca596}.tool-desk .stack .tool-symbol-3{background:#f4e9de;color:#b59a7e}.tool-desk .stack .tool-symbol-4{background:#edf0f5;color:#959fb4}.tool-desk .stack .tool-symbol-5{background:#f8e8e7;color:#c4a09b}.tool-desk .stack .tool-symbol-6{background:#e9e7f3;color:#a39abf}.desk-note{position:absolute;bottom:17px;left:32px;font:8px ui-monospace,monospace;color:#a3aec0}.desk-spark{position:absolute;right:24px;bottom:20px;width:23px;height:23px;color:#c7d4ed;rotate:13deg;transition:rotate .6s var(--ease)}.is-tidy .desk-spark{rotate:90deg}
.contact-layout{position:relative;display:flex;align-items:center;gap:20px}.contact-intro{flex:1;min-width:0;margin-bottom:30px}.contact-intro h1{font-size:clamp(42px,4.7vw,65px)}.contact-play{position:relative;flex:0 0 290px;align-self:stretch;min-height:280px;pointer-events:none}.postcard-scene{position:relative;width:100%;height:100%;min-height:300px}.postcard{position:absolute;left:15px;top:85px;width:230px;height:150px;border:1px solid #ebe4d6;background:#fdfaf1;border-radius:6px;transform:rotate(-7deg);box-shadow:0 10px 20px #9e917a0c;padding:23px}.postcard-word{font-size:21px;line-height:1.2;letter-spacing:-.7px;color:#a0a18f;display:block}.postcard>i{display:block;height:2px;background:#e9e4d5;width:55%;margin-top:13px}.postcard>i+i{width:38%;margin-top:7px}.postcard-stamp{position:absolute;right:15px;top:16px;width:35px;height:44px;outline:1px dashed #d8dfcb;outline-offset:2px;background:#eaf0dc;padding:7px;color:#b6c69f}.postcard-stamp svg{width:100%;height:20px}.postcard-stamp small{font:4px ui-monospace,monospace;letter-spacing:1px;display:block;text-align:center;margin-top:2px}.postcard-signature{position:absolute;bottom:16px;right:20px;font:italic 25px Georgia,serif;color:#bdbaa9}.flight-path{position:absolute;left:-40px;top:10px;width:350px;height:180px;color:#bfcae3;opacity:.7;pointer-events:none}.paper-plane{pointer-events:auto;position:absolute;top:42px;right:0;width:60px;height:60px;padding:5px;transform:rotate(6deg);border-radius:12px;transition:transform .4s var(--ease),filter .3s;filter:drop-shadow(0 5px 4px #6f89c120)}.paper-plane svg{width:100%;height:100%}.paper-plane:hover{transform:translate(3px,-4px) rotate(-5deg);filter:drop-shadow(0 9px 5px #6f89c129)}.paper-plane.is-flying{animation:little-flight 1.2s var(--ease) both;pointer-events:none}.plane-invitation{position:absolute;bottom:16px;right:5px;font:8px ui-monospace,monospace;color:#a1acc1;transform:rotate(4deg)}
@keyframes little-flight{0%{transform:translate(0,0) rotate(6deg);opacity:1}28%{transform:translate(-100px,-25px) rotate(-60deg)}55%{transform:translate(-150px,50px) rotate(-140deg)}75%{transform:translate(-40px,70px) rotate(-260deg)}100%{transform:translate(0,0) rotate(-354deg);opacity:1}}
@keyframes thinking-in{from{opacity:0;transform:translateY(5px)}to{opacity:1;transform:translateY(0)}}
@media(max-width:1200px){.contact-play{flex-basis:220px}.postcard{width:195px;height:140px;left:0;top:100px;padding:20px}.postcard-word{font-size:18px}.postcard-stamp{right:12px;width:29px;height:37px;padding:5px}.flight-path{width:290px;left:-35px;top:40px}.paper-plane{width:53px;top:62px;right:0}.contact-intro h1{font-size:clamp(40px,4.8vw,57px)}.playground-teaser{padding:28px;gap:15px}.teaser-toys{flex-basis:185px}.teaser-copy h2{font-size:24px}.teaser-orb{right:15px;width:70px;height:70px}.teaser-card{width:95px;height:73px}.teaser-sticker{left:60px}.teaser-star{width:51px;height:51px}}
@media(max-width:980px) and (min-width:801px){.contact-layout{display:block}.contact-play{position:absolute;width:170px;height:190px;min-height:190px;right:-10px;top:120px;opacity:.7}.postcard{top:60px;width:155px;height:115px;padding:15px}.postcard-word{font-size:15px}.postcard-stamp{width:24px;height:31px;right:10px;top:10px}.postcard-stamp svg{height:15px}.postcard>i{margin-top:10px}.postcard-signature{font-size:19px;bottom:8px}.plane-invitation{bottom:-20px;right:0;font-size:6px}.paper-plane{top:25px;width:42px;right:-10px}.flight-path{width:210px;left:-15px;top:10px}.contact-intro .lede{max-width:300px}.contact-intro h1{font-size:43px;max-width:400px}.teaser-toys{flex-basis:150px}.teaser-copy h2{font-size:21px}.teaser-copy p{font-size:11px}.teaser-card{width:80px}.teaser-orb{width:60px;height:60px;right:6px}.teaser-sticker{left:40px}.teaser-star{right:-5px}.tool-desk{padding:25px 23px 45px}.tool-desk .stack{gap:15px 10px}.tool-desk .stack li{padding:9px 10px;font-size:10px}.desk-note{left:23px}}
@media(max-width:600px){.playground-teaser{position:relative;display:block;min-height:300px;padding:26px;margin-top:45px}.teaser-copy .eyebrow{font-size:7px}.teaser-copy h2{max-width:230px;font-size:25px}.teaser-copy p{max-width:195px;font-size:11px}.teaser-link{font-size:10px;gap:12px}.teaser-toys{height:105px;width:170px;margin:15px 0 0 auto}.teaser-card{width:80px;height:60px;top:18px;padding:10px}.teaser-card>i:first-child{width:17px;height:14px;margin-bottom:7px}.teaser-card>i{margin:5px 0;height:2px}.teaser-orb{width:60px;height:60px;right:17px;top:2px}.teaser-star{width:43px;height:43px;bottom:4px;right:0}.teaser-sticker{left:57px;bottom:-5px;font-size:6px;padding:6px 9px}.desk-section{margin-top:35px}.desk-heading .subhead{font-size:8px;letter-spacing:.6px}.desk-toggle{font-size:8px;gap:8px}.tool-desk{padding:25px 18px 48px;min-height:230px}.tool-desk .stack{gap:15px 11px}.tool-desk .stack li{font-size:10px;padding:9px 11px;gap:6px}.tool-desk .stack .tool-symbol{width:19px;height:19px;font-size:11px}.desk-note{left:20px;bottom:17px;font-size:7px}.desk-spark{right:19px;bottom:16px;width:19px;height:19px}.contact-layout{display:block}.contact-intro{margin-bottom:10px}.contact-play{min-height:230px;height:230px;max-width:310px;margin-left:auto}.postcard-scene{min-height:230px}.postcard{top:48px;width:220px;height:140px;left:22px}.postcard-word{font-size:20px}.flight-path{top:-10px;left:-10px;width:310px}.paper-plane{top:9px;right:0;width:53px}.plane-invitation{bottom:5px;right:14px}.contact-links{margin-top:15px}.contact-intro h1{font-size:43px}.contact-intro .lede{max-width:310px}.project-card:hover .project-art{transform:translateY(-2px)}}
@media(prefers-reduced-motion:reduce){.project-card .project-art,.project-card:hover .project-art{transform:none!important}.paper-plane.is-flying{animation:none!important}.paper-plane:hover{transform:none}.tool-desk .stack li,.tool-desk .stack li:hover{transform:none}.playground-teaser:hover .teaser-card,.playground-teaser:hover .teaser-orb,.playground-teaser:hover .teaser-star,.playground-teaser:hover .teaser-sticker{transform:none}.brand:hover .brand-mark{rotate:0;scale:1}}
/* A quiet navigation rail, with the portfolio inside its own rounded screen. */
body{height:100vh;height:100dvh;overflow:hidden;background:#f0f1f3}.main-wrap{position:fixed;inset:12px 12px 12px calc(var(--sidebar) + 8px);margin:0;background:var(--paper);border:1px solid #e3e5e9;border-radius:23px;overflow:auto;overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:#d5d9e1 transparent;transition:left .42s var(--ease);box-shadow:0 2px 8px #293a5810;isolation:isolate}.main-wrap>main{min-height:calc(100dvh - 104px)}.main-wrap::-webkit-scrollbar{width:6px}.main-wrap::-webkit-scrollbar-thumb{background:#d5d9e1;border-radius:8px}.main-wrap::-webkit-scrollbar-track{background:transparent}.sidebar{background:transparent;border:0;padding:27px 16px 18px;overflow-x:hidden;transition:width .42s var(--ease),transform .42s var(--ease),background .3s}.sidebar .brand{margin:0 4px;height:36px;white-space:nowrap;flex-shrink:0}.brand-mark{flex-shrink:0;width:32px;height:32px;font-size:24px;border-radius:10px;box-shadow:inset 0 1px 2px #ffffff66,0 1px 3px #263d7912}.brand-mark span{font-size:20px}.brand-name{transition:opacity .2s,transform .35s var(--ease);white-space:nowrap;overflow:hidden}.sidebar-toggle{flex-shrink:0;display:flex;align-items:center;gap:12px;min-height:34px;margin:17px 0 19px;padding:8px 11px;border-radius:8px;font-size:10px;color:#939ba9;text-align:left;white-space:nowrap;width:100%;transition:background .2s,color .2s}.sidebar-toggle svg{flex-shrink:0;width:17px;height:17px}.sidebar-toggle:hover{background:#e5e8ee;color:#616e86}.sidebar-toggle span{transition:opacity .2s}.sidebar nav>a{min-height:36px;padding:8px 11px;white-space:nowrap;position:relative}.sidebar nav>a>span:first-child{flex-shrink:0;width:17px;font-size:16px}.sidebar .nav-text{font-size:11px;overflow:hidden;white-space:nowrap;transition:opacity .18s}.sidebar .nav-count{font-size:8px;margin-left:auto}.sidebar nav>a.active{box-shadow:0 1px 3px #303c5010;background:#fafbfc}.sidebar .nav-label{font-size:8px;letter-spacing:1px;margin-top:29px}.sidebar nav>a.project-nav{font-size:10px}.sidebar-bottom{transition:opacity .18s}.sidebar .onboarding{background:#f9fafb;border-color:#e0e4ea;box-shadow:none}.sidebar-foot{color:#a1a7b3}.gallery-page .main-wrap{display:flex;flex-direction:column;overflow:hidden}.gallery-page .main-wrap>main{display:flex;flex:1;min-height:0;padding:0;max-width:none;width:100%}.gallery-page .main-wrap .gallery-stage{height:auto;min-height:0;flex:1;width:100%}.gallery-page .main-wrap .mobile-header{flex-shrink:0}.gallery-page .main-wrap>footer{display:none}
@media(min-width:801px){body.nav-collapsed{--sidebar:64px}.nav-collapsed .sidebar{padding-left:12px;padding-right:12px}.nav-collapsed .sidebar .brand{margin:0 4px;gap:0}.nav-collapsed .brand-name{opacity:0;width:0;transform:translateX(-5px);pointer-events:none}.nav-collapsed .sidebar-toggle{justify-content:center;padding:8px;width:40px}.nav-collapsed .sidebar-toggle span{display:none}.nav-collapsed .sidebar nav>a{justify-content:center;gap:0;width:40px;padding:8px;margin:5px 0;border-radius:10px;min-height:38px;color:#8d97a9}.nav-collapsed .sidebar .nav-text,.nav-collapsed .sidebar .nav-count{display:none}.nav-collapsed .sidebar .nav-label,.nav-collapsed .sidebar a.project-nav,.nav-collapsed .sidebar-bottom{display:none}.nav-collapsed .sidebar nav>a.active{background:#fff;color:#5d77b7;box-shadow:0 1px 4px #283d6410}.nav-collapsed .sidebar nav>a:hover{background:#e4e8f1;color:#5674b7}.sidebar .mobile-close{display:none}}
@media(max-width:800px){:root{--sidebar:0px}.main-wrap{inset:8px;border-radius:18px;transition:none}.main-wrap>main{min-height:calc(100dvh - 170px)}.sidebar-toggle{display:none}.sidebar{width:250px;padding:28px 20px 18px;background:#f4f5f7;box-shadow:8px 0 30px #26395b0d;overflow-y:auto}.sidebar .brand{margin:0 5px 36px;gap:11px}.sidebar .brand-name{opacity:1;width:auto;transform:none}.sidebar .mobile-close{display:block;right:13px;top:21px}.mobile-header{padding:10px 6%;height:61px;background:#fcfcfd}.mobile-header .icon-button{font-size:17px}.menu-scrim:not([hidden]){animation:menu-wash-in .2s ease both;background:#26334b29;backdrop-filter:blur(3px)}.sidebar nav>a{margin:4px 0}.sidebar .nav-text,.sidebar .nav-count{display:block}.sidebar .sidebar-bottom{display:block}.sidebar .nav-label{display:block}.sidebar nav>a.project-nav{display:flex}.gallery-page .main-wrap .gallery-stage{height:auto}.gallery-page .main-wrap>main{min-height:0}.gallery-page .main-wrap .gallery-motion{right:16px}.gallery-page .main-wrap .gallery-corner-label{left:20px}.gallery-page .gallery-header h1{font-size:40px}}
@keyframes menu-wash-in{from{opacity:0}to{opacity:1}}
@media(max-width:800px){.main-wrap .mobile-header{position:sticky;top:0;z-index:12}}
/* Original brand colours, with no placeholder initials or colour filters. */
.tool-desk .stack .tool-symbol{background:transparent;box-shadow:none;border-radius:0;width:22px;height:22px;flex-shrink:0}.tool-desk .stack .tool-symbol:hover{transform:none}.tool-symbol img{display:block;width:19px;height:19px;object-fit:contain;max-width:100%;filter:none}
@media(max-width:600px){.tool-desk .stack .tool-symbol{width:20px;height:20px}.tool-symbol img{width:18px;height:18px}}
/* A small glass dock, without the old toolkit panel or text chips. */
.toolkit-dock-section{max-width:760px;margin-top:48px}.toolkit-dock-section>.subhead{margin:0 0 4px}.dock-stage{display:flex;justify-content:center;padding:55px 0 12px;overflow:visible}.tool-dock{display:flex;align-items:flex-end;gap:8px;margin:0;padding:10px 13px 9px;list-style:none;width:max-content;max-width:100%;border:1px solid #e0e4ec;border-top-color:#fff;border-radius:18px;background:linear-gradient(170deg,#f9fafcdd,#e8edf4c9);box-shadow:inset 0 1px 1px #fff,0 6px 15px #5266890c,0 1px 3px #4e607a0a;backdrop-filter:blur(14px)}.tool-dock>li{display:block;position:relative;width:48px;flex:0 0 48px;height:48px}.dock-item{--dock-scale:1;--dock-lift:0px;position:relative;display:grid;place-items:center;width:48px;height:48px;padding:3px;border-radius:12px;outline-offset:7px;-webkit-tap-highlight-color:transparent}.dock-icon{display:grid;place-items:center;width:42px;height:42px;transform:translateY(var(--dock-lift)) scale(var(--dock-scale));transform-origin:center bottom;will-change:transform;pointer-events:none}.dock-icon img{width:38px;height:38px;object-fit:contain;display:block;filter:drop-shadow(0 2px 2px #22325216);user-select:none}.dock-tooltip{position:absolute;left:50%;bottom:calc(100% + 36px);padding:5px 9px;border:1px solid #e2e6ed;border-radius:6px;background:#fffffff5;box-shadow:0 3px 8px #293c5d0c;color:#65728a;font-size:10px;line-height:1.4;white-space:nowrap;opacity:0;transform:translate(-50%,5px);pointer-events:none;transition:opacity .15s,transform .25s var(--ease);z-index:4}.dock-tooltip:after{content:'';position:absolute;left:calc(50% - 3px);bottom:-4px;width:6px;height:6px;transform:rotate(45deg);background:#fff;border-right:1px solid #e2e6ed;border-bottom:1px solid #e2e6ed}.dock-item.is-label-open .dock-tooltip{opacity:1;transform:translate(-50%,0)}.dock-item:focus-visible{outline:2px solid #afc0e9}.tool-dock>li:has(.dock-item:hover),.tool-dock>li:has(.dock-item:focus-visible){z-index:5}
@media(max-width:980px) and (min-width:801px){.tool-dock{gap:5px;padding:10px}.tool-dock>li,.dock-item{width:43px;height:43px;flex-basis:43px}.dock-icon{width:39px;height:39px}.dock-icon img{width:35px;height:35px}}
@media(max-width:600px){.toolkit-dock-section{margin-top:35px}.toolkit-dock-section>.subhead{font-size:8px}.dock-stage{padding-top:49px;padding-bottom:10px}.tool-dock{gap:3px;padding:8px;border-radius:14px}.tool-dock>li,.dock-item{width:32px;height:36px;flex-basis:32px}.dock-icon{width:30px;height:30px}.dock-icon img{width:28px;height:28px}.dock-tooltip{font-size:9px;padding:4px 7px;bottom:calc(100% + 25px)}}
@media(max-width:360px){.tool-dock{gap:2px;padding:7px}.tool-dock>li,.dock-item{width:28px;height:32px;flex-basis:28px}.dock-icon{width:27px;height:27px}.dock-icon img{width:25px;height:25px}}
@media(prefers-reduced-motion:reduce){.dock-icon{will-change:auto;transform:none!important}.dock-tooltip{transition:none}}
/* Align the dock with its section heading. */
.toolkit-dock-section .dock-stage{justify-content:flex-start}
/* Homepage: one clear introduction, then let the work carry the page. */
.home-page main{padding-top:64px}.home-page .hero{padding-bottom:55px}.home-page .card-meta{margin:18px 0 9px;font-size:10px;letter-spacing:0;text-transform:none;color:#7b8597}.home-page .project-card h3{margin-bottom:0}.home-page .floating-note,.home-page .floating-cursor,.home-page .question-note,.home-page .decision-sticker,.home-page .living-sticker{display:none}.home-page .section-heading>span{font-size:9px;color:#929baa}.home-page .teaser-copy h2{margin:0 0 18px}.home-page .playground-teaser{min-height:175px}.home-page .closing h2{margin-bottom:0}.home-page .main-wrap>footer>span:nth-child(2){display:none}
@media(max-width:800px){.home-page main{padding-top:40px}.home-page .hero{padding-bottom:40px}}
@media(max-width:600px){.home-page main{padding-top:30px}.home-page .playground-teaser{display:flex;min-height:155px;padding:24px;gap:15px}.home-page .teaser-copy h2{font-size:24px;margin-bottom:14px}.home-page .teaser-toys{flex:0 0 95px;width:95px;height:95px;margin:0}.home-page .teaser-card{left:-7px;width:61px;height:52px}.home-page .teaser-orb{width:42px;height:42px;right:4px}.home-page .teaser-star{width:32px;height:32px;right:-5px;bottom:0}.home-page .teaser-link{font-size:9px;gap:8px}.home-page .hero .lede{max-width:310px}}
/* A closer-cropped portrait, as a small photo card you can turn over. */
.about-layout{display:grid;grid-template-columns:minmax(0,1fr) 280px;grid-template-areas:'intro portrait' 'bio portrait';column-gap:60px;align-items:start}.about-layout>.page-intro{grid-area:intro;margin:60px 0 30px;max-width:760px}.about-layout>.about-copy{grid-area:bio}.portrait-placement{grid-area:portrait;position:relative;align-self:center;width:280px;padding:20px 8px;perspective:1200px;isolation:isolate}.portrait-flip{display:block;position:relative;width:264px;height:360px;padding:0;border-radius:4px;transform:rotate(4deg);transition:transform .65s var(--ease);text-align:left;outline-offset:9px;-webkit-tap-highlight-color:transparent}.portrait-flip:hover{transform:rotate(1deg) translateY(-4px)}.portrait-inner{display:block;position:relative;width:100%;height:100%;transform-style:preserve-3d;transition:transform .8s var(--ease)}.portrait-flip.is-flipped .portrait-inner{transform:rotateY(180deg)}.portrait-front,.portrait-back{position:absolute;inset:0;display:block;background:#fffefb;border:1px solid #e9e7df;border-radius:4px;box-shadow:0 14px 30px #3c445b0e,0 3px 6px #3c445b08;backface-visibility:hidden;-webkit-backface-visibility:hidden;overflow:hidden}.portrait-front{padding:11px 11px 0}.portrait-window{display:block;width:100%;height:294px;overflow:hidden;background:#ede5db;border-radius:1px}.portrait-window img{display:block;width:100%;height:100%;object-fit:cover;object-position:50% 41%;transform:scale(1.32);transform-origin:50% 43%;transition:transform .8s var(--ease);user-select:none}.portrait-flip:hover .portrait-window img{transform:scale(1.36)}.portrait-caption{display:flex;align-items:center;justify-content:space-between;font-size:12px;color:#7c8491;letter-spacing:-.2px;padding:15px 6px}.portrait-caption>span{font-size:17px;color:#a6b1c6}.portrait-tape{position:absolute;width:93px;height:25px;top:9px;left:calc(50% - 46px);background:#efe6cd9c;transform:rotate(-7deg);border:1px solid #e4d9bc44;backdrop-filter:blur(2px);z-index:3;pointer-events:none;clip-path:polygon(2% 0,100% 3%,98% 95%,0 100%)}.portrait-spark{position:absolute;bottom:7px;right:-7px;width:43px;height:43px;color:#c2cfa1;rotate:13deg;pointer-events:none;filter:drop-shadow(0 2px 3px #7f8e6110);z-index:3}.portrait-spark svg{width:100%;height:100%}.portrait-back{transform:rotateY(180deg);background:radial-gradient(circle at 25% 20%,#f5f7fe,transparent 70%),#edf2fb;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:28px;color:#6c82b2}.portrait-back:before{content:'';position:absolute;inset:0;opacity:.3;background-image:radial-gradient(#bbc9e2 .65px,transparent .65px);background-size:15px 15px;pointer-events:none}.portrait-back-star{width:57px;height:57px;color:#b7c6e9;display:block;margin-bottom:25px;rotate:-10deg}.portrait-back-star svg{width:100%;height:100%}.portrait-back-title{position:relative;font-size:38px;font-weight:500;letter-spacing:-1.8px;line-height:1.08;text-align:center}.portrait-back-caption{position:absolute;bottom:19px;left:22px;right:22px;display:flex;justify-content:space-between;font-size:10px;color:#94a4c3}.portrait-back-caption>span{font-size:16px}.about-layout+.toolkit-dock-section{margin-top:42px}
@media(max-width:1200px){.about-layout{grid-template-columns:minmax(0,1fr) 240px;column-gap:36px}.portrait-placement{width:240px;padding:20px 7px}.portrait-flip{width:226px;height:320px}.portrait-window{height:258px}.portrait-caption{font-size:11px;padding:13px 5px}.portrait-back-title{font-size:34px}.portrait-tape{width:80px;left:calc(50% - 40px)}.portrait-spark{width:35px;height:35px;right:-3px}}
@media(max-width:1000px) and (min-width:701px){.about-layout{grid-template-columns:minmax(0,1fr) 210px;column-gap:28px}.portrait-placement{width:210px;padding:20px 6px}.portrait-flip{width:198px;height:285px}.portrait-window{height:226px}.portrait-caption{font-size:10px;padding:12px 3px}.portrait-back-title{font-size:30px}.portrait-back-star{width:46px;height:46px}.about-layout .about-copy{font-size:15px}.about-layout>.page-intro h1{font-size:42px;letter-spacing:-1.8px}}
@media(max-width:700px){.about-layout{display:grid;grid-template-columns:minmax(0,1fr);grid-template-areas:'intro' 'portrait' 'bio';gap:0}.about-layout>.page-intro{margin:35px 0 20px}.about-layout>.page-intro h1{font-size:42px;letter-spacing:-1.8px}.portrait-placement{justify-self:center;align-self:start;width:260px;padding:18px 7px;margin:7px 0 34px}.portrait-flip{width:246px;height:335px;transform:rotate(3deg)}.portrait-window{height:273px}.portrait-caption{font-size:12px;padding:14px 5px}.portrait-tape{top:7px;width:87px;left:calc(50% - 43px)}.portrait-spark{width:37px;height:37px;right:-2px}.portrait-back-title{font-size:36px}.about-layout>.about-copy{font-size:16px}.about-layout+.toolkit-dock-section{margin-top:35px}}
@media(prefers-reduced-motion:reduce){.portrait-flip:hover{transform:rotate(4deg)}.portrait-flip:hover .portrait-window img{transform:scale(1.32)}.portrait-inner{transition:none!important}}
/* Homepage hovers follow the project palette instead of link blue. */
.home-page .project-card{--project-hover:#53637d;--project-tint:#e8edf5;--project-border:#d4dce8;transition:color .25s ease}.home-page .project-card[data-theme=lilac]{--project-hover:#76618a;--project-tint:#eee8f5;--project-border:#ddd2e8}.home-page .project-card[data-theme=peach]{--project-hover:#8c674e;--project-tint:#f4e8de;--project-border:#e7d5c7}.home-page .project-card[data-theme=butter]{--project-hover:#60734f;--project-tint:#e9efdf;--project-border:#d7e1ca}.home-page .main-wrap a:hover{color:#292e35}.home-page .main-wrap .project-card:is(:hover,:focus-visible){color:var(--project-hover);outline-color:var(--project-hover)}.home-page .main-wrap .project-card:is(:hover,:focus-visible) .card-arrow{color:var(--project-hover);background:var(--project-tint);border-color:var(--project-border)}.home-page .project-card h3{transition:color .25s ease}.home-page .main-wrap .text-link:hover{background:#f5f5f4;border-color:#d7dadd;box-shadow:0 4px 12px #262d3609}.home-page .playground-teaser:hover .teaser-link{color:#424b59}.home-page .teaser-link{transition:color .25s ease}.home-page .sidebar nav>a:hover{color:#424b59;background:#e8eaee}

/* A small ink circle opens into a soft, project-coloured invitation. */
.circle-cursor{position:fixed;left:0;top:0;width:0;height:0;z-index:10000;pointer-events:none;opacity:0;transition:opacity .14s ease;--cursor-accent:#343a43}
.circle-cursor::before{content:'';position:absolute;left:0;top:0;width:12px;height:12px;border-radius:50%;background:var(--cursor-accent);border:1px solid transparent;transform:translate(-50%,-50%);transition:width .22s var(--ease),height .22s var(--ease),background .22s ease,border-color .22s ease;box-shadow:0 0 0 2px #ffffff70}
.circle-cursor span{position:absolute;left:0;top:0;transform:translate(-50%,-50%) scale(.5);font:20px/1 -apple-system,BlinkMacSystemFont,sans-serif;color:var(--cursor-accent);opacity:0;transition:opacity .15s ease,transform .22s var(--ease)}
.circle-cursor.is-visible{opacity:1}.circle-cursor.is-link::before{width:38px;height:38px;background:#f9f9f5e8;border-color:var(--cursor-accent);box-shadow:0 3px 12px #242a3610}.circle-cursor.is-link span{opacity:1;transform:translate(-50%,-50%) scale(1)}.circle-cursor.is-project::before{width:52px;height:52px}.circle-cursor.is-pressed::before{width:23px;height:23px}.circle-cursor.is-pressed span{transform:translate(-50%,-50%) scale(.7)}
@media(hover:hover) and (pointer:fine){html.circle-cursor-active,html.circle-cursor-active *{cursor:none!important}html.circle-cursor-active input,html.circle-cursor-active textarea,html.circle-cursor-active [contenteditable=true]{cursor:text!important}}
@media(prefers-reduced-motion:reduce){.circle-cursor,.circle-cursor::before,.circle-cursor span{transition:none}}

/* A quiet home for the CV, alongside the more personal introduction. */
.cv-section{display:grid;grid-template-columns:1fr 1fr;gap:60px;align-items:center;margin:65px 0 80px;padding:40px 0;border-top:1px solid var(--line,#e8e9eb)}.cv-section h2{font-size:30px;line-height:1.2;letter-spacing:-1px;font-weight:500;margin:12px 0 18px}.cv-section p{color:#737b87;max-width:370px}.cv-document{position:relative;padding:30px;border:1px solid #e4e6e8;border-radius:18px;background:linear-gradient(135deg,#fff,#f7f6f2);box-shadow:0 8px 25px #242a3605}.cv-document h3{font-size:22px;font-weight:500;margin:0 0 4px}.cv-document p{font-size:12px;margin:0 0 25px}.cv-paper{position:absolute;right:25px;top:20px;color:#8d9587;font-size:26px}.cv-pending{font-size:11px;color:#737b87}.case-body{margin-top:55px}.case-section>p+p{margin-top:16px}
@media(max-width:600px){.cv-section{grid-template-columns:1fr;gap:25px;margin:40px 0 50px;padding-top:30px}.cv-section h2{font-size:26px}.cv-document{padding:25px}}
.cv-actions{display:flex;flex-wrap:wrap;gap:15px}.cv-actions .text-link{font-size:12px}.cv-preview{width:100%;height:750px;grid-column:1/-1;border:1px solid #e4e6e8;border-radius:12px;background:#f6f6f5}

/* The CV lives in the page, with a little room for memories from each role. */
.cv-inline{display:block}.cv-inline>h2{margin-bottom:35px}.experience-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:32px;padding:30px 0;border-top:1px solid #e8e9eb}.experience-details h3{font-size:19px;font-weight:500;letter-spacing:-.4px;margin:0 0 4px}.experience-details .experience-company{font-size:13px;margin:0 0 15px;color:#505864}.experience-company span{color:#8b919a}.experience-details p{font-size:14px;max-width:600px}.experience-images{display:flex;align-items:flex-start;gap:8px}.experience-images img,.experience-image-space{display:block;width:54px;height:64px;border-radius:7px;object-fit:cover;flex-shrink:0}.experience-image-space{background:#f2f1ed;border:1px dashed #deded7}.experience-image-space:nth-child(2){background:#efedf3;transform:rotate(4deg)}.experience-image-space:nth-child(3){background:#edf0e8;transform:rotate(-3deg)}.experience-awaiting{display:flex;align-items:center;justify-content:space-between;gap:25px}.experience-awaiting p{font-size:13px;margin:0}
@media(max-width:600px){.experience-row{grid-template-columns:1fr;gap:18px}.experience-images img,.experience-image-space{width:44px;height:52px}.experience-awaiting{align-items:flex-start;flex-direction:column}}
.cv-education{margin-top:45px}.cv-education>h2{font-size:24px;margin-bottom:25px}.education-row{padding:20px 0;border-top:1px solid #e8e9eb}.education-row h3{font-size:16px;font-weight:500;margin:0 0 5px}.education-row p{font-size:13px;margin:0 0 4px}.education-row>span{font-size:12px;color:#9298a1}

/* Dates form a quiet left-hand rail through experience and education. */
.cv-inline .experience-row{grid-template-columns:145px minmax(0,1fr) auto;gap:30px;border-top:0;padding:0 0 38px}.timeline-date{position:relative;font-size:12px;line-height:1.7;color:#858c95;padding-top:3px;font-variant-numeric:tabular-nums}.experience-details,.education-details{position:relative;border-left:1px solid #e4e7e3;padding-left:28px;padding-bottom:4px}.experience-details::before,.education-details::before{content:'';position:absolute;left:-4px;top:8px;width:7px;height:7px;background:#a7afa2;border:2px solid #fcfcfa;border-radius:50%;box-shadow:0 0 0 1px #cbd1c7}.cv-inline .experience-details p{max-width:550px}.cv-inline .experience-details>p:last-child{margin-bottom:0}.cv-inline .experience-images{padding-top:3px}.cv-inline .education-row{display:grid;grid-template-columns:145px minmax(0,1fr);gap:30px;border-top:0;padding:0 0 28px}.cv-education>h2{margin-bottom:32px}
@media(max-width:1000px){.cv-inline .experience-row{grid-template-columns:120px minmax(0,1fr);gap:20px}.cv-inline .experience-images{grid-column:2;padding-left:28px;margin-top:-8px}.cv-inline .education-row{grid-template-columns:120px minmax(0,1fr);gap:20px}}
@media(max-width:600px){.cv-inline .experience-row,.cv-inline .education-row{grid-template-columns:82px minmax(0,1fr);gap:14px}.timeline-date{font-size:10px;max-width:74px;line-height:1.8}.experience-details,.education-details{padding-left:18px}.cv-inline .experience-images{padding-left:18px}.experience-details h3{font-size:17px}.education-row h3{font-size:14px}.experience-details p{font-size:13px}}

/* A closer, warmer timeline: short date rail, coloured milestones, little keepsakes. */
.cv-inline .experience-row{grid-template-columns:98px minmax(0,1fr) auto;gap:20px;padding-bottom:36px;--milestone:#91a48c;--milestone-soft:#edf2e9}.cv-inline .experience-row:nth-of-type(2){--milestone:#ab98bf;--milestone-soft:#f0eaf6}.cv-inline .experience-row:nth-of-type(3){--milestone:#c3a185;--milestone-soft:#f6ede4}.timeline-date{max-width:96px;font-size:11px;color:#8b8b83;line-height:1.8;padding-top:3px}.experience-details{padding-left:22px;border-left-color:#e1e5dc}.experience-details::before{background:var(--milestone);box-shadow:0 0 0 4px var(--milestone-soft);border:2px solid #fcfcfa;width:8px;height:8px;left:-4.5px;top:8px;transition:box-shadow .25s ease,transform .25s ease}.experience-row:hover .experience-details::before{box-shadow:0 0 0 6px var(--milestone-soft);transform:scale(1.08)}.experience-details h3{letter-spacing:-.5px}.cv-inline .experience-company{color:var(--milestone);font-weight:500}.cv-inline .experience-images{gap:5px;padding:5px 4px 0 7px}.experience-images img,.experience-image-space{box-shadow:0 3px 7px #32392909;transition:transform .3s ease}.experience-images>:first-child{transform:rotate(-7deg) translateY(3px)}.experience-images>:nth-child(2){transform:rotate(5deg) translateY(-3px)}.experience-images>:nth-child(3){transform:rotate(-3deg) translateY(4px)}.experience-row:hover .experience-images>:first-child{transform:rotate(-10deg) translateY(0)}.experience-row:hover .experience-images>:nth-child(2){transform:rotate(2deg) translateY(-6px)}.experience-row:hover .experience-images>:nth-child(3){transform:rotate(7deg) translateY(1px)}.experience-image-space{border-style:solid;border-color:#fff;background:linear-gradient(145deg,#f4eee4,#eae7dc)}.experience-image-space:nth-child(2){background:linear-gradient(145deg,#f2eaf6,#e4dfed)}.experience-image-space:nth-child(3){background:linear-gradient(145deg,#eff3e6,#e1e8d8)}.cv-inline .education-row{grid-template-columns:98px minmax(0,1fr);gap:20px}.education-details{padding-left:22px}
@media(max-width:1000px){.cv-inline .experience-row{grid-template-columns:90px minmax(0,1fr);gap:18px}.cv-inline .experience-images{grid-column:2;padding-left:22px}.cv-inline .education-row{grid-template-columns:90px minmax(0,1fr);gap:18px}}
@media(max-width:600px){.cv-inline .experience-row,.cv-inline .education-row{grid-template-columns:66px minmax(0,1fr);gap:12px}.timeline-date{font-size:10px;max-width:64px}.experience-details,.education-details{padding-left:17px}.cv-inline .experience-images{padding-left:17px}}
@media(prefers-reduced-motion:reduce){.experience-details::before,.experience-images>*{transition:none}.experience-row:hover .experience-images>*{transform:none}}
.timeline-date>span{display:block;white-space:nowrap}.timeline-date>span+span{color:#a2a39b}

/* Company identity, kept in small neutral chips. */
.cv-inline .experience-row,.cv-inline .experience-row:nth-of-type(2),.cv-inline .experience-row:nth-of-type(3){--milestone:#959b94;--milestone-soft:#eff0ec}.cv-inline .experience-company{color:#50555b;font-weight:400;margin-top:9px;margin-bottom:15px}.company-chip{display:inline-flex;align-items:center;gap:7px;padding:4px 9px 4px 5px;border:1px solid #e3e5e1;border-radius:8px;background:#f6f7f3;font-size:11px;line-height:20px;white-space:nowrap}.company-logo{display:block;width:20px;height:20px;object-fit:contain;border-radius:4px}.company-logo[data-dark=true]{background:#252525;padding:3px}.company-chip:hover{background:#eff1eb}

/* Crisp white company badges, with restrained depth. */
.company-chip{background:#fff;border:1px solid #e8e9eb;border-radius:999px;padding:5px 11px 5px 6px;gap:7px;box-shadow:0 1px 2px #20263005,0 3px 8px #20263003;color:#51565e;font-size:11px;line-height:20px;letter-spacing:.05px;transition:border-color .2s ease,box-shadow .2s ease}.company-chip:hover{background:#fff;border-color:#d8dce0;box-shadow:0 2px 7px #20263009}.company-logo{width:20px;height:20px;border-radius:5px}.company-logo[data-dark=true]{border-radius:50%}
@media(prefers-reduced-motion:reduce){.company-chip{transition:none}}

.company-chip{position:relative;outline-offset:4px}.company-tooltip{position:absolute;bottom:calc(100% + 10px);left:0;z-index:20;width:max-content;max-width:min(240px,60vw);padding:9px 12px;border-radius:9px;background:#30343a;color:#fff;font-size:11px;font-weight:400;line-height:1.5;letter-spacing:0;white-space:normal;box-shadow:0 5px 18px #20263018;opacity:0;visibility:hidden;transform:translateY(3px);pointer-events:none;transition:opacity .16s ease,transform .16s ease,visibility .16s}.company-tooltip::after{content:'';position:absolute;top:100%;left:17px;border:5px solid transparent;border-top-color:#30343a}.company-chip:hover .company-tooltip,.company-chip:focus-visible .company-tooltip{opacity:1;visibility:visible;transform:translateY(0)}.company-chip:focus-visible{outline:2px solid #a2aaa0}.company-logo{object-fit:cover}
@media(prefers-reduced-motion:reduce){.company-tooltip{transition:none}}
.company-chip .company-tooltip{color:#fff;pointer-events:auto}.company-tooltip::before{content:'';position:absolute;left:0;right:0;top:100%;height:11px}

/* Consistent circular company marks. */
.company-logo,.company-logo[data-dark=true]{border-radius:50%;overflow:hidden}

/* Caption the apps directly underneath their dock. */
.toolkit-dock-section{width:fit-content;max-width:100%}.toolkit-dock-section .dock-stage{padding:20px 0 0;justify-content:center}.toolkit-dock-section>.subhead{margin:13px 0 0;text-align:center;line-height:1.5}.toolkit-dock-section+.cv-section{margin-top:45px}
@media(max-width:600px){.toolkit-dock-section .dock-stage{padding:15px 0 0}.toolkit-dock-section>.subhead{margin-top:12px}.toolkit-dock-section+.cv-section{margin-top:35px}}

/* Reading beats enter softly; no artificial loading screen or layout shifts. */
.entrance-pending{opacity:0}
@media(prefers-reduced-motion:reduce){.entrance-pending{opacity:1}}
@media print{.entrance-pending{opacity:1!important}}

/* Clear, consistent navigation symbols without a monogram in the rail. */
.sidebar .nav-icon{display:grid;place-items:center}.nav-icon svg{display:block;width:18px;height:18px}.sidebar .brand{gap:0}
@media(min-width:801px){.nav-collapsed .sidebar .brand{display:none}.nav-collapsed .sidebar-toggle{margin-top:0}}

/* Keep the expanded menu control beside the name. */
@media(min-width:801px){body:not(.nav-collapsed) .sidebar{position:fixed}body:not(.nav-collapsed) .sidebar .brand{margin-right:34px}body:not(.nav-collapsed) .sidebar-toggle{position:absolute;top:28px;right:16px;width:32px;min-height:32px;margin:0;padding:7px;justify-content:center}body:not(.nav-collapsed) .sidebar-toggle span{display:none}body:not(.nav-collapsed) .sidebar nav{margin-top:28px}}
.gallery-motion{width:36px;height:36px;display:grid;place-items:center;padding:0;border-radius:50%}

/* A shared header height keeps navigation anchored while the rail expands. */
@media(min-width:801px){.sidebar .brand,body:not(.nav-collapsed) .sidebar .brand{position:absolute;top:27px;left:20px;height:34px;margin:0 45px 0 0}.sidebar .sidebar-toggle,body:not(.nav-collapsed) .sidebar-toggle{position:absolute;top:27px;right:16px;width:32px;min-height:34px;margin:0;padding:8px;justify-content:center}.nav-collapsed .sidebar .sidebar-toggle{left:16px;right:auto}.sidebar nav,body:not(.nav-collapsed) .sidebar nav{margin-top:58px}.sidebar nav>a,.nav-collapsed .sidebar nav>a{min-height:38px;margin:5px 0}}

.email-contact{position:relative;display:flex;align-items:center;gap:16px;border-bottom:1px solid var(--line)}.contact-links .email-contact>a{flex:1;min-width:0;border-bottom:0;overflow-wrap:anywhere;gap:12px}.copy-email{display:grid;place-items:center;flex-shrink:0;width:34px;height:34px;border:1px solid #e5e7e8;border-radius:10px;background:#fff;color:#858d96;transition:background .2s,color .2s,transform .2s}.copy-email svg{width:16px;height:16px}.copy-email:hover{background:#f1f3ef;color:#353c35;transform:translateY(-1px)}.copy-email.is-copied{background:#edf3e9;color:#63765b;border-color:#dce5d6}.copy-feedback{position:absolute;right:0;bottom:calc(100% - 10px);font-size:11px;color:#6e7e64;white-space:nowrap}
@media(max-width:600px){.email-contact{gap:10px}.contact-links .email-contact>a{font-size:17px;letter-spacing:-.3px}}
@media(prefers-reduced-motion:reduce){.copy-email{transition:none}}

/* Small inline objects belong to the sentence, rather than another card. */
.about-copy .personal-word{display:inline-flex;align-items:baseline;gap:5px;white-space:nowrap;color:#555e63}.personal-word>svg{position:relative;top:2px;align-self:center;width:17px;height:17px;flex-shrink:0;overflow:visible;transition:transform .35s cubic-bezier(.2,.8,.2,1),color .25s}.personal-brazil>svg{width:20px;height:15px;top:1px}.personal-camera{--detail-ink:#859583}.personal-sports{--detail-ink:#a18c74}.personal-tv{--detail-ink:#9487a9}.personal-cards{--detail-ink:#a48f69}.personal-trinkets{--detail-ink:#8d9c78}.personal-word>svg{color:var(--detail-ink,#949b90)}.personal-word:hover>svg{color:#626e5b;transform:rotate(-9deg) translateY(-2px)}.personal-sports:hover>svg{transform:rotate(45deg)}.personal-trinkets:hover>svg{transform:rotate(35deg) scale(1.12)}.personal-tv:hover>svg{transform:rotate(5deg) translateY(-1px)}.personal-cards:hover>svg{transform:rotate(-12deg) translateY(-2px)}.location-detail{position:relative;display:inline-block}.location-trigger{padding:0;background:none;border:0;border-bottom:1px dotted #b8c0b1;line-height:1.3;font:inherit;border-radius:0;vertical-align:baseline}.location-trigger:hover{color:#414c3b}.location-trigger:focus-visible{outline:2px solid #a9b49b;outline-offset:4px;border-radius:3px}.location-clock{position:absolute;left:50%;bottom:calc(100% + 10px);transform:translate(-50%,4px);opacity:0;visibility:hidden;width:max-content;max-width:200px;padding:7px 10px;border:1px solid #e4e7de;border-radius:8px;background:#fffefb;box-shadow:0 4px 16px #26351c0a;color:#69735f;font-size:11px;line-height:1.5;white-space:nowrap;z-index:5;transition:opacity .16s,transform .2s,visibility .16s}.location-clock::after{content:'';position:absolute;top:100%;left:0;right:0;height:11px}.location-detail.is-open .location-clock{opacity:1;visibility:visible;transform:translate(-50%,0)}
@media(prefers-reduced-motion:reduce){.personal-word>svg,.location-clock{transition:none}.personal-word:hover>svg{transform:none}}

/* Share the About link button’s proportions and quiet lift. */
.copy-email.text-link{display:inline-flex;justify-content:center;width:36px;height:34px;padding:8px 10px;border:1px solid #e4e7ec;border-radius:7px;background:#fff;color:#758099;box-shadow:0 1px 3px #252b3405;transition:box-shadow .2s,transform .2s}.copy-email.text-link svg{width:14px;height:14px}.copy-email.text-link:hover{background:#fff;color:#424b59;transform:translateY(-2px);box-shadow:0 4px 12px #33477910}.copy-email.text-link.is-copied{color:#63765b;background:#fff;border-color:#dce5d6}
@media(prefers-reduced-motion:reduce){.copy-email.text-link{transition:none}.copy-email.text-link:hover{transform:none}}

/* The copy action sits beside the email as a plain icon, like its arrow. */
.copy-email{width:34px;height:34px;padding:7px;border:0;border-radius:0;background:transparent;color:inherit;box-shadow:none;transition:color .2s,opacity .2s}.copy-email svg{width:19px;height:19px;stroke-width:1.5}.copy-email:hover{background:transparent;color:#424b59;transform:none;box-shadow:none}.copy-email.is-copied{background:transparent;border:0;color:#63765b}

/* Two considered palettes; the saved preference is applied before first paint. */
:root{color-scheme:light}.theme-toggle{position:absolute;left:20px;bottom:68px;display:flex;align-items:center;gap:10px;padding:9px;border-radius:10px;min-height:36px;color:#828c98;transition:background .2s,color .2s}.theme-toggle:hover{background:#e5e8ee;color:#414a55}.theme-toggle svg{width:18px;height:18px;flex-shrink:0}.theme-label{font-size:11px;white-space:nowrap}.theme-sun{display:none}
@media(min-width:801px){.nav-collapsed .theme-toggle{left:14px;bottom:22px;width:36px}.nav-collapsed .theme-label{display:none}}
@media(max-width:800px){.theme-toggle{left:24px;bottom:65px}.sidebar-bottom{min-height:65px}}
html[data-theme=dark]{color-scheme:dark;--paper:#1c1e21;--ink:#e9e9e5;--muted:#a5abb3;--line:#33363b;--blue:#acb9e5;--green:#aab8dc;--sage:#283445;--lilac:#353044;--peach:#3e322c;--butter:#30392c}
html[data-theme=dark] body{background:#141618}
html[data-theme=dark] .main-wrap{background:var(--paper);border-color:#303338;box-shadow:0 3px 15px #0002;scrollbar-color:#44484e transparent}
html[data-theme=dark] .theme-moon{display:none}html[data-theme=dark] .theme-sun{display:block}
html[data-theme=dark] :is(.sidebar-toggle,.theme-toggle,.sidebar nav>a){color:#a0a8b4}
html[data-theme=dark] :is(.sidebar-toggle,.theme-toggle,.sidebar nav>a):hover{background:#262a2f;color:#e7e9ed}
html[data-theme=dark] .sidebar nav>a.active{background:#30343b;color:#d9dfef;box-shadow:0 1px 4px #0002}
html[data-theme=dark] :is(.brand-name,.mobile-header>a){color:#e4e7eb}
html[data-theme=dark] :is(.lede,.about-copy,.case-section p,.experience-details p,.education-row p,.cv-section p,.contact-note){color:#aeb4bd}
html[data-theme=dark] :is(.eyebrow,.subhead,.intro-line,.timeline-date,.card-meta,.back-link,.sidebar-foot,footer){color:#9199a6}
html[data-theme=dark] :is(.hero h1 em,.page-intro h1 em,.contact-intro h1 em){color:#a2a6b1}
html[data-theme=dark] :is(.about-copy strong,.about-copy .personal-word){color:#d6d9de}
html[data-theme=dark] :is(.text-link,.company-chip,.gallery-motion,.location-clock,.dock-tooltip){background:#282c31;border-color:#3c4148;color:#d5d9df;box-shadow:0 2px 8px #0001}
html[data-theme=dark] :is(.text-link,.company-chip,.gallery-motion):hover{background:#34383d;border-color:#555c65;color:#f0f0ec}
html[data-theme=dark] .home-page .main-wrap a:hover{color:#eee}
html[data-theme=dark] .home-page .main-wrap .text-link:hover{background:#34383d;border-color:#555c65;box-shadow:0 4px 12px #0002}
html[data-theme=dark] .home-page .project-card{--project-hover:#b4c5df;--project-tint:#303b4b;--project-border:#48566c}
html[data-theme=dark] .home-page .project-card[data-theme=lilac]{--project-hover:#c4afd9;--project-tint:#3b3248;--project-border:#574764}
html[data-theme=dark] .home-page .project-card[data-theme=peach]{--project-hover:#d8b99f;--project-tint:#45382e;--project-border:#65503f}
html[data-theme=dark] .home-page .project-card[data-theme=butter]{--project-hover:#bdcfa8;--project-tint:#35402e;--project-border:#4d5c41}
html[data-theme=dark] .card-arrow{background:#282d33;border-color:#41454d;color:#c0c7d2}
html[data-theme=dark] .project-art{border-color:#3b414a;background:var(--sage)}
html[data-theme=dark] .project-art.lilac{background:var(--lilac)}html[data-theme=dark] .project-art.peach{background:var(--peach)}html[data-theme=dark] .project-art.butter{background:var(--butter)}
html[data-theme=dark] .product-scene{filter:brightness(.83) saturate(.85)}
html[data-theme=dark] :is(.art-label,.art-number){color:#adb7c9}
html[data-theme=dark] .playground-teaser{background:linear-gradient(120deg,#252c35,#2b2933);border-color:#383e49;color:#e2e6eb}
html[data-theme=dark] :is(.teaser-link,.playground-teaser:hover .teaser-link){color:#b6c4de}
html[data-theme=dark] :is(.experience-details,.education-details){border-left-color:#3b4145}
html[data-theme=dark] .cv-inline .experience-row{--milestone:#9ba699;--milestone-soft:#30382f}
html[data-theme=dark] :is(.experience-details,.education-details)::before{border-color:var(--paper)}
html[data-theme=dark] .experience-image-space{border-color:#4a4c49;filter:brightness(.6) saturate(.6)}
html[data-theme=dark] .cv-section{border-color:var(--line)}
html[data-theme=dark] .tool-dock{background:linear-gradient(160deg,#30343be6,#25292fe6);border-color:#42474f;box-shadow:inset 0 1px 1px #ffffff0a,0 6px 15px #0002}
html[data-theme=dark] .dock-tooltip::after{background:#282c31;border-color:#3c4148}
html[data-theme=dark] .company-tooltip{background:#e3e7dd;color:#272c25;box-shadow:0 5px 18px #0003}
html[data-theme=dark] .company-chip .company-tooltip{color:#272c25}
html[data-theme=dark] .company-tooltip::after{border-top-color:#e3e7dd}
html[data-theme=dark] .portrait-front{background:#e5e0d5;border-color:#c8c2b6;box-shadow:0 14px 30px #0003}
html[data-theme=dark] .portrait-caption{color:#60696f}
html[data-theme=dark] .portrait-back{background:radial-gradient(circle at 25% 20%,#3b4662,transparent 70%),#2a344a;color:#d5dff4;border-color:#4b5670}
html[data-theme=dark] .location-trigger{border-color:#717c68}
html[data-theme=dark] .location-clock{color:#d2ddc7}
html[data-theme=dark] .postcard{background:#36372f;border-color:#4d4e40;box-shadow:0 10px 20px #0002}
html[data-theme=dark] .postcard-word{color:#d0d1be}html[data-theme=dark] .postcard>i{background:#55574b}
html[data-theme=dark] .postcard-stamp{background:#454d37;outline-color:#788563;color:#adbc8c}
html[data-theme=dark] :is(.copy-email,.copy-email:hover){color:#c7cdd6}
html[data-theme=dark] :is(.copy-email.is-copied,.copy-feedback){color:#b9cba7}
html[data-theme=dark] .case-outcome{background:#282f3b}
html[data-theme=dark] .visual-slot{background:#242a33;border-color:#485266}
html[data-theme=dark] .visual-slot :is(strong,span){color:#a8b7ce}
html[data-theme=dark] body.gallery-page .gallery-stage{background:radial-gradient(ellipse at 8% 5%,#252e3d,transparent 58%),radial-gradient(ellipse at 95% 95%,#312b39,transparent 60%),#1c1e22}
html[data-theme=dark] .gallery-shapes{filter:brightness(.78) saturate(.8)}
html[data-theme=dark] .gallery-header .eyebrow{color:#9da7ba}
html[data-theme=dark] .gallery-motion[aria-pressed=true]{background:#354052;color:#c7d6ed}
html[data-theme=dark] .circle-cursor{--cursor-accent:#d5dcd0!important}
html[data-theme=dark] .circle-cursor::before{box-shadow:none}
html[data-theme=dark] .circle-cursor.is-link::before{background:#252a2ef0;border-color:var(--cursor-accent)}
html[data-theme=dark] .skip-link{background:#333a44;color:white}
html[data-theme=dark] .main-wrap .mobile-header{background:#1c1e21;border-color:#33363b}
@media(max-width:800px){html[data-theme=dark] .sidebar{background:#202328}}
html[data-theme=dark] .case-meta{color:#969eab}html[data-theme=dark] .case-meta strong{color:#c7cdd6}html[data-theme=dark] .draft-chip{background:#303640;border-color:#434c5c;color:#b5c1d5}html[data-theme=dark] .dock-item[aria-label=GitHub] img{filter:brightness(0) invert(1)}

/* Preview lighting and mock interfaces have their own dark surfaces. */
html[data-theme=dark] .project-art::after{box-shadow:inset 0 1px 0 #ffffff08}
html[data-theme=dark] .project-card:hover .project-art{box-shadow:0 12px 30px #0003}
html[data-theme=dark] .product-scene{filter:none}
html[data-theme=dark] :is(.demo-app,.answer-card,.purchase-card,.living-board){background:#252a32;border-color:#454c58;box-shadow:0 18px 32px #0003}
html[data-theme=dark] .demo-rail{background:#21262e;border-color:#3a414d;color:#a9b7cf}
html[data-theme=dark] .demo-toolbar{border-color:#3a414d;color:#aab5c6}
html[data-theme=dark] :is(.demo-welcome h4,.demo-card b,.answer-top,.demo-answer>b,.purchase-head,.purchase-plan b,.purchase-summary>b,.living-heading,.living-list>b){color:#d6ddec}
html[data-theme=dark] :is(.demo-welcome>small,.demo-welcome p,.demo-card>span,.answer-top small,.answer-bottom,.purchase-plan small,.purchase-summary>span,.living-list>span,.living-list>small,.living-object small){color:#9da9bd}
html[data-theme=dark] .demo-card{background:#2c3440;border-color:#444f62}
html[data-theme=dark] .demo-card small{color:#b1c5ee}
html[data-theme=dark] .demo-orb{background:#443a59;border-color:#5c4b79;color:#c3adeb}
html[data-theme=dark] .demo-people i{border-color:#2c3440}
html[data-theme=dark] .demo-docs i{background:#3b506b;border-color:#526c8e}
html[data-theme=dark] .demo-docs i:nth-child(2){background:#645341;border-color:#7a6751}
html[data-theme=dark] .demo-docs i:nth-child(3){background:#3b4656;border-color:#526177}
html[data-theme=dark] .demo-docs i:nth-child(3)::after{background:#718099;box-shadow:0 5px #718099,0 10px #718099}
html[data-theme=dark] .agent-logo{background:#443a59;color:#c9b7ed}
html[data-theme=dark] .demo-question{background:#443b55;color:#d5c5eb}
html[data-theme=dark] .answer-lines i{background:#566071}
html[data-theme=dark] .demo-source{background:#393344;color:#bdabd6}
html[data-theme=dark] .answer-bottom{border-color:#414956}
html[data-theme=dark] .ask-ai-pill{background:#40364e;border-color:#5a4b6b;color:#c4afde;box-shadow:0 4px 10px #0002}
html[data-theme=dark] .purchase-plan{background:#37332f;border-color:#574b42}
html[data-theme=dark] .plan-options{background:#282c31;color:#aeb6c2;border-color:#4c515b}
html[data-theme=dark] .plan-options .selected{background:#4b4941;color:#e3dccb}
html[data-theme=dark] .purchase-summary{background:#39352e;color:#c9bfac}
html[data-theme=dark] .purchase-summary .answer-lines i{background:#686254}
html[data-theme=dark] .summary-rule{background:#5a554a}
html[data-theme=dark] .payment-field{background:#2c3037;border-color:#49505b;color:#b0b9c8}
html[data-theme=dark] .demo-pay{background:#647259;color:#f5f6f2}
html[data-theme=dark] .living-object{background:#394232}
html[data-theme=dark] .living-heading>span{color:#a8b89a}

/* White app tiles keep each original logo legible in both palettes. */
.dock-icon{background:#fff;border:1px solid #eceef0;border-radius:11px;box-shadow:0 2px 5px #1823300b,inset 0 1px 0 #fff}
.dock-icon img{width:30px;height:30px;filter:none}
html[data-theme=dark] .dock-icon{background:#fff;border-color:#ffffffc9;box-shadow:0 2px 6px #0002}
html[data-theme=dark] .dock-item[aria-label=GitHub] img{filter:none}
@media(max-width:980px) and (min-width:801px){.dock-icon img{width:28px;height:28px}}
@media(max-width:600px){.dock-icon{border-radius:8px}.dock-icon img{width:22px;height:22px}}
@media(max-width:360px){.dock-icon img{width:20px;height:20px}}

/* Final narratives and reusable asset/research frames use the existing palette. */
.hero-introduction{font-size:22px;line-height:1.5;letter-spacing:-.5px;color:var(--ink);max-width:590px;margin:22px 0 15px}.hero .hero-story{font-size:14px;line-height:1.9;max-width:590px;margin:0 0 13px}.home-page .card-meta{line-height:1.6;max-width:95%}.project-summary{font-size:13px;line-height:1.8;color:var(--muted);margin:13px 0 0;max-width:95%}.project-cover>.asset-placeholder{width:100%;height:100%;border:0;border-radius:inherit;background:transparent}.project-cover>.case-media{width:100%;height:100%;margin:0}.case-media{width:100%;display:block;border-radius:12px;overflow:hidden;background:var(--visual-surface,#f3f4f6)}.case-media img{display:block;max-width:100%;width:100%;height:auto;object-fit:contain}.project-cover .case-media img{height:100%;object-fit:contain}.case-intro{max-width:690px}.case-intro .lede{font-size:15px;line-height:1.9;margin:0 0 15px}.case-meta{margin-bottom:28px}.case-hero{margin:30px 0 65px}.case-hero .asset-placeholder{min-height:400px}.case-figure{margin:0}.case-figure figcaption,.visual-heading{font:10px/1.6 ui-monospace,monospace;color:var(--muted);letter-spacing:.4px}.case-figure>figcaption{margin-top:12px}.asset-placeholder{min-height:240px;width:100%;border:1px dashed var(--visual-border,#d6dce5);border-radius:12px;background:var(--visual-surface,#f3f5f8);display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:30px 20px;gap:12px;color:var(--visual-ink,#738095)}.asset-placeholder>svg{width:32px;height:24px;opacity:.7}.asset-placeholder-label{font:9px/1.5 ui-monospace,monospace;letter-spacing:.5px;text-transform:uppercase}.asset-placeholder>strong{font-size:16px;font-weight:450;line-height:1.5;max-width:420px}.asset-placeholder>code{font:10px/1.6 ui-monospace,monospace;opacity:.75;overflow-wrap:anywhere;max-width:100%}.case-visual-group{margin:30px 0 0}.case-visual-group>.visual-heading{margin-bottom:16px}.case-visual-group>.asset-placeholder{margin-top:20px}.asset-pair,.concept-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}.asset-pair .asset-placeholder,.concept-grid .asset-placeholder{min-height:210px}.concept-grid .asset-placeholder>strong{font-size:14px}.research-metrics{display:grid;grid-template-columns:repeat(auto-fit,minmax(155px,1fr));gap:12px;margin:20px 0 0}.research-metrics>div{display:flex;flex-direction:column-reverse;justify-content:flex-end;gap:10px;padding:23px;border:1px solid var(--line);border-radius:12px;background:var(--visual-surface,#f3f5f8)}.research-metrics dd{font-size:36px;font-weight:500;line-height:1.1;letter-spacing:-1.4px;margin:0;color:var(--ink)}.research-metrics dt{font-size:11px;line-height:1.7;color:var(--muted)}.case-section .research-note{font-size:10px;line-height:1.7;margin:12px 0 0;color:var(--muted)}.context-flow{list-style:none;display:grid;grid-template-columns:1.2fr 1fr 1fr;gap:24px;padding:0;margin:0}.context-flow li{position:relative;display:flex;flex-direction:column;justify-content:center;gap:8px;padding:20px 14px;border:1px solid var(--line);border-radius:12px;background:var(--visual-surface,#f3f5f8);font-size:12px;text-align:center;line-height:1.7}.context-flow li>span{background:var(--paper);border-radius:6px;padding:7px}.context-flow li+li::before{content:'→';position:absolute;left:-19px;color:var(--muted)}.context-flow strong{font-weight:500}.comparison-controls{display:flex;gap:5px;width:fit-content;padding:4px;background:var(--visual-surface,#f0f2f6);border:1px solid var(--line);border-radius:10px;margin-bottom:18px}.comparison-controls button{padding:8px 13px;font-size:11px;border-radius:7px;color:var(--muted)}.comparison-controls button[aria-pressed=true]{background:var(--paper);color:var(--ink);box-shadow:0 1px 5px #0000000a}.comparison-controls button:focus-visible{outline-color:var(--muted)}.comparison-panel .asset-placeholder{min-height:300px}.case-section .comparison-state-label{font-size:10px;margin:9px 0 0;color:var(--muted)}.entry-comparison{display:grid;gap:22px;padding:24px;border:1px solid var(--line);border-radius:12px}.research-label{display:flex;align-items:center;justify-content:space-between;gap:20px;font-size:12px;margin-bottom:10px}.research-label strong{font-size:23px;font-weight:500}.research-bar{height:9px;background:var(--visual-surface,#e9e5f0);border-radius:5px;overflow:hidden}.research-bar>span{display:block;height:100%;background:#a390bc;border-radius:5px}.entry-comparison>div:nth-child(2) .research-bar>span{background:#b8b3c1}.visual-status{display:inline-block;font-size:10px;color:var(--muted);padding:5px 9px;border:1px solid var(--line);border-radius:6px;margin-bottom:18px}.audit-board{display:grid;grid-template-columns:1fr 1fr;gap:13px}.audit-board article{padding:20px;background:var(--note-surface,#f4efe4);border:1px solid var(--note-border,#e9e1d1);border-radius:9px;transition:translate .2s}.audit-board article:hover{translate:0 -2px}.audit-board h3{font-size:14px;font-weight:500;margin:0 0 9px}.case-section .audit-board p{font-size:12px;line-height:1.8;margin:0;color:var(--muted)}.case-section .research-kicker{font-size:12px;color:var(--muted);margin-bottom:15px}.experiment-plan{list-style:none;display:grid;grid-template-columns:1fr 1fr;gap:18px;padding:0;margin:0}.experiment-plan li{padding:24px;border:1px solid var(--line);background:var(--visual-surface,#f3f5f8);border-radius:12px}.experiment-plan li>span{font:10px ui-monospace,monospace;color:var(--muted)}.experiment-plan h3{font-size:24px;font-weight:500;margin:14px 0 10px}.case-section .experiment-plan p{font-size:12px;line-height:1.8;margin:0}.case-section>p strong{font-weight:600;color:var(--ink)}
html[data-theme=dark]{--visual-surface:#282e37;--visual-border:#465162;--visual-ink:#adb9ce;--note-surface:#343129;--note-border:#494335}
html[data-theme=dark] .hero-introduction{color:var(--ink)}html[data-theme=dark] .project-summary{color:#aeb4bd}html[data-theme=dark] .project-cover>.asset-placeholder{background:transparent}
@media(max-width:600px){.hero-introduction{font-size:19px}.hero .hero-story{font-size:13px}.case-hero .asset-placeholder{min-height:280px}.asset-pair,.concept-grid,.audit-board,.experiment-plan{grid-template-columns:1fr}.context-flow{grid-template-columns:1fr;gap:25px}.context-flow li+li::before{content:'↓';left:50%;top:-25px}.research-metrics{grid-template-columns:1fr}.research-metrics>div{padding:20px}.research-metrics dd{font-size:34px}.asset-placeholder{min-height:220px}.project-cover .asset-placeholder>strong{font-size:15px}.case-intro .lede{font-size:14px}.projects>.project-card:last-child:nth-child(odd){grid-column:auto}}
@media(prefers-reduced-motion:reduce){.audit-board article{transition:none}.audit-board article:hover{translate:none}}

.entry-variant{display:inline-flex;align-items:center;gap:8px}.entry-variant svg{width:18px;height:18px;color:#a390bc}
@media print{.comparison-panel[hidden]{display:block!important}.comparison-controls{display:none}}
.context-flow li>i{font-style:normal;font-size:13px;color:var(--muted);line-height:1}
.home-page .hero h1{white-space:normal;max-width:760px;text-wrap:balance}

/* Keep the introduction at one consistent reading size below its headline. */
.home-page .hero-introduction,.home-page .hero .hero-story{font-size:17px;line-height:1.8;letter-spacing:-.15px;max-width:650px;font-weight:400;color:var(--muted);margin:18px 0 0}
@media(max-width:600px){.home-page .hero-introduction,.home-page .hero .hero-story{font-size:16px;line-height:1.8}}

/* A couple of tiny, discoverable experiments inside the introduction. */
.word-toy{display:inline;padding:0;margin:0;border:0;border-radius:3px;background:none;font:inherit;line-height:inherit;letter-spacing:inherit;color:inherit;vertical-align:baseline;position:relative;text-align:inherit}.word-idea{isolation:isolate}.word-idea::after{content:'';position:absolute;left:0;right:0;bottom:1px;height:2px;background:#b3c299;transform:scaleX(.85);opacity:.5;transition:transform .3s,opacity .3s}.word-idea:hover::after,.word-idea:focus-visible::after{transform:scaleX(1);opacity:1}.word-code{font-family:ui-monospace,SFMono-Regular,monospace;font-size:.92em;border-bottom:1px dotted #aeb7a4;color:#718164}.word-code:hover{color:#46563a}.word-toy:focus-visible{outline:2px solid #a3b58c;outline-offset:4px}.word-travel{display:inline-block;transition:translate .35s var(--ease)}.word-travel:hover{translate:3px 0}.word-surprise{position:fixed;z-index:60;max-width:min(230px,calc(100vw - 24px));transform:translateX(-50%);padding:8px 12px;border:1px solid #e2e7db;border-radius:9px;background:#fffef9;color:#738065;font:11px/1.6 ui-monospace,monospace;box-shadow:0 5px 20px #28351b0a;pointer-events:none;animation:word-note-in .2s ease-out both}.idea-fleck{position:fixed;z-index:59;font-size:18px;color:#9dac86;pointer-events:none;animation:idea-skip .75s cubic-bezier(.1,.7,.2,1) both}
@keyframes word-note-in{from{opacity:0;translate:0 5px}to{opacity:1;translate:0 0}}
@keyframes idea-skip{0%{opacity:0;transform:translate(-50%,-50%) scale(.4)}20%{opacity:.8}100%{opacity:0;transform:translate(var(--fleck-x),var(--fleck-y)) rotate(var(--fleck-turn)) scale(.7)}}
html[data-theme=dark] .word-code{color:#b6c9a3;border-color:#7d8e6c}html[data-theme=dark] .word-code:hover{color:#d0ddc2}html[data-theme=dark] .word-surprise{background:#2c3329;border-color:#485440;color:#c8d7b8;box-shadow:0 5px 20px #0002}
@media(prefers-reduced-motion:reduce){.word-idea::after,.word-travel{transition:none}.word-travel:hover{translate:none}.word-surprise{animation:none}.idea-fleck{display:none}}

/* Tiny illustrated scenes, with the same paper-and-keepsakes language as About. */
.word-idea::after{height:5px;bottom:1px;border-radius:50%;background:linear-gradient(90deg,#d0bbdf,#bdcba5);transform:rotate(-2deg) scaleX(.95);opacity:.65;z-index:-1}.word-idea:hover::after{transform:rotate(1deg) scaleX(1.04)}.word-code{color:#77866c;border:0;border-radius:4px;background:#e8eddf80;padding:0 3px}.word-code:hover{background:#e8eddf;color:#506042}.word-scene{width:250px;padding:12px;border-radius:16px;background:#fffefb;border-color:#e9e6de;box-shadow:0 12px 35px #30372b15,0 2px 5px #30372b08;animation:scene-arrive .4s cubic-bezier(.16,1,.3,1) both;transform-origin:50% 0}.scene-caption{display:block;font:10px/1.5 -apple-system,BlinkMacSystemFont,sans-serif;text-align:center;color:#8e9586;margin:10px 0 1px}.idea-scene-art{display:block;position:relative;height:110px;border-radius:9px;background:radial-gradient(ellipse at 50% 100%,#eef0e2,transparent 75%)}.idea-paper{position:absolute;top:18px;width:65px;height:80px;border:1px solid #e8e3d7;background:#fffdf7;border-radius:5px;box-shadow:0 4px 9px #4b503810;padding:13px 10px;animation:paper-unfold .6s cubic-bezier(.2,.9,.3,1) both}.paper-one{left:29px;rotate:-15deg;background:#f1eaf9;--paper-x:-9px;--paper-turn:-6deg}.paper-two{left:87px;top:10px;rotate:5deg;background:#eff3e7;animation-delay:60ms}.paper-three{left:135px;top:22px;rotate:15deg;background:#fff4df;animation-delay:110ms;--paper-x:9px;--paper-turn:6deg}.idea-paper i{display:block;height:3px;background:#c9c1d5;border-radius:2px;margin:8px 0}.idea-paper i:last-child{width:65%}.idea-paper b{display:block;color:#a8b98e;font-size:25px;line-height:30px;font-weight:400}.idea-paper svg{position:absolute;inset:4px;width:55px;height:65px;color:#b4a178;stroke-dasharray:150;stroke-dashoffset:150;animation:sketch-it .8s .2s ease forwards}.idea-orbit-star{position:absolute;right:22px;top:2px;color:#b4c19b;font-size:23px;animation:star-hello .7s cubic-bezier(.2,.9,.2,1) both}.tiny-terminal{display:block;background:#282e32;border:1px solid #424b4f;border-radius:9px;padding:11px 12px 15px;box-shadow:0 5px 10px #232a2010}.terminal-bar{display:flex;align-items:center;gap:4px;margin-bottom:18px}.terminal-bar>i{width:5px;height:5px;border-radius:50%;background:#d2a59c}.terminal-bar>i:nth-child(2){background:#d4c28e}.terminal-bar>i:nth-child(3){background:#adc19c}.terminal-bar>span{margin-left:auto;font:7px ui-monospace,monospace;color:#85918f}.terminal-line{display:block;font:11px/1.6 ui-monospace,monospace;color:#dee3df;white-space:nowrap;animation:terminal-type .7s steps(22,end) both;overflow:hidden}.terminal-line>span{color:#c8b2dc}.terminal-line>b{color:#b8cc9f;font-weight:400}.terminal-result{display:block;font:9px/1.5 ui-monospace,monospace;color:#aab6b0;margin-top:13px;animation:result-arrive .35s .55s ease both}.terminal-result i{font-style:normal;color:#b8cc9f;margin-right:5px}.idea-fleck{font-size:15px;color:#b9a9ce}.idea-fleck.fleck-0{width:7px;height:10px;background:#b8c59f;border-radius:2px}.idea-fleck.fleck-1{color:#c8b397}.idea-fleck.fleck-2{color:#b9a9ce}
@keyframes scene-arrive{from{opacity:0;translate:0 8px;scale:.94}to{opacity:1;translate:0 0;scale:1}}
@keyframes paper-unfold{from{opacity:0;translate:var(--paper-x,0) 15px;rotate:var(--paper-turn,0deg)}to{opacity:1;translate:0 0}}
@keyframes sketch-it{to{stroke-dashoffset:0}}
@keyframes star-hello{from{opacity:0;rotate:-70deg;scale:.2}to{opacity:1;rotate:15deg;scale:1}}
@keyframes terminal-type{from{max-width:0}to{max-width:210px}}
@keyframes result-arrive{from{opacity:0;translate:0 4px}to{opacity:1;translate:0 0}}
html[data-theme=dark] .word-code{background:#38422e80;color:#bfcca9}html[data-theme=dark] .word-code:hover{background:#3e4b32}html[data-theme=dark] .word-scene{background:#292e27;border-color:#444c3c;box-shadow:0 12px 35px #0004}html[data-theme=dark] .scene-caption{color:#b9c3af}html[data-theme=dark] .idea-scene-art{background:radial-gradient(ellipse at 50% 100%,#414735,transparent 75%)}
@media(prefers-reduced-motion:reduce){.word-scene,.idea-paper,.idea-paper svg,.idea-orbit-star,.terminal-line,.terminal-result{animation:none}.idea-paper svg{stroke-dashoffset:0}.terminal-line{max-width:none}}
.word-scene{max-width:min(250px,calc(100vw - 24px))}

/* A dry passing thought, and a terminal with no outer wrapper. */
.word-idea::after{height:2px;bottom:1px;background:#b8bcc3;border-radius:1px;rotate:0;opacity:.55;transform:scaleX(.95)}.word-idea:hover::after,.word-idea:focus-visible::after{transform:scaleX(1);opacity:.9}
.word-code,html[data-theme=dark] .word-code{background:#e8e9eb80;color:#747b85;border-bottom:1px dotted #aeb3bc;padding:0 2px;border-radius:2px}.word-code:hover{background:#eceef0;color:#4e555f}html[data-theme=dark] .word-code{background:#34383e80;color:#b9bec7;border-color:#737b87}html[data-theme=dark] .word-code:hover{background:#3c4148;color:#e0e3e8}.word-toy:focus-visible{outline-color:#a0a7b2}
.word-hover{position:fixed;z-index:60;max-width:calc(100vw - 24px);animation:word-hover-in .16s ease-out both}.idea-hover{width:max-content;max-width:min(250px,calc(100vw - 24px));padding:9px 12px;border:1px solid #e4e6e9;border-radius:8px;background:#fff;color:#68707c;font:11px/1.65 -apple-system,BlinkMacSystemFont,sans-serif;box-shadow:0 4px 16px #2026300d}.word-hover::after{content:'';position:absolute;inset:-14px 0;z-index:-1}.code-hover{width:242px;background:none;border:0;padding:0;border-radius:10px;box-shadow:0 8px 25px #20263020}.code-hover .tiny-terminal{margin:0;border-radius:10px;background:#24272c;border-color:#3a4048;padding:12px 14px 16px}.code-hover .terminal-bar>span{color:#949aa3}.code-hover .terminal-bar>i{background:#777e89}.code-hover .terminal-bar>i:nth-child(2){background:#999fa9}.code-hover .terminal-bar>i:nth-child(3){background:#b7bdc6}.code-hover .terminal-line{color:#e0e3e7}.code-hover .terminal-line>span{color:#afb7c7}.code-hover .terminal-line>b{color:#d1d6de}.code-hover .terminal-result{color:#aab1bd}.code-hover .terminal-result i{color:#c4cad3}html[data-theme=dark] .idea-hover{background:#2a2e34;border-color:#424852;color:#d0d5de;box-shadow:0 4px 16px #0003}
@keyframes word-hover-in{from{opacity:0;translate:0 3px}to{opacity:1;translate:0 0}}
@media(prefers-reduced-motion:reduce){.word-hover{animation:none}}

/* Neutral inline word; the little terminal keeps its colour. */
.word-code,html[data-theme=dark] .word-code{border:0;text-decoration:none}
.code-hover .terminal-bar>i{background:#d29b94}.code-hover .terminal-bar>i:nth-child(2){background:#d6bf83}.code-hover .terminal-bar>i:nth-child(3){background:#a9c293}
.code-hover .terminal-line>span{color:#cbb0e6}.code-hover .terminal-line>b{color:#aaca94}.code-hover .terminal-result i{color:#aaca94}

/* A short view into the work; the full CV is there when someone wants it. */
.ai-work{margin:58px 0 36px;padding:40px 0 0;border-top:1px solid var(--line);max-width:850px}.ai-work>header{max-width:650px}.ai-work h2{font-size:32px;line-height:1.2;font-weight:500;letter-spacing:-1.1px;margin:14px 0 20px}.ai-work p:not(.eyebrow){font-size:15px;line-height:1.85;color:var(--muted);margin:0}.ai-work-notes{margin-top:30px;max-width:700px}.ai-work-notes article{display:grid;grid-template-columns:28px minmax(0,1fr);gap:14px;padding:21px 0;border-top:1px solid var(--line)}.ai-note-number{font:10px/1.8 ui-monospace,monospace;color:#a1a8af;padding-top:3px}.ai-work h3{font-size:17px;font-weight:500;letter-spacing:-.3px;line-height:1.5;margin:0 0 7px}.ai-work-notes p{font-size:14px}.ai-work-link{display:inline-flex;gap:15px;align-items:center;font-size:12px;margin-top:17px;color:var(--muted)}.ai-work-link:hover{color:var(--ink)}.ai-work-link>span{transition:transform .2s}.ai-work-link:hover>span{transform:translate(2px,-2px)}.cv-history{margin-top:-12px}.cv-history>summary{display:flex;align-items:center;gap:15px;width:fit-content;list-style:none;font-size:12px;color:var(--muted);padding:9px 0;cursor:pointer;border-radius:5px}.cv-history>summary::-webkit-details-marker{display:none}.cv-history>summary:hover{color:var(--ink)}.cv-history>summary:focus-visible{outline:2px solid #a0a7b2;outline-offset:5px}.cv-history>summary svg{width:15px;height:15px;transition:rotate .25s}.cv-history .history-hide{display:none}.cv-history[open] .history-show{display:none}.cv-history[open] .history-hide{display:inline}.cv-history[open]>summary svg{rotate:180deg}.cv-history-content{padding-top:30px}.cv-history[open] .cv-history-content{animation:cv-history-in .25s ease-out both}
@keyframes cv-history-in{from{opacity:0;translate:0 6px}to{opacity:1;translate:0 0}}
html[data-theme=dark] .ai-work p:not(.eyebrow){color:#aeb4bd}
@media(max-width:600px){.ai-work{margin-top:40px;padding-top:30px}.ai-work h2{font-size:27px}.ai-work p:not(.eyebrow){font-size:14px}.ai-work-notes p{font-size:13px}.ai-work-notes article{gap:10px;grid-template-columns:24px minmax(0,1fr)}.ai-work h3{font-size:16px}}
@media(prefers-reduced-motion:reduce){.cv-history[open] .cv-history-content{animation:none}.cv-history>summary svg,.ai-work-link>span{transition:none}.ai-work-link:hover>span{transform:none}}
@media print{.cv-history-content{display:block!important}.cv-history>summary{display:none}}

/* A direct hello, tools up front, then a small working sketch. */
.about-copy .bio-cta{margin-top:9px;font-size:12px;color:var(--ink)}.ai-work-intro{display:grid;grid-template-columns:minmax(0,1fr) 185px;gap:45px;align-items:center}.ai-work-intro>header{max-width:650px}.inline-tool{display:inline-flex;align-items:baseline;gap:5px;white-space:nowrap;color:var(--ink)}.inline-tool img{align-self:center;position:relative;top:2px;width:20px;height:20px;object-fit:contain;background:#fff;border-radius:5px;padding:2px;box-shadow:0 1px 3px #27334208;transition:transform .3s var(--ease)}.inline-tool:hover img{transform:translateY(-2px) rotate(-7deg)}.ai-prototype-scene{position:relative;padding:15px 5px;perspective:800px}.prototype-tape{position:absolute;top:5px;left:calc(50% - 27px);width:54px;height:18px;background:#e4dbc598;rotate:-7deg;z-index:2;pointer-events:none}.ai-prototype{display:block;position:relative;width:170px;padding:13px 13px 0;border-radius:12px;background:#faf9f5;border:1px solid #e1e2d9;box-shadow:0 10px 25px #2c332b0b;transform:rotate(5deg);transition:transform .45s var(--ease),background .3s;outline-offset:5px;text-align:left}.ai-prototype:hover{transform:rotate(1deg) translateY(-3px)}.prototype-top{display:flex;gap:4px;padding-bottom:12px}.prototype-top i{display:block;width:4px;height:4px;border-radius:50%;background:#c9cdc3}.prototype-pieces{display:block;position:relative;height:103px}.prototype-pieces i{position:absolute;display:block;border-radius:7px;box-shadow:inset 0 1px 1px #ffffff88;transition:inset .65s var(--ease),width .65s var(--ease),height .65s var(--ease),rotate .65s var(--ease),border-radius .65s var(--ease);font-style:normal}.prototype-pieces i:nth-child(1){left:0;top:0;width:65px;height:41px;background:#dad2e9}.prototype-pieces i:nth-child(2){left:76px;top:0;width:65px;height:88px;background:#e2e7d7}.prototype-pieces i:nth-child(3){left:0;top:52px;width:65px;height:36px;background:#f0e4cc;color:#b7a278;text-align:center;font-size:25px;line-height:36px}.prototype-action{display:flex;align-items:center;justify-content:space-between;font-size:10px;line-height:1.5;color:#868b80;border-top:1px solid #e7e8df;padding:10px 0 12px}.ai-prototype.is-built{background:#f5f6f0;transform:rotate(-3deg)}.is-built .prototype-pieces i:nth-child(1){left:0;top:0;width:141px;height:32px;background:#dad2e9}.is-built .prototype-pieces i:nth-child(2){left:0;top:43px;width:86px;height:45px;border-radius:22px;background:#e2e7d7}.is-built .prototype-pieces i:nth-child(3){left:97px;top:43px;width:44px;height:45px;line-height:45px;rotate:12deg;background:#f0e4cc}html[data-theme=dark] .ai-prototype{background:#30332c;border-color:#484d3d;box-shadow:0 10px 25px #0002}html[data-theme=dark] .ai-prototype.is-built{background:#34382e}html[data-theme=dark] .prototype-action{border-color:#4b5044;color:#b8c0ad}
@media(max-width:700px){.ai-work-intro{grid-template-columns:minmax(0,1fr);gap:18px}.ai-prototype-scene{justify-self:center}.ai-work h2{margin-top:12px}}
@media(prefers-reduced-motion:reduce){.inline-tool img,.ai-prototype,.prototype-pieces i{transition:none}.inline-tool:hover img,.ai-prototype:hover{transform:none}}
.ai-prototype:focus-visible{outline:2px solid #a4abb7}

/* Let the About narrative use the canvas, with the sketch on the far right. */
.about-layout{column-gap:36px}.about-layout>.about-copy{max-width:none}.about-copy>p,.ai-work p{text-wrap:pretty}.ai-work{max-width:none}.ai-work-intro{grid-template-columns:minmax(0,1fr) 220px;gap:clamp(36px,5vw,76px)}.ai-work-intro>header{max-width:none}.ai-prototype-scene{justify-self:end;margin-right:12px}.ai-work-notes{max-width:none}.ai-work-notes article>div{max-width:860px}
@media(max-width:1000px) and (min-width:701px){.about-layout{column-gap:26px}.ai-work-intro{grid-template-columns:minmax(0,1fr) 180px;gap:28px}.ai-prototype-scene{margin-right:0}}
@media(max-width:700px){.about-layout{column-gap:0}.ai-work-intro{grid-template-columns:minmax(0,1fr);gap:18px}.ai-prototype-scene{justify-self:center;margin-right:0}}

/* Editorial case studies: a steady text measure, with room for the evidence. */
.case-header{max-width:900px}.case-header h1{max-width:900px}.case-subtitle{font-size:20px;line-height:1.65;letter-spacing:-.25px;color:var(--muted);max-width:720px;margin:22px 0 0}.case-hero{margin:38px 0 28px}.editorial-meta{display:flex;flex-wrap:wrap;gap:35px;margin:0 auto 65px;max-width:960px;padding:20px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.editorial-meta strong{font-size:12px;line-height:1.7}.case-body{max-width:none;margin-top:0}.case-section{margin:0 0 76px}.case-section>h2,.case-section>p{max-width:680px;margin-left:auto;margin-right:auto}.case-section>h2{margin-top:0;margin-bottom:24px;font-size:32px;line-height:1.25}.case-section>p{font-size:16px;line-height:1.9;margin-top:0;margin-bottom:23px;text-wrap:pretty}.case-section>p+p{margin-top:0}.case-section>p strong{font-weight:600}.case-section>p em{font-style:italic;color:var(--ink)}.case-visual-group,.case-section>.case-figure{max-width:960px;margin:38px auto}.case-section .research-note{font-size:11px}.case-section .research-metrics{margin-top:20px}.case-pullquote{font-size:22px;line-height:1.6;letter-spacing:-.5px;font-weight:450;max-width:650px;margin:35px auto;color:var(--ink);padding:0 0 0 22px;border-left:2px solid #b5a5ca}.case-body>.next-project{max-width:960px;margin-left:auto;margin-right:auto}.comparison-controls{max-width:100%;flex-wrap:wrap}.experiment-plan h3{font-size:22px;line-height:1.4}.comparison-aside{max-width:960px!important;font-size:12px!important;font-style:italic;color:var(--muted);margin:-20px auto 35px!important}.comparison-panel:not([hidden]){animation:case-state-in .25s ease-out both}
@keyframes case-state-in{from{opacity:.3;translate:0 4px}to{opacity:1;translate:0 0}}
/* A single dot carries the Discover finding. */
.discover-return-layout{display:grid;grid-template-columns:1fr 1.2fr;align-items:center;gap:45px;padding:36px 0}.return-number{display:block;font-size:clamp(55px,6vw,82px);font-weight:500;line-height:1;letter-spacing:-4px}.case-section .discover-return p{font-size:14px;line-height:1.7;color:var(--muted);margin:14px 0}.return-aside{font-size:12px;font-style:italic;color:var(--muted)}.return-dots{display:grid;grid-template-columns:repeat(25,1fr);gap:5px;max-width:465px}.return-dots>i{display:block;aspect-ratio:1;border-radius:50%;background:#e1e4e9}.return-dots .is-return{background:#7e94ba;box-shadow:0 0 0 3px #a2b2cc26}html[data-theme=dark] .return-dots>i{background:#373e47}html[data-theme=dark] .return-dots .is-return{background:#b4c4e3}
/* A designer’s aside, accessible by hover, focus or tap. */
.story-aside{display:inline-block;position:relative}.story-aside-trigger{padding:0;border-bottom:1px dotted currentColor;border-radius:0;background:none;font:inherit;line-height:inherit;font-weight:600;text-align:inherit}.story-aside-note{position:absolute;left:0;bottom:calc(100% + 10px);width:195px;max-width:calc(100vw - 30px);padding:9px 11px;border:1px solid var(--line);border-radius:8px;background:var(--paper);box-shadow:0 4px 14px #2026300d;color:var(--muted);font:11px/1.65 -apple-system,sans-serif;z-index:8;opacity:0;visibility:hidden;translate:0 3px;transition:opacity .18s,translate .18s,visibility .18s}.story-aside-note::after{content:'';position:absolute;top:100%;left:0;right:0;height:11px}.story-aside:hover .story-aside-note,.story-aside:focus-within .story-aside-note,.story-aside.is-open .story-aside-note{opacity:1;visibility:visible;translate:0 0}.story-aside.is-dismissed .story-aside-note{opacity:0;visibility:hidden}.story-aside-trigger:focus-visible{outline:2px solid #a0a7b2;outline-offset:4px}
/* Explicitly schematic Home states, not reconstructed product screens. */
.home-blueprint{padding:28px;border:1px dashed var(--visual-border,#d6dce5);border-radius:14px;background:var(--visual-surface,#f3f5f8)}.schematic-label{display:block;font:10px ui-monospace,monospace;color:var(--muted);margin-bottom:25px}.blueprint-suggestions{display:grid;grid-template-columns:2fr 1fr;grid-template-rows:62px 62px;gap:12px;transition:grid-template-columns .3s ease}.blueprint-suggestions>div{background:var(--paper);border:1px solid var(--line);border-radius:9px;padding:15px;overflow:hidden;transition:background .3s ease}.blueprint-primary{grid-row:1/span 2}.blueprint-suggestions>div>span,.blueprint-documents>span{font-size:11px;color:var(--muted)}.blueprint-suggestions i{display:block;width:55%;height:3px;background:#bbc6d799;border-radius:3px;margin-top:9px}.blueprint-primary i{width:40%}.blueprint-documents{height:65px;margin-top:22px;border-top:1px solid var(--line);padding-top:18px;overflow:hidden;transition:height .3s ease}.blueprint-documents>i{display:block;height:1px;background:var(--line);margin-top:24px}.home-blueprint[data-stage=active] .blueprint-suggestions{grid-template-columns:1fr 1fr 1fr;grid-template-rows:75px}.home-blueprint[data-stage=active] .blueprint-primary{grid-row:1}.home-blueprint[data-stage=active] .blueprint-documents{height:180px}
/* A conceptual AI invitation appears beside the task. */
.context-task{border:1px solid var(--line);border-radius:12px;background:var(--visual-surface,#f3f5f8);max-width:720px;margin:0 auto;padding:22px}.context-task-top{display:flex;justify-content:space-between;font-size:11px;color:var(--muted);padding-bottom:18px;border-bottom:1px solid var(--line)}.context-task-content{position:relative;padding:25px 0 0}.context-task-content>span{font-size:13px;color:var(--ink)}.context-task-line{height:8px;background:var(--line);border-radius:4px;margin-top:16px;width:70%}.context-task-line+.context-task-line{width:48%;margin-top:10px}.context-help{display:flex;align-items:flex-start;gap:16px;margin-top:24px;min-height:76px}.agent-invite{display:flex;align-items:center;gap:8px;flex-shrink:0;width:38px;height:38px;padding:10px;border:1px solid #d7cce7;border-radius:12px;background:#eee7f6;color:#8d72ad;overflow:hidden;transition:width .3s ease,background .2s}.agent-invite svg{width:18px;height:18px;flex-shrink:0}.agent-invite span{font-size:11px;white-space:nowrap;opacity:0;transition:opacity .2s}.agent-invite[aria-expanded=true]{width:98px}.agent-invite[aria-expanded=true] span{opacity:1}.agent-invitation{max-width:350px;border-left:2px solid #b6a0cc;padding:4px 0 4px 15px;animation:case-state-in .25s ease-out both}.agent-invitation strong{font-size:13px;font-weight:500}.case-section .agent-invitation p{font-size:12px;margin:6px 0 0;line-height:1.7}html[data-theme=dark] .agent-invite{background:#463951;border-color:#695276;color:#cfb5e5}
@media(max-width:700px){.case-subtitle{font-size:18px}.case-section>h2{font-size:28px}.case-section>p{font-size:15px}.editorial-meta{gap:22px;margin-bottom:45px}.editorial-meta strong{font-size:11px}.discover-return-layout{grid-template-columns:1fr;gap:25px;padding:20px 0}.return-dots{gap:4px}.case-pullquote{font-size:19px}.home-blueprint{padding:18px}.blueprint-suggestions>div{padding:10px}.blueprint-suggestions>div>span{font-size:9px}.home-blueprint[data-stage=active] .blueprint-suggestions{grid-template-rows:92px}.context-help{gap:12px}.agent-invitation{padding-left:10px}.case-visual-group,.case-section>.case-figure{margin-top:28px;margin-bottom:28px}}
@media(prefers-reduced-motion:reduce){.comparison-panel:not([hidden]),.agent-invitation{animation:none}.blueprint-suggestions,.blueprint-suggestions>div,.blueprint-documents,.agent-invite,.agent-invite span,.story-aside-note{transition:none}}

/* One centred column keeps the case title, story and artwork together. */
.case-article{width:100%;max-width:760px;margin-inline:auto;text-align:left}
.case-article .case-header,.case-article .case-body{max-width:none;width:100%}
.case-article .case-header h1{font-size:clamp(32px,3.3vw,44px);line-height:1.15;letter-spacing:-1.6px;max-width:700px}
.case-article .case-subtitle{font-size:18px;max-width:660px;margin-top:18px}
.case-article .case-hero{margin:30px 0 24px}
.case-article .case-hero>.project-art{height:340px;width:100%}
.case-article .editorial-meta{max-width:none;margin-bottom:56px;gap:28px}
.case-article .case-section>h2,.case-article .case-section>p{max-width:none;margin-left:0;margin-right:0}
.case-article .case-section>h2{font-size:28px;max-width:690px}
.case-article .case-section>p{max-width:690px}
.case-article .case-visual-group,.case-article .case-section>.case-figure,.case-article .next-project{width:100%;max-width:100%;margin-inline:0}
.case-article .comparison-aside{max-width:100%!important}
@media(max-width:700px){.case-article .case-header h1{font-size:32px;letter-spacing:-1px}.case-article .case-subtitle{font-size:17px}.case-article .case-hero>.project-art{height:280px}.case-article .case-section>h2{font-size:25px}}

/* A visual invitation into the next story. */
.case-article .next-project{display:flex;flex-direction:column;gap:22px;color:var(--ink)}
.next-project>.project-art{width:100%;height:260px;transition:filter .35s var(--ease)}
.next-project-label{display:flex;align-items:center;justify-content:space-between;gap:24px;width:100%}
.next-project:hover>span:last-child{transform:none}
.next-project-arrow{transition:transform .35s var(--ease)}
.next-project:hover .next-project-arrow{transform:translate(4px,-4px)}
.next-project:hover>.project-art{filter:brightness(1.025)}
.next-project:focus-visible{outline:2px solid currentColor;outline-offset:8px;border-radius:12px}
@media(max-width:600px){.next-project>.project-art{height:220px}.next-project-label{font-size:20px}}
@media(prefers-reduced-motion:reduce){.next-project-arrow,.next-project>.project-art{transition:none}.next-project:hover .next-project-arrow{transform:none}}

.next-project>.next-project-label{display:flex}

/* Compact next-story thumbnail beside the title. */
.case-article .next-project{flex-direction:row;align-items:center;gap:24px}
.next-project-thumb{display:block;position:relative;width:144px;height:90px;flex:0 0 144px;overflow:hidden;border-radius:9px}
.next-project-thumb>.project-art{position:absolute;top:0;left:0;width:480px;height:300px;transform:scale(.3);transform-origin:top left;border-radius:0}
.next-project>.next-project-label{min-width:0;flex:1;width:auto}
@media(max-width:600px){.case-article .next-project{gap:16px}.next-project-thumb{width:112px;height:70px;flex-basis:112px}.next-project-thumb>.project-art{transform:scale(.233333)}.next-project-label{font-size:18px;gap:12px}}

.case-article .next-project>.next-project-label{display:flex}

/* A tiny scavenger among the gallery’s bits and pieces. */
.gallery-wally{position:absolute;left:83%;top:78%;z-index:4;width:44px;height:48px;padding:5px;background:none;border:0;overflow:visible;transform:rotate(-8deg);color:var(--ink);border-radius:12px}
.gallery-wally>svg{width:34px;height:38px;overflow:visible;filter:drop-shadow(0 3px 2px #43391d18);transition:transform .35s var(--ease)}
.gallery-wally:hover>svg,.gallery-wally:focus-visible>svg{transform:translateY(-3px) rotate(8deg)}
.gallery-wally:focus-visible{outline:1px dashed var(--muted);outline-offset:3px}
.wally-head{transform-origin:30px 25px;transition:transform .4s var(--ease)}
.gallery-wally:hover .wally-head{transform:rotate(12deg)}
.wally-message{position:absolute;bottom:calc(100% + 10px);right:-12px;width:172px;padding:12px 14px;border:1px solid var(--line);border-radius:12px;background:var(--paper);box-shadow:0 5px 20px #2222220a;text-align:left;font-size:13px;line-height:1.5;letter-spacing:0;opacity:0;visibility:hidden;transform:translateY(5px) rotate(8deg);transition:opacity .2s,transform .3s var(--ease),visibility .2s;pointer-events:none}
.wally-message>span{color:#bd785e;margin-left:3px}.wally-message small{display:block;color:var(--muted);font-size:10px;margin-top:4px}
.gallery-wally[aria-expanded=true] .wally-message{opacity:1;visibility:visible;transform:translateY(0) rotate(8deg)}
.gallery-wally[aria-expanded=true] .wally-arm{transform-origin:44px 36px;animation:wally-wave .65s ease-in-out 3}
@keyframes wally-wave{0%,100%{transform:rotate(0)}50%{transform:rotate(-24deg)}}
@media(max-width:600px){.gallery-wally{left:auto;right:8%;top:82%}}
@media(prefers-reduced-motion:reduce){.gallery-wally>svg,.wally-head,.wally-message{transition:none}.gallery-wally[aria-expanded=true] .wally-arm{animation:none}}

/* Wally, the one with the stripes. */
.gallery-wally{height:57px}
.gallery-wally>svg{width:30px;height:45px}
.wally-head{transform-origin:32px 27px}
.gallery-wally[aria-expanded=true] .wally-arm{transform-origin:19px 38px}

/* Wally stays still underneath a card; the canvas motion does the revealing. */
body.gallery-page .gallery-shapes{z-index:2;pointer-events:none}
.gallery-wally{z-index:1}
.gallery-wally:focus-visible,.gallery-wally[aria-expanded=true]{z-index:4}

/* Original exports float freely, without extra frames or cropped artwork. */
.gallery-piece.gallery-asset{border:0;border-radius:0;box-shadow:none;background:none;display:block;filter:drop-shadow(0 5px 9px #2733480b)}
.gallery-asset img{display:block;width:100%;height:100%;object-fit:contain;user-select:none;-webkit-user-drag:none}
html[data-theme=dark] .gallery-shapes{filter:none}

/* Show only the artwork from card exports, leaving their text outside the viewport. */
.gallery-piece.gallery-asset{overflow:hidden;border-radius:8px}
.gallery-asset img{position:absolute;max-width:none;height:auto;object-fit:initial}

/* Let the artwork soften into the canvas at every edge. */
body.gallery-page .gallery-shapes{
  -webkit-mask-image:linear-gradient(to right,transparent,#000 5%,#000 95%,transparent),linear-gradient(to bottom,transparent,#000 7%,#000 93%,transparent);
  -webkit-mask-composite:source-in;
  mask-image:linear-gradient(to right,transparent,#000 5%,#000 95%,transparent),linear-gradient(to bottom,transparent,#000 7%,#000 93%,transparent);
  mask-composite:intersect;
}

/* Wally hides near the left edge; his greeting opens into the canvas. */
.gallery-wally .wally-message{left:calc(100% + 10px);right:auto;bottom:12px;transform:translateX(-4px) rotate(8deg);transform-origin:left bottom}
.gallery-wally[aria-expanded=true] .wally-message{transform:translateX(0) rotate(8deg)}

/* A warm little hello on the photo. */
.portrait-caption>.portrait-hello{display:inline-flex;align-items:center;gap:7px;font:italic 18px Georgia,serif;color:#806954;letter-spacing:-.3px}
.portrait-wave{display:inline-block;font:16px/1 sans-serif;transform-origin:70% 80%;rotate:-8deg}
.portrait-flip:hover .portrait-wave,.portrait-flip:focus-visible .portrait-wave{animation:portrait-hello-wave .65s ease-in-out 2}
@keyframes portrait-hello-wave{0%,100%{transform:rotate(0)}25%{transform:rotate(18deg)}75%{transform:rotate(-12deg)}}
@media(prefers-reduced-motion:reduce){.portrait-flip:hover .portrait-wave,.portrait-flip:focus-visible .portrait-wave{animation:none}}
.ai-work p.eyebrow{color:var(--muted)}
html[data-theme=dark] .ai-work p.eyebrow{color:#9199a6}

/* Three parallel thoughts, presented as a small set of cards. */
.ai-work-notes{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin-top:30px}
.ai-work-notes article{display:flex;flex-direction:column;gap:20px;padding:24px;border:1px solid var(--line);border-radius:16px;background:var(--paper);min-width:0;align-items:flex-start}
.ai-work-notes article>div{max-width:none}
.ai-work-notes .ai-note-number{font:10px ui-monospace,monospace;color:var(--muted);letter-spacing:1px}
.ai-work-notes h3{font-size:18px;line-height:1.4;margin:0 0 12px}
.ai-work-notes p{font-size:14px;line-height:1.8}
@media(max-width:850px){.ai-work-notes{gap:12px}.ai-work-notes article{padding:18px}.ai-work-notes h3{font-size:16px}.ai-work-notes p{font-size:13px}}
@media(max-width:650px){.ai-work-notes{grid-template-columns:1fr}.ai-work-notes article{padding:22px;gap:14px}.ai-work-notes h3{font-size:18px}.ai-work-notes p{font-size:14px}}

/* A quiet lift makes the About cards feel tactile. */
.ai-work-notes article{transition:transform .35s var(--ease),box-shadow .35s var(--ease),border-color .35s var(--ease)}
@media(hover:hover) and (pointer:fine){
  .ai-work-notes article:hover{transform:translateY(-5px);border-color:#c7ccd4;box-shadow:0 12px 28px #2733480a}
  html[data-theme=dark] .ai-work-notes article:hover{border-color:#59616d;box-shadow:0 12px 28px #0002}
}
@media(prefers-reduced-motion:reduce){.ai-work-notes article{transition:none}.ai-work-notes article:hover{transform:none}}

.hero-copy .home-greeting{padding:0;max-width:none;min-height:0;margin:0 0 24px;font-size:11px;line-height:1.5}

.hero-copy .home-greeting{font-size:13px}.home-greeting strong{font-weight:650;color:var(--ink)}

/* A small sampler of Helena’s original gallery illustrations. */
.teaser-toys.teaser-originals{flex-basis:240px;height:160px}
.teaser-artwork{display:block;position:absolute;overflow:hidden;border-radius:8px;filter:drop-shadow(0 6px 10px #2733480b);transition:transform .65s var(--ease)}
.teaser-artwork img{position:absolute;max-width:none;width:111.194%;height:auto;left:-5.597%;top:-7.347%;user-select:none}
.teaser-document{width:50%;aspect-ratio:536/490;left:0;top:20px;transform:rotate(-12deg)}
.teaser-translation{width:53%;aspect-ratio:458/192;right:0;top:0;transform:rotate(9deg)}
.teaser-translation img{width:114.192%;left:-6.987%;top:-16.667%}
.teaser-api{width:49%;aspect-ratio:536/490;right:0;bottom:0;transform:rotate(8deg)}
.playground-teaser:hover .teaser-document{transform:translate(-7px,-3px) rotate(-16deg)}
.playground-teaser:hover .teaser-translation{transform:translate(5px,-6px) rotate(13deg)}
.playground-teaser:hover .teaser-api{transform:translate(7px,4px) rotate(12deg)}
@media(max-width:600px){.teaser-toys.teaser-originals{width:190px;height:135px}}
@media(prefers-reduced-motion:reduce){.teaser-artwork{transition:none}.playground-teaser:hover .teaser-document{transform:rotate(-12deg)}.playground-teaser:hover .teaser-translation{transform:rotate(9deg)}.playground-teaser:hover .teaser-api{transform:rotate(8deg)}}

.home-greeting .greeting-asterisk{display:inline-block;font-size:19px;line-height:1;color:#9aabd1;rotate:-12deg;margin-right:2px}
html[data-theme=dark] .home-greeting .greeting-asterisk{color:#b5c3e3}

/* Immediate labels for the compact navigation rail. */
.nav-tooltip{position:fixed;z-index:100;translate:0 -50%;padding:8px 12px;border-radius:9px;background:var(--ink);color:var(--paper);font:12px/1.4 -apple-system,BlinkMacSystemFont,sans-serif;white-space:nowrap;box-shadow:0 4px 14px #20263014;pointer-events:none}
.nav-tooltip[hidden]{display:none}

/* A short pitch, one click away from each case title. */
.case-heading-tools{display:flex;align-items:center;justify-content:space-between;gap:20px}
.case-heading-tools>.eyebrow{margin:0}
.quick-read-trigger{display:inline-flex;align-items:center;gap:7px;flex-shrink:0;padding:8px 11px;border:1px solid var(--line);border-radius:9px;background:var(--paper);color:var(--muted);font:11px/1.4 -apple-system,BlinkMacSystemFont,sans-serif;transition:color .2s,border-color .2s,transform .2s}
.quick-read-trigger svg{width:15px;height:15px}
.quick-read-trigger:hover{color:var(--ink);border-color:#a9b0bc;transform:translateY(-1px)}
.quick-read-dialog{position:fixed;inset:0;width:min(540px,calc(100vw - 40px));max-height:calc(100dvh - 48px);margin:auto;padding:30px;border:1px solid var(--line);border-radius:20px;background:var(--paper);color:var(--ink);box-shadow:0 24px 90px #18202a26;overflow:auto;text-align:left}
.quick-read-dialog::backdrop{background:#222b3b66;backdrop-filter:blur(5px)}
.quick-read-dialog[open]{animation:quick-read-in .25s var(--ease) both}
.quick-read-top{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-bottom:22px}
.quick-read-top>.eyebrow{margin:0;line-height:1.6}
.quick-read-close{display:grid;place-items:center;width:30px;height:30px;border:1px solid var(--line);border-radius:50%;font-size:20px;line-height:1;color:var(--muted);background:transparent}
.quick-read-close:hover{background:var(--line);color:var(--ink)}
.quick-read-dialog h2{font-size:28px;line-height:1.2;font-weight:500;letter-spacing:-.8px;margin:0 0 12px}
.quick-read-role{font-size:11px;line-height:1.7;color:var(--muted);margin:0 0 24px}
.quick-read-story p{font-size:15px;line-height:1.8;color:var(--muted);margin:0 0 18px;text-wrap:pretty}
.quick-read-story strong{font-weight:600;color:var(--ink)}
.quick-read-story p:last-child{font-size:13px;border-top:1px solid var(--line);padding-top:18px;margin-bottom:24px}
.quick-read-return{display:flex;align-items:center;justify-content:space-between;gap:30px;width:100%;padding:12px 15px;border:1px solid var(--line);border-radius:10px;background:transparent;color:var(--ink);font-size:12px}
.quick-read-return:hover{background:var(--line)}
.quick-read-trigger:focus-visible,.quick-read-dialog button:focus-visible{outline:2px solid #9aa9c5;outline-offset:4px}
@keyframes quick-read-in{from{opacity:0;transform:translateY(8px) scale(.985)}to{opacity:1;transform:translateY(0) scale(1)}}
@media(max-width:600px){.case-heading-tools{gap:12px;align-items:flex-start}.case-heading-tools>.eyebrow{max-width:60%;line-height:1.8}.quick-read-dialog{padding:23px}.quick-read-dialog h2{font-size:25px}.quick-read-story p{font-size:14px}}
@media(prefers-reduced-motion:reduce){.quick-read-dialog[open]{animation:none}.quick-read-trigger{transition:none}.quick-read-trigger:hover{transform:none}}

/* The custom pointer participates in the browser’s modal top layer. */
.circle-cursor[popover]{position:fixed;inset:auto;left:0;top:0;margin:0;padding:0;border:0;background:transparent;overflow:visible;width:0;height:0;pointer-events:none}
.circle-cursor[popover]::backdrop{background:transparent;pointer-events:none}

/* Stronger reading contrast while retaining a quiet secondary hierarchy. */
:root:not([data-theme=dark]){--muted:#626d7b}
html[data-theme=dark]{--muted:#b4bbc5}
html[data-theme] :is(.about-copy,.case-section>p,.experience-details>p:not(.experience-company),.education-details>p,.contact-note,.ai-work p:not(.eyebrow)){color:var(--muted)}
html[data-theme=light] :is(.eyebrow,.card-meta,.timeline-date,.back-link){color:#737d8b}
html[data-theme=dark] :is(.eyebrow,.card-meta,.timeline-date,.back-link){color:#a2aab6}
/* A restrained introduction to the teams Helena has designed with. */
.hero-companies{display:flex;align-items:center;flex-wrap:wrap;gap:12px 23px;margin-top:25px}
.hero-company{display:inline-flex;align-items:center;gap:7px;font-size:11px;font-weight:500;color:var(--muted);white-space:nowrap}
.hero-company img{width:24px;height:24px;object-fit:contain;border-radius:50%;background:#fff;border:1px solid #ffffffa0}
/* Role first, company second, then a concise account of the work. */
.cv-inline .experience-row{padding-bottom:28px;gap:18px;grid-template-columns:84px minmax(0,1fr) auto}
.cv-inline .experience-row:not(:has(.experience-images img)){grid-template-columns:84px minmax(0,1fr)}
.cv-inline .experience-images:not(:has(img)){display:none}
.cv-inline .experience-details{padding-left:22px}
.cv-inline .experience-details h3{font-size:20px;font-weight:600;line-height:1.35;letter-spacing:-.45px;color:var(--ink);margin-bottom:9px}
.cv-inline .experience-company{margin-bottom:12px}
.cv-inline .company-chip{font-size:12px;font-weight:500}
.cv-inline .experience-details>p:not(.experience-company){max-width:680px;font-size:14px;line-height:1.8;margin-top:0}
.cv-inline .timeline-date{font-size:10px;line-height:1.8;padding-top:4px}
.cv-inline .timeline-date>span+span{color:var(--muted)}
@media(max-width:650px){.hero-companies{gap:12px 17px}.hero-company{font-size:10px}.hero-company img{width:22px;height:22px}.cv-inline .experience-row,.cv-inline .experience-row:not(:has(.experience-images img)){grid-template-columns:72px minmax(0,1fr);gap:12px}.cv-inline .experience-details{padding-left:16px}.cv-inline .experience-details h3{font-size:18px}.cv-inline .experience-images{grid-column:2}}
.cv-inline .company-chip{color:var(--ink)}

/* Company marks are a quiet supporting detail. */
.hero-companies{gap:10px 19px;margin-top:22px}
.hero-company{gap:6px;font-size:10px;font-weight:400;color:var(--muted)}
.hero-company img{width:18px;height:18px;border:0;opacity:.8}
@media(max-width:650px){.hero-companies{gap:10px 15px}.hero-company{font-size:10px}.hero-company img{width:17px;height:17px}}

/* Small company cards, with enough structure to feel intentional. */
.hero-companies{gap:9px;margin-top:23px}
.hero-company{gap:8px;padding:8px 11px;background:#fff;border:1px solid #e6e8ec;border-radius:10px;box-shadow:0 1px 2px #20263004,0 3px 9px #20263003;font-size:11px;font-weight:500;color:#58616e;line-height:20px}
.hero-company img{width:20px;height:20px;opacity:1;border-radius:6px}
html[data-theme=dark] .hero-company{background:#26292e;border-color:#3a3f46;box-shadow:0 2px 7px #0001;color:#c8cdd5}
@media(max-width:650px){.hero-companies{gap:7px}.hero-company{padding:7px 9px;font-size:10px;gap:6px}.hero-company img{width:18px;height:18px}}

/* Logo cards echo the small tactile tiles in the reference. */
.hero-companies{gap:9px}
.hero-company{position:relative;display:grid;place-items:center;padding:0;width:42px;height:42px;border-radius:11px;transition:transform .25s var(--ease),box-shadow .25s var(--ease);outline-offset:4px}
.hero-company img{width:27px;height:27px;border-radius:7px}
.hero-company:nth-child(1){rotate:-5deg}.hero-company:nth-child(2){rotate:3deg}.hero-company:nth-child(3){rotate:-3deg}
.hero-company>span{position:absolute;top:calc(100% + 9px);left:50%;translate:-50% 0;padding:6px 9px;border-radius:7px;background:var(--ink);color:var(--paper);font-size:10px;line-height:1.4;white-space:nowrap;visibility:hidden;opacity:0;pointer-events:none;z-index:5}
.hero-company:hover,.hero-company:focus-visible{transform:translateY(-3px);box-shadow:0 5px 12px #2026300b;rotate:0deg}
.hero-company:hover>span,.hero-company:focus-visible>span{visibility:visible;opacity:1}
.hero-company:focus-visible{outline:2px solid #a2aec5}
@media(prefers-reduced-motion:reduce){.hero-company{transition:none}.hero-company:hover,.hero-company:focus-visible{transform:none}}

/* A compact stack that opens gently when explored. */
.hero-companies{gap:0;width:max-content;padding-right:8px}
.hero-company{width:34px;height:34px;border-radius:9px;margin-right:-7px;transition:margin-right .4s var(--ease),transform .4s var(--ease),rotate .4s var(--ease),box-shadow .3s var(--ease);box-shadow:0 1px 3px #2026300b}
.hero-company img{width:26px;height:26px;border-radius:6px}
.hero-company:nth-child(1){z-index:3;rotate:-8deg}
.hero-company:nth-child(2){z-index:2;rotate:4deg}
.hero-company:nth-child(3){z-index:1;rotate:9deg}
.hero-companies:hover .hero-company,.hero-companies:focus-within .hero-company{margin-right:7px;rotate:0deg}
.hero-company:hover,.hero-company:focus-visible{z-index:4;transform:translateY(-4px);box-shadow:0 5px 12px #20263012}
@media(prefers-reduced-motion:reduce){.hero-company{transition:none}.hero-company:hover,.hero-company:focus-visible{transform:none}}

/* Leave a little room for whoever is reading. */
.hero-next-company{display:inline-flex;align-items:center;gap:10px;max-width:0;opacity:0;overflow:hidden;white-space:nowrap;color:var(--muted);transition:max-width .4s var(--ease),opacity .25s,visibility .25s;outline-offset:4px}
.next-company-slot{display:grid;place-items:center;flex:0 0 32px;width:32px;height:32px;border:1px dashed #b3bac5;border-radius:9px;font-size:20px;font-weight:300;color:#8995a8}
.next-company-copy{font-size:11px;letter-spacing:-.1px;padding-right:3px}
.hero-companies:hover .hero-next-company,.hero-companies:focus-within .hero-next-company{max-width:160px;opacity:1;visibility:visible;overflow:visible}
.hero-next-company:hover{color:var(--ink)}
.hero-next-company:hover .next-company-slot{border-color:var(--ink);color:var(--ink)}
.hero-next-company:focus-visible{outline:2px solid #a2aec5;border-radius:9px}
@media(hover:none){.hero-next-company{max-width:160px;opacity:1;visibility:visible;margin-left:12px;overflow:visible}}
@media(prefers-reduced-motion:reduce){.hero-next-company{transition:none}}
.hero-companies{position:relative}
.hero-next-company{position:absolute;left:calc(100% + 5px);top:50%;translate:0 -50%;width:max-content;max-width:none;overflow:visible;opacity:0;pointer-events:none;transition:opacity .25s ease}
.hero-companies:hover .hero-next-company,.hero-companies:focus-within .hero-next-company{max-width:none;opacity:1;pointer-events:auto}
@media(hover:none){.hero-next-company{position:static;translate:none;opacity:1;pointer-events:auto}}

/* Match the invitation slot to the opened logo stack. */
.hero-next-company{left:calc(100% - 8px);gap:9px}
.next-company-slot{box-sizing:border-box;width:34px;height:34px;flex-basis:34px}
@media(hover:none){.hero-next-company{margin-left:7px}}

/* Keep the dashed card exactly the same outer size as the logo cards. */
.hero-next-company{height:34px;box-sizing:border-box;align-items:center}
.hero-next-company .next-company-slot{display:grid;place-items:center;box-sizing:border-box;min-width:34px;max-width:34px;width:34px;min-height:34px;max-height:34px;height:34px;flex:0 0 34px;padding:0;margin:0;border-radius:9px;line-height:1}
.hero-next-company:focus-visible{outline:none}
.hero-next-company:focus-visible .next-company-slot{outline:2px solid #a2aec5;outline-offset:3px}

/* Match the visible logo tile rather than its surrounding white padding. */
.hero-next-company .next-company-slot{min-width:26px;max-width:26px;width:26px;min-height:26px;max-height:26px;height:26px;flex-basis:26px;border-radius:7px;font-size:17px}

/* The future-company tile uses the same outer card as the existing marks. */
.next-company-wrapper{display:grid;place-items:center;box-sizing:border-box;flex:0 0 34px;width:34px;height:34px;border:1px solid #e6e8ec;border-radius:9px;background:#fff;box-shadow:0 1px 3px #2026300b}
.hero-next-company:focus-visible .next-company-slot{outline:none}
.hero-next-company:focus-visible .next-company-wrapper{outline:2px solid #a2aec5;outline-offset:3px}
html[data-theme=dark] .next-company-wrapper{background:#26292e;border-color:#3a3f46;box-shadow:0 2px 7px #0001}
.next-company-wrapper,html[data-theme=dark] .next-company-wrapper{background:transparent}

/* A tactile hello playground closes the portfolio. */
.main-wrap>.site-footer{display:block;margin:80px 6.7% 0;padding:0;border:0;color:var(--muted)}
.footer-playground{position:relative;padding:34px 34px 25px;border:1px solid var(--line);border-radius:24px;background:radial-gradient(ellipse at 45% 75%,#eeedf580,transparent 70%),#f7f8f7;overflow:hidden}
.footer-invitation{display:flex;justify-content:space-between;align-items:center;gap:30px;position:relative;z-index:2}
.footer-invitation .eyebrow{margin:0 0 15px;font-size:8px}
.footer-invitation h2{margin:0;font-size:clamp(28px,3.2vw,42px);line-height:1.16;font-weight:500;letter-spacing:-1.3px;color:var(--ink)}
.footer-contact{display:inline-flex;align-items:center;justify-content:space-between;gap:34px;padding:16px 22px;min-height:54px;border-radius:14px;background:var(--ink);color:var(--paper);font-size:15px;white-space:nowrap;transition:transform .3s var(--ease),box-shadow .3s var(--ease)}
.footer-contact>span{font-size:23px;transition:transform .3s var(--ease)}
.footer-contact:hover{transform:translateY(-3px);box-shadow:0 8px 20px #2026301a}
.footer-contact:hover>span{transform:translate(3px,-3px)}
.footer-letter-stage{position:relative;height:245px;margin:5px -18px 0;isolation:isolate}
.footer-letter{position:absolute;display:block;padding:0;border:0;background:transparent;touch-action:none;user-select:none;-webkit-user-select:none;z-index:2;will-change:transform;outline-offset:5px}
.footer-letter-face{display:grid;place-items:center;width:100%;height:100%;border-radius:18%;font-family:Georgia,'Times New Roman',serif;font-style:italic;font-weight:500;line-height:1;letter-spacing:-.07em;padding-right:.06em;color:#424951;background:var(--letter-color);border:1px solid #ffffffa6;box-shadow:inset 0 2px 2px #ffffffa6,inset 0 -3px 6px #44444408,0 9px 15px #27334812;transition:transform .3s var(--ease),box-shadow .3s var(--ease)}
.footer-letter-0{--letter-color:#d9e3d4}.footer-letter-1{--letter-color:#e0d8ed}.footer-letter-2{--letter-color:#f1e4c9}.footer-letter-3{--letter-color:#ead7cd}.footer-letter-4{--letter-color:#d4def1}
.footer-letter:hover .footer-letter-face{transform:translateY(-6px) scale(1.025);box-shadow:inset 0 2px 2px #ffffffa6,0 16px 22px #27334818}
.footer-letter.is-dragging{z-index:5}
.footer-letter.is-dragging .footer-letter-face{transform:scale(1.06);box-shadow:inset 0 2px 2px #ffffffa6,0 22px 28px #27334825}
.footer-letter:focus-visible{outline:2px solid #9aa8c0;border-radius:18%}
.footer-doodle{position:absolute;pointer-events:none;user-select:none;color:#a8b5cd}
.footer-doodle-one{left:8%;top:17%;font-size:47px;rotate:-12deg}
.footer-doodle-two{right:5%;bottom:7%;font-size:65px;color:#b8bea4;rotate:12deg}
.footer-play-note{display:flex;align-items:center;justify-content:space-between;gap:20px;border-top:1px solid var(--line);padding-top:16px}
.footer-play-status{font-size:11px;line-height:1.6;color:var(--muted)}
.footer-reset{display:inline-flex;align-items:center;gap:9px;padding:7px 9px;border-radius:8px;color:var(--muted);font-size:11px;white-space:nowrap}
.footer-reset:hover{background:var(--line);color:var(--ink)}
.footer-reset>span{font-size:17px}
.footer-email{display:inline-block;margin-top:13px;font-size:11px;color:var(--muted);text-underline-offset:4px}
.footer-email:hover{text-decoration:underline;color:var(--ink)}
.footer-meta{display:flex;justify-content:space-between;align-items:center;gap:20px;padding:24px 0;font-size:9px;line-height:1.7;color:var(--muted)}
.footer-meta>div{display:flex;align-items:center;gap:20px}
.footer-meta a,.footer-top{font-size:10px;color:var(--muted);padding:4px 0}
.footer-meta a:hover,.footer-top:hover{color:var(--ink)}
.site-footer a:focus-visible,.footer-reset:focus-visible,.footer-top:focus-visible{outline:2px solid #9aa8c0;outline-offset:4px}
html[data-theme=dark] .footer-playground{background:radial-gradient(ellipse at 45% 75%,#35344160,transparent 70%),#222529}
html[data-theme=dark] .footer-letter-face{color:#323a42;box-shadow:inset 0 2px 2px #ffffff66,0 10px 20px #0003}
html[data-theme=dark] .footer-contact{background:#dedfd9;color:#24272c}
@media(max-width:700px){.main-wrap>.site-footer{margin:60px 6% 0}.footer-playground{padding:25px 22px 20px;border-radius:18px}.footer-invitation{gap:18px}.footer-invitation h2{font-size:30px}.footer-contact{gap:20px;padding:13px 16px;font-size:13px;min-height:48px}.footer-letter-stage{height:200px}.footer-doodle-one{left:3%;top:15%;font-size:30px}.footer-doodle-two{right:0;font-size:45px}.footer-meta{flex-wrap:wrap}.footer-meta>span:nth-child(2){display:none}}
@media(max-width:450px){.footer-invitation{align-items:flex-start;flex-direction:column;gap:20px}.footer-invitation h2{font-size:32px}.footer-contact{align-self:stretch}.footer-letter-stage{height:175px;margin-top:15px}.footer-doodle-one{top:0}.footer-doodle-two{bottom:0}.footer-play-status{font-size:10px;max-width:200px}.footer-meta{gap:8px}.footer-meta>div{gap:15px}}
@media(prefers-reduced-motion:reduce){.footer-letter-face,.footer-contact,.footer-contact>span{transition:none}.footer-letter:hover .footer-letter-face,.footer-contact:hover,.footer-contact:hover>span{transform:none}}

/* A little less orderly: a toy with momentum and a surprise. */
.footer-letter-stage{height:310px;margin-top:12px}
.footer-letter-face{font-family:-apple-system,BlinkMacSystemFont,sans-serif;font-style:normal;font-weight:600;letter-spacing:-.08em;color:#343f4a}
.footer-letter-0{--letter-color:#c6d9ba}.footer-letter-1{--letter-color:#cdbce7}.footer-letter-2{--letter-color:#eddaa5}.footer-letter-3{--letter-color:#e6bba7}.footer-letter-4{--letter-color:#b4c9ec}
.footer-letter-1 .footer-letter-face{border-radius:38% 38% 18% 18%}
.footer-letter-4 .footer-letter-face{border-radius:45%}
.footer-play-controls{display:flex;align-items:center;gap:9px}
.footer-surprise{display:inline-flex;align-items:center;gap:8px;border:1px solid var(--line);border-radius:9px;padding:9px 12px;font-size:11px;color:var(--ink);background:var(--paper);white-space:nowrap}
.footer-surprise:hover{background:var(--line)}
.footer-surprise span{font-size:16px;transition:rotate .35s var(--ease)}
.footer-surprise:hover span{rotate:90deg}
@media(max-width:700px){.footer-letter-stage{height:250px}.footer-play-note{align-items:flex-start;flex-wrap:wrap;gap:10px}.footer-play-controls{margin-left:auto}}
@media(max-width:450px){.footer-letter-stage{height:235px}}
@media(prefers-reduced-motion:reduce){.footer-surprise span{transition:none}.footer-surprise:hover span{rotate:0deg}}

/* The pointer describes the next action in the letter playground. */
.circle-cursor.is-footer-play::before{width:76px;height:32px;border-radius:10px;background:var(--paper);border-color:var(--cursor-accent)}
.circle-cursor.is-footer-play span{font:11px/1 -apple-system,BlinkMacSystemFont,sans-serif;white-space:nowrap;opacity:1;transform:translate(-50%,-50%)}

/* An open footer canvas, framed only by dividers. */
.site-footer .footer-playground,html[data-theme=dark] .site-footer .footer-playground{padding:34px 0 25px;border:0;border-top:1px solid var(--line);border-radius:0;background:none;box-shadow:none}
.site-footer .footer-meta{border-top:1px solid var(--line)}
.footer-letter-stage{margin-left:0;margin-right:0}
/* A small, polished invitation follows the pointer. */
.circle-cursor.is-footer-play::before{width:116px;height:38px;border-radius:999px;background:#343941;border:1px solid #ffffff36;box-shadow:0 4px 15px #20263026,inset 0 1px 0 #ffffff14}
.circle-cursor.is-footer-play span{display:inline-flex;align-items:center;gap:7px;color:#fafaf5;font-size:11px;font-weight:500;letter-spacing:.05px}
.circle-cursor.is-footer-play span::before{content:'';width:1em;height:1em;background:currentColor;clip-path:polygon(50% 0,60% 28%,85% 15%,72% 40%,100% 50%,72% 60%,85% 85%,60% 72%,50% 100%,40% 72%,15% 85%,28% 60%,0 50%,28% 40%,15% 15%,40% 28%);display:inline-block;font-size:16px;color:#d5dcb7;rotate:-12deg}
html[data-theme=dark] .circle-cursor.is-footer-play::before{background:#e6e8df;border-color:#ffffff80;box-shadow:0 4px 18px #0003}
html[data-theme=dark] .circle-cursor.is-footer-play span{color:#30363b}
html[data-theme=dark] .circle-cursor.is-footer-play span::before{color:#697657}
@media(max-width:700px){.site-footer .footer-playground{padding-top:28px}}

/* One quiet utility row beneath the artwork. */
.site-footer .footer-playground{padding-bottom:12px}
.site-footer .footer-meta{padding:18px 0;gap:16px}
.site-footer .footer-meta>div{gap:20px;flex-wrap:wrap}
.footer-letter-stage>.footer-surprise{position:absolute;right:0;top:10px;z-index:6;padding:7px 9px;border:0;background:transparent;color:var(--muted);font-size:10px}
.footer-letter-stage>.footer-surprise:hover{background:var(--line);color:var(--ink)}
html[data-theme] .main-wrap>.site-footer a.footer-contact{height:44px;min-height:44px;padding:10px 18px;gap:25px;border-radius:11px;font-size:14px;line-height:1.2;background:var(--ink);color:var(--paper)}
html[data-theme] .main-wrap>.site-footer a.footer-contact:hover,html[data-theme] .main-wrap>.site-footer a.footer-contact:focus-visible{background:var(--ink);color:var(--paper)}
.site-footer .footer-contact>span{font-size:20px}
@media(max-width:650px){.site-footer .footer-meta{align-items:flex-start}.site-footer .footer-meta>div{gap:8px 16px}}

.footer-header-actions{display:flex;align-items:center;gap:16px;flex-shrink:0}
.footer-header-actions .footer-surprise{padding:9px 11px;border:0;background:transparent;color:var(--muted);font-size:11px}
.footer-header-actions .footer-surprise:hover{background:var(--line);color:var(--ink)}
@media(max-width:450px){.footer-header-actions{width:100%;justify-content:space-between;gap:12px}.footer-header-actions .footer-contact{align-self:auto}}

/* Shared action system: one geometry and interaction language, three emphases. */
:root{--control-height:36px;--control-small:32px;--control-primary:40px;--control-radius:10px;--control-gap:8px;--control-font:12px;--control-focus:#899bbd;--control-surface:#fff;--control-hover:#f0f2f4;--control-border:#dfe3e8;--control-shadow:0 1px 2px #20263005}
html[data-theme=dark]{--control-surface:#282c31;--control-hover:#343a41;--control-border:#444b55;--control-focus:#acbce1;--control-shadow:0 1px 3px #0001}
html[data-theme] .main-wrap :is(a,button).ui-button{box-sizing:border-box;display:inline-flex;align-items:center;justify-content:center;gap:var(--control-gap);height:var(--control-height);min-height:var(--control-height);padding:0 13px;border:1px solid transparent;border-radius:var(--control-radius);font:500 var(--control-font)/1.2 -apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;letter-spacing:0;color:var(--ink);white-space:nowrap;text-decoration:none;box-shadow:none;transition:background .2s ease,border-color .2s ease,color .2s ease,box-shadow .2s ease,transform .2s var(--ease);flex-shrink:0}
html[data-theme] .main-wrap :is(a,button).ui-button--primary{height:var(--control-primary);min-height:var(--control-primary);padding:0 18px;background:var(--ink);color:var(--paper);border-color:var(--ink);box-shadow:var(--control-shadow)}
html[data-theme] .main-wrap :is(a,button).ui-button--secondary{background:var(--control-surface);border-color:var(--control-border);color:var(--ink);box-shadow:var(--control-shadow)}
html[data-theme] .main-wrap :is(a,button).ui-button--tertiary{background:transparent;border-color:transparent;color:var(--muted);box-shadow:none}
html[data-theme] .main-wrap :is(a,button).ui-button--small{height:var(--control-small);min-height:var(--control-small);padding:0 10px;font-size:11px}
html[data-theme] .main-wrap :is(a,button).ui-button--icon{width:var(--control-height);padding:0;gap:0}
html[data-theme] .main-wrap :is(a,button).ui-button--icon.ui-button--small{width:var(--control-small);font-size:20px;font-weight:400}
html[data-theme] .main-wrap .ui-button>svg{width:16px;height:16px;flex-shrink:0;stroke-width:1.6}
html[data-theme] .main-wrap .ui-button>[aria-hidden=true]{font-size:16px;line-height:1;color:inherit;transition:transform .2s var(--ease)}
html[data-theme] .main-wrap .ui-button:hover{transform:translateY(-1px)}
html[data-theme] .main-wrap .ui-button--primary:hover{background:var(--ink);color:var(--paper);border-color:var(--ink);box-shadow:0 4px 10px #20263013}
html[data-theme] .main-wrap .ui-button--secondary:hover{background:var(--control-hover);color:var(--ink);border-color:#aeb7c5;box-shadow:var(--control-shadow)}
html[data-theme] .main-wrap .ui-button--tertiary:hover{background:var(--control-hover);color:var(--ink);border-color:transparent;box-shadow:none}
html[data-theme] .main-wrap .ui-button:focus-visible{outline:2px solid var(--control-focus);outline-offset:3px}
html[data-theme] .main-wrap .ui-button:active{transform:translateY(0) scale(.98)}
html[data-theme] .main-wrap .ui-button:disabled{opacity:.45;transform:none;box-shadow:none}
html[data-theme] .main-wrap .ui-button--segment{background:transparent;color:var(--muted);border-color:transparent;box-shadow:none}
html[data-theme] .main-wrap .ui-button--segment[aria-pressed=true]{background:var(--control-surface);border-color:var(--control-border);color:var(--ink);box-shadow:var(--control-shadow)}
html[data-theme] .main-wrap .ui-button--segment:hover{background:var(--control-hover);color:var(--ink);transform:none}
.comparison-controls{gap:5px}
.quick-read-return.ui-button{justify-content:space-between}
.gallery-motion.ui-button[aria-pressed=true]{border-color:var(--control-focus)}
.copy-email.ui-button.is-copied{color:var(--ink);background:var(--control-hover)}
.footer-header-actions{gap:10px}
.sidebar-toggle,.theme-toggle,.sidebar nav>a{border-radius:var(--control-radius)}
.sidebar :is(button,a):focus-visible{outline:2px solid var(--control-focus);outline-offset:3px}
.agent-invite{border-radius:var(--control-radius)}
@media(prefers-reduced-motion:reduce){html[data-theme] .main-wrap .ui-button,html[data-theme] .main-wrap .ui-button>[aria-hidden=true]{transition:none}html[data-theme] .main-wrap .ui-button:hover,html[data-theme] .main-wrap .ui-button:active{transform:none}}
/* Primary actions also override the older footer-specific measurements. */
html[data-theme] .main-wrap :is(a,button).ui-button.ui-button--primary{height:var(--control-primary);min-height:var(--control-primary);padding:0 18px;border-radius:var(--control-radius);font-size:var(--control-font);line-height:1.2;gap:var(--control-gap);background:var(--ink);color:var(--paper);border-color:var(--ink)}
html[data-theme] .main-wrap :is(a,button).ui-button.ui-button--primary:hover,html[data-theme] .main-wrap :is(a,button).ui-button.ui-button--primary:focus-visible{background:var(--ink);color:var(--paper);border-color:var(--ink)}

/* Let the previous section lead naturally into the footer. */
body:is(.home-page,.about-page) #main{padding-bottom:16px;min-height:0}
body:is(.home-page,.about-page) .main-wrap>.site-footer{margin-top:28px}
.about-page .cv-education>.education-row:last-child{padding-bottom:0}
.contact-page .site-footer .footer-playground{display:none}
.contact-page .main-wrap>.site-footer{margin-top:0}
@media(max-width:650px){body:is(.home-page,.about-page) .main-wrap>.site-footer{margin-top:22px}}
.about-page .cv-inline{margin-bottom:0;padding-bottom:0}

/* Gallery invitation: the same typography, with a little room to play. */
.home-page .playground-teaser.teaser-artboard{position:relative;display:flex;align-items:center;justify-content:space-between;min-height:310px;margin-top:88px;margin-bottom:64px;padding:44px;gap:24px;border-radius:20px;border:1px solid var(--line);background:var(--paper);isolation:isolate;overflow:hidden;transition:border-color .3s,background .3s}
.home-page .teaser-artboard .teaser-copy{position:relative;z-index:2;flex:0 1 340px}
.home-page .teaser-artboard .teaser-copy h2{font-family:inherit;font-size:32px;line-height:1.15;font-weight:550;letter-spacing:-1.1px;color:var(--ink);margin:0 0 15px}
.teaser-artboard .teaser-copy h2>span{color:#929bb4}
.home-page .teaser-artboard .teaser-copy p{font-size:15px;line-height:1.65;color:var(--muted);max-width:300px;margin:0 0 24px}
.home-page .teaser-artboard .teaser-link{display:inline-flex;align-items:center;gap:16px;height:36px;padding:0 12px;border:1px solid var(--control-border);border-radius:var(--control-radius);background:var(--control-surface);font-size:12px;font-weight:500;color:var(--ink);transition:background .25s}
.home-page .teaser-artboard .teaser-link>span{font-size:17px;transition:transform .3s var(--ease)}
.home-page .teaser-artboard .teaser-originals{position:relative;flex:0 1 390px;width:390px;height:230px;transform:translate(var(--art-x,0px),var(--art-y,0px));transition:transform .45s var(--ease)}
.teaser-artboard .teaser-originals::before{content:"";position:absolute;inset:-35px -50px;background-image:radial-gradient(var(--line) 1px,transparent 1px);background-size:17px 17px;mask-image:radial-gradient(ellipse,#000 25%,transparent 70%)}
.teaser-artboard .teaser-document{width:49%;left:5%;top:4%;transform:rotate(-12deg);z-index:2}
.teaser-artboard .teaser-translation{width:48%;right:-1%;top:0;transform:rotate(9deg);z-index:3}
.teaser-artboard .teaser-api{width:44%;right:7%;bottom:0;transform:rotate(7deg);z-index:4}
.teaser-art-spark{position:absolute;left:1%;bottom:7%;font-size:52px;line-height:1;color:#b4abc8;rotate:-15deg;transition:rotate .65s var(--ease)}
.teaser-play-note{position:absolute;left:17%;bottom:-16px;display:flex;align-items:center;gap:6px;font-size:10px;color:var(--muted);transform:rotate(-4deg);transition:transform .5s var(--ease)}
.teaser-play-note svg{width:20px;height:20px;color:#909bb8}
.teaser-artboard:is(:hover,:focus-visible){border-color:#aab1c0}
.teaser-artboard:is(:hover,:focus-visible) .teaser-document{transform:translate(-16px,-12px) rotate(-19deg)}
.teaser-artboard:is(:hover,:focus-visible) .teaser-translation{transform:translate(10px,-15px) rotate(1deg)}
.teaser-artboard:is(:hover,:focus-visible) .teaser-api{transform:translate(17px,8px) rotate(14deg)}
.teaser-artboard:is(:hover,:focus-visible) .teaser-art-spark{rotate:75deg}
.teaser-artboard:is(:hover,:focus-visible) .teaser-play-note{transform:translateX(8px) rotate(0)}
.teaser-artboard:is(:hover,:focus-visible) .teaser-link{background:var(--control-hover)}
.teaser-artboard:is(:hover,:focus-visible) .teaser-link>span{transform:translateX(2px)}
@media(max-width:850px){.home-page .playground-teaser.teaser-artboard{padding:30px;gap:18px}.home-page .teaser-artboard .teaser-copy{flex-basis:280px}.home-page .teaser-artboard .teaser-originals{flex-basis:300px;height:205px}.home-page .teaser-artboard .teaser-copy h2{font-size:28px}}
@media(max-width:600px){.home-page .playground-teaser.teaser-artboard{display:flex;flex-direction:column;align-items:flex-start;margin-top:64px;margin-bottom:44px;padding:28px;gap:25px}.home-page .teaser-artboard .teaser-copy{flex:auto}.home-page .teaser-artboard .teaser-originals{flex:auto;width:min(310px,100%);height:210px;align-self:center;margin-bottom:15px}.home-page .teaser-artboard .teaser-copy p{max-width:340px}}
@media(prefers-reduced-motion:reduce){.teaser-artboard,.teaser-artboard *{transition:none!important}.home-page .teaser-artboard .teaser-originals{transform:none}.teaser-artboard:is(:hover,:focus-visible) .teaser-document{transform:rotate(-12deg)}.teaser-artboard:is(:hover,:focus-visible) .teaser-translation{transform:rotate(9deg)}.teaser-artboard:is(:hover,:focus-visible) .teaser-api{transform:rotate(7deg)}.teaser-artboard:is(:hover,:focus-visible) .teaser-art-spark{rotate:-15deg}}

/* A quieter introduction and a useful action beside the CV heading. */
.about-page .ai-work-intro{display:block}
.about-page .ai-work-intro>header{max-width:760px}
.cv-section-heading{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:35px}
.cv-section-heading h2{margin:0}
.cv-download-format{font-size:10px;color:var(--muted)}
@media(max-width:480px){.cv-section-heading{gap:12px}.cv-section-heading .ui-button{font-size:11px;padding:0 10px}}

.cv-downloads{display:flex;align-items:center;gap:7px}.cv-downloads>span{font-size:11px;color:var(--muted);margin-right:5px}@media(max-width:480px){.cv-downloads>span{display:none}}

/* Distribute project facts across the full case-study column. */
.case-article .editorial-meta{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(0,1fr) minmax(0,1fr);gap:24px;width:100%}
.case-article .editorial-meta>div:last-child{justify-self:end}
@media(max-width:600px){.case-article .editorial-meta{grid-template-columns:minmax(0,1.4fr) minmax(0,1fr) minmax(0,.8fr);gap:14px}.case-article .editorial-meta strong{overflow-wrap:anywhere}}

/* Email actions share the same quiet, unboxed icon treatment. */
.contact-page .email-contact .contact-action-icon,.contact-page .email-contact .copy-email svg{width:22px;height:22px;flex-shrink:0;stroke-width:1.5}
.contact-page .email-contact .copy-email{display:grid;place-items:center;width:36px;height:36px;padding:7px;border:0;border-radius:8px;background:transparent;box-shadow:none;color:inherit}
.contact-page .email-contact .copy-email:hover,.contact-page .email-contact .copy-email.is-copied{background:transparent;color:var(--ink);transform:none;box-shadow:none}
.contact-page .email-contact .copy-email:focus-visible{outline:2px solid var(--control-focus);outline-offset:3px}

/* Distinguish navigation, actions, and passive reveals. */
@media(hover:hover) and (pointer:fine){
 html.circle-cursor-active,html.circle-cursor-active :is(a,button,[role=button],summary),html.circle-cursor-active :is(a,button,[role=button],summary) *{cursor:none!important}
 .circle-cursor.is-hover-only::before{width:25px;height:25px;background:var(--cursor-accent);opacity:.18;border-color:transparent;box-shadow:none}
 .circle-cursor.is-hover-only span{opacity:0}
 .circle-cursor.is-action-label::before{width:128px;height:38px;border-radius:12px;background:var(--ink);border-color:var(--ink);box-shadow:0 4px 14px #20263016}
 .circle-cursor.is-action-label span{font-size:11px;font-weight:500;letter-spacing:.1px;white-space:nowrap;color:var(--paper)}
 .circle-cursor.is-action-label.is-pressed::before{width:120px;height:35px}
 .circle-cursor.is-action-label.is-pressed span{transform:translate(-50%,-50%) scale(.97)}
}


/* Keep interaction cues light; only project previews need a reading label. */
.circle-cursor.is-link:not(.is-action-label):not(.is-footer-play)::before{width:25px;height:25px;background:var(--cursor-accent);opacity:.15;border-color:transparent;box-shadow:none}
.circle-cursor.is-link:not(.is-action-label):not(.is-footer-play) span{font-size:15px}
.circle-cursor.is-action-label:not(.is-footer-play)::before{height:32px;width:112px;border-radius:999px;background:var(--paper);border:1px solid var(--line);box-shadow:0 2px 8px #2026300a}
.circle-cursor.is-action-label:not(.is-footer-play) span{font-size:10px;color:var(--ink);font-weight:400}

/* Project invitations borrow the thumbnail palette, with a quiet enamel finish. */
.circle-cursor.is-project.is-action-label:not(.is-footer-play)::before{
 width:140px;height:36px;border-radius:999px;
 background:linear-gradient(160deg,color-mix(in srgb,var(--cursor-project-tint),var(--paper) 38%),var(--cursor-project-tint));
 border:1px solid var(--cursor-project-border);
 box-shadow:inset 0 1px 0 #ffffff55,0 3px 9px #20263012,0 10px 25px #20263006;
}
.circle-cursor.is-project.is-action-label:not(.is-footer-play) span{
 display:flex;align-items:center;gap:10px;
 font-size:10px;font-weight:500;letter-spacing:.08px;color:var(--cursor-project-ink);
}
.circle-cursor.is-project.is-action-label span::after{content:'→';font-size:15px;font-weight:400;line-height:1;opacity:.8}
.circle-cursor.is-project.is-action-label.is-pressed:not(.is-footer-play)::before{width:134px;height:34px}
html[data-theme=dark] .circle-cursor.is-project.is-action-label:not(.is-footer-play)::before{box-shadow:inset 0 1px 0 #ffffff0d,0 5px 18px #0003}

/* Small invitations for the gallery and monogram, in the same cursor family. */
.circle-cursor:is(.is-gallery-action,.is-spin-action).is-action-label:not(.is-footer-play)::before{
 height:36px;border-radius:999px;
 border:1px solid var(--invitation-border);
 background:linear-gradient(155deg,color-mix(in srgb,var(--invitation-tint),var(--paper) 35%),var(--invitation-tint));
 box-shadow:inset 0 1px 0 #ffffff66,0 3px 9px #20263010,0 10px 25px #20263005;
}
.circle-cursor.is-gallery-action{--invitation-tint:#eee8f5;--invitation-border:#ddd2e8;--invitation-ink:#76618a}
.circle-cursor.is-spin-action{--invitation-tint:#f4e8de;--invitation-border:#e7d5c7;--invitation-ink:#8c674e}
.circle-cursor.is-gallery-action.is-action-label:not(.is-footer-play)::before{width:142px}
.circle-cursor.is-spin-action.is-action-label:not(.is-footer-play)::before{width:90px}
.circle-cursor:is(.is-gallery-action,.is-spin-action).is-action-label:not(.is-footer-play) span{display:flex;align-items:center;gap:9px;color:var(--invitation-ink);font-size:10px;font-weight:500;letter-spacing:.08px}
.circle-cursor.is-gallery-action span::before{content:'';width:1em;height:1em;background:currentColor;clip-path:polygon(50% 0,60% 28%,85% 15%,72% 40%,100% 50%,72% 60%,85% 85%,60% 72%,50% 100%,40% 72%,15% 85%,28% 60%,0 50%,28% 40%,15% 15%,40% 28%);font-size:16px;line-height:1;opacity:.8}
.circle-cursor.is-spin-action span::before{content:'↻';font-size:18px;line-height:1;opacity:.85}
html[data-theme=dark] .circle-cursor.is-gallery-action{--invitation-tint:#3b3248;--invitation-border:#574764;--invitation-ink:#c4afd9}
html[data-theme=dark] .circle-cursor.is-spin-action{--invitation-tint:#45382e;--invitation-border:#65503f;--invitation-ink:#d8b99f}
html[data-theme=dark] .circle-cursor:is(.is-gallery-action,.is-spin-action).is-action-label:not(.is-footer-play)::before{box-shadow:inset 0 1px 0 #ffffff0d,0 5px 18px #0003}

/* Fit project cursor pills to their shorter labels. */
.circle-cursor.is-project.is-action-label:not(.is-footer-play)::before{width:92px}
.circle-cursor.is-project.is-action-label.is-coming-soon:not(.is-footer-play)::before{width:122px}
.circle-cursor.is-project.is-action-label.is-pressed:not(.is-footer-play)::before{width:88px}
.circle-cursor.is-project.is-action-label.is-coming-soon.is-pressed:not(.is-footer-play)::before{width:118px}
.circle-cursor.is-project.is-action-label:not(.is-footer-play) span{gap:8px}

/* An hourglass marks the project still taking shape. */
.circle-cursor.is-menu-soon span::after,
.circle-cursor.is-project.is-action-label.is-coming-soon span::after{
 content:'';display:block;width:14px;height:14px;flex-shrink:0;background:currentColor;opacity:.8;
 mask:center/contain no-repeat url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20' fill='none' stroke='black' stroke-width='1.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 2h10M5 18h10M6 2v3c0 2 2 3 4 5-2 2-4 3-4 5v3M14 2v3c0 2-2 3-4 5 2 2 4 3 4 5v3M8 15h4'/%3E%3C/svg%3E");
}

.circle-cursor.is-gallery-hover::before{width:25px;height:25px;background:var(--cursor-accent);opacity:.18;border-color:transparent;box-shadow:none}
.circle-cursor.is-gallery-hover span{opacity:0}

/* Toolkit labels appear on contact, independently of dock magnification. */
.dock-tooltip{transition:transform .1s var(--ease);transition-delay:0s}
.dock-item:is(:hover,:focus-visible) .dock-tooltip{opacity:1;transform:translate(-50%,0)}

/* Keep the work invitation beside the section introduction. */
.about-page .ai-work-intro{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:32px}
.about-page .ai-work-intro .ai-work-link{margin:0;justify-self:end}
@media(max-width:700px){.about-page .ai-work-intro{grid-template-columns:1fr;gap:16px}.about-page .ai-work-intro .ai-work-link{justify-self:start}}

.about-page .ai-work-intro{align-items:start}
.about-page .ai-work-intro .ai-work-link{align-self:start;margin-top:32px}
@media(max-width:700px){.about-page .ai-work-intro .ai-work-link{margin-top:0}}

.cv-download-menu{position:relative;flex-shrink:0}
.cv-download-menu>summary{display:flex;align-items:center;gap:10px;list-style:none;height:var(--control-height);padding:0 13px;border:1px solid var(--control-border);border-radius:var(--control-radius);background:var(--control-surface);color:var(--ink);font-size:var(--control-font);font-weight:500;box-shadow:var(--control-shadow);cursor:pointer}
.cv-download-menu>summary::-webkit-details-marker{display:none}
.cv-download-menu>summary svg{width:16px;height:16px;transition:transform .2s var(--ease)}
.cv-download-menu[open]>summary svg{transform:rotate(180deg)}
.cv-download-menu>summary:hover{background:var(--control-hover)}
.cv-download-menu>summary:focus-visible,.cv-download-options>a:focus-visible{outline:2px solid var(--control-focus);outline-offset:3px}
.cv-download-options{position:absolute;z-index:20;right:0;top:calc(100% + 7px);min-width:145px;padding:5px;border:1px solid var(--control-border);border-radius:12px;background:var(--control-surface);box-shadow:0 8px 24px #20263016}
.cv-download-options>a{display:flex;align-items:center;justify-content:space-between;padding:9px 10px;border-radius:7px;font-size:12px;color:var(--ink)}
.cv-download-options>a:hover{background:var(--control-hover)}

#projects{scroll-margin-top:28px}#projects:focus{outline:none}

/* A quiet, responsive halftone field adds atmosphere without another object. */
.home-page .hero{isolation:isolate}
.hero-dot-field{position:absolute;right:-12px;top:12px;width:300px;height:340px;pointer-events:none;z-index:-1;mask-image:radial-gradient(ellipse at 54% 48%,#000 15%,#000b3 45%,transparent 73%);rotate:-8deg}
.hero-dot-field i{position:absolute;display:block;width:var(--dot-size);height:var(--dot-size);border-radius:50%;background:#9eafc9;transition:transform .65s cubic-bezier(.22,1,.36,1)}
.home-page .hero-copy{position:relative;z-index:1}
html[data-theme=dark] .hero-dot-field i{background:#7d94b7}
@media(max-width:1000px){.hero-dot-field{right:-15px;width:240px;height:310px;opacity:.7}}
@media(max-width:600px){.hero-dot-field{right:-25px;top:5px;width:190px;height:260px;opacity:.35}.home-page .hero-copy .home-greeting{padding-right:0;max-width:none}}
@media(prefers-reduced-motion:reduce){.hero-dot-field i{transition:none}}

/* Let the dot field drift in from the upper-right edge. */
.hero-dot-field{right:-80px;top:-100px;width:440px;height:450px;mask-image:radial-gradient(ellipse at 74% 25%,#000 12%,#000b3 43%,transparent 76%);rotate:-8deg}
@media(max-width:1000px){.hero-dot-field{right:-65px;top:-80px;width:350px;height:390px;opacity:.7}}
@media(max-width:600px){.hero-dot-field{right:-60px;top:-65px;width:260px;height:310px;opacity:.35}}

.idea-hover{width:max-content;max-width:none;white-space:nowrap;text-align:center}
@media(max-width:400px){.idea-hover{font-size:10px;padding-inline:9px}}

/* A quiet contact action at the top-right of the homepage. */
.home-top-actions{display:flex;justify-content:flex-end;margin-top:-36px;margin-bottom:24px;position:relative;z-index:2}
@media(max-width:800px){.home-top-actions{margin-top:-16px;margin-bottom:24px}}
@media(max-width:600px){.home-top-actions{margin-top:-8px;margin-bottom:28px}}

/* Greeting and contact share the opening line; work gets its own breathing room. */
.home-hero-topline{display:flex;align-items:center;justify-content:space-between;gap:24px;margin-bottom:24px}
.home-page .hero-copy .home-hero-topline .home-greeting{margin:0;padding:0;min-height:0;max-width:none}
.home-hero-topline .home-top-actions{margin:0;flex-shrink:0}
.home-page .hero{padding-bottom:88px}
@media(max-width:600px){.home-hero-topline{gap:12px;margin-bottom:26px}.home-page .hero{padding-bottom:64px}.home-hero-topline .home-top-actions .ui-button{height:32px;min-height:32px;padding-inline:10px;font-size:11px}}

/* Center the email text and both actions on one axis. */
.contact-page .contact-links .email-contact{align-items:center}
.contact-page .contact-links .email-contact>a{display:flex;align-items:center;line-height:1.4}
.contact-page .email-contact .contact-action-icon,.contact-page .email-contact .copy-email svg{display:block;align-self:center}
.contact-page .email-contact .copy-email{align-self:center}

.card-arrow>svg{display:block;width:15px;height:15px}

.home-page .project-card>.card-title-row{margin-top:28px}
@media(max-width:600px){.home-page .project-card>.card-title-row{margin-top:24px}}

.home-page .project-card>.card-meta{margin:20px 0 9px}
.home-page .project-card>.card-meta+.card-title-row{margin-top:0}

/* Nest: a brand-led cover using Helena's original mark. */
.project-art:has(.nest-scene){background:radial-gradient(ellipse at 48% 24%,#f5f3e4cc,transparent 65%),linear-gradient(135deg,#e0e4cd,#c7d0b2);overflow:hidden}
.nest-scene{position:relative;width:100%;height:100%;max-width:none;isolation:isolate}
.nest-scene::before{content:'';position:absolute;left:18%;right:18%;bottom:15%;height:17%;background:radial-gradient(ellipse,#59634526,transparent 68%);filter:blur(8px);transform:rotate(-8deg)}
.nest-brand-lockup{display:flex;flex-direction:column;align-items:center;gap:16px;position:relative;transform:translateY(-2px);transition:transform .8s var(--ease)}
.nest-app-tile{display:grid;place-items:center;width:144px;height:144px;border-radius:33px;background:linear-gradient(145deg,#fffdf4,#f1eddc);border:1px solid #fffaf0;box-shadow:inset 0 1px 2px #fff,0 2px 3px #5661410a,0 12px 23px #56614112,0 30px 50px #56614110;transform:rotate(-7deg);transition:transform .8s var(--ease),box-shadow .8s}
.nest-app-tile img{display:block;width:105px;height:auto;filter:drop-shadow(0 3px 3px #56614112);user-select:none}
.nest-wordmark{font:400 38px/1.1 Georgia,'Times New Roman',serif;letter-spacing:-1.8px;color:#586345;text-shadow:0 1px 0 #fff5}
.project-card:is(:hover,:focus-visible) .nest-app-tile{transform:translateY(-4px) rotate(-3deg);box-shadow:inset 0 1px 2px #fff,0 3px 5px #5661410a,0 17px 30px #56614119,0 34px 55px #56614110}
.project-card:hover .nest-scene{transform:none}
html[data-theme=dark] .project-art:has(.nest-scene){background:radial-gradient(ellipse at 48% 20%,#87926955,transparent 65%),linear-gradient(135deg,#515c43,#333f2d)}
html[data-theme=dark] .nest-wordmark{color:#e2e6d3;text-shadow:none}
html[data-theme=dark] .nest-app-tile{border-color:#f4f0e2;box-shadow:inset 0 1px 2px #fff,0 12px 30px #121c1926}
.next-project-thumb .nest-app-tile{width:50px;height:50px;border-radius:12px}
.next-project-thumb .nest-app-tile img{width:37px}
.next-project-thumb .nest-wordmark{font-size:14px;letter-spacing:-.5px}
.next-project-thumb .nest-brand-lockup{gap:5px}
@media(max-width:980px) and (min-width:601px){.nest-app-tile{width:120px;height:120px;border-radius:28px}.nest-app-tile img{width:87px}.nest-wordmark{font-size:32px}.nest-brand-lockup{gap:13px}}
@media(prefers-reduced-motion:reduce){.nest-brand-lockup,.nest-app-tile{transition:none}.project-card:hover .nest-app-tile{transform:rotate(-7deg)}}

.nest-app-tile{transform:none}
.project-card:is(:hover,:focus-visible) .nest-app-tile{transform:translateY(-4px)}
@media(prefers-reduced-motion:reduce){.project-card:hover .nest-app-tile{transform:none}}

.portrait-caption>.portrait-hello{font-family:'Noteworthy','Bradley Hand','Segoe Print','Comic Sans MS',cursive;font-style:normal;font-size:24px;font-weight:400;line-height:1.1;letter-spacing:.2px;transform:rotate(-4deg)}
.portrait-hello .portrait-wave{font-family:-apple-system,BlinkMacSystemFont,sans-serif;font-size:17px;transform:rotate(4deg)}

.portrait-caption>.portrait-hello{font-family:'Bradley Hand','Segoe Print','Noteworthy',cursive;text-transform:uppercase;font-size:20px;font-weight:400;letter-spacing:1.2px;transform:rotate(-1deg)}

/* Helena's own lettering, framed tightly without modifying the original image. */
.portrait-caption>.portrait-handwritten{position:relative;display:block;width:72px;height:34px;overflow:hidden;transform:none;line-height:1;mix-blend-mode:multiply}
.portrait-handwritten>img{position:absolute;width:205px;height:auto;max-width:none;left:-64px;top:-59px;user-select:none}

.portrait-caption>.portrait-handwritten{width:54px;height:26px}
.portrait-handwritten>img{width:154px;left:-48px;top:-44px}

/* Reveal Helena's original lettering one line at a time after the flip. */
.portrait-back-lettering{display:block;position:relative;width:170px;height:84px;margin:12px auto 0;mix-blend-mode:multiply}
.lettering-line{display:block;position:relative;width:170px;height:39px;overflow:hidden;clip-path:inset(0 100% 0 0)}
.lettering-line img{display:block;position:absolute;width:330px;height:auto;max-width:none;left:-102px;user-select:none}
.lettering-line-one img{top:-56px}
.lettering-line-two img{top:-98px}
.portrait-flip.is-flipped .lettering-line-one{animation:portrait-ink 1s .55s cubic-bezier(.35,.05,.5,1) both}
.portrait-flip.is-flipped .lettering-line-two{animation:portrait-ink 1.15s 1.5s cubic-bezier(.35,.05,.5,1) both}
@keyframes portrait-ink{from{clip-path:inset(0 100% 0 0)}to{clip-path:inset(0 0 0 0)}}
html[data-theme=dark] .portrait-back-lettering{mix-blend-mode:screen;filter:invert(1)}
@media(prefers-reduced-motion:reduce){.portrait-flip.is-flipped .lettering-line{animation:none;clip-path:none}}

/* Smaller blue ink, with a brisk letter-by-letter reveal. */
.portrait-caption>.portrait-handwritten{width:43px;height:21px;filter:sepia(1) saturate(2.4) hue-rotate(175deg) brightness(.82)}
.portrait-handwritten>img{width:123px;left:-38.4px;top:-35.2px}
.portrait-back-lettering{width:136px;height:67px;margin-top:8px;filter:sepia(1) saturate(2.4) hue-rotate(175deg) brightness(.82)}
.lettering-line{width:136px;height:31px}
.lettering-line img{width:264px;left:-81.6px}
.lettering-line-one img{top:-44.8px}
.lettering-line-two img{top:-78.4px}
.portrait-flip.is-flipped .lettering-line-one{animation:portrait-ink .38s .35s steps(7,end) both}
.portrait-flip.is-flipped .lettering-line-two{animation:portrait-ink .44s .72s steps(8,end) both}
html[data-theme=dark] .portrait-back-lettering{filter:invert(1) sepia(1) saturate(2) hue-rotate(175deg)}
@media(prefers-reduced-motion:reduce){.portrait-flip.is-flipped .lettering-line{animation:none;clip-path:none}}
.portrait-caption>.portrait-handwritten,.portrait-back-lettering{filter:url(#handwrittenBlue)}
html[data-theme=dark] .portrait-back-lettering{filter:url(#handwrittenBlue) invert(1);mix-blend-mode:screen}

.portrait-flip.is-flipped .lettering-line{animation:none;clip-path:none}

.location-clock:has(.lisbon-mini-scene){width:210px;max-width:calc(100vw - 36px);padding:0 0 13px;border-radius:12px;overflow:hidden;text-align:center;white-space:normal;box-shadow:0 6px 22px #26354b10;color:var(--muted)}
.lisbon-mini-scene{display:block;background:linear-gradient(150deg,#f1f5fa,#f7f6ee)}
.lisbon-mini-scene svg{display:block;width:100%;height:auto}
.lisbon-mini-title{display:block;margin:10px 10px 3px;font-size:11px;font-weight:500;color:var(--ink);line-height:1.5}
.lisbon-mini-note{display:block;font-size:10px;color:var(--muted);line-height:1.5}
.location-detail.is-open .lisbon-tram{animation:lisbon-arrive .65s var(--ease) both}
@keyframes lisbon-arrive{from{transform:translateX(-14px)}to{transform:translateX(0)}}
html[data-theme=dark] .lisbon-mini-scene{background:linear-gradient(150deg,#303b4c,#343b3b)}
@media(prefers-reduced-motion:reduce){.location-detail.is-open .lisbon-tram{animation:none}}

.sidebar .brand:hover{color:var(--ink)}

.sidebar nav>a.project-nav{white-space:normal;align-items:flex-start}
.project-nav>.dot{flex-shrink:0;margin-top:6px}
.project-nav-copy{min-width:0;font-size:10px;line-height:1.55}
.project-nav-copy>small{display:block;margin-top:3px;font-size:9px;font-weight:400;color:var(--muted)}

.project-nav-copy:has(.project-soon-tag){display:flex;align-items:center;gap:9px;width:100%}
.project-nav-copy>.project-soon-tag{display:inline-block;margin:0;padding:1px 6px;border:1px solid var(--control-border);border-radius:5px;background:var(--control-surface);font-size:8px;line-height:1.6;letter-spacing:.1px;color:var(--muted)}

/* Center selected-work labels and markers within an even row. */
.sidebar nav>a.project-nav{align-items:center;min-height:36px;padding:8px 11px}
.sidebar .project-nav>.dot{margin-top:0;align-self:center}
.sidebar .project-nav-copy{line-height:20px}

.circle-cursor.is-menu-soon span{opacity:1;transform:translate(-50%,-50%) scale(1)}
.circle-cursor.is-menu-soon::before{width:30px;height:30px;border:1px solid var(--control-border);background:var(--control-surface);opacity:1;box-shadow:0 2px 8px #25334b0b}

/* The real checkout design, presented as one connected experience. */
.project-art:has(.checkout-original-scene){background:radial-gradient(ellipse at 55% 25%,#fff8f1,transparent 70%),linear-gradient(145deg,#f4e9dd,#ead8c8)}
.checkout-original-scene{width:100%;height:100%;max-width:none;padding:28px;isolation:isolate}
.checkout-preview-frame{width:100%;max-width:660px;border:1px solid #ffffffdc;border-radius:9px;overflow:hidden;background:#fff;box-shadow:0 2px 4px #77583e08,0 12px 24px #77583e12,0 25px 45px #77583e0a;transform:translateY(2px);transition:transform .7s var(--ease),box-shadow .7s}
.checkout-preview-frame img{display:block;width:100%;height:auto;user-select:none}
.project-card:hover .checkout-original-scene{transform:none}
.project-card:is(:hover,:focus-visible) .checkout-preview-frame{transform:translateY(-3px);box-shadow:0 3px 6px #77583e0a,0 17px 28px #77583e16,0 28px 48px #77583e0c}
html[data-theme=dark] .project-art:has(.checkout-original-scene){background:radial-gradient(ellipse at 55% 25%,#65503b55,transparent 70%),linear-gradient(145deg,#3d352f,#302b27)}
.next-project-thumb .checkout-original-scene{padding:9px}
.next-project-thumb .checkout-preview-frame{border-radius:3px}
@media(max-width:600px){.checkout-original-scene{padding:22px}}
@media(prefers-reduced-motion:reduce){.checkout-preview-frame{transition:none}.project-card:hover .checkout-preview-frame{transform:translateY(2px)}}

/* A cleaner editorial frame with generous space around the checkout. */
.project-art:has(.checkout-original-scene){background:linear-gradient(145deg,#faf3ec,#f2e7dc)}
.checkout-original-scene{padding:44px}
.checkout-preview-frame{width:86%;max-width:580px;border:1px solid #ffffff;border-radius:7px;box-shadow:0 2px 4px #5c473508,0 8px 18px #5c47350a;transform:translateY(0)}
.project-card:is(:hover,:focus-visible) .checkout-preview-frame{transform:translateY(-3px);box-shadow:0 3px 6px #5c473508,0 12px 22px #5c47350e}
html[data-theme=dark] .project-art:has(.checkout-original-scene){background:linear-gradient(145deg,#39332f,#302c29)}
.next-project-thumb .checkout-original-scene{padding:9px}
.next-project-thumb .checkout-preview-frame{width:100%}
@media(max-width:600px){.checkout-original-scene{padding:32px}}
@media(prefers-reduced-motion:reduce){.project-card:hover .checkout-preview-frame{transform:none}}

/* Two real Home states, composed as an evolving workspace. */
.project-art:has(.dynamic-original-scene){background:linear-gradient(145deg,#edf2fb,#dce6f5)}
.dynamic-original-scene{position:relative;width:100%;height:100%;max-width:none;isolation:isolate}
.dynamic-preview{position:absolute;width:74%;overflow:hidden;border:1px solid #ffffffeb;border-radius:7px;background:#fff;box-shadow:0 2px 4px #35527808,0 9px 22px #35527810;transition:translate .7s var(--ease),box-shadow .7s}
.dynamic-preview img{display:block;width:100%;height:auto;user-select:none}
.dynamic-preview-active{right:6%;bottom:13%;z-index:1}
.dynamic-preview-initial{left:6%;top:13%;z-index:2}
.project-card:hover .dynamic-original-scene{transform:none}
.project-card:is(:hover,:focus-visible) .dynamic-preview-initial{translate:-3px -5px;box-shadow:0 3px 6px #35527808,0 13px 26px #35527816}
.project-card:is(:hover,:focus-visible) .dynamic-preview-active{translate:3px 5px}
html[data-theme=dark] .project-art:has(.dynamic-original-scene){background:linear-gradient(145deg,#303c50,#253247)}
.next-project-thumb .dynamic-preview{border-radius:2px}
@media(prefers-reduced-motion:reduce){.dynamic-preview{transition:none}.project-card:hover .dynamic-preview{translate:none}}

/* Offset crops give each Home state its own visible area. */
.dynamic-preview{width:82%;border-radius:8px}
.dynamic-preview-initial{left:-11%;top:10%;z-index:1}
.dynamic-preview-active{right:-14%;bottom:-8%;z-index:2}
.project-card:is(:hover,:focus-visible) .dynamic-preview-initial{translate:-3px -4px}
.project-card:is(:hover,:focus-visible) .dynamic-preview-active{translate:3px 4px}
.next-project-thumb .dynamic-preview{width:82%;border-radius:2px}

/* Original Knowledge Agent motion study. */
.agent-video-scene{width:100%;height:100%;max-width:none;padding:28px}
.agent-thumbnail-video{display:block;width:100%;height:100%;object-fit:contain;pointer-events:none;border-radius:9px}
.project-card:hover .agent-video-scene{transform:none}
.next-project-thumb .agent-video-scene{padding:7px}
.next-project-thumb .agent-thumbnail-video{border-radius:3px}
@media(max-width:600px){.agent-video-scene{padding:22px}}

.agent-thumbnail-video{mix-blend-mode:screen}

/* Preserve the original video's contrast instead of blending its pixels. */
.project-art:has(.agent-video-scene){background:#000}
.agent-video-scene{padding:46px}
.agent-thumbnail-video{mix-blend-mode:normal;width:88%;height:88%;opacity:1}
.next-project-thumb .agent-video-scene{padding:8px}
.next-project-thumb .agent-thumbnail-video{width:100%;height:100%}
@media(max-width:600px){.agent-video-scene{padding:34px}}

/* Native transparent vector animation, with the original contrast intact. */
.project-art:has(.agent-lottie-scene){background:linear-gradient(145deg,#f0ecf8,#e3dcf2)}
.agent-lottie-scene{width:100%;height:100%;max-width:none;padding:48px}
.agent-thumbnail-lottie{width:84%;aspect-ratio:257/134;pointer-events:none}
.agent-thumbnail-lottie>svg{display:block;width:100%;height:100%}
.project-card:hover .agent-lottie-scene{transform:none}
html[data-theme=dark] .project-art:has(.agent-lottie-scene){background:linear-gradient(145deg,#393247,#292535)}
.next-project-thumb .agent-lottie-scene{padding:8px}
.next-project-thumb .agent-thumbnail-lottie{width:100%}
@media(max-width:600px){.agent-lottie-scene{padding:36px}}

/* Checkout's original motion study on the restrained peach cover. */
.project-art:has(.checkout-lottie-scene){background:linear-gradient(145deg,#faf3ec,#f2e7dc)}
.checkout-lottie-scene{width:100%;height:100%;max-width:none;padding:42px}
.checkout-thumbnail-lottie{width:90%;aspect-ratio:783/388;pointer-events:none}
.checkout-thumbnail-lottie>svg{display:block;width:100%;height:100%}
.project-card:hover .checkout-lottie-scene{transform:none}
html[data-theme=dark] .project-art:has(.checkout-lottie-scene){background:linear-gradient(145deg,#39332f,#302c29)}
.next-project-thumb .checkout-lottie-scene{padding:8px}
.next-project-thumb .checkout-thumbnail-lottie{width:100%}
@media(max-width:600px){.checkout-lottie-scene{padding:30px}}

.checkout-lottie-scene{padding:30px}
.checkout-thumbnail-lottie{width:96%;filter:drop-shadow(0 3px 5px #6b513b0a) drop-shadow(0 12px 18px #6b513b12)}
.next-project-thumb .checkout-lottie-scene{padding:6px}
.next-project-thumb .checkout-thumbnail-lottie{width:100%;filter:drop-shadow(0 2px 3px #6b513b12)}
@media(max-width:600px){.checkout-lottie-scene{padding:23px}}

/* Dynamic Home's original content-swap animation. */
.project-art:has(.home-lottie-scene){background:linear-gradient(145deg,#edf2fb,#dce6f5)}
.home-lottie-scene{width:100%;height:100%;max-width:none;padding:20px 32px}
.home-thumbnail-lottie{height:100%;max-width:100%;aspect-ratio:726/526;pointer-events:none;filter:drop-shadow(0 3px 5px #35527808) drop-shadow(0 10px 17px #35527810)}
.home-thumbnail-lottie>svg{display:block;width:100%;height:100%}
.project-card:hover .home-lottie-scene{transform:none}
html[data-theme=dark] .project-art:has(.home-lottie-scene){background:linear-gradient(145deg,#303c50,#253247)}
.next-project-thumb .home-lottie-scene{padding:5px}
.next-project-thumb .home-thumbnail-lottie{filter:none}
@media(max-width:600px){.home-lottie-scene{padding:20px 26px}}

.agent-thumbnail-lottie{filter:drop-shadow(0 3px 5px #58466e0a) drop-shadow(0 12px 18px #58466e12)}
.next-project-thumb .agent-thumbnail-lottie{filter:drop-shadow(0 2px 3px #58466e12)}

/* Lightweight session gate for case-study routes. */
.case-gate{max-width:760px;margin-inline:auto}
.case-gate-content{max-width:360px;margin:55px auto 90px}
.case-gate-lock{width:26px;height:26px;color:var(--muted);margin-bottom:23px}
.case-gate-content>.eyebrow{margin:0 0 10px}
.case-gate h1{font-size:36px;font-weight:500;letter-spacing:-1.3px;line-height:1.2;margin:0 0 14px}
.case-gate-intro{font-size:14px;line-height:1.75;color:var(--muted);margin-bottom:27px}
.case-gate form label{display:block;font-size:12px;font-weight:500;margin-bottom:8px}
.case-gate input{display:block;width:100%;height:44px;padding:0 12px;font-family:inherit;font-size:16px;line-height:1.4;color:var(--ink);background:var(--control-surface);border:1px solid var(--control-border);border-radius:var(--control-radius);outline-offset:3px}
.case-gate input:focus-visible{outline:2px solid var(--control-focus)}
.case-gate input[aria-invalid=true]{border-color:#bc6868}
.case-gate-error{min-height:18px;margin:8px 0 12px;font-size:12px;line-height:1.5;color:#a74343}
.case-gate form .ui-button{width:100%}
.case-gate-note{font-size:11px;line-height:1.7;color:var(--muted);margin-top:16px}
.case-locked .site-footer .footer-playground{display:none}
html[data-theme=dark] .case-gate-error{color:#e5a0a0}
@media(max-width:600px){.case-gate-content{margin:35px auto 60px}.case-gate h1{font-size:32px}}

.case-password-field{position:relative}
.case-password-field input{padding-right:45px}
.case-password-toggle{position:absolute;right:4px;top:4px;width:36px;height:36px;padding:9px;display:grid;place-items:center;border-radius:7px;color:var(--muted)}
.case-password-toggle svg{display:block;width:18px;height:18px}
.case-password-toggle:hover{color:var(--ink);background:var(--control-hover)}
.case-password-toggle:focus-visible{outline:2px solid var(--control-focus);outline-offset:2px}
.password-eye-slash{display:none}
.case-password-toggle[aria-pressed=true] .password-eye-slash{display:block}

.case-gate-dialog{position:fixed;inset:0;width:min(420px,calc(100vw - 32px));max-height:calc(100dvh - 40px);margin:auto;padding:38px 32px 26px;border:1px solid var(--control-border);border-radius:18px;background:var(--paper);color:var(--ink);box-shadow:0 24px 80px #17233326;overflow:auto}
.case-gate-dialog::backdrop{background:#20263255;backdrop-filter:blur(5px)}
.case-gate-dialog .case-gate-content{max-width:none;margin:0}
.case-gate-dialog .case-gate-close{position:absolute;right:12px;top:12px;font-size:22px}
.case-gate-dialog h1{font-size:30px;letter-spacing:-1px}
.case-gate-dialog .case-gate-lock{margin-bottom:20px;width:23px;height:23px}
.case-gate-dialog .case-gate-note{margin-bottom:0}
.case-locked .main-wrap{overflow:hidden}
@media(max-width:480px){.case-gate-dialog{padding:36px 24px 24px}}

/* A restrained editorial invitation, letting the gallery reveal its own work. */
.home-page .playground-teaser.teaser-editorial{display:grid;grid-template-columns:1fr 1fr;align-items:center;gap:48px;min-height:0;padding:40px 0;margin-top:80px;margin-bottom:60px;border:0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);border-radius:0;background:transparent;overflow:visible}
.home-page .teaser-editorial .teaser-copy{display:flex;align-items:center;gap:16px}
.home-page .teaser-editorial .teaser-copy h2{margin:0;font-size:34px;font-weight:500;line-height:1.2;letter-spacing:-1.2px}
.teaser-palette{display:grid;place-items:center;width:38px;height:38px;flex-shrink:0;color:#95a6c0;transition:rotate .5s var(--ease)}
.teaser-palette svg{width:30px;height:30px}
.teaser-editorial-detail{justify-self:end}
.home-page .teaser-editorial .teaser-editorial-detail p{font-size:14px;line-height:1.8;color:var(--muted);margin:0 0 14px}
.home-page .teaser-editorial .teaser-link{height:auto;gap:10px;padding:0;border:0;border-radius:0;background:transparent;color:var(--ink);font-size:12px}
.home-page .teaser-editorial:is(:hover,:focus-visible) .teaser-link{background:transparent}
.home-page .teaser-editorial:is(:hover,:focus-visible) .teaser-palette{rotate:-10deg}
.home-page .teaser-editorial:is(:hover,:focus-visible) .teaser-link>span{transform:translateX(4px)}
html[data-theme=dark] .home-page .playground-teaser.teaser-editorial{background:transparent}
@media(max-width:700px){.home-page .playground-teaser.teaser-editorial{gap:28px;grid-template-columns:1fr;padding:30px 0;margin-top:64px;margin-bottom:44px}.teaser-editorial-detail{justify-self:start;padding-left:54px}.home-page .teaser-editorial .teaser-copy h2{font-size:29px}}
@media(prefers-reduced-motion:reduce){.teaser-editorial *{transition:none!important}.home-page .teaser-editorial:hover .teaser-palette{rotate:0deg}}

/* Bring the hero's quiet dot texture into the gallery invitation. */
.home-page .playground-teaser.teaser-editorial{position:relative;padding:36px 40px;border:1px solid var(--line);border-radius:18px;background:var(--paper);overflow:hidden;isolation:isolate}
.teaser-dot-field{position:absolute;inset:-40px -30px -40px 24%;z-index:-1;pointer-events:none;background-image:radial-gradient(circle,#9eafc95c 1px,transparent 1.3px);background-size:15px 15px;mask-image:radial-gradient(ellipse at 58% 40%,#0009 0%,#0004 38%,transparent 72%)}
.home-page .teaser-editorial .teaser-copy,.teaser-editorial-detail{position:relative;z-index:1}
.teaser-editorial-detail{justify-self:end}
html[data-theme=dark] .home-page .playground-teaser.teaser-editorial{background:var(--paper)}
html[data-theme=dark] .teaser-dot-field{background-image:radial-gradient(circle,#8da4c85c 1px,transparent 1.3px)}
@media(max-width:700px){.home-page .playground-teaser.teaser-editorial{padding:28px}.teaser-dot-field{inset:-30px -40px -30px 0}}

.home-page .playground-teaser.teaser-editorial{min-height:310px;padding:44px;margin-top:88px;margin-bottom:64px}
@media(max-width:850px){.home-page .playground-teaser.teaser-editorial{padding:36px}}
@media(max-width:700px){.home-page .playground-teaser.teaser-editorial{min-height:310px;padding:32px;gap:28px;margin-top:64px;margin-bottom:44px}}

/* One clear copy stack, paired with a small abstract study. */
.home-page .playground-teaser.teaser-stacked{grid-template-columns:180px minmax(0,1fr);justify-content:center;gap:48px;padding:44px 64px}
.teaser-stacked-copy{position:relative;z-index:1}
.home-page .teaser-stacked h2{margin:0 0 14px;font-size:34px;font-weight:500;line-height:1.2;letter-spacing:-1.1px;color:var(--ink)}
.teaser-stacked-copy p{margin:0 0 22px;font-size:14px;line-height:1.8;color:var(--muted)}
.teaser-miniature{position:relative;width:155px;height:154px;justify-self:center;pointer-events:none}
.miniature-sheet{position:absolute;display:block;width:91px;height:116px;border:1px solid var(--control-border);border-radius:12px;background:var(--control-surface);box-shadow:0 6px 15px #29344b08}
.miniature-sheet-back{left:11px;top:10px;rotate:-13deg;background:color-mix(in srgb,var(--control-surface),#dfe7f5 35%)}
.miniature-sheet-front{left:47px;top:22px;rotate:7deg;padding:17px 13px}
.miniature-sheet-front i{display:block;width:44px;height:3px;border-radius:3px;background:var(--control-border);margin-bottom:7px}
.miniature-sheet-front i:nth-child(2){width:31px}
.miniature-sheet-front b{display:block;margin-top:10px;font-size:30px;font-weight:400;color:#a8b8d2}
.miniature-orb{position:absolute;bottom:1px;left:6px;width:27px;height:27px;border-radius:50%;background:radial-gradient(circle at 30% 25%,#f6f8fc,#bdcbe1);box-shadow:0 4px 8px #29344b0a}
@media(max-width:850px){.home-page .playground-teaser.teaser-stacked{grid-template-columns:140px minmax(0,1fr);padding:36px;gap:30px}}
@media(max-width:600px){.home-page .playground-teaser.teaser-stacked{grid-template-columns:1fr;padding:32px;gap:22px}.teaser-miniature{display:none}.home-page .teaser-stacked h2{font-size:29px}}

/* Center the invitation and let the surrounding dots carry the atmosphere. */
.home-page .playground-teaser.teaser-stacked{display:flex;align-items:center;justify-content:center;min-height:310px;padding:44px 32px;text-align:center}
.teaser-stacked .teaser-stacked-copy{width:100%;max-width:none}
.teaser-stacked-copy p{white-space:nowrap}
.teaser-stacked .teaser-dot-field{inset:-30px;background-size:15px 15px;mask-image:radial-gradient(ellipse at 8% 18%,#0009,transparent 43%),radial-gradient(ellipse at 96% 86%,#0008,transparent 45%);opacity:.8}
.home-page .teaser-stacked h2{margin-bottom:16px}
.teaser-stacked-copy p{margin-bottom:24px}
@media(max-width:850px){.teaser-stacked-copy p{white-space:normal;text-wrap:balance;max-width:530px;margin-left:auto;margin-right:auto}}
@media(max-width:600px){.home-page .playground-teaser.teaser-stacked{padding:36px 24px}.teaser-stacked-copy p{font-size:13px}}

/* Responsive dots gather at opposite corners, leaving the invitation clear. */
.home-page .playground-teaser.teaser-stacked{margin-top:120px;transition:border-color .35s,box-shadow .4s var(--ease)}
.teaser-stacked .teaser-dot-field{inset:auto;width:360px;height:350px;background:none;opacity:1;mask-image:radial-gradient(ellipse at 50% 50%,#000 12%,#0009 42%,transparent 72%)}
.teaser-stacked .teaser-dots-left{left:-125px;top:-125px}
.teaser-stacked .teaser-dots-right{right:-125px;bottom:-125px}
.teaser-dot-field i{position:absolute;display:block;width:var(--dot-size);height:var(--dot-size);border-radius:50%;background:#9eafc9;transition:transform .65s cubic-bezier(.22,1,.36,1)}
html[data-theme=dark] .teaser-stacked .teaser-dot-field{background:none}
html[data-theme=dark] .teaser-dot-field i{background:#7d94b7}
.home-page .playground-teaser.teaser-stacked:hover{border-color:color-mix(in srgb,var(--control-border),#9eafc9 30%);box-shadow:0 5px 20px #25334b04}
@media(max-width:700px){.home-page .playground-teaser.teaser-stacked{margin-top:88px}.teaser-stacked .teaser-dot-field{width:280px;height:280px}.teaser-stacked .teaser-dots-left{left:-110px;top:-110px}.teaser-stacked .teaser-dots-right{right:-110px;bottom:-110px}}
@media(prefers-reduced-motion:reduce){.teaser-dot-field i{transition:none}}

/* A few original playground shapes, kept at the edges of the invitation. */
.teaser-color-shapes{position:absolute;inset:0;pointer-events:none;z-index:0}
.teaser-color-shapes i{position:absolute;display:block;transition:transform .8s var(--ease);box-shadow:inset 0 1px 1px #ffffff88,0 5px 12px #32405b08}
.teaser-shape-orb{width:36px;height:36px;left:7%;top:23%;border-radius:50%;background:radial-gradient(circle at 30% 25%,#f4edff,#bfb0df)}
.teaser-shape-arch{width:33px;height:43px;right:8%;top:19%;border-radius:18px 18px 6px 6px;background:linear-gradient(140deg,#f9dfc9,#e7bb99);rotate:16deg}
.teaser-color-shapes .teaser-shape-ring{width:34px;height:34px;left:14%;bottom:16%;border:8px solid #c4d5b2;border-radius:50%;background:transparent;box-shadow:inset 1px 1px 2px #435c2510,0 3px 8px #32405b06}
.teaser-stacked:hover .teaser-shape-orb{transform:translate(-5px,-6px)}
.teaser-stacked:hover .teaser-shape-arch{transform:translate(5px,-4px) rotate(-9deg)}
.teaser-stacked:hover .teaser-shape-ring{transform:translate(3px,5px)}
@media(max-width:700px){.teaser-shape-orb{left:5%;top:12%;width:25px;height:25px}.teaser-shape-arch{right:5%;top:13%;width:24px;height:31px}.teaser-color-shapes .teaser-shape-ring{left:8%;bottom:12%;width:26px;height:26px;border-width:6px}}
@media(prefers-reduced-motion:reduce){.teaser-color-shapes i{transition:none}.teaser-stacked:hover .teaser-color-shapes i{transform:none}}

/* A charcoal interlude, with a restrained pool of light following the pointer. */
.home-page .playground-teaser.teaser-stacked{
 --ink:#f2f3f5;--muted:#b1b6c0;--paper:#24272d;
 --control-surface:#343942;--control-hover:#414854;--control-border:#515965;
 --control-focus:#a8bad8;
 color:var(--ink);background:linear-gradient(135deg,#2c3037,#202329);
 border-color:#393e47;box-shadow:inset 0 1px 0 #ffffff08;
}
.home-page .playground-teaser.teaser-stacked::after{content:'';position:absolute;inset:0;pointer-events:none;z-index:0;background:radial-gradient(320px circle at var(--glow-x,50%) var(--glow-y,50%),#8faedb1f,transparent 75%);opacity:0;transition:opacity .5s}
.home-page .playground-teaser.teaser-stacked:hover{border-color:#596678;box-shadow:inset 0 1px 0 #ffffff0c,0 10px 30px #20263010}
.home-page .playground-teaser.teaser-stacked:hover::after{opacity:1}
.teaser-stacked .teaser-dot-field{z-index:0}
.teaser-stacked .teaser-dot-field i{background:#9cb1d1}
.home-page .teaser-stacked-copy{z-index:1}
html[data-theme=dark] .home-page .playground-teaser.teaser-stacked{background:linear-gradient(135deg,#303640,#252a32);border-color:#47505e}
@media(prefers-reduced-motion:reduce){.home-page .playground-teaser.teaser-stacked::after{transition:none;background:radial-gradient(320px circle at 50% 50%,#8faedb1f,transparent 75%)}}
.home-page .playground-teaser.teaser-stacked{display:grid;grid-template-columns:1fr;place-items:center;align-content:center}

.home-page .playground-teaser.teaser-stacked{min-height:270px;padding-top:36px;padding-bottom:36px}
@media(max-width:700px){.home-page .playground-teaser.teaser-stacked{min-height:270px;padding-top:32px;padding-bottom:32px}}

/* One small, playful accent in the otherwise quiet invitation. */
.artboard-accent{position:relative;display:inline-block;color:#b6c9ec;transition:color .4s}
.artboard-twinkle{position:absolute;left:calc(100% + 8px);top:0;font-size:15px;line-height:1;color:#d7c8ed;opacity:0;transform:translate(-4px,5px) rotate(-35deg) scale(.6);transition:opacity .3s,transform .65s var(--ease)}
.artboard-accent:hover{color:#d7c8ed}
.artboard-accent:hover .artboard-twinkle{opacity:1;transform:translate(0,0) rotate(30deg) scale(1)}
.artboard-accent::after{content:'';position:absolute;left:0;right:0;bottom:-4px;height:1px;background:linear-gradient(90deg,#adc6ed00,#adc6ed77,#d7c8ed00);opacity:0;transform:scaleX(.65);transition:opacity .35s,transform .5s var(--ease)}
.artboard-accent:hover::after{opacity:1;transform:scaleX(1)}
@media(prefers-reduced-motion:reduce){.artboard-accent,.artboard-twinkle,.artboard-accent::after{transition:none}}


.home-thumbnail-video{display:block;height:100%;max-width:100%;width:auto;aspect-ratio:1920/1392;object-fit:contain;pointer-events:none;filter:drop-shadow(0 3px 5px #35527808) drop-shadow(0 10px 17px #35527810)}
.next-project-thumb .home-thumbnail-video{filter:none}

.agent-lottie-scene .agent-thumbnail-video{display:block;width:84%;height:auto;aspect-ratio:257/134;object-fit:contain;mix-blend-mode:normal;opacity:1;border-radius:0;filter:drop-shadow(0 3px 5px #58466e0a) drop-shadow(0 12px 18px #58466e12)}
.next-project-thumb .agent-lottie-scene .agent-thumbnail-video{width:100%;filter:drop-shadow(0 2px 3px #58466e12)}

.checkout-thumbnail-video{display:block;width:96%;height:auto;aspect-ratio:783/388;object-fit:contain;pointer-events:none;filter:drop-shadow(0 3px 5px #6b513b0a) drop-shadow(0 12px 18px #6b513b12)}
.next-project-thumb .checkout-thumbnail-video{width:100%;filter:drop-shadow(0 2px 3px #6b513b12)}

.brand-asterisk{display:inline-block;width:1em;height:1em;vertical-align:-.1em;flex-shrink:0}.footer-letter-face>svg{width:.75em;height:.75em}

/* Left-aligned project facts with consistent space between blocks. */
.case-article .editorial-meta{display:flex;justify-content:flex-start;align-items:flex-start;flex-wrap:wrap;gap:28px 128px;width:100%;padding:20px 0;text-align:left}
.case-article .editorial-meta>div{flex:0 1 auto;min-width:0;max-width:100%}
@media(max-width:600px){.case-article .editorial-meta{gap:24px 40px}}

/* Knowledge Agent editorial diagrams. All styling is scoped to this case. */
.knowledge-case .ka-moment{margin:32px 0 42px;color:var(--ink)}
.knowledge-case .ka-kicker,.knowledge-case .ka-index,.knowledge-case .ka-gallery-heading{display:block;font:10px/1.6 ui-monospace,monospace;letter-spacing:.035em;color:var(--muted)}
.knowledge-case .ka-kicker{margin-bottom:18px}
.knowledge-case .ka-moment h3{font-size:18px;line-height:1.35;letter-spacing:-.45px;font-weight:500;margin:0 0 14px}
.knowledge-case .ka-moment p{font-size:12px;line-height:1.7;margin:12px 0 0}
.knowledge-case .ka-moment .ka-note{font-size:10px;line-height:1.6;color:var(--muted);margin:14px 0 0}
.knowledge-case .ka-workspace{border:1px solid var(--line);border-radius:14px;overflow:hidden;background:var(--visual-surface,#f3f5f8)}
.knowledge-case .ka-workspace-top{display:flex;justify-content:space-between;align-items:center;padding:14px 20px;border-bottom:1px solid var(--line);font-size:11px;color:var(--muted)}
.knowledge-case .ka-person{display:flex;gap:7px;align-items:center}.knowledge-case .ka-person:before{content:'';width:6px;height:6px;background:#a89abe;border-radius:50%}
.knowledge-case .ka-workspace-content{display:flex;align-items:center;padding:26px;gap:20px}
.knowledge-case .ka-task{flex:1;min-width:0}.knowledge-case .ka-task strong{font-size:15px;font-weight:500}
.knowledge-case .ka-task .ka-kicker{margin-bottom:6px}
.knowledge-case .ka-lines{display:grid;gap:8px;margin:18px 0}.knowledge-case .ka-lines i{display:block;width:85%;height:5px;border-radius:9px;background:var(--line)}.knowledge-case .ka-lines i:nth-child(2){width:66%}.knowledge-case .ka-lines i:nth-child(3){width:77%}
.knowledge-case .ka-question{display:inline-block;border-bottom:1px dashed #b7abc9;font-size:11px;padding-bottom:4px;color:var(--muted)}
.knowledge-case .ka-connector{color:#ac9dc5;font-size:23px}
.knowledge-case .ka-assistant{flex:0 1 210px;display:flex;flex-direction:column;align-items:flex-start;gap:10px;padding:20px;border:1px solid var(--line);background:var(--paper);border-radius:10px;font-size:12px}.knowledge-case .ka-assistant>svg{color:#a18cb9}.knowledge-case .ka-assistant>span{font-size:11px;color:var(--muted)}
.knowledge-case .ka-intent{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px;padding:24px 0 0}.knowledge-case .ka-intent strong{display:block;font-size:12px;font-weight:500;margin:7px 0}.knowledge-case .ka-intent small{font-size:11px;line-height:1.6;color:var(--muted)}
.knowledge-case .ka-compare{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:28px}.knowledge-case .ka-compare>div+div{border-left:1px solid var(--line);padding-left:28px}
.knowledge-case .ka-entry-comparison{padding:24px 0;border-block:1px solid var(--line)}
.knowledge-case .ka-entry-token{display:inline-flex;align-items:center;gap:7px;min-height:34px;border:1px solid var(--line);border-radius:8px;padding:7px 10px;color:#a18cb9;font-size:11px;margin:0 0 18px}.knowledge-case .ka-entry-token span{color:var(--ink)}
.knowledge-case .ka-percentage{font-size:48px;line-height:1.1;letter-spacing:-2px;font-weight:500}.knowledge-case .ka-percentage span{font-size:22px;letter-spacing:-.5px;color:var(--muted)}.knowledge-case .ka-compare>div:last-child .ka-percentage{color:#a18cb9}
.knowledge-case .ka-export-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;margin-top:24px}.knowledge-case .ka-export{margin:0;min-width:0}.knowledge-case .ka-export-space{min-height:110px;border:1px dashed var(--line);border-radius:8px;background:var(--visual-surface,#f3f5f8);display:flex;align-items:center;justify-content:center;gap:12px;padding:18px;color:var(--muted);font-size:10px}.knowledge-case .ka-export-space>span:first-child{font-size:20px;color:#a99bbd}.knowledge-case .ka-export-space code{display:block;font-size:9px;overflow-wrap:anywhere;margin-top:5px;opacity:.75}.knowledge-case .ka-export figcaption{font-size:10px;line-height:1.6;color:var(--muted);margin-top:8px}.knowledge-case .ka-export .case-media{min-height:0}.knowledge-case .ka-patterns .ka-export:nth-child(2) .ka-export-space{min-height:136px}.knowledge-case .ka-patterns .ka-export:nth-child(3){align-self:end}
.knowledge-case .ka-steps{padding:0;margin:0;list-style:none;display:grid;gap:0}.knowledge-case .ka-steps li{position:relative;font-size:12px;line-height:1.6;padding:10px 0 10px 20px;border-left:1px solid var(--line)}.knowledge-case .ka-steps li:before{content:'';position:absolute;left:-3px;top:17px;width:5px;height:5px;border-radius:50%;background:#b5a6c9}.knowledge-case .ka-steps li+li:after{content:'↓';position:absolute;left:8px;top:-7px;font-size:10px;color:var(--muted)}
.knowledge-case .ka-small-status{display:block;font:9px ui-monospace,monospace;color:var(--muted);margin:-6px 0 12px}.knowledge-case .ka-gallery-heading{margin-top:28px}.knowledge-case .ka-explorations .ka-export:first-child .ka-export-space{min-height:145px}.knowledge-case .ka-explorations .ka-export:nth-child(2){align-self:end}
.knowledge-case .ka-scenarios{padding:24px 0;border-block:1px solid var(--line)}.knowledge-case .ka-scenarios h3{margin:10px 0}.knowledge-case .ka-suggestion{display:flex;align-items:center;gap:8px;font-size:11px;padding:10px 0;color:#a18cb9}.knowledge-case .ka-interruption{color:#a18c86;border-top:1px dashed var(--line)}
.knowledge-case .ka-slot-model{padding:28px 0;border-block:1px solid var(--line)}.knowledge-case .ka-slot-model>figcaption h3{font-size:25px;letter-spacing:-.8px;margin-bottom:28px}.knowledge-case .ka-slot-grid{list-style:none;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));padding:0;margin:0;gap:20px}.knowledge-case .ka-slot-grid>li{position:relative;padding:0 16px 0 0;border-right:1px solid var(--line)}.knowledge-case .ka-slot-grid>li:last-child{border:0;padding-right:0}.knowledge-case .ka-slot-number{display:block;color:#b6a6cb;font:400 36px/1.2 ui-monospace,monospace;margin-bottom:14px;letter-spacing:-2px}.knowledge-case .ka-slot-grid h4{font-size:17px;font-weight:500;letter-spacing:-.4px;margin:0 0 18px}.knowledge-case .ka-slot-grid dl{display:grid;grid-template-columns:auto 1fr;gap:6px 8px;font-size:10px;line-height:1.6;margin:0 0 14px}.knowledge-case .ka-slot-grid dt{color:var(--muted)}.knowledge-case .ka-slot-grid dd{margin:0}.knowledge-case .ka-slot-grid>li:first-child dd:last-child{color:#a18cb9}.knowledge-case .ka-rule{margin-top:16px;display:grid;gap:5px;font-size:10px;line-height:1.7}.knowledge-case .ka-rule strong{font-weight:500}.knowledge-case .ka-rule span{color:var(--muted)}.knowledge-case .ka-cap{position:relative;border-top:1px solid #b6a6cb75;margin-top:28px;padding-top:20px;display:grid;gap:8px}.knowledge-case .ka-cap:before{content:'';position:absolute;top:-12px;left:50%;width:1px;height:12px;background:#b6a6cb}.knowledge-case .ka-cap strong{font-size:17px;font-weight:500;letter-spacing:-.4px}.knowledge-case .ka-cap span{font-size:11px;line-height:1.7;color:var(--muted)}
.knowledge-case .ka-pathways{border-top:1px solid var(--line);padding-top:22px}.knowledge-case .ka-pathways>div{display:grid;grid-template-columns:125px 1fr;gap:20px;padding:14px 0}.knowledge-case .ka-pathways h3{font-size:13px;padding-top:10px}.knowledge-case .ka-pathways .ka-steps{grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.knowledge-case .ka-pathways .ka-steps li{padding:9px 0;border:0}.knowledge-case .ka-pathways .ka-steps li:before{display:none}.knowledge-case .ka-pathways .ka-steps li+li:after{content:'→';left:-12px;top:10px}.knowledge-case .ka-shared-end{border-top:1px solid var(--line);padding-top:16px}.knowledge-case .ka-chat-gallery{grid-template-columns:repeat(3,minmax(0,1fr))}.knowledge-case .ka-chat-gallery .ka-export-space{padding:14px;min-height:100px}.knowledge-case .ka-chat-gallery .ka-export-space>span:first-child{display:none}
.knowledge-case .ka-validation>div{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:28px;border-block:1px solid var(--line);padding:22px 0}.knowledge-case .ka-validation section{margin:0}.knowledge-case .ka-validation h3{font-size:14px;margin:8px 0}.knowledge-case .ka-validation p{font-size:11px;margin:0}
.knowledge-case .ka-outcome{border-block:1px solid var(--line);padding:26px 0}.knowledge-case .ka-outcome>div{display:flex;align-items:center;gap:28px}.knowledge-case .ka-outcome>div>strong{font-size:clamp(42px,6vw,64px);font-weight:500;line-height:1.1;letter-spacing:-2.5px}.knowledge-case .ka-outcome>div p{font-size:13px;margin:0}.knowledge-case .ka-outcome>div p span{font-size:11px}.knowledge-case .ka-outcome-rank{color:var(--muted)}
.knowledge-case .case-section:last-of-type>p:last-child{font-size:clamp(21px,2.4vw,28px);line-height:1.5;letter-spacing:-.6px;margin-top:28px;color:var(--ink)}.knowledge-case .case-section:last-of-type>p:last-child strong{font-weight:500}
@media(max-width:600px){.knowledge-case .ka-workspace-content{padding:18px;gap:12px}.knowledge-case .ka-assistant{padding:14px;flex-basis:145px}.knowledge-case .ka-intent{gap:14px}.knowledge-case .ka-compare{gap:18px}.knowledge-case .ka-compare>div+div{padding-left:18px}.knowledge-case .ka-slot-grid{grid-template-columns:1fr;gap:24px}.knowledge-case .ka-slot-grid>li{border-right:0;border-bottom:1px solid var(--line);padding:0 0 24px 44px}.knowledge-case .ka-slot-number{position:absolute;left:0;top:0;font-size:26px}.knowledge-case .ka-slot-grid>li:last-child{padding:0 0 0 44px}.knowledge-case .ka-slot-grid dl{grid-template-columns:55px 1fr}.knowledge-case .ka-pathways>div{grid-template-columns:1fr;gap:0}.knowledge-case .ka-pathways .ka-steps li{font-size:10px}.knowledge-case .ka-chat-gallery{grid-template-columns:1fr}.knowledge-case .ka-chat-gallery .ka-export-space{min-height:85px}.knowledge-case .ka-validation>div{grid-template-columns:1fr;gap:20px}.knowledge-case .ka-validation section{display:grid;grid-template-columns:25px 1fr;gap:0 10px}.knowledge-case .ka-validation h3{margin:0 0 4px}.knowledge-case .ka-validation p{grid-column:2}.knowledge-case .ka-export-grid{gap:16px}.knowledge-case .ka-export-space{padding:12px;min-height:100px}.knowledge-case .ka-outcome>div{gap:18px}}
@media(max-width:380px){.knowledge-case .ka-workspace-content{flex-wrap:wrap}.knowledge-case .ka-assistant{flex-basis:100%}.knowledge-case .ka-connector{display:none}.knowledge-case .ka-export-grid{grid-template-columns:1fr}}

/* Checkout: decisions, original working boards, and the proposed direction. */
.checkout-case .co-moment{margin:32px 0 44px;color:var(--ink)}
.checkout-case .co-kicker,.checkout-case .co-index{display:block;font:10px/1.6 ui-monospace,monospace;letter-spacing:.025em;color:var(--muted)}
.checkout-case .co-kicker{margin-bottom:20px}.checkout-case .co-moment h3{font-size:17px;font-weight:500;letter-spacing:-.4px;line-height:1.4;margin:8px 0 12px}.checkout-case .co-moment p{font-size:12px;line-height:1.75;margin:8px 0 0}.checkout-case .co-moment .co-note{font-size:10px;line-height:1.65;color:var(--muted);margin-top:18px}
.checkout-case .co-purchase{border-block:1px solid var(--line);padding:24px 0}.checkout-case .co-purchase ol{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:20px;margin:0;padding:0;list-style:none}.checkout-case .co-purchase li{border-left:1px solid var(--line);padding-left:16px}.checkout-case .co-purchase li:first-child{padding:0;border:0}.checkout-case .co-purchase strong{display:block;font-size:16px;font-weight:500;margin-bottom:7px}.checkout-case .co-purchase li span{font-size:11px;line-height:1.6;color:var(--muted)}
.checkout-case .co-metrics{padding:26px 0;border-block:1px solid var(--line)}.checkout-case .co-primary-stat{display:flex;align-items:center;gap:30px}.checkout-case .co-primary-stat>strong{font-size:clamp(60px,8vw,84px);line-height:1;letter-spacing:-4px;font-weight:500;color:#b18d70}.checkout-case .co-primary-stat>strong>span{font-size:.5em;letter-spacing:-1px}.checkout-case .co-primary-stat p{font-size:11px;margin-top:0}.checkout-case .co-metrics dl{display:grid;grid-template-columns:1fr 1fr;gap:28px;border-top:1px solid var(--line);margin:25px 0 0;padding-top:20px}.checkout-case .co-metrics dl div{display:flex;flex-direction:column-reverse;gap:7px}.checkout-case .co-metrics dt{font-size:11px;color:var(--muted)}.checkout-case .co-metrics dd{margin:0;font-size:27px;letter-spacing:-.8px}
.checkout-case .co-audit-findings{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px;margin-bottom:26px}.checkout-case .co-audit-findings h3{font-size:15px}.checkout-case .co-audit-findings p{font-size:11px}.checkout-case .co-index{color:#b18d70}
.checkout-case .co-source{margin:26px 0 0;min-width:0}.checkout-case .co-image-open{position:relative;width:100%;display:block;border:1px solid var(--line);border-radius:10px;overflow:hidden;padding:0;background:#2c2d2f;cursor:pointer;text-align:left}.checkout-case .co-image-open img{display:block;width:100%;height:300px;object-fit:cover;object-position:top;transition:opacity .2s}.checkout-case .co-image-open:hover img{opacity:.9}.checkout-case .co-enlarge{position:absolute;bottom:12px;right:12px;display:flex;align-items:center;gap:12px;border-radius:6px;padding:7px 10px;background:#fcfcfc;color:#353941;font-size:10px;box-shadow:0 2px 10px #0002}.checkout-case .co-source figcaption{font-size:10px;line-height:1.7;margin-top:10px;color:var(--muted)}.checkout-case .co-redesign-image img{height:auto;object-fit:contain;background:white}.checkout-case .co-source-pair{display:grid;grid-template-columns:.75fr 1.25fr;gap:20px}.checkout-case .co-source-pair .co-image-open img{height:310px}.checkout-case .co-tall-board img{object-position:top}.checkout-case .co-guide-board .co-image-open img{object-fit:contain;object-position:center;background:#383838}.checkout-case .co-source-detail{border-block:1px solid var(--line);margin-top:26px;padding:15px 0}.checkout-case .co-source-detail summary{display:flex;justify-content:space-between;align-items:center;cursor:pointer;font-size:12px;list-style:none}.checkout-case .co-source-detail summary::-webkit-details-marker{display:none}.checkout-case .co-source-detail[open] summary>span{rotate:180deg}
.co-image-dialog{width:min(1280px,94vw);max-width:94vw;max-height:90dvh;padding:0;border:1px solid var(--line);border-radius:14px;background:var(--paper);color:var(--ink)}.co-image-dialog::backdrop{background:#15182099;backdrop-filter:blur(7px)}.co-image-dialog header{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:14px 20px;border-bottom:1px solid var(--line)}.co-image-dialog h2{font-size:14px;font-weight:500;margin:0;letter-spacing:-.2px}.co-image-scroll{max-height:calc(90dvh - 70px);overflow:auto;overscroll-behavior:contain;background:#2c2d2f}.co-image-scroll img{display:block;width:100%;min-width:1050px;height:auto}
.checkout-case .co-research{padding:24px 0;border-block:1px solid var(--line)}.checkout-case .co-pattern{display:grid;grid-template-columns:100px 1fr 70px;gap:20px;align-items:center;padding:10px 0;font-size:12px}.checkout-case .co-pattern strong{font-weight:500;text-align:right}.checkout-case .co-pattern-dots{display:flex;gap:6px}.checkout-case .co-pattern-dots i{width:9px;height:9px;flex:1;max-width:12px;border:1px solid var(--line);border-radius:3px}.checkout-case .co-pattern-dots .is-present{background:#c8aa90;border-color:#c8aa90}.checkout-case .co-research-decision{border-left:2px solid #c8aa90;padding-left:18px;margin-top:28px}.checkout-case .co-research-decision p{font-size:20px;line-height:1.55;letter-spacing:-.45px;color:var(--ink)}
.checkout-case .co-layout-pair{display:grid;grid-template-columns:1fr 1fr;gap:26px}.checkout-case .co-layout-pair h3{font-size:14px}.checkout-case .co-layout-pair p{font-size:11px}.checkout-case .co-modal-schema{height:185px;background:var(--visual-surface,#f3f5f8);border-radius:10px;position:relative;padding:20px}.checkout-case .co-modal-schema>div{display:grid;gap:28px;border:1px solid var(--line);border-radius:6px;padding:14px;background:var(--paper);font-size:10px;width:72%}.checkout-case .co-modal-schema>div:last-child{position:absolute;left:25%;top:65px}.checkout-case .co-modal-schema span:last-child{color:var(--muted)}.checkout-case .co-page-schema{display:grid;grid-template-columns:1.4fr 1fr;gap:10px;padding:15px;height:185px;border:1px solid var(--line);border-radius:10px;background:var(--visual-surface,#f3f5f8);font-size:10px}.checkout-case .co-page-schema>div:first-child{display:grid;gap:6px}.checkout-case .co-page-schema>div:first-child span{display:flex;align-items:center;padding:4px 8px;background:var(--paper);border-radius:3px}.checkout-case .co-page-schema>div:last-child{display:flex;flex-direction:column;justify-content:space-between;padding:10px;background:var(--paper);border-left:2px solid #c8aa90;line-height:1.7}.checkout-case .co-page-schema>div:last-child span{padding-top:9px;border-top:1px solid var(--line)}
.checkout-case .co-annotations{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px;list-style:none;margin:24px 0 0;padding:0}.checkout-case .co-annotations strong{display:block;font-size:11px;font-weight:500;margin-bottom:7px}.checkout-case .co-annotations li>span{font-size:11px;line-height:1.7;color:var(--muted)}
.checkout-case .co-journeys{border-top:1px solid var(--line);padding-top:20px}.checkout-case .co-journeys>div:not(.co-journey-end){display:grid;grid-template-columns:170px 1fr;gap:20px;border-bottom:1px solid var(--line);padding:12px 0}.checkout-case .co-journeys h3{font-size:14px;margin:0}.checkout-case .co-journeys p{font-size:11px;margin:0}.checkout-case .co-journey-end{margin-top:20px;font-size:14px;color:#b18d70}
.checkout-case .co-plan{padding:25px 0;border-block:1px solid var(--line)}.checkout-case .co-plan ol{list-style:none;display:grid;grid-template-columns:1fr 1fr;gap:32px;padding:0;margin:0}.checkout-case .co-plan li+li{border-left:1px solid var(--line);padding-left:32px}.checkout-case .co-plan p{font-size:11px}.checkout-case .co-plan .co-plan-status{border-top:1px solid var(--line);padding-top:18px;margin-top:22px}.checkout-case .case-section:last-of-type>p:last-child{font-size:clamp(21px,2.4vw,28px);line-height:1.5;letter-spacing:-.6px;margin-top:28px;color:var(--ink)}.checkout-case .case-section:last-of-type>p:last-child strong{font-weight:500}
@media(max-width:600px){.checkout-case .co-purchase ol{grid-template-columns:1fr 1fr;gap:24px}.checkout-case .co-purchase li:nth-child(3){border:0;padding:0}.checkout-case .co-primary-stat{gap:20px}.checkout-case .co-primary-stat h3{font-size:15px}.checkout-case .co-audit-findings{grid-template-columns:1fr;gap:20px}.checkout-case .co-audit-findings>div{padding-left:35px;position:relative}.checkout-case .co-audit-findings .co-index{position:absolute;left:0;top:4px}.checkout-case .co-audit-findings h3{margin:0 0 5px}.checkout-case .co-pattern{grid-template-columns:75px 1fr 48px;gap:10px;font-size:10px}.checkout-case .co-pattern-dots{gap:3px}.checkout-case .co-pattern-dots i{height:7px;width:auto;border-radius:2px}.checkout-case .co-layout-pair{grid-template-columns:1fr;gap:24px}.checkout-case .co-annotations{grid-template-columns:1fr;gap:16px}.checkout-case .co-source-pair{grid-template-columns:1fr 1fr;gap:14px}.checkout-case .co-source-pair .co-image-open img{height:210px}.checkout-case .co-enlarge{font-size:9px;right:7px;bottom:7px;padding:6px 8px;gap:6px}.checkout-case .co-journeys>div:not(.co-journey-end){grid-template-columns:1fr;gap:7px}.checkout-case .co-plan ol{grid-template-columns:1fr;gap:22px}.checkout-case .co-plan li+li{padding:20px 0 0;border-left:0;border-top:1px solid var(--line)}}
@media(prefers-reduced-motion:reduce){.checkout-case .co-image-open img{transition:none}}

/* Compose source work inside thumbnail-style surfaces. */
.checkout-case .co-artboard{height:340px;display:flex;align-items:center;justify-content:center;overflow:hidden;padding:42px;border:1px solid #b3937810;border-radius:16px;background:radial-gradient(ellipse at 50% 35%,#f5eee5,transparent 75%),#f1e8dd}
.checkout-case .co-artwork{width:90%;max-height:100%;overflow:hidden;border-radius:7px;box-shadow:0 4px 8px #6b513b0a,0 18px 30px #6b513b16;transform:translateY(8px)}
.checkout-case .co-artwork img{display:block;width:100%;height:auto;min-height:0;object-fit:cover;object-position:top}
.checkout-case .co-redesign-image .co-artboard{height:390px;padding:46px 42px}
.checkout-case .co-redesign-image .co-artwork{width:94%;max-height:100%;transform:none}
.checkout-case .co-source-pair .co-artboard{height:280px;padding:30px 22px}
.checkout-case .co-tall-board .co-artwork{width:76%;max-height:220px}
.checkout-case .co-guide-board .co-artwork{width:100%;max-height:200px}
.checkout-case .co-guide-board img{width:auto;height:200px;max-width:none;object-fit:cover;object-position:left}
.checkout-case .co-source-detail .co-artboard{height:290px;padding:36px}
.checkout-case .co-source-detail .co-artwork{max-height:220px}
html[data-theme=dark] .checkout-case .co-artboard{background:radial-gradient(ellipse at 50% 35%,#443d34,transparent 75%),#302c27;border-color:#c8aa9015}
@media(max-width:600px){.checkout-case .co-artboard{height:240px;padding:28px 20px}.checkout-case .co-redesign-image .co-artboard{height:250px;padding:28px 18px}.checkout-case .co-source-pair{grid-template-columns:1fr 1fr}.checkout-case .co-source-pair .co-artboard{height:200px;padding:22px 14px}.checkout-case .co-tall-board .co-artwork{max-height:160px}.checkout-case .co-guide-board .co-artwork{max-height:145px}.checkout-case .co-guide-board img{height:145px}.checkout-case .co-source-detail .co-artboard{height:220px;padding:24px}}

/* Readable supporting copy: hierarchy without miniature type. */
.case-article .case-figure>figcaption,.case-article .visual-heading{font-family:inherit;font-size:13px;line-height:1.65;letter-spacing:0;text-transform:none}
.case-article .research-note{font-size:12px;line-height:1.7}
.checkout-case .co-kicker,.knowledge-case .ka-kicker,.knowledge-case .ka-gallery-heading{font-family:inherit;font-size:13px;line-height:1.65;letter-spacing:0}
.checkout-case .co-index,.knowledge-case .ka-index{font-family:inherit;font-size:12px;line-height:1.6;letter-spacing:0}
.checkout-case .co-source figcaption,.knowledge-case .ka-export figcaption{font-size:13px;line-height:1.7;margin-top:12px}
.checkout-case .co-moment p,.knowledge-case .ka-moment p{font-size:14px;line-height:1.75}
.checkout-case .co-moment .co-note,.knowledge-case .ka-moment .ka-note{font-size:12px;line-height:1.7}
.checkout-case .co-purchase li span,.checkout-case .co-metrics dt,.checkout-case .co-annotations li>span,.checkout-case .co-journeys p,.checkout-case .co-plan p{font-size:13px;line-height:1.7}
.checkout-case .co-annotations strong{font-size:14px;line-height:1.6}
.checkout-case .co-source-detail summary{font-size:14px}
.checkout-case .co-primary-stat p{font-size:13px}
.checkout-case .co-pattern{font-size:13px}
.checkout-case .co-audit-findings h3{font-size:16px}
.checkout-case .co-modal-schema,.checkout-case .co-page-schema{font-size:12px}
.knowledge-case .ka-intent strong{font-size:14px;line-height:1.5}.knowledge-case .ka-intent small{font-size:13px;line-height:1.7}
.knowledge-case .ka-workspace-top,.knowledge-case .ka-question,.knowledge-case .ka-assistant>span,.knowledge-case .ka-entry-token,.knowledge-case .ka-steps li,.knowledge-case .ka-suggestion{font-size:13px;line-height:1.6}
.knowledge-case .ka-rule,.knowledge-case .ka-slot-grid dl,.knowledge-case .ka-cap span{font-size:12px;line-height:1.7}
.knowledge-case .ka-small-status{font-family:inherit;font-size:12px;line-height:1.6}
.knowledge-case .ka-export-space{font-size:12px}.knowledge-case .ka-export-space code{font-size:11px}
.knowledge-case .ka-validation h3{font-size:15px}
@media(max-width:600px){.checkout-case .co-pattern{font-size:12px}.knowledge-case .ka-pathways .ka-steps li{font-size:12px}.knowledge-case .ka-pathways .ka-steps{gap:18px}.knowledge-case .ka-intent{grid-template-columns:1fr;gap:16px}.knowledge-case .ka-intent>div{display:grid;grid-template-columns:25px 1fr;gap:0 10px}.knowledge-case .ka-intent strong{margin:0 0 4px}.knowledge-case .ka-intent small{grid-column:2}}

/* Let the audit continue beyond its frame; simplify the editorial rhythm. */
.checkout-case .co-audit-image .co-artboard{align-items:flex-start;padding-top:46px;padding-bottom:0}
.checkout-case .co-audit-image .co-artwork{max-height:none;overflow:visible;flex-shrink:0;transform:none;border-radius:7px 7px 0 0}
.checkout-case .co-purchase{border:0;padding:12px 0}
.checkout-case .co-purchase li{border:0;padding-left:0}
.checkout-case .co-metrics{border:1px solid var(--line);border-radius:14px;padding:28px;background:var(--visual-surface,#f3f5f8)}
.checkout-case .co-metrics dl{border:0;padding-top:8px}
.checkout-case .co-research{border:0;padding:12px 0}
.checkout-case .co-journeys{border:0;padding-top:0}
.checkout-case .co-journeys>div:not(.co-journey-end){border-bottom:0;padding:12px 0}
.checkout-case .co-source-detail{border:0;padding:16px 20px;border-radius:10px;background:var(--visual-surface,#f3f5f8)}
.checkout-case .co-plan{border:1px solid var(--line);border-radius:14px;padding:28px}
.checkout-case .co-plan li+li{border-left:0;padding-left:0}
.checkout-case .co-plan .co-plan-status{border-top:0;padding-top:0;margin-top:24px}
@media(max-width:600px){.checkout-case .co-audit-image .co-artboard{padding-top:28px;padding-bottom:0}.checkout-case .co-metrics,.checkout-case .co-plan{padding:22px}.checkout-case .co-plan li+li{border-top:0;padding-top:0}}

/* Full design and brief images, scaled within their existing surfaces. */
.checkout-case .co-redesign-image .co-artwork{height:100%;width:100%;max-height:100%;overflow:visible;box-shadow:none;display:flex;align-items:center;justify-content:center}
.checkout-case .co-redesign-image .co-artwork img{width:auto;height:auto;max-width:100%;max-height:100%;object-fit:contain;border-radius:6px;box-shadow:0 4px 8px #6b513b0a,0 18px 30px #6b513b16}
.checkout-case .co-source-detail .co-artwork{height:100%;width:100%;max-height:100%;overflow:visible;box-shadow:none;transform:none;display:flex;align-items:center;justify-content:center}
.checkout-case .co-source-detail .co-artwork img{width:auto;height:auto;max-width:100%;max-height:100%;object-fit:contain;border-radius:6px;box-shadow:0 4px 8px #6b513b0a,0 18px 30px #6b513b16}
.checkout-case .co-purchase>.co-kicker{font-size:16px;line-height:1.7;color:var(--ink)}

.checkout-case .co-research-decision p{font-size:clamp(22px,2.5vw,28px);line-height:1.5;letter-spacing:-.65px;color:var(--ink)}
.checkout-case .co-research-decision .co-index{font-size:14px;margin-bottom:12px}

.case-section>.case-section-eyebrow{font-family:inherit;font-size:12px;font-weight:500;line-height:1.6;color:var(--muted);letter-spacing:.02em;margin:0 0 12px}

/* Different purchase intents converge on one page, not separate steps. */
.checkout-case .co-unified-journeys{padding:0}
.checkout-case .co-journeys.co-unified-journeys>div{display:block;border:0;padding:0;margin:0}
.checkout-case .co-unified-journeys .co-journey-origins{display:grid;grid-template-columns:1fr 1fr;gap:32px}
.checkout-case .co-journey-origins section{margin:0;padding:22px 24px;background:var(--visual-surface,#f3f5f8);border-radius:12px}
.checkout-case .co-journey-origins svg{width:23px;height:23px;display:block;color:#b18d70;margin-bottom:14px}
.checkout-case .co-journey-origins h3{font-size:16px;margin:0 0 13px}
.checkout-case .co-journey-origins ul{display:flex;flex-wrap:wrap;gap:7px;list-style:none;padding:0;margin:0}
.checkout-case .co-journey-origins li{font-size:12px;line-height:1.5;padding:5px 9px;border-radius:5px;background:var(--paper);color:var(--muted)}
.checkout-case .co-journeys.co-unified-journeys>.co-journey-merge{height:45px;position:relative;display:flex;justify-content:center}
.checkout-case .co-journey-merge span{position:absolute;top:0;width:25%;height:25px;border-bottom:1px solid #c8aa9080}
.checkout-case .co-journey-merge span:first-child{right:50%;border-left:1px solid #c8aa9080;border-bottom-left-radius:12px}
.checkout-case .co-journey-merge span:last-child{left:50%;border-right:1px solid #c8aa9080;border-bottom-right-radius:12px}
.checkout-case .co-journey-merge:after{content:'';position:absolute;top:25px;left:50%;height:20px;width:1px;background:#c8aa9080}
.checkout-case .co-journeys.co-unified-journeys>.co-unified-page{padding:23px 24px;border:1px solid #c8aa9060;border-radius:12px;background:linear-gradient(135deg,#c8aa900c,transparent)}
.checkout-case .co-unified-title{display:flex;align-items:baseline;justify-content:space-between;gap:15px;margin-bottom:20px}
.checkout-case .co-unified-title strong{font-size:17px;font-weight:500;letter-spacing:-.3px}
.checkout-case .co-unified-title>span{font-size:12px;color:var(--muted)}
.checkout-case .co-unified-zones{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}
.checkout-case .co-unified-zones>span{padding:14px 12px;background:var(--visual-surface,#f3f5f8);border-radius:6px;font-size:13px;line-height:1.6;text-align:center}
@media(max-width:600px){.checkout-case .co-unified-journeys .co-journey-origins{gap:14px}.checkout-case .co-journey-origins section{padding:18px 14px}.checkout-case .co-journey-origins ul{gap:5px}.checkout-case .co-journey-origins li{font-size:12px;padding:4px 6px}.checkout-case .co-unified-title{display:grid;gap:5px}.checkout-case .co-unified-zones{grid-template-columns:1fr}.checkout-case .co-unified-zones>span{text-align:left}.checkout-case .co-journeys.co-unified-journeys>.co-unified-page{padding:20px}}
.checkout-case .co-journeys.co-unified-journeys>.co-journey-origins{display:grid;grid-template-columns:1fr 1fr;gap:32px}
@media(max-width:600px){.checkout-case .co-journeys.co-unified-journeys>.co-journey-origins{gap:14px}}

.checkout-case .co-clean-journeys .co-journey-origins section{padding:8px 0 12px;background:none;border-radius:0;text-align:center}
.checkout-case .co-clean-journeys .co-journey-origins h3{margin:0 0 6px;font-size:16px}
.checkout-case .co-clean-journeys .co-journey-origins p{font-size:13px;margin:0;color:var(--muted)}
.checkout-case .co-journeys.co-clean-journeys>.co-unified-page{width:fit-content;max-width:100%;margin:0 auto;padding:18px 28px;text-align:center;border:0;background:var(--visual-surface,#f3f5f8);border-radius:10px}
.checkout-case .co-clean-journeys .co-unified-page>strong{font-size:17px;font-weight:500;letter-spacing:-.3px}
.checkout-case .co-clean-journeys .co-unified-page>p{font-size:13px;margin:5px 0 0}
@media(max-width:600px){.checkout-case .co-clean-journeys .co-journey-origins h3{font-size:14px}.checkout-case .co-clean-journeys .co-journey-origins p{font-size:12px}.checkout-case .co-journeys.co-clean-journeys>.co-unified-page{padding:16px 20px}}

.checkout-case .co-purchase-scope{display:grid;grid-template-columns:1fr 1fr;gap:48px;margin:28px 0 32px}
.checkout-case .co-purchase-scope h3{font-size:17px;font-weight:500;letter-spacing:-.3px;margin:0 0 8px;line-height:1.4}
.checkout-case .co-purchase-scope p{font-size:14px;line-height:1.7;margin:0;color:var(--muted);max-width:none}
@media(max-width:600px){.checkout-case .co-purchase-scope{gap:24px}.checkout-case .co-purchase-scope h3{font-size:15px}.checkout-case .co-purchase-scope p{font-size:13px}}

/* Checkout baseline: one clear finding, two supporting measures. */
.checkout-case .co-metrics.co-metrics-refined{padding:30px 34px;background:linear-gradient(125deg,#c8aa9010,transparent 70%);border:1px solid var(--line);border-radius:16px}
.checkout-case .co-metrics-source{display:flex;justify-content:space-between;align-items:center;gap:20px;font-size:13px;line-height:1.6;color:var(--muted);margin-bottom:30px}
.checkout-case .co-metrics-source>span:first-child{color:var(--ink);font-weight:500}
.checkout-case .co-metrics-lead{display:flex;align-items:center;gap:30px;margin-bottom:32px}
.checkout-case .co-metrics-number{font-size:clamp(72px,8vw,100px);font-weight:500;line-height:.95;letter-spacing:-5px;color:var(--ink);font-variant-numeric:tabular-nums}
.checkout-case .co-metrics-number>span{font-size:.42em;letter-spacing:-1px;color:#b18d70;margin-left:4px}
.checkout-case .co-metrics-lead h3{font-size:20px;font-weight:500;letter-spacing:-.55px;line-height:1.35;margin:0 0 6px}
.checkout-case .co-metrics-lead p{font-size:14px;line-height:1.6;margin:0;color:var(--muted)}
.checkout-case .co-metrics-refined dl.co-metrics-support{display:grid;grid-template-columns:1fr 1fr;gap:30px;margin:0;padding:22px 0 0;border-top:1px solid var(--line)}
.checkout-case .co-metrics-support>div{gap:8px}
.checkout-case .co-metrics-support dd{font-size:32px;font-weight:400;letter-spacing:-1px;line-height:1.2;color:var(--ink)}
.checkout-case .co-metrics-support dd>span{font-size:.65em;color:var(--muted);margin-left:2px}
.checkout-case .co-metrics-support dt{font-size:13px;line-height:1.65;color:var(--muted)}
@media(max-width:600px){.checkout-case .co-metrics.co-metrics-refined{padding:24px}.checkout-case .co-metrics-source{align-items:flex-start;gap:12px;margin-bottom:26px;font-size:12px}.checkout-case .co-metrics-lead{gap:20px;margin-bottom:26px}.checkout-case .co-metrics-lead h3{font-size:17px}.checkout-case .co-metrics-number{font-size:76px}.checkout-case .co-metrics-refined dl.co-metrics-support{gap:20px}.checkout-case .co-metrics-support dd{font-size:28px}}
@media(max-width:380px){.checkout-case .co-metrics-lead{display:grid;gap:18px}.checkout-case .co-metrics-support dt{font-size:12px}}

.checkout-case .co-metrics.co-metrics-refined{padding:22px 26px}
.checkout-case .co-metrics-source{margin-bottom:20px}
.checkout-case .co-metrics-lead{gap:24px;margin-bottom:22px}
.checkout-case .co-metrics-number{font-size:68px;letter-spacing:-3.5px}
.checkout-case .co-metrics-lead h3{font-size:18px}
.checkout-case .co-metrics-refined dl.co-metrics-support{padding-top:16px}
.checkout-case .co-metrics-support dd{font-size:26px}
@media(max-width:600px){.checkout-case .co-metrics.co-metrics-refined{padding:20px}.checkout-case .co-metrics-number{font-size:58px}.checkout-case .co-metrics-lead{gap:18px}.checkout-case .co-metrics-lead h3{font-size:16px}.checkout-case .co-metrics-source{margin-bottom:18px}}

.checkout-case .co-metrics-clean{padding:10px 0;background:none;border:0}
.checkout-case .co-metrics-clean dl{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:32px;padding:0;margin:0}
.checkout-case .co-metrics-clean dl>div{display:flex;flex-direction:column-reverse;justify-content:flex-end;gap:10px}
.checkout-case .co-metrics-clean dd{font-size:36px;font-weight:500;line-height:1.1;letter-spacing:-1.4px;margin:0;color:var(--ink)}
.checkout-case .co-metrics-clean dd span{font-size:.65em;letter-spacing:-.5px;margin-left:1px}
.checkout-case .co-metrics-clean dt{font-size:13px;line-height:1.6;color:var(--muted);max-width:195px}
.checkout-case .co-metrics-clean figcaption{font-size:12px;line-height:1.6;color:var(--muted);margin-top:24px}
@media(max-width:600px){.checkout-case .co-metrics-clean dl{gap:20px}.checkout-case .co-metrics-clean dd{font-size:29px}.checkout-case .co-metrics-clean dt{font-size:12px}}

/* Knowledge Agent: quieter editorial visuals, consistent with Checkout. */
.knowledge-case .ka-workflow-simple,.knowledge-case .ka-editorial-pair{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:40px;padding:0;border:0;background:none}
.knowledge-case .ka-moment.ka-workflow-simple h3,.knowledge-case .ka-editorial-pair h3{font-size:17px;font-weight:500;line-height:1.4;letter-spacing:-.3px;margin:0 0 8px}
.knowledge-case .ka-workflow-simple p,.knowledge-case .ka-editorial-pair p{font-size:14px;line-height:1.7;margin:0;color:var(--muted)}
.knowledge-case .ka-entry-simple{margin:0 0 30px;padding:0;border:0}
.knowledge-case .ka-entry-simple figcaption{font-size:13px;line-height:1.6;color:var(--muted);margin-bottom:20px}
.knowledge-case .ka-entry-simple dl,.knowledge-case .ka-outcome-simple dl{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:40px;margin:0;padding:0}
.knowledge-case .ka-entry-simple dl>div,.knowledge-case .ka-outcome-simple dl>div{display:flex;flex-direction:column-reverse;justify-content:flex-end;gap:10px}
.knowledge-case .ka-entry-simple dt,.knowledge-case .ka-outcome-simple dt{font-size:14px;line-height:1.65;color:var(--muted);max-width:285px}
.knowledge-case .ka-entry-simple dd,.knowledge-case .ka-outcome-simple dd{font-size:38px;font-weight:500;line-height:1.1;letter-spacing:-1.5px;margin:0;color:var(--ink)}
.knowledge-case .ka-entry-simple dd>span{font-size:.65em;letter-spacing:-.5px}
.knowledge-case .ka-export-space{min-height:120px!important;border:0;border-radius:12px;background:linear-gradient(125deg,#b9a5d615,transparent),var(--visual-surface,#f3f5f8);font-size:13px;color:var(--muted);padding:20px}
.knowledge-case .ka-export figcaption{font-size:13px;line-height:1.65;margin-top:10px}
.knowledge-case .ka-patterns .ka-export:nth-child(3),.knowledge-case .ka-explorations .ka-export:nth-child(2){align-self:stretch}
.knowledge-case .ka-gallery-heading{font-size:14px;margin:28px 0 0}
.knowledge-case .ka-slots-simple{border:1px solid var(--line);border-radius:14px;padding:26px;background:linear-gradient(125deg,#b9a5d60a,transparent)}
.knowledge-case .ka-slots-simple>figcaption{font-size:14px;line-height:1.6;margin-bottom:26px;color:var(--muted)}
.knowledge-case .ka-slots-simple>ol{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:28px;list-style:none;padding:0;margin:0}
.knowledge-case .ka-slots-simple>ol>li{min-width:0}
.knowledge-case .ka-slots-simple .ka-slot-number{position:static;display:block;color:#a59ab6;font-family:inherit;font-size:14px;font-weight:500;line-height:1.5;letter-spacing:0;margin-bottom:12px}
.knowledge-case .ka-slots-simple h3{font-size:18px;margin:0 0 8px;font-weight:500}
.knowledge-case .ka-slots-simple p{font-size:14px;line-height:1.7;margin:0}
.knowledge-case .ka-slots-simple .ka-slot-timing{font-size:13px;line-height:1.65;color:var(--muted);margin-bottom:14px}
.knowledge-case .ka-slots-simple details{margin-top:16px}
.knowledge-case .ka-slots-simple summary{font-size:13px;line-height:1.6;color:var(--muted);cursor:pointer;list-style:none;display:flex;align-items:center;gap:8px}
.knowledge-case .ka-slots-simple summary::-webkit-details-marker{display:none}
.knowledge-case .ka-slots-simple summary:after{content:'⌄';font-size:14px;transition:rotate .2s}
.knowledge-case .ka-slots-simple details[open] summary:after{rotate:180deg}
.knowledge-case .ka-slots-simple details ul{padding-left:16px;margin:12px 0 0;list-style:disc;font-size:13px;line-height:1.75;color:var(--muted)}
.knowledge-case .ka-slots-simple details li+li{margin-top:8px}
.knowledge-case .ka-slots-simple details p{font-size:13px;margin-top:12px;color:var(--muted)}
.knowledge-case .ka-limit{margin-top:28px;padding-top:0}
.knowledge-case .ka-limit>strong{font-size:17px;font-weight:500;letter-spacing:-.3px}
.knowledge-case .ka-limit>p{font-size:13px;line-height:1.7;margin:7px 0 0;color:var(--muted)}
.knowledge-case .ka-validation-simple{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:28px}
.knowledge-case .ka-validation-simple h3{font-size:16px;margin:0 0 8px}
.knowledge-case .ka-validation-simple p{font-size:14px;margin:0}
.knowledge-case .ka-outcome-simple{padding:0;border:0;background:none}
@media(max-width:600px){.knowledge-case .ka-editorial-pair,.knowledge-case .ka-workflow-simple{gap:24px}.knowledge-case .ka-editorial-pair h3,.knowledge-case .ka-moment.ka-workflow-simple h3{font-size:16px}.knowledge-case .ka-editorial-pair p,.knowledge-case .ka-workflow-simple p{font-size:13px}.knowledge-case .ka-slots-simple{padding:22px}.knowledge-case .ka-slots-simple>ol{grid-template-columns:1fr;gap:28px}.knowledge-case .ka-slots-simple .ka-slot-number{float:left;margin:2px 12px 0 0}.knowledge-case .ka-slots-simple h3{font-size:18px}.knowledge-case .ka-validation-simple{grid-template-columns:1fr;gap:20px}.knowledge-case .ka-entry-simple dl,.knowledge-case .ka-outcome-simple dl{gap:24px}.knowledge-case .ka-entry-simple dd,.knowledge-case .ka-outcome-simple dd{font-size:32px}.knowledge-case .ka-outcome-simple dt{font-size:13px}.knowledge-case .ka-chat-gallery{grid-template-columns:1fr}.knowledge-case .ka-export-space{min-height:105px!important}}
@media(prefers-reduced-motion:reduce){.knowledge-case .ka-slots-simple summary:after{transition:none}}

/* Selective lilac cues, using vectors rather than platform emoji. */
.knowledge-case .ka-editorial-icon{display:inline-block;width:20px;height:20px;flex:0 0 20px;color:#9d88b4;vertical-align:-4px;margin-right:9px}
.knowledge-case .ka-editorial-pair h3:has(.ka-editorial-icon),.knowledge-case .ka-validation-simple h3{display:flex;align-items:center;gap:9px}
.knowledge-case .ka-editorial-pair h3 .ka-editorial-icon,.knowledge-case .ka-validation-simple h3 .ka-editorial-icon{margin:0}
.knowledge-case .ka-limit>strong{color:#8c77a4}
.knowledge-case .ka-entry-simple dl>div:last-child dd{color:#8c77a4}
html[data-theme=dark] .knowledge-case .ka-limit>strong,html[data-theme=dark] .knowledge-case .ka-entry-simple dl>div:last-child dd{color:#c0aad9}
html[data-theme=dark] .knowledge-case .ka-editorial-icon{color:#c0aad9}

/* Unbabel studies: source visuals, composed within the portfolio's surfaces. */
.unbabel-cover{padding:36px 42px;display:flex;align-items:center;justify-content:center;height:100%;overflow:hidden}
.unbabel-cover img{display:block;max-width:90%;max-height:100%;width:auto;height:auto;object-fit:contain;border-radius:7px;box-shadow:0 4px 8px #58466e0a,0 16px 26px #58466e16}
.next-project-thumb .unbabel-cover{padding:12px}.next-project-thumb .unbabel-cover img{max-width:100%;border-radius:3px}
.unbabel-case .ub-moment{margin:30px 0 42px}.unbabel-case .ub-pair{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:30px}.unbabel-case .ub-three{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:28px}.unbabel-case .ub-pair h3,.unbabel-case .ub-three h3{font-size:17px;font-weight:500;line-height:1.4;letter-spacing:-.3px;margin:0 0 9px}.unbabel-case .ub-pair p,.unbabel-case .ub-three p{font-size:14px;line-height:1.7;color:var(--muted);margin:0}
.unbabel-case .ub-source{margin:28px 0 0;min-width:0}.unbabel-case .ub-artboard{height:340px;padding:36px;display:flex;align-items:center;justify-content:center;overflow:hidden;border-radius:15px;background:radial-gradient(ellipse at 50% 35%,#e4dff1,transparent 80%),#eeebf5}.unbabel-case .ub-artboard img{display:block;max-height:100%;max-width:100%;height:auto;width:auto;object-fit:contain;border-radius:6px;box-shadow:0 4px 8px #58466e0a,0 16px 26px #58466e16}.unbabel-case .ub-source figcaption,.unbabel-case .ub-moment>figcaption{font-size:13px;line-height:1.7;color:var(--muted);margin-top:12px}.unbabel-case .ub-image-pair .ub-source{margin-top:0}.unbabel-case .ub-image-pair .ub-artboard{height:280px;padding:24px}
.unbabel-case .ub-metrics{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:30px;padding:10px 0;margin:28px 0}.unbabel-case .ub-metrics>div{display:flex;flex-direction:column-reverse;justify-content:flex-end;gap:10px}.unbabel-case .ub-metrics dt{font-size:13px;line-height:1.6;color:var(--muted)}.unbabel-case .ub-metrics dd{font-size:36px;font-weight:500;line-height:1.15;letter-spacing:-1.3px;margin:0}.unbabel-case .ub-options{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;padding:28px;background:#eeebf5;border-radius:14px}.unbabel-case .ub-options img{width:100%;display:block;border-radius:7px;box-shadow:0 6px 16px #58466e10}
.unbabel-case .case-section:last-of-type>p:last-child{font-size:clamp(21px,2.4vw,28px);line-height:1.5;letter-spacing:-.6px;margin-top:28px;color:var(--ink)}.unbabel-case .case-section:last-of-type>p:last-child strong{font-weight:500}
html[data-theme=dark] .unbabel-case .ub-artboard,html[data-theme=dark] .unbabel-case .ub-options{background:radial-gradient(ellipse at 50% 35%,#393246,transparent 80%),#2c2833}
@media(max-width:600px){.unbabel-cover{padding:25px}.unbabel-case .ub-pair{gap:22px}.unbabel-case .ub-three{grid-template-columns:1fr;gap:22px}.unbabel-case .ub-artboard{height:250px;padding:24px}.unbabel-case .ub-image-pair{grid-template-columns:1fr}.unbabel-case .ub-image-pair .ub-artboard{height:250px}.unbabel-case .ub-metrics{gap:18px}.unbabel-case .ub-metrics dd{font-size:28px}.unbabel-case .ub-options{grid-template-columns:1fr 1fr;padding:20px;gap:14px}.unbabel-case .ub-pair h3{font-size:16px}.unbabel-case .ub-pair p{font-size:13px}}

/* Distinct palettes for the two Unbabel stories. */
.project-art.clay{background:linear-gradient(135deg,#f5ece3,#e9d9ca)}
.project-art.mint{background:linear-gradient(135deg,#eaf4ef,#d2e6df)}
.dot.clay{background:#bc9474}.dot.mint{background:#7fa99b}
.home-page .project-card[data-theme=clay]{--project-hover:#9a7253;--project-tint:#f4eae0;--project-border:#dfc8b4}
.home-page .project-card[data-theme=mint]{--project-hover:#547e70;--project-tint:#e8f1ed;--project-border:#bcd5ca}
.unbabel-case.unbabel-terminology{--ub-surface:#f1e7dc;--ub-glow:#ead8c5}
.unbabel-case.unbabel-self-service{--ub-surface:#e2eee8;--ub-glow:#cfe4da}
.unbabel-case .ub-artboard{background:radial-gradient(ellipse at 50% 35%,var(--ub-glow),transparent 80%),var(--ub-surface)}
.unbabel-case .ub-options{background:var(--ub-surface)}
html[data-theme=dark] .project-art.clay{background:linear-gradient(135deg,#3c332c,#302a25)}
html[data-theme=dark] .project-art.mint{background:linear-gradient(135deg,#293c35,#23312c)}
html[data-theme=dark] .unbabel-case.unbabel-terminology{--ub-surface:#322c27;--ub-glow:#43372d}
html[data-theme=dark] .unbabel-case.unbabel-self-service{--ub-surface:#25352e;--ub-glow:#31473c}
html[data-theme=dark] .unbabel-case .ub-artboard{background:radial-gradient(ellipse at 50% 35%,var(--ub-glow),transparent 80%),var(--ub-surface)}
html[data-theme=dark] .unbabel-case .ub-options{background:var(--ub-surface)}
html[data-theme=dark] .home-page .project-card[data-theme=clay]{--project-hover:#d1ac8c;--project-tint:#40332a;--project-border:#604c3c}
html[data-theme=dark] .home-page .project-card[data-theme=mint]{--project-hover:#a1c8b8;--project-tint:#293e34;--project-border:#456352}

/* Terminology takes a muted rose palette, distinct from Checkout's peach. */
.project-art.clay{background:linear-gradient(135deg,#f5e8ec,#e9d5de)}
.dot.clay{background:#b38b9e}
.home-page .project-card[data-theme=clay]{--project-hover:#93667e;--project-tint:#f3e7ed;--project-border:#dfc4d1}
.unbabel-case.unbabel-terminology{--ub-surface:#f1e5ec;--ub-glow:#e8d3df}
html[data-theme=dark] .project-art.clay{background:linear-gradient(135deg,#3d3039,#30272e)}
html[data-theme=dark] .unbabel-case.unbabel-terminology{--ub-surface:#322831;--ub-glow:#463340}
html[data-theme=dark] .home-page .project-card[data-theme=clay]{--project-hover:#d0a4bc;--project-tint:#402f3a;--project-border:#604555}

/* Extracted slide assets include alpha and their original shadows. */
.unbabel-cover img,.next-project-thumb .unbabel-cover img{box-shadow:none;border-radius:0}
.unbabel-case .ub-artboard img,.unbabel-case .ub-options img{box-shadow:none;border-radius:0}

/* A clearer pink cover, with neutral surfaces for the original work. */
.project-art.clay{background:linear-gradient(135deg,#fce5ef,#f3cadd)}
.dot.clay{background:#c978a0}
.home-page .project-card[data-theme=clay]{--project-hover:#a5537e;--project-tint:#fbe6f0;--project-border:#edbdd5}
.unbabel-case.unbabel-terminology{--ub-surface:#f3f4f6;--ub-glow:#f8f9fa}
html[data-theme=dark] .project-art.clay{background:linear-gradient(135deg,#4a2e3e,#392735)}
html[data-theme=dark] .unbabel-case.unbabel-terminology{--ub-surface:#272a2f;--ub-glow:#30343a}
html[data-theme=dark] .home-page .project-card[data-theme=clay]{--project-hover:#e1a0c1;--project-tint:#4a2e3e;--project-border:#72415c}

/* A softer rose cover, neutral project imagery. */
.project-art.clay{background:linear-gradient(135deg,#f8e9ef,#efd9e3)}
.home-page .project-card[data-theme=clay]{--project-hover:#a56d89;--project-tint:#f5e7ee;--project-border:#e5cbd8}
.unbabel-case .ub-expand-image{position:relative;width:100%;border:0;cursor:pointer;text-align:left}
.unbabel-case .ub-expand-hint{position:absolute;bottom:13px;right:16px;font-size:12px;color:var(--muted);opacity:0;transform:translateY(3px);transition:opacity .2s,transform .2s}
.unbabel-case .ub-expand-image:hover .ub-expand-hint,.unbabel-case .ub-expand-image:focus-visible .ub-expand-hint{opacity:1;transform:none}
.unbabel-case .ub-expand-image:focus-visible,.unbabel-case .ub-expand-option:focus-visible{outline:2px solid var(--blue);outline-offset:4px}
.unbabel-case .ub-expand-option{background:none;border:0;padding:0;cursor:pointer;border-radius:7px}
.ub-image-dialog{width:min(1240px,94vw);max-width:94vw;max-height:92dvh;padding:0;background:var(--paper);color:var(--ink);border:1px solid var(--line);border-radius:16px;box-shadow:0 20px 80px #0002}
.ub-image-dialog::backdrop{background:#15182088;backdrop-filter:blur(8px)}
.ub-image-dialog header{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:14px 20px}
.ub-image-dialog header p{margin:0;font-size:14px;line-height:1.5}
.ub-image-dialog header>div{display:flex;align-items:center;gap:10px;flex-shrink:0}
.ub-image-viewport{height:calc(85dvh - 65px);overflow:auto;overscroll-behavior:contain;background:var(--visual-surface,#f3f4f6);padding:24px;display:flex;align-items:center;justify-content:center}
.ub-image-viewport img{display:block;max-width:100%;max-height:100%;width:auto;height:auto;object-fit:contain;box-shadow:none}
.ub-image-dialog.is-zoomed .ub-image-viewport{display:block}
.ub-image-dialog.is-zoomed img{max-width:none;max-height:none;object-fit:initial;margin:auto}
@media(max-width:600px){.ub-image-dialog header{padding:12px;gap:12px}.ub-image-dialog header p{font-size:12px}.ub-image-viewport{padding:14px}.unbabel-case .ub-expand-hint{opacity:1;font-size:11px;bottom:9px;right:12px}}
@media(prefers-reduced-motion:reduce){.unbabel-case .ub-expand-hint{transition:none}}

.unbabel-case .ub-audience-icon{display:block;width:23px;height:23px;color:#ac7a94;margin-bottom:12px}
.unbabel-case .ub-insight-number{display:block;font-size:14px;font-weight:500;line-height:1.5;color:#ac7a94;margin-bottom:12px;font-variant-numeric:tabular-nums}
.unbabel-case .ub-description-detail .ub-artboard{position:relative;padding:0;display:block;overflow:hidden}
.unbabel-case .ub-description-detail .ub-artboard img{position:absolute;max-width:none;max-height:none;width:112%;height:auto;right:-8%;top:20px;object-fit:initial}
html[data-theme=dark] .unbabel-case .ub-audience-icon,html[data-theme=dark] .unbabel-case .ub-insight-number{color:#d0a4bc}

/* Self-service uses the same neutral image treatment as Terminology. */
.unbabel-case.unbabel-self-service{--ub-surface:#f3f4f6;--ub-glow:#f8f9fa}
.unbabel-case.unbabel-self-service .ub-audience-icon,.unbabel-case.unbabel-self-service .ub-insight-number{color:#6f9989}
html[data-theme=dark] .unbabel-case.unbabel-self-service{--ub-surface:#272a2f;--ub-glow:#30343a}
html[data-theme=dark] .unbabel-case.unbabel-self-service .ub-audience-icon,html[data-theme=dark] .unbabel-case.unbabel-self-service .ub-insight-number{color:#a1c8b8}

/* Larger Self-service previews, with breathing room between image groups. */
.unbabel-case.unbabel-self-service .ub-artboard{height:390px;padding:18px 24px}
.unbabel-case.unbabel-self-service .ub-artboard img{max-height:100%;max-width:100%;transform:scale(1.1)}
.unbabel-case.unbabel-self-service .ub-image-pair .ub-artboard{height:270px;padding:10px}
.unbabel-case.unbabel-self-service .ub-image-pair .ub-artboard img{transform:scale(1.14)}
.unbabel-case.unbabel-self-service .ub-moment>.ub-source+.ub-image-pair{margin-top:34px}
@media(max-width:600px){.unbabel-case.unbabel-self-service .ub-artboard{height:290px;padding:14px 16px}.unbabel-case.unbabel-self-service .ub-image-pair .ub-artboard{height:280px;padding:12px}.unbabel-case.unbabel-self-service .ub-moment>.ub-source+.ub-image-pair{margin-top:28px}}

.unbabel-case.unbabel-self-service .ub-artboard[data-expand-source="assets/self-service/essential-apps.png"] img{transform:translateY(48px) scale(1.1)}
@media(max-width:600px){.unbabel-case.unbabel-self-service .ub-artboard[data-expand-source="assets/self-service/essential-apps.png"] img{transform:translateY(36px) scale(1.1)}}

.unbabel-case.unbabel-self-service .ub-artboard[data-expand-source="assets/self-service/essential-apps.png"]{height:310px}
@media(max-width:600px){.unbabel-case.unbabel-self-service .ub-artboard[data-expand-source="assets/self-service/essential-apps.png"]{height:250px}}

/* Self-service scope: compact image left, stacked decisions right. */
.unbabel-self-service .ub-scope-layout{display:grid;grid-template-columns:minmax(0,.85fr) minmax(0,1fr);gap:36px;align-items:center}
.unbabel-self-service .ub-scope-layout>.ub-source{grid-column:1;grid-row:1;margin:0}
.unbabel-self-service .ub-scope-layout>.ub-three{grid-column:2;grid-row:1;display:grid;grid-template-columns:1fr;gap:24px}
.unbabel-self-service .ub-scope-layout .ub-numbered-insights>div{position:relative;padding-left:32px}
.unbabel-self-service .ub-scope-layout .ub-insight-number{position:absolute;top:1px;left:0;margin:0}
.unbabel-self-service .ub-scope-layout .ub-numbered-insights h3{margin-bottom:6px}
.unbabel-self-service .ub-scope-layout .ub-artboard[data-expand-source="assets/self-service/essential-apps.png"]{height:350px;padding:20px 10px 0}
.unbabel-self-service .ub-scope-layout .ub-artboard[data-expand-source="assets/self-service/essential-apps.png"] img{max-width:100%;max-height:none;width:100%;height:auto;transform:translateY(45px) scale(1.18)}
@media(max-width:600px){.unbabel-self-service .ub-scope-layout{grid-template-columns:1fr;gap:28px}.unbabel-self-service .ub-scope-layout>.ub-source,.unbabel-self-service .ub-scope-layout>.ub-three{grid-column:1;grid-row:auto}.unbabel-self-service .ub-scope-layout>.ub-source{order:-1}.unbabel-self-service .ub-scope-layout .ub-artboard[data-expand-source="assets/self-service/essential-apps.png"]{height:270px;padding:15px 24px 0}.unbabel-self-service .ub-scope-layout .ub-artboard[data-expand-source="assets/self-service/essential-apps.png"] img{max-width:280px;transform:translateY(35px) scale(1.1)}}

.unbabel-self-service .ub-scope-layout .ub-artboard[data-expand-source="assets/self-service/essential-apps.png"] img{transform:translate(30px,45px) scale(1.18)}
@media(max-width:600px){.unbabel-self-service .ub-scope-layout .ub-artboard[data-expand-source="assets/self-service/essential-apps.png"] img{transform:translate(20px,35px) scale(1.1)}}

.unbabel-self-service .ub-scope-layout .ub-artboard[data-expand-source="assets/self-service/essential-apps.png"]{height:290px}
@media(max-width:600px){.unbabel-self-service .ub-scope-layout .ub-artboard[data-expand-source="assets/self-service/essential-apps.png"]{height:240px}}

.terminology-video-scene{padding:24px 30px}
.terminology-thumbnail-video{display:block;width:100%;height:100%;object-fit:contain;pointer-events:none}
.next-project-thumb .terminology-video-scene{padding:10px}
@media(max-width:600px){.terminology-video-scene{padding:20px}}

.terminology-video-scene .terminology-thumbnail-video{width:100%;height:100%;margin:auto}

.terminology-video-scene{padding:12px 16px}
@media(max-width:600px){.terminology-video-scene{padding:12px}}

.terminology-thumbnail-video{filter:drop-shadow(0 3px 5px #76526a0a) drop-shadow(0 12px 18px #76526a16)}
.next-project-thumb .terminology-thumbnail-video{filter:drop-shadow(0 2px 4px #76526a12)}

.self-service-video-scene{padding:20px 26px}
.self-service-thumbnail-video{display:block;width:100%;height:100%;object-fit:contain;pointer-events:none;filter:drop-shadow(0 3px 5px #4268580a) drop-shadow(0 12px 18px #42685816)}
.next-project-thumb .self-service-video-scene{padding:10px}
.next-project-thumb .self-service-thumbnail-video{filter:drop-shadow(0 2px 4px #42685812)}
@media(max-width:600px){.self-service-video-scene{padding:18px}}

/* Swap the Unbabel covers while keeping each case's layout independent. */
.project-art.mint{background:linear-gradient(135deg,#f8e9ef,#efd9e3)}
.project-art.clay{background:linear-gradient(135deg,#eaf4ef,#d2e6df)}
.dot.mint{background:#c08ba5}.dot.clay{background:#7fa99b}
.home-page .project-card[data-theme=mint]{--project-hover:#a56d89;--project-tint:#f5e7ee;--project-border:#e5cbd8}
.home-page .project-card[data-theme=clay]{--project-hover:#547e70;--project-tint:#e8f1ed;--project-border:#bcd5ca}
.unbabel-case.unbabel-self-service .ub-audience-icon,.unbabel-case.unbabel-self-service .ub-insight-number{color:#ac7a94}
.unbabel-case.unbabel-terminology .ub-audience-icon,.unbabel-case.unbabel-terminology .ub-insight-number{color:#6f9989}
.self-service-video-scene{padding:8px 12px}
.self-service-video-scene .self-service-thumbnail-video{transform:scale(1.12)}
html[data-theme=dark] .project-art.mint{background:linear-gradient(135deg,#4a2e3e,#392735)}
html[data-theme=dark] .project-art.clay{background:linear-gradient(135deg,#293c35,#23312c)}
html[data-theme=dark] .home-page .project-card[data-theme=mint]{--project-hover:#d0a4bc;--project-tint:#402f3a;--project-border:#604555}
html[data-theme=dark] .home-page .project-card[data-theme=clay]{--project-hover:#a1c8b8;--project-tint:#293e34;--project-border:#456352}
html[data-theme=dark] .unbabel-case.unbabel-self-service .ub-audience-icon,html[data-theme=dark] .unbabel-case.unbabel-self-service .ub-insight-number{color:#d0a4bc}
html[data-theme=dark] .unbabel-case.unbabel-terminology .ub-audience-icon,html[data-theme=dark] .unbabel-case.unbabel-terminology .ub-insight-number{color:#a1c8b8}
@media(max-width:600px){.self-service-video-scene{padding:8px 10px}}

/* Original product context, distinct from the Dynamic Home redesign. */
.original-screen-pair{display:grid;grid-template-columns:1fr 1fr;gap:24px}
.original-screen{display:flex;align-items:center;justify-content:center;width:100%;height:270px;padding:20px;border:0;border-radius:16px;background:#f1f3f6;overflow:hidden;cursor:pointer;transition:background .2s ease}
.original-screen img{display:block;width:100%;height:100%;object-fit:contain;border-radius:5px;transition:transform .25s ease}
.original-screen:hover img{transform:scale(1.025)}
.original-screen:focus-visible{outline:2px solid #7898bd;outline-offset:4px}
.original-screen-pair p,.original-screen-credit{font-size:14px;line-height:1.6;color:var(--muted);margin:10px 0 0}
.original-screen-credit{margin-top:18px}
[data-theme="dark"] .original-screen{background:#272b31}
@media(max-width:600px){.original-screen-pair{grid-template-columns:1fr;gap:20px}.original-screen{height:280px}}
/* Give the original screens a little depth; let Discover continue below its frame. */
.original-screen img{filter:drop-shadow(0 5px 9px #25354b12) drop-shadow(0 14px 20px #25354b12)}
.original-screen-pair>div:nth-child(2) .original-screen{position:relative;display:block;padding:0}
.original-screen-pair>div:nth-child(2) .original-screen img{position:absolute;top:24px;left:7%;width:86%;height:auto;max-height:none;object-fit:initial;transform:none}
.original-screen-pair>div:nth-child(2) .original-screen:hover img{transform:translateY(-3px)}
@media(max-width:600px){.original-screen-pair>div:nth-child(2) .original-screen img{top:24px;left:6%;width:88%}}
/* Dynamic Home follows the quieter editorial case-study system. */
.dynamic-home-case .case-section{border:0;padding-top:0;margin-top:64px}
.dynamic-home-case .case-section-eyebrow{font-size:12px;line-height:1.6;letter-spacing:.04em;color:var(--muted);margin-bottom:14px}
.dynamic-home-case .dh-moment{margin:32px 0 40px}
.dynamic-home-case .dh-pair{display:grid;grid-template-columns:1fr 1fr;gap:36px}
.dynamic-home-case .dh-moment h3{font-size:17px;line-height:1.45;font-weight:500;letter-spacing:-.3px;margin:0 0 10px}
.dynamic-home-case .dh-moment p{font-size:14px;line-height:1.75;margin:0;color:var(--muted)}
.dynamic-home-case .visual-heading{font-family:inherit;font-size:14px;letter-spacing:0;line-height:1.6;margin-bottom:18px}
.dynamic-home-case .discover-return-layout{padding:18px 0;gap:36px}
.dynamic-home-case .return-number{font-size:54px;letter-spacing:-2px}
.dynamic-home-case .return-dots{gap:4px}
.dynamic-home-case .dh-states{display:grid;gap:28px}
.dh-screen-figure{margin:0}
.dh-screen{display:flex;width:100%;padding:28px 32px;border:0;border-radius:16px;background:#eef2f7;cursor:pointer;overflow:hidden}
.dh-screen img{display:block;width:100%;height:auto;object-fit:contain;border-radius:6px;filter:drop-shadow(0 8px 14px #25354b15);transition:transform .25s ease}
.dh-screen:hover img{transform:translateY(-3px)}
.dh-screen:focus-visible{outline:2px solid #7898bd;outline-offset:4px}
.dh-screen-figure figcaption{font-size:14px;line-height:1.65;color:var(--muted);margin-top:12px}
.dynamic-home-case .dh-library{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.dh-library>div{background:#f3f4f6;border-radius:14px;overflow:hidden}
.dh-library img{display:block;width:100%;height:auto}
html[data-theme=dark] .dh-screen,html[data-theme=dark] .dh-library>div{background:#272b31}
@media(max-width:600px){.dynamic-home-case .dh-pair{grid-template-columns:1fr;gap:24px}.dh-screen{padding:16px}.dynamic-home-case .dh-library{gap:10px}.dynamic-home-case .discover-return-layout{gap:24px}.dynamic-home-case .case-section{margin-top:48px}}
.dynamic-home-case .dh-recommendation{padding:26px;border:1px solid var(--line);border-radius:18px}
.dh-inputs{display:grid;grid-template-columns:1fr 1fr;gap:30px}
.dh-recommendation .ka-editorial-icon{width:20px;height:20px;color:#7b96b7;margin-bottom:12px}
.dynamic-home-case .dh-recommendation h3{margin-bottom:6px}
.dynamic-home-case .dh-recommendation p{font-size:14px}
.dh-signal-join{display:flex;align-items:center;justify-content:center;gap:12px;margin:20px 0;color:#91a2b8}
.dh-signal-join>span:first-child,.dh-signal-join>span:last-child{height:1px;width:28%;background:var(--line)}
.dh-recommendation-result{display:flex;align-items:center;gap:16px;padding:20px;background:#edf2f8;border-radius:12px}
.dh-recommendation-result .ka-editorial-icon{margin:0;flex-shrink:0}
.dh-mini-cards{display:flex;align-items:center;gap:5px;margin-left:auto;padding-left:12px}
.dh-mini-cards i{display:block;width:18px;height:28px;border:1px solid #afc0d6;background:#ffffffb0;border-radius:4px}
.dh-mini-cards i:first-child{height:38px;width:24px}
html[data-theme=dark] .dh-recommendation-result{background:#293440}
html[data-theme=dark] .dh-mini-cards i{background:#364658;border-color:#647c98}
.dynamic-home-case .case-section:last-of-type>p:last-child{font-size:clamp(21px,2.4vw,28px);line-height:1.5;letter-spacing:-.6px;color:var(--ink);margin-top:28px}
.dynamic-home-case .case-section:last-of-type>p:last-child strong{font-weight:500}
@media(max-width:600px){.dynamic-home-case .dh-recommendation{padding:20px}.dh-inputs{grid-template-columns:1fr;gap:24px}.dh-mini-cards{display:none}.dh-recommendation-result{padding:16px}}
.dynamic-home-case .dh-card-collection{padding:28px;background:#eef2f7;border-radius:18px;overflow:hidden}
.dh-card-grid{display:flex;flex-wrap:wrap;justify-content:center;gap:14px}
.dh-library-card{display:block;flex:0 0 calc((100% - 56px)/5);padding:0;border:0;border-radius:7px;background:transparent;cursor:pointer;box-shadow:0 4px 12px #26364d0c;transition:transform .22s ease,box-shadow .22s ease}
.dh-library-card img{display:block;width:100%;height:auto;border-radius:7px}
.dh-library-card:hover{transform:translateY(-4px);box-shadow:0 8px 18px #26364d18}
.dh-library-card:focus-visible{outline:2px solid #7898bd;outline-offset:4px}
html[data-theme=dark] .dynamic-home-case .dh-card-collection{background:#272b31}
@media(max-width:600px){.dynamic-home-case .dh-card-collection{padding:16px}.dh-card-grid{gap:10px}.dh-library-card{flex-basis:calc((100% - 20px)/3)}}
.dynamic-home-case .dh-context-simple{display:flex;align-items:center;justify-content:space-between;gap:24px;padding:22px 0}
.dh-context-simple>div{display:flex;align-items:center;gap:18px}
.dh-context-simple span{font-size:15px;color:var(--muted)}
.dh-context-simple strong{font-size:16px;font-weight:500;color:var(--ink)}
.dh-context-simple .dh-simple-arrow{color:#839bb8}
@media(max-width:600px){.dynamic-home-case .dh-context-simple{flex-wrap:wrap;justify-content:flex-start;gap:16px}.dh-context-simple>div{flex-basis:100%;gap:12px}}
.dynamic-home-case .dh-context-simple{justify-content:flex-start;gap:18px}
.dh-context-simple>div{gap:16px}
.dh-context-simple .dh-context-item{display:inline-flex;align-items:center;gap:8px;white-space:nowrap}
.dh-context-item svg,.dh-context-item .ka-editorial-icon{width:18px;height:18px;flex:0 0 18px;margin:0;color:#839bb8}
.dh-context-simple .dh-simple-arrow{flex:0 0 auto}
@media(max-width:700px){.dynamic-home-case .dh-context-simple{flex-wrap:wrap;gap:14px}.dh-context-simple>div{flex-wrap:wrap;flex-basis:auto;gap:12px}.dh-context-simple .dh-context-item{font-size:14px}}
.knowledge-case .ka-asset-frame{display:flex;align-items:center;justify-content:center;width:100%;height:210px;padding:24px;border:0;border-radius:14px;background:#f1f2f6;overflow:hidden}
.knowledge-case button.ka-asset-frame{cursor:pointer}
.knowledge-case .ka-asset-frame img,.knowledge-case .ka-asset-frame video{display:block;width:100%;height:100%;object-fit:contain;box-shadow:none}
.knowledge-case .ka-asset-frame:focus-visible{outline:2px solid #9b87b4;outline-offset:4px}
html[data-theme=dark] .knowledge-case .ka-asset-frame{background:#292c33}
@media(max-width:600px){.knowledge-case .ka-asset-frame{height:190px;padding:20px}}
/* Chat details continue above the frame, keeping the action area in view. */
.knowledge-case .ka-asset-frame[data-expand-source="assets/knowledge-agent/embedded-videos.png"],
.knowledge-case .ka-asset-frame[data-expand-source="assets/knowledge-agent/smart-suggestions.png"]{position:relative;display:block;padding:0}
.knowledge-case .ka-asset-frame[data-expand-source="assets/knowledge-agent/embedded-videos.png"] img,
.knowledge-case .ka-asset-frame[data-expand-source="assets/knowledge-agent/smart-suggestions.png"] img{position:absolute;left:7%;bottom:18px;width:86%;height:auto;max-height:none;object-fit:initial}
.knowledge-case .ka-asset-frame[data-expand-source="assets/knowledge-agent/embedded-videos.png"] img,
.knowledge-case .ka-asset-frame[data-expand-source="assets/knowledge-agent/smart-suggestions.png"] img{bottom:-14px}
.knowledge-case .ka-asset-frame[data-expand-source="assets/knowledge-agent/embedded-videos.png"] img,
.knowledge-case .ka-asset-frame[data-expand-source="assets/knowledge-agent/smart-suggestions.png"] img{left:14%;width:72%;bottom:-8px}
/* Match the interaction examples to the three chat-state previews. */
.knowledge-case .ka-patterns{grid-template-columns:repeat(3,minmax(0,1fr))}
@media(max-width:600px){.knowledge-case .ka-patterns{grid-template-columns:1fr}}
.knowledge-case .ka-patterns .ka-asset-frame{height:185px}
.knowledge-case .ka-patterns .ka-export:first-child .ka-asset-frame img,
.knowledge-case .ka-patterns .ka-export:nth-child(3) .ka-asset-frame img{top:0;bottom:auto}
@media(max-width:600px){.knowledge-case .ka-patterns .ka-asset-frame{height:175px}}
.knowledge-case .ka-entry-simple{max-width:430px;margin:24px 0 28px}
.knowledge-case .ka-entry-simple figcaption{font-size:13px;margin-bottom:14px;color:var(--muted)}
.knowledge-case .ka-entry-simple dl{gap:40px}
.knowledge-case .ka-entry-simple dd{font-size:25px;letter-spacing:-.7px;line-height:1.2;color:var(--ink)}
.knowledge-case .ka-entry-simple dd span{font-size:17px;color:var(--muted)}
.knowledge-case .ka-entry-simple dt{font-size:13px}
.knowledge-case .ka-chat-gallery .ka-asset-frame{height:320px;padding:16px}
@media(max-width:600px){.knowledge-case .ka-chat-gallery .ka-asset-frame{height:360px;padding:20px}.knowledge-case .ka-entry-simple dd{font-size:25px}}
.knowledge-case .ka-chat-gallery .ka-asset-frame img{filter:drop-shadow(0 3px 5px #202b4010) drop-shadow(0 10px 14px #202b4014)}
html[data-theme=dark] .knowledge-case .ka-chat-gallery .ka-asset-frame img{filter:drop-shadow(0 3px 6px #0002) drop-shadow(0 10px 16px #0003)}
.knowledge-case .ka-chat-gallery .ka-asset-frame img{filter:drop-shadow(0 4px 10px #202b4009)}
html[data-theme=dark] .knowledge-case .ka-chat-gallery .ka-asset-frame img{filter:drop-shadow(0 4px 10px #00000012)}
.checkout-case .co-updated-flow .co-artboard{display:block;position:relative;width:100%;height:390px;padding:28px 40px 0;border:0;overflow:hidden;cursor:pointer;text-align:center}
.checkout-case .co-updated-flow .co-artboard>img{display:block;width:100%;height:auto;max-height:none;border-radius:7px;box-shadow:0 8px 20px #49382712}
.checkout-case .co-updated-flow .co-artboard:focus-visible{outline:2px solid #b48e6f;outline-offset:4px}
@media(max-width:600px){.checkout-case .co-updated-flow .co-artboard{height:300px;padding:20px 20px 0}}
.checkout-case .co-updated-flow .co-artboard>img{box-shadow:none;filter:none}
/* Neutral case-study surfaces; retain the peach project thumbnail. */
.checkout-case .co-artboard{background:#f3f4f6;border-color:#e8eaed}
.checkout-case .co-artwork{box-shadow:0 4px 8px #26334506,0 16px 28px #2633450d}
html[data-theme=dark] .checkout-case .co-artboard{background:#272a2f;border-color:#353940}
.checkout-case .co-redesign-image .co-artboard{background:radial-gradient(ellipse at 50% 35%,#f5eee5,transparent 75%),#f1e8dd;border-color:#b3937810}
html[data-theme=dark] .checkout-case .co-redesign-image .co-artboard{background:radial-gradient(ellipse at 50% 35%,#493b31,transparent 75%),#342c26;border-color:#b3937820}
.checkout-case .co-components>h3{font-size:20px;line-height:1.4;margin-bottom:12px}

.checkout-case .co-components .co-artboard{width:100%;height:auto;min-height:0;padding:28px;cursor:pointer}
.checkout-case .co-components .co-artboard>img{display:block;width:100%;height:auto;max-height:none;object-fit:contain;box-shadow:none}
.checkout-case .co-components .co-artboard:focus-visible{outline:2px solid #b48e6f;outline-offset:4px}
@media(max-width:600px){.checkout-case .co-components .co-artboard{padding:16px}}
.checkout-case .co-moment.co-components>p{width:auto;max-width:none;margin:0 0 24px;font-size:16px;line-height:1.9;color:var(--muted)}
.checkout-case .co-dual-preview{position:relative;aspect-ratio:1.28;background:#f3f4f6;border-radius:16px;overflow:hidden}
.co-dual-screen{position:absolute;width:83%;padding:0;border:0;background:transparent;cursor:pointer;transition:transform .25s ease}
.co-dual-screen img{display:block;width:100%;height:auto;border-radius:6px}
.co-dual-checkout{top:6%;left:4%;z-index:1}
.co-dual-management{right:2%;bottom:4%;z-index:2}
.co-dual-screen:hover{transform:translateY(-3px);z-index:3}
.co-dual-screen:focus-visible{outline:2px solid #879bb6;outline-offset:4px;z-index:3}
html[data-theme=dark] .checkout-case .co-dual-preview{background:#272a2f}
@media(max-width:600px){.checkout-case .co-dual-preview{aspect-ratio:1.05}.co-dual-screen{width:90%}.co-dual-checkout{left:3%}.co-dual-management{right:1%;bottom:7%}}
.checkout-case .co-dual-preview{aspect-ratio:1.28}
.co-dual-screen{width:70%}
.co-dual-management{top:5%;right:4%;bottom:auto;left:auto;z-index:1}
.co-dual-checkout{top:auto;left:4%;bottom:5%;z-index:2}
.co-dual-management:hover{z-index:1}
.co-dual-checkout:hover{z-index:2}
@media(max-width:600px){.checkout-case .co-dual-preview{aspect-ratio:1.12}.co-dual-screen{width:76%}.co-dual-management{top:6%;right:3%;bottom:auto;left:auto}.co-dual-checkout{top:auto;left:3%;bottom:6%}}
.co-dual-management{left:4%;right:auto}
.co-dual-checkout{right:4%;left:auto}
@media(max-width:600px){.co-dual-management{left:3%;right:auto}.co-dual-checkout{right:3%;left:auto}}
/* Lead with checkout; show plan management as a separate supporting view. */
.checkout-case .co-dual-preview{display:grid;grid-template-columns:1fr;gap:24px;aspect-ratio:auto;padding:30px}
.checkout-case .co-dual-screen{position:static;width:100%;inset:auto;transform:none}
.checkout-case .co-dual-checkout{grid-row:1;z-index:auto}
.checkout-case .co-dual-management{grid-row:2;width:62%;justify-self:end;z-index:auto}
.checkout-case .co-dual-management:before{content:'Plan management';display:block;text-align:left;font-size:14px;line-height:1.6;color:var(--muted);margin-bottom:10px}
.checkout-case .co-dual-screen:hover{transform:translateY(-2px);z-index:auto}
@media(max-width:600px){.checkout-case .co-dual-preview{padding:18px;gap:22px}.checkout-case .co-dual-management{width:80%}}
/* Two independent, equally sized previews. */
.checkout-case .co-dual-preview{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;padding:0;background:none;overflow:visible;border-radius:0}
.checkout-case .co-dual-screen{position:static;grid-row:auto;width:100%;justify-self:stretch;display:flex;align-items:center;justify-content:center;height:240px;padding:18px;background:#f3f4f6;border-radius:14px;overflow:hidden}
.checkout-case .co-dual-management:before{display:none}
.checkout-case .co-dual-screen img{width:100%;height:100%;object-fit:contain;border-radius:5px}
html[data-theme=dark] .checkout-case .co-dual-preview{background:none}
html[data-theme=dark] .checkout-case .co-dual-screen{background:#272a2f}
@media(max-width:600px){.checkout-case .co-dual-preview{grid-template-columns:1fr;gap:18px;padding:0}.checkout-case .co-dual-screen{width:100%;height:230px;padding:18px}}
.checkout-case .co-dual-screen img{width:100%;height:auto;max-height:100%;object-fit:contain;background:transparent;border:0;box-shadow:none}
.checkout-case .co-dual-screen img{filter:drop-shadow(0 3px 9px #2633450b)}
html[data-theme=dark] .checkout-case .co-dual-screen img{filter:drop-shadow(0 3px 9px #00000018)}
.checkout-case .co-purchase strong{display:flex;align-items:center;gap:8px}
.co-decision-icon{width:18px;height:18px;flex:0 0 18px;color:#b18d70}
.dynamic-home-case .dh-context-pair h3{display:flex;align-items:center;gap:8px}
.dynamic-home-case .dh-context-pair .ka-editorial-icon{width:18px;height:18px;flex:0 0 18px;margin:0;color:#839bb8}
/* Anchor theme control to the menu bottom after removing the footer credit. */
.sidebar .theme-toggle{bottom:22px}
.sidebar-bottom{padding-top:0;min-height:0}
@media(max-width:800px){.sidebar .theme-toggle{bottom:24px}}
/* One quiet eyebrow style across pages, case studies, and quick reads. */
:root{--eyebrow-font-size:12px;--eyebrow-letter-spacing:0}
html body .eyebrow,
html body .case-section>.case-section-eyebrow,
html body .dynamic-home-case .case-section-eyebrow,
html body.gallery-page .gallery-header .eyebrow,
html body .teaser-copy .eyebrow,
html body .footer-invitation .eyebrow,
html body .home-page .card-meta,
html body.home-page .card-meta{
 font-family:inherit;
 font-size:var(--eyebrow-font-size);
 font-weight:400;
 font-style:normal;
 line-height:1.6;
 letter-spacing:var(--eyebrow-letter-spacing);
 text-transform:none;
}
html body .next-project-label small{font-family:inherit;font-size:12px;line-height:1.6;font-weight:400;letter-spacing:0;text-transform:none}
/* Keep every mobile route within the viewport. */
@media(max-width:800px){
 html,body{max-width:100%;overflow-x:clip}
 .main-wrap{min-width:0;max-width:100%;overflow-x:hidden}
 main#main{min-width:0;max-width:100%;overflow-x:clip}
 main#main>*,.case-body,.case-section,.case-header,.case-heading-tools,.contact-layout,.contact-links,.email-contact{min-width:0;max-width:100%}
 .projects{grid-template-columns:minmax(0,1fr)}
 .project-card,.card-title-row,.card-title-row h3{min-width:0}
 .case-heading-tools{flex-wrap:wrap}
 .email-contact>a{min-width:0;overflow-wrap:anywhere}
 .email-contact .contact-action-icon,.email-contact .copy-email{flex-shrink:0}
 .ai-work-intro,.cv-section-heading{min-width:0;flex-wrap:wrap}
 .ai-work-intro .ui-button{max-width:100%;white-space:normal}
 .dh-context-simple .dh-context-item{white-space:normal}
 .quick-read-dialog,.ub-image-dialog{box-sizing:border-box;max-width:calc(100vw - 24px)}
 .ub-image-viewport{min-width:0;overflow-x:hidden}
 .ub-image-viewport img{min-width:0;max-width:100%}
}
