/* ==========================================================================
   Phase — the 10,000x brand valuation (/10000x-brand-valuation)
   The poster theme (css/home.css: palette, sticker hero, manifesto, the
   valuation card, close) plus: the Defispot story as a click-through
   timeline (js/valuation.js), why the name was worth it, and naming as
   part of branding.
   ========================================================================== */

body.dv-page{--hm-ground:var(--p-blue)}
.dv-page .hm-hero h1{font-size:clamp(3.2rem,9.4vw,9.6rem);letter-spacing:-.055em}
.dv-page .hm-hero__sub{max-width:32em;color:rgba(10,10,10,.8)}
.dv-page .hm-manifesto{
  color:#fff;
  --fl-ink:#fff;
  --fl-faint:rgba(255,255,255,.62);
  --fl-dim:rgba(255,255,255,.8);
  --fl-line-2:rgba(255,255,255,.3);
}
.dv-page .hm-manifesto .fl-lit-accent .fl-w,
.dv-page .hm-manifesto .fl-lit-accent:not(:has(.fl-w)){color:var(--p-yellow)}

/* the valuation card, borrowed from the home page */
.dv-value{padding:clamp(110px,12vw,170px) 0 clamp(60px,7vw,100px);background:var(--fl-bg)}

/* ==========================================================================
   THE STORY — a click-through timeline
   ========================================================================== */
.dv-story{padding:clamp(60px,7vw,100px) 0 clamp(100px,11vw,160px);background:var(--fl-bg);overflow-x:clip}
.dv-tl{
  position:relative;
  margin-top:clamp(30px,3.6vw,48px);
  padding:clamp(22px,3vw,40px);
  border:2px solid #0a0a0a;
  border-radius:36px;
  background:var(--fl-surface);
  box-shadow:0 8px 0 #0a0a0a;
}
.dv-tl__sticker{
  position:absolute;
  right:clamp(-26px,-2vw,-12px);
  top:clamp(-46px,-3.4vw,-26px);
  z-index:3;
  width:clamp(76px,8vw,116px);
  height:auto;
  transform:rotate(12deg);
  filter:drop-shadow(0 14px 18px rgba(10,10,10,.22));
  pointer-events:none;
}

/* the track: eight stops, a line that fills to the current one */
.dv-tl__track{position:relative;margin:clamp(6px,1vw,14px) 0 0;padding:0 2%}
.dv-tl__line{position:absolute;left:calc(2% + 14px);right:calc(2% + 14px);top:14px;height:4px;border-radius:2px;background:rgba(10,10,10,.12)}
.dv-tl__line i{display:block;height:100%;width:calc(var(--p,0) * 100%);border-radius:2px;background:#0a0a0a;transition:width .6s var(--fl-ease)}
.dv-tl__stops{position:relative;display:flex;justify-content:space-between}
.dv-tl__stop{
  position:relative;
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:10px;
  width:28px;
  padding:0;
  border:0;
  background:none;
  font:inherit;
  color:inherit;
  cursor:pointer;
}
.dv-tl__stop b{
  display:grid;
  place-items:center;
  width:32px;
  height:32px;
  margin-top:-2px;
  border:3px solid #0a0a0a;
  border-radius:50%;
  font-family:var(--fl-mono);
  font-size:.66rem;
  font-weight:500;
  color:#0a0a0a;
  background:var(--fl-surface);
  transition:background-color .3s,transform .4s cubic-bezier(.3,1.6,.5,1),color .3s;
}
.dv-tl__stop.is-past b{background:#0a0a0a;color:#fff}
.dv-tl__stop.is-on b{background:var(--c);color:var(--fg,#0a0a0a);transform:scale(1.28)}
.dv-tl__stop:hover b{transform:scale(1.18)}
.dv-tl__stop.is-on:hover b{transform:scale(1.28)}
.dv-tl__stop:focus-visible{outline:none}
.dv-tl__stop:focus-visible b{box-shadow:0 0 0 4px var(--fl-surface),0 0 0 7px var(--p-blue)}
.dv-tl__stop em{font-style:normal;font-family:var(--fl-mono);font-size:.68rem;letter-spacing:.1em;white-space:nowrap;color:var(--fl-faint)}
.dv-tl__stop.is-on em{color:#0a0a0a}

/* the moment: its card, and the value curve beside it */
.dv-tl__body{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,.75fr);gap:clamp(20px,3vw,44px);margin-top:clamp(28px,3.4vw,46px)}
.dv-tl__panels{position:relative;display:grid}
.dv-entry{
  grid-area:1 / 1;
  padding:clamp(22px,2.8vw,36px);
  border-radius:26px;
  color:var(--fg,#0a0a0a);
  background:var(--c);
}
.js .dv-entry{opacity:0;visibility:hidden;transform:translateY(14px);transition:opacity .45s var(--fl-ease),transform .45s var(--fl-ease),visibility 0s .45s}
.js .dv-entry.is-on{opacity:1;visibility:visible;transform:none;transition:opacity .45s var(--fl-ease),transform .45s var(--fl-ease),visibility 0s}
.dv-entry__date{font-family:var(--fl-mono);font-size:.74rem;letter-spacing:.16em;text-transform:uppercase;opacity:.8}
.dv-entry h3{margin-top:12px;font-size:clamp(1.8rem,3.2vw,2.9rem);font-weight:600;letter-spacing:-.04em;line-height:1}
.dv-entry p{max-width:52ch;margin-top:16px;font-size:clamp(1.02rem,1.25vw,1.15rem);line-height:1.6;color:inherit}
.dv-entry__note{display:inline-block;margin-top:18px;padding:6px 13px;border:2px solid currentColor;border-radius:var(--radius-pill);font-size:.84rem;font-weight:600}

.dv-meter{
  display:flex;
  flex-direction:column;
  padding:clamp(18px,2vw,26px);
  border-radius:26px;
  background:var(--fl-bg-2);
}
.dv-meter__k{font-family:var(--fl-mono);font-size:.72rem;letter-spacing:.16em;text-transform:uppercase;color:var(--fl-faint)}
.dv-meter__v{margin-top:8px;color:#0a0a0a;font-size:clamp(2rem,3.6vw,3.2rem);font-weight:600;letter-spacing:-.05em;line-height:1}
.dv-meter__s{margin-top:6px;font-size:.88rem;color:var(--fl-dim)}
.dv-meter svg{display:block;width:100%;height:auto;margin-top:auto;padding-top:14px;overflow:visible}
.dv-meter__base{stroke:#0a0a0a;stroke-width:2.5}
.dv-meter__curve{fill:none;stroke:rgba(10,10,10,.18);stroke-width:7;stroke-linecap:round}
.dv-meter__trail{fill:none;stroke:#0a0a0a;stroke-width:7;stroke-linecap:round;transition:stroke-dashoffset .7s var(--fl-ease)}
.dv-meter__dot{fill:var(--p-red);stroke:#0a0a0a;stroke-width:4;transition:transform .7s var(--fl-ease)}

.dv-tl__nav{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-top:clamp(20px,2.4vw,30px)}
.dv-tl__count{font-family:var(--fl-mono);font-size:.8rem;letter-spacing:.14em;color:var(--fl-faint)}
.dv-tl__count b{color:#0a0a0a;font-weight:500}
.dv-tl__btns{display:flex;gap:10px}
.dv-tl__btn{
  display:inline-flex;
  align-items:center;
  gap:8px;
  height:46px;
  padding:0 20px;
  border:2px solid #0a0a0a;
  border-radius:var(--radius-pill);
  font:inherit;
  font-weight:600;
  font-size:.95rem;
  color:#0a0a0a;
  background:var(--fl-surface);
  box-shadow:0 4px 0 #0a0a0a;
  cursor:pointer;
  transition:transform .25s var(--fl-ease),box-shadow .25s var(--fl-ease),opacity .25s;
}
.dv-tl__btn--next{color:#fff;background:#0a0a0a}
.dv-tl__btn svg{width:16px;height:16px}
.dv-tl__btn:hover{transform:translateY(-2px);box-shadow:0 6px 0 #0a0a0a}
.dv-tl__btn:active{transform:translateY(2px);box-shadow:0 2px 0 #0a0a0a}
.dv-tl__btn:disabled{opacity:.35;cursor:default;transform:none;box-shadow:0 4px 0 #0a0a0a}
.dv-tl__hint{font-size:.84rem;color:var(--fl-faint)}

/* without JS: the moments as a plain list, no controls */
html:not(.js) .dv-tl__track,
html:not(.js) .dv-tl__nav,
html:not(.js) .dv-meter{display:none}
html:not(.js) .dv-tl__body{grid-template-columns:1fr}
html:not(.js) .dv-tl__panels{gap:14px}
html:not(.js) .dv-entry{grid-area:auto}

/* ==========================================================================
   WHY THE NAME WAS WORTH IT
   ========================================================================== */
.dv-why{padding:clamp(100px,11vw,160px) 0;background:var(--fl-bg-2)}
.dv-why__grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(14px,1.8vw,24px);margin-top:clamp(30px,3.6vw,48px)}
.dv-why__card{
  position:relative;
  min-height:clamp(230px,22vw,300px);
  padding:clamp(22px,2.4vw,32px);
  border-radius:28px;
  color:var(--fg,#0a0a0a);
  background:var(--c);
  overflow:hidden;
}
.dv-why__n{font-family:var(--fl-mono);font-size:.74rem;letter-spacing:.16em;opacity:.75}
.dv-why__card h3{margin-top:clamp(40px,5vw,80px);font-size:clamp(1.5rem,2.2vw,2rem);font-weight:600;letter-spacing:-.03em;line-height:1.05}
.dv-why__card p{margin-top:12px;line-height:1.55;color:inherit;opacity:.86}
.dv-why__name{font-weight:700}
.dv-why__name span{opacity:.55}

/* ==========================================================================
   NAMING IS BRANDING
   ========================================================================== */
.dv-naming{padding:clamp(110px,12vw,170px) 0;background:var(--fl-bg);overflow-x:clip}
.dv-naming__grid{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr);gap:clamp(36px,6vw,100px);align-items:center}
.dv-naming__copy p{max-width:52ch;margin-top:18px;font-size:1.06rem;line-height:1.65;color:var(--fl-dim)}
.dv-naming__copy .fl-actions{margin-top:clamp(24px,3vw,34px)}
.dv-check{
  position:relative;
  padding:clamp(24px,3vw,40px);
  border:2px solid #0a0a0a;
  border-radius:30px;
  background:var(--p-yellow);
  box-shadow:0 8px 0 #0a0a0a;
  transform:rotate(1.5deg);
}
.dv-check__sticker{position:absolute;right:clamp(-30px,-2.2vw,-14px);top:clamp(-46px,-3.4vw,-28px);width:clamp(70px,7vw,100px);height:auto;transform:rotate(14deg);filter:drop-shadow(0 12px 16px rgba(10,10,10,.22))}
.dv-check__k{font-family:var(--fl-mono);font-size:.74rem;letter-spacing:.16em;text-transform:uppercase}
.dv-check ul{margin-top:16px}
.dv-check li{position:relative;padding:12px 0 12px 34px;border-top:2px solid rgba(10,10,10,.14);font-weight:600;font-size:1.05rem;line-height:1.35}
.dv-check li:first-child{border-top:0}
.dv-check li::before{
  content:"";
  position:absolute;
  left:0;
  top:13px;
  width:20px;
  height:20px;
  border:2.5px solid #0a0a0a;
  border-radius:50%;
  background:#fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M4 8.5 7 11l5-6' fill='none' stroke='%230a0a0a' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center/14px no-repeat;
}
.dv-check li span{display:block;margin-top:3px;font-weight:400;font-size:.9rem;color:rgba(10,10,10,.72)}

.dv-cta .fl-cta__title{max-width:12ch}

/* ==========================================================================
   Responsive
   ========================================================================== */
@media (max-width:900px){
  .dv-tl__body{grid-template-columns:minmax(0,1fr)}
  .dv-meter{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:end;column-gap:16px}
  .dv-meter svg{grid-column:2;grid-row:1 / span 3;padding-top:0}
  .dv-why__grid{grid-template-columns:minmax(0,1fr)}
  .dv-why__card{min-height:0}
  .dv-why__card h3{margin-top:28px}
  .dv-naming__grid{grid-template-columns:minmax(0,1fr)}
}
@media (max-width:640px){
  .dv-tl{padding:20px 16px 18px;border-radius:28px}
  .dv-tl__track{padding:0}
  .dv-tl__line{left:12px;right:12px;top:12px}
  .dv-tl__stop{width:24px}
  .dv-tl__stop b{width:26px;height:26px;border-width:2.5px;font-size:.58rem}
  .dv-tl__stop em{display:none}
  .dv-tl__stop.is-on em{display:block;position:absolute;top:36px;left:50%;translate:-50% 0}
  .dv-tl__stop:first-child.is-on em{left:0;translate:0 0}
  .dv-tl__stop:last-child.is-on em{left:auto;right:0;translate:0 0}
  .dv-tl__body{margin-top:40px}
  .dv-tl__hint{display:none}
  .dv-tl__btn{height:44px;padding:0 16px}
  .dv-tl__btn span{display:none}
  .dv-meter{grid-template-columns:minmax(0,1fr) 46%}
  .dv-check__sticker{right:-8px}
}
@media (prefers-reduced-motion:reduce){
  .js .dv-entry,.js .dv-entry.is-on{transition:none}
  .dv-tl__line i,.dv-meter__trail,.dv-meter__dot{transition:none}
}
