/* divelog.net - one dark theme (Seabook navy), one accent (lime), radii: pill buttons / 24px surfaces / 46px phones */
@font-face{font-family:"Manrope";src:url("../fonts/manrope-latin-wght-normal.woff2") format("woff2");font-weight:200 800;font-display:swap}
@font-face{font-family:"DM Sans";src:url("../fonts/dm-sans-latin-wght-normal.woff2") format("woff2");font-weight:100 1000;font-display:swap}

:root{
  --navy-deep:#020b18;--navy:#061429;--surface:#0b203d;--surface-2:#102a4d;--line:rgb(155 178 204 / .16);
  --text:#f7fbff;--muted:#a9bdd4;--accent:#ecff30;--accent-ink:#0a1a05;
  --r-card:24px;--r-phone:46px;
  --wrap:1200px;--gutter:clamp(20px,4vw,48px);
  --display:"Manrope",system-ui,sans-serif;--body:"DM Sans",system-ui,sans-serif;
  --ease:cubic-bezier(.16,1,.3,1);
  color-scheme:dark;
}
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{margin:0;background:var(--navy);color:var(--text);font:400 17px/1.6 var(--body);-webkit-font-smoothing:antialiased;overflow-x:hidden}
img{max-width:100%;height:auto;display:block}
a{color:inherit}
h1,h2,h3{font-family:var(--display);font-weight:700;letter-spacing:-.025em;line-height:1.05;margin:0;text-wrap:balance}
p{margin:0;text-wrap:pretty}
.wrap{width:min(100% - 2*var(--gutter),var(--wrap));margin-inline:auto}
.muted{color:var(--muted)}
:focus-visible{outline:2px solid var(--accent);outline-offset:3px;border-radius:6px}
.skip{position:absolute;left:-999px;top:8px;background:var(--accent);color:var(--accent-ink);padding:8px 14px;border-radius:999px;z-index:100}
.skip:focus{left:8px}

/* buttons */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:.5em;white-space:nowrap;font:700 16px/1 var(--display);padding:16px 26px;border-radius:999px;text-decoration:none;transition:transform .25s var(--ease),background-color .25s var(--ease)}
.btn-primary{background:var(--accent);color:var(--accent-ink)}
.btn-primary:hover{background:#f4ff7a}
.btn:active{transform:scale(.98)}
.btn-sm{padding:11px 18px;font-size:14.5px}
.link{color:var(--text);text-decoration:underline;text-decoration-color:rgb(247 251 255 / .35);text-underline-offset:4px;transition:text-decoration-color .2s}
.link:hover{text-decoration-color:var(--accent)}

/* nav */
.nav{position:fixed;inset:0 0 auto 0;z-index:50;height:68px;display:flex;align-items:center;transition:background-color .3s,backdrop-filter .3s}
.nav.is-stuck{background:rgb(6 20 41 / .82);backdrop-filter:blur(14px) saturate(140%);-webkit-backdrop-filter:blur(14px) saturate(140%);border-bottom:1px solid var(--line)}
.nav .wrap{display:flex;align-items:center;gap:28px}
.brand{display:flex;align-items:center;gap:10px;text-decoration:none;font:700 19px/1 var(--display);letter-spacing:-.02em}
.brand img{width:34px;height:34px;border-radius:9px}
.nav-links{display:flex;gap:26px;margin-left:auto;font-size:15.5px}
.nav-links a{text-decoration:none;color:var(--muted);transition:color .2s}
.nav-links a:hover,.nav-links a[aria-current=page]{color:var(--text)}
.menu{display:none;position:relative}
.menu summary{list-style:none;cursor:pointer;width:44px;height:44px;display:grid;place-items:center;border-radius:999px;background:rgb(247 251 255 / .1)}
.menu summary::-webkit-details-marker{display:none}
.menu summary span,.menu summary span::before,.menu summary span::after{display:block;width:18px;height:2px;border-radius:2px;background:var(--text);content:"";position:relative}
.menu summary span::before{position:absolute;top:-6px}.menu summary span::after{position:absolute;top:6px}
.menu nav{position:absolute;right:0;top:54px;min-width:230px;display:grid;gap:2px;padding:10px;border-radius:20px;background:var(--surface);border:1px solid var(--line);box-shadow:0 24px 50px -20px rgb(1 8 20 / .9)}
.menu nav a{padding:13px 14px;border-radius:12px;text-decoration:none;font-size:16.5px}
.menu nav a[aria-current=page]{background:rgb(247 251 255 / .08)}
@media (max-width:860px){.nav-links{display:none}.nav .btn{margin-left:auto}.menu{display:block}.nav .wrap{gap:10px}}

/* phone */
.phone{position:relative;width:var(--pw,300px);aspect-ratio:660/1435;border-radius:var(--r-phone);padding:9px;background:linear-gradient(160deg,#27405f,#0a1830 55%,#1b3252);box-shadow:0 0 0 1px rgb(255 255 255 / .08) inset,0 40px 80px -30px rgb(1 8 20 / .9),0 18px 36px -18px rgb(1 8 20 / .7)}
.phone>img,.phone .stack{width:100%;height:100%;border-radius:calc(var(--r-phone) - 9px);object-fit:cover;overflow:hidden}
.phone .stack{position:relative;display:block}
.phone .stack img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0;transition:opacity .55s var(--ease)}
.phone .stack img.is-on{opacity:1}

/* hero */
.hero{position:relative;min-height:100dvh;display:grid;align-items:center;padding:92px 0 56px;isolation:isolate;overflow:hidden}
.hero-bg{position:absolute;inset:-6% 0 -6% 0;z-index:-2}
.hero-bg img{width:100%;height:100%;object-fit:cover;object-position:58% 50%}
.hero::after{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(90deg,rgb(3 13 30 / .92) 0%,rgb(3 13 30 / .74) 38%,rgb(3 13 30 / .12) 72%),linear-gradient(180deg,rgb(3 13 30 / .5) 0%,transparent 26%,transparent 70%,var(--navy) 100%)}
.hero-grid{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr);gap:40px;align-items:center}
.hero h1{font-size:clamp(44px,6.4vw,86px);font-weight:800;letter-spacing:-.04em;line-height:.98}
.hero h1 em{font-style:normal;color:var(--accent)}
.hero .sub{margin:24px 0 34px;font-size:clamp(18px,1.5vw,21px);line-height:1.5;color:#d9e6f5;max-width:30em}
.hero-phones{position:relative;justify-self:center;height:min(660px,74dvh);aspect-ratio:.86}
.hero-phones .phone{position:absolute;--pw:auto;height:100%;width:auto}
.hero-phones .p-back{right:0;top:7%;height:86%;transform:rotate(6deg);filter:brightness(.72)}
.hero-phones .p-front{left:0;top:0}
@media (max-width:900px){
  .hero{padding-top:96px;min-height:auto}
  .hero::after{background:linear-gradient(180deg,rgb(3 13 30 / .9) 0%,rgb(3 13 30 / .72) 46%,rgb(3 13 30 / .35) 70%,var(--navy) 100%)}
  .hero-grid{grid-template-columns:1fr;gap:44px}
  .hero-phones{height:auto;width:min(86vw,380px);aspect-ratio:.86}
}

/* proof strip */
.proof{border-block:1px solid var(--line);background:var(--navy)}
.proof ul{list-style:none;margin:0;padding:30px 0;display:grid;grid-template-columns:repeat(4,1fr);gap:24px}
.proof li{display:grid;gap:4px}
.proof b{font:800 clamp(28px,3vw,40px)/1 var(--display);letter-spacing:-.03em}
.proof span{color:var(--muted);font-size:15px}
@media (max-width:720px){.proof ul{grid-template-columns:repeat(2,1fr);row-gap:28px}}

/* section rhythm */
.section{padding:clamp(80px,11vw,150px) 0}
.h2{font-size:clamp(34px,4.4vw,60px)}
.lead{margin-top:20px;font-size:clamp(18px,1.45vw,20px);color:var(--muted);max-width:34em}

/* story: pinned phone, steps scroll past */
.story-grid{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:clamp(32px,6vw,96px);margin-top:clamp(40px,6vw,80px)}
.story-pin{position:sticky;top:max(84px,calc(50dvh - 370px));align-self:start;display:grid;justify-items:center}
.story-pin .phone{--pw:min(340px,30vw)}
.story-pin::before{content:"";position:absolute;inset:8% -12%;z-index:-1;background:radial-gradient(closest-side,rgb(22 91 167 / .55),transparent);filter:blur(10px)}
.steps{display:grid}
.step{min-height:74dvh;display:grid;align-content:center;gap:16px;transition:opacity .5s var(--ease)}
.js .step{opacity:.32}
.js .step.is-on{opacity:1}
.step h3{font-size:clamp(26px,3vw,40px)}
.step p{color:var(--muted);font-size:18.5px;max-width:27em}
.step .phone{display:none}
.step-n{font:700 14px/1 var(--display);color:var(--accent);letter-spacing:.02em}
@media (max-width:860px){
  .story-grid{grid-template-columns:1fr}
  .story-pin{display:none}
  .step,.js .step{min-height:0;opacity:1;padding:36px 0;justify-items:start}
  .step .phone{display:block;--pw:min(72vw,300px);margin:18px auto 0}
}

/* bento: what an entry holds */
.bento{display:grid;grid-template-columns:repeat(12,1fr);gap:18px;margin-top:clamp(40px,5vw,64px)}
.cell{position:relative;border-radius:var(--r-card);overflow:hidden;background:var(--surface);min-height:260px;display:flex;flex-direction:column}
.cell figure{margin:0;flex:none}
.cell figure img{width:100%;height:auto}
.cell .cap{padding:22px 24px 24px;flex:1;display:flex;flex-direction:column;justify-content:center}
.cell h3{font-size:22px;letter-spacing:-.02em;line-height:1.2}
.cell p{color:var(--muted);font-size:16px;margin-top:6px}
.c-profile{grid-column:span 7;grid-row:span 2}
.c-gas{grid-column:span 5}
.c-notes{grid-column:span 5}
.c-sight{grid-column:span 7}
.c-fields{grid-column:span 5;background:var(--accent);color:var(--accent-ink);padding:28px;justify-content:space-between}
.c-fields h3{font-size:clamp(26px,2.6vw,36px);line-height:1.1}
.c-fields ul{list-style:none;margin:22px 0 0;padding:0;display:flex;flex-wrap:wrap;gap:8px}
.c-fields li{font:600 16px/1 var(--body);padding:11px 15px;border-radius:999px;background:rgb(10 26 5 / .1)}
@media (max-width:860px){.bento{grid-template-columns:1fr}.cell{grid-column:auto!important;grid-row:auto!important}}

/* dive computers */
.dc{position:relative;isolation:isolate;overflow:hidden;background:var(--navy-deep)}
.dc::before{content:"";position:absolute;inset:0;z-index:-1;background:url("../img/deep.webp") center top/cover no-repeat;opacity:.55;mask-image:linear-gradient(180deg,#000 30%,transparent)}
.dc-big{font:800 clamp(52px,9.5vw,140px)/.92 var(--display);letter-spacing:-.05em}
.dc-big span{display:block;color:rgb(247 251 255 / .42)}
.brands{list-style:none;padding:0;margin:clamp(36px,5vw,60px) 0 0;display:flex;flex-wrap:wrap;gap:10px 30px;font:700 clamp(20px,2.3vw,31px)/1.25 var(--display);letter-spacing:-.02em;color:rgb(247 251 255 / .78);max-width:1000px}
.dc .lead{max-width:30em}
.dc .more{margin-top:34px}

/* paper vs app */
.vs{display:grid;grid-template-columns:1fr 1fr;gap:0;margin-top:clamp(40px,5vw,64px);border-radius:var(--r-card);overflow:hidden;border:1px solid var(--line)}
.vs>div{padding:clamp(24px,3.4vw,44px)}
.vs .paper{background:transparent}
.vs .app{background:var(--surface)}
.vs h3{font-size:24px;margin-bottom:22px}
.vs ul{list-style:none;margin:0;padding:0;display:grid;gap:16px}
.vs li{display:grid;gap:2px}
.vs li b{font-weight:600}
.vs li span{color:var(--muted);font-size:16px}
.vs-note{margin-top:22px;color:var(--muted);font-size:16px;max-width:44em}
@media (max-width:720px){.vs{grid-template-columns:1fr}}

/* faq */
.faq-grid{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:clamp(32px,6vw,90px)}
.faq details{border-bottom:1px solid var(--line)}
.faq summary{list-style:none;cursor:pointer;padding:22px 44px 22px 0;position:relative;font:700 19.5px/1.3 var(--display);letter-spacing:-.015em}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"";position:absolute;right:6px;top:50%;width:11px;height:11px;border-right:2px solid var(--muted);border-bottom:2px solid var(--muted);transform:translateY(-70%) rotate(45deg);transition:transform .3s var(--ease)}
.faq details[open] summary::after{transform:translateY(-30%) rotate(225deg)}
.faq details p{color:var(--muted);padding:0 0 24px;max-width:40em}
@media (max-width:860px){.faq-grid{grid-template-columns:1fr}}

/* final cta */
.final{position:relative;isolation:isolate;overflow:hidden;padding:clamp(90px,12vw,170px) 0;text-align:center}
.final::before{content:"";position:absolute;inset:0;z-index:-2;background:url("../img/photo-school.webp") center 40%/cover no-repeat}
.final::after{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(180deg,var(--navy) 0%,rgb(6 20 41 / .5) 38%,rgb(2 11 24 / .82) 100%)}
.final h2{font-size:clamp(40px,6.4vw,88px);font-weight:800;letter-spacing:-.04em}
.final p{margin:20px auto 34px;color:#d9e6f5;font-size:19px;max-width:30em}
.get{display:flex;align-items:center;justify-content:center;gap:28px;flex-wrap:wrap}
.qr{display:flex;align-items:center;gap:14px;text-align:left;color:#d9e6f5;font-size:15px;max-width:230px}
.qr img{width:92px;height:92px;border-radius:14px;background:#fff;padding:7px}
.badge img{height:50px;width:auto}
.badge{transition:transform .25s var(--ease)}.badge:active{transform:scale(.98)}
@media (hover:none),(max-width:860px){.qr{display:none}}

/* footer */
.foot{background:var(--navy-deep);padding:56px 0 40px;font-size:15.5px;color:var(--muted)}
.foot-grid{display:grid;grid-template-columns:1.4fr 1fr 1fr;gap:32px}
.foot h2{margin:0 0 12px;font:700 15px/1 var(--display);color:var(--text)}
.foot ul{list-style:none;margin:0;padding:0;display:grid;gap:9px}
.foot a{text-decoration:none}.foot a:hover{color:var(--text)}
.foot a.link{text-decoration:underline;color:var(--text)}
.foot .about{max-width:30em}
.foot .about p{margin-top:14px}
.foot small{display:block;margin-top:40px;font-size:14px}
@media (max-width:720px){.foot-grid{grid-template-columns:1fr}}

/* inner pages */
.phero{position:relative;isolation:isolate;overflow:hidden;padding:clamp(120px,15vw,190px) 0 clamp(56px,7vw,96px)}
.phero-bg{position:absolute;inset:0;z-index:-2}
.phero-bg img{width:100%;height:100%;object-fit:cover}
.phero::after{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(90deg,rgb(3 13 30 / .84) 0%,rgb(3 13 30 / .5) 50%,rgb(3 13 30 / .1) 100%),linear-gradient(180deg,rgb(3 13 30 / .4) 0%,transparent 30%,transparent 66%,var(--navy) 100%)}
.crumbs{font-size:14.5px;color:var(--muted);margin-bottom:22px}
.crumbs a{text-decoration:none}.crumbs a:hover{color:var(--text)}
.phero h1{font-size:clamp(38px,5.4vw,72px);font-weight:800;letter-spacing:-.035em;max-width:14em}
.phero .sub{margin:22px 0 32px;font-size:clamp(18px,1.5vw,21px);line-height:1.5;color:#d9e6f5;max-width:33em}
.prose>*{max-width:44rem}
.prose p{color:#cfdcec;font-size:18.5px;line-height:1.65}
.prose p+p{margin-top:18px}
.prose h2{font-size:clamp(30px,3.6vw,46px);margin-bottom:22px}
.prose h3{font-size:24px;margin:34px 0 10px;letter-spacing:-.02em}
.prose strong{color:var(--text);font-weight:600}
.tight{padding-top:0}

.rows{display:grid;gap:clamp(56px,8vw,110px);margin-top:clamp(40px,6vw,72px)}
.row{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(28px,6vw,90px);align-items:center}
.row .phone{--pw:min(300px,70vw);justify-self:center}
.row:nth-child(even) .phone{order:2}
.row h3{font-size:clamp(26px,3vw,38px)}
.row p{color:var(--muted);font-size:18.5px;margin-top:14px;max-width:27em}
@media (max-width:860px){.row{grid-template-columns:1fr}.row:nth-child(even) .phone{order:0}}

.checks{list-style:none;margin:clamp(32px,4vw,48px) 0 0;padding:0;display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.checks li{background:var(--surface);border-radius:var(--r-card);padding:26px}
.checks b{display:block;font:700 20px/1.2 var(--display);letter-spacing:-.02em;margin-bottom:8px}
.checks span{color:var(--muted);font-size:16.5px}
.checks li.hl{background:var(--accent);color:var(--accent-ink)}
.checks li.hl span{color:rgb(10 26 5 / .78)}
@media (max-width:860px){.checks{grid-template-columns:1fr}}

.fields{margin:clamp(32px,4vw,48px) 0 0;display:grid;grid-template-columns:repeat(2,1fr);gap:0 clamp(28px,5vw,72px)}
.fields div{padding:20px 0;border-top:1px solid var(--line)}
.fields dt{font:700 19px/1.2 var(--display);letter-spacing:-.015em}
.fields dd{margin:6px 0 0;color:var(--muted);font-size:16.5px}
@media (max-width:720px){.fields{grid-template-columns:1fr}}

.example{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr);gap:clamp(28px,5vw,72px);align-items:start;margin-top:clamp(32px,4vw,48px)}
.example figure{margin:0;border-radius:var(--r-card);overflow:hidden;background:var(--surface)}
.example figure+figure{margin-top:18px}
.entry{background:var(--surface);border-radius:var(--r-card);padding:clamp(22px,3vw,34px);display:grid;grid-template-columns:auto 1fr;gap:12px 22px;font-size:17px;margin:0}
.entry dt{color:var(--muted)}
.entry dd{margin:0;font-weight:600}
@media (max-width:860px){.example{grid-template-columns:1fr}}

.howto{list-style:none;counter-reset:s;margin:clamp(32px,4vw,48px) 0 0;padding:0;display:grid;gap:14px;max-width:46em}
.howto li{counter-increment:s;display:grid;grid-template-columns:52px 1fr;gap:18px;align-items:start;background:var(--surface);border-radius:var(--r-card);padding:22px 26px}
.howto li::before{content:counter(s);font:800 30px/1 var(--display);color:var(--accent)}
.howto b{display:block;font:700 19.5px/1.25 var(--display);letter-spacing:-.015em}
.howto span{display:block;color:var(--muted);font-size:16.5px;margin-top:5px}

.calc{background:var(--surface);border-radius:var(--r-card);padding:clamp(24px,3.4vw,40px);margin-top:28px;max-width:46em}
.calc p{color:#cfdcec;font-size:17.5px}
.calc p+p{margin-top:12px}
.calc .sum{font:700 clamp(20px,2.4vw,28px)/1.3 var(--display);color:var(--text);letter-spacing:-.02em}

.split{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr);gap:clamp(28px,6vw,90px);align-items:center}
.split .phone{--pw:min(300px,70vw);justify-self:center}
@media (max-width:860px){.split{grid-template-columns:1fr}}
.band{background:var(--navy-deep)}
.next{display:flex;flex-wrap:wrap;gap:10px 28px;margin-top:28px;font-size:17px}

/* depth readout: the page is one dive */
.depth{position:fixed;right:18px;top:50%;z-index:40;translate:0 -50%;display:none;align-items:center;gap:10px;font:700 13px/1 var(--display);color:rgb(247 251 255 / .8);font-variant-numeric:tabular-nums;pointer-events:none}
.depth i{display:block;width:2px;height:120px;border-radius:2px;background:rgb(247 251 255 / .16);position:relative;overflow:hidden}
.depth i::after{content:"";position:absolute;inset:0;background:var(--accent);transform-origin:top;scale:1 0}

/* motion */
.js .reveal{opacity:0;transform:translateY(22px);transition:opacity .8s var(--ease),transform .8s var(--ease);transition-delay:calc(var(--i,0)*70ms)}
.js .reveal.is-in{opacity:1;transform:none}
@keyframes rise{from{opacity:0;transform:translateY(26px)}to{opacity:1;transform:none}}
@keyframes risePhone{from{opacity:0;translate:0 60px}to{opacity:1;translate:0 0}}
.hero h1,.hero .sub,.hero .btn{animation:rise .9s var(--ease) both}
.hero .sub{animation-delay:.08s}.hero .btn{animation-delay:.16s}
.hero-phones .p-front{animation:risePhone 1.1s var(--ease) .15s both}
.hero-phones .p-back{animation:risePhone 1.1s var(--ease) .3s both}

@supports (animation-timeline:scroll()){
  @property --m{syntax:"<integer>";inherits:true;initial-value:0}
  @keyframes drift{to{transform:translate3d(-3%,5%,0) scale(1.06)}}
  .hero-bg img{animation:drift linear both;animation-timeline:scroll(root);animation-range:0 100vh}
  @keyframes dive{to{--m:21}}
  @keyframes fill{to{scale:1 1}}
  @media (min-width:1280px){
    .depth{display:flex;animation:dive linear both;animation-timeline:scroll(root)}
    .depth b{counter-reset:m var(--m)}
    .depth b::after{content:counter(m) " m"}
    .depth i::after{animation:fill linear both;animation-timeline:scroll(root)}
  }
}
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{animation:none!important;transition:none!important}
  .js .reveal{opacity:1;transform:none}
  .js .step{opacity:1}
  .depth{display:none!important}
}
