body.welcome-active{background:#f7f7f5;color:#142520}body.welcome-active .header,body.welcome-active .demo-note{display:none}body.welcome-active .shell{max-width:560px;padding:0 20px}body.welcome-active #main{padding:0;min-height:100dvh}.welcome-screen{min-height:100dvh;padding:calc(14px + env(safe-area-inset-top)) 0 0;animation:welcome-enter .28s ease both}.welcome-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:24px}.welcome-top>button{border:0;background:transparent;color:#6b7772;font-size:38px;width:44px;height:44px}.welcome-step-count{font-size:12px;color:#758079;letter-spacing:1px}.welcome-ring{width:30px;height:30px;border-radius:50%;background:conic-gradient(#4a9c83 var(--progress),#e2e6df 0);position:relative}.welcome-ring:after{content:'';position:absolute;inset:4px;background:#f7f7f5;border-radius:50%}.welcome-question{display:flex;gap:10px;align-items:flex-start;margin-bottom:24px}.welcome-question>img{width:46px;height:50px;object-fit:cover;object-position:50% 15%;border-radius:50%;flex-shrink:0}.welcome-question>div{border-radius:22px 22px 22px 5px;background:white;padding:18px 20px;box-shadow:0 3px 14px #17382b05;flex:1}.welcome-question h1{font-size:23px;line-height:1.18;letter-spacing:-.8px;margin:0}.welcome-question p{font-size:14px;line-height:1.5;color:#748078;margin:8px 0 0}.welcome-screen form{display:flex;flex-direction:column;min-height:calc(100dvh - 205px)}.welcome-body{flex:1;display:flex;flex-direction:column;justify-content:center;gap:14px;padding-bottom:22px}.welcome-choices{display:grid;gap:10px;border:0;padding:0;margin:0}.welcome-choice{position:relative;display:flex;gap:12px;align-items:center;padding:18px 16px;border-radius:22px;background:#fff;border:1.5px solid transparent;min-height:64px;cursor:pointer;transition:background .2s,border-color .2s,transform .18s}.welcome-choice:has(input:checked){background:#e1f2e8;border-color:#64a88b}.welcome-choice:active{transform:scale(1.025)}.welcome-choice input{position:absolute;inset:0;opacity:0;width:100%;height:100%;cursor:pointer}.welcome-choice:focus-within{outline:3px solid #497dba;outline-offset:2px}.welcome-choice-symbol{color:#6c9c87;font-size:22px;min-width:24px}.welcome-choice>span:nth-of-type(2){flex:1;font-size:15px;font-weight:600;line-height:1.35}.welcome-choice-check{width:17px;height:17px;border:1.4px solid #b9c2ba;border-radius:50%;flex-shrink:0}.welcome-choice:has(input:checked) .welcome-choice-check{background:#438d71;border-color:#438d71;box-shadow:inset 0 0 0 4px #e1f2e8}.welcome-equipment{grid-template-columns:1fr 1fr}.welcome-equipment .welcome-choice{flex-wrap:wrap;min-height:100px}.welcome-equipment .welcome-choice-symbol{display:block;width:100%}.welcome-equipment .welcome-choice>span:nth-of-type(2){font-size:13px}.welcome-bottom{position:sticky;bottom:0;z-index:2;background:linear-gradient(transparent,#f7f7f5 16%);padding:20px 0 calc(20px + env(safe-area-inset-bottom));text-align:center}.welcome-continue{width:100%;border-radius:999px!important;background:linear-gradient(100deg,#6ebc87,#72d4bd)!important;color:#113a2c!important;min-height:56px;box-shadow:0 6px 18px #4e9c7025!important;border:0!important;display:flex;align-items:center;justify-content:center;gap:10px;transition:transform .16s!important}.welcome-continue:active{transform:scale(1.03)!important}.welcome-continue svg{width:20px}.welcome-bottom [role=status]{font-size:14px;color:#994929;margin:0 0 8px}.welcome-name,.welcome-screen textarea,.welcome-date input{width:100%;padding:20px;border:1px solid #e1e7df;background:#fff;border-radius:22px;font:inherit}.welcome-screen label{font-size:15px}.welcome-house-number{font-size:64px;font-weight:750;letter-spacing:-3px;line-height:1.2;text-align:center}.welcome-center{text-align:center;color:#7b827c;margin:0 0 20px}.welcome-counter{display:flex;align-items:center;justify-content:space-between;background:#fff;padding:16px;border-radius:20px}.welcome-counter>span{display:flex;align-items:center;gap:6px}.welcome-counter input{width:42px;text-align:center;border:0;background:transparent;appearance:textfield}.welcome-counter button{width:36px;height:36px;border-radius:50%;border:1px solid #e4e9e3;background:white;color:#46906f;font-size:22px}.welcome-screen input[type=range]{width:100%;accent-color:#4b9c7b;margin-top:16px}.welcome-range-labels{display:flex;justify-content:space-between;color:#889084;font-size:13px}.welcome-units{display:flex;gap:6px;justify-content:center}.welcome-units button{border:0;background:#e8ece5;color:#738073;padding:10px 18px;border-radius:999px}.welcome-units button[aria-pressed=true]{background:#d0e8d9;color:#285e45}.welcome-measure{display:flex;justify-content:center;align-items:baseline;gap:8px;margin:40px 0 8px}.welcome-measure input{font-size:64px;font-weight:700;letter-spacing:-3px;max-width:230px;width:65%;padding:0;text-align:center;border:0;border-bottom:2px solid #d7e2d8;background:transparent;color:#162b21;appearance:textfield}.welcome-measure span{font-size:20px;color:#7e8b80}.welcome-hint{text-align:center;font-size:12px;color:#758074;line-height:1.5;margin:6px 0}.welcome-scene{max-height:330px;max-width:100%;object-fit:contain;mix-blend-mode:multiply;border-radius:32px;align-self:center}.welcome-scene-screen{background:radial-gradient(at 10% 35%,#dcefd6,transparent 65%),radial-gradient(at 90% 65%,#e1f5ed,transparent 55%)}.welcome-scene-screen .welcome-question>div{background:transparent;box-shadow:none;text-align:center}.welcome-scene-screen .welcome-question>img{display:none}.welcome-scene-screen .welcome-question h1{font-size:33px}.welcome-baseline{display:grid;grid-template-columns:repeat(3,1fr);background:white;border-radius:28px;padding:20px;gap:10px}.welcome-baseline>div{background:#f1f4ed;padding:12px;border-radius:16px}.welcome-baseline small,.welcome-baseline strong{display:block}.welcome-baseline strong{font-size:18px;margin-top:6px}.welcome-baseline p{grid-column:1/-1;color:#758074;font-size:14px;line-height:1.5}.welcome-commit-art{height:170px;object-fit:contain;mix-blend-mode:multiply}#welcome-signature{background:#e6f5e7;width:100%;height:160px;border:1px solid #92b59d;border-radius:22px;touch-action:none}.welcome-consent{display:flex;gap:10px;align-items:flex-start;font-size:13px!important;line-height:1.6;text-align:left}.welcome-consent input{margin-top:4px;accent-color:#4a9475;flex-shrink:0;width:18px;height:18px}.welcome-recap{display:grid;gap:10px}.welcome-recap>div{border-radius:18px;background:white;padding:14px 18px}.welcome-recap small,.welcome-recap strong{display:block}.welcome-recap small{color:#7e8a80;font-size:12px;margin-bottom:3px}.welcome-recap strong{font-size:15px}.welcome-food-art{height:100px;object-fit:contain}.welcome-daily-note{padding:24px;margin:24px 0;background:#e8f1e9;border-radius:24px}.welcome-daily-note h2{font-size:23px}.welcome-daily-note p{line-height:1.6;color:#5f7368}@keyframes welcome-enter{from{opacity:.2;transform:translateX(12px)}to{opacity:1;transform:none}}@media(prefers-reduced-motion:reduce){.welcome-screen{animation:none}.welcome-choice,.welcome-continue{transition:none!important}}.grub-reduce-motion .welcome-screen{animation:none}

/* Semantic Phosphor duotone badges, with the same optical size throughout. */
.welcome-choice-symbol{display:grid;place-items:center;min-width:42px;width:42px;height:42px;flex:0 0 42px;border-radius:14px;background:#e9f3ed;color:#417b67;font-size:initial}.welcome-choice-symbol svg{display:block;width:28px;height:28px;fill:currentColor;overflow:visible}.welcome-choice-symbol.welcome-tone-1{background:#fbe9df;color:#bb7353}.welcome-choice-symbol.welcome-tone-2{background:#eeebf7;color:#8b7aa7}.welcome-choice-symbol.welcome-tone-3{background:#f6efda;color:#a68a43}.welcome-choice:has(input:checked) .welcome-choice-symbol{background:#d2eadc;color:#337759}.welcome-choice>span:nth-of-type(2){font-weight:550}.welcome-equipment .welcome-choice{gap:12px;align-content:space-between}.welcome-equipment .welcome-choice-symbol{display:grid;width:52px;height:52px;flex-basis:52px;border-radius:17px}.welcome-equipment .welcome-choice-symbol svg{width:34px;height:34px}.welcome-equipment .welcome-choice>span:nth-of-type(2){flex-basis:calc(100% - 30px)}.welcome-choice{padding:14px 16px}.welcome-equipment .welcome-choice{padding:18px 16px;min-height:124px}
/* Physical measurement pickers: native touch momentum, virtual labels, fine keyboard control. */
.welcome-rolling{width:100%;margin:14px auto 4px;max-width:420px}.rolling-window{position:relative;width:100%;isolation:isolate}.rolling-scroll{position:relative;overflow-anchor:none;scrollbar-width:none;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;outline-offset:5px}.rolling-scroll::-webkit-scrollbar{display:none}.rolling-scroll:focus-visible{outline:2px solid #4b9877;border-radius:16px}.rolling-content{position:relative;overflow-anchor:none}.rolling-labels{position:absolute;inset:0;pointer-events:none}.rolling-vertical .rolling-scroll{height:240px;overflow-y:auto;overflow-x:hidden;touch-action:pan-y;mask-image:linear-gradient(transparent,#000 28%,#000 72%,transparent)}.rolling-row{position:absolute;left:0;width:100%;height:48px;display:flex;align-items:center;justify-content:center;font-size:30px;letter-spacing:-1px;font-weight:550;color:#7c8a7f;pointer-events:auto;cursor:pointer;user-select:none}.rolling-row span{font-size:17px;margin-left:8px;font-weight:400}.rolling-row.is-selected{font-size:38px;font-weight:750;color:#192d23}.rolling-vertical .rolling-marker{position:absolute;left:18%;right:18%;top:96px;height:48px;z-index:-1;background:#e4eee5;border-radius:15px;border-top:1px solid #d3e0d4;border-bottom:1px solid #d3e0d4;pointer-events:none}.rolling-value{display:flex;align-items:baseline;justify-content:center;gap:10px;margin-bottom:18px;letter-spacing:-2px}.rolling-value output{font-size:68px;font-weight:750;line-height:1.1}.rolling-value span{font-size:21px;color:#7b8b7f;letter-spacing:0}.rolling-horizontal .rolling-scroll{overflow-x:auto;overflow-y:hidden;height:116px;touch-action:pan-x;cursor:grab;mask-image:linear-gradient(90deg,transparent,#000 18%,#000 82%,transparent)}.rolling-horizontal .rolling-scroll:active{cursor:grabbing}.rolling-horizontal .rolling-content{height:116px}.rolling-horizontal .rolling-content:before{content:'';position:absolute;top:18px;bottom:48px;left:var(--ruler-inset);right:var(--ruler-inset);background:repeating-linear-gradient(90deg,#acbdb0 0 1px,transparent 1px 10px)}.rolling-horizontal .rolling-content:after{content:'';position:absolute;top:6px;height:62px;left:var(--ruler-inset);right:var(--ruler-inset);background:repeating-linear-gradient(90deg,#607e6c 0 2px,transparent 2px 100px)}.ruler-number{position:absolute;top:82px;transform:translateX(-50%);font-size:14px;color:#809383}.rolling-horizontal .rolling-marker{position:absolute;top:0;bottom:41px;width:3px;left:50%;margin-left:-1.5px;background:#458d68;border-radius:4px;pointer-events:none}.rolling-horizontal .rolling-marker:before{content:'';position:absolute;top:-4px;left:-4px;width:11px;height:11px;background:#458d68;border-radius:50%}.rolling-fine{display:flex;align-items:center;justify-content:center;gap:16px;margin:20px 0 12px;color:#839084;font-size:12px}.rolling-fine button{width:36px;height:36px;border:1px solid #dfe6dd;border-radius:50%;background:#fff;color:#477d61;font-size:21px}.rolling-manual{margin:0 auto;text-align:center;font-size:12px;color:#7c8c7e;max-width:240px}.rolling-manual summary{cursor:pointer}.rolling-manual label{display:block;margin-top:12px;font-size:13px}.rolling-manual input{width:140px;margin:8px auto;padding:12px;text-align:center;border-radius:14px;border:1px solid #cedccd;background:#fff;color:#1a3124;font-size:20px}
.goal-date-scene{width:100%;padding:0 4px;text-align:center}.goal-date-scene>img{height:145px;width:100%;object-fit:contain;mix-blend-mode:multiply;margin-bottom:10px}.goal-date-scene>h2{font-size:31px;line-height:1.12;letter-spacing:-1.2px;margin:10px 0 24px}.goal-date-control{display:block;text-align:left;color:#64806c;font-size:13px!important}.goal-date-control input{display:block;width:100%;min-height:54px;background:#fff;border:1px solid #d5e4d6;border-radius:18px;margin:8px 0 20px;padding:12px 16px;color:#254b36;font:inherit;font-size:17px;box-sizing:border-box}.goal-trajectory{background:#ffffffbd;border:1px solid #dce9dd;padding:20px 18px;border-radius:26px}.goal-trajectory-labels{display:flex;justify-content:space-between;text-align:left;color:#7c9181;font-size:12px}.goal-trajectory-labels>span:last-child{text-align:right}.goal-trajectory-labels strong{display:block;color:#2d573d;font-size:19px;margin-top:5px}.goal-trajectory svg{display:block;width:100%;height:130px;margin:8px 0}.goal-trajectory p{font-size:14px;line-height:1.4;color:#3f6c4e;margin:6px 0}.goal-trajectory small{color:#819483;font-size:11px}.goal-date-safety{font-size:12px;line-height:1.6;color:#7a8c7c;margin:18px 5px}

.welcome-goal-date .welcome-question{display:none}.welcome-goal-date .welcome-top{margin-bottom:10px}.welcome-goal-date form{min-height:calc(100dvh - 90px)}.welcome-goal-date .welcome-body{padding-bottom:0}.welcome-goal-date .goal-date-scene>img{height:100px;margin-bottom:4px}.goal-date-scene>h1{font-size:29px;line-height:1.12;letter-spacing:-1px;margin:8px 0 20px}.welcome-goal-date .goal-date-control input{min-height:48px;margin:6px 0 15px}.welcome-goal-date .goal-trajectory{padding:16px}.welcome-goal-date .goal-trajectory svg{height:110px}.welcome-goal-date .goal-date-safety{font-size:11px;margin:12px 4px}.welcome-goal-date .welcome-bottom{padding-top:12px}
