/* 5 OR 10 — the dial. Archivo Black numerals, a hairline the thumb rides, the sum in tabular figures. */
.ft{min-height:100svh;display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center;padding:clamp(4rem,10vh,7rem) 1.5rem 5rem;gap:1.2rem}
.ft__eyebrow{margin:0 0 .4rem}
.ft__pick{display:flex;align-items:baseline;gap:clamp(.6rem,3vw,1.6rem);line-height:.85}
.ft__n{appearance:none;background:none;border:0;padding:0;cursor:pointer;font-family:var(--name);font-size:clamp(7rem,26vw,17rem);color:var(--ink);opacity:.18;letter-spacing:-.04em;transition:opacity .35s,color .35s,transform .35s;transform:translateY(0)}
.ft__n.is-on{opacity:1;color:var(--signal);transform:translateY(-.02em)}
.ft__n:focus-visible{outline:2px solid var(--signal);outline-offset:8px;border-radius:.2em}
.ft__or{font-family:var(--head);font-style:italic;font-size:clamp(1.4rem,4vw,2.6rem);color:var(--ink);opacity:.6}
.ft__dial{width:min(92vw,42rem);margin-top:.6rem}
.ft__stop{font-family:var(--head);font-style:italic;font-size:clamp(1.8rem,5vw,3.2rem);margin:0 0 .4rem;color:var(--ink)}
.ft__dial input[type=range]{-webkit-appearance:none;appearance:none;width:100%;height:40px;background:transparent;cursor:pointer;margin:0}
.ft__dial input[type=range]::-webkit-slider-runnable-track{height:1px;background:color-mix(in srgb,var(--ink) 22%,transparent)}
.ft__dial input[type=range]::-moz-range-track{height:1px;background:color-mix(in srgb,var(--ink) 22%,transparent)}
.ft__dial input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;width:28px;height:28px;border-radius:50%;background:var(--signal);border:0;margin-top:-14px;box-shadow:0 0 0 8px rgba(var(--glow),.16)}
.ft__dial input[type=range]::-moz-range-thumb{width:28px;height:28px;border-radius:50%;background:var(--signal);border:0;box-shadow:0 0 0 8px rgba(var(--glow),.16)}
.ft__marks{list-style:none;margin:.3rem 0 0;padding:0;display:flex;justify-content:space-between;font-family:var(--body);font-size:.6rem;letter-spacing:.16em;text-transform:uppercase;color:var(--ink);opacity:.5}
.ft__marks li{flex:1;text-align:center}.ft__marks li:first-child{text-align:left}.ft__marks li:last-child{text-align:right}
@media(max-width:560px){.ft__marks li:nth-child(2),.ft__marks li:nth-child(4){visibility:hidden}}
.ft__line{font-family:var(--head);font-size:clamp(1.2rem,2.6vw,1.6rem);margin:1.6rem 0 0;color:var(--ink)}
.ft__sum{margin-top:1.2rem}
.ft__is{font-family:var(--body);font-size:.95rem;margin:0;color:var(--ink);opacity:.7}.ft__is em{font-style:italic}
.ft__big{margin:.2rem 0 0;font-family:var(--name);color:var(--ink);line-height:1;font-variant-numeric:tabular-nums}
.ft__big b{font-size:clamp(4rem,14vw,9rem);letter-spacing:-.04em;color:var(--signal)}
.ft__big span{display:block;font-family:var(--head);font-style:italic;font-size:clamp(1.3rem,3.4vw,2.2rem);margin-top:.2rem}
.ft__years{display:flex;gap:clamp(1.4rem,5vw,3.5rem);justify-content:center;margin-top:1.6rem;font-variant-numeric:tabular-nums}
.ft__years i{display:block;font-style:normal;font-family:var(--body);font-size:.62rem;letter-spacing:.2em;text-transform:uppercase;opacity:.55;margin-bottom:.3rem}
.ft__years b{font-family:var(--head);font-weight:600;font-size:clamp(1.3rem,3vw,2rem);color:var(--ink)}
.ft__years[hidden]{display:none}
.ft__ask{font-family:var(--head);font-style:italic;font-size:clamp(1.6rem,4.4vw,3rem);margin:2.2rem 0 0;color:var(--ink);max-width:22ch;text-wrap:balance}
@media(prefers-reduced-motion:reduce){.ft__n{transition:none}}
/* Imagine — the numeral beside each moment, in the pink, the way the dial taught the eye. */
.fi{padding:clamp(4rem,10vh,7rem) 1.5rem;max-width:56rem;margin:0 auto}
.fi__eyebrow{text-align:center;margin-bottom:2.4rem}
.fi__row{display:grid;grid-template-columns:minmax(4.5rem,8rem) 1fr;align-items:center;gap:clamp(1rem,4vw,2.4rem);padding:1.6rem 0;border-top:1px solid color-mix(in srgb,var(--ink) 12%,transparent)}
.fi__row:last-child{border-bottom:1px solid color-mix(in srgb,var(--ink) 12%,transparent)}
.fi__n{font-family:var(--name);font-size:clamp(3.2rem,9vw,6rem);line-height:.9;letter-spacing:-.04em;color:var(--signal);text-align:right}
.fi__what{font-family:var(--head);font-size:clamp(1.25rem,2.6vw,1.75rem);line-height:1.35;margin:0;color:var(--ink);text-wrap:pretty}
/* The way in — one line for what it is for, and the plan drawn on the page. */
.ft__for{width:min(92vw,40rem);margin-top:2.4rem;display:flex;flex-direction:column;align-items:center;gap:.9rem}
.ft__for-label{font-family:var(--head);font-style:italic;font-size:clamp(1.3rem,3vw,1.9rem);color:var(--ink)}
.ft__what{width:100%;border:0;border-bottom:1px solid color-mix(in srgb,var(--ink) 30%,transparent);background:transparent;font-family:var(--head);font-size:clamp(1.4rem,3.4vw,2.1rem);line-height:1.3;text-align:center;padding:.4rem 0;resize:none;overflow:hidden;color:var(--ink);outline:none}
.ft__what:focus{border-bottom-color:var(--signal)}
.ft__what::placeholder{color:color-mix(in srgb,var(--ink) 35%,transparent)}
.ft__make{margin-top:.6rem;appearance:none;border:0;background:var(--ink);color:var(--ground);font-family:var(--body);font-size:.72rem;letter-spacing:.22em;text-transform:uppercase;padding:1.05rem 2.2rem;cursor:pointer;transition:background .25s,opacity .25s}
.ft__make:hover:not(:disabled){background:var(--signal)}.ft__make:disabled{opacity:.28;cursor:default}
.ft__plan{width:min(92vw,44rem);margin-top:2.6rem;text-align:left}
.ft__plan[hidden]{display:none}
.ft__making{text-align:center;font-family:var(--head);font-style:italic;font-size:1.2rem;color:var(--ink);opacity:.7;animation:ft-breathe 1.6s ease-in-out infinite}
@keyframes ft-breathe{0%,100%{opacity:.35}50%{opacity:.85}}
.ft__plan-title{text-align:center;margin:0 0 1.2rem}
.ft__plan-body p{font-family:var(--head);font-size:clamp(1.1rem,2.2vw,1.35rem);line-height:1.5;margin:0 0 1rem;color:var(--ink)}
.ft__plan-body p:first-child::first-letter{color:var(--signal)}
.ft__keep{display:block;margin:1.8rem auto 0;width:max-content;max-width:100%;background:var(--signal);color:var(--on-signal);text-decoration:none;font-family:var(--body);font-size:.72rem;letter-spacing:.22em;text-transform:uppercase;padding:1.1rem 2rem;text-align:center}
.ft__keep:hover{background:var(--signal-deep)}.ft__keep[hidden]{display:none}
.ft__powered{text-align:center;font-family:var(--body);font-size:.62rem;letter-spacing:.2em;text-transform:uppercase;opacity:.55;margin-top:1.4rem}.ft__powered a{color:inherit;text-decoration:none;border-bottom:1px solid currentColor}
@media(prefers-reduced-motion:reduce){.ft__making{animation:none;opacity:.7}}
/* MY 5 OR 10 — the page they hold. */
.fm{max-width:44rem;margin:0 auto;padding:clamp(4rem,10vh,7rem) 1.5rem 5rem;text-align:center}
.fm__num{font-family:var(--name);font-size:clamp(7rem,28vw,18rem);line-height:.85;letter-spacing:-.05em;color:var(--signal);margin:.4rem 0 0}
.fm__title{font-family:var(--head);font-weight:500;font-size:clamp(1.6rem,4.4vw,2.6rem);line-height:1.2;margin:.6rem 0 0;text-wrap:balance}.fm__title em{font-style:italic;color:var(--ink);opacity:.75}
.fm__plain{font-family:var(--head);font-size:1.2rem;margin:1rem auto 0;max-width:34rem}.fm__plain a{color:var(--signal);text-decoration:none;border-bottom:1px solid currentColor}
.fm__today{margin:2.6rem 0 1.4rem;display:flex;flex-direction:column;align-items:center;gap:.8rem}
.fm__did{appearance:none;border:0;background:transparent;cursor:pointer;width:clamp(9rem,36vw,12rem);height:clamp(9rem,36vw,12rem);border-radius:50%;border:2px solid var(--signal);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.3rem;color:var(--signal);transition:background .35s,color .35s,transform .35s,box-shadow .35s;box-shadow:0 0 0 0 rgba(var(--glow),.25)}
.fm__did:hover:not(:disabled){transform:scale(1.03)}
.fm__did.is-done{background:var(--signal);color:var(--on-signal);box-shadow:0 0 0 18px rgba(var(--glow),.14);cursor:default}
.fm__did-n{font-family:var(--name);font-size:clamp(3rem,12vw,4.6rem);line-height:1;letter-spacing:-.04em}
.fm__did-say{font-family:var(--body);font-size:.62rem;letter-spacing:.22em;text-transform:uppercase}
.fm__tally{font-family:var(--head);font-style:italic;font-size:1.4rem;margin:0;min-height:1.6em;color:var(--ink)}
.fm__days{list-style:none;margin:0 auto;padding:0;display:grid;grid-template-columns:repeat(7,1fr);gap:.55rem;max-width:26rem}
.fm__day{aspect-ratio:1;border-radius:50%;border:1px solid color-mix(in srgb,var(--ink) 22%,transparent);display:flex;align-items:center;justify-content:center;font-family:var(--body);font-size:.68rem;color:var(--ink);opacity:.9;transition:background .4s,color .4s,transform .4s}
.fm__day.is-done{background:var(--signal);border-color:var(--signal);color:var(--on-signal)}
.fm__day.is-today{box-shadow:0 0 0 3px rgba(var(--glow),.3)}
.fm__day.is-ahead{opacity:.28}
.fm__plan{margin:3rem auto 0;text-align:left;max-width:38rem;border-top:1px solid color-mix(in srgb,var(--ink) 12%,transparent);padding-top:1.4rem}
.fm__plan summary{cursor:pointer;font-family:var(--head);font-weight:600;font-size:clamp(1.3rem,3vw,1.8rem);list-style:none;text-align:center}
.fm__plan summary::-webkit-details-marker{display:none}
.fm__plan-body{margin-top:1rem}.fm__plan-body p{font-family:var(--head);font-size:1.15rem;line-height:1.5;margin:0 0 .9rem}
.fm__remind{margin:3.2rem auto 0;max-width:34rem;border-top:1px solid color-mix(in srgb,var(--ink) 12%,transparent);padding-top:1.6rem}
.fm__remind-head{font-family:var(--body);font-size:.62rem;letter-spacing:.22em;text-transform:uppercase;opacity:.6;margin:0 0 1rem}
.fm__remind-set{font-family:var(--head);font-size:1.25rem;margin:0}.fm__remind-set b{font-weight:600}
.fm__link{appearance:none;border:0;background:none;padding:0;font:inherit;color:var(--signal);cursor:pointer;border-bottom:1px solid currentColor}
.fm__remind-form{display:flex;flex-wrap:wrap;justify-content:center;align-items:flex-end;gap:1rem}.fm__remind-form[hidden]{display:none}
.fm__field{display:flex;flex-direction:column;align-items:flex-start;gap:.3rem;font-family:var(--body);font-size:.62rem;letter-spacing:.2em;text-transform:uppercase;opacity:.85}
.fm__field select,.fm__field input{font-family:var(--head);font-size:1.15rem;border:0;border-bottom:1px solid color-mix(in srgb,var(--ink) 30%,transparent);background:transparent;padding:.35rem 0;color:var(--ink);outline:none;min-width:11rem}
.fm__field input:focus,.fm__field select:focus{border-bottom-color:var(--signal)}
.fm__set{appearance:none;border:0;background:var(--ink);color:var(--ground);font-family:var(--body);font-size:.68rem;letter-spacing:.22em;text-transform:uppercase;padding:.95rem 1.6rem;cursor:pointer}.fm__set:hover{background:var(--signal)}
.fm__remind-said{width:100%;font-family:var(--head);font-style:italic;font-size:1.05rem;margin:.4rem 0 0;min-height:1.4em}
@media(prefers-reduced-motion:reduce){.fm__did,.fm__day{transition:none}}
.fm__how{display:flex;flex-wrap:wrap;justify-content:center;gap:.5rem;width:100%;margin-bottom:.4rem}
.fm__chip{cursor:pointer}.fm__chip input{position:absolute;opacity:0;pointer-events:none}
.fm__chip span{display:inline-block;padding:.6rem 1rem;border:1px solid color-mix(in srgb,var(--ink) 30%,transparent);font-family:var(--body);font-size:.66rem;letter-spacing:.18em;text-transform:uppercase;color:var(--ink);transition:background .25s,color .25s,border-color .25s}
.fm__chip input:checked+span{background:var(--signal);border-color:var(--signal);color:var(--on-signal)}
.fm__chip input:focus-visible+span{outline:2px solid var(--signal);outline-offset:3px}
.fm__when{display:flex;flex-wrap:wrap;justify-content:center;align-items:flex-end;gap:1rem;width:100%}.fm__when[hidden]{display:none}
.fm__field[hidden]{display:none}
.fm__zone{width:100%;font-family:var(--head);font-style:italic;font-size:1rem;opacity:.65;margin:.2rem 0 0}
/* The door — free up to here; keeping it is the price. */
.fm__plan--open{margin-top:2.4rem;border-top:0;padding-top:0}
.fm__door{margin:3rem auto 0;max-width:36rem;border-top:1px solid color-mix(in srgb,var(--ink) 12%,transparent);padding-top:1.8rem}
.fm__door-head{font-family:var(--head);font-weight:600;font-size:clamp(1.5rem,3.6vw,2.2rem);line-height:1.15;margin:0 0 .8rem;text-wrap:balance}
.fm__door-say{font-family:var(--head);font-size:1.2rem;line-height:1.5;margin:0 0 1.4rem}.fm__door-say b{font-weight:600;color:var(--signal)}
.fm__door-form{display:flex;justify-content:center;gap:1rem;flex-wrap:wrap}
.fm__door-btn{appearance:none;cursor:pointer;border:2px solid var(--signal);background:transparent;color:var(--ink);width:10rem;padding:1rem .6rem;display:flex;flex-direction:column;align-items:center;gap:.2rem;transition:background .25s,color .25s}
.fm__door-btn b{font-family:var(--name);font-size:2.4rem;line-height:1;letter-spacing:-.03em;color:var(--signal)}
.fm__door-btn span{font-family:var(--body);font-size:.62rem;letter-spacing:.22em;text-transform:uppercase}
.fm__door-btn:hover,.fm__door-btn:focus-visible{background:var(--signal);color:var(--on-signal);outline:none}.fm__door-btn:hover b,.fm__door-btn:focus-visible b{color:var(--on-signal)}
.fm__door-small{font-family:var(--head);font-style:italic;font-size:1rem;opacity:.65;margin:1.2rem 0 0}
.fm__door-said{font-family:var(--head);font-style:italic;font-size:1.05rem;color:var(--signal);margin:0 0 1rem}
/* Where the plan goes — one line, the way back. */
.ft__send{margin:1.8rem auto 0;max-width:30rem;text-align:center}.ft__send[hidden]{display:none}
.ft__send-label{display:block;font-family:var(--head);font-style:italic;font-size:1.25rem;margin-bottom:.6rem}
.ft__send-row{display:flex;gap:.6rem;justify-content:center;flex-wrap:wrap}
.ft__to{flex:1 1 14rem;font-family:var(--head);font-size:1.15rem;border:0;border-bottom:1px solid color-mix(in srgb,var(--ink) 30%,transparent);background:transparent;padding:.4rem 0;color:var(--ink);outline:none;text-align:center}.ft__to:focus{border-bottom-color:var(--signal)}
.ft__send-btn{appearance:none;border:0;background:var(--ink);color:var(--ground);font-family:var(--body);font-size:.66rem;letter-spacing:.22em;text-transform:uppercase;padding:.9rem 1.4rem;cursor:pointer}.ft__send-btn:hover{background:var(--signal)}
.ft__send-said{font-family:var(--head);font-style:italic;font-size:1.05rem;margin:.6rem 0 0;min-height:1.4em}
.fm__given{margin-top:1.8rem;padding-top:1.2rem;border-top:1px dashed color-mix(in srgb,var(--ink) 15%,transparent)}
.fm__given label{display:block;font-family:var(--head);font-style:italic;font-size:1.05rem;opacity:.75;margin-bottom:.5rem}

/* the five moments, each in its photograph (Gigi, 10 Oct 2026) */
.fi{max-width:min(1180px,100%)}
.fi__row--pic{grid-template-columns:minmax(0,1.15fr) minmax(4.5rem,7rem) minmax(0,1fr);gap:clamp(1.2rem,3.4vw,3rem);padding:clamp(1.6rem,4vw,3rem) 0}
.fi__row--pic:nth-of-type(odd){grid-template-columns:minmax(0,1fr) minmax(4.5rem,7rem) minmax(0,1.15fr)}
.fi__row--pic:nth-of-type(odd) .fi__pic{order:3}
.fi__row--pic:nth-of-type(odd) .fi__n{order:1;text-align:right}
.fi__row--pic:nth-of-type(odd) .fi__what{order:2}
.fi__row--pic .fi__n{text-align:center}
.fi__pic{display:block;aspect-ratio:4/3;overflow:hidden;border-radius:22px;box-shadow:0 34px 60px -38px rgba(var(--glow),.55),0 0 0 1px color-mix(in srgb,var(--ink) 6%,transparent)}
.fi__pic img{display:block;width:100%;height:100%;object-fit:cover;transform:scale(1.06);transition:transform 1.6s cubic-bezier(.2,.8,.2,1)}
.fi__row.in .fi__pic img{transform:none}
@media (max-width:760px){
  .fi__row--pic,.fi__row--pic:nth-of-type(odd){grid-template-columns:minmax(3.6rem,5rem) 1fr;row-gap:1rem}
  .fi__row--pic .fi__pic,.fi__row--pic:nth-of-type(odd) .fi__pic{order:0;grid-column:1/-1}
  .fi__row--pic .fi__n,.fi__row--pic:nth-of-type(odd) .fi__n{order:1;text-align:right}
  .fi__row--pic .fi__what,.fi__row--pic:nth-of-type(odd) .fi__what{order:2}
}
@media (min-width:761px){
  .fi__row--pic:nth-of-type(odd) .fi__what{order:1;text-align:right}
  .fi__row--pic:nth-of-type(odd) .fi__n{order:2;text-align:center}
  .fi__row--pic:nth-of-type(odd) .fi__pic{order:3}
}
