:root{--cream:#fff8ea;--paper:#fffdf7;--ink:#2d251f;--muted:#75695d;--wood:#5b3a29;--orange:#b85f27;--gold:#d69a37;--green:#365b46;--line:#eadfce;--shadow:0 18px 50px rgba(68,43,28,.12);--radius:22px;--max:1200px}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--cream);color:var(--ink);font-family:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI","Noto Sans TC","PingFang TC","Microsoft JhengHei",sans-serif;line-height:1.65}img{display:block;max-width:100%}a{color:inherit}button,input,select{font:inherit}button{cursor:pointer}a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid var(--gold);outline-offset:3px}.shell{width:min(var(--max),calc(100% - 32px));margin:auto}
.topbar{position:absolute;z-index:5;top:0;left:0;right:0;padding:18px 0;color:#fff}.topbar-inner{display:flex;align-items:center;justify-content:space-between;gap:16px}.brand{font-weight:800;text-decoration:none;text-shadow:0 2px 12px rgba(0,0,0,.25)}.back{display:inline-flex;align-items:center;gap:8px;padding:8px 12px;border:1px solid rgba(255,255,255,.42);border-radius:999px;text-decoration:none;background:rgba(0,0,0,.18);backdrop-filter:blur(8px)}
.hero{min-height:560px;display:grid;align-items:end;position:relative;overflow:hidden;background:#3d2c22}.hero::before{content:"";position:absolute;inset:0;background:url("/data/isekai-gourmet/images/hero/isekai-gourmet-hero.webp") center/cover no-repeat;transform:scale(1.01)}.hero::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(23,16,12,.08) 10%,rgba(23,16,12,.45) 58%,rgba(23,16,12,.86) 100%)}.hero-content{position:relative;z-index:2;color:#fff;padding:120px 0 58px}.eyebrow{display:inline-flex;gap:8px;align-items:center;padding:7px 11px;border-radius:999px;background:rgba(255,250,239,.15);border:1px solid rgba(255,255,255,.25);font-size:.9rem;font-weight:700;letter-spacing:.04em}.hero h1{font-size:clamp(2.3rem,7vw,5rem);line-height:1.04;margin:16px 0 14px;max-width:800px;letter-spacing:-.04em}.hero p{font-size:clamp(1.02rem,2.2vw,1.28rem);max-width:760px;margin:0;color:#f7eee3}.hero-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:26px}.btn{border:0;border-radius:999px;padding:11px 17px;font-weight:800;text-decoration:none;display:inline-flex;align-items:center;justify-content:center;gap:8px}.btn-primary{background:#fff4dc;color:#4b2f20}.btn-ghost{background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.3);color:#fff}
.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-top:-26px;position:relative;z-index:4}.stat{background:var(--paper);border:1px solid var(--line);border-radius:18px;padding:20px;box-shadow:var(--shadow)}.stat strong{display:block;font-size:1.7rem;line-height:1.1;color:var(--wood)}.stat span{color:var(--muted);font-size:.9rem}section{padding:72px 0}.section-head{display:flex;align-items:end;justify-content:space-between;gap:24px;margin-bottom:24px}.kicker{color:var(--orange);font-weight:900;letter-spacing:.08em;font-size:.82rem;text-transform:uppercase}h2{font-size:clamp(1.8rem,4vw,2.7rem);line-height:1.15;margin:7px 0 0;letter-spacing:-.03em}.section-note{color:var(--muted);max-width:650px;margin:8px 0 0}
.intro-grid{display:grid;grid-template-columns:1.25fr .75fr;gap:26px}.panel{background:var(--paper);border:1px solid var(--line);border-radius:var(--radius);padding:28px;box-shadow:0 12px 35px rgba(68,43,28,.07)}.panel p:first-child{margin-top:0}.panel p:last-child{margin-bottom:0}.season-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}.season-card{border:0;text-align:left;border-radius:20px;padding:24px;color:#fff;min-height:180px;display:flex;flex-direction:column;justify-content:flex-end;box-shadow:var(--shadow)}.season-card.s1{background:linear-gradient(135deg,#5f3d2a,#a7602e)}.season-card.s2{background:linear-gradient(135deg,#264536,#66835a)}.season-card b{font-size:1.55rem}.season-card span{opacity:.85}
.category-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.category-card{position:relative;border:0;overflow:hidden;border-radius:20px;min-height:180px;color:#fff;text-align:left;padding:0;background:#4f3b2d;box-shadow:0 12px 30px rgba(68,43,28,.1)}.category-card img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}.category-card::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 30%,rgba(24,17,13,.82))}.category-label{position:absolute;z-index:2;left:18px;right:18px;bottom:15px}.category-label b{font-size:1.14rem;display:block}.category-label small{opacity:.82}
.featured-grid,.recipe-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:18px}.recipe-card{display:flex;flex-direction:column;background:var(--paper);border:1px solid var(--line);border-radius:20px;overflow:hidden;box-shadow:0 10px 30px rgba(68,43,28,.07);transition:transform .18s ease,box-shadow .18s ease}.recipe-card:hover{transform:translateY(-3px);box-shadow:0 16px 40px rgba(68,43,28,.12)}.recipe-image-wrap{aspect-ratio:4/3;background:#eadfce;overflow:hidden;position:relative}.recipe-image-wrap.image-missing::after{content:"圖片暫不可用";position:absolute;inset:0;display:grid;place-items:center;color:#857564;font-size:.85rem}.recipe-image{width:100%;height:100%;object-fit:cover;transition:transform .35s ease}.recipe-card:hover .recipe-image{transform:scale(1.025)}.recipe-body{padding:16px;display:flex;flex-direction:column;gap:10px;flex:1}.badges{display:flex;flex-wrap:wrap;gap:6px}.badge{font-size:.73rem;font-weight:800;border-radius:999px;padding:4px 8px;background:#f1e8d9;color:#594939}.badge.season{background:#f8dcc7;color:#8e481f}.recipe-title{margin:0;font-size:1.15rem;line-height:1.25}.recipe-jp{color:var(--muted);font-size:.86rem;min-height:1.35em}.ingredient-swap{font-size:.88rem;background:#f7f2e8;border-radius:12px;padding:9px 10px;color:#51453a}.ingredient-swap .arrow{color:var(--orange);font-weight:900;padding:0 4px}.summary{color:var(--muted);font-size:.9rem;margin:0;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.detail-btn{margin-top:auto;border:1px solid #dccdb8;border-radius:12px;padding:9px 12px;background:#fffaf0;color:var(--wood);font-weight:800}
.filters-wrap{position:sticky;top:10px;z-index:12;margin-bottom:22px}.filters{display:grid;grid-template-columns:minmax(220px,1.4fr) repeat(2,minmax(150px,.5fr));gap:10px;background:rgba(255,253,247,.94);backdrop-filter:blur(12px);border:1px solid var(--line);border-radius:18px;padding:12px;box-shadow:0 12px 30px rgba(68,43,28,.1)}.control{width:100%;border:1px solid #decfbd;border-radius:12px;background:#fff;padding:10px 12px;color:var(--ink);outline:none}.control:focus{border-color:#b9824a;box-shadow:0 0 0 3px rgba(185,130,74,.14)}.result-line{display:flex;align-items:center;justify-content:space-between;gap:12px;color:var(--muted);font-size:.9rem;margin:10px 3px 0}.reset-filters{border:0;background:transparent;color:var(--orange);font-weight:800;padding:4px 2px}.reset-filters[hidden]{display:none}.empty{grid-column:1/-1;padding:48px;text-align:center;color:var(--muted);border:1px dashed #d6c5ae;border-radius:18px}
.mapping-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.mapping-card{border:1px solid var(--line);background:var(--paper);border-radius:16px;padding:17px}.mapping-card b{display:block;color:var(--wood)}.mapping-card .to{color:var(--orange);font-weight:900;margin:3px 0}.mapping-card p{color:var(--muted);font-size:.88rem;margin:5px 0 0}.notice{background:#efe7d8;border-left:4px solid var(--gold);padding:18px 20px;border-radius:12px;color:#5f5143}footer{padding:40px 0 60px;border-top:1px solid var(--line);color:var(--muted);font-size:.88rem}
dialog{width:min(900px,calc(100% - 24px));max-height:90vh;border:0;border-radius:24px;padding:0;box-shadow:0 30px 90px rgba(28,18,12,.35);background:var(--paper);color:var(--ink)}dialog::backdrop{background:rgba(29,20,14,.66);backdrop-filter:blur(5px)}.dialog-grid{display:grid;grid-template-columns:1fr 1.15fr;min-height:520px}.dialog-media{background:#e8dbc8;position:relative}.dialog-media img{width:100%;height:100%;object-fit:cover;position:absolute;inset:0}.dialog-media.image-missing::after{content:"圖片暫不可用";position:absolute;inset:0;display:grid;place-items:center;color:#857564}.dialog-content{padding:28px;overflow:auto;scroll-behavior:smooth}.dialog-close{position:absolute;right:14px;top:14px;z-index:3;width:42px;height:42px;border:0;border-radius:50%;background:rgba(255,253,247,.92);font-size:1.25rem;box-shadow:0 5px 20px rgba(0,0,0,.15)}.dialog-title{font-size:2rem;line-height:1.15;margin:8px 0 3px}.dialog-jp{color:var(--muted);margin-bottom:18px}.detail-block{border-top:1px solid var(--line);padding-top:16px;margin-top:16px}.detail-block h3{font-size:1rem;margin:0 0 8px;color:var(--wood)}.source-text{color:#51483f}.source-part{background:#faf5eb;border:1px solid #eadfce;border-radius:14px;padding:15px 16px;margin-top:10px}.source-part:first-child{margin-top:0}.source-part h4{margin:0 0 10px;color:var(--wood);font-size:.95rem}.source-part p{margin:0;line-height:1.75}.ingredient-list{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px 10px}.ingredient-list li{position:relative;padding:7px 9px 7px 24px;border-radius:9px;background:#fffdf8;border:1px solid #eee1cf;font-size:.9rem}.ingredient-list li::before{content:"•";position:absolute;left:10px;color:var(--orange);font-weight:900}.method-list{counter-reset:step;list-style:none;margin:0;padding:0;display:grid;gap:10px}.method-list li{counter-increment:step;position:relative;padding:11px 12px 11px 44px;border-radius:10px;background:#fffdf8;border:1px solid #eee1cf;line-height:1.68}.method-list li::before{content:counter(step);position:absolute;left:11px;top:11px;width:24px;height:24px;display:grid;place-items:center;border-radius:50%;background:var(--wood);color:#fff;font-size:.75rem;font-weight:800}.dialog-actions{display:flex;align-items:center;flex-wrap:wrap;gap:10px;margin-top:12px}.source-link{display:inline-flex;margin:0;color:var(--orange);font-weight:800;text-decoration:none}.share-button{border:1px solid #dccdb8;border-radius:10px;background:#fffaf0;color:var(--wood);font-weight:800;padding:7px 11px}.share-status{min-height:1.4em;margin-top:5px;color:var(--green);font-size:.82rem;font-weight:700}.related-list{display:grid;grid-template-columns:repeat(3,1fr);gap:9px}.related-item{border:1px solid var(--line);background:#fffaf0;border-radius:12px;padding:9px;text-align:left}.recipe-sequence{border-top:1px solid var(--line);padding-top:16px;margin-top:20px}.recipe-position{text-align:center;color:var(--muted);font-size:.78rem;font-weight:800;letter-spacing:.08em;margin-bottom:9px}.recipe-nav{display:grid;grid-template-columns:1fr 1fr;gap:9px}.recipe-nav-btn{min-width:0;border:1px solid #dccdb8;border-radius:13px;background:#fffaf0;color:var(--wood);padding:10px 12px;text-align:left;display:flex;flex-direction:column;gap:2px}.recipe-nav-btn.next{text-align:right}.recipe-nav-btn span{font-size:.76rem;color:var(--orange);font-weight:800}.recipe-nav-btn b{font-size:.9rem;line-height:1.3;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.recipe-nav-btn:disabled{cursor:default;opacity:.42;background:#f4eee5}.recipe-nav-btn:not(:disabled):hover{background:#fff4dc;border-color:#cfae84}
@media(max-width:960px){.featured-grid,.recipe-grid{grid-template-columns:repeat(3,1fr)}.category-grid{grid-template-columns:repeat(2,1fr)}.mapping-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:760px){dialog{max-height:92dvh;overscroll-behavior:contain}.dialog-close{position:fixed;right:max(20px,env(safe-area-inset-right));top:max(20px,calc(4dvh + 8px))}.shell{width:min(100% - 22px,var(--max))}.hero{min-height:520px}.hero-content{padding-bottom:42px}.stats{grid-template-columns:repeat(2,1fr);margin-top:-18px}section{padding:54px 0}.intro-grid{grid-template-columns:1fr}.season-grid{grid-template-columns:1fr 1fr}.featured-grid,.recipe-grid{grid-template-columns:repeat(2,1fr);gap:12px}.recipe-body{padding:13px}.filters{grid-template-columns:1fr 1fr}.filters input{grid-column:1/-1}.dialog-grid{display:block}.dialog-media{aspect-ratio:16/10}.dialog-media img{position:relative}.dialog-content{padding:20px}.dialog-title{font-size:1.55rem}.related-list{grid-template-columns:1fr}.ingredient-list{grid-template-columns:1fr}}
@media(max-width:520px){.topbar{padding:12px 0}.back{font-size:.84rem}.hero h1{font-size:2.6rem}.stats{gap:8px}.stat{padding:15px}.stat strong{font-size:1.4rem}.season-grid{grid-template-columns:1fr}.category-grid{grid-template-columns:1fr 1fr;gap:10px}.category-card{min-height:135px}.category-label{left:12px;bottom:10px}.featured-grid,.recipe-grid{grid-template-columns:1fr}.recipe-card{display:grid;grid-template-columns:42% 58%}.recipe-image-wrap{aspect-ratio:auto;height:100%;min-height:200px}.mapping-grid{grid-template-columns:1fr}.filters{grid-template-columns:1fr 1fr}.filters input{grid-column:1/-1}.section-head{align-items:start;flex-direction:column}.panel{padding:21px}.recipe-nav-btn{padding:9px}.recipe-nav-btn b{font-size:.82rem}}
@media(hover:none){.recipe-card:hover{transform:none}.recipe-card:hover .recipe-image{transform:none}.recipe-nav-btn:not(:disabled):hover{background:#fffaf0;border-color:#dccdb8}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}
