:root { color-scheme: dark; --bg:#0c0c0d; --panel:#171719; --soft:#252529; --text:#f5f1e8; --muted:#aaa5a0; --accent:#e9a84c; --line:#363238; }
* { box-sizing:border-box; }
body { margin:0; background:radial-gradient(circle at 80% 0,#2b1e14 0,transparent 34rem),var(--bg); color:var(--text); font-family:system-ui,-apple-system,"Noto Sans JP",sans-serif; line-height:1.65; }
a { color:inherit; }
.site-header { min-height:70px; padding:18px clamp(20px,5vw,72px); display:flex; justify-content:space-between; align-items:center; border-bottom:1px solid var(--line); }
.brand { text-decoration:none; text-transform:uppercase; letter-spacing:.16em; font-weight:800; }
.badge,.eyebrow { color:var(--accent); font-size:.72rem; font-weight:800; letter-spacing:.14em; text-transform:uppercase; }
main { width:min(1120px,calc(100% - 36px)); margin:auto; padding:clamp(36px,7vw,88px) 0; }
.hero { max-width:760px; padding:6vh 0 9vh; }
h1 { font-size:clamp(2.2rem,7vw,5.2rem); line-height:1.05; letter-spacing:-.04em; margin:.2em 0 .35em; }
h2 { font-size:clamp(1.35rem,3vw,2rem); margin:.2em 0 .65em; }
h3 { font-size:1rem; line-height:1.5; }
.hero>p:not(.eyebrow),.page-head>p:not(.eyebrow) { color:var(--muted); font-size:1.08rem; max-width:680px; }
.button,button { display:inline-flex; border:1px solid var(--line); border-radius:999px; padding:.7rem 1rem; background:var(--soft); color:var(--text); text-decoration:none; cursor:pointer; font:inherit; font-weight:700; }
.button.primary,.button.official { background:var(--accent); color:#1a1208; border-color:var(--accent); }
.info-grid,.card-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(min(100%,250px),1fr)); gap:14px; }
.info-grid article,.card,.filter-panel,.work-head { background:color-mix(in srgb,var(--panel) 92%,transparent); border:1px solid var(--line); border-radius:18px; padding:22px; }
.card { display:flex; flex-direction:column; min-height:220px; }
.card h3 { flex:1; }
.product-image { display:block; width:100%; aspect-ratio:4/3; object-fit:contain; background:#0a0a0b; border-radius:12px; margin-bottom:16px; }
.meta { color:var(--muted); font-size:.85rem; }
.page-head { margin-bottom:34px; }
.filter-panel { margin:24px 0 46px; }
.filter-help { color:var(--muted); margin:-.35rem 0 1rem; }
.chips { display:flex; gap:8px; flex-wrap:wrap; }
.chip { background:transparent; }
.chip.active { background:var(--accent); color:#1a1208; border-color:var(--accent); }
.filter-status,.section-heading { display:flex; justify-content:space-between; align-items:center; gap:20px; margin-top:20px; }
.text-button { background:none; border:0; color:var(--muted); text-decoration:underline; padding:0; }
.empty { color:var(--muted); border:1px dashed var(--line); padding:24px; border-radius:14px; }
.crumb { display:flex; gap:9px; color:var(--muted); font-size:.9rem; margin-bottom:24px; }
.work-head { margin-bottom:30px; }
.work-head-grid { display:grid; grid-template-columns:minmax(180px,32%) 1fr; gap:28px; align-items:start; }
.work-head-grid .product-image { margin:0; }
.work-head h1 { font-size:clamp(1.8rem,5vw,3.5rem); }
.recommendation-section { margin-top:54px; }
footer { border-top:1px solid var(--line); padding:30px clamp(20px,5vw,72px); color:var(--muted); font-size:.8rem; }
dialog { border:1px solid var(--line); border-radius:20px; background:var(--panel); color:var(--text); padding:0; width:min(460px,calc(100% - 32px)); }
dialog::backdrop { background:rgba(0,0,0,.82); backdrop-filter:blur(8px); }
.gate-card { padding:30px; }
.gate-actions { display:flex; gap:12px; flex-wrap:wrap; align-items:center; }
[hidden] { display:none !important; }
@media (max-width:600px) { main { width:min(100% - 24px,1120px); } .card { min-height:0; } .section-heading { align-items:flex-end; } .work-head-grid { grid-template-columns:1fr; } .work-head-grid .product-image { max-height:60vh; } }
