:root{--bg:#1a1a1a;--text-1:#e8e4db;--text-2:#b5b0a8;--text-3:#8a8580;--line:#e8e4db26;--line-strong:#e8e4db40;--font-serif:"Cormorant Garamond", "Georgia", serif;--font-sans:-apple-system, BlinkMacSystemFont, "Segoe UI", system-ui, sans-serif}*{box-sizing:border-box;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;margin:0;padding:0}body{background-color:var(--bg);color:var(--text-1);font-family:var(--font-serif);overscroll-behavior-y:none;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.8' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='0.04'/%3E%3C/svg%3E");line-height:1.4}::-webkit-scrollbar{background:0 0;width:0}a{color:inherit;text-decoration:none}button{cursor:pointer;font-family:inherit}ul,ol{list-style:none}input,textarea{font-family:inherit}.app{flex-direction:column;max-width:600px;height:100dvh;margin:0 auto;display:flex;position:relative}.main{flex:1;padding-bottom:80px;overflow-y:auto}.header{border-bottom:1px solid var(--line);flex-shrink:0;justify-content:space-between;align-items:flex-end;padding:16px 32px;display:flex}.header-left{flex-direction:column;gap:8px;display:flex}.header-title{letter-spacing:.05em;color:var(--text-2);font-size:.85rem;font-weight:400}.search-trigger{color:var(--text-1);opacity:.7;background:0 0;border:none;font-size:1rem;font-style:italic}.nav{-webkit-backdrop-filter:blur(10px);border-top:1px solid var(--line);z-index:10;background:#1a1a1af2;justify-content:space-around;width:100%;max-width:600px;padding:16px 0;display:flex;position:fixed;bottom:0;left:50%;transform:translate(-50%)}.nav-item{color:var(--text-2);letter-spacing:.05em;text-transform:uppercase;background:0 0;border:none;font-size:.9rem;transition:color .2s}.nav-item.active{color:var(--text-1)}.meta-label{letter-spacing:.05em;color:var(--text-2);font-size:.95rem}.title-large{margin:4px 0 0;font-size:2.2rem;font-weight:400;line-height:1.1}.section-title{margin-bottom:12px;font-size:1.5rem;font-weight:400;line-height:1.2}.body-text{font-size:1.2rem;line-height:1.65}.italic{font-style:italic}.dim{color:var(--text-2)}.entry{border-bottom:1px solid var(--line);cursor:pointer;padding:48px 32px;transition:background .15s}.entry:active{background:#e8e4db08}.entry-header{grid-template-columns:1fr auto;gap:16px;margin-bottom:32px;display:grid}.entry-header-right{text-align:right}.card-image-ring{border:1px solid var(--text-1);border-radius:50%;justify-content:center;align-items:center;width:200px;height:200px;margin:0 auto 32px;padding:6px;display:flex}.card-image-ring img{object-fit:cover;border-radius:50%;width:100%;height:100%}.card-image-placeholder{background:linear-gradient(135deg,#2a2520 0%,#1a1816 100%);border-radius:50%;justify-content:center;align-items:center;width:100%;height:100%;display:flex}.card-image-placeholder span{letter-spacing:.12em;color:var(--text-2);opacity:.6;font-size:2.8rem;font-weight:400}.extracted-data{padding:0}.data-item{margin-bottom:10px;padding-left:16px;font-size:1.2rem;line-height:1.55;position:relative}.data-item:before{content:"·";color:var(--text-2);position:absolute;left:0}.qty{font-weight:600}.note{color:var(--text-2);font-size:1.05rem;font-style:italic}.knowledge-block{margin-top:8px}.search-overlay{z-index:20;background:#1a1a1af7;flex-direction:column;width:100%;max-width:600px;height:100dvh;padding:48px 32px;display:flex;position:fixed;top:0;left:50%;transform:translate(-50%)}.search-bar{justify-content:space-between;align-items:center;margin-bottom:24px;display:flex}.search-input{border:none;border-bottom:1px solid var(--line-strong);color:var(--text-1);background:0 0;outline:none;flex:1;padding:8px 0;font-size:1.4rem;font-style:italic}.search-close{color:var(--text-2);background:0 0;border:none;margin-left:16px;font-size:1.8rem;line-height:1}.search-results{flex:1;overflow-y:auto}.search-result{border-bottom:1px solid var(--line);cursor:pointer;justify-content:space-between;align-items:center;padding:16px 0;display:flex}.search-result:active{background:#e8e4db08}.result-title{margin-top:2px;font-size:1.3rem;font-weight:400}.page-intro{padding:48px 32px 32px}.collection-row{border-bottom:1px solid var(--line);cursor:pointer;justify-content:space-between;align-items:center;padding:24px 32px;display:flex}.collection-row:active{background:#e8e4db08}.collection-preview{margin-top:4px}.collection-count{text-align:right}.count-num{color:var(--text-1);font-size:1.4rem}.empty-state{text-align:center;padding:80px 32px}.detail-header{border-bottom:1px solid var(--line);padding:24px 32px 32px}.back-btn{color:var(--text-2);letter-spacing:.03em;background:0 0;border:none;margin-bottom:16px;padding:0;font-size:1rem}.detail-meta{margin-bottom:8px}.detail-title{letter-spacing:.01em;font-size:2.4rem;font-weight:400;line-height:1.1}.tag-row{flex-wrap:wrap;gap:8px;margin-top:12px;display:flex}.tag{letter-spacing:.08em;text-transform:uppercase;color:var(--text-2);border:1px solid var(--line-strong);border-radius:2px;padding:3px 10px;font-size:.75rem}.card-header-row{flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:16px;display:flex}.card-header-row .card-letter{margin-bottom:0}.card-header-row .card-title{border-bottom:none;flex:1;margin-bottom:0;padding-bottom:0}.card-action{margin-left:auto}.add-all-btn{border:1px solid var(--line-strong);color:var(--text-2);letter-spacing:.06em;text-transform:uppercase;background:0 0;border-radius:2px;padding:4px 12px;font-size:.8rem;transition:all .15s}.add-all-btn:hover{border-color:var(--text-1);color:var(--text-1)}.add-all-btn.added{border-color:var(--text-3);color:var(--text-3)}.detail-grid{background:var(--line);border-bottom:1px solid var(--line);grid-template-columns:1fr 1fr;gap:1px;display:grid}.detail-card{background:var(--bg);padding:28px 28px 32px;position:relative}.detail-card.full{grid-column:1/-1}.card-letter{border:1px solid var(--text-2);width:24px;height:24px;color:var(--text-2);border-radius:50%;justify-content:center;align-items:center;margin-bottom:12px;font-size:.8rem;font-weight:400;display:inline-flex}.card-title{letter-spacing:.06em;text-transform:uppercase;color:var(--text-2);border-bottom:1px solid var(--line);margin-bottom:16px;padding-bottom:8px;font-size:.8rem;font-weight:600}.card-body{font-size:1.1rem;line-height:1.6}.ingredient-list .ing-row{border-bottom:1px solid var(--line);align-items:center;gap:10px;padding:8px 0;font-size:1.1rem;display:flex}.ingredient-list .ing-row:last-child{border-bottom:none}.ing-add-btn{border:1px solid var(--line-strong);width:26px;height:26px;color:var(--text-2);background:0 0;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-size:1rem;line-height:1;transition:all .15s;display:flex}.ing-add-btn:hover{border-color:var(--text-1);color:var(--text-1)}.ing-add-btn.added{border-color:var(--text-3);color:var(--text-3);font-size:.75rem}.ing-content{flex:1;align-items:baseline;gap:8px;min-width:0;display:flex}.ingredient-list .qty{min-width:55px;color:var(--text-2);flex-shrink:0;font-size:1rem}.ingredient-list .ing-name{flex:1}.ingredient-list .note{font-size:.95rem}.sub-heading{letter-spacing:.08em;text-transform:uppercase;color:var(--text-3);margin:20px 0 10px;font-size:.75rem;font-weight:600}.step-list{counter-reset:step}.step-list li{counter-increment:step;border-bottom:1px solid var(--line);cursor:pointer;margin-bottom:16px;padding-bottom:16px;padding-left:28px;transition:opacity .2s;position:relative}.step-list li:last-child{border-bottom:none;margin-bottom:0;padding-bottom:0}.step-list li:before{content:counter(step);color:var(--text-3);font-size:.85rem;font-weight:600;transition:color .2s;position:absolute;top:2px;left:0}.step-list li.step-done{opacity:.4}.step-list li.step-done .step-action{text-decoration:line-through;-webkit-text-decoration-color:var(--text-3);text-decoration-color:var(--text-3)}.step-list li.step-done:before{color:var(--text-3);content:"✓"}.step-action{font-size:1.15rem;line-height:1.5;display:block}.step-visual{color:var(--text-2);margin-top:4px;font-size:1rem;font-style:italic;line-height:1.5;display:block}.tips-box{border-top:1px solid var(--line);margin-top:20px;padding-top:16px}.scene-entry{border-bottom:1px solid var(--line);gap:14px;padding:14px 0;display:flex}.scene-entry:last-child{border-bottom:none}.scene-ts{font-size:.8rem;font-weight:600;font-family:var(--font-sans);color:var(--text-3);white-space:nowrap;flex-shrink:0;min-width:65px;padding-top:2px}.scene-body{flex:1}.scene-visual{margin-bottom:6px;font-size:1.1rem;line-height:1.6}.scene-insight{color:var(--text-2);background:#e8e4db0a;border-radius:3px;margin-top:4px;padding:8px 10px;font-size:1rem;font-style:italic;line-height:1.5}.tx-row{border-bottom:1px solid var(--line);gap:12px;padding:8px 0;display:flex}.tx-row:last-child{border-bottom:none}.tx-ts{font-size:.8rem;font-weight:600;font-family:var(--font-sans);color:var(--text-3);white-space:nowrap;flex-shrink:0;min-width:65px}.tx-text{font-size:1.1rem;line-height:1.55}.detail-footer{text-align:center;padding:24px 32px}.source-file{justify-content:center;align-items:center;gap:8px;margin-bottom:2px;display:flex}.source-file-label{letter-spacing:.08em;text-transform:uppercase;color:var(--text-3);font-size:.75rem;font-weight:600}.source-file-name{font-size:.9rem;font-family:var(--font-sans);color:var(--text-2);letter-spacing:.02em;-webkit-user-select:all;user-select:all;cursor:text}.nav-badge{background:var(--text-2);min-width:18px;height:18px;color:var(--bg);font-size:.65rem;font-weight:600;font-family:var(--font-sans);letter-spacing:0;text-transform:none;vertical-align:middle;border-radius:9px;justify-content:center;align-items:center;margin-left:5px;padding:0 5px;display:inline-flex}.grocery-header{justify-content:space-between;align-items:flex-end;display:flex}.grocery-actions{gap:12px;display:flex}.grocery-action-btn{color:var(--text-3);letter-spacing:.04em;text-transform:uppercase;background:0 0;border:none;padding:0;font-size:.9rem;transition:color .15s}.grocery-action-btn:hover{color:var(--text-1)}.grocery-recipes-bar{flex-wrap:wrap;gap:8px;margin-top:16px;display:flex}.grocery-recipe-tag{letter-spacing:.06em;color:var(--text-2);border:1px solid var(--line);border-radius:2px;padding:3px 10px;font-size:.8rem}.grocery-section{padding:0 32px}.grocery-section-label{letter-spacing:.08em;color:var(--text-3);border-bottom:1px solid var(--line);padding:20px 0 12px;font-size:.8rem;font-weight:600}.grocery-item{border-bottom:1px solid var(--line);cursor:pointer;align-items:flex-start;gap:14px;padding:14px 0;transition:opacity .15s;display:flex}.grocery-item:active{opacity:.7}.grocery-item.checked{opacity:.4}.grocery-check{border:1.5px solid var(--text-3);width:22px;height:22px;color:var(--text-3);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;margin-top:2px;font-size:.7rem;display:flex}.grocery-check.done{border-color:var(--text-3)}.grocery-item-content{flex:1;min-width:0}.grocery-item-main{justify-content:space-between;align-items:baseline;gap:12px;display:flex}.grocery-item-name{font-size:1.15rem;line-height:1.4}.grocery-item.checked .grocery-item-name{text-decoration:line-through;-webkit-text-decoration-color:var(--text-3);text-decoration-color:var(--text-3)}.grocery-buy-amount{color:var(--text-2);white-space:nowrap;flex-shrink:0;font-size:.95rem}.grocery-item-sources{flex-wrap:wrap;gap:8px;margin-top:4px;display:flex}.grocery-source{color:var(--text-3);letter-spacing:.03em;cursor:pointer;font-size:.8rem;transition:color .15s}.grocery-source:hover{color:var(--text-1)}@media (width<=500px){.entry{padding:36px 20px}.detail-header{padding:20px 20px 24px}.detail-grid{grid-template-columns:1fr}.detail-card{padding:24px 20px 28px}.title-large{font-size:1.8rem}.detail-title{font-size:2rem}.card-image-ring{width:160px;height:160px}.scene-entry{flex-direction:column;gap:4px}.scene-ts{min-width:auto}.page-intro{padding:36px 20px 24px}.collection-row{padding:20px}}
