/* Calm graphite surfaces, warm accents and readable supporting text. */
:root{color-scheme:dark;--paper:#18282d;--ink:#eeeae1;--muted:#bfcdcd;--blue:#d9bc91;--line:#43575c;--soft:#21353b;--warm:#d9bc91;--white:#263b42}
body{font-size:18px;line-height:1.8;background:var(--paper);color:var(--ink)}
.site-header{background:#192b30;border-color:#40565d}.header-inner{height:100px}
.identity-name{font-size:16px}.identity-name small{font-size:12px;letter-spacing:.07em;color:#bfcdcd}.monogram{font-size:46px}.monogram span{color:var(--warm)}
.desktop-nav,.header-actions{font-size:16px}.desktop-nav{gap:25px}.lang{font-size:15px}.header-contact{border-color:#60777d;padding:10px 18px}
.hero{gap:60px;padding-top:70px}.hero h1{font-size:clamp(48px,5.4vw,76px);line-height:1.16}.hero h1 em,h2 em{color:var(--warm)}
.hero-intro{font-size:19px;line-height:1.85;color:#c8d3d3}.kicker{font-size:14px;letter-spacing:.08em;color:#ddc8a8}.hero .kicker{font-size:14px}
.button{background:#d9bc91;color:#18282d;border-color:#d9bc91;font-size:16px;padding:15px 23px;min-height:52px}.button:hover{background:#ecd0a7;border-color:#ecd0a7}.quiet-link{font-size:16px;color:#e1ddd2;border-color:#779093}.quiet-link:hover{color:#f2d5aa;border-color:#f2d5aa}.availability{font-size:14px;letter-spacing:.02em;color:#c2cece}.divider{background:#779093}
.hero-panel{background:#233b42;border-color:#466068;box-shadow:0 20px 60px #09171b40}.panel-top{font-size:13px;letter-spacing:.07em;color:#d4dfdd;padding-inline:14px}.small-mark{font-size:25px}.panel-caption{border-color:#61767b}.panel-caption p{color:#e9e6dc;font-size:24px}.panel-number{font-size:14px;color:#cad5d4}
.path-art text{fill:#e4e9e4;font-size:18px;letter-spacing:0}.path-art path{stroke:#abc1c3}.path-art circle[fill="#fbfaf6"]{fill:#28444c;stroke:#d9bc91}.path-art circle[fill="#ab7556"]{fill:#d9bc91}.path-art circle[fill="#9db8bf"]{fill:#a8c5c8}.path-art rect[fill="#173a4c"]{fill:#192e35}.path-art pattern circle{fill:#89a8ae;opacity:.5}
.expertise-strip{font-size:16px;color:#cbd5d3;border-color:#43575c;padding-block:24px}.expertise-strip span:before{background:#d9bc91}
.section-heading>p:last-child,.heading-split p:last-child{font-size:18px;line-height:1.8}.heading-split p:last-child{max-width:420px}
.service-title h3{font-size:33px}.index{font-size:16px;color:#ddc29b;padding-top:5px}.service-title{grid-template-columns:32px 1fr}.service-sub{font-size:16px;line-height:1.7;max-width:300px;color:#bdcccc}.service-body>p{font-size:18px}.service-details summary{font-size:16px;padding:12px 0;min-height:48px;color:#e8decf}.service-details summary span{font-size:24px}.service-details li{gap:22px}.service-details strong{font-size:17px;line-height:1.6}.service-details li p{font-size:16px}.service-details li a{font-size:15px;align-self:flex-start;padding:6px 0;color:#e5c79b;white-space:normal}
.scope-strip{font-size:15px;gap:30px;align-items:flex-start}.scope-strip strong{white-space:normal}.scope-strip ul{gap:22px;flex-wrap:wrap}.scope-strip li span{color:#d9bc91}
.method-band{background:#20353b}.method-inner>h2{font-size:36px}.method-grid article{border-color:#5a7177}.method-grid h3{font-size:22px}.method-grid p{font-size:17px;line-height:1.8}
.work-card{background:#22373e;border-color:#4c656d}.work-card:hover{border-color:#baa17c}.work-visual{background:#29444b}.visual-2{background:#3e3b33}.visual-3{background:#2e3d4b}.mini-node,.mini-stack{background:#1c3037;border-color:#78969e;color:#e7e6de}.mini-node{font-size:20px}.mini-line{background:#a5bfc2}.mini-line:after{background:#d9bc91}.mini-stack i{background:#536e77}.mini-stack i:first-child{background:#c0ab89}.work-content .kicker{font-size:14px}.work-content h3{font-size:28px;min-height:68px}.work-content p{font-size:17px;line-height:1.8;min-height:90px}.text-link{font-size:16px;gap:12px;color:#e8cda4}
.about-section{background:#203238}.about-heading h2{color:#f0e9da}.about-tags span{font-size:16px;line-height:1.7;color:#cad4d1}.about-content>p{font-size:18px;line-height:1.85}.about-content .about-lead{color:#ece7dc;font-size:31px}.network{border-color:#536a70}.network h3{font-size:24px;line-height:1.5}.network>p{font-size:17px}.network li{border-color:#4b6269}.network li h4{font-size:19px}.network li p{font-size:16px;line-height:1.7}.network li a{color:#e6c59b;font-size:25px;min-width:44px;min-height:44px;text-align:center}.network .fineprint{font-size:15px;line-height:1.85;color:#bbcaca}
.faq-section h2{font-size:40px}.faq-section summary{font-size:18px;line-height:1.7;min-height:44px}.faq-section details p{font-size:17px;line-height:1.85}.faq-section summary span{color:#e2c49b}
.contact-section{background:#122229}.contact-section .kicker{color:#d9bc91}.contact-copy h2{font-size:51px}.contact-copy h2 em{color:#dfc39c}.contact-copy>p:not(.kicker){font-size:18px;color:#c6d3d4}.direct-contact a{font-size:17px;color:#eee9df}.direct-contact small{font-size:16px;color:#c5d3d6}.contact-grid{gap:70px}.contact-form{min-width:0}label{font-size:16px;line-height:1.65;color:#e4e9e6}input,select,textarea{font-size:17px;padding:14px;background:#203943;color:#f0eee7;border-color:#79939c;min-height:52px}textarea{line-height:1.8}select option{background:#203943;color:#f0eee7}input::placeholder,textarea::placeholder{color:#bacbd0}input:focus,select:focus,textarea:focus{outline-color:#d9bc91;border-color:#d9bc91}.optional-field summary{font-size:16px;line-height:1.7;min-height:44px;color:#d2dcd8}.optional-field summary span{font-size:22px}.contact-form .button{background:#d9bc91;color:#18282d;border-color:#d9bc91}.contact-form .button:hover{background:#ecd0a7}.form-hint{font-size:15px;line-height:1.85;color:#c5d1d2}.consent-field{gap:14px}.consent-field input{width:21px;height:21px;flex-basis:21px;min-height:21px;margin-top:4px}.consent-field label{font-size:15px;line-height:1.85;color:#d2dcdb}#delivery-status{font-size:17px;line-height:1.8;background:#233d44;color:#f0eee5;border-color:#79959c}
.footer-top{gap:24px}.footer-top .identity{font-size:16px}.footer-top p{font-size:22px;color:#d7c9b4}.footer-bottom{font-size:14px;line-height:1.85;gap:24px}.footer-bottom>p{max-width:520px}.footer-bottom details p{font-size:15px;line-height:1.85}.footer-bottom summary{font-size:15px;white-space:normal}.footer-bottom>span{white-space:normal}.skip{background:#d9bc91;color:#18282d}
@media(max-width:1100px){.identity-name{font-size:14px}.identity-name small{font-size:10px}.header-inner{gap:20px}.desktop-nav{font-size:15px;gap:18px}.hero{gap:35px}.hero h1{font-size:59px}.hero-panel{padding-inline:18px}.panel-top{font-size:12px}.method-grid{gap:20px}.method-grid p{font-size:16px}.scope-strip ul{gap:15px}.service-row{gap:45px}.work-content{padding:24px}.work-content h3{font-size:26px;min-height:90px}.work-content p{min-height:120px}.field-pair{grid-template-columns:1fr}.contact-grid{gap:45px}.footer-bottom{flex-wrap:wrap}.footer-bottom>p{max-width:none;width:100%}}
@media(max-width:760px){html{scroll-padding-top:100px}.header-inner{height:88px;gap:14px}.identity-name{font-size:14px}.identity-name small{font-size:10px}.monogram{font-size:40px}.lang{font-size:15px}.mobile-menu summary{font-size:16px;min-height:44px;gap:10px}.mobile-menu nav{top:87px;background:#1e333a;border-color:#587078;font-size:18px;gap:5px}.mobile-menu nav a{padding:12px 0}.hero{padding-top:45px;gap:40px}.hero h1{font-size:clamp(46px,8vw,65px)}.hero .kicker{font-size:13px}.hero-intro{font-size:18px}.hero-actions{gap:23px}.hero-panel{max-width:480px;padding-top:35px}.panel-top{font-size:12px}.panel-caption p{font-size:23px}.availability{font-size:15px}.expertise-strip{font-size:16px;gap:15px 25px}.section-space{padding-block:65px}.kicker{font-size:13px}.service-row{gap:23px}.service-body{padding-left:0}.service-title h3{font-size:31px}.service-sub{font-size:17px;max-width:none}.service-body>p{font-size:18px}.service-details li p{font-size:16px}.service-details li a{font-size:16px}.scope-strip{font-size:16px;gap:17px}.scope-strip ul{flex-direction:column;gap:12px}.method-grid p{font-size:17px}.work-card{display:block}.work-visual{height:170px;min-height:0}.work-content h3{font-size:28px;min-height:0}.work-content p{min-height:0;font-size:17px}.work-content{padding:26px}.about-heading h2{font-size:53px}.about-content .about-lead{font-size:29px}.about-grid{gap:35px}.network .fineprint{font-size:15px}.faq-section summary{font-size:18px}.contact-copy h2{font-size:47px}.contact-copy>p:not(.kicker){font-size:18px;max-width:none}.direct-contact{gap:22px}.direct-contact a{font-size:17px}.direct-contact small{font-size:16px}.field-pair{grid-template-columns:1fr}input,select,textarea{font-size:17px}.form-hint,.consent-field label{font-size:15px}.footer-top .identity{font-size:16px}.footer-top p{font-size:23px}.footer-bottom{font-size:14px;gap:20px}.footer-bottom>span{margin-left:0}}
@media(max-width:430px){.wrap{width:88%}.header-inner{width:92%;gap:10px}.identity{gap:10px}.identity-name{font-size:12px}.identity-name small{font-size:9px;letter-spacing:.03em}.monogram{font-size:36px}.mobile-menu summary{font-size:15px;gap:6px}.header-actions{gap:10px}.lang{font-size:14px}.hero .kicker{font-size:12px;letter-spacing:.045em}.hero h1{font-size:46px}.hero-intro{font-size:18px}.hero-panel{padding-inline:15px}.panel-top{font-size:12px;padding-inline:10px;letter-spacing:.03em}.panel-caption p{font-size:22px}.panel-number{font-size:13px}.service-title{grid-template-columns:30px 1fr;gap:12px}.index{font-size:15px}.service-title h3{font-size:29px}.service-sub{font-size:16px}.service-details li{display:block}.service-details li a{display:inline-block;margin-top:12px;padding-block:8px}.method-grid{grid-template-columns:1fr}.method-grid h3{font-size:23px}.work-content .kicker{font-size:13px}.contact-copy h2{font-size:42px}.footer-top{align-items:flex-start}.footer-top .identity{font-size:14px}.footer-top .quiet-link{font-size:15px}.contact-section .kicker{font-size:13px}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}

/* Small interactions that keep reading and navigation calm. */
.site-header{transition:box-shadow .25s,border-color .25s}.site-header.is-scrolled{box-shadow:0 8px 30px #07141960;border-color:#799093}
.desktop-nav a,.mobile-menu nav a{position:relative;transition:color .2s,background .2s}.desktop-nav a:after{content:"";position:absolute;left:0;right:0;bottom:-7px;height:2px;background:#d9bc91;transform:scaleX(0);transform-origin:left;transition:transform .25s}.desktop-nav a:hover:after,.desktop-nav a[aria-current="location"]:after{transform:scaleX(1)}.desktop-nav a[aria-current="location"],.mobile-menu a[aria-current="location"]{color:#f1d3a6}
.button,.work-card,.network li,.quiet-link,.header-contact{transition:transform .25s,background .25s,border-color .25s,box-shadow .25s}.button:active{transform:translateY(1px)}a:focus-visible,summary:focus-visible,button:focus-visible{outline:3px solid #e8cda4;outline-offset:5px;border-radius:4px}
.service-details summary span,.faq-section summary span,.optional-field summary span{display:inline-block;transition:transform .25s}details[open]>summary span{transform:rotate(45deg)}.service-details[open]>ul,.faq-section details[open]>p,.optional-field[open]>input{animation:detail-in .3s ease-out}
@keyframes detail-in{from{opacity:.4;transform:translateY(-5px)}to{opacity:1;transform:none}}
.mobile-menu[open] nav{animation:menu-in .25s ease-out;box-shadow:0 24px 35px #07141970;border-radius:0 0 20px 20px;max-height:calc(100dvh - 105px);overflow:auto}.mobile-menu nav a{border-radius:8px;padding-inline:14px}.mobile-menu nav a:hover,.mobile-menu nav a:focus-visible{background:#304a52}
@keyframes menu-in{from{opacity:0;transform:translateY(-12px)}to{opacity:1;transform:none}}
.reveal-ready{opacity:1}.reveal-ready.is-entering{animation:reveal-in .65s cubic-bezier(.2,.7,.3,1) both}
@keyframes reveal-in{from{opacity:.25;transform:translateY(18px)}to{opacity:1;transform:none}}
.back-top{position:fixed;right:24px;bottom:24px;z-index:15;min-height:48px;padding:10px 16px;border:1px solid #8b9d97;border-radius:30px;background:#243c43;color:#efe7d8;font:inherit;font-size:15px;box-shadow:0 6px 24px #0004;text-decoration:none}.back-top[hidden]{display:none}.back-top:hover{background:#36535a}
@media(hover:hover) and (prefers-reduced-motion:no-preference){.button:hover,.header-contact:hover{transform:translateY(-3px);box-shadow:0 7px 20px #06151b40}.work-card:hover{transform:translateY(-6px);box-shadow:0 15px 30px #07141950}.network li:hover{transform:translateX(4px)}.hero-panel:hover .small-mark{transform:translate(3px,-3px)}.small-mark{transition:transform .25s}}
@media(max-width:760px){.back-top{right:16px;bottom:16px;font-size:14px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}

/* Editorial motion: a short opening sequence, then a calm reading surface. */
@media(prefers-reduced-motion:no-preference){
.hero-copy>.kicker{animation:soft-rise .7s cubic-bezier(.16,1,.3,1) both}
.hero h1{animation:soft-rise 1s .08s cubic-bezier(.16,1,.3,1) both}
.hero-intro{animation:soft-rise .9s .18s cubic-bezier(.16,1,.3,1) both}
.hero-actions{animation:soft-rise .85s .28s cubic-bezier(.16,1,.3,1) both}
.availability{animation:soft-rise .8s .36s cubic-bezier(.16,1,.3,1) both}
.hero-panel{position:relative;isolation:isolate;overflow:hidden;animation:panel-arrive 1.2s .16s cubic-bezier(.16,1,.3,1) both}
.hero-panel:before{content:"";position:absolute;inset:-20%;z-index:-1;pointer-events:none;background:radial-gradient(ellipse at 70% 25%,#d9bc911c,transparent 55%);animation:ambient-drift 7s ease-in-out 2 alternate}
.path-art>path{stroke-dasharray:1000;stroke-dashoffset:1000;animation:trace-path 2.5s .45s cubic-bezier(.25,.6,.3,1) forwards}
.path-art>circle{transform-box:fill-box;transform-origin:center;animation:node-arrive .8s .65s cubic-bezier(.16,1,.3,1) both}.path-art>circle:nth-of-type(2){animation-delay:.95s}.path-art>circle:nth-of-type(3){animation-delay:1.15s}
.reveal-ready.is-entering{animation:soft-rise .9s cubic-bezier(.16,1,.3,1) both}
.method-grid article:nth-child(2).is-entering,.work-card:nth-child(2).is-entering{animation-delay:.1s}.method-grid article:nth-child(3).is-entering,.work-card:nth-child(3).is-entering{animation-delay:.2s}
.mobile-menu[open] nav{animation:menu-unfold .4s cubic-bezier(.16,1,.3,1) both;transform-origin:top}
.mobile-menu[open] nav a{animation:soft-rise .45s .06s both}.mobile-menu[open] nav a:nth-child(2){animation-delay:.1s}.mobile-menu[open] nav a:nth-child(3){animation-delay:.14s}.mobile-menu[open] nav a:nth-child(4){animation-delay:.18s}
.service-details[open]>ul,.faq-section details[open]>p{animation:soft-rise .45s cubic-bezier(.16,1,.3,1) both}
}
@keyframes soft-rise{from{opacity:0;transform:translate3d(0,22px,0)}to{opacity:1;transform:translate3d(0,0,0)}}
@keyframes panel-arrive{from{opacity:0;transform:translate3d(0,25px,0) scale(.97)}to{opacity:1;transform:none}}
@keyframes trace-path{to{stroke-dashoffset:0}}
@keyframes node-arrive{from{opacity:0;transform:scale(.4)}to{opacity:1;transform:scale(1)}}
@keyframes ambient-drift{from{transform:translate(-3%,3%)}to{transform:translate(5%,-5%)}}
@keyframes menu-unfold{from{opacity:0;transform:translateY(-8px) scaleY(.96)}to{opacity:1;transform:none}}
.button{position:relative;isolation:isolate;overflow:hidden}.button:before{content:"";position:absolute;inset:-70% auto -70% -60%;width:35%;background:linear-gradient(90deg,transparent,#fff5,transparent);transform:rotate(25deg);pointer-events:none;z-index:-1}.button>span,.quiet-link>span,.text-link>span,.direct-contact a>span{display:inline-block;transition:transform .4s cubic-bezier(.16,1,.3,1)}
.work-visual{overflow:hidden}.mini-node,.mini-stack{transition:transform .65s cubic-bezier(.16,1,.3,1),box-shadow .4s}.mini-stack i{transition:transform .45s,background .45s}.work-card{transition:transform .45s cubic-bezier(.16,1,.3,1),box-shadow .45s,border-color .35s}.mobile-menu[open]>summary span{transform:rotate(90deg)}
@media(hover:hover) and (prefers-reduced-motion:no-preference){
.button:hover:before{animation:button-glint .8s ease-out}.button:hover>span,.quiet-link:hover>span,.text-link:hover>span,.direct-contact a:hover>span{transform:translate(3px,-3px)}
.work-card:hover .mini-node{transform:translateY(-6px) rotate(-4deg);box-shadow:0 10px 20px #07141940}.work-card:hover .mini-stack{transform:translateY(4px) rotate(3deg)}.work-card:hover .mini-stack i:nth-child(2){transform:translateX(5px)}.work-card:hover .mini-stack i:nth-child(3){transform:translateX(-4px)}.work-card:hover .text-link>span{transform:translate(4px,-4px)}
}
@keyframes button-glint{from{left:-60%}to{left:140%}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}.path-art>path{stroke-dasharray:none;stroke-dashoffset:0}}

#country-search{margin-bottom:10px}

.follow-intro{margin:24px 0 0;font-size:16px}.follow-intro a{color:#e8cda4;text-decoration:underline;text-underline-offset:6px}.project-directory{margin-top:70px;padding-top:45px;border-top:1px solid #536a70;scroll-margin-top:125px}.project-directory>h3{font-size:36px;line-height:1.25;margin:12px 0 20px}.project-directory>p:not(.kicker){max-width:720px;font-size:18px;color:#c5d3d3}.repository-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:22px;margin-top:30px}.repository-card{padding:28px;border:1px solid #4c656d;border-radius:16px;background:#20353c;min-width:0}.repository-card h4{font-size:24px;line-height:1.35;margin:0 0 14px;color:#eeeae1}.repository-card p{font-size:17px;line-height:1.7;color:#c5d3d3;margin:0 0 22px}.repository-actions{display:flex;flex-wrap:wrap;gap:12px 25px}.repository-actions a{font-size:16px;color:#e8cda4;min-height:44px;display:inline-flex;align-items:center;gap:8px;text-decoration:underline;text-underline-offset:5px}.social-links{display:flex;flex-wrap:wrap;gap:16px;margin:0 0 36px}.social-links a{display:inline-flex;align-items:center;gap:14px;min-height:48px;padding:10px 18px;border:1px solid #68818a;border-radius:30px;font-size:16px;text-decoration:none}.social-links .social-primary{background:#d9bc91;border-color:#d9bc91;color:#18282d}.social-links a:hover{border-color:#e8cda4}.social-links a:not(.social-primary):hover{background:#29444b}@media(max-width:760px){.repository-grid{grid-template-columns:1fr}.repository-card{padding:24px}.project-directory>h3{font-size:31px}.social-links{gap:12px}.social-links a{font-size:16px}}

.code-library{margin-top:38px;border-top:1px solid #536a70;border-bottom:1px solid #536a70;padding:18px 0}.code-library summary{font-size:18px;cursor:pointer;min-height:48px;display:flex;justify-content:space-between;align-items:center;gap:20px;color:#e8cda4}.code-library summary span{font-size:26px;transition:transform .25s}.code-library>p{font-size:17px;color:#c5d3d3;max-width:760px}.code-library ul{list-style:none;padding:0;display:grid;grid-template-columns:1fr 1fr;gap:8px 28px}.code-library li a{font-size:17px;display:block;padding:12px 0;text-underline-offset:5px}.example-note{font-size:16px;color:#c5d3d3;margin:0 0 25px}.work-card:focus-visible{outline:3px solid #e8cda4;outline-offset:5px}.direct-contact{margin-top:28px}@media(max-width:760px){.code-library ul{grid-template-columns:1fr}.code-library summary{font-size:18px}.example-note{font-size:16px}}
