:root { --cream:#fff9f1; --ivory:#fffdf8; --paper:#fffaf1; --brown:#4b2d1c; --brown-soft:#76523d; --muted:#806a5a; --pink:#e9576f; --pink-dark:#c8435a; --green:#738b59; --lavender:#9a84c8; --border:#ecd9bd; --border-strong:#e5cba5; --focus:#b34a64; --shadow:0 5px 15px rgba(107,69,39,.11); font-family:"Avenir Next", Avenir, "Segoe UI", sans-serif; color:var(--brown); background:var(--cream); }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; background:var(--cream); }
body { margin:0; min-width:320px; background:var(--cream); color:var(--brown); line-height:1.45; }
a { color:var(--pink); text-decoration-thickness:1px; text-underline-offset:3px; }
a:hover { color:var(--pink-dark); }
button,input { font:inherit; }
button { cursor:pointer; }
:focus-visible { outline:3px solid var(--focus); outline-offset:3px; }
.shell { width:min(1120px, calc(100% - 40px)); margin-inline:auto; }
.sr-only { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }
.skip-link { position:fixed; z-index:20; top:8px; left:8px; transform:translateY(-150%); color:#fff; background:var(--pink-dark); border-radius:8px; padding:10px 14px; }
.skip-link:focus { transform:translateY(0); }

.site-header { position:relative; z-index:5; padding-top:12px; background:linear-gradient(rgba(255,249,241,.04),rgba(255,249,241,.04)),url("/public/images/homepage-hero-background.png") center -33px / 100% auto fixed no-repeat; }
.header-inner { width:min(1180px, calc(100% - 40px)); min-height:61px; display:flex; align-items:center; gap:24px; padding:0 24px; background:rgba(255,252,245,.96); border:1px solid rgba(234,216,188,.96); border-radius:16px; box-shadow:0 5px 13px rgba(90,61,36,.18); }
.brand { display:flex; align-items:center; gap:11px; color:var(--brown); font-family:Georgia,"Times New Roman",serif; font-size:26px; font-weight:700; line-height:1; text-decoration:none; letter-spacing:-.02em; }
.brand-text-short { display:none; }
.brand-mark { display:block; flex:0 0 auto; width:40px; height:40px; object-fit:contain; image-rendering:pixelated; }
.site-navigation { display:flex; align-items:center; gap:24px; margin-left:auto; }
.site-navigation a { position:relative; padding:20px 1px 17px; color:var(--brown); font-family:Georgia,"Times New Roman",serif; font-size:16px; font-weight:400; text-decoration:none; }
.site-navigation a[aria-current="page"] { color:var(--pink); }
.site-navigation a[aria-current="page"]::after { position:absolute; right:0; bottom:0; left:0; height:3px; content:""; background:var(--pink); }
.site-navigation a:hover { color:var(--pink-dark); }
.menu-button { display:none; margin-left:auto; min-width:44px; min-height:44px; color:var(--brown); border:0; background:transparent; font-size:24px; }

.hero { position:relative; z-index:3; min-height:360px; overflow:visible; background:var(--cream); isolation:isolate; }
.hero::before,.gift-guide-hero::before { position:absolute; z-index:0; inset:0; content:""; background:linear-gradient(90deg,rgba(255,250,240,.03),rgba(255,250,240,.18) 17%,rgba(255,250,240,.69) 35%,rgba(255,250,240,.82) 50%,rgba(255,250,240,.69) 65%,rgba(255,250,240,.18) 83%,rgba(255,250,240,.03)),linear-gradient(180deg,rgba(252,250,239,.03),rgba(255,249,241,.13)); pointer-events:none; }
.hero::after,.gift-guide-hero::after { position:absolute; z-index:0; right:0; bottom:0; left:0; height:108px; content:""; background:linear-gradient(180deg,rgba(255,249,241,0),rgba(255,249,241,.16) 55%,rgba(255,249,241,.62) 82%,var(--cream)); pointer-events:none; }
.hero-landscape,.gift-guide-landscape { position:absolute; z-index:-1; inset:0; background:url("/public/images/homepage-hero-background.png") center -33px / 100% auto fixed no-repeat; opacity:.96; pointer-events:none; }
.hero-content { position:relative; z-index:1; display:flex; align-items:center; flex-direction:column; padding:56px 0 22px; text-align:center; }
.eyebrow { margin:0 0 6px; color:var(--green); font-size:12px; font-weight:650; letter-spacing:.1em; text-transform:uppercase; }
h1 { max-width:940px; margin:0; color:#3f2518; font-family:Georgia,"Times New Roman",serif; font-size:43px; font-weight:500; line-height:1.08; letter-spacing:-.035em; }
.hero-copy { max-width:640px; margin:14px auto 26px; color:#563a29; font-family:Georgia,"Times New Roman",serif; font-size:19px; line-height:1.38; }
.search-wrap { position:relative; width:min(720px,100%); }
.search-input-wrap { display:flex; align-items:center; min-height:51px; background:rgba(255,253,248,.96); border:1px solid var(--border-strong); border-radius:25px; box-shadow:0 3px 8px rgba(110,72,40,.08); }
.search-icon { flex:0 0 auto; width:25px; margin:0 16px 0 19px; stroke:#744329; stroke-width:2; fill:none; }
#global-search { width:100%; border:0; outline:0; padding:12px 0; background:transparent; color:var(--brown); font-family:Georgia,"Times New Roman",serif; font-size:16px; }
#global-search::placeholder { color:#826c5c; opacity:1; }
.search-input-wrap:focus-within { border-color:#d49a82; box-shadow:0 0 0 3px rgba(224,100,122,.15); }
.search-clear { width:32px; height:32px; margin-right:10px; color:var(--pink-dark); border:0; border-radius:50%; background:#f8e6e6; font-size:22px; line-height:1; }
.search-results { position:absolute; z-index:4; top:calc(100% + 8px); width:100%; overflow:hidden; text-align:left; background:var(--ivory); border:1px solid var(--border-strong); border-radius:13px; box-shadow:0 14px 32px rgba(83,50,28,.2); }
.search-result { display:flex; align-items:center; width:100%; min-height:52px; gap:11px; padding:6px 14px; border:0; border-bottom:1px solid #f0dfc7; color:var(--brown); background:var(--ivory); text-align:left; }
.search-result:last-child { border-bottom:0; }
.search-result:hover,.search-result[aria-selected="true"] { background:#fff4ec; }
.search-result-thumbnail { display:block; flex:0 0 36px; width:36px; height:36px; max-width:36px; max-height:36px; object-fit:contain; image-rendering:pixelated; }.search-result-thumbnail.character { object-position:center bottom; }.search-result-fallback { display:grid; place-items:center; border:1px solid #e8c9cc; border-radius:50%; color:#fff; background:#d77e95; font-size:12px; font-weight:800; }.search-result-fallback.item { border-color:#c7d8b8; border-radius:9px; background:#7f9a68; }
.search-result strong,.search-result small { display:block; }.search-result strong { font-size:15px; }.search-result small { color:var(--muted); font-size:12px; }
.no-results { margin:0; padding:15px 18px; color:var(--muted); font-size:14px; }.data-notice { margin:10px 0 0; color:#9a3547; font-weight:700; }
.popular-searches { display:flex; flex-wrap:wrap; justify-content:center; gap:6px; margin-top:14px; color:#765b4a; font-family:Georgia,"Times New Roman",serif; font-size:14px; line-height:1.35; }.popular-searches strong { color:#806a5a; font-weight:500; }.popular-searches a { font-weight:400; text-decoration:none; }
.ad-banner { --ad-banner-width:728px; --ad-banner-height:90px; display:grid; width:min(100%,728px); justify-items:center; margin:42px auto; color:#9b8878; }.ad-banner[hidden],.mobile-native-ad[hidden] { display:none; }.ad-banner-label { margin:0 0 7px; font-size:11px; font-weight:500; letter-spacing:.04em; line-height:1.2; text-transform:uppercase; }.ad-banner-frame { display:grid; width:min(100%,var(--ad-banner-width)); height:var(--ad-banner-height); align-items:center; justify-items:center; overflow:hidden; }.ad-banner-frame > iframe { display:block; max-width:100%; border:0; }.mobile-native-ad { display:block; width:min(100%,480px); margin:30px auto; color:#9b8878; }.mobile-native-ad > [data-mobile-native-ad-content] { width:100%; }
@media (pointer:coarse) { .desktop-ad-banner { display:none; } } @media (pointer:fine) { .mobile-native-ad { display:none; } }
.character-gift-grid > .ad-banner,.items-query-grid > .ad-banner { grid-column:1 / -1; margin-top:26px; margin-bottom:26px; }.character-detail-sections > .ad-banner { margin-top:52px; margin-bottom:60px; }.item-detail-content > .ad-banner { margin-top:42px; margin-bottom:43px; }.feature-grid > .mobile-native-ad,.character-gift-grid > .mobile-native-ad { grid-column:1 / -1; }.character-detail-sections > .mobile-native-ad,.item-detail-content > .mobile-native-ad { margin-top:30px; margin-bottom:30px; }

.feature-grid { position:relative; z-index:2; display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); align-items:stretch; gap:28px; margin-top:0; }
.feature-card { display:flex; min-width:0; min-height:278px; flex-direction:column; padding:20px 30px 14px; background:rgba(255,253,247,.94); border:1px solid var(--border); border-radius:12px; box-shadow:0 4px 12px rgba(106,68,37,.1); }
.card-heading { display:flex; gap:10px; align-items:flex-start; }.card-heading-link { color:inherit; text-decoration:none; }.card-heading-link:focus-visible { border-radius:5px; outline:2px solid rgba(224,76,104,.72); outline-offset:3px; }.module-icon { display:block; flex:0 0 auto; width:64px; height:54px; object-fit:contain; image-rendering:pixelated; }.card-heading h2 { margin:1px 0 3px; color:#48291c; font-family:Georgia,"Times New Roman",serif; font-size:22px; font-weight:500; line-height:1.18; letter-spacing:-.02em; }.card-heading p { margin:0; color:#684d3b; font-family:Georgia,"Times New Roman",serif; font-size:14px; line-height:1.4; }
.portrait-grid,.item-grid { display:grid; margin-inline:-5px; gap:10px 12px; }.portrait-grid { grid-template-columns:repeat(4,minmax(0,1fr)); margin-top:14px; }.item-grid { grid-template-columns:repeat(4,minmax(0,1fr)); margin-top:13px; }
.portrait-link,.item-link { display:flex; min-width:0; flex-direction:column; align-items:center; gap:3px; color:#432a20; font-family:Georgia,"Times New Roman",serif; font-size:12px; font-weight:400; line-height:1.15; text-align:center; text-decoration:none; }.portrait-link { border-radius:5px; }.portrait-link:hover { color:var(--pink-dark); }.portrait-link:hover .portrait { transform:translateY(-1px); }.portrait-link:focus-visible { outline:2px solid rgba(224,76,104,.72); outline-offset:3px; }.portrait { display:block; width:46px; height:52px; object-fit:contain; object-position:center bottom; image-rendering:pixelated; filter:drop-shadow(1px 1px 0 rgba(79,48,39,.15)); transition:transform .15s ease; }
.item-icon { display:block; width:41px; height:37px; object-fit:contain; object-position:center; image-rendering:pixelated; }.item-icon-fallback { position:relative; color:transparent; background:transparent; box-shadow:none; }.item-icon-fallback.wild-berries { background:radial-gradient(circle at 36% 62%,#d95172 0 7px,transparent 8px),radial-gradient(circle at 61% 59%,#e36382 0 7px,transparent 8px),radial-gradient(circle at 49% 40%,#c83f61 0 7px,transparent 8px),linear-gradient(147deg,transparent 44%,#619852 45% 54%,transparent 55%) 19px 0/18px 18px no-repeat; }.item-icon-fallback.stone-loach { width:46px; height:23px; margin-top:6px; border-radius:55% 45% 45% 55%; background:linear-gradient(145deg,#8c5c38 0 45%,#d7a362 46% 70%,#6c4b35 71%); transform:rotate(-25deg); }.item-icon-fallback.stone-loach::after { position:absolute; top:5px; right:-8px; content:""; border-top:7px solid transparent; border-bottom:7px solid transparent; border-left:11px solid #b97f4c; }.item-icon-fallback.hot-chocolate { width:29px; height:29px; margin-top:4px; margin-left:6px; border:3px solid #8f5d4a; border-radius:5px 5px 9px 9px; background:linear-gradient(#f6e2c9 0 23%,#9a624b 24% 72%,#e2b28e 73%); }.item-icon-fallback.hot-chocolate::after { position:absolute; top:6px; right:-11px; width:9px; height:13px; content:""; border:3px solid #8f5d4a; border-left:0; border-radius:0 9px 9px 0; }.item-icon-fallback.shards { width:29px; height:35px; margin-top:1px; margin-left:7px; background:linear-gradient(135deg,#c2a6f6 0 48%,#896bc8 49%); clip-path:polygon(50% 0,100% 32%,72% 100%,13% 85%,0 39%); }.item-icon-fallback.faceted-rock-gem { width:34px; height:34px; margin-top:2px; margin-left:4px; background:conic-gradient(from 30deg,#a58bdc,#d4c0ff,#866ac3,#a58bdc); clip-path:polygon(30% 0,71% 0,100% 30%,81% 85%,50% 100%,13% 85%,0 30%); }.item-icon-fallback.water-chestnut { width:29px; height:30px; margin-top:5px; margin-left:7px; border-radius:48% 48% 42% 42%; background:radial-gradient(circle at 38% 28%,#e5ba61 0 3px,transparent 4px),linear-gradient(145deg,#c8923a,#ad7130); }.item-icon-fallback.water-chestnut::after { position:absolute; top:-8px; left:9px; width:13px; height:11px; content:""; border-radius:80% 0 80% 0; background:#659a55; transform:rotate(-25deg); }
.information-list { display:grid; gap:0; padding:0; margin:13px 0 0; list-style:none; }.information-list li { display:flex; align-items:center; gap:14px; min-height:48px; border-bottom:1px dashed #e8d6ba; color:#4f2f20; font-family:Georgia,"Times New Roman",serif; font-size:15px; font-weight:400; }.information-list li:last-child { border-bottom:0; }.information-icon { display:block; flex:0 0 auto; width:34px; height:28px; margin-inline:-6px; object-fit:contain; image-rendering:pixelated; transform:scale(1.8); }
.card-cta { display:flex; align-items:center; justify-content:center; gap:13px; min-height:35px; margin-top:auto; padding-top:8px; color:var(--pink); font-family:Georgia,"Times New Roman",serif; font-size:16px; font-weight:400; text-align:center; text-decoration:none; }.card-cta span { font-family:"Avenir Next",sans-serif; font-size:26px; line-height:.7; }

.lower-content { max-width:1120px; margin-top:15px; margin-bottom:0; }.seo-intro { padding:18px 46px; background:rgba(255,252,245,.86); border:1px solid var(--border); border-radius:12px; box-shadow:0 3px 10px rgba(106,68,37,.07); text-align:center; }.seo-intro p { max-width:990px; margin:0 auto; color:#583c2b; font-family:Georgia,"Times New Roman",serif; font-size:15px; line-height:1.55; }
.faq { overflow:hidden; margin-top:14px; padding:22px 20px; border:1px solid var(--border); border-radius:12px; background:rgba(255,252,245,.86); box-shadow:0 3px 10px rgba(106,68,37,.07); }.faq details { border:1px solid #eedcc2; border-radius:10px; background:rgba(255,253,248,.65); }.faq details + details { margin-top:10px; }.faq summary { display:flex; min-height:58px; align-items:center; padding:12px 16px; color:#4b2e21; cursor:pointer; font-family:Georgia,"Times New Roman",serif; font-size:15px; font-weight:600; line-height:1.35; list-style:none; }.faq summary::-webkit-details-marker { display:none; }.faq summary::before { margin-right:13px; content:"♥"; color:var(--pink); font-family:"Avenir Next",sans-serif; font-size:15px; }.faq summary::after { margin-left:auto; padding-left:16px; content:"⌄"; color:#754431; font-family:"Avenir Next",sans-serif; font-size:18px; }.faq details[open] summary::after { content:"⌃"; color:var(--pink); }.faq details p { margin:0; padding:8px 42px 15px 46px; color:#684e3c; font-family:Georgia,"Times New Roman",serif; font-size:14px; line-height:1.55; }
.faq details:nth-child(2) summary::before { content:"🎁"; font-size:14px; }.faq details:nth-child(3) summary::before { content:"🍃"; color:var(--green); font-size:15px; }
.site-footer { margin-top:11px; background:linear-gradient(180deg,rgba(255,249,241,0),rgba(255,253,245,.42)); }.footer-inner { display:flex; align-items:center; flex-direction:column; padding:0 0 10px; color:#755a49; font-family:Georgia,"Times New Roman",serif; font-size:12px; text-align:center; }.footer-meta { display:flex; gap:20px; align-items:center; width:100%; justify-content:center; }.footer-meta::before,.footer-meta::after { display:none; }.footer-meta strong { color:#604333; font-weight:400; }.footer-inner nav { display:flex; flex-wrap:wrap; justify-content:center; gap:12px; margin-top:3px; }.footer-inner nav a { color:var(--pink); font-weight:400; }.footer-cookie-settings { padding:0; border:0; color:var(--pink); background:transparent; font-family:inherit; font-size:inherit; text-decoration:underline; text-decoration-thickness:1px; text-underline-offset:3px; }.footer-cookie-settings:hover { color:var(--pink-dark); }.footer-inner p { margin:4px 0 0; }
.consent-banner,.consent-preferences { position:fixed; z-index:30; right:20px; bottom:20px; left:20px; width:min(100% - 40px,640px); margin-inline:auto; padding:14px 16px; color:#4b2d1c; background:rgba(255,253,248,.98); border:1px solid var(--border-strong); border-radius:12px; box-shadow:0 12px 30px rgba(75,45,28,.2); }.consent-banner[hidden],.consent-preferences[hidden] { display:none; }.consent-banner { display:flex; align-items:center; justify-content:space-between; gap:14px; }.consent-banner p { margin:0; color:#684d3b; font-size:13px; line-height:1.35; }.consent-preferences h2 { margin:0; font-family:Georgia,"Times New Roman",serif; font-size:22px; font-weight:500; }.consent-preferences > p { max-width:610px; margin:7px 0 8px; color:#684d3b; font-size:14px; line-height:1.45; }.consent-banner-actions { display:grid; grid-template-columns:repeat(2,max-content); justify-content:end; gap:7px; }.consent-button { min-height:38px; padding:8px 11px; border:1px solid #d9b99c; border-radius:8px; color:#5d3927; background:#fffaf3; font-size:13px; font-weight:650; }.consent-button:hover { border-color:#c89379; background:#fff2e6; }.consent-button-primary { border-color:var(--pink-dark); color:#fff; background:var(--pink-dark); }.consent-button-primary:hover { border-color:#a73048; background:#a73048; }.consent-button-link { grid-column:1 / -1; justify-self:end; min-height:auto; padding:1px 0; border:0; color:var(--pink); background:transparent; text-decoration:underline; text-underline-offset:3px; }.consent-preferences { width:min(100% - 40px,540px); padding:22px; }.consent-preferences-heading { display:flex; align-items:start; justify-content:space-between; gap:20px; }.consent-close { width:32px; height:32px; margin-top:-4px; padding:0; border:0; border-radius:50%; color:#6c4735; background:#f7e8db; font-size:23px; line-height:1; }.consent-choice { display:grid; grid-template-columns:1fr auto auto; align-items:center; gap:12px; padding:13px 0; border-top:1px solid #f0dfc7; }.consent-choice strong,.consent-choice small { display:block; }.consent-choice small { margin-top:2px; color:#806a5a; font-size:12px; }.consent-choice input { width:19px; height:19px; accent-color:var(--pink-dark); }.consent-choice em { color:#806a5a; font-size:12px; font-style:normal; }.consent-preferences > .consent-button { width:100%; margin-top:16px; }
.route-placeholder { min-height:55vh; padding:100px 0; text-align:center; }.route-placeholder p:not(.eyebrow) { max-width:520px; margin:14px auto 24px; color:var(--muted); }.placeholder-link { display:inline-flex; align-items:center; min-height:44px; padding:0 18px; border-radius:9px; background:#f9e8dc; color:var(--pink-dark); font-weight:700; text-decoration:none; }
.legal-page { max-width:860px; padding:64px 0 8px; }.legal-page-header { padding:0 0 27px; border-bottom:1px solid var(--border); }.legal-page-header h1 { max-width:none; font-size:42px; }.legal-updated { margin:12px 0 0; color:var(--brown-soft); font-family:Georgia,"Times New Roman",serif; font-size:15px; }.legal-page-content { color:#593d2c; font-family:Georgia,"Times New Roman",serif; font-size:16px; line-height:1.7; overflow-wrap:anywhere; }.legal-page-content > p:first-child { margin-top:30px; font-size:17px; }.legal-page-content p { margin:0 0 16px; }.legal-page-content section { margin-top:42px; scroll-margin-top:24px; }.legal-page-content h2 { margin:0 0 14px; color:#48291c; font-size:25px; font-weight:500; line-height:1.2; letter-spacing:-.02em; }.legal-page-content ul { margin:0 0 16px; padding-left:25px; }.legal-page-content li + li { margin-top:6px; }.legal-page-content code { padding:1px 4px; border-radius:4px; color:#633b2b; background:#f5e9db; font-family:"SFMono-Regular",Consolas,monospace; font-size:.9em; }.legal-page-content a { font-weight:600; }.legal-page-content strong { color:#4b2d1c; }

.gift-guide-hero { position:relative; z-index:2; min-height:178px; overflow:visible; background:var(--cream); isolation:isolate; }.gift-guide-hero-content { position:relative; z-index:1; display:flex; align-items:center; flex-direction:column; padding:25px 0 28px; text-align:center; }.gift-guide-hero h1 { max-width:none; font-size:42px; }.gift-guide-intro { max-width:710px; margin:12px auto 0; color:#563a29; font-family:Georgia,"Times New Roman",serif; font-size:16px; line-height:1.45; }.gift-guide-search { position:relative; z-index:20; width:min(560px,100%); margin-top:18px; }.gift-guide-search-input { display:flex; align-items:center; min-height:45px; background:rgba(255,253,248,.95); border:1px solid var(--border-strong); border-radius:24px; box-shadow:0 3px 8px rgba(110,72,40,.08); }.gift-guide-search-input:focus-within { border-color:#d49a82; box-shadow:0 0 0 3px rgba(224,100,122,.15); }.gift-guide-search-input svg { flex:0 0 auto; width:21px; margin:0 15px 0 17px; stroke:#744329; stroke-width:2; fill:none; }.gift-guide-search-input input { width:100%; padding:10px 0; border:0; outline:0; color:var(--brown); background:transparent; font-family:Georgia,"Times New Roman",serif; font-size:16px; }.gift-guide-search-input input::placeholder { color:#826c5c; opacity:1; }.gift-search-clear { width:30px; height:30px; margin-right:8px; border:0; border-radius:50%; color:var(--pink-dark); background:#f8e6e6; font-size:20px; line-height:1; }.character-search-results { position:absolute; z-index:21; top:calc(100% + 6px); width:100%; overflow:hidden; text-align:left; background:var(--ivory); border:1px solid var(--border-strong); border-radius:13px; box-shadow:0 10px 28px rgba(83,50,28,.18); }.character-search-result { display:block; width:100%; min-height:40px; padding:9px 17px; border:0; border-bottom:1px solid #f0dfc7; color:var(--brown); background:var(--ivory); text-align:left; }.character-search-result:last-child { border-bottom:0; }.character-search-result:hover,.character-search-result[aria-selected="true"] { background:#fff4ec; }.character-search-no-results { margin:0; padding:13px 17px; color:var(--muted); font-size:14px; }
.gift-guide-content { position:relative; z-index:1; padding-bottom:3px; }.character-gift-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); align-items:stretch; gap:12px; }.character-gift-card { display:flex; min-width:0; height:100%; flex-direction:column; padding:10px; background:rgba(255,253,247,.94); border:1px solid #efdec7; border-radius:12px; box-shadow:0 3px 10px rgba(106,68,37,.07); scroll-margin-top:20px; }.character-gift-card.has-missing-preference { align-self:start; height:auto; }.character-gift-header { display:flex; align-items:center; min-height:82px; gap:14px; margin:0 4px 15px; padding:4px 10px 6px; }.character-portrait-link { display:block; flex:0 0 auto; border-radius:4px; line-height:0; }.character-name-link { color:inherit; text-decoration:none; }.character-gift-header img { display:block; align-self:flex-end; width:71px; height:75px; object-fit:contain; object-position:center bottom; image-rendering:pixelated; filter:drop-shadow(1px 1px 0 rgba(79,48,39,.15)); }.character-gift-header h2 { margin:0; color:#3f2518; font-family:Georgia,"Times New Roman",serif; font-size:25px; font-weight:500; line-height:1.15; letter-spacing:-.025em; white-space:nowrap; }.gift-preference { padding:11px 11px 12px; border:1px solid transparent; border-radius:9px; }.gift-preference + .gift-preference { margin-top:10px; }.gift-preference h3 { display:flex; align-items:center; gap:7px; margin:0 0 9px; font-family:Georgia,"Times New Roman",serif; font-size:14px; font-weight:500; line-height:1.2; }.gift-preference-heart { display:block; flex:0 0 auto; width:14px; height:14px; }.gift-preference-heart path { stroke:currentColor; stroke-linecap:round; stroke-linejoin:round; stroke-width:1.5; }.gift-preference.loved { border-color:rgba(235,151,161,.2); background:linear-gradient(110deg,rgba(255,237,235,.78),rgba(255,250,246,.72)); }.gift-preference.loved h3 { color:#d84b64; font-weight:600; }.gift-preference.loved .gift-preference-heart path { fill:currentColor; stroke-width:1; }.gift-preference.liked { border-color:rgba(169,147,210,.17); background:linear-gradient(110deg,rgba(245,240,252,.78),rgba(255,251,248,.68)); }.gift-preference.liked h3 { color:#826cb0; font-weight:500; }.gift-preference.liked .gift-preference-heart path { fill:none; }.gift-items { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); grid-auto-rows:73px; column-gap:7px; row-gap:5px; }.gift-item { display:grid; min-width:0; grid-template-rows:37px 30px; align-items:start; justify-items:center; row-gap:6px; color:#472e21; font-family:Georgia,"Times New Roman",serif; font-size:13px; line-height:15px; text-align:center; text-decoration:none; }.gift-item:hover { color:var(--pink-dark); }.gift-item:focus-visible { border-radius:4px; outline:2px solid rgba(224,76,104,.66); outline-offset:2px; }.gift-item img,.gift-item-fallback { display:grid; place-items:center; align-self:center; width:37px; height:36px; object-fit:contain; image-rendering:pixelated; }.gift-item > span { display:-webkit-box; overflow:hidden; max-height:30px; -webkit-box-orient:vertical; -webkit-line-clamp:2; }.gift-item-fallback { border-radius:7px; color:#806a5a; background:#f1e5d6; font-family:"Avenir Next",sans-serif; font-size:9px; font-weight:700; }.view-gifts { display:flex; align-items:center; justify-content:center; gap:12px; min-height:36px; margin-top:14px; padding:8px 12px; border:1px solid rgba(234,127,142,.28); border-radius:8px; color:#e04c68; background:rgba(255,246,242,.78); font-family:Georgia,"Times New Roman",serif; font-size:15px; text-align:center; text-decoration:none; }.view-gifts:hover { border-color:rgba(224,76,104,.46); background:#fff0ed; }.view-gifts:focus-visible { outline:2px solid rgba(224,76,104,.7); outline-offset:2px; }.view-gifts span { font-family:"Avenir Next",sans-serif; font-size:19px; line-height:1; }.character-gift-empty { margin:36px 0; color:var(--muted); font-family:Georgia,"Times New Roman",serif; text-align:center; }.gift-guide-about { display:flex; align-items:center; min-height:102px; margin-top:10px; padding:18px 46px; border:1px solid var(--border); border-radius:12px; background:rgba(255,252,245,.86); box-shadow:0 3px 10px rgba(106,68,37,.07); }.gift-guide-about h2,.gift-guide-faq > h2 { margin:0 0 3px; color:#48291c; font-family:Georgia,"Times New Roman",serif; font-size:20px; font-weight:500; line-height:1.2; }.gift-guide-about p { max-width:900px; margin:0; color:#583c2b; font-family:Georgia,"Times New Roman",serif; font-size:15px; line-height:1.5; }.gift-guide-faq { margin-top:14px; }.gift-guide-faq > h2 { padding:4px 6px 10px; }
/* Character gift guide detail: uses the shared palette, typography, card language, and sky backdrop above. */
.character-detail { position:relative; padding:13px 0 4px; }.breadcrumb { display:flex; align-items:center; flex-wrap:wrap; gap:8px; margin:0 0 10px 4px; color:#684d3b; font-family:Georgia,"Times New Roman",serif; font-size:13px; }.breadcrumb a { color:#563829; text-decoration:none; }.breadcrumb a:hover { color:var(--pink-dark); }.breadcrumb span:last-child { color:var(--pink); }.character-query-header { position:relative; z-index:6; display:flex; align-items:center; gap:18px; max-width:720px; margin:0 auto 13px; }.character-query-header > img { display:block; flex:0 0 auto; width:80px; height:86px; object-fit:contain; object-position:center bottom; image-rendering:pixelated; filter:drop-shadow(1px 1px 0 rgba(79,48,39,.15)); }.character-query-copy { min-width:0; flex:1; }.character-query-copy h1 { max-width:none; font-size:31px; }.character-detail-search { position:relative; z-index:7; width:min(100%,500px); margin-top:9px; }.character-detail-search-input { display:flex; align-items:center; min-height:43px; border:1px solid var(--border-strong); border-radius:23px; background:rgba(255,253,248,.96); box-shadow:0 3px 8px rgba(110,72,40,.08); }.character-detail-search-input:focus-within { border-color:#d49a82; box-shadow:0 0 0 3px rgba(224,100,122,.15); }.character-detail-search-input svg { flex:0 0 auto; width:19px; margin:0 13px 0 16px; stroke:var(--pink); stroke-width:2; fill:none; }.character-detail-search-input input { width:100%; padding:9px 0; border:0; outline:0; color:var(--brown); background:transparent; font-family:Georgia,"Times New Roman",serif; font-size:15px; }.character-detail-search-input input::placeholder { color:#826c5c; opacity:1; }.character-detail-search-clear { width:29px; height:29px; margin-right:8px; border:0; border-radius:50%; color:var(--pink-dark); background:#f8e6e6; font-size:19px; line-height:1; }.character-detail-search-results { position:absolute; z-index:20; top:calc(100% + 6px); width:100%; max-height:316px; overflow:auto; border:1px solid var(--border-strong); border-radius:12px; background:var(--ivory); box-shadow:0 14px 32px rgba(83,50,28,.22); }.character-detail-search-result { display:flex; min-width:0; align-items:center; width:100%; min-height:47px; gap:11px; padding:6px 13px; border:0; border-bottom:1px solid #f0dfc7; color:var(--brown); background:var(--ivory); text-align:left; }.character-detail-search-result:last-child { border-bottom:0; }.character-detail-search-result:hover,.character-detail-search-result[aria-selected="true"] { background:#fff4ec; }.character-detail-result-icon { display:block; flex:0 0 auto; width:31px; height:31px; object-fit:contain; image-rendering:pixelated; }.character-detail-search-result > span { overflow:hidden; font-family:Georgia,"Times New Roman",serif; font-size:14px; text-overflow:ellipsis; white-space:nowrap; }.character-detail-search-result em { margin-left:auto; padding:2px 8px; border-radius:4px; font-size:11px; font-style:normal; font-weight:650; }.character-detail-search-result.loved em { color:#d84b64; background:#fff0ef; }.character-detail-search-result.liked em { color:#8069ad; background:#f2eefb; }.character-detail-search-result.disliked em { color:#a46a16; background:#fff4df; }.character-detail-search-result.hated em { color:#b44e5b; background:#fae9ea; }.character-detail-sections { position:relative; z-index:1; display:grid; gap:10px; }.character-gift-section { padding:12px; border:1px solid var(--border); border-radius:12px; background:rgba(255,253,247,.9); box-shadow:0 3px 10px rgba(106,68,37,.07); }.character-gift-section h2 { display:flex; align-items:center; gap:8px; margin:0 0 10px; font-family:Georgia,"Times New Roman",serif; font-size:18px; font-weight:600; line-height:1.15; }.character-gift-section h2 span { font-family:"Avenir Next",sans-serif; font-size:19px; line-height:1; }.detail-positive-section.loved { border-color:rgba(235,151,161,.3); }.detail-positive-section.loved h2 { color:#d84b64; }.detail-positive-section.liked { border-color:rgba(169,147,210,.3); }.detail-positive-section.liked h2 { color:#8069ad; }.detail-positive-grid { display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); gap:7px; }.detail-gift-card { display:flex; min-width:0; min-height:147px; align-items:center; flex-direction:column; padding:10px 8px 9px; border:1px solid #efdec7; border-radius:8px; color:#452c20; background:rgba(255,253,248,.75); font-family:Georgia,"Times New Roman",serif; text-align:center; text-decoration:none; transition:transform .15s ease,box-shadow .15s ease,border-color .15s ease; }.detail-positive-card.loved { border-color:rgba(235,151,161,.28); background:linear-gradient(145deg,rgba(255,247,245,.96),rgba(255,252,248,.73)); }.detail-positive-card.liked { border-color:rgba(169,147,210,.28); background:linear-gradient(145deg,rgba(249,247,253,.96),rgba(255,252,248,.73)); }.detail-gift-card:hover { color:#42271c; border-color:#d89a88; box-shadow:0 6px 13px rgba(106,68,37,.12); transform:translateY(-2px); }.detail-gift-icon-wrap { display:grid; place-items:center; height:48px; margin-bottom:4px; }.detail-gift-icon { display:block; width:43px; height:43px; object-fit:contain; image-rendering:pixelated; }.detail-gift-card strong { display:-webkit-box; overflow:hidden; min-height:32px; -webkit-box-orient:vertical; -webkit-line-clamp:2; color:inherit; font-size:13px; font-weight:600; line-height:1.18; }.detail-gift-acquisition { display:block; margin-top:auto; color:#a44f5d; font-size:11px; font-weight:600; line-height:1.15; }.liked .detail-gift-acquisition { color:#7e69a9; }.detail-gift-acquisition b { display:inline-block; margin-left:2px; font-family:"Avenir Next",sans-serif; transition:transform .15s ease; }.detail-gift-card:hover .detail-gift-acquisition b { transform:translateX(2px); }.detail-gift-fallback { display:grid; place-items:center; border-radius:8px; color:#806a5a; background:#f1e5d6; font-family:"Avenir Next",sans-serif; font-size:10px; font-weight:700; }.detail-negative-section.disliked { border-color:rgba(223,177,91,.37); }.detail-negative-section.disliked h2 { color:#ad721d; }.detail-negative-section.hated { border-color:rgba(217,125,137,.37); }.detail-negative-section.hated h2 { color:#be5666; }.negative-gift-grid { display:grid; grid-template-columns:repeat(6,minmax(0,1fr)); gap:5px; }.negative-gift-card { display:flex; min-width:0; min-height:31px; align-items:center; gap:8px; padding:4px 7px; border:1px solid #f0dfc7; border-radius:6px; color:#4d3325; background:rgba(255,253,248,.72); font-family:Georgia,"Times New Roman",serif; font-size:12px; line-height:1.15; text-decoration:none; }.negative-gift-card:hover { border-color:#d59b70; color:#42271c; background:#fff8ee; }.negative-gift-card span { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }.negative-gift-icon { display:block; flex:0 0 auto; width:22px; height:22px; object-fit:contain; image-rendering:pixelated; }.negative-gift-grid.is-collapsed .negative-gift-card:nth-child(n + 13) { display:none; }.negative-gift-grid.is-expanded .negative-gift-card { display:flex; }.negative-gift-toggle { display:flex; align-items:center; justify-content:center; gap:7px; width:100%; min-height:31px; margin-top:3px; border:0; color:#a46a16; background:transparent; font-family:Georgia,"Times New Roman",serif; font-size:13px; font-weight:600; }.hated .negative-gift-toggle { color:#be5666; }.negative-gift-toggle:hover { text-decoration:underline; text-underline-offset:3px; }.character-detail-empty { margin:24px 0; color:var(--muted); font-family:Georgia,"Times New Roman",serif; text-align:center; }.character-detail-about { margin-top:10px; padding:17px 22px; border:1px solid var(--border); border-radius:12px; background:rgba(255,252,245,.86); box-shadow:0 3px 10px rgba(106,68,37,.07); }.character-detail-about h2 { margin:0 0 4px; color:#48291c; font-family:Georgia,"Times New Roman",serif; font-size:19px; font-weight:600; }.character-detail-about p { max-width:920px; margin:0; color:#583c2b; font-family:Georgia,"Times New Roman",serif; font-size:14px; line-height:1.5; }

@media (max-width:1024px) { .brand { gap:9px; font-size:22px; }.brand-mark { width:36px; height:36px; }.site-navigation { gap:14px; }.site-navigation a { font-size:15px; }.feature-grid { grid-template-columns:repeat(2,1fr); }.items-card { grid-column:span 2; min-height:286px; }.item-grid { max-width:480px; grid-template-columns:repeat(6,1fr); margin-inline:auto; }.hero { min-height:285px; }.hero-content { padding-top:25px; }.hero-copy { font-size:18px; }.gift-guide-hero { min-height:190px; }.gift-guide-hero-content { padding-top:31px; }.character-gift-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px; } }
@media (max-width:1024px) and (min-width:621px) { .character-query-header { max-width:680px; }.detail-positive-grid { grid-template-columns:repeat(4,minmax(0,1fr)); }.negative-gift-grid { grid-template-columns:repeat(4,minmax(0,1fr)); }.negative-gift-grid.is-collapsed .negative-gift-card:nth-child(n + 9) { display:none; }.negative-gift-grid.is-expanded .negative-gift-card { display:flex; } }
@media (max-width:620px) { .shell,.header-inner { width:min(100% - 28px,1120px); }.site-header { padding-top:8px; }.header-inner { min-height:52px; padding:0 12px; border-radius:13px; }.brand { min-width:0; gap:7px; font-size:clamp(14px,4.15vw,18px); letter-spacing:-.03em; white-space:nowrap; }.brand-text-full { display:none; }.brand-text-short { display:inline; }.brand-mark { width:27px; height:27px; }.menu-button { display:block; color:var(--brown); font-size:22px; }.site-navigation { display:none; position:absolute; top:60px; right:14px; left:14px; flex-direction:column; align-items:stretch; gap:2px; padding:8px; background:var(--ivory); border:1px solid var(--border); border-radius:10px; box-shadow:0 10px 25px rgba(84,51,28,.16); }.site-navigation.is-open { display:flex; }.site-navigation a { padding:11px 14px; font-family:"Avenir Next",sans-serif; font-size:15px; }.site-navigation a[aria-current="page"]::after { display:none; }.hero { min-height:230px; }.hero-landscape,.gift-guide-landscape { background-position:82% 0; background-size:auto 390px; opacity:.92; }.hero::before,.gift-guide-hero::before { background:linear-gradient(90deg,rgba(255,250,240,.16),rgba(255,250,240,.48) 22%,rgba(255,250,240,.76) 43%,rgba(255,250,240,.76) 57%,rgba(255,250,240,.48) 78%,rgba(255,250,240,.16)),linear-gradient(180deg,rgba(252,250,239,.04),rgba(255,249,241,.16)); }.hero::after,.gift-guide-hero::after { height:108px; }.hero-content { padding:30px 0 22px; } h1 { max-width:500px; font-size:29px; line-height:1.12; }.hero-copy { max-width:440px; margin:10px auto 20px; font-size:16px; }.search-input-wrap { min-height:54px; }.search-icon { width:24px; margin-left:14px; margin-right:12px; } #global-search { font-size:15px; }.popular-searches { margin-top:12px; font-size:13px; }.ad-banner { --ad-banner-width:320px; --ad-banner-height:50px; margin-top:34px; margin-bottom:34px; }.character-gift-grid > .ad-banner,.items-query-grid > .ad-banner { margin-top:20px; margin-bottom:20px; }.character-detail-sections > .ad-banner { margin-top:38px; margin-bottom:44px; }.item-detail-content > .ad-banner { margin-top:34px; margin-bottom:37px; }.consent-banner,.consent-preferences { right:14px; bottom:14px; left:14px; width:calc(100% - 28px); padding:17px; }.consent-banner { grid-template-columns:1fr; gap:14px; }.consent-banner h2,.consent-preferences h2 { font-size:20px; }.consent-banner-actions { grid-template-columns:1fr 1fr; justify-content:stretch; }.consent-banner-actions .consent-button { width:100%; }.consent-button-link { justify-self:center; }.consent-choice { gap:9px; }
@media (max-width:620px) { .consent-banner { display:grid; gap:10px; }.consent-banner p { font-size:13px; }.consent-preferences h2 { font-size:20px; } }
  .feature-grid { grid-template-columns:1fr; gap:12px; margin-top:18px; }.feature-card,.items-card { grid-column:auto; min-height:0; padding:19px 18px 14px; }.card-heading { gap:12px; }.module-icon { width:44px; height:44px; }.portrait-grid { gap:12px 5px; margin-top:15px; margin-inline:0; }.item-grid { max-width:none; grid-template-columns:repeat(4,minmax(0,1fr)); margin:15px 0 0; }.portrait { width:44px; height:52px; }.item-icon { width:44px; height:40px; }.card-cta { padding-top:14px; }.lower-content { margin-top:34px; }.seo-intro { padding:17px; text-align:left; }.seo-intro p { line-height:1.55; }.faq { margin-top:34px; padding:15px 14px; }.faq details + details { margin-top:8px; }.faq summary { min-height:56px; padding:10px 12px; font-size:14px; }.faq summary::before { margin-right:10px; }.faq summary::after { padding-left:10px; }.faq details p { padding:7px 34px 14px 40px; font-size:13px; }.site-footer { margin-top:42px; }.footer-inner { padding:0 0 18px; }.footer-inner nav { gap:16px; margin-top:9px; }.footer-inner p { max-width:300px; }.gift-guide-hero { min-height:174px; }.gift-guide-hero-content { padding:27px 0 24px; }.gift-guide-search { width:min(100%,500px); margin-top:15px; }.gift-guide-search-input { min-height:50px; }.character-gift-grid { grid-template-columns:1fr; gap:12px; }.character-gift-card { padding:10px; }.character-gift-header { min-height:84px; gap:12px; margin:0 3px 15px; padding:4px 9px 6px; }.character-gift-header img { width:68px; height:73px; }.character-gift-header h2 { font-size:24px; }.gift-preference { min-height:122px; padding:11px 10px 12px; }.gift-preference + .gift-preference { margin-top:10px; }.gift-items { grid-auto-rows:73px; column-gap:6px; }.gift-item { grid-template-rows:37px 30px; row-gap:6px; font-size:13px; line-height:15px; }.gift-item img,.gift-item-fallback { width:37px; height:36px; }.view-gifts { min-height:42px; margin-top:14px; }.gift-guide-about { min-height:0; margin-top:12px; padding:17px; }.gift-guide-about h2 { font-size:19px; }.gift-guide-about p { font-size:14px; }
  .character-detail { padding-top:11px; }.breadcrumb { margin-bottom:7px; font-size:12px; }.character-query-header { align-items:flex-end; gap:10px; margin-bottom:12px; }.character-query-header > img { width:68px; height:75px; }.character-query-copy h1 { font-size:27px; }.character-detail-search { margin-top:7px; }.character-detail-search-input { min-height:45px; }.character-gift-section { padding:10px; }.character-gift-section h2 { margin-bottom:8px; font-size:17px; }.detail-positive-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:6px; }.detail-gift-card { min-height:135px; padding:8px; }.negative-gift-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:5px; }.negative-gift-grid.is-collapsed .negative-gift-card:nth-child(n + 5) { display:none; }.negative-gift-grid.is-expanded .negative-gift-card { display:flex; }.negative-gift-card { min-height:35px; font-size:12px; }.character-detail-about { margin-top:12px; padding:16px; }
}
@media (prefers-reduced-motion:reduce) { *,*::before,*::after { scroll-behavior:auto!important; transition:none!important; animation:none!important; } }

@media (max-width:620px) { .legal-page { padding:42px 0 4px; }.legal-page-header { padding-bottom:22px; }.legal-page-header h1 { font-size:clamp(30px,9vw,36px); }.legal-updated { margin-top:10px; font-size:14px; }.legal-page-content { font-size:15px; line-height:1.65; }.legal-page-content > p:first-child { margin-top:24px; font-size:16px; }.legal-page-content section { margin-top:34px; }.legal-page-content h2 { font-size:22px; }.legal-page-content ul { padding-left:21px; }.legal-page-content li + li { margin-top:5px; } }

@media (max-width:620px) { .card-heading { gap:8px; }.module-icon { width:58px; height:50px; } }

@media (min-width:621px) {
  .item-icon { width:47px; height:43px; }
  .lower-content { margin-top:58px; }
  .faq { margin-top:50px; }
  .site-footer { margin-top:72px; }
}

@media (min-width:621px) and (max-width:1024px) {
  .site-header { background-position:center -4px; background-size:auto 390px; }
  .hero-landscape { background-position:center -4px; background-size:auto 390px; }
  .hero::before { background:linear-gradient(90deg,rgba(255,250,240,.04),rgba(255,250,240,.24) 16%,rgba(255,250,240,.71) 31%,rgba(255,250,240,.86) 50%,rgba(255,250,240,.71) 69%,rgba(255,250,240,.24) 84%,rgba(255,250,240,.04)),linear-gradient(180deg,rgba(252,250,239,.03),rgba(255,249,241,.16)); }
  .items-card { grid-column:auto; min-height:278px; }
  .item-grid { max-width:none; grid-template-columns:repeat(4,minmax(0,1fr)); margin-inline:-5px; }
}

@media (max-width:620px) {
  .site-header { background-image:linear-gradient(rgba(255,250,240,.73),rgba(255,250,240,.73)),url("/public/images/homepage-hero-background.png"); background-position:center 0; background-size:auto 404px; }
  .hero-landscape,.gift-guide-landscape { background-position:center 0; background-size:auto 404px; }
  .feature-grid { margin-top:24px; gap:18px; }
  .lower-content { margin-top:46px; }
  .faq { margin-top:42px; }
  .site-footer { margin-top:64px; }
  .search-results { top:calc(100% + 7px); }
  .search-result { min-height:50px; padding-inline:13px; }
  .search-result-thumbnail { flex-basis:34px; width:34px; height:34px; max-width:34px; max-height:34px; }
}

/* Keep the expanded state stronger than each breakpoint's two-row clipping rule. */
.negative-gift-grid.is-collapsed.is-expanded .negative-gift-card:nth-child(n) { display:flex; }

/* Character guide refinement: strengthen the compact query header and let gift cards carry the visual weight. */
.character-detail { padding:0; }
.character-detail-top { position:relative; z-index:2; min-height:0; overflow:visible; background:linear-gradient(90deg,rgba(255,250,240,.12),rgba(255,250,240,.4) 28%,rgba(255,250,240,.55) 50%,rgba(255,250,240,.4) 72%,rgba(255,250,240,.12)),linear-gradient(180deg,rgba(255,249,241,.06) 0%,rgba(255,249,241,.12) 42%,rgba(255,249,241,.62) 74%,var(--cream) 100%),url("/public/images/homepage-hero-background.png") center -33px / 100% auto fixed no-repeat; background-repeat:no-repeat; isolation:isolate; }
.character-detail-top-content { position:relative; z-index:1; padding-top:18px; }
.character-detail-content { position:relative; z-index:1; padding-bottom:0; }
.breadcrumb { margin-bottom:19px; }
.character-query-header { max-width:810px; gap:25px; margin-bottom:40px; }
.character-query-header > img { width:102px; height:108px; padding:4px; border:1px solid rgba(236,217,189,.8); border-radius:13px; background:rgba(255,253,248,.48); }
.character-query-copy h1 { font-size:42px; line-height:1.06; }
.character-detail-intro { max-width:650px; margin:10px 0 0; color:#674a38; font-family:Georgia,"Times New Roman",serif; font-size:15px; line-height:1.45; }
.character-detail-search { width:min(100%,660px); margin-top:14px; }
.character-detail-search-input { min-height:54px; border-radius:28px; }
.character-detail-search-input svg { width:21px; margin-left:19px; }
.character-detail-search-input input { font-size:16px; }
.character-detail-sections { gap:0; }
.character-gift-section { padding:0; border:0; border-radius:0; background:transparent; box-shadow:none; }
.detail-positive-section { padding:14px; border:1px solid rgba(236,217,189,.56); border-radius:12px; background:rgba(255,253,247,.48); }
.detail-positive-section + .detail-positive-section { margin-top:52px; }
.detail-positive-section.loved { border-color:rgba(235,151,161,.2); }
.detail-positive-section.liked { border-color:rgba(169,147,210,.2); }
.positive-section-heading { display:flex; flex-wrap:wrap; align-items:baseline; gap:12px 14px; margin:0 2px 17px; }
.character-gift-section h2 { margin:0; font-size:17px; font-weight:550; }
.character-gift-section h2 span { font-size:18px; }
.positive-section-heading p { margin:0; color:#806a5a; font-family:Georgia,"Times New Roman",serif; font-size:13px; font-weight:400; line-height:1.35; }
.detail-positive-grid { gap:15px 13px; }
.detail-gift-card { min-height:130px; justify-content:center; padding:10px 9px; border-radius:9px; }
.detail-positive-card.loved { border-color:rgba(235,151,161,.2); background:rgba(255,248,246,.88); }
.detail-positive-card.liked { border-color:rgba(169,147,210,.2); background:rgba(249,247,253,.88); }
.detail-gift-icon-wrap { height:47px; margin:0 0 8px; }
.detail-gift-icon { width:48px; height:48px; }
.detail-gift-card strong { min-height:30px; font-size:13px; line-height:1.17; }
.detail-gift-acquisition { margin-top:9px; color:#a8737c; font-size:11px; font-weight:550; }
.liked .detail-gift-acquisition { color:#8978a8; }
.detail-gift-card:hover .detail-gift-acquisition { color:#954a59; }
.detail-positive-card.liked:hover .detail-gift-acquisition { color:#745a9c; }
.detail-negative-section { margin-top:60px; }
.detail-negative-section + .detail-negative-section { margin-top:43px; }
.detail-negative-section h2 { margin:0 2px 11px; }
.negative-gift-grid { grid-template-columns:repeat(5,minmax(0,1fr)); gap:9px 12px; }
.negative-gift-card { min-height:50px; gap:11px; padding:9px 14px; border-radius:8px; font-size:13px; }
.negative-gift-icon { width:26px; height:26px; }
.negative-gift-grid.is-collapsed .negative-gift-card:nth-child(n + 11) { display:none; }
.negative-gift-toggle { min-height:38px; margin-top:5px; color:#a67b42; font-size:12px; font-weight:600; }
.hated .negative-gift-toggle { color:#a86a73; }
.character-detail-about { margin-top:62px; padding:13px 18px; border-color:rgba(236,217,189,.65); background:rgba(255,252,245,.58); box-shadow:none; }
.character-detail-about h2 { margin-bottom:3px; font-size:17px; font-weight:550; }
.character-detail-about p { max-width:850px; color:#684d3b; font-size:13px; }
.character-detail-direct-answer { margin-top:54px; padding:14px 18px; border:1px solid rgba(236,217,189,.65); border-radius:12px; background:rgba(255,252,245,.58); }
.character-detail-direct-answer h2 { margin:0; color:#48291c; font-family:Georgia,"Times New Roman",serif; font-size:17px; font-weight:550; }
.character-detail-direct-answer p { max-width:850px; margin:4px 0 0; color:#684d3b; font-family:Georgia,"Times New Roman",serif; font-size:13px; line-height:1.5; }
.character-detail + * { margin-top:64px; }
.character-detail-empty { max-width:560px; margin:34px auto 0; padding:0 18px; color:#604637; font-family:Georgia,"Times New Roman",serif; text-align:center; }
.character-detail-empty-message { margin:0; font-size:15px; font-weight:600; line-height:1.45; }
.character-detail-empty-helper { margin:9px 0 0; color:#806a5a; font-size:13px; font-weight:400; line-height:1.45; }

@media (max-width:1024px) and (min-width:621px) {
  .character-detail-top { background-position:0 0,0 0,center -12px; background-size:auto,auto,auto 500px; }
  .character-query-header { max-width:740px; }
  .negative-gift-grid { grid-template-columns:repeat(4,minmax(0,1fr)); }
  .negative-gift-grid.is-collapsed .negative-gift-card:nth-child(n + 9) { display:none; }
}

@media (max-width:620px) {
  .character-detail-top { background-position:0 0,0 0,82% 0; background-size:auto,auto,auto 390px; background-attachment:scroll; background-image:linear-gradient(90deg,rgba(255,250,240,.25),rgba(255,250,240,.55) 30%,rgba(255,250,240,.7) 64%,rgba(255,250,240,.28)),linear-gradient(180deg,rgba(255,249,241,.08) 0%,rgba(255,249,241,.24) 42%,rgba(255,249,241,.72) 76%,var(--cream) 100%),url("/public/images/homepage-hero-background.png"); }
  .character-detail-top-content { padding-top:15px; }
  .breadcrumb { margin-bottom:14px; }
  .character-query-header { align-items:flex-end; gap:12px; margin-bottom:35px; }
  .character-query-header > img { width:78px; height:84px; border-radius:10px; }
  .character-query-copy h1 { font-size:30px; }
  .character-detail-intro { margin-top:8px; font-size:14px; line-height:1.42; }
  .character-detail-search { margin-top:10px; }
  .character-detail-search-input { min-height:50px; }
  .detail-positive-section { padding:11px; }
  .detail-positive-section + .detail-positive-section { margin-top:42px; }
  .positive-section-heading { gap:6px 12px; margin-bottom:16px; }
  .positive-section-heading p { font-size:12px; }
  .detail-positive-grid { gap:10px 8px; }
  .detail-gift-card { min-height:126px; }
  .detail-gift-icon { width:45px; height:45px; }
  .detail-negative-section { margin-top:50px; }
  .detail-negative-section + .detail-negative-section { margin-top:38px; }
  .negative-gift-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:7px; }
  .negative-gift-grid.is-collapsed .negative-gift-card:nth-child(n + 5) { display:none; }
  .negative-gift-card { min-height:48px; padding:8px 11px; }
  .character-detail-about { margin-top:56px; }
  .character-detail-direct-answer { margin-top:46px; padding:14px 16px; }
  .character-detail + * { margin-top:64px; }
  .character-detail-empty { max-width:340px; margin-top:30px; padding:0; }
  .character-detail-empty-message { font-size:14px; }
  .character-detail-empty-helper { margin-top:8px; font-size:12px; }
}

/* Items is a compact query surface that reuses the Gift Guide hero landscape and search treatment. */
.items-hero { min-height:222px; }
.items-hero-content { padding:25px 0 30px; }
.items-hero-copy { margin:8px 0 0; color:#563a29; font-family:Georgia,"Times New Roman",serif; font-size:17px; line-height:1.4; }
.items-search { margin-top:17px; }
.items-page-content { position:relative; z-index:1; padding-top:12px; padding-bottom:2px; }
.items-page-content > [hidden] { display:none !important; }
.items-page-content > h2 { margin:0 0 17px; color:#48291c; font-family:Georgia,"Times New Roman",serif; font-size:27px; font-weight:500; line-height:1.15; letter-spacing:-.02em; }
.items-query-grid { display:grid; grid-template-columns:repeat(6,minmax(0,1fr)); gap:12px; }
.items-query-grid > .mobile-native-ad { grid-column:1 / -1; }
.item-query-card { display:flex; min-width:0; min-height:154px; align-items:center; justify-content:center; flex-direction:column; gap:10px; padding:13px 10px 11px; border:1px solid #efdec7; border-radius:11px; color:#472e21; background:rgba(255,253,247,.93); box-shadow:0 3px 10px rgba(106,68,37,.07); text-align:center; text-decoration:none; transition:border-color .16s ease,box-shadow .16s ease,transform .16s ease; }
.item-query-card:hover { border-color:#e5cba5; color:#9e4258; box-shadow:0 6px 14px rgba(106,68,37,.12); transform:translateY(-1px); }
.item-query-card-icon { display:block; flex:0 0 auto; width:68px; height:68px; object-fit:contain; image-rendering:pixelated; }
.item-query-card-icon.is-unavailable { visibility:hidden; }
.item-query-card-name { display:-webkit-box; overflow:hidden; min-height:34px; max-height:34px; align-self:stretch; -webkit-box-orient:vertical; -webkit-line-clamp:2; color:inherit; font-family:Georgia,"Times New Roman",serif; font-size:14px; font-weight:500; line-height:17px; }
.items-query-loading,.items-query-empty { grid-column:1 / -1; margin:28px 0; color:var(--muted); font-family:Georgia,"Times New Roman",serif; text-align:center; }
.items-query-empty span { display:block; margin-top:3px; font-size:14px; }
.items-show-more { min-width:142px; margin:25px auto 0; padding:8px 20px; }
.items-pagination { display:flex; align-items:center; justify-content:center; gap:18px; margin:25px auto 0; color:var(--muted); font-family:Georgia,"Times New Roman",serif; }
.items-pagination a { color:var(--plum); font-weight:700; text-decoration:underline; text-underline-offset:3px; }

@media (max-width:1024px) and (min-width:621px) {
  .items-query-grid { grid-template-columns:repeat(4,minmax(0,1fr)); gap:13px; }
  .item-query-card { min-height:158px; }
}

@media (max-width:620px) {
  .items-hero { min-height:221px; }
  .items-hero-content { padding:27px 0; }
  .items-hero-copy { max-width:335px; margin-top:7px; font-size:16px; }
  .items-search { margin-top:15px; }
  .items-page-content { padding-top:8px; }
  .items-page-content > h2 { margin-bottom:13px; font-size:24px; }
  .items-query-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; }
  .item-query-card { min-height:148px; gap:8px; padding:11px 8px 10px; border-radius:10px; }
  .item-query-card-icon { width:64px; height:64px; }
  .item-query-card-name { min-height:33px; max-height:33px; font-size:13px; line-height:16px; }
  .items-show-more { min-height:42px; margin-top:20px; }
}

/* Item detail keeps acquisition information in one scannable container. */
.item-detail-top-content { padding-top:13px; }
.item-detail-breadcrumb { margin-bottom:11px; }
.item-detail-breadcrumb .item-detail-breadcrumb-items { color:var(--pink-dark); }
.item-detail-breadcrumb .item-detail-breadcrumb-current { color:#806a5a; }
.item-detail-identity { display:flex; align-items:center; gap:18px; min-height:0; padding-bottom:22px; }
.item-detail-icon { display:block; flex:0 0 auto; width:82px; height:82px; object-fit:contain; image-rendering:pixelated; }
.item-detail-identity h1 { max-width:none; font-size:37px; }
.item-detail-content { padding-bottom:0; }
.item-detail-how-to-get > h2,.item-detail-recipe > h2,.item-detail-preferences > h2 { margin:0 0 17px; color:#48291c; font-family:Georgia,"Times New Roman",serif; font-size:27px; font-weight:500; line-height:1.15; letter-spacing:-.02em; }
.item-detail-acquisition-container { --acquisition-primary:#513020; --acquisition-action:#806a5a; --acquisition-secondary:#715341; --acquisition-tertiary:#806a5a; overflow:hidden; border:1px solid var(--border); border-radius:13px; background:rgba(255,253,247,.88); box-shadow:0 3px 10px rgba(106,68,37,.07); }
.item-detail-acquisition-group { padding:13px 20px 14px; }
.item-detail-acquisition-group + .item-detail-acquisition-group { border-top:1px solid rgba(236,217,189,.9); }
.item-detail-acquisition-type { display:inline-flex; align-items:center; min-height:24px; margin:0 0 9px; padding:3px 9px; border:1px solid rgba(201,169,132,.48); border-radius:6px; color:#71513c; background:rgba(251,242,228,.76); font-family:Georgia,"Times New Roman",serif; font-size:13px; font-weight:600; line-height:1.15; letter-spacing:.015em; }
.item-detail-acquisition-group.is-type-only { padding-top:9px; padding-bottom:9px; }
.item-detail-acquisition-group.is-type-only h3 { margin:0; }
.item-detail-recipe { margin-top:42px; }
.item-detail-crafting-facts { margin:0 0 11px; color:var(--acquisition-tertiary); font-family:Georgia,"Times New Roman",serif; font-size:13px; font-weight:400; line-height:1.45; }
.item-detail-ingredients { margin-top:3px; }
.item-detail-ingredients h4,.item-detail-recipe-source h4 { margin:0 0 9px; color:#76523d; font-family:Georgia,"Times New Roman",serif; font-size:14px; font-weight:600; }
.item-detail-ingredients > div { display:flex; flex-wrap:wrap; gap:8px; }
.item-detail-ingredient { display:flex; min-width:126px; min-height:48px; align-items:center; gap:9px; padding:6px 10px 6px 7px; border:1px solid #ead6bb; border-radius:8px; color:#4d3325; background:rgba(255,252,246,.84); font-family:Georgia,"Times New Roman",serif; font-size:13px; line-height:1.2; text-decoration:none; transition:border-color .16s ease,box-shadow .16s ease,background .16s ease; }
.item-detail-ingredient:hover { border-color:#d8b887; color:#8f4053; background:#fff8ef; box-shadow:0 3px 9px rgba(106,68,37,.09); }
.item-detail-ingredient-icon { display:grid; place-items:center; flex:0 0 auto; width:33px; height:33px; }
.item-detail-ingredient-icon img { display:block; width:33px; height:33px; object-fit:contain; image-rendering:pixelated; }
.item-detail-ingredient-copy { min-width:0; }
.item-detail-ingredient-name { color:#8b5d44; font-weight:600; }
.item-detail-ingredient-quantity { color:#806a5a; font-weight:400; white-space:nowrap; }
.item-detail-recipe-source { margin-top:12px; padding:0; border:0; border-radius:0; background:transparent; }
.item-detail-recipe-source-list { display:grid; gap:6px; }
.item-detail-recipe-source-entry { display:grid; gap:1px; color:#684b39; font-family:Georgia,"Times New Roman",serif; font-size:14px; font-weight:400; line-height:1.4; }
.item-detail-recipe-source-entry small { color:var(--acquisition-tertiary); font-size:13px; font-weight:400; }
.item-detail-recipe-source-or { color:#9a7a66; font-family:Georgia,"Times New Roman",serif; font-size:13px; font-style:italic; line-height:1; }
.item-detail-method-rows { display:grid; gap:12px; }
.item-detail-method-row { display:grid; gap:6px; min-width:0; color:#5f4331; font-family:Georgia,"Times New Roman",serif; font-size:14px; line-height:1.4; }
.item-detail-method-instruction { margin:0; color:var(--acquisition-primary); font-size:15px; font-weight:600; line-height:1.46; }
.item-detail-method-tips { display:grid; gap:4px; padding:7px 9px; border-left:2px solid rgba(194,145,105,.52); border-radius:0 7px 7px 0; background:rgba(248,238,220,.5); }
.item-detail-method-tips p { margin:0; color:#76523d; font-family:Georgia,"Times New Roman",serif; font-size:13px; line-height:1.4; }
.item-detail-method-tips span { display:inline-block; margin-right:7px; color:#9a5a68; font-weight:600; }
.item-detail-unavailable { margin:0; padding:12px 14px; border:1px solid rgba(236,217,189,.72); border-radius:10px; color:#806a5a; background:rgba(255,253,247,.58); font-family:Georgia,"Times New Roman",serif; font-size:15px; }
.item-detail-preferences { margin-top:43px; }
.item-detail-preference-grid { display:grid; grid-template-columns:minmax(0,1fr); gap:14px; }
.item-detail-preference-grid.has-two-groups { grid-template-columns:repeat(2,minmax(0,1fr)); }
.item-detail-preference-panel { min-width:0; padding:16px; border:1px solid var(--border); border-radius:12px; background:rgba(255,253,247,.78); }
.item-detail-preference-panel.loved { border-color:rgba(235,151,161,.35); background:linear-gradient(120deg,rgba(255,239,237,.76),rgba(255,252,247,.8)); }
.item-detail-preference-panel.liked { border-color:rgba(169,147,210,.3); background:linear-gradient(120deg,rgba(245,240,252,.8),rgba(255,252,247,.8)); }
.item-detail-preference-panel h3 { margin:0 0 13px; font-family:Georgia,"Times New Roman",serif; font-size:18px; font-weight:600; }
.item-detail-preference-panel.loved h3 { color:#d84b64; }
.item-detail-preference-panel.liked h3 { color:#826cb0; }
.item-detail-preference-panel > div { display:flex; flex-wrap:wrap; gap:9px; }
.item-detail-preference-empty { padding:12px 14px; border:1px solid rgba(236,217,189,.72); border-radius:10px; color:#806a5a; background:rgba(255,253,247,.58); font-family:Georgia,"Times New Roman",serif; font-size:14px; line-height:1.45; }
.item-detail-character { display:flex; min-width:102px; min-height:88px; flex:1 0 102px; align-items:center; justify-content:center; flex-direction:column; gap:4px; padding:7px 6px; border:1px solid rgba(234,216,188,.74); border-radius:8px; color:#4d3325; background:rgba(255,253,248,.73); font-family:Georgia,"Times New Roman",serif; font-size:13px; line-height:1.15; text-align:center; text-decoration:none; transition:border-color .16s ease,box-shadow .16s ease,transform .16s ease; }
.item-detail-character:hover { border-color:rgba(224,116,137,.45); color:#9d4055; background:#fff9f5; box-shadow:0 3px 8px rgba(106,68,37,.09); transform:translateY(-1px); }
.item-detail-character img { display:block; width:46px; height:52px; object-fit:contain; object-position:center bottom; image-rendering:pixelated; }
.item-detail + * { margin-top:64px; }

@media (max-width:1024px) and (min-width:621px) {
  .item-detail-top { background-position:0 0,0 0,center -12px; background-size:auto,auto,auto 500px; }
  .item-detail-preference-grid.has-two-groups { gap:12px; }
  .item-detail-character { min-width:92px; flex-basis:92px; }
}

@media (max-width:620px) {
  .item-detail-top { background-position:0 0,0 0,82% 0; background-size:auto,auto,auto 390px; background-attachment:scroll; background-image:linear-gradient(90deg,rgba(255,250,240,.25),rgba(255,250,240,.55) 30%,rgba(255,250,240,.7) 64%,rgba(255,250,240,.28)),linear-gradient(180deg,rgba(255,249,241,.08) 0%,rgba(255,249,241,.24) 42%,rgba(255,249,241,.72) 76%,var(--cream) 100%),url("/public/images/homepage-hero-background.png"); }
  .item-detail-top-content { padding-top:12px; }
  .item-detail-breadcrumb { margin-bottom:9px; }
  .item-detail-identity { align-items:center; flex-direction:column; gap:6px; min-height:0; padding-bottom:22px; text-align:center; }
  .item-detail-icon { width:70px; height:70px; }
  .item-detail-identity h1 { font-size:29px; }
  .item-detail-how-to-get > h2,.item-detail-recipe > h2,.item-detail-preferences > h2 { margin-bottom:13px; font-size:24px; }
  .item-detail-acquisition-group { padding:12px 14px; }
  .item-detail-acquisition-type { margin-bottom:9px; font-size:13px; }
  .item-detail-acquisition-group.is-type-only { padding-top:8px; padding-bottom:8px; }
  .item-detail-acquisition-group.is-type-only h3 { margin:0; }
  .item-detail-crafting-facts { margin-bottom:12px; font-size:12px; }
  .item-detail-ingredients > div { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:7px; }
  .item-detail-ingredient { min-width:0; min-height:46px; padding-right:7px; font-size:12px; }
  .item-detail-method-row { font-size:13px; }
  .item-detail-method-instruction { font-size:14px; }
  .item-detail-method-tips p { font-size:12px; }
  .item-detail-preferences { margin-top:37px; }
  .item-detail-preference-grid.has-two-groups { grid-template-columns:1fr; gap:12px; }
  .item-detail-preference-panel { padding:13px; }
  .item-detail-character { min-width:88px; min-height:85px; flex-basis:88px; font-size:12px; }
  .item-detail-character img { width:43px; height:49px; }
}
