:root{--ground:#f5f5f1;--paper:#fff;--ink:#0a1a24;--ink-soft:#1e2c36;--grey:#46525b;--line:#d9dad4;--line-strong:#b9bcb5;--hover:#ecede7;--mint:#3bd9a6;--mint-soft:#b9f2de;--mint-tint:#e3f8f0;--green:#0a6b54;--error:#a3271f;--dark-text:#f2f4f3;--dark-grey:#b7c0c6;--dark-line:#2a3a45;--dark-pick:#15303f;--amber:#e7c36a;--font-display:"Bricolage Grotesque", system-ui, sans-serif;--font-body:"IBM Plex Sans", system-ui, sans-serif;--font-mono:"IBM Plex Mono", ui-monospace, monospace;--container:1240px;--section-pad:clamp(72px, 9vw, 136px);--head-gap:clamp(32px, 4vw, 56px);--ease:ease}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth;scroll-padding-top:88px}body{background:var(--ground);color:var(--ink);font-family:var(--font-body);-webkit-font-smoothing:antialiased;font-size:17px;font-weight:400;line-height:1.55;overflow-x:hidden}img,svg{max-width:100%;display:block}a{color:inherit;text-decoration:none}button,input,textarea{font:inherit;color:inherit}button{cursor:pointer;background:0 0;border:none}ul{list-style:none}h1,h2,h3,h4{font-family:var(--font-display);text-wrap:balance;font-weight:600}:focus-visible{outline:3px solid var(--green);outline-offset:3px}.container{max-width:var(--container);margin:0 auto;padding:0 32px}.section{padding:var(--section-pad) 0}.section-head{margin-bottom:var(--head-gap)}.eyebrow{font-family:var(--font-mono);letter-spacing:.06em;text-transform:uppercase;color:var(--green);font-size:13px;font-weight:400}.eyebrow.on-dark{color:var(--mint)}.lead{color:var(--grey);max-width:36em;font-size:clamp(17px,1.5vw,20px);font-weight:400}.h-hero{letter-spacing:-.045em;font-size:clamp(46px,8.6vw,128px);font-weight:600;line-height:.92}.h-contact{letter-spacing:-.045em;font-size:clamp(46px,8vw,120px);font-weight:600;line-height:.92}.h-section{letter-spacing:-.035em;font-size:clamp(36px,5vw,72px);font-weight:600;line-height:.98}.h-service{letter-spacing:-.03em;font-size:clamp(26px,3.4vw,48px);font-weight:600;line-height:1.02}.h-brief{font-family:var(--font-display);letter-spacing:-.02em;font-size:clamp(24px,2.7vw,36px);font-weight:500;line-height:1.22}.h-step{font-family:var(--font-display);letter-spacing:-.02em;font-size:clamp(22px,2.6vw,34px);font-weight:500;line-height:1.25}.h-fact{font-family:var(--font-display);letter-spacing:-.03em;font-size:clamp(34px,3.6vw,48px);font-weight:600;line-height:1}.h-card{letter-spacing:-.01em;font-size:22px;font-weight:600}.h-menu{letter-spacing:-.01em;font-size:18px;font-weight:600}.btn{min-height:52px;font-family:var(--font-body);transition:transform .15s var(--ease), box-shadow .15s var(--ease), background .15s var(--ease);white-space:nowrap;border-radius:6px;justify-content:center;align-items:center;gap:10px;padding:0 24px;font-size:16px;font-weight:600;display:inline-flex}.btn-primary{background:var(--ink);color:#fff}.btn-primary:hover{box-shadow:4px 4px 0 var(--mint);transform:translate(-2px,-2px)}.btn-primary:disabled{opacity:.6;box-shadow:none;cursor:not-allowed;transform:none}.btn-primary svg{flex-shrink:0;width:16px;height:16px}.text-btn{min-height:44px;color:var(--ink);transition:color .15s var(--ease);border-bottom:1.5px solid;align-items:center;font-size:16px;font-weight:600;display:inline-flex}.text-btn:hover{color:var(--green)}.chip{border:1.5px solid var(--line-strong);background:var(--paper);min-height:46px;color:var(--ink);transition:transform .15s var(--ease), border-color .15s var(--ease), background .15s var(--ease), color .15s var(--ease);border-radius:6px;justify-content:center;align-items:center;padding:0 18px;font-size:16px;font-weight:500;display:inline-flex}.chip:hover{border-color:var(--ink);transform:translateY(-1px)}.chip[aria-pressed=true]{background:var(--ink);border-color:var(--ink);color:#fff}.swap-in{animation:swapIn .35s var(--ease)}@keyframes swapIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes markWipe{0%{transform:scaleX(0)}to{transform:scaleX(1)}}@keyframes blink{0%,49%{opacity:1}50%,to{opacity:0}}.site-header{z-index:200;background:var(--ground);position:sticky;top:0}.header-bar{border-bottom:1px solid var(--ink)}.header-inner{justify-content:space-between;align-items:center;gap:16px;min-height:72px;display:flex;position:relative}.logo{font-family:var(--font-display);letter-spacing:-.02em;flex-shrink:0;font-size:20px;font-weight:600}.nav-center{align-items:center;gap:4px;display:flex;position:absolute;left:50%;transform:translate(-50%)}.nav-trigger{min-height:44px;color:var(--ink);transition:background .15s var(--ease), font-weight .15s var(--ease), box-shadow .15s var(--ease);border-radius:6px;align-items:center;gap:6px;padding:0 14px;font-size:15.5px;font-weight:500;display:inline-flex}.nav-trigger svg{width:10px;height:6px;transition:transform .15s var(--ease)}.nav-trigger[aria-expanded=true]{background:var(--hover);box-shadow:inset 0 -2px 0 var(--green);font-weight:600}.nav-trigger[aria-expanded=true] svg{transform:rotate(180deg)}.header-cta{flex-shrink:0;min-height:44px;margin-left:auto;padding:0 20px;font-size:15px}.menu-toggle{border:1.5px solid var(--ink);border-radius:6px;flex-direction:column;justify-content:center;align-items:center;gap:5px;width:44px;height:44px;display:none}.menu-toggle span{background:var(--ink);width:18px;height:1.5px;display:block}.mega-slot{z-index:210;position:relative}.mega{background:var(--paper);border:1.5px solid var(--ink);box-shadow:12px 12px 0 var(--mint);max-height:calc(100dvh - 88px);animation:swapIn .35s var(--ease);border-top:none;border-radius:0 0 4px 4px;grid-template-columns:1fr minmax(240px,280px);display:grid;position:absolute;top:0;left:32px;right:32px;overflow:hidden}@media (width<=560px){.mega{left:20px;right:20px}}.mega-main{overscroll-behavior:contain;scrollbar-gutter:stable;min-height:0;padding:24px 28px;overflow-y:auto}.mega-main::-webkit-scrollbar{width:8px}.mega-main::-webkit-scrollbar-thumb{background:var(--line-strong);border-radius:4px}.mega-groups{align-content:start;gap:24px 32px;display:grid}.mega-groups.cols-2{grid-template-columns:1fr 1fr}.mega-group-label{font-family:var(--font-mono);letter-spacing:.06em;text-transform:uppercase;color:var(--green);margin-bottom:8px;font-size:12.5px}.mega-items{gap:2px;display:grid}.mega-items.cols-2{grid-template-columns:1fr 1fr;gap:2px 12px}.mega-item{transition:background .15s var(--ease);border-radius:6px;padding:7px 10px;display:block}.mega-item:hover{background:#f0f1ec}.mega-item-name{font-family:var(--font-display);letter-spacing:-.01em;margin-bottom:1px;font-size:16px;font-weight:600;line-height:1.2}.mega-item-desc{color:var(--grey);font-size:13.5px;line-height:1.3}.mega-aside{background:var(--ground);border-left:1.5px solid var(--ink);overscroll-behavior:contain;flex-direction:column;gap:14px;min-height:0;padding:28px 24px;display:flex;overflow-y:auto}.mega-aside-label{font-family:var(--font-mono);letter-spacing:.06em;text-transform:uppercase;color:var(--green);font-size:13px}.mega-aside-statement{font-family:var(--font-display);letter-spacing:-.01em;font-size:22px;font-weight:500;line-height:1.25}.mega-aside .btn,.mega-aside .text-btn{align-self:flex-start}.mega-simple{align-items:stretch;max-height:none}.mega-simple .mega-main{padding:28px 36px 32px;overflow:visible}.mega-panel-label{font-family:var(--font-mono);letter-spacing:.06em;text-transform:uppercase;color:var(--green);margin-bottom:22px;font-size:13px}.mega-simple .mega-items.cols-2{grid-template-columns:1fr 1fr;align-content:start;gap:28px 48px}.mega-simple .mega-item{border-radius:0;padding:0}.mega-simple .mega-item:hover{background:0 0}.mega-simple .mega-item:hover .mega-item-name{color:var(--green)}.mega-simple .mega-item-name{transition:color .15s var(--ease);margin-bottom:6px;font-size:22px}.mega-simple .mega-item-desc{font-size:15px;line-height:1.4}.mega-simple .mega-aside{justify-content:flex-start;padding:28px 32px}.mega-simple .mega-aside-statement{margin-bottom:4px;font-size:22px}.mobile-nav{border-bottom:1px solid var(--ink);background:var(--paper);animation:swapIn .35s var(--ease)}.mobile-section-btn{border-bottom:1px solid var(--line);width:100%;min-height:54px;font-family:var(--font-display);letter-spacing:-.01em;text-align:left;justify-content:space-between;align-items:center;padding:0 32px;font-size:20px;font-weight:600;display:flex}.mobile-section-btn[aria-expanded=true]{background:var(--hover)}.mobile-items a{border-bottom:1px solid var(--line);min-height:44px;color:var(--ink-soft);align-items:center;padding:0 32px 0 48px;font-size:16.5px;display:flex}.mobile-cta{padding:16px 32px 24px}.hero{padding:clamp(40px, 5vw, 64px) 0 var(--section-pad);border-bottom:1px solid var(--ink)}.hero-eyebrow{margin-bottom:20px}.hero .h-hero{max-width:12ch;margin-bottom:18px}.hero-lead{margin-bottom:var(--head-gap);max-width:34em}.hero-grid{flex-wrap:wrap;gap:40px 48px;display:flex}.brief-questions{flex-direction:column;flex:420px;gap:28px;display:flex}.q-block-head{align-items:baseline;gap:10px;margin-bottom:12px;display:flex}.q-num{font-family:var(--font-mono);color:var(--green);font-size:13px;font-weight:500}.q-label{font-size:17px;font-weight:600}.chip-row{flex-wrap:wrap;gap:8px;display:flex}.brief-wrap{flex:420px;max-width:540px}.brief-card{background:var(--paper);border:1.5px solid var(--ink);box-shadow:12px 12px 0 var(--mint);border-radius:4px;overflow:hidden}.brief-head{border-bottom:1.5px solid var(--ink);font-family:var(--font-mono);letter-spacing:.06em;text-transform:uppercase;color:var(--grey);justify-content:space-between;align-items:center;gap:12px;padding:14px 24px;font-size:12.5px;display:flex}.brief-draft{color:var(--ink-soft);align-items:center;gap:8px;display:inline-flex}.brief-blink{background:var(--green);width:8px;height:8px;animation:1.2s step-end infinite blink}.brief-body{padding:24px}.brief-sentence{margin-bottom:24px}.brief-sentence mark{color:var(--ink);z-index:0;background:0 0;padding:0 .12em;font-weight:500;position:relative}.brief-sentence mark:before{content:"";background:var(--mint-soft);transform-origin:0;animation:markWipe .5s var(--ease) forwards;z-index:-1;position:absolute;inset:0}.brief-weeks{border-top:1px solid var(--line);margin-bottom:22px;padding-top:18px}.brief-weeks-label{font-family:var(--font-mono);letter-spacing:.06em;text-transform:uppercase;color:var(--grey);margin-bottom:14px;font-size:12.5px}.brief-week{grid-template-columns:72px 1fr;gap:12px;margin-bottom:12px;display:grid}.brief-week-num{color:var(--green);font-size:15px;font-weight:600}.brief-week p{color:var(--ink-soft);font-size:15px;line-height:1.45}.field{flex-direction:column;gap:8px;display:flex}.field label{font-size:14.5px;font-weight:600}.field input,.field textarea{border:1.5px solid var(--ink);background:var(--paper);border-radius:6px;width:100%;min-height:52px;padding:0 14px;font-size:16px}.field textarea{resize:vertical;min-height:120px;padding:14px}.field input:focus,.field textarea:focus{outline:3px solid var(--green);outline-offset:3px}.field.error input,.field.error textarea{border-color:var(--error)}.field-error{color:var(--error);font-size:14px}.field-success{background:var(--mint-tint);border:1.5px solid var(--green);color:var(--ink-soft);border-radius:4px;padding:14px 16px;font-size:15px}.brief-form-row{flex-wrap:wrap;align-items:stretch;gap:10px;display:flex}.brief-form-row .field{flex:200px}.brief-form-row .btn{flex:none}.brief-note{color:var(--grey);margin-top:14px;font-size:14px}.facts{background:var(--paper);border-bottom:1px solid var(--line)}.facts-inner{flex-wrap:wrap;gap:24px 32px;padding:36px 0;display:flex}.fact{flex:180px}.fact-label{color:var(--grey);margin-top:6px;font-size:15px}.services-kicker{letter-spacing:.08em;text-transform:uppercase;color:var(--grey);margin-bottom:14px;font-size:13px;font-weight:500}.services-head{margin-bottom:var(--head-gap);flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:16px 24px;display:flex}.service-list{border-top:1px solid var(--ink);border-bottom:1px solid var(--ink)}.service-row{border-top:1px solid var(--line)}.service-row:first-child{border-top:none}.service-row.open{background:var(--hover)}.service-trigger{text-align:left;width:100%;min-height:92px;transition:background .15s var(--ease);grid-template-columns:48px minmax(140px,1.1fr) minmax(0,1.4fr) 44px;align-items:center;gap:16px 20px;padding:20px 8px;display:grid}.service-trigger:hover{background:var(--hover)}.service-row.open .service-trigger:hover{background:0 0}.service-num{font-family:var(--font-mono);color:var(--grey);font-size:13px;font-weight:400}.service-line{color:var(--grey);font-size:16px;line-height:1.35}.service-icon{border:1.5px solid var(--ink);background:var(--paper);width:44px;height:44px;color:var(--ink);transition:background .15s var(--ease), color .15s var(--ease), transform .2s var(--ease);border-radius:50%;justify-self:end;place-items:center;display:grid}.service-icon svg{width:16px;height:16px;transition:transform .2s var(--ease)}.service-row.open .service-icon{background:var(--ink);color:#fff;border-color:var(--ink)}.service-row.open .service-icon svg{transform:rotate(45deg)}.service-panel{animation:swapIn .35s var(--ease);padding:0 8px 32px}.service-panel-inner{flex-wrap:wrap;gap:32px 56px;padding:4px 0 0 68px;display:flex}.service-copy{flex:320px;max-width:520px}.service-copy p{color:var(--ink-soft);margin-bottom:22px;font-size:16px;line-height:1.55}.service-side{flex:220px;max-width:280px}.service-side li{border-bottom:1px solid var(--line);color:var(--ink);padding:12px 0;font-size:16px;font-weight:500}.work{background:var(--ink);color:var(--dark-text)}.work>.container>.eyebrow{margin-bottom:18px}.work-head{margin-bottom:var(--head-gap);flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:24px 56px;display:flex}.work-head .h-section{color:var(--dark-text);flex:320px;max-width:10ch}.work-head .lead{color:var(--dark-grey);flex:280px;max-width:34em;padding-top:8px}.work-grid{flex-wrap:wrap;align-items:stretch;gap:36px 48px;display:flex}.work-list{border-bottom:1px solid var(--dark-line);flex-direction:column;flex:0 340px;align-self:flex-start;gap:8px;width:100%;max-width:380px;padding-bottom:8px;display:flex}.work-item{text-align:left;width:100%;color:var(--dark-text);transition:background .15s var(--ease);border-radius:8px;padding:22px 20px}.work-item.is-active{background:var(--dark-pick)}.work-item-top{justify-content:space-between;align-items:center;gap:12px;margin-bottom:10px;display:flex}.work-item .h-card{color:var(--dark-text)}.work-status{font-family:var(--font-mono);letter-spacing:.06em;text-transform:uppercase;flex-shrink:0;align-items:center;gap:7px;font-size:12px;display:inline-flex}.work-status .dot{border-radius:50%;flex-shrink:0;width:8px;height:8px}.work-status.live{color:var(--mint)}.work-status.live .dot{background:var(--mint)}.work-status.dev{color:var(--amber)}.work-status.dev .dot{border:1.5px solid var(--amber);background:0 0}.work-item p{color:var(--dark-grey);max-width:28em;font-size:15px;line-height:1.45}.work-visual{min-width:0;animation:swapIn .35s var(--ease);flex:480px}.work-frame{background:#0c1822;border:1.5px solid #2f6f9f;border-radius:8px;margin-bottom:22px;padding:22px 22px 18px;position:relative;overflow:hidden}.work-wave{background:var(--mint);opacity:.55;pointer-events:none;border-radius:50% 40% 55% 45%;width:62%;height:90%;position:absolute;top:-40%;right:-18%;transform:rotate(-18deg)}.work-shot{z-index:1;background:#fff;border-radius:4px;margin:0;position:relative;overflow:hidden}.work-shot img{width:100%;height:auto;display:block}.work-caption{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:16px 28px;display:flex}.work-detail{color:var(--dark-text);flex:280px;max-width:36em;font-size:15.5px;line-height:1.5}.work-cta{color:var(--dark-text);border-bottom:2px solid var(--mint);min-height:44px;transition:color .15s var(--ease);flex:none;align-items:center;gap:6px;padding-bottom:2px;font-size:16px;font-weight:600;display:inline-flex}.work-cta:hover{color:var(--mint)}.process{border-bottom:1px solid var(--line)}.process-kicker{letter-spacing:.08em;text-transform:uppercase;color:var(--grey);margin-bottom:14px;font-size:13px;font-weight:500}.process .h-section{max-width:16ch;margin-bottom:var(--head-gap)}.process-tabs{border-top:1px solid var(--line);flex-wrap:wrap;gap:0;margin-bottom:28px;display:flex}.process-tab{text-align:left;border-top:3px solid var(--line-strong);color:var(--grey);transition:color .15s var(--ease), border-color .15s var(--ease), font-weight .15s var(--ease);flex-direction:column;flex:160px;gap:8px;margin-top:-1px;padding:18px 14px 16px 0;font-size:15.5px;font-weight:500;display:flex}.process-tab[aria-selected=true]{color:var(--ink);border-top-color:var(--green);font-weight:600}.process-tab-num{font-family:var(--font-mono);letter-spacing:.06em;color:var(--grey);font-size:12.5px;font-weight:400}.process-card{background:var(--paper);border:1.5px solid var(--ink);animation:swapIn .35s var(--ease);border-radius:4px;margin-bottom:48px;padding:40px 36px}.process-pillars{flex-wrap:wrap;gap:32px 40px;display:flex}.pillar{border-top:1px solid var(--line);flex:240px;padding-top:22px}.pillar h3{letter-spacing:-.01em;text-wrap:balance;margin-bottom:10px;font-size:18px}.pillar p{color:var(--grey);font-size:15px;line-height:1.5}.team{background:var(--paper);border-top:1px solid var(--line)}.team-head{margin-bottom:var(--head-gap);flex-wrap:wrap;justify-content:space-between;align-items:end;gap:24px 40px;display:flex}.team-head .lead{max-width:28em}.team-grid{grid-template-columns:repeat(4,1fr);gap:28px 22px;display:grid}.member{transition:transform .2s var(--ease)}.member:hover{transform:translateY(-4px)}.member-photo{aspect-ratio:4/5;background:var(--hover);border-radius:4px;margin-bottom:14px;overflow:hidden}.member-photo img{object-fit:cover;object-position:center top;width:100%;height:100%;display:block}.member h3{letter-spacing:-.01em;margin-bottom:4px;font-size:20px;font-weight:600}.member .role{font-family:var(--font-mono);letter-spacing:.06em;text-transform:uppercase;color:var(--grey);font-size:12.5px}.contact{background:var(--mint)}.contact-inner{flex-wrap:wrap;gap:40px 56px;display:flex}.contact-copy{flex:320px}.contact-copy .h-contact{max-width:10ch;margin:12px 0 18px}.contact-copy .lead{color:var(--ink-soft);margin-bottom:24px}.contact-meta{flex-direction:column;gap:6px;margin-top:28px;font-size:15px;font-weight:500;display:flex}.contact-form{flex-direction:column;flex:360px;gap:18px;display:flex}.contact-form .btn{align-self:flex-start;margin-top:8px}.footer{background:var(--ink);color:var(--dark-grey);border-top:3px solid var(--mint);padding:56px 0 28px}.footer-top{border-bottom:1px solid var(--dark-line);flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:32px 48px;padding-bottom:36px;display:flex}.footer-brand{max-width:380px}.footer-logo{font-family:var(--font-display);letter-spacing:-.03em;color:var(--dark-text);align-items:baseline;gap:.28em;margin-bottom:14px;font-size:28px;font-weight:600;line-height:1;display:inline-flex}.footer-logo-hmh{letter-spacing:-.04em;align-items:center;font-weight:600;display:inline-flex}.footer-logo-mark{clip-path:polygon(50% 0%,100% 100%,50% 72%,0% 100%);background:#3b82f6;width:.55em;height:.72em;margin:0 .02em;display:inline-block;transform:translateY(.04em)}.footer-brand p{color:var(--dark-grey);max-width:32em;font-size:15px;line-height:1.5}.footer-nav{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:8px 22px;max-width:100%;display:flex}.footer-nav a{color:var(--dark-text);transition:color .15s var(--ease);align-items:center;min-height:44px;font-size:14.5px;font-weight:500;display:inline-flex}.footer-nav a:hover{color:var(--mint)}.footer-bottom{color:#6d7a84;flex-wrap:wrap;justify-content:space-between;gap:12px;padding-top:22px;font-size:13px;display:flex}@media (width<=860px){.nav-center,.header-cta,.mega{display:none}.menu-toggle{display:flex}.header-inner{min-height:64px}}@media (width<=960px){.mega{grid-template-columns:1fr}.mega-aside{border-left:none;border-top:1.5px solid var(--ink)}.service-trigger{grid-template-columns:40px 1fr 44px}.service-line{display:none}.service-panel-inner{padding-left:8px}}@media (width<=900px){.team-grid{grid-template-columns:repeat(2,1fr)}}@media (width<=560px){.container{padding:0 20px}.mega-groups.cols-2,.mega-items.cols-2{grid-template-columns:1fr}.service-trigger{min-height:80px;padding:16px 4px}.h-service{font-size:clamp(22px,6vw,32px)}.brief-week{grid-template-columns:1fr;gap:4px}.brief-form-row .btn{width:100%}.process-tab{flex:45%}.footer-nav{justify-content:flex-start}.footer-logo{font-size:24px}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{transition:none!important;animation:none!important}}
