@font-face{font-family:'Schibsted Grotesk';font-style:normal;font-weight:700;font-display:swap;src:url(/fonts/SchibstedGrotesk-700.woff2) format('woff2')}
@font-face{font-family:'Instrument Sans';font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/InstrumentSans-400.woff2) format('woff2')}
@font-face{font-family:'Instrument Sans';font-style:normal;font-weight:500;font-display:swap;src:url(/fonts/InstrumentSans-500.woff2) format('woff2')}
@font-face{font-family:'Instrument Sans';font-style:normal;font-weight:600;font-display:swap;src:url(/fonts/InstrumentSans-600.woff2) format('woff2')}
@font-face{font-family:'Instrument Sans';font-style:italic;font-weight:400;font-display:swap;src:url(/fonts/InstrumentSans-400i.woff2) format('woff2')}
@font-face{font-family:'DM Mono';font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/DMMono-400.woff2) format('woff2')}
@font-face{font-family:'DM Mono';font-style:normal;font-weight:500;font-display:swap;src:url(/fonts/DMMono-500.woff2) format('woff2')}

:root{
  --paper:#f4f1ea; --ink:#14130f; --rust:#b5541f; --body:#4d4a42; --mute:#7a766c; --mute2:#9a958a;
  --line:#d9d4c7; --line2:#e3ded2; --line3:#ece8de; --sand:#e6e1d4; --sand2:#c9c3b4; --sand3:#b9b2a1;
  --green:#1f6b3a; --green-bg:#e7f2ea; --green-line:#b7dcc2; --amber:#8a5a12; --blue:#1d5fbf;
  --display:'Schibsted Grotesk','Helvetica Neue',Arial,sans-serif;
  --sans:'Instrument Sans','Helvetica Neue',Arial,sans-serif;
  --mono:'DM Mono',Menlo,Consolas,monospace;
  --gut:64px; --step-ms:3400ms;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--sans);font-size:16px;line-height:1.5;-webkit-font-smoothing:antialiased;overflow-x:hidden}
a{color:inherit;text-decoration:none}
a:hover{color:var(--rust)}
p{margin:0}
h1,h2,.display{font-family:var(--display);font-weight:700;margin:0}
.mono{font-family:var(--mono)}
.muted{color:var(--mute)}
.muted-2{color:var(--mute2);font-weight:400}
.rust{color:var(--rust)}
.green{color:var(--green)}
.amber{color:var(--amber)}
.small{font-size:12.5px}
.small-2{font-size:13px}
.kicker{font-size:12px;letter-spacing:1px;text-transform:uppercase}
img{max-width:100%;display:block}
[hidden]{display:none!important}

.grain{position:fixed;inset:0;width:100%;height:100%;pointer-events:none;opacity:.2;mix-blend-mode:multiply;z-index:0}
main,header,footer{position:relative;z-index:1}
.nav,.hero,.hiw,.jump,.work,.how,.about,.contact-page,.strip,.foot{max-width:1680px;width:100%;margin-left:auto;margin-right:auto}

/* nav */
.nav{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:30px var(--gut) 0}
.brand{display:flex;align-items:center;gap:12px;white-space:nowrap;font-family:var(--display);font-weight:700;font-size:20px;letter-spacing:-.4px}
.links{display:flex;align-items:center;gap:28px;font-size:15px;font-weight:500;white-space:nowrap}
.nav-contact{font-family:var(--mono);font-size:14px;border-bottom:1.5px solid var(--ink);padding-bottom:2px;font-weight:400}
.nav-contact:hover{border-color:var(--rust)}
.links a[aria-current="page"]{color:var(--rust)}

/* hero */
.hero{padding:84px var(--gut) 0;display:grid;grid-template-columns:1fr 380px;gap:48px;align-items:end}
.hero h1{font-size:clamp(40px,5.1vw,74px);line-height:1;letter-spacing:-.04em;max-width:15ch}
.hero-side{display:flex;flex-direction:column;gap:16px;padding-bottom:6px}
.hero-side p{font-size:17px;line-height:1.5;color:var(--body)}
.btn{display:inline-block;background:var(--ink);color:var(--paper);border-radius:6px;padding:15px 22px;font-size:15px;font-weight:600;align-self:flex-start}
.btn:hover{background:var(--rust);color:var(--paper)}

/* demo */
.demo{margin:56px var(--gut) 0}
.demo-head{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;border-top:1px solid var(--line);padding-top:22px}
.demo-title{display:flex;align-items:baseline;gap:16px;flex-wrap:wrap}
.demo-title .display{font-size:20px;letter-spacing:-.5px}
.demo-title .muted{font-size:14px}
.tabs{display:flex;gap:8px}
.tab{font-family:var(--sans);font-size:14px;font-weight:600;padding:10px 16px;border-radius:999px;border:1.5px solid var(--ink);cursor:pointer;background:transparent;color:var(--ink)}
.tab.is-on{background:var(--ink);color:var(--paper)}
.demo-body{margin-top:20px;display:grid;grid-template-columns:330px 1fr;gap:28px;align-items:stretch}

.rail{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:4px}
.rail button{all:unset;box-sizing:border-box;cursor:pointer;display:flex;flex-direction:column;gap:8px;padding:14px 16px;border-radius:10px;width:100%;transition:background .3s ease}
.rail button:focus-visible{outline:2px solid var(--rust);outline-offset:2px}
.rail .is-active button{background:#fff}
.rail-head{display:flex;align-items:baseline;gap:12px}
.rail-num{font-family:var(--mono);font-size:12px;min-width:18px;color:var(--sand3)}
.rail-title{font-family:var(--display);font-weight:700;font-size:17px;letter-spacing:-.3px;color:var(--mute2)}
.rail .is-done .rail-num{color:var(--ink)}
.rail .is-done .rail-title{color:var(--body)}
.rail .is-active .rail-num{color:var(--rust)}
.rail .is-active .rail-title{color:var(--ink)}
.rail-text{font-size:14.5px;line-height:1.5;color:var(--body);padding-left:30px}
.rail-track{margin-left:30px;height:3px;background:var(--sand);border-radius:2px;overflow:hidden}
.rail-fill{height:3px;background:var(--rust);width:0;animation:cnfill var(--step-ms) linear forwards}
@keyframes cnfill{from{width:0}to{width:100%}}
.demo.is-paused .rail-fill{animation-play-state:paused}

.frame{position:relative;background:#fff;border:1px solid var(--line);border-radius:12px;overflow:hidden;box-shadow:0 30px 80px rgba(20,19,15,.14),0 2px 6px rgba(20,19,15,.06);min-height:680px;display:flex;flex-direction:column}
.frame-bar{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 16px;border-bottom:1px solid var(--line3);background:#f8f6f1;font-size:12px;color:var(--mute);white-space:nowrap}
.dots .mono{overflow:hidden;text-overflow:ellipsis}
.dots{display:flex;align-items:center;gap:8px}
.dots>span:not(.mono){width:11px;height:11px;border-radius:999px;background:#ddd6c6}
.dots .mono{margin-left:14px}
.callout{position:absolute;top:58px;right:20px;z-index:2;background:var(--ink);color:var(--paper);font-size:13px;font-weight:500;padding:8px 12px;border-radius:6px;box-shadow:0 8px 20px rgba(20,19,15,.18);max-width:320px;line-height:1.4}

.flow{flex-grow:1;min-height:0}
.flow-check{display:grid;grid-template-columns:1fr 400px;gap:24px;padding:24px}
.check-left{display:flex;flex-direction:column;gap:10px;min-height:0}
.state-empty,.state-reading{flex-grow:1;border:1.5px dashed var(--sand3);border-radius:10px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;color:var(--mute);font-size:15px;text-align:center;padding:24px;min-height:320px}
.state-reading{color:var(--body);gap:12px}
.reading-dots{display:flex;gap:6px}
.reading-dots span{width:9px;height:9px;border-radius:999px;background:#ecd2bd}
.reading-dots span:first-child{background:var(--rust)}
.reading-dots span:nth-child(2){background:#d9a27a}
.state-list{display:flex;flex-direction:column;gap:10px}
.house{border:1px solid var(--line2);border-radius:8px;overflow:hidden}
.house-head{display:flex;justify-content:space-between;gap:12px;padding:7px 12px;background:#f3f0e8;font-weight:600;font-size:13.5px}
.house-head span:last-child{color:var(--mute);font-weight:500}
.line{display:flex;align-items:center;gap:10px;padding:6px 12px;border-top:1px solid #efebe1;font-size:13px}
.line .grow{flex-grow:1}
.ref{color:var(--mute2);font-size:11.5px}
.tick{width:16px;height:16px;border-radius:4px;background:var(--blue);flex-shrink:0;position:relative}
.tick::after{content:"";position:absolute;left:5px;top:2px;width:4px;height:8px;border:solid #fff;border-width:0 2.5px 2.5px 0;transform:rotate(45deg)}
.state-flags{display:flex;flex-direction:column;gap:6px}
.flag{border:1px solid #e6cf7a;background:#fdf6dc;border-radius:8px;padding:7px 12px;font-size:12.5px;line-height:1.4}
.flag-k{font-size:10.5px;letter-spacing:1px;color:var(--amber)}
.state-done{border:1px solid var(--green-line);background:var(--green-bg);border-radius:10px;padding:16px 18px;display:flex;flex-direction:column;gap:6px}
.done-title{font-size:18px;color:var(--green)}
.done-text{font-size:13.5px;color:var(--body);line-height:1.5}
.check-foot{margin-top:auto;display:flex;justify-content:flex-end;padding-top:6px}
.record-btn{padding:11px 18px;border-radius:8px;font-size:14px;font-weight:600;color:#fff;background:var(--sand2);transition:background .4s ease,box-shadow .6s ease}
.record-btn.is-ready{background:var(--blue);box-shadow:0 0 0 6px rgba(29,95,191,.18)}
.check-right{display:flex;flex-direction:column;gap:8px}
.pdf-label{font-size:13px;font-weight:600;color:var(--body)}
.pdf{flex-grow:1;background:#f7f5f0;border:1px solid var(--line2);border-radius:8px;padding:16px;font-family:var(--mono);font-size:10.5px;line-height:1.75;color:#3b3934;opacity:.25;transform:translateY(10px);transition:opacity .6s ease,transform .6s ease}
.pdf.is-read{opacity:1;transform:none}
.pdf-head{margin-bottom:6px}
.pdf-row{display:grid;grid-template-columns:84px 72px 1fr 1fr;gap:6px;padding:1px 4px;margin:0 -4px;border-radius:3px;transition:background .4s ease}
.pdf-cols{color:var(--mute)}
.pdf-row .r{text-align:right}
.pdf-row.is-matched{background:#dfeadf}
.pdf-row.is-flagged{background:#fdf0c2}
.pdf-legend{margin-top:10px;display:flex;gap:14px;color:var(--mute)}
.sw{display:inline-block;width:9px;height:9px;border-radius:2px;vertical-align:middle}
.sw-m{background:#dfeadf}.sw-f{background:#fdf0c2}

.flow-roof{display:grid;grid-template-columns:300px 1fr;gap:36px;padding:24px 36px;align-items:center}
.phone{width:270px;height:520px;border:8px solid var(--ink);border-radius:34px;background:#fff;padding:20px 14px;display:flex;flex-direction:column;gap:12px;margin:0 auto}
.phone-title{font-size:21px;letter-spacing:-.6px;line-height:1.1}
.card{border:1px solid var(--line2);border-radius:10px;padding:12px;display:flex;flex-direction:column;gap:6px}
.card-v{font-size:15px;font-weight:600;color:var(--amber)}
.card-v.is-done{color:var(--green)}
.phone-btn{margin-top:auto;padding:16px;border-radius:12px;text-align:center;font-size:16px;font-weight:600;color:#fff;background:var(--ink);transition:background .4s ease,transform .3s ease}
.phone-btn.is-pressed{transform:scale(.96)}
.phone-btn.is-done{background:var(--green)}
.board{display:flex;flex-direction:column;gap:14px}
.board-row{display:grid;grid-template-columns:1.4fr 1.1fr 1fr .8fr;gap:12px;font-size:14px;padding:8px 0}
.board-head{font-size:12.5px;color:var(--mute);padding-bottom:8px;border-bottom:1px solid var(--line2)}
.board-row.landed{padding:10px 12px;margin:0 -12px;border-radius:6px;background:var(--green-bg);border:1px solid var(--green-line)}
.board-wait{font-size:13.5px;color:var(--mute2);padding:10px 0;font-style:italic}

/* work */
.work{padding:150px var(--gut) 0;display:flex;flex-direction:column;gap:52px}
.section-head{display:flex;justify-content:space-between;align-items:baseline;gap:16px;flex-wrap:wrap;border-bottom:2px solid var(--ink);padding-bottom:18px}
h2{font-size:clamp(32px,3.2vw,46px);letter-spacing:-.04em;line-height:1.05}
.section-head .sub{font-size:15px;color:var(--body)}
.work-row{display:grid;grid-template-columns:420px 1fr;gap:56px;align-items:center}
.work-row-arbor{align-items:start;border-top:1px solid var(--ink);padding-top:40px}
.work-text{display:flex;flex-direction:column;gap:14px}
.work-title{font-size:32px;line-height:1.1;letter-spacing:-1.1px}
.work-text p{font-size:16.5px;line-height:1.55;color:var(--body)}
.work-text .muted{font-size:14px}
.note{line-height:1.6;margin-top:6px}
.shot{background:#fff;border:1px solid var(--line);border-radius:10px;overflow:hidden;box-shadow:0 16px 48px rgba(20,19,15,.1)}
.shot img{width:100%;height:auto}
.shot-band{height:230px}
.shot-band img{height:100%;object-fit:cover;object-position:50% 45%}
.maps{display:flex;flex-direction:column;gap:14px}
.maps-pair{display:grid;grid-template-columns:1fr 1fr;gap:14px}
figure{margin:0;display:flex;flex-direction:column;gap:8px}
figcaption{font-size:13px;color:var(--body)}
.work-two{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px 48px}
.work-cell{border-top:1px solid var(--ink);padding:26px 0 8px;display:flex;flex-direction:column;gap:10px}
.work-title-s{font-size:23px;line-height:1.15;letter-spacing:-.6px}
.work-cell p{font-size:15px;line-height:1.55;color:var(--body)}
.work-cell .muted{font-size:14px}

/* how */
.how{padding:130px var(--gut) 0;display:flex;flex-direction:column;gap:40px}
.how h2{max-width:20ch}
.steps{position:relative;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:40px;padding-top:36px}
.timeline{position:absolute;left:0;top:0;width:100%;height:24px}
.step{display:flex;flex-direction:column;gap:10px}
.step-title{font-size:23px;letter-spacing:-.5px}
.step p{font-size:16px;line-height:1.55;color:var(--body)}
.retainer{margin-top:24px;background:#fff;border:1px solid var(--line);border-radius:12px;padding:40px 44px;display:grid;grid-template-columns:380px 1fr;gap:56px;align-items:start;box-shadow:0 2px 6px rgba(20,19,15,.04)}
.retainer-text{display:flex;flex-direction:column;gap:14px}
.retainer-title{font-size:30px;line-height:1.1;letter-spacing:-1px}
.retainer-text p{font-size:16px;line-height:1.55;color:var(--body)}
.retainer-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px 32px}
.kept{display:flex;flex-direction:column;gap:6px;padding-top:14px;border-top:1px solid var(--line2);font-size:15px;line-height:1.5;color:var(--body)}
.kept-t{font-weight:600;font-size:16px;color:var(--ink)}
.kept-wide{grid-column:span 2;font-size:14.5px}

/* about */
.about{padding:130px var(--gut) 0;display:grid;grid-template-columns:300px 1fr;gap:56px;align-items:start}
.facts{display:flex;flex-direction:column;gap:14px;font-size:12.5px;color:var(--mute);line-height:1.6;padding-top:10px}
.facts>div+div{border-top:1px solid var(--line2);padding-top:12px}
.about-text{display:flex;flex-direction:column;gap:18px}
.about-text h2{font-size:clamp(30px,2.8vw,40px)}
.about-text p{font-size:18px;line-height:1.6;color:var(--body);max-width:60ch}

/* how it works (home) */
.hiw{padding:110px var(--gut) 0;display:flex;flex-direction:column;gap:44px}
.hiw-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:36px 56px}
.hiw-item{display:flex;flex-direction:column;gap:10px;border-top:1px solid var(--line2);padding-top:18px}
.hiw-t{font-family:var(--display);font-weight:700;font-size:23px;line-height:1.15;letter-spacing:-.6px}
.hiw-item p{font-size:16px;line-height:1.55;color:var(--body)}

/* jump cards (home) */
.jump{padding:72px var(--gut) 0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
.jump-card{position:relative;display:flex;flex-direction:column;gap:8px;padding:26px 60px 26px 26px;background:#fff;border:1px solid var(--line);border-radius:12px;box-shadow:0 2px 6px rgba(20,19,15,.04);transition:border-color .2s ease,transform .2s ease}
.jump-card:hover{border-color:var(--ink);color:var(--ink);transform:translateY(-2px)}
.jump-t{font-size:24px;letter-spacing:-.7px;line-height:1.1}
.jump-d{font-size:15px;line-height:1.5;color:var(--body)}
.jump-arrow{position:absolute;right:24px;top:24px;font-size:22px;color:var(--rust)}
.h2{font-size:clamp(32px,3.2vw,46px);letter-spacing:-.04em;line-height:1.05}
.demo-inwork{margin-left:0;margin-right:0;margin-top:0}
.demo-inwork .demo-head{border-top:0;padding-top:0}

/* contact strip (bottom of home, work, about) */
.strip{padding:140px var(--gut) 0;display:flex;flex-direction:column;gap:22px}
.strip-q{font-family:var(--display);font-weight:700;font-size:clamp(28px,3.4vw,46px);letter-spacing:-.04em;line-height:1.05;max-width:22ch}
.strip-actions{display:flex;align-items:center;gap:24px;flex-wrap:wrap}
.strip-email{font-size:14px;border-bottom:1.5px solid var(--ink);padding-bottom:2px}
.strip-email:hover{border-color:var(--rust)}

/* contact page */
.contact-page{padding:84px var(--gut) 0;display:flex;flex-direction:column;gap:56px}
.contact-intro{display:flex;flex-direction:column;gap:18px}
.contact-page h1{font-size:clamp(40px,5.1vw,74px);line-height:1;letter-spacing:-.04em;max-width:15ch}
.lead{font-size:18px;line-height:1.6;color:var(--body);max-width:60ch}
.contact-ways{display:flex;flex-direction:column;gap:36px;border-top:2px solid var(--ink);padding-top:36px}
.contact-way{display:flex;flex-direction:column;gap:10px}
.contact-big{font-family:var(--display);font-weight:700;font-size:clamp(28px,5.8vw,84px);letter-spacing:-.043em;line-height:1;color:var(--rust);word-break:break-all}
.contact-big:hover{color:var(--ink)}
.contact-way .muted{font-size:15px}
.contact-facts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px;font-size:12.5px;color:var(--mute);line-height:1.6;border-top:1px solid var(--line2);padding-top:18px}
.page-first{padding-top:84px!important}
.foot-links{display:flex;gap:18px}
.foot-links a:hover{color:var(--rust)}

/* contact + footer */
.contact{padding:140px var(--gut) 0;display:flex;flex-direction:column;gap:22px}
.contact-q{font-size:18px;color:var(--body)}
.contact-email{font-family:var(--display);font-weight:700;font-size:clamp(28px,5.8vw,84px);letter-spacing:-.043em;line-height:1;color:var(--rust);word-break:break-all}
.contact-email:hover{color:var(--ink)}
.foot{padding:120px var(--gut) 32px;display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;font-size:12px;color:var(--mute)}

@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  .rail-fill{animation:none;width:100%}
}

/* tablet */
@media (max-width:1100px){
  :root{--gut:40px}
  .hero{grid-template-columns:1fr;gap:28px}
  .hero h1{max-width:18ch}
  .demo-body{grid-template-columns:280px 1fr}
  .callout{position:static;margin:12px 16px 0;max-width:none;display:inline-block;align-self:flex-start}
  .flow-check{grid-template-columns:1fr;padding:18px}
  .check-right{display:none}
  .flow-roof{grid-template-columns:1fr;padding:18px;gap:20px}
  .state-empty,.state-reading{min-height:260px}
  .work-row{grid-template-columns:1fr;gap:28px}
  .retainer{grid-template-columns:1fr;gap:32px;padding:32px}
  .about{grid-template-columns:1fr;gap:28px}
}

/* phone */
@media (max-width:760px){
  :root{--gut:20px}
  body{font-size:15px}
  .nav{padding-top:20px}
  .links{gap:14px;font-size:14px}
  .links .nav-how,.nav-long{display:none}
  .links a{font-size:13px}
  .brand{gap:9px;font-size:18px}
  .nav-contact{font-size:13px}
  .hero{padding-top:52px}
  .hero-side p{font-size:16px}
  .demo{margin-top:40px}
  .demo-head{flex-direction:column;align-items:flex-start}
  .demo-body{grid-template-columns:1fr;gap:14px}
  .rail{flex-direction:column}
  .rail button{padding:10px 12px;gap:6px}
  .rail li:not(.is-active) .rail-title{font-size:15px}
  .rail li:not(.is-active) button{padding:7px 12px}
  .frame{min-height:0;box-shadow:0 18px 40px rgba(20,19,15,.12)}
  .frame-bar{font-size:11px;padding:10px 12px}
  .dots .mono{margin-left:8px;max-width:150px}
  .callout{position:static;margin:12px 16px 0;max-width:none;display:inline-block;align-self:flex-start}
  .flow-check{grid-template-columns:1fr;padding:16px;gap:16px}
  .state-empty,.state-reading{min-height:220px}
  .check-right{display:none}
  .flow-roof{grid-template-columns:1fr;padding:16px;gap:20px}
  .phone{width:240px;height:460px}
  .board-row{grid-template-columns:1.3fr 1fr 1fr .8fr;gap:8px;font-size:12.5px}
  .board-row.landed{margin:0;padding:8px}
  .work{padding-top:96px;gap:36px}
  .work-title{font-size:26px}
  .work-row-arbor{padding-top:28px}
  .maps-pair{grid-template-columns:1fr}
  .shot-band{height:180px}
  .work-two{grid-template-columns:1fr}
  .how{padding-top:96px;gap:28px}
  .steps{grid-template-columns:1fr;gap:28px;padding-top:0}
  .timeline{display:none}
  .step{border-top:1px solid var(--ink);padding-top:18px}
  .retainer{padding:24px 20px;gap:24px}
  .retainer-title{font-size:26px}
  .retainer-grid{grid-template-columns:1fr;gap:14px}
  .kept-wide{grid-column:auto}
  .about{padding-top:96px}
  .about-text p{font-size:16.5px}
  .contact{padding-top:96px}
  .strip{padding-top:96px}
  .hiw{padding-top:72px;gap:28px}
  .hiw-grid{grid-template-columns:1fr;gap:22px}
  .jump{padding-top:40px;grid-template-columns:1fr;gap:12px}
  .jump-card{padding:20px 52px 20px 18px}
  .jump-t{font-size:21px}
  .contact-page{padding-top:52px;gap:36px}
  .contact-facts{grid-template-columns:1fr;gap:12px}
  .page-first{padding-top:52px!important}
  .foot-links{order:3}
  .foot{padding-top:72px;flex-direction:column;gap:6px}
}
