:root{--cefref-blue:#365370;--cefref-cyan:#38b0cb;--navy:#365370;--navy2:#365370;--cyan:#38b0cb;--ink:#fff;--muted:#d1e0e9;--pale:#365370;--line:rgba(218,236,244,.27);--white:#fff}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;font-family:Arial,"Helvetica Neue",sans-serif;color:var(--ink);font-weight:300}a{text-decoration:none;color:inherit}.nav{height:76px;padding:0 max(5vw,24px);display:flex;align-items:center;gap:35px;background:var(--navy);color:#fff;position:sticky;top:0;z-index:10;border-bottom:1px solid rgba(255,255,255,.08)}.brand{font-size:25px}.brand span{color:var(--cyan)}.brand b,.brand span{font-weight:300}.nav nav{display:flex;gap:25px;margin-left:auto;font-size:13px}.nav nav a{opacity:.8}.button{display:inline-flex;background:var(--cyan);color:var(--navy);padding:15px 22px;border-radius:5px;font-weight:600;font-size:14px}.button.small{padding:11px 16px}.eyebrow{font-size:11px;letter-spacing:2.2px;color:var(--cyan);font-weight:700}.eyebrow.ink{color:#149da8}.hero{min-height:650px;background:var(--navy);color:#fff;padding:72px max(7vw,28px) 95px;display:grid;grid-template-columns:1.05fr .95fr;gap:7vw;align-items:center}.hero h1,.pagehero h1{font-size:clamp(48px,6vw,82px);line-height:1.02;letter-spacing:-3px;font-weight:300;margin:14px 0 25px}.lead,.pagehero p{font-size:19px;line-height:1.6;color:#d6e1e6;max-width:650px}.actions{display:flex;gap:25px;align-items:center;margin-top:32px}.textlink{font-size:14px}.diary-card{background:#fff;color:var(--ink);border-radius:15px;padding:28px;box-shadow:0 25px 65px rgba(0,0,0,.2)}.cardtop{display:flex;justify-content:space-between;font-size:18px;margin-bottom:25px}.weekday{display:grid;grid-template-columns:repeat(7,1fr);text-align:center;color:#82919a;font-size:10px}.bars{height:200px;display:flex;gap:12px;align-items:flex-end;border-bottom:1px solid var(--line);padding:20px 8px 0}.bars i{flex:1;background:var(--navy2);border-radius:3px 3px 0 0}.stats{display:grid;grid-template-columns:repeat(3,1fr);padding-top:22px}.stats div{display:flex;flex-direction:column;text-align:center}.stats b{font-size:29px;font-weight:300}.stats span{font-size:10px;color:var(--muted)}.section{padding:105px max(7vw,28px)}.section h2,.darkband h2,.twocol h2,.content h2,.cta h2{font-size:clamp(34px,4vw,56px);font-weight:300;letter-spacing:-1.6px;margin:12px 0 18px}.intro{font-size:18px;color:var(--muted);max-width:650px;line-height:1.6}.three{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;margin-top:60px}.three article{border-top:1px solid var(--line);padding-top:25px}.three article>span{color:#16aab5;font-size:12px}.three h3{font-size:27px;font-weight:300}.three p,.twocol p,.content p{color:var(--muted);line-height:1.7}.darkband{background:var(--navy2);color:#fff;padding:95px max(7vw,28px);display:grid;grid-template-columns:1fr 1fr;gap:8vw;align-items:center}.darkband p{color:#d4dfe4;line-height:1.7}.outline{display:inline-block;border:1px solid var(--cyan);color:var(--cyan);padding:13px 18px;border-radius:5px;margin-top:18px}.rings{display:flex;gap:25px;justify-content:center}.rings div{width:175px;height:175px;border:8px solid var(--cyan);border-radius:50%;display:flex;flex-direction:column;justify-content:center;align-items:center}.rings strong{font-size:45px;font-weight:300}.rings span{font-size:11px}.twocol{display:grid;grid-template-columns:1fr 1fr;gap:70px}.more{color:#159da8;font-weight:600;font-size:14px}.pagehero{background:var(--navy);color:#fff;padding:90px max(12vw,28px) 105px}.pagehero.compact{padding-bottom:70px}.pagehero .button{margin-top:20px}.content{max-width:950px;margin:auto;padding:90px 28px 110px}.content h2{font-size:35px;margin-top:55px}.content h2:first-child{margin-top:0}.notice{background:var(--pale);border-left:3px solid var(--cyan);padding:20px 22px;margin:35px 0;color:var(--ink);line-height:1.6}.steps article{padding:25px 0 40px;border-bottom:1px solid var(--line)}.steps article>b{color:#16aab5;font-size:12px}.legal{min-height:400px}.cta{text-align:center;background:var(--pale);padding:80px 25px}.cta p{color:var(--muted)}.cta .button{margin-top:15px}footer{background:var(--navy);color:#d8e2e7;padding:45px max(7vw,28px);display:flex;align-items:center;gap:35px}footer .footlinks{display:flex;gap:22px;margin-left:auto;font-size:12px}footer small{font-size:11px;opacity:.7}
@media(max-width:820px){.nav{height:66px}.nav nav{display:none}.nav .button{margin-left:auto}.hero{grid-template-columns:1fr;padding-top:55px}.hero h1,.pagehero h1{letter-spacing:-2px}.three,.twocol,.darkband{grid-template-columns:1fr}.rings{margin-top:25px}.rings div{width:135px;height:135px}.actions{flex-direction:column;align-items:flex-start}.pagehero{padding-top:65px}.content{padding-top:65px}footer{flex-wrap:wrap}footer .footlinks{width:100%;margin-left:0}.cta h2{font-size:38px}}
/* v0.3 polish */
:focus-visible{outline:3px solid var(--cyan);outline-offset:4px}
.skip{position:absolute;left:-9999px;top:8px;background:#fff;color:var(--ink);padding:10px 14px;z-index:99}
.skip:focus{left:10px}
.nav a,.button,.more,.outline,.textlink{transition:opacity .18s ease,transform .18s ease,background .18s ease}
.nav nav a:hover,.footlinks a:hover{opacity:1}.button:hover{transform:translateY(-1px)}.more:hover,.textlink:hover{opacity:.72}
.hero-copy{max-width:760px}.diary-card{max-width:560px}
.content p{font-size:17px}.content h2{line-height:1.12}.pagehero{min-height:390px;display:flex;flex-direction:column;justify-content:center}
.kicker{display:inline-flex;gap:9px;align-items:center;color:#d6e1e6;font-size:13px;margin-top:18px}.kicker:before{content:"";width:28px;height:1px;background:var(--cyan)}
.faq{border-top:1px solid var(--line);margin-top:45px}.faq details{border-bottom:1px solid var(--line);padding:20px 0}.faq summary{cursor:pointer;font-size:18px}.faq p{margin-bottom:0}
.safety{background:#f7fafb;padding:70px max(7vw,28px)}.safety-inner{max-width:950px;margin:auto}.safety h2{font-size:30px;font-weight:300}.safety p{color:var(--muted);line-height:1.7}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}.nav a,.button,.more,.outline,.textlink{transition:none}}

.product-visual{display:flex;justify-content:center;align-items:center;min-height:500px}
.product-visual img{width:min(100%,300px);height:auto;filter:drop-shadow(0 28px 34px rgba(0,0,0,.28))}
.showcase{padding:105px max(7vw,28px);background:#f8fbfc}
.showcase-head{max-width:760px}.showcase-head h2{font-size:clamp(34px,4vw,56px);font-weight:300;letter-spacing:-1.6px;margin:12px 0 18px}
.showcase-head>p:last-child{font-size:18px;color:var(--muted);line-height:1.65}
.phones{display:grid;grid-template-columns:repeat(4,1fr);gap:26px;align-items:end;margin-top:65px}
.phones figure{margin:0;text-align:center}.phones img{display:block;width:100%;max-width:245px;height:auto;margin:auto;filter:drop-shadow(0 16px 22px rgba(38,57,74,.15))}
.phones figcaption{margin-top:16px;font-size:12px;color:var(--muted);letter-spacing:.4px}
@media(max-width:900px){.phones{grid-template-columns:repeat(2,1fr)}}
@media(max-width:520px){.phones{grid-template-columns:1fr 1fr;gap:14px}.showcase{padding-left:18px;padding-right:18px}.product-visual{min-height:auto}.product-visual img{max-width:255px}}

/* v0.9 review-candidate additions */
.nav[aria-label],.nav nav[aria-label]{}
.principles{padding:105px max(7vw,28px);display:grid;grid-template-columns:.85fr 1.15fr;gap:8vw;background:#fff}
.principles h2{font-size:clamp(34px,4vw,55px);font-weight:300;letter-spacing:-1.6px;line-height:1.08;margin:12px 0}
.principle-grid{display:grid;gap:0}.principle-grid article{padding:24px 0;border-top:1px solid var(--line)}
.principle-grid h3{font-size:21px;font-weight:400;margin:0 0 8px}.principle-grid p{color:var(--muted);line-height:1.65;margin:0}
.screen-strip{padding:20px max(7vw,28px) 105px;display:grid;grid-template-columns:repeat(3,1fr);gap:35px;align-items:end}
.screen-strip figure{margin:0;text-align:center}.screen-strip img{max-width:250px;width:100%;height:auto;filter:drop-shadow(0 18px 22px rgba(38,57,74,.16))}
.screen-strip figcaption{font-size:12px;color:var(--muted);margin-top:14px}
.featureband{background:#f7fafb;padding:90px max(10vw,28px);display:grid;grid-template-columns:1fr .65fr;gap:8vw;align-items:center}
.featureband h2{font-size:clamp(34px,4vw,52px);font-weight:300;margin:12px 0}.featureband p{color:var(--muted);font-size:18px;line-height:1.7}
.featureband img{max-width:245px;width:100%;justify-self:center;filter:drop-shadow(0 18px 22px rgba(38,57,74,.16))}
.professional-grid{padding:0 max(10vw,28px) 110px;display:grid;grid-template-columns:repeat(3,1fr);gap:25px}
.professional-grid article{border-top:1px solid var(--line);padding-top:22px}.professional-grid span{color:#159da8;font-size:12px}.professional-grid h3{font-size:24px;font-weight:300}.professional-grid p{color:var(--muted);line-height:1.65}
.draftbadge{display:inline-block;background:#eef5f7;border:1px solid var(--line);padding:8px 11px;font-size:10px;letter-spacing:1.2px;color:var(--muted);margin-bottom:30px}
.nav a[aria-current="page"]{color:var(--cyan);opacity:1}
@media(max-width:820px){.principles,.featureband{grid-template-columns:1fr}.screen-strip{grid-template-columns:repeat(3,1fr);gap:10px}.professional-grid{grid-template-columns:1fr}.featureband img{max-width:220px}}
@media(max-width:560px){.screen-strip{grid-template-columns:1fr 1fr}.screen-strip figure:last-child{grid-column:1/-1}.screen-strip figure:last-child img{max-width:210px}}

/* v1.0 content review: mobile navigation and learning pages */
.mobile-menu{display:none;position:relative;color:var(--white)}.mobile-menu summary{cursor:pointer;list-style:none;font-size:13px;white-space:nowrap}.mobile-menu summary::-webkit-details-marker{display:none}.mobile-menu summary span{margin-left:7px;color:var(--cyan)}
.mobile-menu[open] nav{position:absolute;right:0;top:calc(100% + 16px);width:min(310px,86vw);display:flex;flex-direction:column;gap:0;padding:12px;background:var(--navy);border:1px solid #5b6d7c;box-shadow:0 14px 35px #10232a44;z-index:50}.mobile-menu nav a{padding:12px 10px;color:white;border-bottom:1px solid #ffffff20;font-size:14px;text-decoration:none}.mobile-menu nav a:last-child{border-bottom:0}
.guide-intro{padding:85px max(10vw,28px) 45px;max-width:1100px}.guide-intro h2{font-size:clamp(34px,4.5vw,58px);font-weight:300;margin:10px 0 20px;letter-spacing:-1px}.guide-intro p:not(.eyebrow){max-width:700px;color:var(--muted);line-height:1.7;font-size:18px}
.guide-steps{padding:0 max(10vw,28px) 100px}.guide-steps article{border-top:1px solid var(--line);padding:35px 0;display:grid;grid-template-columns:75px 1fr 190px;gap:24px;align-items:start}.guide-number{font-size:14px;color:#139ea9;padding-top:10px}.guide-steps h2{font-size:30px;font-weight:300;margin:0 0 14px}.guide-steps p{max-width:630px;line-height:1.7;color:var(--muted)}.guide-steps img{max-width:170px;width:100%;justify-self:center;filter:drop-shadow(0 12px 17px #26394a22)}.guide-note{font-size:13px!important;color:#73838d!important}
.guide-callout{padding:70px max(10vw,28px);background:#eef5f7}.guide-callout h2{font-size:clamp(30px,4vw,48px);font-weight:300;letter-spacing:-1px;max-width:700px;margin:10px 0 18px}.guide-callout p{max-width:780px;line-height:1.7;color:var(--muted)}.guide-safety{padding:55px max(10vw,28px);border-top:1px solid var(--line)}.guide-safety h2{font-weight:400;font-size:23px}.guide-safety p{max-width:800px;line-height:1.7;color:var(--muted)}
.guide-jump{padding:20px max(7vw,28px);background:#eef5f7;display:flex;gap:12px;flex-wrap:wrap}.guide-jump a{border:1px solid var(--line);border-radius:40px;padding:9px 17px;color:var(--ink);font-size:13px;text-decoration:none;background:#fff}.guide-jump a:hover,.guide-jump a:focus-visible{border-color:var(--cyan)}
.guide-feature{padding:95px max(10vw,28px);display:grid;grid-template-columns:1fr .8fr;gap:7vw;align-items:center;border-bottom:1px solid var(--line);scroll-margin-top:30px}.guide-feature.reverse{background:#f7fafb}.guide-feature h2{font-size:clamp(34px,4vw,52px);font-weight:300;letter-spacing:-1px;margin:10px 0 24px}.guide-feature p{color:var(--muted);line-height:1.75;max-width:580px}.guide-feature>img{max-width:245px;width:100%;justify-self:center;filter:drop-shadow(0 15px 22px #26394a22)}.guide-image-pair{display:flex;gap:18px;justify-content:center}.guide-image-pair img{max-width:190px;width:46%;object-fit:contain;filter:drop-shadow(0 15px 22px #26394a22)}.guide-placeholder{border:1px dashed #b9cbd2;border-radius:12px;padding:75px 20px;text-align:center;color:var(--muted);font-size:12px;letter-spacing:1px}.guide-placeholder small{display:block;margin-top:12px;letter-spacing:0}
.project-grid{padding:0 max(10vw,28px) 100px;display:grid;grid-template-columns:repeat(2,1fr);gap:28px}.project-grid article{border-top:1px solid var(--line);padding-top:25px}.project-grid span{font-size:13px;color:#139ea9}.project-grid h3{font-size:26px;font-weight:300}.project-grid p{color:var(--muted);line-height:1.7}
@media(max-width:1150px){.nav>nav{display:none}.mobile-menu{display:block;margin-left:auto}.nav>.button.small{margin-left:14px}}
@media(max-width:750px){.guide-steps article{grid-template-columns:45px 1fr}.guide-steps article img{grid-column:2;max-width:165px;justify-self:start}.guide-feature{grid-template-columns:1fr;padding-top:65px;padding-bottom:65px}.guide-feature>img{max-width:215px}.project-grid{grid-template-columns:1fr}.guide-intro{padding-top:65px}.guide-steps{padding-bottom:65px}}
@media(max-width:420px){.nav>.button.small{padding:9px 11px;font-size:11px}.mobile-menu summary{font-size:12px}.guide-image-pair img{width:45%}}

/* v1.1 visual user-guide system */
.visual-sequence{padding:72px max(7vw,28px);border-top:1px solid var(--line);background:#fff}.visual-sequence:nth-of-type(even){background:#f7fafb}.sequence-copy{max-width:760px;margin-bottom:38px}.sequence-copy h2{font-size:clamp(30px,3.4vw,46px);font-weight:300;letter-spacing:-1px;margin:0 0 12px}.sequence-copy p{font-size:17px;line-height:1.7;color:var(--muted)}
.sequence-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:28px;align-items:start;max-width:1080px}.guide-shot{margin:0;text-align:center}.shot-frame{position:relative;display:inline-block;border-radius:18px;overflow:hidden;box-shadow:0 16px 36px rgba(38,57,74,.15);background:#eef5f7}.guide-shot img{display:block;width:100%;max-width:235px;height:auto}.guide-shot figcaption{margin-top:12px;color:var(--ink);font-size:13px}.screen-marker{position:absolute;transform:translate(-50%,-50%);width:30px;height:30px;border-radius:50%;background:var(--cyan);color:#fff;border:3px solid #fff;box-shadow:0 2px 8px rgba(0,0,0,.28);display:grid;place-items:center;font-size:12px;font-weight:700;z-index:2}.screen-marker:after{content:"";position:absolute;width:32px;height:2px;background:var(--cyan);right:22px;top:12px;transform:rotate(-22deg);transform-origin:right center}
.guide-intro{scroll-margin-top:80px}.visual-sequence{scroll-margin-top:80px}
@media(max-width:620px){.visual-sequence{padding:52px 22px}.sequence-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:22px 14px}.guide-shot img{max-width:100%}.shot-frame{border-radius:14px}.screen-marker{width:26px;height:26px}.sequence-copy{margin-bottom:28px}}

/* App-family visual system: deep slate surfaces, cyan actions and quiet dividers.
   The public site shares the diary's visual language without altering its imagery. */
html{background:var(--navy)}
body{
  background:#35536f;
  color:var(--ink);
  font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",ui-sans-serif,sans-serif;
  font-weight:400;
  line-height:1.5;
  -webkit-font-smoothing:antialiased;
}
::selection{background:var(--cyan);color:var(--navy)}
a{transition:color .18s ease}
a:hover{color:#77d8e4}
.nav{
  height:76px;
  gap:30px;
  background:var(--navy);
  border-bottom:1px solid rgba(187,212,225,.2);
  color:var(--white);
}
.brand{
  flex-shrink:0;
  font-size:26px;
  line-height:1;
  letter-spacing:-.055em;
  white-space:nowrap;
}
.brand span{color:var(--cyan)}
.brand b{color:var(--white);font-weight:400}
.nav>.brand{position:relative;display:block;width:102px;letter-spacing:normal}
.nav>.brand span,.nav>.brand b{display:none}
.nav>.brand::before{
  content:"";
  display:block;
  width:100%;
  height:auto;
  aspect-ratio:1280 / 414;
  background:url("assets/cefref-logo-official.png") center / contain no-repeat;
}
.nav>.brand::after,footer>.footer-brand::after{
  content:"™";
  position:absolute;
  left:calc(100% + 1px);
  top:-2px;
  color:var(--white);
  font-size:.42em;
  font-weight:400;
  line-height:1;
  letter-spacing:0;
}
footer>.footer-brand{position:relative;display:block;width:80px;letter-spacing:normal}
footer>.footer-brand img{display:block;width:100%;height:auto}
@media(max-width:1150px){.nav>.brand{width:92px}}
@media(max-width:520px){.nav>.brand{width:84px}}
.nav nav{gap:24px;font-size:13px;font-weight:500}
.nav nav a{opacity:.82}
.nav nav a:hover,.nav nav a:focus-visible{color:var(--white);opacity:1}
.nav a[aria-current="page"]{color:#6bd7e3}
.button{
  align-items:center;
  justify-content:center;
  min-height:46px;
  background:var(--cyan);
  color:#173445;
  border:1px solid var(--cyan);
  border-radius:5px;
  padding:12px 21px;
  font-weight:700;
  line-height:1.25;
  box-shadow:none;
}
.button.small{min-height:40px;padding:9px 16px}
.button:hover,.button:focus-visible{background:#69d1df;border-color:#69d1df;color:#173445;transform:none}
.outline{
  border-color:#55c9da;
  color:#a2e9f0;
  border-radius:5px;
  font-weight:600;
}
.outline:hover,.outline:focus-visible{background:rgba(50,180,202,.12);color:var(--white)}
.textlink,.more{color:#a6e8ef;font-weight:600}
.textlink:hover,.more:hover{color:var(--white);opacity:1}
.eyebrow,.eyebrow.ink{color:#72dce7;font-size:11px;letter-spacing:.17em;font-weight:700}
h1,h2,h3,h4{color:var(--white)}
p{color:inherit}
.hero{
  min-height:640px;
  background:#35536f;
  padding-top:90px;
  padding-bottom:104px;
  border-bottom:1px solid rgba(193,217,229,.17);
}
.hero h1,.pagehero h1{
  max-width:850px;
  font-weight:500;
  letter-spacing:-.055em;
  line-height:1.07;
}
.hero .lead,.pagehero p:not(.eyebrow){color:#d4e2e9;line-height:1.65}
.hero .actions{gap:29px}
.pagehero{
  background:#304b64;
  border-bottom:1px solid rgba(193,217,229,.18);
}
.pagehero.compact{background:#304b64}
.pagehero h1{max-width:900px}
.pagehero p:not(.eyebrow){max-width:700px}
.product-visual{min-height:480px;padding:24px}
.product-visual img{
  width:min(100%,300px);
  border:2px solid var(--cyan);
  border-radius:23px;
  filter:none;
  box-shadow:0 0 0 11px rgba(25,46,62,.2);
}
.diary-card{
  background:#2a4257;
  color:var(--white);
  border:1px solid rgba(187,212,225,.32);
  box-shadow:none;
}
.weekday,.stats span{color:var(--muted)}
.bars{border-bottom-color:rgba(187,212,225,.34)}
.bars i{background:var(--cyan)}
.section{background:#35536f}
.section h2,.darkband h2,.twocol h2,.content h2,.cta h2,
.showcase-head h2,.principles h2,.featureband h2,.guide-intro h2,
.guide-callout h2,.guide-feature h2,.sequence-copy h2{
  color:var(--white);
  font-weight:500;
  line-height:1.13;
  letter-spacing:-.045em;
}
.intro,.three p,.twocol p,.content p,.darkband p,
.showcase-head>p:last-child,.principle-grid p,.featureband p,
.professional-grid p,.project-grid p,.guide-intro p:not(.eyebrow),
.guide-steps p,.guide-callout p,.guide-safety p,.guide-feature p,
.sequence-copy p,.safety p{color:var(--muted)}
.intro{max-width:680px}
.three article,.professional-grid article,.project-grid article,
.principle-grid article,.steps article,.guide-steps article{
  border-color:rgba(187,212,225,.34);
}
.three article>span,.professional-grid span,.project-grid span,
.steps article>b,.guide-number{color:#72dce7}
.three h3,.professional-grid h3,.project-grid h3,.principle-grid h3,
.guide-steps h2{color:var(--white);font-weight:500;letter-spacing:-.025em}
.showcase{
  background:#2e485f;
  border-top:1px solid rgba(187,212,225,.15);
  border-bottom:1px solid rgba(187,212,225,.15);
}
.phones{gap:30px;margin-top:55px}
.phones figure,.screen-strip figure{padding:12px 8px 0}
.phones img,.screen-strip img,.featureband img,.guide-steps img,
.guide-feature>img,.guide-image-pair img{
  border:2px solid var(--cyan);
  border-radius:17px;
  filter:none;
  box-shadow:none;
}
.phones figcaption,.screen-strip figcaption{
  color:#c9dce5;
  font-size:12px;
  letter-spacing:.04em;
  margin-top:18px;
}
.darkband{
  background:#26394a;
  border-block:1px solid rgba(187,212,225,.18);
}
.darkband p{color:#c6d9e3}
.rings div{border-width:3px;border-color:#4cc7d9;color:var(--white)}
.rings span{color:#c3d6e0;letter-spacing:.04em}
.twocol article{border-top:1px solid rgba(187,212,225,.28);padding-top:26px}
.twocol{gap:70px}
.principles{background:#304b64;border-block:1px solid rgba(187,212,225,.18)}
.screen-strip{background:#304b64}
.featureband{background:#2e485f;border-block:1px solid rgba(187,212,225,.18)}
.content{color:var(--ink)}
.content h2{font-size:35px}
.content p{color:#c9dbe4}
.notice{
  background:#2b4358;
  color:#dbe9ee;
  border-left:3px solid var(--cyan);
  border-top:1px solid rgba(187,212,225,.18);
  border-right:1px solid rgba(187,212,225,.18);
  border-bottom:1px solid rgba(187,212,225,.18);
}
.company-address{font-style:normal;line-height:1.7;color:#c9dbe4}
.company-email{color:#93dfeb;text-underline-offset:.2em}
.company-details{margin-top:2rem;padding-top:1.25rem;border-top:1px solid rgba(187,212,225,.18)}
.legal .company-details h2{font-size:1.4rem}
.cta{
  background:#26394a;
  border-top:1px solid rgba(187,212,225,.2);
  border-bottom:1px solid rgba(187,212,225,.2);
}
.cta p{color:#c3d6e0}
.safety{
  background:#2d475e;
  border-top:1px solid rgba(187,212,225,.19);
}
.safety h2{color:var(--white);font-weight:500;letter-spacing:-.03em}
.faq{border-top-color:rgba(187,212,225,.36)}
.faq details{border-bottom-color:rgba(187,212,225,.36)}
.faq summary{
  color:var(--white);
  font-weight:550;
  padding-right:28px;
}
.faq summary:hover{color:#92e3eb}
.faq details[open] summary{color:#92e3eb}
.faq p{color:var(--muted)}
.guide-intro,.guide-steps,.project-grid,.guide-safety,.guide-feature,
.visual-sequence{background:#35536f}
.guide-callout,.guide-jump{background:#2b4358}
.guide-feature.reverse,.visual-sequence:nth-of-type(even){background:#304b64}
.guide-feature,.guide-safety,.visual-sequence{border-color:rgba(187,212,225,.24)}
.guide-jump{border-bottom:1px solid rgba(187,212,225,.22)}
.guide-jump a{
  background:#35536f;
  color:#e3eef2;
  border-color:rgba(187,212,225,.38);
  border-radius:5px;
}
.guide-jump a:hover,.guide-jump a:focus-visible{
  border-color:var(--cyan);
  background:#3b5d76;
  color:var(--white);
}
.guide-note{color:#a9c1cd!important}
.guide-placeholder{
  border-color:#7692a6;
  color:#c1d3dd;
  background:#304b64;
}
.guide-shot figcaption{color:var(--white)}
.shot-frame{
  background:#26394a;
  border:2px solid var(--cyan);
  border-radius:17px;
  box-shadow:none;
}
.screen-marker{color:#173445;border-color:#e6f5f7;box-shadow:none}
.draftbadge{
  background:#2b4358;
  color:#bdd3de;
  border-color:rgba(187,212,225,.3);
}
.mobile-menu[open] nav{
  background:#26394a;
  border-color:#678096;
  box-shadow:none;
}
.mobile-menu nav a{color:var(--white);border-bottom-color:rgba(187,212,225,.2)}
.mobile-menu nav a:hover{background:#35536f;color:#a2e9f0}
.skip{background:var(--cyan);color:#173445;border-radius:4px}
footer{
  background:#203344;
  color:#c3d5df;
  border-top:1px solid rgba(187,212,225,.16);
}
footer .footlinks{flex-wrap:wrap;row-gap:12px}
footer .footlinks a:hover{color:#9fe8ef}
footer small{color:#b3c8d3;opacity:1}
@media(max-width:820px){
  .nav{height:66px;gap:14px}
  .hero{min-height:0;padding-top:64px;padding-bottom:75px;gap:30px}
  .product-visual{min-height:0;padding:18px 0}
  .pagehero{min-height:330px}
  .twocol{gap:45px}
  .three{margin-top:40px}
  .rings{justify-content:flex-start}
  footer{gap:22px}
}
@media(max-width:520px){
  .hero h1,.pagehero h1{font-size:clamp(43px,11vw,60px);letter-spacing:-.05em}
  .hero .lead,.pagehero p:not(.eyebrow){font-size:17px}
  .section,.showcase,.darkband,.principles{padding-top:72px;padding-bottom:72px}
  .section h2,.darkband h2,.twocol h2,.content h2,.cta h2{letter-spacing:-.04em}
  .phones{gap:15px;margin-top:38px}
  .phones figure{padding:0}
  .phones img{border-radius:11px;border-width:1px}
  .phones figcaption{margin-top:12px}
  .rings{gap:14px}
  .rings div{width:124px;height:124px}
  .rings strong{font-size:35px}
  .product-visual img{max-width:255px}
  .cta{padding:70px 24px}
  footer .footlinks{gap:14px 20px}
}
@media(prefers-reduced-motion:reduce){
  a{transition:none}
}

/* CEFREF application visual language — public pages.
   Guide screenshot compositions and callouts are owned by guide.css. */
html{background:var(--cefref-blue)}
body{
  background:var(--cefref-blue);
  color:#fff;
  font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  font-weight:400;
}
::selection{background:var(--cefref-cyan);color:var(--cefref-blue)}
:focus-visible{outline-color:var(--cefref-cyan)}
.skip{background:var(--cefref-cyan);color:#17364b}

/* Keep the entire site on one CEFREF-blue canvas. Section changes are
   communicated by space and fine dividers, not generic light panels. */
.nav,.hero,.pagehero,.pagehero.compact,.section,.showcase,.darkband,
.principles,.screen-strip,.featureband,.content,.cta,.safety,
.guide-intro,.guide-steps,.project-grid,.guide-safety,.guide-feature,
.guide-feature.reverse,.guide-callout,.guide-jump,.visual-sequence,
.visual-sequence:nth-of-type(even),footer{
  background:var(--cefref-blue);
}
.hero,.pagehero,.showcase,.darkband,.principles,.featureband,.cta,
.safety,.guide-jump,.guide-feature,.guide-safety,.visual-sequence,footer{
  border-color:var(--line);
}
.nav{border-bottom-color:var(--line)}
.hero{min-height:620px}
.pagehero{min-height:370px}
.section,.showcase,.principles,.darkband{padding-top:96px;padding-bottom:96px}
.section.twocol{padding-top:82px;padding-bottom:82px}
.principles{border-top:1px solid var(--line)}
.three article,.twocol article,.principle-grid article,.professional-grid article,
.project-grid article,.steps article,.guide-steps article,.faq,.faq details{
  border-color:var(--line);
}
.notice,.draftbadge,.guide-placeholder{
  background:transparent;
  border-color:var(--line);
  color:var(--muted);
}
.diary-card{background:transparent;color:#fff;border:1px solid var(--line);box-shadow:none}
.notice{border-left-color:var(--cefref-cyan);color:#e2edf2}
.guide-placeholder{border-style:dashed}
.rings div{border-color:var(--cefref-cyan)}

/* Heading and copy contrast should follow the in-app hierarchy. */
h1,h2,h3,h4,.section h2,.darkband h2,.twocol h2,.content h2,.cta h2,
.showcase-head h2,.principles h2,.featureband h2,.guide-intro h2,
.guide-callout h2,.guide-feature h2,.sequence-copy h2,
.three h3,.professional-grid h3,.project-grid h3,.principle-grid h3,
.guide-steps h2{color:#fff}
.hero .lead,.pagehero p:not(.eyebrow),.intro,.three p,.twocol p,
.content p,.darkband p,.showcase-head>p:last-child,.principle-grid p,
.featureband p,.professional-grid p,.project-grid p,.guide-intro p:not(.eyebrow),
.guide-steps p,.guide-callout p,.guide-safety p,.guide-feature p,
.sequence-copy p,.safety p,.faq p,.cta p{color:var(--muted)}
.content{max-width:960px}
.content p,.content li,.project-grid p,.guide-safety p{font-size:17px;line-height:1.75}
.eyebrow,.eyebrow.ink,.three article>span,.professional-grid span,
.project-grid span,.steps article>b,.guide-number{color:var(--cefref-cyan)}
.more,.textlink{color:#a9e9f2}
.more:hover,.textlink:hover{color:#fff}

/* CEFREF cyan action controls: solid primary, outline secondary. */
.button{
  background:var(--cefref-cyan);
  border:1px solid var(--cefref-cyan);
  color:#17364b;
  box-shadow:none;
}
.button:hover,.button:focus-visible{
  background:#70cada;
  border-color:#70cada;
  color:#17364b;
}
.outline{border-color:var(--cefref-cyan);color:#b9edf4}
.outline:hover,.outline:focus-visible{background:rgba(56,176,203,.12);color:#fff}
.guide-jump a{background:transparent;color:#e3edf3;border-color:var(--line)}
.guide-jump a:hover,.guide-jump a:focus-visible{
  background:rgba(56,176,203,.1);
  border-color:var(--cefref-cyan);
  color:#fff;
}

/* The header stays restrained, but legible at actual desktop zoom. */
@media(min-width:1151px){
  .nav{height:82px;gap:28px;padding-inline:max(4vw,30px)}
  .nav .brand{font-size:31px;letter-spacing:-.045em}
  .nav>nav{gap:21px;font-size:15px;font-weight:550}
  .nav>nav a{opacity:.9}
  .nav>.button.small{min-height:44px;padding:10px 17px;font-size:15px;white-space:nowrap}
}
.nav a[aria-current="page"]{color:#9ae1ed}
.mobile-menu[open] nav{background:var(--cefref-blue);border-color:var(--line)}
.mobile-menu nav a{color:#fff;border-bottom-color:var(--line)}
.mobile-menu nav a:hover{background:rgba(56,176,203,.1);color:#fff}

/* Genuine screenshots remain the visual material. Frame the image itself,
   never add a larger decorative card around it. */
.product-visual{padding:0}
.product-visual img,.phones img,.screen-strip img,.featureband img,
.guide-steps img,.guide-feature>img,.guide-image-pair img{
  display:block;
  height:auto;
  object-fit:contain;
  border:.18rem solid var(--cefref-cyan);
  border-radius:.85rem;
  background:#fff;
  box-shadow:0 .3rem 1rem rgb(13 42 64 / 35%);
  filter:none;
}
.product-visual img{width:min(100%,315px)}
.phones img{max-width:245px}
.phones figcaption,.screen-strip figcaption{color:var(--muted);font-size:13px}
.phones figure,.screen-strip figure{padding:0}
/* Guide display PNGs are cropped from the original 1206×2622 masters:
   the first 186px of device chrome is excluded. The masters stay unchanged. */
:is(.guide-page .shot-frame img,.app-viewport-shot){aspect-ratio:1206 / 2436;object-fit:cover;object-position:center bottom}
.screen-strip img.app-viewport-shot{width:201px;max-width:100%;height:auto;border:0;outline:.18rem solid var(--cefref-cyan)}
footer{color:var(--muted)}
footer small{color:var(--muted)}
.nav>nav[aria-label="Primary"]{gap:clamp(14px,1.6vw,23px);align-items:center;white-space:nowrap}
.mobile-menu[open] nav{max-height:calc(100dvh - 82px);overflow-y:auto}

@media(max-width:1150px){
  .nav{padding-inline:24px}
  .nav>.button.small{font-size:13px;white-space:nowrap}
}
@media(max-width:820px){
  .nav{height:66px}
  .nav .brand{font-size:25px}
  .section,.showcase,.principles,.darkband{padding-top:72px;padding-bottom:72px}
  .section.twocol{padding-top:64px;padding-bottom:64px}
}
@media(max-width:520px){
  .nav{padding-inline:18px;gap:12px}
  .nav .brand{font-size:23px}
  .nav>.button.small{font-size:11px;padding:9px 10px;min-height:36px;margin-left:0}
  .mobile-menu summary{font-size:12px}
  .product-visual img{max-width:255px}
  .phones img{border-width:.18rem;border-radius:.85rem}
  .content p,.content li{font-size:16px}
  footer{align-items:flex-start}
}

/* Three genuine 2× app crops form one cyan-edged, clipped hero composition. */
.homepage .hero{overflow:hidden}
.hero .product-visual{min-height:0;height:470px;padding:0;align-items:center}
.hero-collage{position:relative;width:min(78%,421.2px);aspect-ratio:540 / 590;isolation:isolate;overflow:visible;clip-path:inset(-7% 0 0 0);transform:translateY(4%)}
.hero-collage .hero-panel{
  position:absolute;
  display:block;
  width:40%;
  overflow:hidden;
  border:2px solid #38b0cb;
  border-radius:.85rem;
  background:#fff;
  box-shadow:0 2px 8px rgb(13 42 64 / 12%);
}
.product-visual .hero-panel img{
  display:block;
  width:100%;
  max-width:none;
  height:auto;
  aspect-ratio:1206 / 2436;
  object-fit:cover;
  object-position:center bottom;
  border:0;
  border-radius:calc(.85rem - 2px);
  filter:none;
}
.product-visual .hero-collage .collage-diary{left:29%;top:-5%;width:42%;z-index:1}
.hero-collage .collage-input{left:15%;top:34%;z-index:2}
.hero-collage .collage-trend{left:49%;top:54.5%;z-index:3}
@media(max-width:820px){
  .hero .product-visual{height:auto}
  .hero-collage{width:min(78%,319.8px);margin-inline:auto}
}
@media(min-width:821px){
  .hero-collage{left:-30px;top:15px}
}

/* Homepage pacing pass; keep other public pages on their existing palette/layout. */
.homepage .overview{padding-block:72px}
.homepage .overview .three{margin-top:44px}
.homepage .showcase{
  background:var(--cefref-blue);
  color:#fff;
  padding-block:42px 46px;
  border-color:var(--line);
}
.homepage .showcase-intro{
  max-width:1100px;
  margin:0 auto;
  color:var(--muted);
  font-size:16px;
  line-height:1.5;
}
.homepage .showcase-screens{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  align-items:start;
  gap:20px;
  max-width:1100px;
  margin:24px auto 0;
}
.homepage .showcase-screens figure{margin:0;text-align:center}
/* The guide's callout clearance is unnecessary in this label-only placement.
   The actual frame and image styling comes from guide.css unchanged. */
.homepage .showcase .shot-frame{max-width:100%}
.homepage .showcase-screens figcaption{
  color:var(--muted);
  font-size:12px;
  letter-spacing:.02em;
  margin-top:10px;
}
.homepage .darkband{background:#26394a;padding-block:76px}
.homepage .routes{
  background:#304b64;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:52px 70px;
  padding-block:76px 84px;
}
.homepage .routes article{
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  min-width:0;
  padding-top:24px;
  border-top:2px solid var(--line);
}
.homepage .routes article[hidden]{display:none}
.homepage .routes article .eyebrow{margin:0}
.homepage .routes article h2{font-size:clamp(29px,3vw,42px);line-height:1.18;margin:10px 0 12px}
.homepage .routes article>p:not(.eyebrow){line-height:1.6;margin:0 0 20px}
.homepage .routes article .more{margin-top:auto}
.homepage .principles{background:var(--cefref-blue);padding-block:78px}
@media(max-width:1030px){
  .homepage .showcase-screens{grid-template-columns:repeat(2,minmax(0,1fr));gap:24px}
}
@media(max-width:720px){
  .homepage .routes{grid-template-columns:1fr;gap:34px;padding-block:62px}
  .homepage .principles{padding-block:66px}
}
@media(max-width:460px){
  .homepage .overview{padding-block:60px}
  .homepage .showcase{padding-block:42px 46px}
  .homepage .showcase-screens{grid-template-columns:1fr;gap:24px;margin-top:24px}
  .homepage .darkband{padding-block:64px}
}

/* Homepage instructions use the same slate, cyan and quiet dividers as the guides. */
.homepage .home-screen-section{
  background:#26394a;
  border-top:1px solid var(--line);
  padding:82px max(7vw,28px) 90px;
  scroll-margin-top:82px;
}
.homepage .home-screen-inner{max-width:1220px;margin-inline:auto}
.homepage .home-screen-section h2{line-height:1.15}
.homepage .home-screen-intro{max-width:770px;color:var(--muted);font-size:18px;line-height:1.65;margin:0}
.homepage .home-screen-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px;margin-top:38px}
.homepage .home-screen-card{min-width:0;background:var(--cefref-blue);border:1px solid var(--line);border-radius:5px;padding:clamp(24px,3vw,40px)}
.homepage .home-screen-card h3{font-size:27px;line-height:1.25;font-weight:500;margin:0 0 5px}
.homepage .home-screen-browser{font-size:14px;font-weight:600;color:#a9e9f2;margin:0 0 25px}
.homepage .home-screen-steps{list-style:none;margin:0;padding:0}
.homepage .home-screen-steps li{display:grid;grid-template-columns:42px minmax(0,1fr);gap:16px;border-top:1px solid var(--line);padding:20px 0}
.homepage .home-screen-steps li:last-child{padding-bottom:0}
.homepage .step-number{font-size:28px;line-height:1.1;font-weight:500;color:#8cdeeb}
.homepage .home-screen-steps h4{font-size:18px;line-height:1.35;font-weight:600;margin:0 0 6px}
.homepage .home-screen-domain{color:#a9e9f2}
.homepage .home-screen-steps p{color:var(--muted);font-size:16px;line-height:1.6;margin:0}
.homepage .share-symbol{display:inline-block;vertical-align:-5px;color:#a9e9f2}
.homepage .home-screen-reassurance{color:var(--muted);font-size:16px;line-height:1.6;max-width:760px;margin:32px 0 0}
.homepage .home-screen-section .button{gap:8px;margin-top:22px}
@media(max-width:980px){
  .homepage .home-screen-section{padding-block:66px 72px}
  .homepage .home-screen-grid{grid-template-columns:1fr;gap:18px;margin-top:30px}
}
@media(max-width:460px){
  .homepage .home-screen-section{padding-inline:22px}
  .homepage .home-screen-card{padding:22px}
  .homepage .home-screen-steps li{grid-template-columns:36px minmax(0,1fr);gap:10px}
}

/* Temporarily hide these links in both desktop and mobile navigation.
   Keep the page files and link markup so they can be restored later. */
.nav nav a[href="healthcare-professionals.html"],
.nav nav a[href="research.html"]{display:none}

/* Projects uses the approved guide viewport, resampled at 2× its display width. */
.project-grid.project-join-grid{padding-bottom:48px}
.project-join-grid article{display:flex;flex-direction:column}
.project-grid .project-shot{margin:auto 0 0;padding-top:26px}
.project-grid .project-shot .shot-frame{position:relative;display:block;width:205px;max-width:100%;margin:0 auto;overflow:hidden;border:2px solid #38b0cb;border-radius:.85rem;background:#fff;box-shadow:0 .3rem 1rem rgb(13 42 64 / 35%)}
.project-grid .project-shot img{display:block;width:100%;max-width:none;height:auto;border-radius:calc(.85rem - 2px)}

/* About: restrained treatment for the two supplied badge crops. */
.about-security{
  background:var(--cefref-blue);
  border-top:1px solid var(--line);
  padding:68px max(5vw,24px) 76px;
}
.about-security-inner{max-width:960px;margin-inline:auto}
.about-security h2{color:#fff;font-size:35px;letter-spacing:-.04em;margin:12px 0 18px}
.about-security p:not(.eyebrow){color:var(--muted);font-size:17px;line-height:1.75}
.about-security-badges{
  display:flex;
  align-items:center;
  gap:clamp(16px,5vw,40px);
  margin:30px 0 26px;
}
.about-security-badges img{display:block;height:auto;max-width:100%}
.about-security-badges .cyber-badge{width:min(96px,30vw)}
.about-security-badges .ico-badge{width:min(126px,40vw)}
.about-security-links{display:flex;flex-wrap:wrap;gap:12px 28px;font-size:14px}
.about-security-links a{color:#a9e9f2;text-decoration:underline;text-underline-offset:4px}
@media(max-width:520px){
  .about-security{padding-block:60px 66px}
  .about-security h2{font-size:30px}
}

/* Public copies of the application documents: a calm, readable legal layout. */
.legal-document{background:#f6f9fb}
.legal-document .pagehero.compact{
  min-height:0;
  padding:48px max(28px,calc((100vw - 800px)/2)) 56px;
}
.legal-document .pagehero h1{font-size:clamp(40px,4.5vw,60px)}
.legal-document .pagehero p:not(.eyebrow){color:#d1e0e9;line-height:1.6}
.legal-document .legal-copy{
  max-width:800px;
  min-height:0;
  padding:56px 28px 92px;
  background:#f6f9fb;
  color:#21394c;
  font-size:17px;
  line-height:1.8;
}
.legal-document .legal-copy h2{
  color:#21394c;
  font-size:clamp(24px,2.4vw,30px);
  font-weight:600;
  letter-spacing:-.025em;
  line-height:1.3;
  margin:2.1em 0 .7em;
}
.legal-document .legal-copy h2:first-child{margin-top:0}
.legal-document .legal-copy h3{
  color:#21394c;
  font-size:21px;
  font-weight:600;
  margin:1.5em 0 .5em;
}
.legal-document .legal-copy p{color:#2d4354;line-height:1.8;margin:0 0 1.15em}
.legal-document .legal-copy address{font-style:normal;color:#2d4354;margin:0 0 1.15em}
.legal-document .legal-copy ul,
.legal-document .legal-copy ol{padding-left:1.6em;margin:.4em 0 1.35em}
.legal-document .legal-copy li{padding-left:.2em;margin:.35em 0}
.legal-document .legal-copy a{color:#126e84;text-decoration:underline;text-underline-offset:3px}
@media(max-width:520px){
  .legal-document .pagehero.compact{padding:42px 28px 48px}
  .legal-document .legal-copy{padding:44px 28px 72px;font-size:16px}
  .legal-document .legal-copy h2{margin-top:1.7em}
}
