:root{--paper:#fffaf0;--paper-deep:#f7ecd8;--surface:#fffdf7e0;--ink:#173e45;--ink-soft:#4c6669;--teal:#0d5965;--teal-soft:#5f9599;--orange:#e99424;--orange-deep:#c97212;--line:#173e4524;--shadow:0 20px 50px #5b3e1617}*{box-sizing:border-box}html{scroll-behavior:smooth;min-width:320px}body{min-height:100vh;color:var(--ink);background:radial-gradient(circle at 12% 18%, #e9942414, transparent 22rem), radial-gradient(circle at 86% 68%, #0d596513, transparent 26rem), var(--paper);-webkit-font-smoothing:antialiased;margin:0;font-family:Aptos,Segoe UI,Helvetica,Arial,sans-serif}a{color:inherit}button,input{font:inherit}button,a{-webkit-tap-highlight-color:transparent}:focus-visible{outline-offset:4px;outline:3px solid #e99424b8}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.site-frame{grid-template-rows:auto 1fr auto;min-height:100vh;display:grid}.site-header{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:24px;width:min(1180px,100% - 40px);min-height:88px;margin:0 auto;display:flex}.mini-brand{border-radius:50%;place-items:center;width:54px;height:54px;transition:transform .18s;display:grid}.mini-brand:hover{transform:translateY(-2px)rotate(-2deg)}.mini-brand img{width:48px;height:auto}.main-nav,.site-footer nav{align-items:center;gap:24px;display:flex}.main-nav a,.site-footer a{color:var(--ink-soft);font-size:.92rem;font-weight:650;text-decoration:none;transition:color .16s}.main-nav a:hover,.site-footer a:hover{color:var(--orange-deep)}.site-main{width:100%}.site-main-home{display:block}.home-hero{text-align:center;flex-direction:column;justify-content:center;align-items:center;width:min(980px,100% - 36px);min-height:min(660px,100vh - 190px);margin:0 auto;padding:72px 24px 96px;display:flex;position:relative;overflow:hidden}.home-hero:after{content:"";background:linear-gradient(90deg,#0000,#e994246b,#0000);height:1px;position:absolute;bottom:54px;left:18%;right:18%}.hero-logo{filter:drop-shadow(0 18px 18px #63461c14);width:min(760px,100%);height:auto;animation:.68s ease-out both logo-arrive}.hero-subtitle{color:var(--ink-soft);letter-spacing:.02em;margin:28px 0 32px;font-size:clamp(1rem,1.9vw,1.22rem)}.primary-link,.secondary-link{border-radius:999px;justify-content:center;align-items:center;gap:12px;min-height:50px;padding:0 22px;font-weight:750;text-decoration:none;transition:transform .18s,box-shadow .18s,background .18s;display:inline-flex}.primary-link{color:#fff;background:var(--teal);box-shadow:0 12px 28px #0d59652e}.primary-link:hover,.secondary-link:hover{transform:translateY(-2px)}.primary-link:hover{box-shadow:0 16px 32px #0d59653d}.hero-spark{width:10px;height:10px;color:var(--orange);opacity:.72;background:currentColor;position:absolute;transform:rotate(45deg)}.hero-spark:before,.hero-spark:after{content:"";background:var(--paper);border-radius:50%;position:absolute;inset:0;transform:scaleX(.44)}.hero-spark:after{transform:scaleY(.44)}.hero-spark-one{top:22%;right:9%}.hero-spark-two{color:var(--teal-soft);bottom:25%;left:9%;transform:rotate(45deg)scale(.72)}.story-section{border-top:1px solid var(--line);background:radial-gradient(circle at 88% 16%,#e994241a,#0000 22rem),linear-gradient(#f7ecd875,#fffaf0b3);width:100%;padding:clamp(74px,9vw,124px) 0;scroll-margin-top:24px}.story-inner{grid-template-columns:minmax(230px,.72fr) minmax(0,1.28fr);align-items:start;gap:54px clamp(42px,7vw,92px);width:min(980px,100% - 40px);margin:0 auto;display:grid}.story-heading{position:sticky;top:36px}.story-heading h2{max-width:390px;color:var(--teal);letter-spacing:-.045em;margin:0;font-size:clamp(2.5rem,5vw,4.45rem);line-height:1.02}.story-copy{gap:24px;display:grid}.story-copy p{color:var(--ink-soft);margin:0;font-size:clamp(1.02rem,1.55vw,1.14rem);line-height:1.78}.story-copy p:first-child{color:var(--ink);font-size:clamp(1.12rem,1.8vw,1.3rem);line-height:1.7}.family-dedication{box-shadow:var(--shadow);text-align:center;background:#fffdf7e6;border:1px solid #e9942440;border-radius:30px;grid-column:1/-1;margin:0;padding:clamp(30px,5vw,48px) clamp(28px,6vw,64px);position:relative;overflow:hidden}.family-dedication:before{content:"♥";color:#e994241a;font-size:8rem;line-height:1;position:absolute;top:-24px;right:28px}.family-dedication p{max-width:720px;color:var(--ink-soft);margin:12px auto 0;font-size:clamp(1.02rem,1.8vw,1.18rem);line-height:1.72;position:relative}.family-dedication .dedication-title{color:var(--orange-deep);margin-top:0;font-size:clamp(1.3rem,2.4vw,1.65rem);font-weight:800}.content-page{width:min(860px,100% - 40px);margin:0 auto;padding:clamp(56px,8vw,96px) 0 110px}.eyebrow,.card-label{color:var(--orange-deep);letter-spacing:.13em;text-transform:uppercase;margin:0 0 12px;font-size:.78rem;font-weight:800}.content-page h1{color:var(--teal);letter-spacing:-.045em;margin:0;font-size:clamp(2.5rem,6vw,4.6rem);line-height:1.02}.intro-copy{max-width:720px;color:var(--ink-soft);margin:24px 0 0;font-size:clamp(1.05rem,2vw,1.22rem);line-height:1.75}.notice-card,.demo-card{border:1px solid var(--line);background:var(--surface);box-shadow:var(--shadow)}.notice-card{border-radius:26px;grid-template-columns:auto 1fr;gap:20px;margin-top:52px;padding:30px;display:grid}.notice-icon{color:#fff;background:var(--orange);border-radius:50%;place-items:center;width:44px;height:44px;font-size:1.1rem;display:grid}.notice-card h2,.demo-card h2{color:var(--teal);margin:0;font-size:1.3rem}.notice-card p,.demo-card p{color:var(--ink-soft);margin:10px 0 0;line-height:1.65}.demo-card{border-radius:26px;justify-content:space-between;align-items:center;gap:28px;margin-top:24px;padding:30px;display:flex}.demo-card>div{max-width:560px}.secondary-link{color:var(--teal);background:#fff;border:1px solid #0d596542;flex:none}.secondary-link:hover{background:#f7fbfa}.back-link{color:var(--ink-soft);gap:8px;margin-bottom:44px;font-size:.92rem;font-weight:700;text-decoration:none;display:inline-flex}.back-link:hover{color:var(--orange-deep)}.checklist-heading{justify-content:space-between;align-items:flex-end;gap:36px;display:flex}.progress-badge{text-align:center;background:#ffffff9e;border:1px dashed #0d596552;border-radius:20px;flex:none;min-width:104px;padding:15px 20px}.progress-badge strong,.progress-badge span{display:block}.progress-badge strong{color:var(--teal);font-size:1.35rem}.progress-badge span{color:var(--ink-soft);margin-top:2px;font-size:.78rem}.progress-track{background:#0d59651a;border-radius:999px;height:8px;margin:34px 0 26px;overflow:hidden}.progress-track span{border-radius:inherit;background:linear-gradient(90deg, var(--orange), #f2b555);height:100%;transition:width .22s;display:block}.checklist{border:0;gap:12px;margin:0;padding:0;display:grid}.check-row{border:1px solid var(--line);min-height:66px;color:var(--ink);cursor:pointer;background:#ffffffc7;border-radius:18px;align-items:center;gap:16px;padding:14px 18px;font-weight:700;transition:border-color .16s,background .16s,transform .16s;display:flex}.check-row:hover{border-color:#0d596547;transform:translate(2px)}.check-row input{opacity:0;width:1px;height:1px;position:absolute}.custom-check{color:#0000;border:2px solid var(--teal-soft);background:#fff;border-radius:9px;flex:none;place-items:center;width:30px;height:30px;transition:color .16s,background .16s,border-color .16s;display:grid}.check-row:has(input:focus-visible){outline-offset:3px;outline:3px solid #e99424b8}.check-row.is-checked{color:#718183;background:#f3f5f0d6}.check-row.is-checked>span:last-child{text-decoration:line-through}.check-row.is-checked .custom-check{color:#fff;border-color:var(--teal);background:var(--teal)}.checklist-actions{flex-wrap:wrap;gap:12px;margin-top:26px;display:flex}.reset-button,.pdf-button{border-radius:999px;min-height:46px;padding:0 18px;font-weight:750}.reset-button{color:var(--teal);cursor:pointer;background:#fff;border:1px solid #0d596547}.reset-button:disabled,.pdf-button:disabled{color:#8c9290;cursor:not-allowed;background:#ebe9e1b8;border-color:#283a381f}.pdf-button{border:1px solid #0000}.storage-note{color:var(--ink-soft);margin:16px 0 0;font-size:.84rem}.helper-page{width:min(1080px,100% - 40px)}.test-notice{color:#76500f;background:#fff5d7c2;border:1px solid #e994244d;border-radius:18px;margin-top:28px;padding:18px 22px;line-height:1.6}.helper-panel{border:1px solid var(--line);background:var(--surface);box-shadow:var(--shadow);border-radius:30px;margin-top:28px;padding:clamp(24px,4vw,42px)}.panel-heading{justify-content:space-between;align-items:flex-start;gap:28px;display:flex}.panel-heading h2,.custom-item-form h3,.shopping-group h3{color:var(--teal);margin:0}.panel-heading h2{letter-spacing:-.025em;font-size:clamp(1.55rem,3vw,2.15rem)}.panel-heading p:not(.step-label){color:var(--ink-soft);margin:8px 0 0}.step-label{color:var(--orange-deep);letter-spacing:.12em;text-transform:uppercase;margin:0 0 8px;font-size:.75rem;font-weight:850}.privacy-chip{color:var(--teal);background:#e8f5f2cc;border:1px solid #0d59652e;border-radius:999px;flex:none;padding:8px 12px;font-size:.78rem;font-weight:750}.scan-actions,.helper-actions,.edit-actions{flex-wrap:wrap;gap:12px;display:flex}.scan-actions{margin-top:28px}.primary-button,.upload-button,.manual-code-form button,.add-recipe-button,.quantity-control button,.helper-actions button,.custom-item-form button,.edit-actions button,.camera-stop{cursor:pointer;border-radius:999px;min-height:46px;padding:0 18px;font-weight:780;transition:transform .16s,background .16s,border-color .16s}.primary-button,.manual-code-form button,.custom-item-form button,.edit-actions button[type=submit]{color:#fff;border:1px solid var(--teal);background:var(--teal)}.upload-button,.add-recipe-button,.helper-actions button,.edit-actions button,.camera-stop{color:var(--teal);background:#fff;border:1px solid #0d596540;justify-content:center;align-items:center;display:inline-flex}.primary-button:hover,.upload-button:hover,.manual-code-form button:hover,.add-recipe-button:hover,.helper-actions button:hover:not(:disabled),.custom-item-form button:hover,.edit-actions button:hover,.camera-stop:hover{transform:translateY(-1px)}.upload-button{cursor:pointer;position:relative;overflow:hidden}.upload-button input{opacity:0;width:1px;height:1px;position:absolute}.upload-button:has(input:focus-visible){outline-offset:4px;outline:3px solid #e99424b8}.camera-frame{background:#10282c;border:2px solid #0d596540;border-radius:24px;margin-top:20px;display:none;position:relative;overflow:hidden}.camera-frame.is-active{display:block}.camera-frame video{object-fit:cover;width:100%;max-height:520px;display:block}.camera-frame:after{content:"";pointer-events:none;border:3px solid #ffffffe6;border-radius:24px;position:absolute;inset:15% 19%;box-shadow:0 0 0 999px #0412152e}.camera-stop{z-index:1;position:absolute;bottom:14px;right:14px}.scanner-canvas{display:none}.manual-code-form{max-width:620px;margin-top:24px}.manual-code-form>label,.custom-item-form label,.edit-item-form label{color:var(--ink-soft);gap:7px;font-size:.82rem;font-weight:750;display:grid}.manual-code-form>div{grid-template-columns:minmax(0,1fr) auto;gap:10px;margin-top:8px;display:grid}.manual-code-form input,.custom-item-form input,.edit-item-form input{min-width:0;min-height:46px;color:var(--ink);background:#fff;border:1px solid #173e4533;border-radius:13px;padding:10px 14px}.helper-status{min-height:24px;color:var(--teal);margin:18px 0 0;font-size:.9rem;font-weight:700}.recipe-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin-top:26px;display:grid}.recipe-card{border:1px solid var(--line);background:#ffffffb3;border-radius:21px;min-width:0;padding:22px;transition:border-color .16s,background .16s}.recipe-card.is-selected{background:#edf7f3d9;border-color:#0d59656b}.recipe-code{color:var(--orange-deep);letter-spacing:.09em;margin:0 0 10px;font-size:.72rem;font-weight:850}.recipe-card h3{color:var(--teal);margin:0;font-size:1.08rem}.recipe-card>p:not(.recipe-code){min-height:42px;color:var(--ink-soft);margin:8px 0 18px;font-size:.86rem;line-height:1.5}.add-recipe-button{width:100%}.quantity-control{grid-template-columns:42px auto 1fr 42px;align-items:center;gap:7px;min-height:46px;display:grid}.quantity-control button{min-height:42px;color:var(--teal);background:#fff;border:1px solid #0d59653d;padding:0;font-size:1.25rem}.quantity-control strong{color:var(--teal);font-size:1.25rem}.quantity-control span{color:var(--ink-soft);font-size:.8rem}.list-panel-heading{align-items:flex-end}.shopping-groups{gap:30px;display:grid}.shopping-group h3{margin-bottom:12px;font-size:1.03rem}.shopping-items{gap:9px;display:grid}.shopping-item{border:1px solid var(--line);background:#ffffffc7;border-radius:17px;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:10px;min-height:72px;display:grid}.shopping-item.is-checked{background:#f1f4efd1}.native-check{opacity:0;width:1px;height:1px;position:absolute}.shopping-item:has(.native-check:focus-visible){outline-offset:3px;outline:3px solid #e99424b8}.shopping-item-label{cursor:pointer;grid-template-columns:30px minmax(0,1fr) auto;align-items:center;gap:14px;min-width:0;min-height:70px;padding:12px 8px 12px 16px;display:grid}.shopping-item.is-checked .custom-check{color:#fff;border-color:var(--teal);background:var(--teal)}.shopping-item.is-checked .item-copy strong,.shopping-item.is-checked .item-quantity{color:#718183;text-decoration:line-through}.item-copy{gap:3px;min-width:0;display:grid}.item-copy strong{overflow-wrap:anywhere}.item-copy small{color:var(--ink-soft);font-size:.72rem}.item-quantity{color:var(--teal);white-space:nowrap;font-weight:800}.edit-item-button{min-height:38px;color:var(--ink-soft);cursor:pointer;background:0 0;border:0;border-radius:999px;margin-right:12px;padding:0 12px;font-size:.78rem;font-weight:750}.edit-item-button:hover{color:var(--teal);background:#0d59650f}.edit-item-form{grid-column:1/-1;grid-template-columns:minmax(180px,1fr) 110px 120px;gap:12px;padding:16px;display:grid}.edit-actions{grid-column:1/-1}.delete-item-button{color:#9b3d2e!important;border-color:#9b3d2e40!important}.empty-list{min-height:190px;color:var(--ink-soft);text-align:center;border:1px dashed #0d596540;border-radius:22px;align-content:center;place-items:center;gap:14px;padding:30px;display:grid}.empty-list span{color:#fff;background:var(--teal-soft);border-radius:50%;place-items:center;width:44px;height:44px;font-size:1.35rem;display:grid}.empty-list p{max-width:540px;margin:0;line-height:1.6}.custom-item-form{border-top:1px solid var(--line);margin-top:34px;padding-top:28px}.custom-item-form h3{font-size:1.05rem}.custom-item-form>div{grid-template-columns:minmax(190px,1fr) 110px 130px auto;align-items:end;gap:10px;margin-top:14px;display:grid}.helper-actions{margin-top:28px}.helper-actions button:disabled{color:#8c9290;cursor:not-allowed;background:#ebe9e1b8;border-color:#283a381f}.reset-all-button{margin-left:auto;color:#8e4934!important;border-color:#8e493433!important}.storage-expiry-note{color:#7a898a;margin:5px 0 0;font-size:.76rem}.qr-landing .primary-link{margin-top:30px}.legal-page{max-width:760px}.legal-page section{border-top:1px solid var(--line);margin-top:48px;padding-top:34px}.legal-page h2{color:var(--teal);margin:0 0 18px;font-size:1.28rem}.legal-page p,.legal-page address,.contact-list{color:var(--ink-soft);font-size:1rem;line-height:1.75}.legal-page address{font-style:normal}.legal-page a{color:var(--teal);text-underline-offset:3px}.contact-list{margin:0}.contact-list div{grid-template-columns:90px 1fr;gap:20px;display:grid}.contact-list dt{font-weight:750}.contact-list dd{margin:0}.legal-date{color:#7a898a!important;margin-top:60px!important;font-size:.84rem!important}.site-footer{border-top:1px solid var(--line);width:min(1180px,100% - 40px);min-height:88px;color:var(--ink-soft);justify-content:space-between;align-items:center;gap:24px;margin:0 auto;padding:22px 0;display:flex}.site-footer p{margin:0;font-size:.86rem}@keyframes logo-arrive{0%{opacity:0;transform:translateY(10px)scale(.985)}to{opacity:1;transform:translateY(0)scale(1)}}@media (width<=720px){.site-header{min-height:76px}.main-nav{gap:14px}.main-nav a{font-size:.8rem}.main-nav a:nth-child(3),.main-nav a:nth-child(4){display:none}.home-hero{min-height:calc(100vh - 165px);padding:42px 4px 78px}.hero-subtitle{max-width:290px;margin-top:22px}.story-inner{grid-template-columns:1fr;row-gap:38px}.story-heading{position:static}.story-heading h2{max-width:600px}.family-dedication{grid-column:1}.notice-card{grid-template-columns:1fr}.demo-card,.checklist-heading{flex-direction:column;align-items:flex-start}.demo-card .secondary-link{width:100%}.progress-badge{align-items:baseline;gap:7px;min-width:0;display:flex}.panel-heading,.list-panel-heading{flex-direction:column;align-items:flex-start;gap:16px}.recipe-grid{grid-template-columns:1fr}.recipe-card>p:not(.recipe-code){min-height:0}.shopping-item-label{grid-template-columns:30px minmax(0,1fr)}.item-quantity{grid-column:2}.edit-item-form,.custom-item-form>div{grid-template-columns:1fr 1fr}.edit-item-form label:first-child,.custom-item-form label:first-child{grid-column:1/-1}.custom-item-form button{align-self:end}.reset-all-button{margin-left:0}.site-footer{flex-direction:column;align-items:flex-start}.site-footer nav{gap:18px}}@media (width<=420px){.site-header,.site-footer,.content-page{width:min(100% - 28px,860px)}.notice-card,.demo-card{border-radius:22px;padding:23px}.content-page h1{font-size:2.7rem}.helper-panel{border-radius:23px;padding:22px 17px}.scan-actions,.manual-code-form>div,.edit-item-form,.custom-item-form>div{grid-template-columns:1fr}.scan-actions{display:grid}.manual-code-form button,.primary-button,.upload-button,.helper-actions button{width:100%}.edit-item-form label:first-child,.custom-item-form label:first-child{grid-column:auto}.shopping-item{grid-template-columns:minmax(0,1fr)}.shopping-item-label{padding-right:16px}.edit-item-button{width:fit-content;margin:-8px 0 8px 54px}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}@media print{.site-header,.site-footer,.back-link,.checklist-actions,.storage-note,.storage-expiry-note,.scanner-panel,.custom-item-form,.helper-actions,.edit-item-button{display:none!important}body{background:#fff}.content-page{width:100%;padding:24px}.check-row{break-inside:avoid;background:#fff}}
