:root{color:#282721;font-synthesis:none;text-rendering:optimizelegibility;--ink:#282721;--muted:#6d6b61;--cream:#f8f3e8;--paper:#fffdf7;--line:#ded6c7;--green:#536b50;--green-dark:#354b36;--tomato:#d95c3f;--tomato-dark:#aa3d29;--yellow:#f1c66c;--shadow:0 18px 50px #4a3f2c1a;--radius-large:30px;--radius-medium:20px;background:#f8f3e8;font-family:Microsoft YaHei,Noto Sans SC,sans-serif}*{box-sizing:border-box}html{scroll-behavior:smooth}body{background:radial-gradient(circle at 0 0, #f1c66c38, transparent 28rem), var(--cream);min-width:320px;min-height:100vh;margin:0}#app{min-height:100vh;transition:padding-right .22s}#app.gesture-sidebar-open{padding-right:360px}body,button,summary{font:inherit}button,a,summary{-webkit-tap-highlight-color:transparent}button{color:inherit}button:not(:disabled),summary,a{cursor:pointer}button:focus-visible,a:focus-visible,summary:focus-visible{outline-offset:4px;outline:3px solid #1875d1}img{width:100%;display:block}p,h1,h2,h3{margin-top:0}.shell{width:min(1180px,100% - 48px);margin-inline:auto}.site-header{z-index:20;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);background:linear-gradient(90deg,#fffdf7f0,#f8f3e8eb);border-bottom:1px solid #7a6f5c24;position:relative;box-shadow:0 6px 24px #4a3f2c0a}.header-inner{justify-content:space-between;align-items:center;gap:24px;min-height:82px;display:flex}.brand{align-items:center;gap:13px;display:inline-flex}.brand-button{background:0 0;border:0;border-radius:16px;padding:4px 8px 4px 4px}.brand-button:hover{background:#d95c3f12}.brand-mark{color:#fff;background:linear-gradient(145deg, #e66a4b, var(--tomato));border:1px solid #ffffffad;border-radius:50% 50% 44% 56%;place-items:center;width:42px;height:42px;font-family:Noto Sans SC,sans-serif;font-size:1rem;font-weight:800;display:grid;box-shadow:0 7px 18px #aa3d2933,0 0 0 4px #d95c3f14}.brand-copy{flex-direction:column;align-items:flex-start;gap:1px;display:flex}.brand-copy strong{letter-spacing:-.035em;font-family:Noto Serif SC,serif;font-size:1.26rem;line-height:1.1}.brand-copy small{color:var(--muted);letter-spacing:.13em;font-size:.62rem;font-weight:600}.header-actions,.header-actions>*{align-items:center;display:flex}.header-actions{gap:12px}.camera-chip{border:1px solid var(--line);min-height:42px;color:var(--muted);background:#fffdf7c7;border-radius:999px;gap:8px;padding:9px 15px;font-size:.82rem;box-shadow:inset 0 1px #fffc}.camera-chip-button{appearance:none}.camera-chip-button:hover{color:var(--green-dark);border-color:var(--green);background:var(--paper)}.status-dot{border-radius:50%;flex:none;width:9px;height:9px}.status-dot-off{background:#929087;box-shadow:0 0 0 4px #92908724}.status-dot-pending{background:#b9791d;box-shadow:0 0 0 4px #b9791d24}.status-dot-running{background:#3f7d49;box-shadow:0 0 0 4px #3f7d4926}.status-dot-error{background:var(--tomato);box-shadow:0 0 0 4px #d95c3f24}.help-trigger{background:0 0;border:0;border-radius:999px;min-height:42px;padding:9px 14px;font-size:.88rem;font-weight:700}.help-trigger:hover{color:var(--green-dark);background:#536b501a}.camera-panel{z-index:18;border-bottom:1px solid var(--line);background:#eee7da;padding-block:30px 34px;position:relative;box-shadow:0 16px 35px #4a3f2c17}.camera-panel-inner{gap:24px;display:grid}.camera-panel-heading{justify-content:space-between;align-items:flex-start;gap:24px;display:flex}.camera-panel-heading .eyebrow{margin-bottom:7px}.camera-panel-heading h2{margin-bottom:0;font-family:Noto Serif SC,serif;font-size:2rem}.camera-panel-close{border:1px solid var(--line);background:var(--paper);border-radius:50%;place-items:center;width:42px;height:42px;font-size:1.35rem;display:grid}.camera-panel-close:hover{border-color:var(--tomato);color:var(--tomato-dark)}.camera-panel-grid{grid-template-columns:minmax(0,1.06fr) minmax(340px,.94fr);align-items:stretch;gap:34px;display:grid}.camera-preview{aspect-ratio:4/3;border-radius:var(--radius-medium);background:#292d29;align-self:start;width:100%;min-height:300px;position:relative;overflow:hidden;box-shadow:0 12px 32px #23262229}.camera-preview video{object-fit:cover;opacity:0;width:100%;height:100%;transition:opacity .18s;position:absolute;inset:0;transform:scaleX(-1)}.camera-preview.is-running video{opacity:1}.camera-preview.has-hand{box-shadow:0 0 0 3px #f1c66cb8,0 12px 32px #23262229}.hand-overlay{z-index:2;pointer-events:none;width:100%;height:100%;position:absolute;inset:0;transform:scaleX(-1)}.gesture-cooldown-screen{z-index:4;color:#fff;text-align:center;-webkit-backdrop-filter:blur(7px);backdrop-filter:blur(7px);background:#232823d1;place-content:center;justify-items:center;gap:10px;padding:28px;display:grid;position:absolute;inset:0}.gesture-cooldown-screen strong{font-size:clamp(1.25rem,2.5vw,1.8rem)}.gesture-cooldown-screen p{color:#ffffffd1;max-width:420px;margin:0;line-height:1.7}.cooldown-symbol{font-size:2rem}.cooldown-progress{background:#fff3;border-radius:999px;width:min(260px,75%);height:5px;margin-top:8px;overflow:hidden}.cooldown-progress:after{border-radius:inherit;background:var(--yellow);content:"";transform-origin:0;width:100%;height:100%;animation:cooldown-progress var(--cooldown-duration) linear forwards;display:block}.camera-preview-placeholder{color:#ffffffb8;text-align:center;place-content:center;justify-items:center;gap:12px;transition:opacity .18s;display:grid;position:absolute;inset:0}.camera-preview-placeholder>span{font-size:3rem}.camera-preview.is-running .camera-preview-placeholder{opacity:0;pointer-events:none}.camera-preview-badge,.hand-preview-badge{z-index:3;color:#fff;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#181c18c7;border-radius:999px;align-items:center;gap:8px;padding:8px 12px;font-size:.8rem;font-weight:700;display:inline-flex;position:absolute;bottom:16px}.camera-preview-badge{left:16px}.hand-preview-badge{right:16px}.camera-controls{flex-direction:column;align-items:stretch;padding:4px 0;display:flex}.camera-privacy{border-left:3px solid var(--green);color:var(--muted);background:#fffdf79e;margin-bottom:20px;padding:14px 16px;font-size:.84rem;line-height:1.65}.camera-privacy strong{color:var(--ink)}.camera-device-field{margin-bottom:8px;font-size:.82rem;font-weight:700}.camera-controls select{border:1px solid var(--line);width:100%;min-height:46px;color:var(--ink);background:var(--paper);border-radius:12px;padding:9px 40px 9px 13px}.camera-controls select:focus-visible{outline-offset:3px;outline:3px solid #1875d1}.camera-controls select:disabled{color:#77746c;background:#e3ddd1}.camera-field-help,.camera-next-step{color:var(--muted);font-size:.76rem;line-height:1.55}.camera-field-help{margin:7px 0 15px}.camera-status-copy,.hand-status-copy{margin-bottom:14px}.camera-status-copy strong,.hand-status-copy strong{margin-bottom:4px;display:block}.camera-status-copy p,.hand-status-copy p{color:var(--muted);margin-bottom:0;font-size:.86rem;line-height:1.6}.hand-status-copy{background:#fffdf794;border-radius:12px;padding:12px 14px}.camera-control-actions{flex-wrap:wrap;gap:10px;display:flex}.camera-next-step{margin:auto 0 0;padding-top:18px}.camera-next-step.gesture-mode-hints{background:#fffdf794;border-radius:14px;margin-top:16px;padding:14px 16px}.gesture-mode-hints{gap:7px;display:grid}.gesture-mode-hints strong{color:var(--ink);font-size:.8rem}.gesture-mode-hints span{color:var(--muted)}.gesture-mode-hints b{color:var(--green-dark)}.gesture-mode-hints small{color:var(--muted);font-size:.7rem}.eyebrow{color:var(--tomato-dark);letter-spacing:.15em;text-transform:uppercase;margin-bottom:14px;font-size:.77rem;font-weight:700}.hero{isolation:isolate;grid-template-columns:minmax(0,1.25fr) minmax(320px,.75fr);align-items:center;gap:80px;min-height:calc(100svh - 82px);padding-block:92px 86px;display:grid;position:relative}.hero-after-camera{min-height:100svh}.hero:before{z-index:-1;content:"";background:radial-gradient(circle,#f1c66c33,#f1c66c00 68%);border-radius:50%;width:430px;height:430px;position:absolute;top:8%;left:-23%}.hero:after{z-index:-1;content:"";border:1px solid #536b5014;border-radius:50%;width:310px;height:310px;position:absolute;bottom:7%;right:-7%}.hero-copy{max-width:730px}.hero-eyebrow{letter-spacing:.12em;background:#fffdf7a8;border:1px solid #d95c3f29;border-radius:999px;align-items:center;gap:8px;width:fit-content;padding:8px 12px;display:inline-flex}.hero-eyebrow>span{background:var(--tomato);border-radius:50%;width:7px;height:7px;box-shadow:0 0 0 4px #d95c3f1a}.hero h1,.detail-intro h1,.step-content h1,.overview-heading h1,.error-page h1{letter-spacing:-.055em;font-family:Noto Serif SC,serif}.hero h1{margin-bottom:26px;font-size:clamp(3rem,6.7vw,6.3rem);line-height:1.04}.hero h1 span{color:var(--tomato)}.hero-lead{max-width:690px;color:var(--muted);margin-bottom:22px;font-size:1.04rem;line-height:1.85}.hero-capabilities{flex-wrap:wrap;gap:9px;margin-bottom:28px;display:flex}.hero-capabilities span{color:var(--muted);background:#fffdf794;border:1px solid #7a6f5c29;border-radius:999px;padding:8px 12px;font-size:.75rem}.hero-capabilities strong{color:var(--green-dark);letter-spacing:.05em;margin-right:4px;font-size:.72rem}.text-link{color:var(--green-dark);text-underline-offset:6px;font-weight:700;text-decoration-thickness:1px}.text-link-button{background:#fffdf7b8;border:1px solid #354b3640;border-radius:999px;align-items:center;gap:14px;min-height:48px;padding:5px 6px 5px 17px;display:inline-flex}.text-link-button:hover{color:#fff;border-color:var(--green-dark);background:var(--green-dark)}.hero-link-arrow{color:#fff;background:var(--green);border-radius:50%;place-items:center;width:36px;height:36px;transition:transform .16s;display:grid}.text-link-button:hover .hero-link-arrow{color:var(--green-dark);background:#fff;transform:translateY(2px)}.hero-note{background:linear-gradient(145deg,#fffdf7eb,#eee7daad);border:1px solid #536b502b;border-radius:26px;padding:30px;position:relative;overflow:hidden;box-shadow:0 22px 55px #4a3f2c17}.hero-note:after{content:"";border:22px solid #536b5012;border-radius:50%;width:120px;height:120px;position:absolute;bottom:-58px;right:-48px}.hero-note-heading{color:var(--tomato-dark);letter-spacing:.12em;align-items:center;gap:10px;margin-bottom:28px;font-size:.72rem;font-weight:800;display:flex}.hero-note-icon{width:34px;height:34px;color:var(--green);background:#536b501a;border-radius:50%;place-items:center;font-size:1.2rem;line-height:1;display:grid}.hero-note>strong{margin-bottom:10px;font-family:Noto Serif SC,serif;font-size:1.55rem;display:block}.hero-note>p{color:var(--muted);margin:0;font-size:.9rem;line-height:1.75}.hero-note-points{color:var(--green-dark);gap:10px;margin-top:24px;font-size:.78rem;font-weight:700;display:grid}.hero-note-points span{align-items:center;gap:9px;display:flex}.hero-note-points span:before{background:var(--yellow);content:"";border-radius:50%;flex:none;width:7px;height:7px;box-shadow:0 0 0 4px #f1c66c24}.recipe-section{padding-block:70px 100px}.section-heading,.overview-heading{justify-content:space-between;align-items:end;gap:48px;margin-bottom:38px;display:flex}.section-heading h2,.overview-heading h1,.content-panel h2{letter-spacing:-.04em;margin-bottom:0;font-family:Noto Serif SC,serif;font-size:clamp(2rem,4vw,3.2rem)}.section-heading>p,.overview-heading>p{max-width:520px;color:var(--muted);margin-bottom:4px;line-height:1.75}.recipe-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:24px;display:grid}.recipe-card{border-radius:var(--radius-large);background:var(--paper);animation:.52s both card-in;animation-delay:var(--card-delay);border:1px solid #7a6f5c29;transition:transform .18s,box-shadow .18s;overflow:hidden;box-shadow:0 10px 32px #4a3f2c0f}.recipe-card:hover{box-shadow:var(--shadow);transform:translateY(-5px)}.recipe-card-image-wrap,.detail-image-wrap,.cooking-visual,.overview-image-wrap{background:#eee5d4;position:relative;overflow:hidden}.recipe-card-image-wrap{aspect-ratio:3/2}.recipe-card-image,.detail-image,.step-image,.overview-image{object-fit:cover;height:100%}.recipe-card-image{transition:transform .5s}.recipe-card:hover .recipe-card-image{transform:scale(1.035)}.difficulty-badge,.step-badge{color:var(--green-dark);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);letter-spacing:.04em;background:#fffdf7e0;border-radius:999px;padding:7px 11px;font-size:.75rem;font-weight:700;position:absolute;box-shadow:0 5px 18px #30281c1f}.difficulty-badge{top:16px;right:16px}.recipe-card-body{padding:25px}.recipe-meta{color:var(--muted);flex-wrap:wrap;gap:8px 16px;font-size:.78rem;display:flex}.recipe-meta span+span:before{content:"·";margin-right:16px}.recipe-card h2{margin:16px 0 9px;font-family:Noto Serif SC,serif;font-size:1.5rem}.recipe-card-body>p{min-height:3.3em;color:var(--muted);margin-bottom:22px;font-size:.9rem;line-height:1.7}.button{background:0 0;border:1px solid #0000;border-radius:999px;justify-content:center;align-items:center;gap:10px;min-height:44px;padding:11px 18px;font-weight:700;transition:transform .15s,background .15s,color .15s,border-color .15s;display:inline-flex}.button:not(:disabled):active{transform:translateY(1px)}.button-card{width:100%;color:var(--green-dark);border-top:1px solid var(--line);border-radius:0;justify-content:space-between;padding-inline:0}.button-card:hover{color:var(--tomato-dark)}.button-primary,.button-timer{color:#fff;background:var(--tomato)}.button-primary:hover,.button-timer:hover{background:var(--tomato-dark)}.button-secondary{color:#fff;background:var(--green)}.button-secondary:hover{background:var(--green-dark)}.button-ghost{border-color:var(--line);background:#fffdf7b8}.button-ghost:hover{border-color:var(--green);background:#fff}.button-large{min-height:58px;padding:15px 26px;font-size:1rem}.button-small{min-height:38px;padding:8px 14px;font-size:.82rem}.button:disabled,.button-disabled{color:#77746c;border-color:var(--line);cursor:not-allowed;background:#e9e4d9}.button-complete{color:#fff;background:var(--green-dark)}.future-card{border-radius:var(--radius-large);background:#fffdf775;border:1px dashed #b6aa96;justify-content:space-between;align-items:end;gap:32px;margin-bottom:100px;padding:42px;display:flex}.future-card h2{margin-bottom:10px;font-family:Noto Serif SC,serif;font-size:2rem}.future-card p:last-child{max-width:650px;color:var(--muted);margin-bottom:0;line-height:1.7}.page,.cooking-page{padding-block:40px 100px}.back-link{min-height:44px;color:var(--green-dark);background:0 0;border:0;margin-bottom:30px;padding:8px 0;font-size:.9rem;font-weight:700}.back-link:hover{color:var(--tomato-dark)}.detail-hero{grid-template-columns:minmax(0,1.08fr) minmax(360px,.92fr);align-items:center;gap:60px;display:grid}.detail-image-wrap{aspect-ratio:3/2;border-radius:var(--radius-large);box-shadow:var(--shadow)}.detail-intro h1{margin-bottom:18px;font-size:clamp(2.7rem,5.4vw,5.2rem);line-height:1.08}.detail-summary{color:var(--muted);margin-bottom:28px;font-size:1.05rem;line-height:1.8}.stat-row{border-block:1px solid var(--line);grid-template-columns:repeat(3,1fr);margin-bottom:34px;display:grid}.stat-row div{padding:18px 12px 18px 0}.stat-row div+div{border-left:1px solid var(--line);padding-left:18px}.stat-row span,.stat-row strong{display:block}.stat-row span{color:var(--muted);margin-bottom:6px;font-size:.75rem}.stat-row strong{font-size:.9rem}.detail-columns{grid-template-columns:minmax(280px,.72fr) minmax(0,1.28fr);align-items:start;gap:24px;margin-top:74px;display:grid}.content-panel{border-radius:var(--radius-large);background:var(--paper);border:1px solid #7a6f5c2b;padding:34px}.content-panel h2{font-size:2rem}.ingredient-list,.steps-preview ol{margin:26px 0 0;padding:0;list-style:none}.ingredient-list li{border-bottom:1px solid var(--line);justify-content:space-between;gap:22px;padding-block:14px;display:flex}.ingredient-list strong{text-align:right}.steps-preview li{border-bottom:1px solid var(--line);grid-template-columns:48px 1fr;gap:18px;padding-block:19px;display:grid}.step-number{color:var(--tomato);font-family:Noto Serif SC,serif;font-size:1.25rem}.steps-preview p{color:var(--muted);margin:6px 0 0;font-size:.88rem;line-height:1.7}.global-timer{z-index:15;color:#fff;background:var(--green-dark);position:sticky;top:0;box-shadow:0 8px 24px #1c2e1e2e}.global-timer.timer-finished{background:var(--tomato-dark)}.timer-inner{grid-template-columns:minmax(170px,1fr) auto minmax(280px,1fr);align-items:center;gap:30px;min-height:78px;display:grid}.timer-copy span,.timer-copy strong{display:block}.timer-kicker{color:#ffffffb3;letter-spacing:.1em;margin-bottom:3px;font-size:.72rem}.timer-clock{font-variant-numeric:tabular-nums;letter-spacing:.05em;font-size:2rem;font-weight:700}.timer-actions{justify-content:flex-end;align-items:center;gap:8px;display:flex}.global-timer .button-secondary,.global-timer .button-primary{color:var(--green-dark);background:#fff}.global-timer .button-ghost{color:#fff;background:0 0;border-color:#ffffff6b}.sound-toggle{color:#ffffffc7;background:0 0;border:0;align-items:center;gap:5px;min-height:38px;padding:7px 10px;font-size:.76rem;display:inline-flex}.timer-close{color:#fff;background:0 0;border:1px solid #ffffff6b;border-radius:50%;flex:none;place-items:center;width:38px;height:38px;font-size:1.25rem;line-height:1;display:grid}.timer-close:hover{color:var(--green-dark);background:#fff}.timer-progress{background:#ffffff24;height:4px}.timer-progress span{background:var(--yellow);height:100%;transition:width .25s linear;display:block}.cooking-toolbar{justify-content:space-between;align-items:center;gap:24px;display:flex}.cooking-toolbar .back-link{margin-bottom:0}.progress-copy{text-align:right}.progress-copy span,.progress-copy strong{display:block}.progress-copy span{color:var(--muted);font-size:.76rem}.progress-copy strong{margin-top:3px;font-size:.95rem}.step-progress{background:#e3dacb;border-radius:999px;height:5px;margin:18px 0 34px;overflow:hidden}.step-progress span{border-radius:inherit;background:var(--tomato);height:100%;transition:width .28s;display:block}.cooking-layout{grid-template-columns:minmax(0,1.1fr) minmax(380px,.9fr);align-items:center;gap:54px;display:grid}.cooking-visual{aspect-ratio:3/2;border-radius:var(--radius-large);box-shadow:var(--shadow)}.step-badge{color:#fff;background:#354b36e6;top:18px;left:18px}.step-content h1{margin-bottom:24px;font-size:clamp(2.5rem,5vw,4.8rem);line-height:1.1}.step-description{margin-bottom:26px;font-size:clamp(1.12rem,2vw,1.4rem);line-height:1.85}.tips{border-left:3px solid var(--yellow);background:#f1c66c24;margin-bottom:24px;padding:18px 20px}.tips ul{color:var(--muted);margin:7px 0 0;padding-left:18px;font-size:.88rem;line-height:1.65}.step-timer-card,.no-timer{border:1px solid var(--line);border-radius:var(--radius-medium);background:#fffdf7b8;align-items:center;gap:14px;padding:18px;display:flex}.step-timer-card>div{margin-right:auto}.step-timer-card span,.step-timer-card strong{display:block}.step-timer-card span{color:var(--muted);font-size:.72rem}.step-timer-card strong{font-variant-numeric:tabular-nums;margin-top:2px;font-size:1.1rem}.no-timer>span{color:var(--green);font-size:1.8rem}.no-timer p{color:var(--muted);margin:4px 0 0;font-size:.84rem}.gesture-mode-hints-inline{flex-wrap:wrap;gap:7px;margin-top:9px;display:flex}.gesture-mode-hints-inline span{background:#536b5017;border-radius:999px;padding:5px 8px;font-size:.72rem}.gesture-actions{flex-wrap:wrap;justify-content:flex-end;gap:10px;display:flex}.step-navigation{border-top:1px solid var(--line);grid-template-columns:1fr auto 1fr;gap:14px;margin-top:26px;padding-top:26px;display:grid}.step-navigation .button:last-child{justify-self:stretch}.overview-heading{margin-top:24px}.overview-pointer-status{color:var(--green-dark);background:#536b5012;border:1px solid #536b5038;border-radius:14px;align-items:center;gap:10px;margin:-14px 0 28px;padding:13px 16px;font-size:.8rem;display:flex}.overview-pointer-status>span:last-child{color:var(--muted);margin-left:auto}.overview-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:22px;display:grid}.overview-card{border-radius:var(--radius-medium);text-align:left;background:var(--paper);border:2px solid #0000;padding:0;transition:transform .16s,border-color .16s,box-shadow .16s;overflow:hidden;box-shadow:0 8px 26px #4a3f2c0f}.overview-card:hover{box-shadow:var(--shadow);transform:translateY(-4px)}.overview-card.is-current{border-color:var(--tomato);box-shadow:0 0 0 4px #d95c3f1f}.overview-image-wrap{aspect-ratio:3/2}.overview-card-body{padding:19px}.overview-card-body span{color:var(--tomato-dark);margin-bottom:7px;font-size:.72rem;font-weight:700;display:block}.overview-card-body strong{font-size:1.04rem;display:block}.overview-card-body p{color:var(--muted);-webkit-line-clamp:2;-webkit-box-orient:vertical;margin:9px 0 0;font-size:.82rem;line-height:1.6;display:-webkit-box;overflow:hidden}.virtual-cursor{z-index:250;pointer-events:none;background:#d95c3fe6;border:3px solid #fff;border-radius:50%;width:34px;height:34px;transition:width .1s,height .1s,background .1s;position:fixed;transform:translate(-50%,-50%);box-shadow:0 0 0 3px #354b36e0,0 7px 20px #1f2a1f40}.virtual-cursor[hidden]{display:none}.virtual-cursor:before{content:"";background:conic-gradient(var(--yellow) var(--target-dwell-progress,0deg), #ffffff3d 0);opacity:0;border-radius:50%;transition:opacity .1s;position:absolute;inset:-10px;-webkit-mask:radial-gradient(farthest-side,#0000 calc(100% - 4px),#000 0);mask:radial-gradient(farthest-side,#0000 calc(100% - 4px),#000 0)}.virtual-cursor>span{background:#fff;border-radius:50%;width:7px;height:7px;margin:auto;position:absolute;inset:0}.virtual-cursor.is-over-target{background:#536b50e6;width:42px;height:42px;animation:.9s ease-in-out infinite alternate cursor-target-pulse}.virtual-cursor.is-over-target:not(.is-target-ready):before{opacity:1}.virtual-cursor.is-target-ready{background:var(--green);animation:.32s ease-out both dwell-selected;box-shadow:0 0 0 5px #f1c66cd1,0 7px 20px #1f2a1f40}.virtual-cursor.is-selection-locked{background:#536b50c7;animation:none;box-shadow:0 0 0 5px #ffffff80,0 7px 20px #1f2a1f40}.virtual-cursor.is-selection-locked:before{opacity:0}.is-gesture-hovered{outline:4px solid var(--yellow)!important;outline-offset:5px!important;box-shadow:0 0 0 7px #f1c66c33, var(--shadow)!important}.notification-region{z-index:260;pointer-events:none;transition:right .22s;position:fixed;bottom:24px;right:24px}#app.gesture-sidebar-open .notification-region{right:384px}.notification{border-left:4px solid var(--green);pointer-events:auto;background:#fff;border-radius:14px;align-items:flex-start;gap:18px;max-width:min(560px,100vw - 48px);padding:15px 16px 15px 19px;animation:.22s both notification-in;display:flex;box-shadow:0 15px 40px #30281c38}.notification-success{border-left-color:var(--green)}.notification-error{border-left-color:var(--tomato)}.notification-message{white-space:pre-line;line-height:1.65}.notification button{background:#eee9df;border:0;border-radius:50%;flex:none;place-items:center;width:30px;height:30px;font-size:1.1rem;display:grid}.gesture-sidebar{z-index:40;-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);background:linear-gradient(155deg,#fffdf7fa,#eee7daf5);border:1px solid #536b5033;border-right:0;border-radius:28px 0 0 28px;width:360px;transition:transform .22s;position:fixed;top:94px;bottom:20px;right:0;transform:translate(100%);box-shadow:-18px 22px 55px #30281c29}.gesture-sidebar.is-open{transform:translate(0)}.gesture-sidebar.is-active{border-color:#536b507a}.gesture-sidebar-tab{min-height:134px;color:var(--green-dark);background:#fffdf7f7;border:1px solid #536b5047;border-right:0;border-radius:18px 0 0 18px;flex-direction:column;justify-content:center;align-items:center;gap:8px;padding:12px 10px;display:flex;position:absolute;top:50%;left:-50px;transform:translateY(-50%);box-shadow:-8px 10px 24px #30281c24}.gesture-sidebar-tab:hover{color:var(--tomato-dark);background:#fff}.gesture-sidebar-tab>span:nth-child(2){writing-mode:vertical-rl;letter-spacing:.15em;font-size:.75rem;font-weight:800}.gesture-sidebar-tab b{font-size:1.15rem;line-height:1}.gesture-sidebar-panel{height:100%;padding:26px 24px;overflow-y:auto}.gesture-sidebar-heading{align-items:center;gap:14px;display:flex}.gesture-dock-symbol{width:46px;height:46px;color:var(--paper);background:linear-gradient(145deg, var(--green), var(--green-dark));border-radius:16px;flex:none;place-items:center;font-size:1.25rem;display:grid;position:relative;box-shadow:0 9px 20px #354b3633}.gesture-dock-symbol .status-dot{border:2px solid var(--paper);position:absolute;top:-3px;right:-3px}.gesture-dock-copy{min-width:0}.gesture-dock-copy>span{color:var(--tomato-dark);letter-spacing:.12em;margin-bottom:2px;font-size:.62rem;font-weight:800;display:block}.gesture-dock-copy strong{text-overflow:ellipsis;white-space:nowrap;font-size:.9rem;display:block;overflow:hidden}.gesture-sidebar-description{border-left:3px solid var(--green);color:var(--muted);background:#ffffff8a;margin:18px 0 20px;padding:13px 15px;font-size:.8rem;line-height:1.65}.gesture-dock-modes{gap:9px;display:grid}.gesture-dock-modes span{min-height:62px;color:var(--muted);background:#ffffff94;border:1px solid #536b5024;border-radius:15px;grid-template-columns:34px 1fr;align-items:center;column-gap:8px;padding:11px 12px;display:grid}.gesture-dock-modes b{width:32px;height:32px;color:var(--green-dark);background:#536b501a;border-radius:11px;grid-row:1/3;place-items:center;font-size:1rem;display:grid}.gesture-dock-modes strong{color:var(--ink);font-size:.78rem}.gesture-dock-modes small{font-size:.68rem}.gesture-dock-modes .is-contextual{background:#d95c3f12;border-color:#d95c3f3d}.gesture-dock-modes .is-contextual b{color:var(--tomato-dark);background:#d95c3f1c}.gesture-sidebar-tip{color:var(--muted);background:#f1c66c24;border-radius:14px;align-items:flex-start;gap:9px;margin-top:17px;padding:12px 13px;font-size:.72rem;line-height:1.6;display:flex}.gesture-sidebar-tip>span{border:1px solid;border-radius:50%;flex:none;place-items:center;width:20px;height:20px;font-family:serif;font-weight:700;display:grid}.gesture-sidebar-tip p{margin:0}.gesture-dock-actions{gap:8px;margin-top:20px;display:grid}.gesture-dock-actions .button{width:100%}.completion-dialog-backdrop{z-index:200;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#23231e94;place-items:center;padding:24px;display:grid;position:fixed;inset:0}.completion-dialog{border-radius:var(--radius-large);background:var(--paper);text-align:center;border:1px solid #7a6f5c33;width:min(700px,100%);max-height:calc(100vh - 48px);padding:clamp(28px,5vw,48px);overflow-y:auto;box-shadow:0 28px 80px #201d1752}.completion-dialog.is-entering{animation:.18s both dialog-in}.completion-mark{color:#fff;background:var(--green);border-radius:50%;place-items:center;width:64px;height:64px;margin:0 auto 18px;font-size:2rem;font-weight:700;display:grid}.completion-dialog .eyebrow{margin-bottom:9px}.completion-dialog h2{letter-spacing:-.04em;margin-bottom:12px;font-family:Noto Serif SC,serif;font-size:clamp(2rem,5vw,3.2rem)}.completion-dialog>p:not(.eyebrow){max-width:560px;color:var(--muted);margin:0 auto 26px;line-height:1.75}.completion-recipe-list{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;display:grid}.completion-recipe-option{border:1px solid var(--line);min-height:112px;color:var(--ink);background:var(--cream);text-align:left;border-radius:16px;flex-direction:column;align-items:flex-start;gap:5px;padding:18px;display:flex}.completion-recipe-option:hover{border-color:var(--green);background:#fff}.completion-recipe-option span,.completion-recipe-option small{color:var(--muted);font-size:.76rem}.completion-recipe-option strong{font-size:1.02rem}.completion-dialog-actions{flex-wrap:wrap;justify-content:center;gap:10px;margin-top:24px;display:flex}.help-dialog-backdrop{z-index:210;-webkit-backdrop-filter:blur(9px);backdrop-filter:blur(9px);background:#23231e99;place-items:center;padding:24px;display:grid;position:fixed;inset:0}.help-dialog{background:var(--paper);border:1px solid #7a6f5c2e;border-radius:30px;width:min(860px,100%);max-height:calc(100vh - 48px);overflow-y:auto;box-shadow:0 30px 90px #19181461}.help-dialog.is-entering{animation:.18s both dialog-in}.help-dialog-header{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:20px;padding:19px 22px;display:flex}.help-dialog-header>div{align-items:baseline;gap:10px;display:flex}.help-dialog-header span{color:var(--muted);letter-spacing:.08em;font-size:.76rem;font-weight:700}.help-dialog-header strong{color:var(--tomato-dark);font-size:.76rem}.help-dialog-close{border:1px solid var(--line);background:var(--cream);border-radius:50%;flex:none;place-items:center;width:40px;height:40px;font-size:1.25rem;display:grid}.help-dialog-close:hover{color:var(--tomato-dark);border-color:var(--tomato);background:#fff}.help-slide{background:radial-gradient(circle at 8% 12%,#f1c66c38,#0000 15rem);grid-template-columns:150px minmax(0,1fr);align-items:start;gap:clamp(28px,5vw,54px);min-height:420px;padding:clamp(30px,5vw,52px);display:grid}.help-slide-icon{width:140px;height:140px;color:var(--paper);background:linear-gradient(145deg, var(--green), var(--green-dark));border:1px solid #536b502e;border-radius:42px 42px 34px 48px;place-items:center;font-family:Noto Serif SC,serif;font-size:4rem;display:grid;box-shadow:0 20px 35px #354b3633}.help-slide-content h2{letter-spacing:-.045em;margin-bottom:12px;font-family:Noto Serif SC,serif;font-size:clamp(2rem,4.5vw,3.35rem);line-height:1.14}.help-slide-content>p:not(.eyebrow):not(.help-slide-note){color:var(--muted);margin-bottom:22px;line-height:1.75}.help-slide-content ol{gap:10px;margin:0;padding:0;list-style:none;display:grid}.help-slide-content li{background:var(--cream);border-radius:13px;grid-template-columns:30px 1fr;align-items:center;gap:10px;padding:11px 13px;display:grid}.help-slide-content li>span{color:#fff;background:var(--tomato);border-radius:50%;place-items:center;width:28px;height:28px;font-size:.75rem;font-weight:800;display:grid}.help-slide-content li p{margin:0;line-height:1.55}.help-slide-note{border-left:3px solid var(--yellow);color:var(--muted);background:#f1c66c21;align-items:flex-start;gap:10px;margin:17px 0 0;padding:12px 14px;font-size:.8rem;line-height:1.6;display:flex}.help-slide-note span{border:1px solid;border-radius:50%;flex:none;place-items:center;width:20px;height:20px;font-family:serif;font-weight:700;display:grid}.help-dialog-footer{border-top:1px solid var(--line);grid-template-columns:auto 1fr auto;align-items:center;gap:18px;padding:17px 22px 20px;display:grid}.help-page-dots{gap:6px;display:flex}.help-page-dots span{background:#d0cabd;border-radius:50%;width:8px;height:8px;transition:width .16s,background .16s}.help-page-dots .is-current{background:var(--tomato);border-radius:999px;width:24px}.help-dialog-footer>p{color:var(--muted);text-align:center;margin:0;font-size:.72rem}.help-dialog-footer>div:last-child{gap:8px;display:flex}.error-page,.fatal-error{text-align:center;flex-direction:column;justify-content:center;align-items:center;min-height:calc(100vh - 170px);display:flex}.error-page h1,.fatal-error h1{margin-bottom:14px;font-size:clamp(2.2rem,5vw,4rem)}.error-page>p:not(.eyebrow),.fatal-error p{max-width:580px;color:var(--muted);margin-bottom:28px;line-height:1.75}.error-mark{border:2px solid var(--tomato);width:72px;height:72px;color:var(--tomato);border-radius:50%;place-items:center;margin-bottom:22px;font-family:serif;font-size:2.6rem;display:grid}.site-footer{border-top:1px solid var(--line);color:var(--muted);padding-block:28px;font-size:.78rem}.site-footer .shell{justify-content:space-between;gap:20px;display:flex}.image-fallback{object-fit:cover}@keyframes card-in{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:translateY(0)}}@keyframes notification-in{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes cooldown-progress{0%{transform:scaleX(1)}to{transform:scaleX(0)}}@keyframes dialog-in{0%{opacity:0;transform:translateY(14px)scale(.98)}to{opacity:1;transform:translateY(0)scale(1)}}@keyframes cursor-target-pulse{0%{box-shadow:0 0 0 2px #536b50a6,0 7px 20px #1f2a1f38}to{box-shadow:0 0 0 7px #536b5024,0 7px 20px #1f2a1f38}}@keyframes dwell-selected{0%{box-shadow:0 0 0 2px #f1c66cdb}to{box-shadow:0 0 0 13px #f1c66c00}}@media (width>=961px) and (height<=820px){.cooking-page{padding-top:22px}.cooking-toolbar .back-link{min-height:34px;padding-block:4px}.step-progress{height:4px;margin:10px 0 22px}.cooking-layout{gap:42px}.gesture-sidebar{top:82px;bottom:10px}.gesture-sidebar-panel{padding-block:20px}.step-navigation{margin-top:18px;padding-top:18px}}@media (width>=961px){#app.gesture-sidebar-open .hero,#app.gesture-sidebar-open .detail-hero,#app.gesture-sidebar-open .cooking-layout,#app.gesture-sidebar-open .camera-panel-grid{grid-template-columns:1fr}#app.gesture-sidebar-open .hero{gap:36px;min-height:auto}#app.gesture-sidebar-open .detail-hero,#app.gesture-sidebar-open .cooking-layout{gap:34px}#app.gesture-sidebar-open .detail-columns{grid-template-columns:1fr}#app.gesture-sidebar-open .recipe-grid,#app.gesture-sidebar-open .overview-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=960px){#app.gesture-sidebar-open{padding-right:0}#app.gesture-sidebar-open .notification-region{right:24px}.gesture-sidebar{width:min(340px,100vw - 54px);top:82px;bottom:12px}.hero,.detail-hero,.cooking-layout,.camera-panel-grid{grid-template-columns:1fr}.hero{gap:40px;min-height:auto}.recipe-grid,.overview-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.detail-hero,.cooking-layout{gap:36px}.detail-columns{grid-template-columns:1fr}.timer-inner{grid-template-columns:1fr auto;padding-block:12px}.timer-actions{grid-column:1/-1;justify-content:flex-start}}@media (width<=680px){.shell{width:min(100% - 28px,1180px)}.header-inner{min-height:70px}.brand-mark{width:38px;height:38px}.brand-copy small{display:none}.camera-chip{padding-inline:10px;font-size:.76rem}.camera-panel{padding-block:24px}.camera-panel-heading h2{font-size:1.7rem}.camera-preview{min-height:220px}.camera-preview-badge,.hand-preview-badge{padding:7px 9px;font-size:.7rem;bottom:10px}.camera-preview-badge{left:10px}.hand-preview-badge{right:10px}.hero{padding-block:62px}.hero h1{font-size:clamp(2.7rem,15vw,4.2rem)}.hero-capabilities{gap:7px}.section-heading,.overview-heading,.future-card,.site-footer .shell{flex-direction:column;align-items:flex-start}.overview-pointer-status{flex-wrap:wrap;align-items:flex-start}.overview-pointer-status>span:last-child{width:100%;margin-left:19px}.recipe-grid,.overview-grid{grid-template-columns:1fr}.recipe-card-body>p{min-height:auto}.future-card{padding:28px}.page,.cooking-page{padding-block:28px 70px}.detail-intro h1,.step-content h1{font-size:clamp(2.35rem,13vw,3.6rem)}.stat-row{grid-template-columns:1fr}.stat-row div+div{border-left:0;border-top:1px solid var(--line);padding-left:0}.content-panel{padding:25px}.cooking-toolbar{align-items:flex-start}.step-description{font-size:1.1rem}.step-timer-card{flex-direction:column;align-items:stretch}.step-navigation{grid-template-columns:1fr 1fr}.step-navigation .button:nth-child(2){grid-area:1/1/auto/-1}.timer-inner{grid-template-columns:1fr auto;gap:12px}.timer-copy strong{text-overflow:ellipsis;white-space:nowrap;max-width:180px;overflow:hidden}.timer-clock{font-size:1.55rem}.timer-actions{overflow-x:auto}.notification-region{bottom:14px;right:14px}#app.gesture-sidebar-open .notification-region{right:14px}.gesture-sidebar-panel{padding:22px 18px}.completion-dialog-backdrop{padding:14px}.completion-recipe-list{grid-template-columns:1fr}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}
