@font-face{font-family:Onest Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/onest-cyrillic-ext-wght-normal.DOFToQv1.woff2)format("woff2-variations");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Onest Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/onest-cyrillic-wght-normal.DayYxulF.woff2)format("woff2-variations");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Onest Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/onest-math-wght-normal.Bl4ZGkZl.woff2)format("woff2-variations");unicode-range:U+302-303,U+305,U+307-308,U+310,U+312,U+315,U+31A,U+326-327,U+32C,U+32F-330,U+332-333,U+338,U+33A,U+346,U+34D,U+391-3A1,U+3A3-3A9,U+3B1-3C9,U+3D1,U+3D5-3D6,U+3F0-3F1,U+3F4-3F5,U+2016-2017,U+2034-2038,U+203C,U+2040,U+2043,U+2047,U+2050,U+2057,U+205F,U+2070-2071,U+2074-208E,U+2090-209C,U+20D0-20DC,U+20E1,U+20E5-20EF,U+2100-2112,U+2114-2115,U+2117-2121,U+2123-214F,U+2190,U+2192,U+2194-21AE,U+21B0-21E5,U+21F1-21F2,U+21F4-2211,U+2213-2214,U+2216-22FF,U+2308-230B,U+2310,U+2319,U+231C-2321,U+2336-237A,U+237C,U+2395,U+239B-23B7,U+23D0,U+23DC-23E1,U+2474-2475,U+25AF,U+25B3,U+25B7,U+25BD,U+25C1,U+25CA,U+25CC,U+25FB,U+266D-266F,U+27C0-27FF,U+2900-2AFF,U+2B0E-2B11,U+2B30-2B4C,U+2BFE,U+3030,U+FF5B,U+FF5D,U+1D400-1D7FF,U+1EE??}@font-face{font-family:Onest Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/onest-symbols-wght-normal.DxQzqQfC.woff2)format("woff2-variations");unicode-range:U+1-C,U+E-1F,U+7F-9F,U+20DD-20E0,U+20E2-20E4,U+2150-218F,U+2190,U+2192,U+2194-2199,U+21AF,U+21E6-21F0,U+21F3,U+2218-2219,U+2299,U+22C4-22C6,U+2300-243F,U+2440-244A,U+2460-24FF,U+25A0-27BF,U+28??,U+2921-2922,U+2981,U+29BF,U+29EB,U+2B??,U+4DC0-4DFF,U+FFF9-FFFB,U+10140-1018E,U+10190-1019C,U+101A0,U+101D0-101FD,U+102E0-102FB,U+10E60-10E7E,U+1D2C0-1D2D3,U+1D2E0-1D37F,U+1F0??,U+1F100-1F1AD,U+1F1E6-1F1FF,U+1F30D-1F30F,U+1F315,U+1F31C,U+1F31E,U+1F320-1F32C,U+1F336,U+1F378,U+1F37D,U+1F382,U+1F393-1F39F,U+1F3A7-1F3A8,U+1F3AC-1F3AF,U+1F3C2,U+1F3C4-1F3C6,U+1F3CA-1F3CE,U+1F3D4-1F3E0,U+1F3ED,U+1F3F1-1F3F3,U+1F3F5-1F3F7,U+1F408,U+1F415,U+1F41F,U+1F426,U+1F43F,U+1F441-1F442,U+1F444,U+1F446-1F449,U+1F44C-1F44E,U+1F453,U+1F46A,U+1F47D,U+1F4A3,U+1F4B0,U+1F4B3,U+1F4B9,U+1F4BB,U+1F4BF,U+1F4C8-1F4CB,U+1F4D6,U+1F4DA,U+1F4DF,U+1F4E3-1F4E6,U+1F4EA-1F4ED,U+1F4F7,U+1F4F9-1F4FB,U+1F4FD-1F4FE,U+1F503,U+1F507-1F50B,U+1F50D,U+1F512-1F513,U+1F53E-1F54A,U+1F54F-1F5FA,U+1F610,U+1F650-1F67F,U+1F687,U+1F68D,U+1F691,U+1F694,U+1F698,U+1F6AD,U+1F6B2,U+1F6B9-1F6BA,U+1F6BC,U+1F6C6-1F6CF,U+1F6D3-1F6D7,U+1F6E0-1F6EA,U+1F6F0-1F6F3,U+1F6F7-1F6FC,U+1F7??,U+1F800-1F80B,U+1F810-1F847,U+1F850-1F859,U+1F860-1F887,U+1F890-1F8AD,U+1F8B0-1F8BB,U+1F8C0-1F8C1,U+1F900-1F90B,U+1F93B,U+1F946,U+1F984,U+1F996,U+1F9E9,U+1FA00-1FA6F,U+1FA70-1FA7C,U+1FA80-1FA89,U+1FA8F-1FAC6,U+1FACE-1FADC,U+1FADF-1FAE9,U+1FAF0-1FAF8,U+1FB??}@font-face{font-family:Onest Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/onest-vietnamese-wght-normal.BBxOatbv.woff2)format("woff2-variations");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:Onest Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/onest-latin-ext-wght-normal.QAhDxQuo.woff2)format("woff2-variations");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:Onest Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/onest-latin-wght-normal.Dun_Rd-l.woff2)format("woff2-variations");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}:root{--bg:#f5f5f7;--surface:#fff;--text:#1d1d1f;--muted:#6e6e73;--line:#00000014;--accent:#0a66d6;--accent-2:#3fa1ff;--accent-soft:#e8f1fd;--accent-text:#fff;--ink:#1d1d1f;--sans:"Onest Variable",-apple-system,"SF Pro Text",system-ui,sans-serif;--serif:var(--sans);--r-xl:32px;--r-l:24px;--r-m:16px;--r-s:12px;--ease:cubic-bezier(.2,.8,.2,1);--ease-out:cubic-bezier(.16,1,.3,1);--shadow-s:0 1px 2px #00000008,0 6px 18px #0000000d;--shadow-m:0 2px 4px #0000000a,0 18px 44px #00000017;--gutter:32px}*{box-sizing:border-box}html{scroll-behavior:smooth;scrollbar-gutter:stable;scroll-padding-top:90px}body{background:var(--bg);color:var(--text);font-family:var(--sans);-webkit-font-smoothing:antialiased;font-optical-sizing:auto;margin:0;font-size:16px;line-height:1.5}[hidden]{display:none!important}button,a,input,textarea{-webkit-tap-highlight-color:transparent}button,input,textarea{font:inherit}button,a{touch-action:manipulation}a{color:inherit;text-decoration:none}button{cursor:pointer;color:inherit;background:0 0;border:0;padding:0}button:focus-visible,a:focus-visible,[tabindex]:focus-visible{outline:3px solid var(--accent);outline-offset:4px;border-radius:8px}svg{flex-shrink:0;width:24px;height:24px;display:inline-block}h1,h2,h3,p{margin:0}em{font-style:normal}::selection{color:#0b1a2e;background:#cfe3ff}.container{max-width:1200px;padding-left:var(--gutter);padding-right:var(--gutter);margin-left:auto;margin-right:auto}.skip-link{z-index:200;background:var(--text);color:#fff;border-radius:999px;padding:12px 16px;position:fixed;top:-80px;left:16px}.skip-link:focus{top:16px}.eyebrow{letter-spacing:.04em;text-transform:uppercase;color:var(--muted);font-size:12px;font-weight:600;line-height:1.5}.site-header{z-index:50;backdrop-filter:saturate(180%)blur(20px);transition:border-color .3s var(--ease),background .3s var(--ease);background:#f5f5f7b8;border-bottom:1px solid #0000;position:sticky;top:0}.site-header.is-scrolled{border-bottom-color:var(--line);background:#f5f5f7d1}.header-inner{justify-content:space-between;align-items:center;gap:20px;height:68px;display:flex}.brand{letter-spacing:-.01em;white-space:nowrap;align-items:center;gap:12px;min-width:0;font-size:17px;font-weight:600;display:flex}.brand-avatar{width:40px;height:40px;transition:transform .4s var(--ease-out);background:#acc9d9;border-radius:50%;flex:0 0 40px;display:block;position:relative;overflow:hidden;box-shadow:0 0 0 1px #0000000f}.brand:hover .brand-avatar{transform:scale(1.06)}.brand-avatar img{width:300%;max-width:none;height:auto;display:block;position:absolute;top:-158.3%;left:-88.9%}.main-nav{align-items:center;gap:4px;font-size:14px;font-weight:500;display:flex}.nav-link{color:var(--muted);transition:color .2s var(--ease),background .25s var(--ease);border-radius:999px;padding:8px 14px;position:relative}.nav-link:hover{color:var(--text);background:#0000000d}.nav-link.active{color:var(--text);background:#0000000f}.header-actions{align-items:center;gap:12px;display:flex}.language-switch{letter-spacing:.04em;color:var(--muted);transition:background .25s var(--ease);border-radius:999px;gap:6px;padding:8px 12px;font-size:12px;font-weight:600;display:flex}.language-switch:hover{background:#0000000d}.language-switch .current{color:var(--text)}.language-separator{opacity:.4}.button{letter-spacing:-.005em;min-height:52px;transition:transform .35s var(--ease-out),background .25s var(--ease),box-shadow .35s var(--ease-out),color .25s;border:1px solid #0000;border-radius:999px;justify-content:center;align-items:center;gap:12px;padding:14px 24px;font-size:15px;font-weight:600;display:inline-flex}.button:hover{transform:translateY(-1px)}.button:active{transition-duration:.1s;transform:scale(.97)}.button-primary{background:var(--text);color:#fff;box-shadow:0 8px 20px #00000024}.button-primary:hover{background:var(--accent);box-shadow:0 12px 28px #0a66d647}.button-secondary{background:var(--surface);border-color:var(--line);box-shadow:var(--shadow-s)}.button-secondary:hover{box-shadow:var(--shadow-m)}.button svg{width:20px}.quiet-button{color:var(--accent);border-radius:8px;align-items:center;gap:8px;padding:12px 4px;font-size:15px;font-weight:600;display:inline-flex}.quiet-button svg{width:18px;transition:transform .35s var(--ease-out)}.quiet-button:hover svg{transform:translate(4px)}.text-link{color:var(--accent);align-items:center;gap:8px;font-size:14px;font-weight:600;line-height:1.4;display:inline-flex}.text-link svg{width:18px;transition:transform .35s var(--ease-out)}.text-link:hover svg{transform:translate(4px)}.header-booking{background:var(--text);color:#fff;white-space:nowrap;min-height:40px;transition:background .25s var(--ease),transform .3s var(--ease-out);border-radius:999px;justify-content:center;align-items:center;gap:8px;padding:8px 16px;font-size:13px;font-weight:600;display:inline-flex}.header-booking svg{order:1;width:17px;height:17px}.header-booking span{order:2}.header-booking:hover{background:var(--accent)}.header-booking:active{transform:scale(.96)}.hero{grid-template-columns:1.1fr 1fr;align-items:center;gap:56px;padding-top:88px;padding-bottom:96px;display:grid}.hero-eyebrow{letter-spacing:.06em;align-items:center;gap:10px;display:flex}.tiny-line{background:var(--accent);border-radius:2px;width:22px;height:2px}.hero h1{letter-spacing:-.04em;margin-top:26px;margin-bottom:26px;font-size:clamp(46px,4.7vw,68px);font-weight:700;line-height:1.02}.hero h1 em{background:linear-gradient(100deg,var(--accent) 0%,var(--accent-2) 100%);color:#0000;-webkit-background-clip:text;background-clip:text}.hero-description{color:var(--muted);letter-spacing:-.01em;font-size:17px;line-height:1.65}.hero-actions{flex-wrap:wrap;align-items:center;gap:20px;margin-top:34px;display:flex}.hero-copy>*{animation:rise .8s var(--ease-out) both}.hero-copy>:nth-child(2){animation-delay:60ms}.hero-copy>:nth-child(3){animation-delay:.14s}.hero-copy>:nth-child(4){animation-delay:.22s}.hero-composition{animation:rise .9s var(--ease-out) .18s both}@keyframes rise{0%{opacity:0;transform:translateY(22px)}to{opacity:1;transform:none}}.hero-composition{border-radius:var(--r-xl);background:radial-gradient(60% 60% at 60% 40%,#dbe8fb 0,#dbe8fb00 100%);height:480px;margin-top:8px;position:relative}.composition-label{letter-spacing:.12em;color:var(--muted);font-size:11px;font-weight:600;position:absolute;top:22px;left:40px}.idea-sheet{background:var(--surface);border-radius:var(--r-l);width:250px;height:300px;box-shadow:var(--shadow-m);transition:transform .6s var(--ease-out);padding:26px 28px;position:absolute;top:60px;left:22px;transform:rotate(-6deg)}.idea-sheet>span{color:var(--muted);letter-spacing:.08em;font-size:11px;font-weight:600}.idea-sheet p{letter-spacing:-.025em;color:var(--text);z-index:2;margin-top:28px;font-size:26px;font-weight:600;line-height:1.15;position:relative}.sketch-circle{border:2px solid #c9d6e6;border-radius:50%;width:84px;height:84px;margin-top:20px;position:relative}.sketch-circle:after{content:"";background:linear-gradient(135deg,var(--accent-soft),#cfe3ff);border-radius:50%;position:absolute;inset:12px}.sketch-underline{background:var(--accent-soft);border-radius:3px;width:140px;height:6px;margin-top:12px}.build-sheet{color:#fff;border-radius:var(--r-l);width:270px;height:220px;transition:transform .6s var(--ease-out);background:linear-gradient(140deg,#0a66d6 0%,#2a8cf0 100%);padding:22px;position:absolute;top:150px;right:0;transform:rotate(5deg);box-shadow:0 24px 60px #0a66d659}.hero-composition:hover .idea-sheet{transform:rotate(-4deg)translateY(-6px)}.hero-composition:hover .build-sheet{transform:rotate(3deg)translateY(-6px)}.build-sheet-top{letter-spacing:.08em;justify-content:space-between;align-items:center;font-size:11px;font-weight:600;display:flex}.build-sheet-top svg{width:22px;height:22px}.mini-map{grid-template-columns:repeat(3,1fr);gap:8px;margin:18px 0 20px;display:grid}.mini-map i{backdrop-filter:blur(4px);background:#ffffff47;border-radius:9px;height:34px}.mini-map i:nth-child(2),.mini-map i:nth-child(5){background:#ffffffd9}.mini-map i:nth-child(3){background:#ffffff80}.mini-map i:nth-child(4){height:22px}.mini-map i:last-child{opacity:.4}.build-caption{letter-spacing:.02em;opacity:.9;font-size:12px;font-weight:500}.hand-arrow{color:#9db4d1;width:110px;height:100px;position:absolute;top:30px;right:8px;transform:rotate(4deg)}.hand-note{letter-spacing:-.01em;color:var(--muted);font-size:17px;font-weight:600;line-height:1.3;position:absolute;bottom:36px;left:60px;transform:rotate(-4deg)}.composition-foot{letter-spacing:.14em;color:var(--muted);align-items:center;gap:14px;font-size:9px;font-weight:600;display:flex;position:absolute;bottom:4px;right:12px}.composition-foot i{color:var(--accent);font-size:38px;font-style:normal}.selected-section{--strip-inset:max(var(--gutter),calc((100% - 1200px)/2 + var(--gutter)));padding-top:0;padding-bottom:96px}.section-heading{justify-content:space-between;align-items:flex-end;gap:20px;margin-bottom:28px;display:flex}.section-heading h2{letter-spacing:-.035em;margin-top:8px;font-size:44px;font-weight:700;line-height:1.05}.strip-controls{align-items:center;gap:10px;padding-bottom:4px;display:flex}.strip-controls .text-link{margin-right:10px}.strip-arrow{background:var(--surface);width:44px;height:44px;box-shadow:var(--shadow-s);transition:transform .35s var(--ease-out),box-shadow .35s var(--ease-out),opacity .2s;border-radius:50%;place-items:center;display:grid}.strip-arrow svg{width:18px}.strip-arrow[data-strip-prev] svg{transform:rotate(180deg)}.strip-arrow:hover{box-shadow:var(--shadow-m);transform:translateY(-1px)}.strip-arrow:active{transform:scale(.94)}.strip-arrow:disabled{opacity:.35;cursor:default;box-shadow:var(--shadow-s);transform:none}.project-strip{overscroll-behavior-x:contain;scroll-snap-type:x mandatory;width:100%;padding:12px 0 24px var(--strip-inset);scroll-padding:0 0 0 var(--strip-inset);scrollbar-width:none;gap:16px;display:flex;overflow-x:auto}.project-strip::-webkit-scrollbar{display:none}.project-strip:focus-visible{outline-offset:-3px}.project-strip:after{content:"";flex:0 0 calc(var(--strip-inset) - 16px)}.strip-entry{scroll-snap-align:start;flex:0 0 312px}.strip-rail{background:#00000012;border-radius:2px;height:4px;margin-top:4px;position:relative}.strip-rail i{background:var(--text);width:25%;height:4px;transition:left .25s var(--ease-out),width .25s var(--ease-out);border-radius:2px;position:absolute;top:0;left:0}.services-strip{border-radius:var(--r-xl);background:var(--surface);box-shadow:var(--shadow-s);grid-template-columns:.6fr 1.3fr 1fr;align-items:start;gap:32px;padding:44px;display:grid}.services-strip h2{letter-spacing:-.03em;font-size:38px;font-weight:700;line-height:1.1}.services-strip p{color:var(--muted);margin-bottom:18px;font-size:16px;line-height:1.6}.home-contact{padding-bottom:96px}.home-contact .contact-banner{margin-top:24px}.portfolio-entry{background:var(--surface);border-radius:var(--r-l);min-width:0;box-shadow:var(--shadow-s);transition:transform .5s var(--ease-out),box-shadow .5s var(--ease-out);flex-direction:column;padding:12px 24px 24px;scroll-margin-top:100px;display:flex}.portfolio-entry:hover{box-shadow:var(--shadow-m);transform:translateY(-4px)}.project-art{aspect-ratio:5/3;border-radius:var(--r-m);color:#3a3a3c;width:calc(100% + 24px);height:auto;transition:transform .6s var(--ease-out);background:#f0f0f3;margin:0 -12px;display:block}.portfolio-entry[data-group=client] .project-art{background:#eaf1fa}.portfolio-entry:hover .project-art{transform:scale(1.015)}.project-art .ink{fill:none;stroke:currentColor;stroke-width:1.5px;stroke-linecap:round;stroke-linejoin:round}.project-art .dash{stroke-dasharray:4 4}.project-art .text{fill:none;stroke:currentColor;stroke-width:2.2px;stroke-linecap:round;opacity:.45}.project-art .light{fill:none;stroke:#fff;stroke-width:2px;stroke-linecap:round}.project-art .paper{fill:#fff;stroke:#00000024;stroke-width:1px;rx:4}.project-art .soft{fill:#e2e2e7}.project-art .tint{fill:#c7dbf5}.project-art .accent{fill:var(--accent)}.project-art .wave{fill:none;stroke:currentColor;stroke-width:2px;stroke-linecap:round;opacity:.6}.project-art .clip{fill:none;stroke:var(--accent);stroke-width:4px;stroke-linecap:round;stroke-linejoin:round}.project-art .star{fill:var(--accent)}.project-art .num{font:700 44px var(--sans);letter-spacing:-.03em;fill:currentColor}.project-art .num.small{font-size:30px}.project-art .grid rect{stroke:#0000001f;stroke-width:.8px;rx:2}.entry-top{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px 12px;margin:20px 0 18px;display:flex}.entry-index{color:var(--muted);font-variant-numeric:tabular-nums;font-size:13px;font-weight:600}.project-status{color:var(--muted);background:var(--bg);white-space:nowrap;border-radius:999px;align-items:center;gap:6px;max-width:100%;padding:5px 10px;font-size:12px;font-weight:500;display:inline-flex}.project-status i{background:var(--accent);border-radius:50%;width:6px;height:6px}.portfolio-entry h3{letter-spacing:-.025em;overflow-wrap:anywhere;margin:6px 0 10px;font-size:24px;font-weight:700;line-height:1.15}.entry-task{color:#3a3a3c;margin-bottom:18px;font-size:15px;line-height:1.55}.portfolio-entry dl{color:var(--muted);gap:10px;margin:0 0 22px;font-size:13.5px;line-height:1.55;display:grid}.portfolio-entry dt{letter-spacing:.06em;text-transform:uppercase;color:var(--text);margin-right:6px;font-size:11px;font-weight:700;display:inline}.portfolio-entry dd{margin:0;display:inline}.portfolio-entry>.text-link{align-self:flex-start;margin-top:auto;font-size:14px}.inner-page{padding-top:80px;padding-bottom:96px}.page-heading{max-width:880px;margin-bottom:56px}.page-heading h1{letter-spacing:-.04em;text-wrap:balance;margin:20px 0 24px;font-size:clamp(44px,5.4vw,76px);font-weight:700;line-height:1.02}.page-heading h1 em{color:var(--accent)}.page-heading>p{max-width:640px;color:var(--muted);letter-spacing:-.01em;font-size:19px;line-height:1.6}.project-intro{max-width:760px}.portfolio-ledger{gap:16px;margin-top:40px;display:grid}.ledger-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;display:grid}.ledger-head{border-radius:var(--r-l);background:linear-gradient(160deg,#e9eef5,#dde5ef);flex-direction:column;justify-content:space-between;gap:40px;min-width:0;padding:24px 26px 28px;display:flex}.ledger-head>div{gap:12px;display:grid}.client-group .ledger-head{background:linear-gradient(160deg,#dfeafc,#c9dcf6)}.ledger-head h2{letter-spacing:-.03em;font-size:32px;font-weight:700;line-height:1.05}.ledger-head p{color:#4b5563;max-width:36ch;font-size:14px;line-height:1.55}.ledger-cta{grid-column:span 2;display:flex}.ledger-cta .contact-banner{flex-direction:column;flex:1;justify-content:space-between;align-items:flex-start;gap:28px;margin:0}.contact-banner{background:var(--text);color:#fff;border-radius:var(--r-xl);justify-content:space-between;align-items:center;gap:36px;margin-top:64px;padding:44px 48px;display:flex;box-shadow:0 24px 60px #0000002e}.contact-banner h2{letter-spacing:-.035em;font-size:40px;font-weight:700;line-height:1.05}.contact-banner p{color:#ffffffb3;margin-top:10px;font-size:16px;line-height:1.6}.contact-banner p+p{margin-top:6px}.contact-actions{flex-direction:column;flex-shrink:0;align-items:flex-start;gap:18px;display:flex}.contact-banner .button-primary{color:var(--text);box-shadow:none;background:#fff}.contact-banner .button-primary:hover{background:var(--accent-2);color:#fff}.contact-banner .text-link{color:#fff}.site-footer{border-top:1px solid var(--line);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:28px;padding-top:36px;padding-bottom:48px;display:flex}.footer-name{letter-spacing:-.02em;font-size:20px;font-weight:700}.site-footer p{color:var(--muted);margin-top:6px;font-size:13px}.footer-links{flex-wrap:wrap;gap:22px;font-size:14px;font-weight:500;display:flex}.footer-links a,.footer-links button{color:var(--muted);transition:color .2s}.footer-links a:hover,.footer-links button:hover{color:var(--text)}.footer-year{color:var(--muted);margin-left:auto;font-size:13px}.prose{letter-spacing:-.005em;max-width:760px;font-size:18px;line-height:1.65}.prose p{color:#3a3a3c;margin:0 0 22px}.prose h2{letter-spacing:-.03em;margin:52px 0 20px;font-size:36px;font-weight:700;line-height:1.1}.prose h3{letter-spacing:-.02em;margin:36px 0 12px;font-size:26px;font-weight:700}.prose strong{color:var(--text);font-weight:600}.services-content{max-width:760px}.services-content h2:not(:first-child){border-top:1px solid var(--line);padding-top:40px}.services-content h2:first-child{margin-top:0}.about-content h3{border-top:1px solid var(--line);padding-top:24px}.about-content h3+p{color:var(--muted);font-size:14px}.not-found{padding-top:100px;padding-bottom:140px}.not-found h1{letter-spacing:-.035em;margin-bottom:32px;font-size:52px;font-weight:700;line-height:1.1}.not-found h1 em{color:var(--muted)}.noscript-note{padding-top:20px;padding-bottom:20px}.booking-dialog{border-radius:var(--r-xl);background:var(--surface);color:var(--text);border:0;width:min(1100px,100% - 40px);max-width:none;max-height:calc(100dvh - 40px);padding:0;overflow:auto;box-shadow:0 40px 120px #00000059}.booking-dialog[open]{animation:materialise .45s var(--ease-out)}@keyframes materialise{0%{opacity:0;transform:translateY(16px)scale(.98)}to{opacity:1;transform:none}}.booking-dialog::backdrop{backdrop-filter:blur(14px);background:#1d1d1f73}.dialog-heading{backdrop-filter:blur(16px);z-index:2;border-bottom:1px solid var(--line);background:#ffffffd9;justify-content:space-between;align-items:center;gap:15px;padding:20px 28px;display:flex;position:sticky;top:0}.dialog-heading h2{letter-spacing:-.025em;outline:none;font-size:24px;font-weight:700}.dialog-close{background:var(--bg);width:40px;height:40px;transition:background .2s,transform .3s var(--ease-out);border-radius:50%;flex-shrink:0;place-items:center;display:grid}.dialog-close:hover{background:#e8e8ed}.dialog-close:active{transform:scale(.92)}.booking-status{min-height:170px;padding:45px 28px;font-size:16px;line-height:1.7}.booking-status button{margin-top:15px}.booking-dialog iframe{background:var(--surface);border:0;width:100%;height:min(680px,100dvh - 175px);min-height:350px;display:block}.dialog-footer{border-top:1px solid var(--line);color:var(--muted);justify-content:space-between;align-items:center;gap:16px;padding:16px 28px;font-size:13px;line-height:1.6;display:flex}.dialog-footer a{color:var(--text);align-items:center;gap:8px;font-weight:600;display:flex}.dialog-footer svg{width:16px;height:16px}[data-reveal]{opacity:0;transition:opacity .8s var(--ease-out),transform .8s var(--ease-out);transition-delay:calc(var(--i,0)*45ms);transform:translateY(20px)}[data-reveal].is-in{opacity:1;transform:none}.contact-combined .eyebrow{color:#ffffff8c;margin-bottom:14px;display:block}.contact-combined h2{max-width:14ch}.contact-intro{max-width:44ch;margin-top:14px}.contact-intro p{color:#ffffffb3;margin:0}.contact-free{color:#ffffff8c!important;margin-top:16px!important;font-size:14px!important}.contact-more{margin-top:16px}.home-blog{padding-bottom:96px}.post-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;display:grid}.blog-index{margin-top:40px}.post-card{background:var(--surface);border-radius:var(--r-l);min-width:0;box-shadow:var(--shadow-s);transition:transform .5s var(--ease-out),box-shadow .5s var(--ease-out)}.post-card:hover{box-shadow:var(--shadow-m);transform:translateY(-4px)}.post-card-link{border-radius:inherit;flex-direction:column;height:100%;padding:12px 24px 24px;display:flex}.post-visual{aspect-ratio:16/9;border-radius:var(--r-m);transition:transform .6s var(--ease-out);background:linear-gradient(150deg,#eef2f8,#dfe8f5);align-items:flex-end;margin:0 -12px 18px;padding:18px;display:flex;position:relative;overflow:hidden}.post-card:hover .post-visual{transform:scale(1.015)}.post-video .post-visual{background:linear-gradient(150deg,#1d1d1f,#3a3a3c)}.post-topic{letter-spacing:.04em;text-transform:uppercase;color:var(--muted);background:#ffffffbf;border-radius:999px;padding:6px 10px;font-size:12px;font-weight:600}.post-video .post-topic{color:#fff;background:#ffffff29}.post-play{width:56px;height:56px;color:var(--text);transition:transform .4s var(--ease-out);background:#ffffffeb;border-radius:50%;place-items:center;margin:auto;display:grid;position:absolute;inset:0;box-shadow:0 8px 24px #00000040}.post-play svg{width:22px;margin-left:3px}.post-card:hover .post-play{transform:scale(1.08)}.post-meta{color:var(--muted);flex-wrap:wrap;gap:6px 14px;margin-bottom:12px;font-size:13px;display:flex}.post-kind{color:var(--accent);font-weight:600}.post-card h3{letter-spacing:-.02em;margin-bottom:10px;font-size:22px;font-weight:700;line-height:1.2}.post-card p{color:#3a3a3c;margin-bottom:20px;font-size:15px;line-height:1.55}.post-card .text-link{margin-top:auto}.post-card[data-mock] .post-visual:after{content:"mock";letter-spacing:.12em;text-transform:uppercase;color:var(--muted);background:#ffffffbf;border-radius:999px;padding:4px 8px;font-size:10px;font-weight:700;position:absolute;top:14px;right:14px}.post-page{padding-top:64px;padding-bottom:96px}.post-header{max-width:800px;margin-bottom:40px}.post-back{margin-bottom:28px}.post-back svg{transition:transform .35s var(--ease-out)}.post-back:hover svg{transform:translate(-4px)}.post-header h1{letter-spacing:-.035em;text-wrap:balance;margin:8px 0 18px;font-size:clamp(38px,4.6vw,60px);font-weight:700;line-height:1.05}.post-lead{color:var(--muted);letter-spacing:-.01em;font-size:20px;line-height:1.55}.post-mock{color:#8a6d1f;border-radius:var(--r-s);background:#fff5d6;margin-top:18px;padding:10px 14px;font-size:14px;display:inline-block}.video-embed{aspect-ratio:16/9;border-radius:var(--r-l);max-width:960px;box-shadow:var(--shadow-m);background:linear-gradient(150deg,#1d1d1f,#3a3a3c);margin-bottom:44px;position:relative;overflow:hidden}.video-poster{color:#fff;cursor:pointer;justify-content:center;align-items:flex-end;width:100%;padding:24px;display:flex;position:absolute;inset:0}.video-poster .post-play{transition:transform .4s var(--ease-out)}.video-poster:hover .post-play{transform:scale(1.08)}.video-poster:active .post-play{transform:scale(.96)}.video-note{color:#ffffffb3;font-size:13px}.video-embed iframe{border:0;width:100%;height:100%;position:absolute;inset:0}.post-body{max-width:760px}.post-body blockquote{border-left:3px solid var(--accent);letter-spacing:-.02em;color:var(--text);margin:28px 0;padding:6px 0 6px 22px;font-size:22px;font-weight:600;line-height:1.35}.post-body ul{color:#3a3a3c;margin:0 0 22px;padding-left:22px}.post-body li{margin-bottom:8px}.post-more{margin-top:72px}.post-more h2{letter-spacing:-.03em;margin-bottom:24px;font-size:32px;font-weight:700}@media (width<=1050px){:root{--gutter:24px}.post-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.hero{gap:24px}.hero h1{font-size:54px}.hero-composition{transform-origin:100%;transform:scale(.88)}.services-strip{grid-template-columns:.6fr 1.1fr 1fr;padding:34px}.services-strip h2{font-size:32px}.ledger-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.personal-group .ledger-head{grid-column:span 2}.ledger-cta{grid-column:span 3}.ledger-cta .contact-banner{flex-direction:row;align-items:flex-end}.main-nav{gap:2px}.nav-link{padding:8px 10px}}@media (width>=761px) and (width<=1150px){.header-booking{width:40px;padding:0}.header-booking span{display:none}}@media (width<=760px){:root{--gutter:20px}.header-inner{grid-template-columns:1fr auto;gap:10px;height:auto;min-height:64px;padding-top:12px;padding-bottom:12px;display:grid}.brand{gap:9px;font-size:15px}.brand-avatar{flex-basis:34px;width:34px;height:34px}.brand-name{white-space:normal}.header-actions{gap:8px}.main-nav{grid-area:2/1/auto/-1;justify-content:flex-start;gap:2px;font-size:13px}.nav-link{padding:6px 10px}.header-booking{width:36px;min-height:36px;padding:0}.header-booking span{display:none}.hero{grid-template-columns:1fr;gap:34px;padding-top:44px;padding-bottom:56px}.hero h1{letter-spacing:-.035em;margin-top:20px;margin-bottom:22px;font-size:clamp(44px,11vw,64px)}.hero-description{font-size:17px}.hero-actions{gap:12px 20px;margin-top:26px}.hero-composition{width:100%;max-width:420px;height:360px;margin:0 auto;transform:none!important}.idea-sheet{width:210px;height:258px;padding:22px;top:40px;left:8px}.idea-sheet p{margin-top:18px;font-size:22px}.sketch-circle{width:64px;height:64px;margin-top:16px}.build-sheet{width:214px;height:180px;padding:16px;top:120px;right:0}.build-sheet-top{font-size:9px}.mini-map{gap:6px;margin:14px 0}.mini-map i{height:26px}.build-caption{font-size:10px}.composition-label{font-size:9px;top:10px;left:16px}.hand-arrow{width:90px;height:84px;top:10px;right:10px}.hand-note{font-size:14px;bottom:10px;left:30px}.composition-foot{gap:9px;font-size:7px;bottom:-4px;right:0}.composition-foot i{font-size:28px}.selected-section{padding-bottom:56px}.section-heading{margin-bottom:18px}.section-heading h2{font-size:32px}.strip-controls{gap:8px}.strip-controls .text-link{margin-right:4px}.strip-arrow{width:38px;height:38px}.strip-entry{flex-basis:min(290px,82vw)}.project-strip{gap:12px;padding-bottom:18px}.services-strip{border-radius:var(--r-l);grid-template-columns:1fr;gap:16px;padding:28px;display:grid}.services-strip h2{font-size:30px}.services-strip h2 br{display:none}.site-footer{grid-template-columns:1fr auto;gap:20px;padding-top:28px;padding-bottom:40px;display:grid}.footer-links{grid-area:2/1/auto/-1;gap:16px;font-size:13px}.footer-name{font-size:18px}.inner-page{padding-top:44px;padding-bottom:56px}.page-heading{margin-bottom:34px}.page-heading h1{margin:16px 0 18px;font-size:44px}.page-heading>p{font-size:16px}.ledger-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.portfolio-ledger{gap:12px}.personal-group .ledger-head{grid-column:span 1}.ledger-cta{grid-column:span 2}.ledger-cta .contact-banner{flex-direction:column;align-items:flex-start}.ledger-head{gap:28px;padding:20px 20px 22px}.ledger-head h2{font-size:26px}.portfolio-entry{border-radius:20px;padding:10px 18px 20px}.portfolio-entry h3{font-size:21px}.entry-top{margin:16px 0 14px}.project-art{border-radius:14px;width:calc(100% + 16px);margin:0 -8px}.contact-banner{border-radius:var(--r-l);flex-direction:column;align-items:flex-start;gap:22px;margin-top:40px;padding:28px 26px}.contact-combined h2{max-width:none}.home-blog{padding-bottom:56px}.contact-banner h2{font-size:32px}.contact-actions{width:100%}.contact-actions .button{max-width:100%}.prose{font-size:17px}.prose h2{font-size:30px}.prose h3{font-size:23px}.not-found h1{font-size:38px}.booking-dialog{border-radius:var(--r-l);width:calc(100% - 16px);max-height:calc(100dvh - 16px)}.dialog-heading{padding:12px 16px}.dialog-heading h2{font-size:20px}.dialog-close{width:36px;height:36px}.booking-dialog iframe{height:calc(100dvh - 155px);min-height:260px}.dialog-footer{align-items:flex-start;padding:12px 16px}.dialog-footer>span{max-width:65%}}@media (width<=520px){.post-grid{grid-template-columns:1fr}.post-card-link{padding:10px 18px 20px}.post-visual{border-radius:14px;margin:0 -8px 16px}.post-page{padding-top:40px}.post-lead{font-size:17px}.ledger-grid{grid-template-columns:1fr}.ledger-cta{grid-column:span 1}.portfolio-ledger{margin-top:28px}.strip-controls .text-link{display:none}.section-heading .strip-controls{align-self:flex-end}.portfolio-entry dl{font-size:14px}}@media (width<=360px){.page-heading h1{font-size:38px}.hero h1{font-size:40px}.brand{font-size:14px}.contact-banner{padding:22px 20px}.contact-banner h2{font-size:28px}.dialog-heading h2{font-size:19px}}@media (prefers-reduced-transparency:reduce){.site-header{background:var(--bg);backdrop-filter:none}.booking-dialog::backdrop{backdrop-filter:none;background:#1d1d1f99}.dialog-heading{background:var(--surface);backdrop-filter:none}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{transition:none!important;animation:none!important}[data-reveal]{opacity:1;transform:none}.portfolio-entry:hover,.strip-arrow:hover,.button:hover{transform:none}}
