@font-face{font-family:Bricolage;font-style:normal;font-weight:200 800;font-display:swap;src:url(/_astro/bricolage-grotesque-latin-wght-normal.DLoelf7F.woff2)format("woff2")}@font-face{font-family:Public Sans;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_astro/public-sans-latin-wght-normal.DdeTHZLK.woff2)format("woff2")}:root{--red:#ff4058;--violet:#36083c;--yellow:#fdc200;--ink:#151515;--white:#fff;--paper:#fafafa;--muted:#505050;--line:2px solid var(--ink);--display:"Bricolage", "Arial Black", sans-serif;--body:"Public Sans", Arial, sans-serif;color:var(--ink);background:var(--paper);font:16px/1.7 var(--body);font-synthesis:none;text-rendering:optimizelegibility}*,:before,:after{box-sizing:border-box}body{margin:0}a{color:inherit;text-underline-offset:4px;text-decoration-thickness:1.5px}a:hover{text-decoration-thickness:3px}a:focus-visible,summary:focus-visible{outline:3px solid var(--violet);outline-offset:5px}::selection{background:var(--yellow);color:var(--ink)}img,svg{max-width:100%}img{height:auto;display:block}figure,h1,h2,h3,h4,p{margin:0}p+p{margin-top:1em}h1,h2,h3,h4{font-family:var(--display);letter-spacing:-.035em;text-wrap:balance;font-weight:700;line-height:1.08}h1{font-size:clamp(3rem,6.4vw,6.3rem)}h2{font-size:clamp(2rem,3.4vw,3.4rem)}h3{font-size:clamp(1.35rem,2vw,2rem)}button,input,summary{font:inherit}ul,ol{padding-left:1.3em}.shell{width:min(1440px,100% - 80px);margin-inline:auto}.section{padding-block:90px}.display-lines{white-space:pre-line}.lead{max-width:750px;font-size:clamp(1.05rem,1.5vw,1.3rem);line-height:1.75}.arrow{vertical-align:middle;flex:none}.button{background:var(--yellow);color:var(--ink);border:var(--line);box-shadow:4px 4px 0 var(--ink);justify-content:center;align-items:center;gap:22px;padding:15px 24px;font-weight:650;line-height:1.4;text-decoration:none;display:inline-flex}.button:hover{box-shadow:2px 2px 0 var(--ink);transform:translate(2px,2px)}.button.dark{color:var(--white);background:var(--ink);box-shadow:4px 4px 0 var(--red)}.button.small{gap:16px;padding:11px 16px;font-size:.9rem}.text-link{align-items:center;gap:16px;font-weight:600;line-height:1.4;display:inline-flex}.skip-link{z-index:10;background:var(--yellow);border:var(--line);padding:12px 20px;position:fixed;top:10px;left:15px;transform:translateY(-160%)}.skip-link:focus{transform:none}.site-header{border-bottom:var(--line);justify-content:space-between;align-items:center;gap:32px;min-height:112px;display:flex;position:relative}.brand{font-family:var(--display);letter-spacing:-.03em;align-items:center;gap:13px;font-size:1.25rem;font-weight:700;line-height:1.05;text-decoration:none;display:inline-flex}.brand-dot{color:var(--red)}.brand-mark{background:var(--violet);width:53px;height:53px;color:var(--white);border:var(--line);justify-content:center;align-items:center;font-size:2rem;display:inline-flex;position:relative}.brand-mark span{background:var(--red);color:var(--ink);border:1.5px solid var(--ink);padding:3px;font-size:.95rem;line-height:1;position:absolute;top:-6px;right:-5px}.desktop-nav{gap:32px;display:flex}.desktop-nav a{font-size:.95rem;text-decoration:none}.desktop-nav a[aria-current]{text-decoration:underline;text-decoration-color:var(--red);text-underline-offset:9px;text-decoration-thickness:3px}.header-actions{align-items:center;gap:22px;display:flex}.language-link{font-size:.8rem;font-weight:700}.mobile-nav{display:none}.hero{border-bottom:var(--line);grid-template-columns:1.15fr 1fr;min-height:650px;display:grid}.hero-copy{flex-direction:column;align-items:flex-start;padding:72px 35px 50px 0;display:flex}.role-line{align-items:center;gap:10px;font-size:.9rem;display:flex}.status-dot{background:var(--red);border:1px solid var(--ink);flex:none;width:8px;height:8px}.hero h1{letter-spacing:-.055em;margin:25px 0;font-size:clamp(3.5rem,6.5vw,6.6rem);line-height:.99}.hero-intro{max-width:550px;font-size:1.05rem}.hero-links{flex-wrap:wrap;align-items:center;gap:30px;margin-top:32px;display:flex}.hero-location{color:var(--muted);align-items:center;gap:16px;margin-top:auto;padding-top:38px;font-size:.8rem;display:flex}.hero-location span{color:var(--violet);font-size:1.3rem}.hero-visual{border-left:var(--line);background:var(--yellow);place-items:center;padding:20px 0 60px;display:grid;position:relative;overflow:hidden}.hero-art{width:100%;max-height:500px}.portrait-note{background:var(--white);border:var(--line);min-width:320px;box-shadow:5px 5px 0 var(--ink);align-items:center;gap:16px;padding:12px 20px 12px 12px;font-size:.85rem;line-height:1.4;display:flex;position:absolute;bottom:28px;left:50%;transform:translate(-50%)}.portrait-note img{object-fit:cover;object-position:center 35%;border:1.5px solid var(--ink);width:72px;height:72px}.portrait-note strong{font-size:.9rem}.experience-strip{border-bottom:var(--line);align-items:center;gap:22px;padding:19px 0;display:flex}.experience-strip strong{font-family:var(--display);letter-spacing:-.02em;font-size:1.15rem}.experience-strip>span:last-child{color:var(--muted);margin-left:auto;font-size:.85rem}.strip-star{color:var(--red);font-size:2.4rem;line-height:1}.section-heading{justify-content:space-between;align-items:flex-end;gap:45px;margin-bottom:42px;display:flex}.section-heading h2{max-width:690px}.section-heading p{max-width:640px;color:var(--muted);margin-top:20px}.section-heading>.text-link{flex-shrink:0;padding-bottom:6px;font-size:.9rem}.project-feature{border:var(--line);background:var(--white);grid-template-columns:1.35fr 1fr;margin-bottom:34px;display:grid}.project-feature:last-child{margin-bottom:0}.case-studies>h2{margin-bottom:30px;font-size:2rem}.project-image{background:var(--yellow);border-right:var(--line);justify-content:center;align-items:center;min-height:360px;padding:28px;display:flex;position:relative;overflow:hidden}.project-copy{flex-direction:column;justify-content:center;align-items:flex-start;padding:45px;display:flex}.project-category{color:var(--muted);margin-bottom:13px;font-size:.8rem}.project-copy h3{margin-bottom:20px;font-size:clamp(2.2rem,4vw,4rem)}.project-copy h3 a,.gallery-copy h3 a{justify-content:space-between;align-items:center;gap:25px;text-decoration:none;display:flex}.project-copy .text-link{margin-top:32px;font-size:.9rem}.project-sticker{background:var(--yellow);border:var(--line);z-index:2;padding:7px 13px;font-size:.7rem;font-weight:650;position:absolute;bottom:18px;left:20px;transform:rotate(-3deg)}.project-feature.linxchat{grid-template-columns:1fr 1.35fr}.project-feature.linxchat .project-image{background:var(--red);border-left:var(--line);border-right:0;grid-area:1/2}.project-image .device-mockup.phone-only{max-width:175px}.project-feature.linxchat .project-copy{grid-area:1/1}.expertise-section{border-top:var(--line)}.expertise-section .section-heading>p{max-width:370px}.expertise-list{border-top:var(--line)}.expertise-row{border-bottom:var(--line);grid-template-columns:1fr 1fr 40px;align-items:center;gap:40px;padding:32px 0;text-decoration:none;display:grid}.expertise-row h3{font-size:1.9rem}.expertise-row p{color:var(--muted);font-size:.95rem}.expertise-row>svg{justify-self:end}.expertise-row:hover h3{text-decoration:underline;text-decoration-color:var(--red);text-underline-offset:6px}.contact-banner{border:var(--line);background:var(--violet);color:var(--white);justify-content:space-between;align-items:center;gap:40px;margin-bottom:60px;padding:62px;display:flex;position:relative}.contact-banner h2{font-size:clamp(2.2rem,4.5vw,4.5rem)}.contact-banner p{color:#eadfed;max-width:600px;margin-top:25px;font-size:.95rem}.contact-banner a:focus-visible{outline-color:var(--yellow)}.round-link{background:var(--yellow);border:var(--line);width:110px;height:110px;color:var(--ink);box-shadow:5px 5px 0 var(--red);border-radius:50%;flex-shrink:0;place-items:center;display:grid}.round-link svg{width:45px;height:45px}.round-link:hover{background:var(--red)}.site-footer{border-top:var(--line);grid-template-columns:1fr auto;padding-top:42px;display:grid}.footer-name{font-family:var(--display);letter-spacing:-.04em;font-size:2rem;font-weight:700;text-decoration:none}.footer-name span{color:var(--red)}.footer-main>p{color:var(--muted);font-size:.85rem}.site-footer nav{align-items:flex-start;gap:27px;padding-top:14px;display:flex}.site-footer nav a{align-items:center;gap:8px;font-size:.85rem;display:flex}.site-footer nav svg{width:15px;height:15px}.footer-bottom{color:var(--muted);border-top:1px solid #c8c8c8;grid-column:1/-1;gap:24px;margin-top:35px;padding-block:22px;font-size:.75rem;display:flex}.footer-bottom p+p{margin:0}.footer-bottom a{margin-left:auto}.page-label{background:var(--yellow);border:1.5px solid var(--ink);margin-bottom:24px;padding:4px 12px;font-size:.85rem;font-weight:600;display:inline-block}.page-heading{padding-bottom:60px}.page-heading h1,.contact-heading h1{max-width:1100px;margin-bottom:30px}.about-hero{grid-template-columns:1.4fr 1fr;align-items:center;gap:80px;display:grid}.about-hero h1{margin-bottom:30px;font-size:clamp(3rem,5.5vw,5.6rem)}.about-hero .lead+p{max-width:700px;color:var(--muted)}.language-note{border-top:1px solid #ccc;padding-top:20px;font-size:.85rem}.portrait-frame{background:var(--yellow);border:var(--line);box-shadow:10px 10px 0 var(--violet);padding:20px;position:relative}.portrait-frame img{aspect-ratio:4/5;object-fit:cover;object-position:50% 40%;border:var(--line)}.portrait-frame figcaption{flex-wrap:wrap;justify-content:space-between;gap:8px;padding-top:15px;font-size:.75rem;font-weight:600;display:flex}.timeline-section{border-top:var(--line);grid-template-columns:1fr 2fr;align-items:start;gap:70px;display:grid}.timeline{margin:0;padding:0;list-style:none}.timeline li{border-bottom:1px solid #c8c8c8;grid-template-columns:150px 1fr;gap:30px;margin-bottom:36px;padding-bottom:36px;display:grid}.timeline li:last-child{margin-bottom:0}.timeline-period{color:var(--muted);padding-top:4px;font-size:.8rem}.timeline h3{font-size:1.5rem}.timeline .company{color:var(--violet);margin-top:8px;font-size:.85rem;font-weight:600}.timeline .company+p{color:var(--muted);font-size:.9rem}.skill-section{border-top:var(--line)}.skill-groups{grid-template-columns:repeat(3,1fr);gap:40px;margin-top:42px;display:grid}.skill-groups h3{margin-bottom:22px}.tags{flex-wrap:wrap;gap:8px;margin:0;padding:0;list-style:none;display:flex}.tags li{background:var(--white);border:1px solid var(--ink);padding:5px 10px;font-size:.8rem}.credentials{border-top:var(--line);grid-template-columns:1fr 1fr;gap:90px;display:grid}.credentials h2{margin-bottom:30px}.certifications{margin-bottom:30px;padding:0;list-style:none}.certifications li{border-bottom:1px solid #ccc;justify-content:space-between;gap:20px;padding-block:12px;font-size:.9rem;display:flex}.certifications span{color:var(--muted);font-size:.75rem}.project-grid{grid-template-columns:repeat(3,1fr);gap:40px 24px;display:grid}.gallery-project{min-width:0}.gallery-image{aspect-ratio:4/3;border:var(--line);background:var(--yellow);justify-content:center;align-items:center;padding:0;display:flex;position:relative;overflow:hidden}.gallery-project:nth-child(3n+1) .gallery-image{background-color:var(--red)}.gallery-project:nth-child(3n+2) .gallery-image{background-color:var(--violet)}.gallery-image>.device-mockup{width:94%}.gallery-copy{padding-top:20px}.gallery-copy h3{font-size:1.45rem}.gallery-copy>p:last-child{color:var(--muted);margin-top:13px;font-size:.85rem}.gallery-copy .project-category{margin-bottom:10px;font-size:.7rem}.gallery-copy svg{width:18px}.internal-note{border-top:var(--line);align-items:flex-start;gap:35px;display:flex}.internal-note>span{color:var(--red);font-size:4rem;line-height:1}.internal-note p{max-width:850px;margin-top:22px}.back-link{width:fit-content;margin-bottom:35px;font-size:.8rem;display:block}.case-heading{max-width:1000px;padding-bottom:50px}.case-heading h1{margin-bottom:25px}.case-heading .tags{margin-top:25px;margin-bottom:20px}.case-cover{background:var(--yellow);border:var(--line);justify-content:center;padding:35px;display:flex;position:relative;overflow:hidden}.case-cover.linxchat,.case-cover.popout,.case-cover.meiji,.case-cover.m-lab{background-color:var(--red)}.case-cover.celllo,.case-cover.pandaisuite,.case-cover.talasi{background-color:var(--violet)}.case-cover>.device-mockup{max-width:1100px}.case-cover>.device-mockup.phone-only{max-width:310px}.gallery-image,.project-image,.case-cover,.not-found-visual{isolation:isolate;background-image:radial-gradient(#ffffff3d 1px,#0000 1px);background-size:18px 18px}.gallery-image:before,.project-image:before,.case-cover:before,.not-found-visual:before{content:"";aspect-ratio:1;z-index:-1;background:#ffffff2e;border-radius:50%;width:65%;position:absolute;top:-38%;right:-23%}.gallery-image:after,.project-image:after,.case-cover:after,.not-found-visual:after{content:"";aspect-ratio:1;z-index:-1;border:20px solid #fff9;border-radius:50%;width:33%;position:absolute;bottom:-24%;left:-16%}.device-mockup{aspect-ratio:4/3;z-index:1;width:100%;min-width:0;position:relative;container-type:inline-size}.device-laptop{background:#18191d;border:1px solid #c3c3ca;border-radius:1.8cqw 1.8cqw .5cqw .5cqw;width:91%;padding:1.6% 1.3% 2%;position:absolute;top:8%;left:3%;box-shadow:.7cqw 1cqw #15151559}.with-phone .device-laptop{width:86%;left:1%}.device-camera{background:#565a65;border-radius:50%;width:.55cqw;height:.55cqw;position:absolute;top:.55cqw;left:50%}.device-browser{height:2.8cqw;font:1.3cqw/1 var(--body);color:#555;background:#eeeef1;border-radius:.6cqw .6cqw 0 0;align-items:center;gap:10%;padding-inline:1.5cqw;display:flex;overflow:hidden}.device-browser>span:first-child{color:#d55555;letter-spacing:.2cqw}.device-browser>span:last-child{text-align:center;white-space:nowrap;background:#fff;border-radius:.5cqw;width:53%;padding:.3cqw}.device-screen{aspect-ratio:16/9;background:#fff;width:100%;overflow:hidden}.device-mockup picture{width:100%;height:100%;display:block}.device-mockup img{object-fit:cover;object-position:top center;width:100%;height:100%;display:block}.device-base{background:linear-gradient(#e1e1e6,#94949f);border:1px solid #92929c;border-radius:0 0 4cqw 4cqw;width:108%;height:2.6cqw;position:absolute;top:100%;left:-4%;box-shadow:.6cqw .8cqw #15151533}.device-base:before{content:"";background:#a5a5ae;border-radius:0 0 .7cqw .7cqw;width:20%;height:.8cqw;position:absolute;top:0;left:40%}.device-phone{aspect-ratio:9/17.5;background:#fff;border:.65cqw solid #202126;border-radius:13%/6%;outline:.25cqw solid #a5a5af;width:25%;position:absolute;bottom:5%;right:1%;overflow:hidden;box-shadow:1cqw 1.2cqw #15151559}.device-phone picture{height:94%;margin-top:12%}.device-time{color:#151515;font:650 1.5cqw/1 var(--body);position:absolute;top:1.6%;left:8%}.device-island{background:#141414;border-radius:20px;width:30%;height:2.8%;position:absolute;top:1.8%;left:35%}.device-home{background:#171717;border-radius:5px;width:34%;height:.7%;position:absolute;bottom:1.3%;left:33%}.device-mockup.phone-only{aspect-ratio:9/19.5}.phone-only .device-phone{border-width:2.5cqw;outline-width:.8cqw;width:100%;height:100%;inset:0;box-shadow:4cqw 4cqw #15151559}.phone-only .device-time{font-size:5cqw}.case-body,.expertise-body{grid-template-columns:minmax(0,2fr) 1fr;gap:110px;display:grid}.case-body>div>section+section,.expertise-body>div>section+section{margin-top:50px}.case-body h2,.expertise-body h2{margin-bottom:24px;font-size:2.3rem}.prose-list li+li{margin-top:18px}.case-aside{border-top:var(--line);align-self:start;padding-top:25px}.case-aside h2{font-size:1.4rem}.case-aside a{border-bottom:1px solid #ccc;justify-content:space-between;gap:15px;padding:18px 0;font-size:.9rem;display:flex}.source-note{color:var(--muted);margin-top:30px;font-size:.8rem}.expertise-heading{background:var(--yellow);border:var(--line);margin-top:35px;padding:55px}.expertise-heading .page-label{background:var(--white)}.expertise-heading h1{max-width:1000px;margin-bottom:25px;font-size:clamp(2.6rem,5.5vw,5.2rem)}.expertise-heading .tags{margin-top:30px}.expertise-crosslinks{grid-template-columns:1fr 1fr;gap:30px;padding-top:0;display:grid}.expertise-crosslinks a{border:var(--line);background:var(--white);justify-content:space-between;align-items:center;padding:25px;font-weight:600;display:flex}.contact-heading{padding-bottom:55px}.contact-options{border:var(--line);grid-template-columns:1fr;display:grid}.contact-option{flex-direction:column;align-items:flex-start;gap:18px;padding:40px;text-decoration:none;display:flex;position:relative}.contact-option span{font-size:.85rem}.contact-option strong{font-family:var(--display);letter-spacing:-.04em;word-break:break-word;padding-right:35px;font-size:clamp(1.4rem,3vw,2.8rem)}.contact-option>svg{width:32px;height:32px;position:absolute;bottom:42px;right:35px}.contact-option:hover strong{text-underline-offset:8px;text-decoration:underline}.contact-option.email{background:var(--yellow);border-bottom:var(--line)}.contact-option.linkedin{background:var(--violet);color:var(--white)}.contact-option.linkedin:focus-visible{outline-color:var(--red);outline-offset:-7px}.contact-note{flex-wrap:wrap;justify-content:space-between;gap:25px;padding-block:40px 80px;font-size:.9rem;display:flex}.empty-state{background:var(--yellow);border:var(--line);gap:35px;margin-bottom:20px;padding:50px;display:flex}.empty-state>span{color:var(--violet);font-size:5rem;line-height:1}.empty-state h2{font-size:2.3rem}.empty-state p{max-width:700px;margin-top:20px;margin-bottom:25px}.rss-link{justify-content:flex-end;margin-bottom:75px;font-size:.8rem;display:flex}.article-list article{border-top:var(--line);padding-block:35px}.article-list article.has-cover{grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);align-items:center;gap:40px;display:grid}.article-thumbnail{aspect-ratio:16/9;border:var(--line);box-shadow:6px 6px 0 var(--ink);display:block}.article-thumbnail picture{width:100%;height:100%;display:block}.article-thumbnail img{object-fit:cover;width:100%;height:100%}.article-summary{min-width:0}.article-list h2,.article-list h3{max-width:900px;margin-bottom:20px}.article-list h2 a,.article-list h3 a{text-decoration:none}.article-list h2 svg,.article-list h3 svg{margin-left:20px}.article-summary>p:not(.meta){max-width:800px;color:var(--muted)}.article-list .text-link{margin-top:25px}.meta{color:var(--muted);flex-wrap:wrap;align-items:center;gap:10px 24px;margin-bottom:20px;font-size:.8rem;display:flex}.meta+.meta{margin-top:0}.article-heading{max-width:1100px;padding-bottom:45px}.article-heading h1{margin:25px 0;font-size:clamp(2.7rem,5.5vw,5.5rem)}.article-heading .lead{margin-bottom:25px}.topic-link{color:var(--violet);font-size:.9rem;font-weight:600}.article-cover{border:var(--line);max-width:1100px}.article-body{grid-template-columns:minmax(0,1fr) 260px;align-items:start;gap:48px;display:grid}.prose{width:100%;min-width:0}.prose>*+*{margin-top:1.5em}.prose h2{margin-top:1.8em;scroll-margin-top:25px;font-size:2.3rem}.prose h3{margin-top:1.7em;scroll-margin-top:25px;font-size:1.7rem}.prose h2:first-child{margin-top:0}.prose li+li{margin-top:.5em}.prose a[data-footnote-ref]:before{content:"["}.prose a[data-footnote-ref]:after{content:"]"}.prose .footnotes{border-top:var(--line);overflow-wrap:anywhere;padding-top:1.5em;font-size:.9rem}.prose .footnotes li,.prose sup[id]{scroll-margin-top:25px}.prose img{border:1px solid var(--ink)}.prose pre{border:var(--line);padding:25px;font-size:.85rem;line-height:1.75;overflow-x:auto}.prose pre[class*=language-]{background:var(--white)}.code-block pre{margin:0}.code-toolbar{border:var(--line);background:var(--yellow);border-bottom:0;justify-content:flex-end;padding:8px 12px;display:flex}.code-toolbar .sr-only{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.code-copy{border:1px solid var(--ink);box-shadow:2px 2px 0 var(--ink);background:var(--white);color:var(--ink);font:inherit;cursor:pointer;padding:4px 10px;font-size:.75rem}.code-copy:disabled{opacity:.65;cursor:wait}.code-copy:focus-visible{outline:3px solid var(--violet);outline-offset:3px}.token.comment,.token.prolog,.token.doctype{color:#626262}.token.keyword,.token.tag,.token.boolean{color:#7a1758}.token.string,.token.attr-value{color:#236127}.token.function,.token.class-name{color:#124e8c}.token.number,.token.constant{color:#853a00}.prose :not(pre)>code{background:#eee6f0;padding:.1em .3em;font-size:.88em}.prose blockquote{border-left:5px solid var(--red);margin-left:0;padding-left:25px;font-size:1.15rem}.prose table{border-collapse:collapse;display:block;overflow-x:auto}.prose th,.prose td{border:1px solid var(--ink);padding:10px}.article-toc{border:var(--line);background:var(--yellow);max-height:calc(100dvh - 50px);padding:16px;position:sticky;top:25px;overflow-y:auto}.article-toc h2{font-size:1.05rem}.article-toc ol{margin-bottom:0;padding:0;font-size:.75rem;list-style:none}.article-toc li{margin-top:6px;line-height:1.4}.article-toc a{padding:6px 8px;text-decoration:none;display:block}.article-toc a:hover{text-decoration:underline}.article-toc a[aria-current=location]{background:var(--violet);color:var(--white);font-weight:700}.article-toc .nested{padding-left:16px}.related-links{padding:0;list-style:none}.related-links a{border-bottom:var(--line);justify-content:space-between;gap:25px;padding:22px 0;font-size:1.2rem;display:flex}.not-found{grid-template-columns:1.15fr 1fr;min-height:620px;display:grid}.not-found-copy{flex-direction:column;justify-content:center;align-items:flex-start;padding:80px 45px 60px 0;display:flex}.not-found h1{letter-spacing:-.055em;margin-bottom:28px;font-size:clamp(3rem,5.6vw,5.6rem);line-height:.99}.not-found-links{flex-wrap:wrap;align-items:center;gap:22px 30px;margin-top:36px;display:flex}.not-found-links>span{flex-wrap:wrap;gap:22px 30px;display:flex}.not-found .language-note{align-self:stretch;margin-top:48px}.not-found-visual{border-left:var(--line);background-color:var(--yellow);place-items:center;display:grid;position:relative;overflow:hidden}.error-number{color:var(--violet);font-family:var(--display);letter-spacing:.04em;-webkit-text-stroke:8px var(--ink);paint-order:stroke fill;text-shadow:10px 10px 0 var(--ink);font-size:clamp(7rem,15vw,15rem);font-weight:800;line-height:1;transform:rotate(-4deg)}@media (prefers-reduced-motion:reduce){.button:hover{transform:none}}@media (width>=1600px){.hero h1{font-size:6.6rem}}@media (width<=1100px){.shell{width:calc(100% - 48px)}.site-header,.desktop-nav{gap:20px}.hero{grid-template-columns:1.1fr 1fr;min-height:610px}.hero-copy{padding-top:50px}.hero h1{font-size:5rem}html[lang=id] .hero h1{font-size:4.2rem}.hero-links{gap:22px}.experience-strip>span:last-child{max-width:300px}.section-heading{gap:25px}.section-heading>.text-link{flex-shrink:1;min-width:145px}.project-copy{padding:30px}.project-image{padding:25px}.project-sticker{font-size:.65rem}.expertise-row{grid-template-columns:1fr 1fr 25px;gap:25px}.expertise-row h3{font-size:1.65rem}.about-hero{gap:45px}.timeline-section{grid-template-columns:1fr;gap:45px}.timeline li{grid-template-columns:190px 1fr}.case-body,.expertise-body{gap:55px}.article-body{gap:40px}}@media (width<=800px){.article-list article.has-cover{grid-template-columns:1fr;gap:30px}.section{padding-block:65px}.desktop-nav{display:none}.site-header{flex-wrap:wrap;row-gap:20px;padding-block:22px 0}.header-actions{margin-left:auto}.mobile-nav{border-top:1px solid var(--ink);flex-basis:100%;display:block}.mobile-nav summary{cursor:pointer;justify-content:space-between;padding-block:10px;font-size:.85rem;list-style:none;display:flex}.mobile-nav summary::-webkit-details-marker{display:none}.mobile-nav nav{flex-wrap:wrap;gap:10px 25px;padding-bottom:20px;display:flex}.mobile-nav nav a{font-size:.9rem}.hero{grid-template-columns:1fr}.hero-copy{padding:45px 0 35px}.hero h1,html[lang=id] .hero h1{font-size:clamp(3.6rem,9vw,6rem)}.hero-intro{max-width:620px}.hero-visual{border-left:0;border-top:var(--line);min-height:370px;max-height:430px;padding-bottom:50px}.not-found{grid-template-columns:1fr;min-height:0}.not-found-visual{border-left:0;border-bottom:var(--line);grid-row:1;min-height:300px}.not-found-copy{padding:45px 0 65px}.error-number{font-size:clamp(7rem,28vw,12rem)}.hero-art{width:90%;max-height:370px}.portrait-note{min-width:0;bottom:20px;left:auto;right:20px;transform:none}.experience-strip{gap:15px}.experience-strip>span:last-child{display:none}.section-heading{flex-direction:column;align-items:flex-start}.section-heading>.text-link{padding-top:3px}.project-feature,.project-feature.linxchat{grid-template-columns:1fr}.project-feature.linxchat .project-image{border-left:0;border-bottom:var(--line);grid-area:auto/1}.project-feature.linxchat .project-copy{grid-area:auto/1}.project-image{border-right:0;border-bottom:var(--line);min-height:280px}.project-copy h3{font-size:3rem}.project-copy{padding:30px}.expertise-section .section-heading>p{max-width:650px}.expertise-row{grid-template-columns:1fr 30px;gap:16px}.expertise-row p{grid-area:2/1}.expertise-row>svg{grid-area:1/2/3}.contact-banner{gap:25px;margin-bottom:45px;padding:40px}.round-link{width:75px;height:75px}.round-link svg{width:30px;height:30px}.site-footer nav{gap:15px}.about-hero{grid-template-columns:1fr;gap:45px}.portrait-frame{width:min(450px,100%)}.skill-groups{grid-template-columns:1fr;gap:35px}.credentials{grid-template-columns:1fr;gap:55px}.project-grid{grid-template-columns:1fr 1fr}.case-body,.expertise-body{grid-template-columns:1fr;gap:45px}.case-aside{max-width:500px}.expertise-heading{padding:40px}.article-body{flex-direction:column;display:flex}.article-toc{order:-1;width:100%;max-height:none;position:static;overflow:visible}.article-toc ol{columns:2;column-gap:30px}.article-toc li{break-inside:avoid}.article-toc li:first-child{margin-top:0}}@media (width<=500px){.shell{width:calc(100% - 32px)}.section{padding-block:48px}.brand{gap:10px;font-size:1.05rem}.brand-mark{width:43px;height:43px;font-size:1.7rem}.header-actions{gap:15px}.button.small{gap:10px;padding:10px 12px;font-size:.8rem}.button.small svg{width:17px;height:17px}.hero-copy{padding-top:35px}.role-line{gap:8px;font-size:.74rem}.hero h1{font-size:clamp(3.25rem,13vw,4rem)}html[lang=id] .hero h1{font-size:clamp(2.7rem,10.4vw,3.4rem)}.hero-intro{font-size:.95rem}.hero-links{flex-direction:column;align-items:flex-start;gap:24px}.hero-location{gap:12px;padding-top:30px;font-size:.7rem}.hero-visual{min-height:340px}.not-found-visual{min-height:230px}.not-found-copy{padding:35px 0 50px}.not-found h1{font-size:clamp(2.6rem,11vw,3.4rem)}.not-found-links{gap:24px 28px}.error-number{-webkit-text-stroke-width:6px;text-shadow:7px 7px 0 var(--ink)}.portrait-note{gap:12px;padding:8px 13px 8px 8px;font-size:.75rem;bottom:15px;right:15px}.portrait-note strong{font-size:.8rem}.portrait-note img{width:55px;height:55px}.experience-strip strong{font-size:.95rem}.strip-star{font-size:2rem}.section-heading{margin-bottom:30px}.section-heading p{font-size:.9rem}.project-copy{padding:25px}.project-copy p{font-size:.9rem}.project-image{min-height:230px;padding:20px}.project-sticker{bottom:12px;left:12px}.project-copy h3{font-size:2.7rem}.contact-banner{flex-direction:column;align-items:flex-start;padding:30px 25px}.contact-banner h2{font-size:2.5rem}.round-link{align-self:flex-end;width:62px;height:62px}.contact-banner p{margin-top:20px;font-size:.85rem}.site-footer{grid-template-columns:1fr;padding-top:30px}.site-footer nav{justify-content:flex-start;gap:24px;padding-top:25px}.footer-name{font-size:1.8rem}.footer-bottom{flex-wrap:wrap;gap:10px 20px;margin-top:25px;font-size:.7rem}.footer-bottom p:first-child{flex-basis:100%}.page-heading h1{font-size:3.15rem}.about-hero h1{font-size:3rem}.timeline li{grid-template-columns:1fr;gap:15px}.timeline h3{font-size:1.5rem}.certifications li{gap:10px;font-size:.8rem}.certifications span{font-size:.7rem}.project-grid{grid-template-columns:1fr;gap:35px}.gallery-image{padding:0}.internal-note{gap:20px}.internal-note>span{font-size:2.5rem}.internal-note h2{font-size:1.7rem}.internal-note p{font-size:.9rem}.case-cover{padding:20px}.case-heading h1{overflow-wrap:anywhere;font-size:clamp(2.5rem,10vw,4rem)}.case-body h2,.expertise-body h2{font-size:2rem}.case-body p,.expertise-body p{font-size:.95rem}.expertise-heading{padding:30px 25px}.expertise-heading h1{overflow-wrap:break-word;font-size:clamp(2rem,8vw,2.8rem)}.expertise-crosslinks{grid-template-columns:1fr;gap:20px;padding-top:0}.expertise-crosslinks a{font-size:.9rem}.contact-heading h1{font-size:3rem}.contact-option{padding:30px 22px}.contact-option strong{font-size:1.8rem}.contact-option.email strong{font-size:1.5rem}.contact-option>svg{width:22px;height:22px;bottom:35px;right:20px}.contact-note{padding-block:30px 55px}.empty-state{flex-direction:column;gap:15px;padding:30px 25px}.empty-state>span{font-size:3.5rem}.empty-state h2{font-size:2rem}.article-toc ol{columns:1}.article-body{gap:35px}.prose h2{font-size:1.9rem}.prose h3{font-size:1.5rem}.prose pre{padding:16px;font-size:.75rem}.prose p{overflow-wrap:break-word}}
