@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/2c55a0e60120577a-s.03ez25a9g3i0n.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/9c72aa0f40e4eef8-s.3i9rha7jpxn0q.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/ad66f9afd8947f86-s.2o7ko1d-5m1xu.woff2)format("woff2");unicode-range:U+1F??}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/5476f68d60460930-s.1ee5w62fj497l.woff2)format("woff2");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/2bbe8d2671613f1f-s.1way2z9fj6cig.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/1bffadaabf893a1e-s.0szrwpqb9mkwe.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/83afe278b6a6bb3c-s.p.45535valc9rzk.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Inter Fallback;src:local(Arial);ascent-override:90.44%;descent-override:22.52%;line-gap-override:0.0%;size-adjust:107.12%}.inter_bace89c4-module__09p2wq__className{font-family:Inter,Inter Fallback;font-style:normal}.inter_bace89c4-module__09p2wq__variable{--font-inter:"Inter", "Inter Fallback"}
@font-face{font-family:Momo Trust Display;font-style:normal;font-weight:400;font-display:swap;src:url(../media/7e659b902c4ab7c3.15z8ptlu1vh5d.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Momo Trust Display;font-style:normal;font-weight:400;font-display:swap;src:url(../media/679359c4b82701ef.22pbnaqt6vmg5.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Momo Trust Display;font-style:normal;font-weight:400;font-display:swap;src:url(../media/035850c0f282ae70.p.28z3xv22rthwt.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}.momo_trust_display_9b82820b-module__wvwTNG__className{font-family:Momo Trust Display;font-style:normal;font-weight:400}.momo_trust_display_9b82820b-module__wvwTNG__variable{--font-momo:"Momo Trust Display"}
:root{--background:#f7f7f5;--foreground:#111;--paper:#f3f6fb;--paper-glass:#fff6;--paper-raised:#fff;--header-bg:#dcdef78c 93.5%;--muted:#474748;--border:#ddd;--dark:#111;--light:#fff;--accent:#000e30;--accent2:#31d2d2;--nav-hover:#1b2a4a0f;--spacing:120px;--line:#d7e0ee;--radial-bg:radial-gradient(50% 50% at 50% 50%, #edd7ff1a 8%, #e0e0ff80 46.5%, #3c43fc4d 93.5%);--font-sans:var(--font-inter);--space-xs:8px;--space-sm:16px;--space-md:24px;--space-lg:32px;--space-xl:48px;--space-2xl:80px;--space-3xl:120px;--max-width:1200px;--max-width-md:800px;--max-width-sm:600px;--radius-sm:6px;--radius-md:12px;--radius-lg:24px;--p-size-reg:clamp(1.1rem, 5vw, 1.4rem);--p-size-sm:clamp(1rem, 5vw, 1.3rem);--p-size-xs:clamp(.9rem, 5vw, 1.2rem);--h3-size-reg:clamp(1.5rem, 5vw, 1.6rem);--h3-size-sm:clamp(1.4rem, 5vw, 1.5rem);--h2-size-sm:clamp(1.3rem, 5vw, 1.4rem)}html.dark{--background:#26272b;--foreground:#f5f5f5;--paper:#1e1f23;--paper-glass:#12121499;--paper-raised:#1e1f23;--line:#333;--radial-bg:#26272b;--header-bg:#26272bb3;--muted:#aaa;--border:#333;--dark:#f5f5f5;--light:#111;--accent:#3ff;--accent2:#056f6f;--nav-hover:#e6e6ea33}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0}img{max-width:100%;display:block}button,input,textarea,select{font:inherit}body{font-family:var(--font-sans);color:var(--foreground);background:var(--background);font-size:16px;line-height:1.6;position:relative}body:before{content:"";background:var(--radial-bg);opacity:.5;pointer-events:none;z-index:-1;transition:opacity .3s;position:fixed;inset:0}h1,h2,h3,h4,h5,h6{font-family:var(--font-sans);letter-spacing:-.025em;margin-top:0;font-weight:600;line-height:1.1}h1{font-size:clamp(3rem,7vw,6rem)}h2{font-size:clamp(2rem,4vw,3.5rem)}h3{font-size:1.5rem}p{color:var(--muted);margin:0 0 1.5rem;font-size:clamp(1.1rem,5vw,1.4rem);font-weight:300;line-height:1.5}.subheading{margin-bottom:var(--space-xl);font-size:clamp(1.5rem,4vw,2.5rem)}.hero-intro{color:var(--muted);font-size:1.6rem;font-weight:300}.page-heading{font-size:clamp(1.3rem,5vw,1.6rem)}.page-intro{color:var(--muted);margin-bottom:2rem;font-size:clamp(1.1rem,5vw,1.4rem);font-weight:300}.skill-description{color:var(--muted);margin:.5rem 0 1rem;font-size:1rem;font-weight:300}.bold{font-weight:600}.about-page h1{letter-spacing:-.025em;margin-bottom:0;font-size:clamp(2.5rem,6vw,4rem);line-height:1.1}@media (max-width:768px){.subheading{margin-bottom:var(--space-sm)}}.accent{color:var(--accent)}.card-icon{width:28px;height:28px;margin-bottom:var(--space-sm);color:var(--accent);stroke-width:1.5px}.case-image-wrapper{border-radius:var(--radius-md);width:100%;position:relative;overflow:hidden}.grid-image-wrapper{width:100%;position:relative;overflow:hidden}.case-image{width:100%;height:auto;display:block}.iframe{box-sizing:border-box;width:100%;max-width:100vw;height:100%;max-height:100vh}.figma-comparison{gap:var(--space-lg);margin-top:var(--space-xl);grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.figma-panel{min-width:0}.prototype-header{margin-bottom:var(--space-sm);justify-content:space-between;align-items:center;display:flex}.prototype-header span{letter-spacing:.08em;text-transform:uppercase;color:var(--muted);font-size:.75rem;font-weight:700}.figma-embed{border:1px solid var(--border);border-radius:var(--radius-md);background:var(--paper);aspect-ratio:16/9;width:100%;position:relative;overflow:hidden}.figma-embed iframe{border:0;width:100%;height:100%;display:block}.project-card-image{aspect-ratio:16/10;border-radius:var(--radius-md);background:var(--paper);width:100%;position:relative;overflow:hidden}.project-card-img{object-fit:cover;transition:transform .4s}.project-card-link:hover .project-card-img{transform:scale(1.03)}@media (max-width:768px){.figma-comparison{gap:var(--space-xl);grid-template-columns:1fr}.figma-embed{aspect-ratio:16/9}}.d-flex{flex-direction:row;display:flex}.flex-column{flex-direction:column}.align-items-center{align-items:center}.align-items-start{align-items:start}.justify-content-center{justify-content:center}.justify-content-start{justify-content:start}.text-center{text-align:center}.text-md-start{text-align:left}.grid-2x{gap:var(--space-lg);margin-top:var(--space-xl);grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.grid-2-1{gap:var(--space-lg);margin-top:var(--space-xl);grid-template-columns:2fr 1fr;display:grid}.grid-3-1{gap:var(--space-lg);margin-top:var(--space-xl);grid-template-columns:3fr 1fr;display:grid}.grid-3x{gap:var(--space-lg);margin-top:var(--space-xl);grid-template-columns:repeat(3,minmax(0,1fr));display:grid}.grid-4x{gap:var(--space-lg);margin-top:var(--space-xl);grid-template-columns:repeat(4,minmax(0,1fr));display:grid}@media (max-width:768px){.grid-2x,.grid-3x,.grid-4x,.grid-3-1,.grid-2-1{gap:var(--space-xl);grid-template-columns:1fr}.d-flex{flex-direction:column}}.spacer-t{margin-top:var(--space-3xl)}.spacer-b{margin-bottom:var(--space-3xl)}.spacer-inner-t{margin-top:var(--space-xl)}.spacer-inner-b{margin-bottom:var(--space-xl)}.m-t-1{margin-top:1rem}.m-t-2{margin-top:2rem}.m-b-1{margin-bottom:1rem}.m-b-2{margin-bottom:2rem}.m-b-3{margin-bottom:3rem}.m-b-4{margin-bottom:4rem}.y-4{margin-top:4rem;margin-bottom:4rem}.y-5{margin-top:5rem;margin-bottom:5rem}.m-t-lg{margin-top:var(--space-lg)}@media (max-width:768px){.spacer-t,.spacer-inner-t{margin-top:1rem}.spacer-b,.spacer-inner-b{margin-bottom:1rem}.m-t-1{margin-top:.5rem}.m-t-2{margin-top:1rem}.m-t-lg{margin-top:var(--space-sm)}.m-b-1{margin-bottom:.5rem}.m-b-2{margin-bottom:1rem}.m-b-3{margin-bottom:2rem}.m-b-4{margin-bottom:3rem}.y-4{margin-top:3rem;margin-bottom:3rem}.y-5{margin-top:4rem;margin-bottom:4rem}.section-intro{margin-bottom:var(--space-lg)}}.container{width:min(100% - 48px,var(--max-width));margin-inline:auto}.container-md{width:min(100% - 48px,var(--max-width-md))}.container-sm{width:min(100% - 48px,var(--max-width-sm))}.section{padding-block:var(--spacing)}.cta,.section-highlight{background:var(--paper-glass)}.cta .button-primary,.section-highlight .button-primary{background:var(--foreground);color:var(--background);border-color:var(--background)}.cta .button-primary:hover,.section-highlight .button-primary:hover{background:var(--background);color:var(--foreground)}.section-intro{margin-bottom:64px}.section h2,.cta h2{letter-spacing:-.05em;font-size:clamp(2.5rem,5vw,5rem);line-height:1}.cta{padding:140px 0}.cta .button{margin-top:40px}@media (max-width:768px){:root{--spacing:80px}.container{width:min(100% - 32px,var(--max-width))}.hero{padding:100px 0}.project-grid,.process-grid,.about-preview,.skills,.playground-grid{grid-template-columns:1fr}.about-preview{gap:40px}.process-grid{gap:40px;margin-top:50px}.skills{gap:40px}nav{flex-wrap:wrap;justify-content:flex-end}.hero-actions{flex-wrap:wrap}.footer-inner{flex-direction:column;gap:20px}}.filter-row{flex-wrap:wrap;gap:8px;margin-bottom:28px;display:flex}.filter-chip{font-family:var(--font-sans);border:1px solid var(--nav-hover);color:var(--foreground);cursor:pointer;background:0 0;border-radius:999px;align-items:center;gap:8px;padding:7px 13px;font-size:.78rem;transition:background-color .2s,border-color .2s,color .2s,transform .2s;display:inline-flex}.filter-icon{width:16px;height:16px;color:var(--accent);flex-shrink:0}.filter-chip:hover{background:var(--nav-hover);border:1px solid #0000}.filter-chip.active{background:var(--foreground);color:var(--background);border:1px solid #0000}.filter-chip.active .filter-icon{color:var(--background)}.site-header{z-index:40;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-bottom:1px solid var(--line);background:var(--header-bg);color:var(--foreground);transition:background-color .3s,border-color .3s;position:sticky;top:0}.site-header .wrap{justify-content:space-between;align-items:center;height:72px;display:flex}.header-inner{align-items:center;min-height:80px;display:flex}.logo{font-family:var(--font-momo);letter-spacing:-.03em;color:var(--foreground);margin-right:auto;font-size:1.5rem;font-weight:400;text-decoration:none}.logo span{color:var(--accent)}.desktop-nav{align-items:center;gap:8px;margin-right:24px;display:flex}.desktop-nav a{color:var(--foreground);border:1px solid #0000;border-radius:999px;align-items:center;gap:8px;padding:9px 13px;font-size:.9rem;font-weight:500;line-height:1;transition:background-color .2s,border-color .2s,color .2s;display:inline-flex}.nav-icon{width:16px;height:16px;color:var(--accent);flex-shrink:0}.desktop-nav a:hover,.desktop-nav a.active{background:var(--nav-hover)}.header-actions{align-items:center;gap:12px;display:flex}.menu-toggle{border:1px solid var(--border);cursor:pointer;background:0 0;border-radius:50%;flex-direction:column;justify-content:center;align-items:center;gap:5px;width:42px;height:42px;padding:0;display:none}.menu-toggle span{background:var(--foreground);width:17px;height:1.5px;transition:transform .3s,opacity .3s}.menu-toggle.open span:first-child{transform:translateY(6.5px)rotate(45deg)}.menu-toggle.open span:nth-child(2){opacity:0}.menu-toggle.open span:nth-child(3){transform:translateY(-6.5px)rotate(-45deg)}.mobile-nav{display:none}@media (max-width:768px){.header-inner{min-height:72px}.desktop-nav{display:none}.menu-toggle{display:flex}.mobile-nav{background:var(--background);border-top:1px solid #0000;flex-direction:column;max-height:0;transition:max-height .35s,border-color .35s;display:flex;overflow:hidden}.mobile-nav.open{border-top-color:var(--border);max-height:400px}.mobile-nav a{border-bottom:1px solid var(--border);width:100%;color:var(--foreground);border-left:1px solid #0000;border-right:1px solid #0000;align-items:center;gap:12px;padding:18px 24px;font-size:1rem;font-weight:500;transition:background-color .2s,border-color .2s,color .2s;display:flex}.mobile-nav a:hover{background:var(--foreground);color:var(--background)}.mobile-nav a.active{border-left-color:var(--foreground);border-right-color:var(--foreground)}.mobile-nav a.active:hover{background:var(--foreground);color:var(--background)}}.site-footer{border-top:1px solid var(--border);padding:40px 0}.footer-inner{justify-content:space-between;display:flex}.footer-inner p{color:var(--muted);font-size:.9rem}.footer-links{gap:24px;display:flex}nav,button,a{font-family:var(--font-sans)}nav a{font-size:.95rem;font-weight:500}button{font-weight:500}.site-header,.site-footer,.project-card,.experiment,.button{transition:background-color .3s,color .3s,border-color .3s}a{color:inherit;text-decoration:none}.button{font-family:var(--font-sans);cursor:pointer;border:1px solid #0000;border-radius:999px;justify-content:center;align-items:center;gap:10px;padding:13px 20px;font-size:.95rem;font-weight:500;line-height:1;text-decoration:none;transition:background-color .2s,border-color .2s,color .2s,transform .2s;display:inline-flex}.button-icon{width:17px;height:17px;transition:transform .2s}.button:hover .button-icon{transform:translate(3px)}.button-primary{background:var(--foreground);color:var(--background);border-color:var(--foreground)}.button-primary:hover{color:var(--foreground);background:0 0}.button-secondary{color:var(--foreground);border-color:var(--foreground);background:0 0}.button-secondary:hover{background:var(--foreground);color:var(--background)}.button-accent{background:var(--accent);color:#fff;border-color:var(--accent)}.button-accent:hover{color:var(--accent);background:0 0}.gcard{background:var(--paper-raised);border-radius:10px;padding:18px}.glass-card{background:var(--paper-raised);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-radius:10px;padding:18px}.glass-card h3{margin-bottom:6px;font-size:1.3rem}.skills-grid{flex-wrap:wrap;gap:16px;display:flex}.skill-card{background:var(--paper-raised);border-radius:10px;flex-direction:column;flex:200px;align-items:flex-start;padding:18px;transition:transform .2s,border-color .2s,background-color .2s;display:flex}.skill-card:hover{transform:translateY(-2px);box-shadow:0 8px 24px #4a1b4214}.skill-card h3{margin-top:6px;margin-bottom:6px;font-size:1rem}.skill-card p{color:var(--slate);margin-bottom:0;font-size:.9rem}.skill-card .skill-icon{color:var(--accent);border-radius:10px;justify-content:center;align-items:center;width:44px;height:44px;margin-bottom:10px;font-size:26px;display:inline-flex}.build-log{border-left:2px solid var(--line);margin-left:8px;position:relative}.log-entry{margin-bottom:4px;padding:4px 0 4px 28px;position:relative}.log-entry:before{content:"";background:var(--paper-raised);border:2px solid var(--accent1);border-radius:50%;width:12px;height:12px;position:absolute;top:26px;left:-7px}.log-card{background:var(--paper-raised);border:1px solid var(--line);cursor:pointer;border-radius:12px;padding:22px 24px;transition:box-shadow .15s,border-color .15s}.log-card:hover,.log-card:focus-visible{border-color:var(--accent1);box-shadow:0 8px 24px #4a1b4214}.log-card-top{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:12px;display:flex}.log-week{font-family:var(--font-mono);color:var(--accent1);font-size:.78rem;font-weight:600}.log-card h3{margin:6px 0 4px;font-size:1.15rem}.log-tech{font-family:var(--font-mono);color:var(--slate);font-size:.78rem}.log-summary{color:var(--slate);max-width:68ch;margin:10px 0 0;font-size:.92rem}.card-column{margin-bottom:var(--space-sm);flex-direction:column;align-items:stretch;gap:20px;display:flex}.card-column .card{padding:var(--space-md);border-radius:var(--radius-md);background:var(--paper-raised);flex:1;transition:transform .2s,border-color .2s,background-color .2s}.card-column span,.card-column .small-number{margin-bottom:var(--space-sm);color:var(--accent);font-size:.9rem;display:block}.card-column h3,.card-column .card-title{line-height:1.3;font-size:var(--h3-size-sm);margin-bottom:10px;font-weight:600;display:block}.card-column p,.card-column .card-description{color:var(--muted);font-size:var(--p-size-sm);margin:0;line-height:1.4}.card-container{align-items:stretch;gap:var(--space-md);display:flex}.card-container .card{padding:var(--space-md);border-radius:var(--radius-md);background:var(--paper-raised);flex:1;transition:transform .2s,border-color .2s,background-color .2s}.card-container .card:hover{transform:translateY(-2px);box-shadow:0 8px 24px #4a1b4214}.card-container span,.card-container .small-number{margin-bottom:var(--space-sm);color:var(--accent);font-size:.9rem;display:block}.card-container h3,.card-container .card-title{line-height:1.3;font-size:var(--h3-size-sm);margin-bottom:10px;font-weight:600;display:block}.card-container p,.card-container .card-description{color:var(--muted);font-size:var(--p-size-sm);margin:0;line-height:1.4}.card-container ul,.card-container .card-ul{margin:1.3rem 0 0;padding:0;list-style:none}.card-container li,.card-container .card-li{border-top:1px solid var(--border);color:var(--muted);padding:9px 0;font-size:.9rem}.arrow-cards{align-items:stretch;gap:12px;display:flex}.arrow-cards .card{padding:var(--space-md);border-radius:var(--radius-md);background:var(--paper-raised);flex:1;transition:transform .2s,border-color .2s,background-color .2s}.arrow-cards .card:hover{transform:translateY(-2px);box-shadow:0 8px 24px #4a1b4214}.arrow-cards svg{width:18px;color:var(--accent);flex-shrink:0;align-self:center}.arrow-cards span,.arrow-cards .small-number{margin-bottom:var(--space-xs);color:var(--accent);font-size:.9rem;display:block}.arrow-cards h3,.arrow-cards .card-title{line-height:1.3;font-size:var(--h3-size-sm);margin-bottom:8px;font-weight:600;display:block}.arrow-cards h4{line-height:1.3;font-size:var(--h4-size-sm);margin-bottom:8px;font-weight:600;display:block}.arrow-cards p,.arrow-cards .card-description{color:var(--muted);font-size:var(--p-size-sm);margin:0;line-height:1.4}@media (max-width:1200px){.card-container{flex-wrap:wrap}.arrow-cards{gap:var(--space-md);flex-wrap:wrap}.arrow-cards div{flex-basis:calc(50% - 12px)}.arrow-cards svg{display:none}}@media (max-width:600px){.card-container{margin-bottom:var(--space-lg);flex-direction:column}.arrow-cards{gap:var(--space-md);flex-direction:column}}.hero{padding:110px 0}.eyebrow{letter-spacing:.1em;text-transform:uppercase;align-items:center;gap:8px;margin-bottom:1rem;font-size:.75rem;font-weight:500}.eyebrow-highlight{letter-spacing:.1em;text-transform:uppercase;align-items:center;gap:8px;margin-bottom:1rem;font-size:.75rem;font-weight:500;display:inline-flex}.eyebrow-highlight:before{content:"";background:var(--accent);border-radius:50%;width:8px;height:8px;box-shadow:0 0 0 3px #a73f8a2e}.hero h1,.page-header h1,.contact-page h1{letter-spacing:-.06em;max-width:900px;font-size:clamp(3.5rem,8vw,7rem);line-height:.95}.hero-description{max-width:650px;color:var(--muted);margin-top:40px;font-size:1.2rem}.hero-actions{gap:16px;margin-top:40px;display:flex}.text-link{margin-top:12px;font-weight:600;display:inline-block}.project-grid{margin-top:var(--space-xl);grid-template-columns:repeat(2,1fr);gap:64px 32px;display:grid}.project-image{aspect-ratio:16/10;border-radius:var(--radius-md);background:#ddd;align-items:flex-end;margin-bottom:24px;padding:20px;transition:background-color .3s;display:flex;overflow:hidden}html.dark .project-image{background:#292929}.project-image span{background:var(--light);border-radius:999px;padding:6px 10px;font-size:.7rem}.project-category{text-transform:uppercase;letter-spacing:.08em;margin-bottom:8px;font-size:.75rem}.project-content h3{letter-spacing:-.03em;font-size:2rem}.project-content>p:not(.project-category){max-width:600px;color:var(--muted);margin:16px 0}.tags{flex-wrap:wrap;gap:8px;margin:24px 0;display:flex}.tags span{border:1px solid var(--border);border-radius:50px;padding:5px 10px;font-size:.7rem}.section-dark{color:#fff;background:#111}html.dark .section-dark{color:#111;background:#f5f5f5}html.dark .section-dark .process-grid p{color:#666}.process-grid{grid-template-columns:repeat(3,1fr);gap:48px;margin-top:80px;display:grid}.process-grid span{opacity:.5}.process-grid h3{margin:24px 0 12px;font-size:1.8rem}.process-grid p{color:#aaa}.theme-toggle{border:1px solid var(--border);width:42px;height:42px;color:var(--foreground);cursor:pointer;background:0 0;border-radius:50%;justify-content:center;align-items:center;font-size:1.1rem;transition:background-color .3s,color .3s,border-color .3s,transform .2s;display:flex}.theme-toggle:hover{transform:rotate(10deg)}github-section{padding:var(--space-3xl) 0;border-top:1px solid var(--border)}.github-section .section-heading{max-width:700px;margin-bottom:var(--space-xl)}.github-section .section-heading p:last-child{margin-top:var(--space-sm);color:var(--muted)}.repo-grid{gap:var(--space-md);grid-template-columns:repeat(3,1fr);display:grid}.repo-card{min-height:230px;padding:var(--space-lg);border-radius:var(--radius-md);background:var(--paper-raised);flex-direction:column;transition:transform .2s,border-color .2s,background-color .2s;display:flex}.repo-card:hover.repo-card{transform:translateY(-4px);box-shadow:0 8px 24px #4a1b4214}.repo-card h3{margin-bottom:var(--space-sm);font-size:1.15rem}.repo-card p{color:var(--muted);flex:1;margin:0;font-size:.9rem;line-height:1.6}.repo-card .repo-contribution{margin-top:.5rem}.repo-card-header{margin-bottom:var(--space-md);justify-content:space-between;align-items:center;display:flex}.repo-icon{width:24px;height:24px;color:var(--foreground)}.repo-card-header a{border:1px solid var(--border);width:36px;height:36px;color:var(--foreground);border-radius:50%;justify-content:center;align-items:center;transition:background-color .2s,border-color .2s,color .2s,transform .2s;display:flex}.repo-card-header a:hover{background:var(--foreground);border-color:var(--foreground);color:var(--background);transform:translateY(-2px)}.repo-link-icon{width:16px;height:16px}.repo-category{margin-bottom:var(--space-sm);color:var(--accent);letter-spacing:.08em;text-transform:uppercase;font-size:.75rem;font-weight:600;line-height:1.2}.repo-card h3{margin:0 0 var(--space-sm);color:var(--foreground);font-size:1.2rem;font-weight:600;line-height:1.3}.repo-card>p{color:var(--muted);flex:1;margin:0;font-size:.9rem;line-height:1.6}.repo-technologies{margin-top:var(--space-lg);flex-wrap:wrap;gap:6px;display:flex}.repo-technologies span{border:1px solid var(--border);color:var(--muted);border-radius:999px;align-items:center;padding:5px 9px;font-size:.72rem;font-weight:500;line-height:1;display:inline-flex}.repo-meta{align-items:center;gap:var(--space-md);margin-top:var(--space-lg);padding-top:var(--space-sm);border-top:1px solid var(--border);color:var(--muted);font-size:.8rem;display:flex}.repo-meta span{align-items:center;gap:5px;display:inline-flex}.repo-meta svg{width:14px;height:14px}.state-msg{padding:var(--space-lg);border:1px solid var(--border);border-radius:var(--radius-md);color:var(--muted);text-align:center}.github-cta{margin-top:var(--space-xl);justify-content:center;display:flex}.github-cta .button{gap:9px}.github-cta .button svg{width:17px;height:17px}@media (max-width:900px){.repo-grid{grid-template-columns:repeat(2,1fr)}}@media (max-width:600px){.github-section{padding:var(--space-2xl) 0}.repo-grid{grid-template-columns:1fr}.repo-card{min-height:auto}.github-cta{justify-content:flex-start}.github-cta .button{width:100%}}.back-to-top{z-index:100;border:1px solid var(--border);background:var(--paper-raised);width:48px;height:48px;color:var(--foreground);cursor:pointer;border-radius:50%;justify-content:center;align-items:center;transition:transform .2s,background-color .2s,border-color .2s;display:flex;position:fixed;bottom:32px;right:32px;box-shadow:0 8px 24px #00000014}.back-to-top svg{width:18px;height:18px}.back-to-top:hover{background:var(--accent);color:var(--light);border-color:var(--accent);transform:translateY(-3px)}.back-to-top:focus-visible{outline:2px solid var(--accent);outline-offset:3px}@media (max-width:768px){.back-to-top{width:44px;height:44px;bottom:20px;right:20px}}.case-breadcrumb{gap:var(--space-xs);display:flex}.breadcrumb-separator{color:var(--muted);opacity:.5}.breadcrumb-current{color:var(--muted);font-size:.9rem;font-weight:500}@media (max-width:768px){.case-breadcrumb{gap:var(--space-xs);margin-bottom:var(--space-lg)}.breadcrumb-current{font-size:.85rem}}.about-preview{grid-template-columns:1fr 1fr;gap:80px;display:grid}.about-preview .about-text{max-width:500px;color:var(--muted)}.about-preview .text-link{color:var(--foreground)}.contact-page{min-height:70vh}.contact-page>.container>p:not(.eyebrow){max-width:500px;color:var(--muted);margin:40px 0;font-size:1.2rem}.case-section{padding:var(--space-3xl) 0}.case-muted{background:var(--paper)}.case-dark{background:var(--accent2);color:#fff}.case-dark .eyebrow,.case-dark .section-intro p{color:#ffffffb3}.case-dark h2,.case-dark h3,.case-dark p{color:#fff}.eyebrow{margin-bottom:var(--space-sm);color:var(--accent);letter-spacing:.08em;text-transform:uppercase;font-size:.75rem;font-weight:600;line-height:1.2}.case-hero{padding:var(--space-lg) 0 var(--space-3xl)}.case-hero h1{max-width:1000px;margin-bottom:var(--space-lg);letter-spacing:-.04em;font-size:clamp(3rem,7vw,6.5rem);line-height:.98}.back-link{margin-bottom:var(--space-3xl);color:var(--muted);align-items:center;gap:8px;font-size:.9rem;text-decoration:none;transition:color .2s;display:inline-flex}.back-link:hover{color:var(--foreground)}.back-link svg{width:16px;height:16px}.case-hero-content{max-width:1000px;margin-bottom:var(--space-2xl)}.case-eyebrow{margin-bottom:var(--space-md);color:var(--accent);letter-spacing:.08em;text-transform:uppercase;font-size:.8rem;font-weight:600}.case-hero-intro{max-width:760px;color:var(--muted);margin:0;font-size:clamp(1.1rem,5vw,1.4rem);line-height:1.6}.case-meta{gap:var(--space-lg);margin-top:var(--space-2xl);padding-top:var(--space-lg);border-top:1px solid var(--border);grid-template-columns:repeat(4,1fr);display:grid}.case-meta div{flex-direction:column;gap:7px;display:flex}.case-meta span{text-transform:uppercase;letter-spacing:.06em;font-size:.75rem}.case-meta .case-meta-label{color:var(--accent)}.case-meta strong{font-size:.9rem;line-height:1.4}.section-intro{max-width:850px;margin-bottom:var(--space-2xl)}.section-intro h2{max-width:850px;margin-bottom:var(--space-lg);letter-spacing:-.035em;font-size:clamp(2.2rem,5vw,4.5rem);line-height:1.05}.section-intro p:last-child{max-width:700px;color:var(--muted);font-size:clamp(1.1rem,5vw,1.4rem);line-height:1.5}.case-grid{gap:var(--space-2xl);display:grid}.case-grid-2{grid-template-columns:repeat(2,1fr)}.case-grid-3{grid-template-columns:repeat(3,1fr)}.case-grid-4{grid-template-columns:repeat(4,1fr)}.case-copy{max-width:650px}.case-copy p{margin:0 0 var(--space-lg);color:var(--muted);font-size:clamp(1.1rem,5vw,1.4rem);line-height:1.75}.case-copy .p:last-child{margin-bottom:0}.challenge-list{flex-direction:column;gap:0;display:flex}.challenge-list div{align-items:center;gap:var(--space-xl);padding:var(--space-lg) 0;border-top:1px solid var(--border);grid-template-columns:1fr auto 2fr;display:grid}.challenge-list div:last-child{border-bottom:1px solid var(--border)}.challenge-list strong{font-size:.95rem}.challenge-list strong:last-child{text-align:right}.challenge-list span{color:var(--accent);font-weight:700}.case-image-placeholder{border:1px dashed var(--border);border-radius:var(--radius-md);background:linear-gradient(135deg, transparent 49.5%, var(--border) 49.5%, var(--border) 50.5%, transparent 50.5%),linear-gradient(45deg, transparent 49.5%, var(--border) 49.5%, var(--border) 50.5%, transparent 50.5%);background-size:32px 32px;justify-content:center;align-items:center;min-height:360px;display:flex;position:relative;overflow:hidden}.case-dark .case-image-placeholder{background-color:#0000;background-image:linear-gradient(135deg,#0000 49.5%,#ffffff1f 49.5% 50.5%,#0000 50.5%),linear-gradient(45deg,#0000 49.5%,#ffffff1f 49.5% 50.5%,#0000 50.5%);background-position:0 0,0 0;background-repeat:repeat,repeat;background-size:32px 32px;background-attachment:scroll,scroll;background-origin:padding-box,padding-box;background-clip:border-box,border-box;border-color:#ffffff40}.placeholder-content{padding:var(--space-lg);text-align:center;flex-direction:column;align-items:center;gap:8px;display:flex}.placeholder-label{letter-spacing:.08em;text-transform:uppercase;font-size:.8rem;font-weight:600}.placeholder-description{color:var(--muted);font-size:.85rem}.placeholder-hero{min-height:min(65vh,720px)}.placeholder-large{min-height:520px}.placeholder-wide{min-height:420px}.business-diagram{justify-content:center;align-items:center;gap:var(--space-md);margin-bottom:var(--space-2xl);padding:var(--space-xl);border:1px solid var(--border);border-radius:var(--radius-md);flex-wrap:wrap;display:flex}.business-diagram div{border:1px solid var(--border);border-radius:999px;padding:12px 18px;font-size:.9rem;font-weight:600}.business-diagram span{color:var(--accent);font-weight:600}.user-groups{gap:var(--space-md);margin-bottom:var(--space-2xl);grid-template-columns:repeat(2,1fr);display:grid}.user-group{padding:var(--space-lg);border:1px solid var(--border);border-radius:var(--radius-md)}.card-number{margin-bottom:var(--space-lg);color:var(--accent);font-size:.75rem;font-weight:600;display:block}.user-group h3{margin-bottom:var(--space-md);font-size:1.4rem}.user-group ul{margin:0;padding:0;list-style:none}.user-group li{border-top:1px solid var(--border);color:var(--muted);padding:9px 0;font-size:.9rem}.research-method h2{font-size:clamp(1.5rem,4vw,3rem)}.case-study{overflow:hidden}.grid-3x{gap:var(--space-sm);margin-bottom:var(--space-2xl);grid-template-columns:repeat(3,1fr);display:grid}.grid-4x{gap:var(--space-sm);margin-bottom:var(--space-2xl);grid-template-columns:repeat(4,1fr);display:grid}.grid-3x div,.grid-4x div{padding:var(--space-lg);border:1px solid var(--border);border-radius:var(--radius-md);background:var(--paper-raised)}.grid-3x h3,.grid-4x h3{margin-bottom:var(--space-sm)}.grid-3x p,.grid-4x p{color:var(--muted);margin:0;font-size:clamp(1.1rem,5vw,1.4rem);line-height:1.6}.grid-3x span,.grid-4x span{margin-bottom:var(--space-sm);color:var(--muted);text-transform:uppercase;letter-spacing:.06em;font-size:.75rem;display:block}.insight-block{max-width:850px;margin:var(--space-3xl) auto 0;text-align:center}.insight-block blockquote{margin:var(--space-lg) 0;letter-spacing:-.02em;font-size:clamp(1.5rem,3vw,2.4rem);line-height:1.25}.insight-block p{color:var(--muted)}.insight-block2{margin-top:var(--space-xl);padding:var(--space-xl);border:1px solid var(--border);border-radius:var(--radius-md)}.insight-block2 h3{max-width:700px;font-size:clamp(1.5rem,3vw,2.25rem)}.insight-block2 p{max-width:700px}.outcome-grid{margin-top:var(--space-xl);background:#ffffff26;border:1px solid #ffffff26;grid-template-columns:repeat(2,1fr);gap:1px;display:grid}.case-outcome{padding:var(--space-xl);background:#ffffff08}.case-outcome h3{margin-bottom:var(--space-sm)}.case-outcome p{margin:0}.positioning-grid-3{grid-template-columns:repeat(3,1fr);gap:1rem;display:grid}.positioning-grid-3 div{padding:var(--space-xl);background:var(--paper-glass);border-radius:1rem}.positioning-grid-3 span{margin-bottom:var(--space-sm);color:var(--accent);text-transform:uppercase;letter-spacing:.06em;font-size:.9rem;display:block}.positioning-grid-3 h3{max-width:450px;margin-bottom:var(--space-sm);font-size:1.5rem;line-height:1.3}.positioning-grid{grid-template-columns:repeat(2,1fr);gap:1rem;display:grid}.positioning-grid div{padding:var(--space-xl);background:var(--paper-glass);border-radius:1rem}.positioning-grid span{margin-bottom:var(--space-sm);color:var(--accent);text-transform:uppercase;letter-spacing:.06em;font-size:.9rem;display:block}.positioning-grid h3{max-width:450px;margin-bottom:var(--space-sm);font-size:1.5rem;line-height:1.3}.detect-block{justify-content:center;align-items:center;gap:var(--space-md);margin-top:var(--space-3xl);letter-spacing:-.04em;flex-wrap:wrap;font-size:clamp(2rem,5vw,4rem);font-weight:600;display:flex}.detect-block span:nth-child(2n){color:var(--accent)}.image-row{margin:var(--space-xl) 0}.colour-system{gap:var(--space-sm);grid-template-columns:repeat(2,1fr);display:grid}.colour-swatch{min-height:180px;padding:var(--space-md);border-radius:var(--radius-md);align-items:flex-end;display:flex}.colour-swatch span{font-size:.8rem;font-weight:600}.swatch-navy{color:#fff;background:#000e30}.swatch-cyan{color:#000e30;background:#3ff}.swatch-blue{color:#fff;background:#36f}.swatch-light{color:#111;background:#f3f6fb}.type-showcase{gap:var(--space-2xl);padding:var(--space-2xl);border:1px solid var(--border);border-radius:var(--radius-md);grid-template-columns:1fr 1fr;display:grid}.type-showcase span{margin-bottom:var(--space-md);color:var(--muted);text-transform:uppercase;letter-spacing:.06em;font-size:.75rem;display:block}.type-showcase h3{letter-spacing:-.04em;margin:0;font-size:clamp(2rem,4vw,4rem);line-height:1}.type-showcase p{max-width:500px;color:var(--muted);font-size:1.1rem;line-height:1.7}.v-journey{gap:var(--space-xs);margin-top:var(--space-lg);flex-direction:column;display:flex}.v-journey>div{padding:var(--space-sm) var(--space-md);border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--paper-raised);font-weight:600}.v-journey>span{padding-left:var(--space-sm);color:var(--accent)}.secondary-journeys{margin-top:var(--space-3xl)}.journey-grid{gap:var(--space-md);grid-template-columns:repeat(4,1fr);display:grid}.journey-grid>div{gap:var(--space-sm);padding:var(--space-lg);border:1px solid var(--border);border-radius:var(--radius-md);flex-direction:column;display:flex}.journey-grid strong{color:var(--muted);font-size:.75rem}.journey{margin-bottom:var(--space-2xl);background:var(--background);border:1px solid var(--border);grid-template-columns:repeat(7,1fr);gap:1px;display:grid}.journey div{min-height:150px;padding:var(--space-md);background:var(--paper-glass)}.journey span{margin-bottom:var(--space-sm);color:var(--accent);font-size:.8rem;font-weight:600;display:block}.journey strong{font-size:.9rem;line-height:1.4;display:block}.principles-grid{gap:var(--space-sm);margin-bottom:var(--space-2xl);grid-template-columns:repeat(4,1fr);display:grid}.principles-grid>div{padding:var(--space-md);border-radius:var(--radius-md);background:var(--paper-glass);border:1px solid #fff3}.principles-grid span{color:var(--accent);font-size:.75rem}.principles-grid h3{margin:var(--space-sm) 0 var(--space-sm);color:var(--foreground)}.principles-grid p{color:var(--muted);font-size:.9rem;line-height:1.6}.square-grid{align-items:stretch;gap:var(--space-md);margin-top:var(--space-xl);grid-template-columns:1fr auto 1fr auto 1fr;display:grid}.square-grid .sg-box{padding:var(--space-lg);border:1px solid var(--border);border-radius:var(--radius-md)}.square-grid span{margin-bottom:var(--space-md);letter-spacing:.1em;font-size:.7rem;font-weight:700;display:block}.square-grid h3{margin-bottom:var(--space-md)}.square-grid p{margin:0}.process-flow{margin-bottom:var(--space-2xl);align-items:stretch;gap:12px;display:flex}.process-flow div{padding:var(--space-lg);border:1px solid var(--border);border-radius:var(--radius-md);background:var(--paper-glass);flex:1}.process-flow svg{flex-shrink:0;align-self:center;width:18px}.process-flow span{margin-bottom:var(--space-xs);color:var(--accent);font-size:.8rem;display:block}.process-flow .card-title{margin-bottom:8px;font-size:1.1rem;font-weight:600;line-height:1.3;display:block}.process-flow .card-description{color:var(--muted);margin:0;font-size:.8rem;line-height:1.5}@media (max-width:1200px){.process-flow{flex-wrap:wrap}.process-flow div{flex-basis:calc(50% - 12px)}.process-flow svg{display:none}}.number-card-grid{margin:var(--space-2xl) 0;background:var(--paper-raised);border:1px solid var(--border);grid-template-columns:repeat(2,1fr);gap:1px;display:grid}.number-card-grid div{padding:var(--space-xl);background:var(--background)}.number-card-grid h3{margin-bottom:var(--space-sm);font-size:1.5rem}.number-card-grid p{color:var(--muted);margin:0;font-size:1.3rem;line-height:1.5}.number-card-grid span{margin-bottom:var(--space-sm);color:var(--accent);font-size:.8rem;font-weight:600;display:block}.case-gallery{gap:var(--space-md);margin-top:var(--space-xl);grid-template-columns:repeat(2,1fr);display:grid}.case-gallery .case-image-placeholder{min-height:360px}.tech-stack{margin-bottom:var(--space-2xl);flex-wrap:wrap;gap:10px;display:flex}.tech-stack span{border:1px solid var(--border);border-radius:999px;padding:10px 16px;font-size:.85rem}.migration-flow{justify-content:center;align-items:center;gap:var(--space-md);margin-bottom:var(--space-2xl);flex-wrap:wrap;display:flex}.migration-flow div{border:1px solid var(--border);border-radius:999px;padding:14px 18px;font-size:.85rem}.migration-flow span{color:var(--accent)}.case-reflection{padding-bottom:var(--space-3xl)}.next-project{padding:var(--space-3xl) 0;border-top:1px solid var(--border)}.next-project-link{color:var(--foreground);letter-spacing:-.04em;justify-content:space-between;align-items:center;font-size:clamp(2rem,5vw,5rem);font-weight:600;line-height:1;text-decoration:none;display:flex}.next-project-link svg{width:40px;height:40px;transition:transform .2s}.next-project-link:hover svg{transform:translate(8px)}html.dark .case-image-placeholder{background-color:var(--paper)}html.dark .case-muted{background:var(--paper)}@media (max-width:900px){.case-meta{grid-template-columns:repeat(2,1fr)}.case-grid{gap:var(--space-lg)}.case-grid-2,.case-grid-3,.case-grid-4,.research-grid{grid-template-columns:1fr}.principles-grid,.journey{grid-template-columns:repeat(2,1fr)}.process-flow{flex-wrap:wrap}.process-flow>div{flex-basis:calc(50% - 12px)}.process-flow>svg{display:none}.grid-3x,.grid-4x{gap:var(--space-md);grid-template-columns:2fr}}@media (max-width:600px){.challenge-list div{gap:var(--space-sm);padding:var(--space-sm) 0;flex-direction:column;display:flex}.challenge-list div p{text-align:center}.insight-block{margin:var(--space-lg) auto 0}.case-section{padding:var(--space-lg) 0}.case-hero{padding-bottom:var(--space-2xl)}.back-link{margin-bottom:var(--space-2xl)}.case-hero h1{font-size:clamp(2.7rem,13vw,4rem)}.case-meta,.grid-3x,.grid-4x{gap:var(--space-md);grid-template-columns:1fr}.case-meta div{padding-bottom:var(--space-md);border-bottom:1px solid var(--border)}.placeholder-hero{min-height:420px}.placeholder-large{min-height:360px}.placeholder-wide{min-height:300px}.positioning-grid div,.positioning-grid-3 div{padding:var(--space-lg)}.user-groups,.positioning-grid,.positioning-grid-3,.type-showcase,.development-grid,.production-grid,.outcome-grid{grid-template-columns:1fr}.colour-system{grid-template-columns:1fr 1fr}.journey{grid-template-columns:1fr}.journey div{min-height:auto}.journey span{margin-bottom:var(--space-sm)}.principles-grid{grid-template-columns:1fr}.process-flow{flex-direction:column}.process-flow>div{flex-basis:auto}.business-diagram{justify-content:flex-start}.migration-flow{flex-direction:column;justify-content:flex-start;align-items:flex-start}.migration-flow span{transform:rotate(90deg)}.next-project-link svg{width:28px;height:28px}.insight-block{margin:var(--space-md) auto 0;text-align:center}}.cargiant-case-study .design-strategy{margin-top:var(--space-xl)}.cargiant-case-study .strategy-journey{margin-top:var(--space-2xl);grid-template-columns:repeat(6,1fr);gap:0;display:grid}.cargiant-case-study .strategy-step{padding:var(--space-md);border-top:1px solid var(--foreground);position:relative}.cargiant-case-study .strategy-step:after{content:"→";color:var(--muted);font-size:1.25rem;position:absolute;top:50%;right:-8px;transform:translateY(-50%)}.cargiant-case-study .strategy-step:last-child:after{display:none}.cargiant-case-study .strategy-step span{margin-bottom:var(--space-sm);color:var(--muted);letter-spacing:.08em;font-size:.75rem;font-weight:700;display:block}.cargiant-case-study .strategy-step h3{margin:0;font-size:1rem}.rethink-case-study .case-hero h1{max-width:900px}.rethink-case-study .case-hero-intro{max-width:700px}.rethink-case-study .prototype-link{margin-top:var(--space-xl)}.rethink-case-study .production-grid{gap:var(--space-lg);grid-template-columns:repeat(4,1fr);display:grid}.rethink-case-study .production-grid>div span{margin-bottom:var(--space-sm);opacity:.5;font-size:.8rem;font-weight:700;display:block}.rethink-case-study .production-grid>div h3{margin-bottom:var(--space-xs)}.rethink-case-study .production-grid>div p{color:var(--muted);margin:0}@media (max-width:900px){.rethink-case-study .production-grid{grid-template-columns:repeat(2,1fr)}}@media (max-width:600px){.rethink-case-study .production-grid{grid-template-columns:1fr}}.playground-grid{grid-template-columns:repeat(2,1fr);gap:24px;display:grid}.experiment{border:1px solid var(--border);min-height:280px;padding:32px}.experiment h3{margin-top:80px;font-size:2rem}
