:root{font-family:Inter,Arial,sans-serif;color:#111;background:#fff;font-synthesis:none;font-weight:400}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:32px}body{margin:0}h1,h2,h3,p,figure{margin:0}a{color:inherit;text-underline-offset:.2em}button,a{-webkit-tap-highlight-color:transparent;touch-action:manipulation}a:focus-visible,[tabindex]:focus-visible{outline:3px solid #7254ed;outline-offset:6px}.skip-link{position:fixed;top:12px;left:16px;z-index:10;padding:12px 20px;background:white;transform:translateY(-180%)}.skip-link:focus{transform:none}.portrait{position:relative;isolation:isolate;margin:24px 32px 0;min-height:460px;height:min(78svh,820px);overflow:hidden;border-radius:28px;background:#131316}.portrait img{display:block;height:100%;width:100%;object-fit:cover;object-position:50% 0%}.portrait::after{content:"";position:absolute;inset:0 0 auto;height:140px;background:linear-gradient(#0008,transparent);pointer-events:none;z-index:1}.portrait figcaption{position:absolute;z-index:2;inset:26px 30px auto;display:flex;justify-content:space-between;align-items:center;color:white;font-size:14px}.portrait figcaption span:first-child{font-size:30px;font-weight:700;letter-spacing:-1.5px}.meet-link{position:absolute;z-index:2;bottom:28px;left:30px;color:#111;background:#fff;border-radius:40px;padding:14px 22px;min-height:48px;font-size:14px;text-decoration:none}.intro{max-width:1000px;padding:0 40px;margin:66px auto 0}.hello{font-size:26px;line-height:1.4;font-weight:700;margin-left:20%;margin-bottom:70px}.wave{display:inline-block;transform-origin:70% 70%}.intro h1{font-size:clamp(60px,7.5vw,108px);line-height:1.08;letter-spacing:-.055em;font-weight:700;max-width:960px}.small-break{display:none}.intro-copy{font-size:23px;line-height:1.52;max-width:660px;margin:70px 0 0 20%;letter-spacing:-.02em}.statement{max-width:1000px;margin:170px auto 130px;padding:0 40px}.section-label{font-size:14px;line-height:1.5;margin:0 0 32px 20%;color:#555}.statement h2{font-size:clamp(44px,5vw,66px);line-height:1.14;letter-spacing:-.045em;max-width:700px;margin-left:20%}.services{margin:0 auto 88px;max-width:1440px;padding:0 40px}.rail-heading{margin-bottom:28px}.rail-heading h2{font-size:21px;line-height:1.5;letter-spacing:-.02em}.service-rail{overflow-x:auto;scroll-snap-type:x proximity;scrollbar-width:thin;scrollbar-color:#b8b8b8 transparent;overscroll-behavior-x:contain}.service-track{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}.service-card{min-width:0;min-height:375px;border-radius:28px;padding:clamp(20px,2.5vw,32px);display:flex;flex-direction:column;align-items:flex-start;background:#f0f0f0;scroll-snap-align:start}.service-card--dark{background:#171717;color:#fff}.service-card:nth-child(3){background:#f0f0f0}.card-number{font-size:13px;line-height:1.5}.service-card h3{font-size:clamp(28px,3.3vw,42px);line-height:1.05;letter-spacing:-.055em;margin:35px 0 24px}.service-card p{font-size:16px;line-height:1.55;max-width:28ch}.card-tag{font-size:12px;margin-top:auto;padding-top:30px}.rail-hint{display:none}.personal-content{max-width:780px;margin:0 auto;padding:0 40px}.list-section{margin-bottom:48px;font-size:21px;line-height:1.65;letter-spacing:-.02em}.list-section h2{font-size:21px;margin-bottom:20px;line-height:1.45}.list-section ul{margin:0;padding-left:25px}.list-section li{padding-left:2px;margin-bottom:9px}.closing{border-top:1px solid #dedede;margin-top:56px;padding:48px 0 40px}.closing p{font-size:clamp(32px,4vw,46px);line-height:1.2;letter-spacing:-.045em;font-weight:700}.closing>span{display:block;margin-top:28px;color:#555;font-size:16px;line-height:1.6}::selection{background:#ddd5ff;color:#111}@media(hover:hover) and (pointer:fine){a:hover{text-decoration:none}.meet-link:hover{background:#e7e4f6}.hello:hover .wave{animation:wave 600ms ease-in-out}}@keyframes wave{0%,100%{transform:rotate(0)}25%{transform:rotate(18deg)}65%{transform:rotate(-9deg)}}@media(min-width:1700px){.portrait{max-width:1640px;margin-inline:auto}}@media(max-width:760px){.portrait{margin:14px 14px 0;border-radius:22px;height:72svh;min-height:420px;max-height:700px}.portrait img{object-position:50% 0%}.portrait figcaption{inset:20px 22px auto;font-size:12px;text-shadow:0 1px 8px #000}.portrait figcaption span:first-child{font-size:25px}.meet-link{left:22px;bottom:22px;font-size:13px;padding:13px 18px}.intro{padding:0 24px;margin-top:48px}.hello{font-size:21px;margin:0 0 40px}.intro h1{font-size:clamp(43px,9vw,68px);line-height:1.1;letter-spacing:-.055em}.intro-copy{font-size:20px;margin:38px 0 0;line-height:1.55}.statement{margin:100px auto 80px;padding:0 24px}.section-label{margin:0 0 25px}.statement h2{font-size:clamp(37px,8vw,52px);margin:0;line-height:1.14}.services{padding:0 24px;margin-bottom:64px}.rail-heading{margin-bottom:26px}.rail-heading h2{font-size:19px}.service-rail{padding-bottom:18px}.service-track{display:flex;width:max-content;gap:14px}.service-card{width:calc(85vw - 41px);flex:none;min-height:365px;padding:26px;border-radius:24px}.service-card h3{font-size:clamp(32px,9vw,40px)}.rail-hint{display:block;font-size:13px;color:#555;margin-top:12px}.personal-content{padding:0 24px}.list-section{font-size:18px;line-height:1.65;margin-bottom:40px}.list-section h2{font-size:20px;margin-bottom:18px}.closing{margin-top:40px;padding:32px 0}.closing p{font-size:34px}.small-break{display:block}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation:none!important;transition:none!important}}@media print{.portrait{height:360px}.meet-link,.skip-link{display:none}.service-rail{display:block}.service-card{break-inside:avoid;margin-bottom:16px}.reveal{opacity:1!important;transform:none!important}section{break-inside:avoid}}

.email-link{display:inline-block;margin-top:20px;font-size:clamp(18px,3vw,27px);font-weight:700;line-height:1.5;letter-spacing:-.03em;overflow-wrap:anywhere;max-width:100%}.email-link:hover{color:#6545bd}

/* A distinct invitation for community and social projects. */
.community{max-width:1180px;margin:0 auto 88px;padding:64px 72px;border-radius:28px;background:#d8fc71;color:#111}
.community-label{font-size:14px;font-weight:700;line-height:1.5;margin-bottom:30px}
.community h2{font-size:clamp(40px,5vw,66px);line-height:1.08;letter-spacing:-.05em}
.community-copy{max-width:650px;font-size:21px;line-height:1.6;margin-top:30px;letter-spacing:-.02em}
.community-link{display:inline-block;max-width:100%;margin-top:30px;padding:16px 24px;border-radius:32px;background:#111;color:#fff;font-size:16px;line-height:1.5;text-decoration:none}
.community-link:focus-visible{outline-color:#111}
@media(hover:hover) and (pointer:fine){.community-link:hover{background:#333}}
@media(max-width:1260px){.community{margin-inline:40px}}
@media(max-width:760px){.community{margin:0 24px 64px;padding:32px 26px;border-radius:24px}.community-label{margin-bottom:24px}.community h2{font-size:clamp(34px,8.6vw,52px)}.community-copy{font-size:18px;margin-top:24px}.community-link{font-size:15px;padding:14px 20px;margin-top:24px}}

/* Portrait-led motion and restrained interactive feedback. */
:root{--ease-out:cubic-bezier(.23,1,.32,1);--ease-in-out:cubic-bezier(.77,0,.175,1)}
.portrait img{transform-origin:50% 0%;backface-visibility:hidden}
.intro h1{font-size:clamp(66px,8.5vw,118px);line-height:1.03;letter-spacing:-.06em}
.title-line{display:block;overflow:hidden;padding-bottom:.13em;margin-bottom:-.13em}
.title-line>span{display:block}
.intro-copy{margin-top:52px}
.community{position:relative;overflow:hidden}
.community-label{display:inline-block;border:1px solid #1116;border-radius:30px;padding:10px 16px;font-size:13px;max-width:100%}
.community-link,.meet-link{transition:transform 160ms var(--ease-out),background-color 160ms ease}
.community-link:active,.meet-link:active{transform:scale(.97)}
@media(hover:hover) and (pointer:fine){.community-link:hover,.meet-link:hover{transform:translateY(-3px)}}
@media(max-width:760px){.intro h1{font-size:clamp(36px,10.7vw,74px);line-height:1.08}.intro-copy{margin-top:34px}.community-label{font-size:12px;line-height:1.5;padding:9px 12px}.closing p{font-size:clamp(32px,8.5vw,46px)}}
@media(prefers-reduced-motion:reduce){.portrait img,.service-track,.title-line>span{transform:none!important}}
@media print{.service-track{display:block;transform:none!important;animation:none!important}.service-card{width:auto}.portrait img{transform:none!important}}

/* Editorial type: bold statements, quiet copy, a personal handwritten sign-off. */
.intro{max-width:1120px;margin-top:80px}
.hello{margin-left:28%;margin-bottom:78px;font-size:26px}
.intro h1{font-size:clamp(64px,8.6vw,120px);line-height:1.07;letter-spacing:-.047em;max-width:none}
.title-line{padding-bottom:.15em;margin-bottom:-.15em}
.intro-copy{margin:64px 0 0 28%;max-width:660px;font-size:23px;line-height:1.5;letter-spacing:-.015em}
.statement{max-width:1120px;margin:96px auto 96px}
.section-label{margin-left:28%;margin-bottom:28px}
.statement h2{margin-left:28%;font-size:clamp(44px,4.8vw,68px);line-height:1.12;letter-spacing:-.04em;max-width:760px}
.signed-note{margin-top:16px}.handwritten-art{display:block;width:480px;max-width:100%;height:auto}




@media(max-width:760px){
 .intro{margin-top:48px}.hello{margin:0 0 44px;font-size:21px}
 .intro h1{font-size:clamp(32px,9.5vw,68px);line-height:1.1;letter-spacing:-.045em}
 .intro-copy{margin:36px 0 0;font-size:20px;line-height:1.55}
 .statement{margin:64px auto 56px}.section-label{margin-left:0;margin-bottom:24px}
 .statement h2{margin-left:0;font-size:clamp(29px,7.7vw,52px);line-height:1.16;letter-spacing:-.04em}
 .signed-note{margin-top:16px}.handwritten-art{width:560px}
 
}

/* A small, personal contact dialog. The browser owns focus and modal semantics. */
.contact-actions{display:flex;flex-direction:column;align-items:flex-start;gap:16px;margin-top:26px}
.contact-email{display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 6px;font-size:14px;line-height:1.6;color:#606060}
.contact-actions .email-link{margin:0;font-size:14px;font-weight:400;line-height:1.6;letter-spacing:0;color:#444}
.contact-open,.contact-send,.contact-close{font:inherit;cursor:pointer;user-select:none;-webkit-user-select:none;touch-action:manipulation}
.contact-open{display:inline-flex;align-items:center;justify-content:space-between;gap:36px;min-height:54px;padding:15px 24px;border:0;border-radius:30px;background:#111;color:#fff;font-size:16px}
.contact-open[hidden]{display:none}
.contact-open span,.contact-send span{font-size:25px;font-weight:400;line-height:1}
.contact-open:focus-visible,.contact-send:focus-visible,.contact-close:focus-visible{outline:2px solid #111;outline-offset:4px;box-shadow:0 0 0 7px #d8fc71}
html:has(.contact-dialog[open]){overflow:hidden;scrollbar-gutter:stable}
.contact-dialog{width:520px;max-width:calc(100% - 32px);max-height:calc(100dvh - 32px);margin:auto;padding:40px;border:0;border-radius:26px;color:#111;background:#fff;box-shadow:0 24px 100px #0002;overflow-y:auto;overscroll-behavior:contain;opacity:0;transform:scale(.97);transition:opacity 220ms var(--ease-out),transform 220ms var(--ease-out),display 220ms allow-discrete,overlay 220ms allow-discrete}
.contact-dialog[open]{opacity:1;transform:scale(1)}
.contact-dialog::backdrop{background:#111;opacity:0;transition:opacity 220ms var(--ease-out),display 220ms allow-discrete,overlay 220ms allow-discrete}
.contact-dialog[open]::backdrop{opacity:.32}
@starting-style{.contact-dialog[open]{opacity:0;transform:scale(.97)}.contact-dialog[open]::backdrop{opacity:0}}
.contact-close{position:absolute;right:18px;top:18px;display:grid;place-items:center;width:44px;height:44px;padding:0;border:0;border-radius:50%;background:transparent;color:#444}
.contact-dialog h2{margin:8px 30px 32px 0;font-size:56px;font-weight:700;line-height:1.05;letter-spacing:-.06em}
.contact-dialog h2 span{color:#679400}
.contact-field{margin-bottom:22px}
.contact-field label{display:block;margin-bottom:9px;font-size:14px;line-height:1.5;font-weight:700;letter-spacing:-.015em}
.contact-field input,.contact-field textarea{display:block;width:100%;min-width:0;padding:16px 18px;border:1px solid transparent;border-radius:13px;background:#f3f3f3;color:#111;font:400 16px/1.5 Inter,Arial,sans-serif;transition:background-color 150ms ease,border-color 150ms ease;scroll-margin-block:20px}
.contact-field textarea{min-height:146px;resize:vertical}
.contact-field input::placeholder,.contact-field textarea::placeholder{color:#737373;opacity:1}
.contact-field input:focus,.contact-field textarea:focus{outline:2px solid #91b843;outline-offset:2px;border-color:#4a641b;background:#fafcf5}
.contact-send{display:flex;align-items:center;justify-content:space-between;gap:20px;width:100%;min-height:56px;padding:15px 20px;border:0;border-radius:13px;background:#111;color:white;font-size:16px;line-height:1.5}
.contact-open,.contact-send{transition:background-color 150ms ease,transform 100ms var(--ease-out)}
.contact-open:active,.contact-send:active{transform:scale(.98)}
.contact-send:disabled{cursor:wait;opacity:.65}
.contact-status{margin-top:16px;font-size:14px;line-height:1.5;color:#555}
@media(hover:hover) and (pointer:fine){.contact-open:hover,.contact-send:hover{background:#333}.contact-close:hover{background:#f1f1f1}}
@media(max-width:760px){.contact-dialog{padding:30px 24px 24px;max-width:calc(100% - 24px);max-height:calc(100dvh - 24px);border-radius:22px}.contact-dialog h2{font-size:46px;margin-top:12px;margin-bottom:28px}.contact-close{top:10px;right:10px}.contact-field{margin-bottom:20px}.contact-field input,.contact-field textarea{padding:14px}.contact-field textarea{min-height:136px}}
@media(prefers-reduced-motion:reduce){.contact-dialog,.contact-dialog[open]{transform:none;transition:none}.contact-dialog::backdrop{transition:none}}
@media print{.contact-open,.contact-dialog{display:none!important}}
.contact-dialog.without-motion,.contact-dialog.without-motion::backdrop{transition:none}

.contact-status[data-error]{color:#963c2a}

/* A handwritten thank-you replaces the form only after the provider accepts it. */
.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}
.contact-dialog.is-success{padding:54px 32px 30px}
.contact-success:focus{outline:none}
.contact-success[hidden],.thank-you-art[hidden]{display:none}
.thank-you-art{display:block;width:100%;height:auto}
.contact-success p:not(.visually-hidden){font-size:20px;line-height:1.5}
@media(max-width:760px){.contact-dialog.is-success{padding:48px 18px 24px}}
