:root{--green:#274d3c;--cream:#f7f6f0;--ink:#27382f;--muted:#6c776f;--line:#dedfd5;--orange:#e9ad65}*{box-sizing:border-box}body{margin:0;background:var(--cream);color:var(--ink);font-family:-apple-system,BlinkMacSystemFont,"Hiragino Kaku Gothic ProN","Noto Sans JP",sans-serif;font-size:15px;line-height:1.8}button,input{font:inherit}button,a,input{-webkit-tap-highlight-color:transparent}button{cursor:pointer;border:1px solid var(--line);border-radius:10px;background:#fff;color:var(--green);padding:10px 16px;min-height:44px}button:hover{background:#eef1e8}button:focus-visible,a:focus-visible,input:focus-visible{outline:3px solid #ca863c;outline-offset:3px}a{color:inherit}header{max-width:1120px;margin:auto;padding:26px 34px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line)}.brand{text-decoration:none;font-weight:750;font-size:23px;letter-spacing:.05em}.brand span{display:block;font-weight:400;font-size:11px;color:var(--muted);padding-left:30px}.icon{background:transparent;font-size:12px}main{max-width:1040px;margin:auto;padding:28px 34px}.intro{display:flex;justify-content:space-between;align-items:center;margin:14px 0 36px}.eyebrow{font-size:12px;font-weight:600;letter-spacing:.1em;color:var(--green)}h1{font-size:38px;letter-spacing:.04em;margin:8px 0;font-family:serif}p{color:var(--muted)}.intro p{margin:7px 0}.servings{font-size:11px;text-align:center;color:var(--muted)}.servings div{display:flex;align-items:center;background:white;border:1px solid var(--line);border-radius:12px;margin-top:8px;padding:4px}.servings button{border:0;background:transparent;padding:6px 10px;font-size:20px}.servings input{width:40px;text-align:center;border:0;font-size:20px;color:var(--ink);appearance:textfield}.servings input::-webkit-inner-spin-button{appearance:none}.servings span{font-size:14px}nav{display:flex;border-bottom:1px solid var(--line);gap:32px;margin-bottom:30px}nav button{border:0;border-radius:0;background:transparent;padding:12px 2px;color:var(--muted);font-size:14px;white-space:nowrap}nav button.active{border-bottom:3px solid var(--green);color:var(--green);font-weight:700}.sectionline{display:flex;justify-content:space-between;align-items:center;margin:24px 0 14px}.sectionline h2,h2{font-size:19px;margin:0}.sectionline span{font-size:11px;color:var(--muted)}#hero{display:grid;grid-template-columns:1.1fr 1fr;background:#fff;border:1px solid var(--line);border-radius:20px;overflow:hidden}.art{background:#e6ebdc;position:relative;min-height:320px;display:flex;align-items:center;justify-content:center;overflow:hidden}.art:before{content:"";position:absolute;width:400px;height:400px;border-radius:50%;border:1px solid #cfd7c0}.art svg{width:90%;max-width:360px;filter:drop-shadow(0 13px 12px #62734c25);position:relative}.art .caption{position:absolute;bottom:16px;left:20px;font-size:10px;letter-spacing:.12em;color:#546348}.hero-copy{padding:30px;display:flex;flex-direction:column;align-items:flex-start;justify-content:center}.badge{display:inline-block;background:#eff1e8;border-radius:6px;padding:2px 10px;font-size:11px}.hero-copy h2{font-size:27px;line-height:1.5;margin:14px 0 3px}.hero-copy p{font-size:13px}.meta{font-size:13px;margin:12px 0 22px}.primary{background:var(--green);border-color:var(--green);color:#fff}.primary:hover{background:#37634d}.actions{display:flex;gap:8px;flex-wrap:wrap}.actions button{font-size:13px}.sides{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.side{background:white;border:1px solid var(--line);border-radius:14px;padding:17px}.side button{border:0;padding:0;background:transparent;text-align:left;width:100%;font-weight:650}.side .emoji{font-size:28px;display:block}.side small{display:block;color:var(--muted);font-weight:400;margin:4px 0}.side label{display:flex;align-items:center;gap:6px;font-size:12px;border-top:1px solid var(--line);padding-top:10px;margin-top:12px}input[type=checkbox]{accent-color:var(--green);width:19px;height:19px}.note{font-size:11px;line-height:1.9;margin-top:20px}footer{border-top:1px solid var(--line);margin-top:46px;padding:24px 0;font-size:14px;font-weight:650}footer span{float:right;font-size:11px;font-weight:400;color:var(--muted)}footer p{font-size:10px;font-weight:400}dialog{border:0;border-radius:20px;max-width:660px;width:calc(100% - 28px);max-height:88dvh;padding:32px;color:var(--ink);background:var(--cream)}dialog::backdrop{background:#12281c88;backdrop-filter:blur(3px)}.close{float:right;font-size:24px;padding:0 12px}.ingredients{padding:0;list-style:none}.ingredients li,.shopitem{display:flex;justify-content:space-between;gap:15px;border-bottom:1px solid var(--line);padding:10px 0}.ingredients li span:last-child{font-weight:650}.steps{padding-left:25px}.steps li{padding:0 0 18px 10px;line-height:1.9}.steps li::marker{font-weight:bold;color:var(--green)}h3{font-size:16px;margin:25px 0 8px}.status{background:#f0e5d0;border-radius:9px;padding:10px;font-size:13px}.searchrow{display:flex;gap:10px;margin-top:8px}.searchrow input{min-width:0;flex:1;padding:12px;border:1px solid var(--line);border-radius:10px}form label{font-size:12px}.chips{display:flex;gap:8px;flex-wrap:wrap;margin:16px 0}.chips button{font-size:12px;border-radius:30px}.result{border:1px solid var(--line);padding:20px;background:white;border-radius:12px;margin:12px 0}.result h3{margin:0}.result p{font-size:12px}.shopitem{justify-content:flex-start;align-items:center;background:white;padding:13px}.shopitem span:last-child{margin-left:auto}.shopitem:has(input:checked){color:#90998d;text-decoration:line-through}#reset{margin-top:20px}#toast{position:fixed;bottom:25px;left:50%;transform:translateX(-50%);background:var(--green);color:white;border-radius:10px;padding:10px 18px;z-index:10;display:none;max-width:90%;font-size:13px}[hidden]{display:none!important}@media(max-width:700px){header{padding:18px}.brand{font-size:20px}.brand span{font-size:9px}.icon{padding:7px 9px}main{padding:18px}.intro{margin:4px 0 24px;gap:10px}h1{font-size:28px}.intro p{font-size:12px}.servings button{padding:4px 7px}.servings input{width:29px}nav{gap:0;justify-content:space-between;margin-bottom:18px}nav button{font-size:12px}.sectionline span{font-size:10px}.sectionline h2{font-size:17px}#hero{grid-template-columns:1fr}.art{min-height:215px;max-height:240px}.art svg{max-width:285px}.hero-copy{padding:22px}.hero-copy h2{font-size:25px}.hero-copy p{margin:7px 0}.meta{margin:10px 0 16px}.sides{grid-template-columns:1fr}.side{display:grid;grid-template-columns:1fr auto;align-items:center;padding:13px 16px}.side button{font-size:14px}.side .emoji{float:left;margin-right:14px}.side label{border:0;margin:0;padding:0;font-size:11px}.side small{margin:0}.searchrow{flex-direction:column}footer span{float:none;display:block}dialog{padding:23px}.sectionline button{font-size:11px;padding:8px}}
@media(max-width:700px){.intro h1{font-size:23px;letter-spacing:0;white-space:nowrap}.intro{gap:6px}.servings div{padding:2px}.servings button{padding:4px 5px}.intro>div{min-width:0}.intro p:not(.eyebrow){font-size:11px}}
@media(max-width:365px){.intro{display:block}.servings{display:flex;align-items:center;justify-content:flex-end;gap:10px;margin-top:14px}.servings div{margin:0}}

.side-actions{display:flex;align-items:center;gap:14px;margin-top:16px}.side-actions span{font-size:11px;color:var(--muted)}@media(max-width:700px){.side-actions{align-items:flex-start;flex-direction:column;gap:6px}}

.candidate-nav{display:flex;gap:8px}button:disabled{opacity:.4;cursor:default}.hero-copy .actions{align-items:center}

.favorite{font-size:12px;color:#935044}.favorite[aria-pressed=true]{background:#fcf0e9;border-color:#ddb7a4}.side>button.favorite{width:auto;border:1px solid var(--line);border-radius:8px;padding:6px 12px;min-height:40px;margin-top:10px;font-weight:400}.hero-copy>.favorite{margin-top:10px}nav{gap:20px;overflow-x:auto}#favorite-list .actions{margin-top:12px}@media(max-width:700px){nav{gap:18px;justify-content:flex-start}nav button{flex-shrink:0}.side>button.favorite{grid-column:1/-1;justify-self:start}}
/* Keep number input text and native controls inside the available space. */
.servings input{box-sizing:content-box;min-width:3ch;width:3ch;padding:6px 4px;line-height:1.5;font-variant-numeric:tabular-nums;-webkit-appearance:none;appearance:textfield}
.servings input::-webkit-outer-spin-button,.servings input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}
.servings{flex-shrink:0}.servings div{flex-shrink:0}.servings button{flex-shrink:0}
@media(max-width:700px){.intro{flex-wrap:wrap;row-gap:14px}.intro>div{flex:1 0 210px}.servings{margin-left:auto}.servings input{width:3ch;min-width:3ch;font-size:20px;padding:6px 4px}.servings div{padding:4px}.servings button{padding:6px 10px}}
