*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:#0B0B0A;color:#EDEDE7;font-family:'Schibsted Grotesk','Helvetica Neue',Helvetica,Arial,sans-serif;-webkit-font-smoothing:antialiased;overflow-x:hidden}
a{color:#EDEDE7}
a:hover{color:#FFFFFF}
h1,h2,h3,p,ol,ul{margin:0}
.wrap{max-width:1360px;margin:0 auto;padding-left:32px;padding-right:32px}
.eyebrow{font-size:13px;letter-spacing:1.5px;text-transform:uppercase;color:#8A8A83}
.muted{color:#8A8A83}
.btn{display:inline-flex;align-items:center;min-height:52px;padding:0 28px;font-weight:600;font-size:15px;text-decoration:none}
.btn-light{background:#EDEDE7;color:#0B0B0A}
.btn-light:hover{background:#FFFFFF;color:#0B0B0A}
.btn-line{border:1px solid #4A4A45}
.btn-dark{background:#0B0B0A;color:#EDEDE7}
.btn-dark:hover{background:#000;color:#fff}

/* header */
.site-header{border-bottom:1px solid #222220}
.site-header .wrap{padding-top:22px;padding-bottom:22px;display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:16px}
.logo{display:inline-flex;align-items:center;min-height:44px;text-decoration:none}
.logo img{display:block;height:22px;width:auto}
.nav{display:flex;flex-wrap:wrap;align-items:center;gap:32px;font-size:14px;font-weight:500}
.nav a{text-decoration:none;color:#A3A39C}
.nav a:hover,.nav a[aria-current="page"]{color:#EDEDE7}
.nav .btn{min-height:44px;padding:0 20px;font-size:14px;color:#0B0B0A}

/* type */
.display{font-size:clamp(40px,6.2vw,100px);font-weight:600;line-height:1;letter-spacing:-.045em;overflow:hidden}
.h2{font-size:clamp(40px,5.2vw,76px);font-weight:600;letter-spacing:-.04em;line-height:.98}
.grey{color:#6E6E68}

/* hero */
.hero{padding-top:112px;padding-bottom:32px}
.intro{padding-top:24px;padding-bottom:72px}
.intro-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:40px;padding-top:32px}
.intro-grid p{font-size:22px;line-height:1.45;color:#D4D4CD;max-width:460px}
.actions{display:flex;flex-wrap:wrap;gap:12px;align-items:flex-start;justify-content:flex-end}
.rule{height:1px;background:#3A3A36}

/* marquee */
.strip{border-top:1px solid #222220;padding:28px 0;overflow:hidden}
.track{display:flex;width:max-content;gap:56px;white-space:nowrap;font-size:clamp(28px,3.4vw,48px);font-weight:500;letter-spacing:-.03em;color:#6E6E68}
.track .sep{color:#3A3A36}
.strip-big .track{gap:64px;font-size:clamp(32px,4vw,60px);font-weight:600;letter-spacing:-.04em;color:#3F3F3B}

/* numbers */
.numbers{border-top:1px solid #222220;border-bottom:1px solid #222220}
.numbers .wrap{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}
.num{padding:40px 24px;border-right:1px solid #222220}
.num:first-child{padding-left:0}
.num:last-child{border-right:0}
.num b{display:block;font-size:56px;font-weight:600;letter-spacing:-.04em;line-height:1}
.num span{display:block;margin-top:12px;font-size:14px;color:#8A8A83}

/* practices */
.section{padding-top:88px;padding-bottom:88px}
.border-top{border-top:1px solid #222220}
.practices{display:grid;grid-template-columns:repeat(auto-fit,minmax(380px,1fr))}
.practice{text-decoration:none;border-top:1px solid #EDEDE7;padding:32px 40px 48px 0;display:flex;flex-direction:column;gap:20px}
.practice:last-child{padding-right:0}
.practice .meta{display:flex;justify-content:space-between;font-size:14px;color:#8A8A83}
.practice h3{font-size:clamp(40px,5vw,72px);font-weight:600;letter-spacing:-.04em;line-height:.95}
.practice p{font-size:18px;line-height:1.55;color:#B8B8B1;max-width:480px}
.practice .more{font-size:15px;font-weight:600;margin-top:8px}
.arrow{display:inline-block;transition:transform .4s ease}
a:hover .arrow{transform:translateX(8px)}

/* light section */
.light{background:#EDEDE7;color:#0B0B0A}
.light a{color:#0B0B0A}
.split{display:grid;grid-template-columns:repeat(auto-fit,minmax(340px,1fr));gap:48px 80px}
.split .body{display:flex;flex-direction:column;justify-content:flex-end;gap:18px;font-size:19px;line-height:1.6}
.light .body{color:#34342F}
.light .eyebrow{color:#5E5E58}
.steps{list-style:none;padding:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr))}
.steps li{border-top:1px solid #EDEDE7;padding:24px 24px 0 0}
.light .steps li{border-top-color:#0B0B0A}
.steps .n{font-size:14px;color:#8A8A83}
.light .steps .n{color:#5E5E58}
.steps h3{margin:40px 0 10px;font-size:24px;font-weight:600;letter-spacing:-.02em}
.steps p{font-size:16px;line-height:1.6;color:#B8B8B1}
.light .steps p{color:#45453F}

/* contact */
.contact{padding-top:104px;padding-bottom:80px}
.contact .big{text-decoration:none;display:block;font-size:clamp(52px,9vw,150px);font-weight:600;letter-spacing:-.045em;line-height:.92;margin-top:32px}
.contact .links{margin-top:56px;display:flex;flex-wrap:wrap;gap:12px 48px;font-size:17px;color:#B8B8B1}

/* booking */
.book{display:grid;grid-template-columns:minmax(0,4fr) minmax(0,8fr);gap:56px;align-items:start}
.book .big{margin-top:24px;font-size:clamp(52px,7vw,120px)}
.founder{display:flex;align-items:center;gap:18px;margin-top:48px;padding:18px 20px;border:1px solid #2A2A27;background:#121211;max-width:440px}
.avatar{position:relative;flex:0 0 auto;width:64px;height:64px;border-radius:50%;background:#1E1E1C;border:1px solid #3A3A36;display:flex;align-items:center;justify-content:center}
.avatar img{width:100%;height:100%;border-radius:50%;object-fit:cover;display:block}
.initials{font-weight:700;font-size:20px;letter-spacing:.02em;color:#EDEDE7}
.live-dot{position:absolute;right:2px;bottom:2px;width:12px;height:12px;border-radius:50%;background:#5DD39E;border:2px solid #121211;animation:pulse 2.4s ease infinite}
.f-name{font-size:18px;font-weight:600;letter-spacing:-.01em}
.f-role{margin-top:4px;font-size:14px;color:#8A8A83}
.book-points{list-style:none;padding:0;margin-top:28px;display:flex;flex-direction:column;gap:12px;font-size:16px;color:#B8B8B1}
.book-points li{padding-left:22px;position:relative}
.book-points li::before{content:"";position:absolute;left:0;top:.62em;width:10px;height:1px;background:#8A8A83}
.book .links{margin-top:40px}
.cal-wrap{position:relative;border:1px solid #2A2A27;background:#121211;width:100%;overflow:hidden}
#cal-inline{width:100%;min-height:420px;overflow:auto}
.cal-fallback{display:block;padding:0 24px 20px;font-size:14px;color:#8A8A83}
.cal-ready .cal-fallback{display:none}

/* footer */
.site-footer{border-top:1px solid #222220}
.site-footer .row{padding-top:40px;padding-bottom:32px;display:flex;flex-wrap:wrap;justify-content:space-between;gap:24px;font-size:14px;color:#8A8A83}
.site-footer .row a{text-decoration:none;color:#8A8A83}
.site-footer .row a:hover{color:#EDEDE7}
.site-footer .links{display:flex;flex-wrap:wrap;gap:28px}
.wordmark{overflow:hidden;padding-top:8px;padding-bottom:40px;user-select:none}
.wordmark img{display:block;width:100%;height:auto;opacity:.09}

/* services page */
.svc-hero{padding-top:112px;padding-bottom:64px}
.live{margin-top:24px;font-size:14px;color:#8A8A83}
.dot{display:inline-block;width:8px;height:8px;border-radius:50%;background:#EDEDE7;margin-right:12px;vertical-align:middle}
.path-head{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:32px;margin-bottom:48px}
.toggle{display:flex;border:1px solid #3A3A36;padding:4px}
.toggle button{min-height:44px;padding:0 22px;border:0;background:transparent;color:#A3A39C;font-family:inherit;font-size:15px;font-weight:600;cursor:pointer;transition:background .3s,color .3s}
.toggle button[aria-pressed="true"]{background:#EDEDE7;color:#0B0B0A}
.path{list-style:none;padding:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr))}
.path[hidden]{display:none}
.path li{position:relative;padding:0 24px 32px 0}
.node{width:14px;height:14px;border-radius:50%;border:1px solid #8A8A83;background:#0B0B0A;position:relative;z-index:1}
.node.end{background:#EDEDE7;border-color:#EDEDE7}
.link{position:absolute;top:7px;left:14px;right:0;height:1px;background:#4A4A45;transform-origin:left}
.path .lbl{font-size:13px;color:#8A8A83;margin-top:28px}
.path .t{margin-top:12px;font-size:34px;font-weight:600;letter-spacing:-.03em}
.path p{margin-top:12px;font-size:16px;line-height:1.55;color:#B8B8B1}
.path .cta{display:inline-flex;align-items:center;min-height:44px;margin-top:8px;font-size:16px;font-weight:600}
.practice-head{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:16px;margin-bottom:24px}
.prog{text-decoration:none;display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:24px 64px;align-items:end;border-top:1px solid #2A2A27;padding:32px 0 40px;background-image:linear-gradient(#171715,#171715);background-repeat:no-repeat;background-position:left;background-size:0% 100%;transition:background-size .8s cubic-bezier(.2,.7,.1,1)}
.prog:first-of-type{border-top-color:#EDEDE7}
.prog.last{border-bottom:1px solid #2A2A27}
.prog:hover{background-size:100% 100%}
.prog .n{font-size:14px;color:#6E6E68;margin-bottom:20px}
.big-word{display:inline-block;font-size:clamp(56px,8.5vw,132px);font-weight:600;letter-spacing:-.05em;line-height:.9;color:#D4D4CD;transition:transform .6s cubic-bezier(.2,.7,.1,1),color .5s}
.prog:hover .big-word{transform:translateX(18px);color:#FFFFFF}
.prog .desc{display:flex;flex-direction:column;gap:18px}
.prog .desc p{font-size:19px;line-height:1.55;color:#B8B8B1}
.prog .tags{font-size:14px;color:#6E6E68;letter-spacing:.3px}
.light .prog{border-top-color:#B9B9B2;background-image:linear-gradient(#E2E2DA,#E2E2DA)}
.light .prog:first-of-type{border-top-color:#0B0B0A}
.light .prog.last{border-bottom-color:#B9B9B2}
.light .big-word{color:#1C1C1A}
.light .prog:hover .big-word{color:#000}
.light .prog .desc p{color:#45453F}
.soon{font-size:12px;letter-spacing:1.5px;text-transform:uppercase;border:1px solid currentColor;padding:2px 8px;margin-left:6px}
.note{margin-top:40px;font-size:16px;color:#8A8A83}
.faq-item{border-top:1px solid #2A2A27;padding:28px 0}
.faq-item:last-child{border-bottom:1px solid #2A2A27}
.faq-item h3{margin-bottom:10px;font-size:20px;font-weight:600}
.faq-item p{font-size:16px;line-height:1.6;color:#B8B8B1}

/* ---------- motion ---------- */
@keyframes rise{from{opacity:0;transform:translateY(60px)}to{opacity:1;transform:translateY(0)}}
@keyframes fade{from{opacity:0}to{opacity:1}}
@keyframes marquee{from{transform:translateX(0)}to{transform:translateX(-50%)}}
@keyframes line{from{transform:scaleX(0)}to{transform:scaleX(1)}}
@keyframes char{from{opacity:0;transform:translateY(110%) rotate(6deg)}to{opacity:1;transform:translateY(0) rotate(0)}}
@keyframes slidein{from{opacity:0;transform:translateX(-12vw)}to{opacity:1;transform:translateX(0)}}
@keyframes up{from{transform:translateY(40%);opacity:.2}to{transform:translateY(0);opacity:1}}
@keyframes pulse{0%,100%{opacity:.35}50%{opacity:1}}

.h1a,.h1b{display:block;animation:rise 1.1s cubic-bezier(.2,.7,.1,1) both}
.h1b{animation-delay:.18s}
.fade-in{animation:fade 1.2s ease .6s both}
.draw{transform-origin:left;animation:line 1.4s cubic-bezier(.2,.7,.1,1) .4s both}
.track{animation:marquee 38s linear infinite}
.strip-big .track{animation-duration:42s}
.strip:hover .track{animation-play-state:paused}
.ch{display:inline-block;animation:char 1s cubic-bezier(.2,.7,.1,1) both}
.dot{animation:pulse 2.4s ease infinite}
.live{animation:rise 1.1s cubic-bezier(.2,.7,.1,1) .9s both}
.path:not([hidden]) li{animation:rise .9s cubic-bezier(.2,.7,.1,1) both}
.path:not([hidden]) li:nth-child(2){animation-delay:.35s}
.path:not([hidden]) li:nth-child(3){animation-delay:.7s}
.path:not([hidden]) li:nth-child(4){animation-delay:1.05s}
.path:not([hidden]) .link{animation:line .8s cubic-bezier(.2,.7,.1,1) both}
.path:not([hidden]) li:nth-child(1) .link{animation-delay:.25s}
.path:not([hidden]) li:nth-child(2) .link{animation-delay:.6s}
.path:not([hidden]) li:nth-child(3) .link{animation-delay:.95s}

/* scroll reveals: native where supported, JS fallback elsewhere */
@supports (animation-timeline: view()){
  .rv{animation:rise linear both;animation-timeline:view();animation-range:entry 0% cover 28%}
  .slide{animation:slidein linear both;animation-timeline:view();animation-range:entry 0% cover 40%}
  .wordmark{animation:up linear both;animation-timeline:view();animation-range:entry 0% cover 60%}
}
.js-rv .rv,.js-rv .slide{opacity:0;transform:translateY(40px);transition:opacity .9s cubic-bezier(.2,.7,.1,1),transform .9s cubic-bezier(.2,.7,.1,1)}
.js-rv .rv.in,.js-rv .slide.in{opacity:1;transform:none}

@media (prefers-reduced-motion: reduce){
  *,*::before,*::after{animation:none !important;transition:none !important}
  .js-rv .rv,.js-rv .slide{opacity:1;transform:none}
}

@media (max-width:1023px){
  .book{grid-template-columns:1fr;gap:40px}
  .intro-grid{grid-template-columns:1fr}
  .actions{justify-content:flex-start}
  .numbers .wrap{grid-template-columns:repeat(2,minmax(0,1fr))}
  .num{padding:32px 16px 32px 0;border-right:0;border-bottom:1px solid #222220}
  .num:nth-child(even){padding-left:24px;border-left:1px solid #222220}
  .num:nth-child(n+3){border-bottom:0}
}
@media (max-width:640px){
  .wrap{padding-left:20px;padding-right:20px}
  .nav{gap:18px}
  .practices,.split{grid-template-columns:1fr}
  .practice{padding-right:0}
  .display{font-size:10.4vw}
  .num{padding-top:28px;padding-bottom:28px}
  .num:nth-child(even){padding-left:16px}
  .num b{font-size:40px}
  .hero,.svc-hero{padding-top:72px}
  .prog{grid-template-columns:1fr}
  .path-head{align-items:flex-start}
}

/* Our work */
.work-head{display:flex;justify-content:space-between;align-items:flex-end;gap:24px;margin-bottom:40px;flex-wrap:wrap}
.work-head .muted{font-size:15px;max-width:360px}
.work-list{border-top:1px solid #3A3A36}
.work-item{display:grid;grid-template-columns:56px minmax(0,4fr) minmax(0,7fr) 40px;gap:24px;align-items:center;padding:32px 0;border-bottom:1px solid #2A2A27;text-decoration:none;color:inherit;background-image:linear-gradient(#141413,#141413);background-repeat:no-repeat;background-size:0 100%;transition:background-size .5s cubic-bezier(.2,.7,.1,1)}
.work-item:hover{background-size:100% 100%}
.work-item .wn{font-size:14px;color:#8A8A83;padding-left:4px}
.work-item .wr{font-size:13px;letter-spacing:1.2px;text-transform:uppercase;color:#8A8A83;line-height:1.5}
.work-item .wh{font-size:clamp(26px,3.2vw,46px);font-weight:600;letter-spacing:-.035em;line-height:1.05}
.work-item .wa{font-size:28px;color:#8A8A83;transition:transform .4s,color .3s;text-align:right;padding-right:4px}
.work-item:hover .wa{transform:translateX(6px);color:#EDEDE7}
@media (max-width:1023px){.work-item{grid-template-columns:40px minmax(0,1fr) 32px;row-gap:10px}.work-item .wr{grid-column:2}.work-item .wh{grid-column:2;grid-row:2}.work-item .wa{grid-column:3;grid-row:1 / span 2}}

/* Founder recognition */
.press{border-bottom:1px solid #222220}
.press .wrap{display:flex;align-items:baseline;gap:16px 48px;padding-top:24px;padding-bottom:24px;flex-wrap:wrap}
.press .eyebrow{margin:0;flex:none}
.press ul{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:10px 40px}
.press li{font-size:15px;line-height:1.4;color:#8A8A83}
.press li b{color:#EDEDE7;font-weight:600;margin-right:8px}
@media (max-width:720px){.press .wrap{flex-direction:column;gap:14px}.press ul{flex-direction:column;gap:10px}}