:root{color-scheme:light;--paper:#fbf5ed;--ink:#493b42;--muted:#806b72;--accent:#965d73;--accent-dark:#754658;--blush:#f2dce0;--line:#e7d7d1;--lavender:#e9e0ef;font-family:'Noto Sans KR','Malgun Gothic',sans-serif;background:#eadfdc;color:var(--ink)}
*{box-sizing:border-box}body{margin:0}button,input,textarea,select{font:inherit}button{cursor:pointer;-webkit-tap-highlight-color:transparent;touch-action:manipulation}button:focus-visible,a:focus-visible{outline:3px solid #8d6aa8;outline-offset:3px}button:disabled{cursor:default;opacity:.5}button,a{color:inherit}button{border:0}button:active:not(:disabled){transform:translateY(1px)}[hidden]{display:none!important}#app{width:100%;max-width:480px;height:100svh;height:100dvh;margin:auto;display:flex;flex-direction:column;background:var(--paper);overflow:hidden;box-shadow:0 0 70px #553b3820;padding-top:env(safe-area-inset-top);padding-bottom:env(safe-area-inset-bottom)}
.app-header{height:59px;flex-shrink:0;padding:5px 12px;display:flex;align-items:center;justify-content:space-between;background:var(--paper);z-index:4}.brand{text-align:center;font-family:Georgia,'Batang',serif;font-size:19px;letter-spacing:-.7px}.brand small{font:9px/1.5 Arial,sans-serif;display:block;letter-spacing:2.4px;color:var(--muted)}.icon-button{width:42px;height:42px;display:grid;place-items:center;font-size:25px;background:transparent;border-radius:50%;font-weight:400}.scene{flex:1;min-height:195px;position:relative;isolation:isolate;overflow:hidden;background:#e5c5a8;touch-action:none}.scene-art{position:absolute;width:100%;height:100%;background-image:url('assets/kitchen.webp');background-size:200% 200%;background-position:0 0;transform-origin:50% 70%}.scene-art.extra{background-image:url('assets/actions.webp')}.chapter{position:absolute;left:14px;right:14px;top:13px;display:flex;justify-content:space-between;gap:12px;pointer-events:none;font-size:13px}.chapter span{background:#fff8edf0;border-radius:4px;padding:6px 9px;box-shadow:0 1px 8px #593d3010}.chapter span:empty{display:none}.landing-title{position:absolute;bottom:0;left:0;right:0;padding:45px 24px 22px;background:linear-gradient(transparent,#392c40c7);color:#fff9ed;pointer-events:none}.landing-title>span{font:9px/1.6 Georgia,serif;letter-spacing:2px;color:#ffdebc}.landing-title h1{font:500 30px/1.35 Georgia,'Batang',serif;letter-spacing:-1.3px;margin:8px 0}.landing-title p{font-size:13px;margin:9px 0 0;color:#ffebdd}#effects{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}.gesture-guide{position:absolute;left:50%;top:69%;transform:translate(-50%,-50%) rotate(-3deg);background:#fff8e9ef;box-shadow:0 2px 6px #63392220;padding:7px 12px;font-size:13px;color:#81565e;pointer-events:none;white-space:nowrap}.gesture-guide::after{content:'';position:absolute;width:45px;height:18px;border-bottom:1.5px solid #ab8074;border-radius:50%;left:50%;top:100%;transform:rotate(17deg)}.scene-toast{position:absolute;bottom:16px;left:20px;right:20px;text-align:center;background:#fff7eff0;border-radius:10px;padding:10px;font-size:13px;box-shadow:0 4px 20px #4a243d22}.food-piece{position:absolute;left:50%;top:83%;transform:translate(-50%,-50%);background:#fff9efe6;border:1px solid #e1c9b1;border-radius:12px;min-width:85px;padding:3px 8px 5px;z-index:3;touch-action:none;box-shadow:0 3px 10px #674c3125}.food-piece img{width:66px;height:57px;object-fit:contain;display:block;margin:auto;pointer-events:none}.food-piece span{font-size:12px;pointer-events:none}.food-piece:active:not(:disabled){transform:translate(-50%,-50%)}
.conversation{position:relative;background:var(--paper);padding:12px 22px 8px;flex-shrink:0;min-height:99px}.speaker{display:flex;align-items:center;justify-content:space-between;font-size:12px;color:var(--accent);letter-spacing:.6px;margin-bottom:3px}.speaker button{width:27px;height:25px;background:transparent;border:1px solid var(--line);border-radius:50%;color:var(--muted);font-size:13px}.conversation h2{font:500 18px/1.45 Georgia,'Batang',serif;margin:0;letter-spacing:-.5px}.conversation p{margin:4px 0 0;font-size:13px;line-height:1.5;color:var(--muted)}.progress-track{height:3px;margin-top:9px;background:#eaddd7;border-radius:3px;overflow:hidden}.progress-track>div{height:100%;width:0;background:var(--accent);transition:width .1s linear}.controls{padding:6px 20px 13px;flex-shrink:0;min-height:69px}.primary{display:block;width:100%;min-height:47px;padding:12px 15px;background:var(--accent);color:#fff9f3;border-radius:10px;box-shadow:0 3px 0 var(--accent-dark);font-size:13px;letter-spacing:.1px}.primary:active:not(:disabled){background:var(--accent-dark)}.secondary{background:#f5e8e4;border:1px solid var(--line);padding:11px 14px;border-radius:8px;min-height:44px;font-size:13px}.quiet{background:transparent;color:var(--muted);padding:10px 8px;font-size:13px;min-height:40px}.control-row{display:flex;gap:8px;align-items:center}.control-row select{background:#fffaf5;color:var(--ink);border:1px solid var(--line);border-radius:9px;min-height:47px;padding:10px;font-size:15px;max-width:105px}.control-row .primary{flex:1}.bottom-nav{display:flex;justify-content:center;flex-shrink:0;border-top:1px solid var(--line);height:41px;background:var(--paper)}.bottom-nav button{width:33.33%;font-size:13px;color:var(--muted);background:transparent;position:relative}.bottom-nav button.active{color:var(--accent);font-weight:600}.bottom-nav button.active:before{content:'';position:absolute;top:0;left:37%;right:37%;height:2px;background:var(--accent)}
dialog{border:0;border-radius:23px 23px 0 0;position:fixed;top:auto;bottom:0;left:0;right:0;width:min(480px,100%);max-width:100%;max-height:85dvh;margin:0 auto;background:var(--paper);color:var(--ink);padding:0 20px max(22px,env(safe-area-inset-bottom));box-shadow:0 -10px 60px #372a3826;overscroll-behavior:contain}dialog::backdrop{background:#34263566;backdrop-filter:blur(2px)}.sheet-header{display:flex;align-items:center;justify-content:space-between;position:sticky;top:0;background:var(--paper);padding:13px 0 9px;z-index:2}.sheet-header h2{font:500 20px/1.4 Georgia,'Batang',serif;margin:0}.sheet-header button{font-size:26px}#sheet-body{font-size:13px;line-height:1.65}#sheet-body p{margin:8px 0 13px}#sheet-body a{color:#87566e;text-underline-offset:3px}#sheet-body h3{font-size:15px;font-weight:500;margin:21px 0 10px}#sheet-body .muted{font-size:13px;color:var(--muted);line-height:1.7}.flavors{display:grid;grid-template-columns:1fr 1fr;gap:9px;margin:10px 0 15px}.flavor{position:relative;text-align:left;min-height:97px;border:1px solid var(--line);background:#fffaf5;padding:12px;border-radius:12px}.flavor strong{display:block;font-size:14px;font-weight:500}.flavor small{display:block;font-size:13px;line-height:1.5;color:var(--muted);margin-top:4px}.flavor[aria-pressed=true]{background:#f5dfe4;border-color:#ab7183}.flavor[aria-pressed=true]::after{content:'✓';position:absolute;right:9px;top:8px;color:var(--accent)}.food-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px;margin:15px 0}.food-card{background:#fffaf5;border:1px solid var(--line);border-radius:12px;padding:8px 4px;min-height:106px;line-height:1.4}.food-card img{display:block;width:65px;height:65px;object-fit:contain;margin:0 auto 5px}.food-card span{font-size:13px}.filter-bar{display:flex;gap:6px}.filter-bar button{flex:1;background:#efe5e4;border-radius:20px;padding:9px 4px;font-size:13px;min-height:38px}.filter-bar button.selected{background:var(--accent);color:#fffaf5}.pager{display:flex;justify-content:space-between;align-items:center;font-size:13px;color:var(--muted)}.food-hero{display:flex;align-items:center;gap:16px;margin:8px 0 18px}.food-hero img{width:90px;height:90px;object-fit:contain}.food-hero strong{font-size:17px;font-weight:500}.time-tag{color:var(--accent);font-size:14px;margin:4px 0}.pill{display:inline-block;padding:3px 8px;background:var(--lavender);border-radius:6px;font-size:12px}.taste-row{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:14px 0}.taste-row>div{padding:12px;background:#f2e5e0;border-radius:10px;font-size:13px}.taste-row small{display:block;color:var(--muted);font-size:12px;margin-bottom:5px}.notice{padding:11px 12px;background:#f3e2da;border-left:3px solid #bc897b;font-size:13px;line-height:1.65;margin:12px 0}details{border-top:1px solid var(--line);padding:12px 0}summary{cursor:pointer;color:#80656c;font-size:13px}details p,details li{font-size:13px}ol,ul{padding-left:20px}li{margin:7px 0}.recipe-grid{display:grid;grid-template-columns:1fr auto;gap:9px 20px;font-size:13px;margin:15px 0}.recipe-grid dt,.recipe-grid dd{margin:0}.recipe-grid dd{font-variant-numeric:tabular-nums}.note-entry{padding:14px 0;border-bottom:1px solid var(--line)}.note-entry h3{margin:0!important}.note-entry .time-tag{font-size:13px}.menu-list{display:grid;gap:8px}.menu-list button{text-align:left;border:1px solid var(--line);background:#fffaf5;border-radius:9px;padding:15px;font-size:13px}.form-field{display:block;margin:13px 0;font-size:13px}.form-field input,.form-field textarea{display:block;width:100%;padding:11px;margin-top:6px;border:1px solid var(--line);border-radius:8px;background:#fffdfa;color:var(--ink);font-size:16px}.form-field textarea{min-height:90px;resize:vertical}.status{font-size:13px;color:var(--accent);padding-top:8px}.sheet-actions{display:flex;gap:8px;margin:16px 0}.sheet-actions>*{flex:1}.back-link{background:none;padding:0 0 8px;font-size:13px;color:var(--muted)}.scene-art.perform{animation:perform .48s ease-in-out}.scene-art.chop{animation:chop .18s ease-out}.scene-art.stir{animation:stir .5s ease-in-out}.scene-art.pour{animation:tilt .8s ease-in-out}.saved{background:#e7dde9;color:#66506f;border-radius:8px;padding:11px;text-align:center;font-size:13px}
@keyframes perform{50%{transform:translateY(2px) scale(1.01)}}@keyframes chop{45%{transform:translateY(5px)}75%{transform:translateY(-1px)}}@keyframes stir{25%{transform:translate(-1px,1px) rotate(-.3deg)}75%{transform:translate(1px,-1px) rotate(.3deg)}}@keyframes tilt{50%{transform:rotate(.5deg) scale(1.006)}}
@media(min-width:600px){body{background:radial-gradient(ellipse at 30% 20%,#f4e7e4,#dfd4df)}#app{max-height:960px}.scene{min-height:260px}}
@media(max-height:690px){.app-header{height:50px}.conversation{padding:8px 17px 5px;min-height:88px}.conversation h2{font-size:16px}.controls{padding:5px 16px 10px;min-height:62px}.bottom-nav{height:36px}.landing-title h1{font-size:25px}.primary{min-height:43px}.scene{min-height:180px}}
@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important;scroll-behavior:auto!important}}

.scene-art.preparation{background-image:url('assets/preparation.webp')}
@media(max-height:690px){.scene{width:min(100%,calc((100dvh - 236px)*.666667));align-self:center;border-radius:9px}}
