:root{--paper: #faf8f3;--ink: #22423a;--ink-soft: #45635b;--pine: #2e6e5e;--pine-deep: #1f4c41;--pine-tint: #e7efec;--parchment: #f5efe3;--parchment-line: #e3d9c3;--gold: #c9a227;--card: #ffffff;--card-line: #e4e0d6;--radius: 14px;--shadow: 0 1px 3px rgba(34, 66, 58, .08), 0 6px 18px rgba(34, 66, 58, .06);--font-display: "Fraunces", Georgia, serif;--font-body: "Atkinson Hyperlegible", system-ui, sans-serif}*{box-sizing:border-box}html,body,#root{min-height:100%}body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--font-body);font-size:19px;line-height:1.55;-webkit-font-smoothing:antialiased}.shell{min-height:100vh;display:flex;flex-direction:column}.header{display:flex;align-items:baseline;justify-content:space-between;gap:12px;padding:18px 22px;max-width:1060px;width:100%;margin:0 auto}.brand{font-family:var(--font-display);font-weight:600;font-size:20px;color:var(--pine-deep);letter-spacing:.01em}.brand small{display:block;font-family:var(--font-body);font-weight:400;font-size:13px;color:var(--ink-soft);letter-spacing:.02em}.phone-reassure{font-size:14.5px;color:var(--ink-soft);text-align:right;line-height:1.35}.phone-reassure strong{color:var(--pine-deep);white-space:nowrap}.main{flex:1;width:100%;max-width:1060px;margin:0 auto;padding:8px 22px 56px;display:grid;grid-template-columns:1fr;gap:26px}@media (min-width: 960px){.main.with-rail{grid-template-columns:250px minmax(0,640px);justify-content:center}}.tracker{align-self:start}.tracker-title{font-size:13px;text-transform:uppercase;letter-spacing:.09em;color:var(--ink-soft);margin:6px 0 10px}.tracker-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}.tracker-item{display:flex;align-items:center;gap:10px;font-size:16px;color:var(--ink-soft);padding:8px 12px;border-radius:10px;transition:background .3s ease,color .3s ease}.tracker-item.current{background:var(--pine-tint);color:var(--pine-deep);font-weight:700}.tracker-item.complete{color:var(--ink)}.tracker-check{width:22px;height:22px;flex:none;border-radius:50%;border:2px solid var(--card-line);display:inline-flex;align-items:center;justify-content:center;font-size:13px;background:var(--card);transition:all .35s ease}.tracker-item.complete .tracker-check{background:var(--gold);border-color:var(--gold);color:#fff;transform:scale(1.05)}.tracker-item.current .tracker-check{border-color:var(--pine)}@media (max-width: 959px){.tracker-list{flex-direction:row;flex-wrap:wrap;gap:6px}.tracker-item{font-size:13.5px;padding:6px 10px;background:var(--card);border:1px solid var(--card-line)}.tracker-item.current{border-color:var(--pine)}.tracker-check{width:17px;height:17px;font-size:10px}}.stage{min-height:420px}.q-prompt{font-family:var(--font-display);font-weight:500;font-size:clamp(26px,4.6vw,33px);line-height:1.25;margin:6px 0;color:var(--ink)}.q-helper{color:var(--ink-soft);font-size:17px;margin:0 0 14px}.why-link{background:none;border:none;padding:0;font-family:var(--font-body);font-size:15.5px;color:var(--pine);text-decoration:underline;text-underline-offset:3px;cursor:pointer;margin-bottom:14px}.why-reveal{background:var(--pine-tint);border-radius:10px;padding:12px 16px;font-size:16px;color:var(--pine-deep);margin:0 0 16px;animation:fadeIn .3s ease}.options{display:flex;flex-direction:column;gap:12px;margin-top:14px}.option-card{text-align:left;font-family:var(--font-body);font-size:18.5px;line-height:1.4;color:var(--ink);background:var(--card);border:2px solid var(--card-line);border-radius:var(--radius);box-shadow:var(--shadow);padding:17px 20px;cursor:pointer;transition:border-color .2s ease,transform .15s ease,background .2s ease}.option-card:hover{border-color:var(--pine);transform:translateY(-1px)}.option-card:focus-visible{outline:3px solid var(--gold);outline-offset:2px}.option-card.selected{border-color:var(--pine);background:var(--pine-tint);color:var(--pine-deep);font-weight:700}.option-card:disabled{cursor:default;opacity:.75}.option-card.selected:disabled{opacity:1}.aside{margin-top:22px;padding-top:14px;border-top:3px solid var(--pine);max-width:480px;font-family:var(--font-display);font-style:italic;font-size:19.5px;color:var(--pine-deep);animation:riseIn .45s ease}.moment{margin-top:20px;background:var(--parchment);border:1px solid var(--parchment-line);border-radius:var(--radius);padding:20px 22px;animation:riseIn .5s ease}.moment-eyebrow{display:flex;align-items:center;gap:8px;font-size:13px;text-transform:uppercase;letter-spacing:.09em;color:var(--pine);font-weight:700;margin-bottom:8px}.moment-eyebrow:before{content:"✳";color:var(--gold);font-size:15px}.moment-title{font-family:var(--font-display);font-size:21px;font-weight:600;margin:0 0 8px}.moment-body{font-size:17.5px;margin:0}.moment-body .validate{font-style:italic;color:var(--ink-soft)}.moment-continue{margin-top:16px;font-family:var(--font-body);font-weight:700;font-size:17px;color:#fff;background:var(--pine);border:none;border-radius:999px;padding:12px 26px;cursor:pointer;transition:background .2s ease}.moment-continue:hover{background:var(--pine-deep)}.moment-continue:focus-visible{outline:3px solid var(--gold);outline-offset:2px}.input-row{display:flex;gap:12px;flex-wrap:wrap;margin-top:14px}select,input[type=text],textarea{font-family:var(--font-body);font-size:18.5px;color:var(--ink);background:var(--card);border:2px solid var(--card-line);border-radius:12px;padding:13px 16px}select:focus-visible,input:focus-visible,textarea:focus-visible{outline:3px solid var(--gold);outline-offset:1px;border-color:var(--pine)}textarea{width:100%;min-height:120px;resize:vertical}.btn{font-family:var(--font-body);font-weight:700;font-size:18px;color:#fff;background:var(--pine);border:none;border-radius:999px;padding:14px 30px;cursor:pointer;transition:background .2s ease,transform .15s ease}.btn:hover{background:var(--pine-deep);transform:translateY(-1px)}.btn:focus-visible{outline:3px solid var(--gold);outline-offset:2px}.btn.secondary{background:transparent;color:var(--pine-deep);border:2px solid var(--pine)}.btn.quiet{background:none;border:none;color:var(--ink-soft);font-weight:400;text-decoration:underline;text-underline-offset:3px;padding:10px 8px}.btn:disabled{opacity:.5;cursor:default;transform:none}.btn-row{display:flex;align-items:center;gap:14px;margin-top:20px;flex-wrap:wrap}.back-link{background:none;border:none;cursor:pointer;font-family:var(--font-body);font-size:15.5px;color:var(--ink-soft);padding:4px 0;margin-bottom:10px}.back-link:hover{color:var(--pine-deep)}.ceremony{max-width:620px;margin:4vh auto 0;text-align:left;animation:fadeIn .5s ease}.ceremony h1,.ceremony h2{font-family:var(--font-display);font-weight:600;font-size:clamp(30px,5.5vw,42px);line-height:1.18;margin:10px 0 16px}.ceremony p{font-size:19px;margin:0 0 14px}.eyebrow{font-size:13.5px;text-transform:uppercase;letter-spacing:.1em;color:var(--pine);font-weight:700}.countdown-box{background:var(--card);border:2px solid var(--pine);border-radius:var(--radius);box-shadow:var(--shadow);padding:26px 28px;margin:22px 0}.countdown-number{font-family:var(--font-display);font-size:clamp(46px,9vw,68px);font-weight:600;color:var(--pine-deep);line-height:1}.countdown-label{font-size:17.5px;color:var(--ink-soft);margin-top:8px}.reassure-line{font-family:var(--font-display);font-style:italic;font-size:21px;color:var(--pine-deep)}.review-panel{margin-top:26px;background:var(--card);border:1px dashed var(--card-line);border-radius:var(--radius);padding:20px 22px;font-size:15.5px}.review-panel h3{font-family:var(--font-display);margin:0 0 4px;font-size:18px}.review-panel .tag{display:inline-block;background:var(--pine-tint);color:var(--pine-deep);border-radius:999px;padding:3px 12px;margin:3px 4px 3px 0;font-size:14px}.review-panel dt{font-weight:700;margin-top:10px}.review-panel dd{margin:2px 0 0}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes riseIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}.enter{animation:riseIn .4s ease}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation:none!important;transition:none!important}}.reveal-wait{text-align:center;padding-top:14vh}.plan{max-width:760px;margin:0 auto;grid-column:1 / -1}.fridge{background:var(--card);border:2px solid var(--pine);border-radius:var(--radius);box-shadow:var(--shadow);padding:30px 32px;margin-bottom:34px}.fridge-head{display:flex;justify-content:space-between;gap:18px;align-items:flex-start;flex-wrap:wrap}.fridge-title{font-family:var(--font-display);font-size:clamp(27px,4.5vw,36px);font-weight:600;margin:6px 0 10px;line-height:1.15}.fridge-brand{text-align:right;font-family:var(--font-display);font-weight:600;color:var(--pine-deep);font-size:17px;line-height:1.35}.fridge-brand span{font-family:var(--font-body);font-weight:400;font-size:13px;color:var(--ink-soft)}.fridge-countdown{margin:20px 0}.countdown-unit{font-size:.45em;font-weight:500;color:var(--ink-soft)}.section-label{font-size:13px;text-transform:uppercase;letter-spacing:.09em;color:var(--pine);font-weight:700;margin:0 0 10px}.key-dates{margin:22px 0}.key-date{display:flex;gap:16px;padding:10px 0;border-top:1px solid var(--card-line)}.key-date:first-of-type{border-top:none}.key-date-when{flex:0 0 200px;font-weight:700;color:var(--pine-deep)}.key-date-what{flex:1;font-size:17px}@media (max-width: 640px){.key-date{flex-direction:column;gap:2px}.key-date-when{flex:none}}.next-action{background:var(--pine-tint);border-radius:12px;padding:18px 22px;margin:22px 0}.next-action h3{font-family:var(--font-display);font-size:22px;margin:0 0 8px}.next-action p{margin:0;font-size:17.5px}.conf-strip{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin-top:22px}@media (max-width: 640px){.conf-strip{grid-template-columns:1fr}}.conf-strip ul{list-style:none;margin:0;padding:0;font-size:16px}.conf-strip li{padding:4px 0}.conf{display:inline-block;font-size:13px;font-weight:700;border-radius:999px;padding:2px 10px;white-space:nowrap;vertical-align:middle}.conf-locked{background:var(--pine-tint);color:var(--pine-deep)}.conf-talk{background:var(--parchment);color:#6b5a2e;border:1px solid var(--parchment-line)}.print-cta{display:flex;align-items:center;gap:14px;margin-top:24px;flex-wrap:wrap}.plan-section{margin:0 0 34px}.plan-section h2{font-family:var(--font-display);font-size:25px;font-weight:600;margin:0 0 12px;padding-bottom:6px;border-bottom:2px solid var(--pine-tint)}.plan-section p{font-size:18px;margin:0 0 12px}.roomy li{margin-bottom:10px;font-size:17.5px}.worry-answer{background:var(--parchment);border:1px solid var(--parchment-line);border-radius:12px;padding:16px 20px;margin-top:6px}.worry-q{font-family:var(--font-display);font-style:italic;color:var(--pine-deep);margin-bottom:8px}.tl-row{display:flex;gap:16px;padding:12px 0;border-top:1px solid var(--card-line)}.tl-row:first-of-type{border-top:none}.tl-when{flex:0 0 210px;font-weight:700;color:var(--pine-deep)}.tl-what{flex:1;font-size:17.5px}@media (max-width: 640px){.tl-row{flex-direction:column;gap:3px}.tl-when{flex:none}}.decision{background:var(--card);border:1px solid var(--card-line);border-radius:12px;padding:16px 20px;margin-bottom:14px}.decision h3{font-family:var(--font-display);font-size:20px;margin:0 0 8px}.decision p{font-size:16.5px;margin:0 0 8px}.uplift{font-family:var(--font-display);font-style:italic;color:var(--pine-deep)}.remember ol{padding-left:22px}.remember li{font-size:18px;font-weight:700;color:var(--pine-deep)}.invitation{background:var(--card);border:1px solid var(--card-line);border-radius:var(--radius);padding:26px 28px}.invitation-lead{font-family:var(--font-display);font-size:22px;color:var(--pine-deep);margin-bottom:12px}@media print{:root{--paper: #fff}body{font-size:12.5pt;background:#fff}.header .phone-reassure,.screen-only,.back-link,.tracker{display:none!important}.header{padding:0 0 10px}.main{padding:0;display:block}.plan{max-width:none}.fridge{border:2.5pt solid var(--pine);box-shadow:none;page-break-after:always;padding:20pt 22pt}.countdown-box{box-shadow:none}.plan-section{page-break-inside:avoid;margin-bottom:20pt}.decision,.tl-row,.key-date,.moment{page-break-inside:avoid}.conf{border:.75pt solid var(--pine)}a{text-decoration:none;color:inherit}}.keepit{margin-top:24px;padding:20px 22px;background:var(--parchment);border:1px solid var(--parchment-line);border-radius:12px}.keepit .input-row input{flex:1;min-width:200px}.keepit-done{margin:0;font-size:17px;color:var(--pine-deep);font-weight:700}
