/* === Design Tokens === */
:root {
  --bg-primary: #0a0a12;
  --bg-secondary: #12121e;
  --bg-card: rgba(255,255,255,0.04);
  --bg-card-hover: rgba(255,255,255,0.08);
  --bg-glass: rgba(255,255,255,0.06);
  --border-glass: rgba(255,255,255,0.08);
  --text-primary: #f0f0f5;
  --text-secondary: #8888a4;
  --text-dim: #55556a;
  --accent-1: #6366f1;
  --accent-2: #ec4899;
  --accent-3: #8b5cf6;
  --gradient-main: linear-gradient(135deg, var(--accent-1), var(--accent-2));
  --gradient-subtle: linear-gradient(135deg, rgba(99,102,241,0.15), rgba(236,72,153,0.15));
  --radius-sm: 8px;
  --radius-md: 14px;
  --radius-lg: 20px;
  --radius-xl: 28px;
  --shadow-card: 0 4px 24px rgba(0,0,0,0.3);
  --shadow-glow: 0 0 40px rgba(99,102,241,0.15);
  --font-sans: 'Inter','Noto Sans JP',system-ui,sans-serif;
  --transition: 0.3s cubic-bezier(0.4,0,0.2,1);
  --container: 1280px;
}

/* === Reset === */
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{font-family:var(--font-sans);background:var(--bg-primary);color:var(--text-primary);line-height:1.6;overflow-x:hidden;min-height:100vh}
a{color:var(--accent-1);text-decoration:none;transition:color var(--transition)}
a:hover{color:var(--accent-2)}
button{cursor:pointer;border:none;background:none;font-family:inherit;color:inherit}
img{max-width:100%;height:auto;display:block}
input,select{font-family:inherit}
.container{max-width:var(--container);margin:0 auto;padding:0 24px}

/* === Header === */
.header{position:fixed;top:0;left:0;right:0;z-index:100;background:rgba(10,10,18,0.8);backdrop-filter:blur(20px);border-bottom:1px solid var(--border-glass);transition:background var(--transition)}
.header-inner{max-width:var(--container);margin:0 auto;padding:0 24px;display:flex;align-items:center;height:64px;gap:20px}
.logo{display:flex;align-items:center;gap:8px;font-weight:700;font-size:1.1rem;color:var(--text-primary);flex-shrink:0}
.logo-icon{display:flex;align-items:center;justify-content:center;width:32px;height:32px;background:var(--gradient-main);border-radius:var(--radius-sm);font-size:14px;color:#fff}
.logo-accent{background:var(--gradient-main);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;margin:0 2px}
.search-container{flex:1;max-width:480px}
.search-box{position:relative;display:flex;align-items:center}
.search-icon{position:absolute;left:14px;width:18px;height:18px;color:var(--text-dim);pointer-events:none}
.search-input{width:100%;padding:10px 44px 10px 40px;background:var(--bg-glass);border:1px solid var(--border-glass);border-radius:var(--radius-xl);color:var(--text-primary);font-size:0.9rem;outline:none;transition:all var(--transition)}
.search-input:focus{border-color:var(--accent-1);background:rgba(255,255,255,0.08);box-shadow:0 0 0 3px rgba(99,102,241,0.15)}
.search-input::placeholder{color:var(--text-dim)}
.search-btn{position:absolute;right:6px;width:32px;height:32px;display:flex;align-items:center;justify-content:center;background:var(--gradient-main);border-radius:50%;transition:transform var(--transition)}
.search-btn svg{width:16px;height:16px;color:#fff}
.search-btn:hover{transform:scale(1.1)}
.header-nav{display:flex;gap:4px;flex-shrink:0}
.nav-link{padding:8px 14px;border-radius:var(--radius-sm);font-size:0.85rem;font-weight:500;color:var(--text-secondary);transition:all var(--transition);white-space:nowrap}
.nav-link:hover{color:var(--text-primary);background:var(--bg-glass)}
.nav-link.active{color:#fff;background:var(--gradient-main)}

/* === Demo Banner === */
.demo-banner{position:fixed;top:64px;left:0;right:0;z-index:99;background:linear-gradient(90deg,rgba(99,102,241,0.15),rgba(236,72,153,0.15));border-bottom:1px solid rgba(99,102,241,0.2);backdrop-filter:blur(10px)}
.demo-banner-inner{max-width:var(--container);margin:0 auto;padding:8px 24px;display:flex;align-items:center;gap:10px;font-size:0.82rem;color:var(--text-secondary)}
.demo-badge{padding:2px 8px;background:var(--gradient-main);border-radius:4px;font-size:0.7rem;font-weight:700;color:#fff;letter-spacing:0.05em}
.demo-banner code{background:rgba(255,255,255,0.1);padding:2px 6px;border-radius:4px;font-size:0.78rem}

/* === Hero === */
.hero{position:relative;min-height:480px;display:flex;align-items:center;justify-content:center;text-align:center;padding:120px 24px 60px;overflow:hidden}
.hero-bg{position:absolute;inset:0;background:radial-gradient(ellipse at 50% 0%,rgba(99,102,241,0.12) 0%,transparent 60%),radial-gradient(ellipse at 80% 50%,rgba(236,72,153,0.08) 0%,transparent 50%);z-index:0}
.hero-gradient-orb{position:absolute;border-radius:50%;filter:blur(80px);opacity:0.3;animation:float 8s ease-in-out infinite}
.hero-orb-1{width:400px;height:400px;background:var(--accent-1);top:-100px;left:-100px;animation-delay:0s}
.hero-orb-2{width:300px;height:300px;background:var(--accent-2);bottom:-50px;right:-50px;animation-delay:3s}
.hero-orb-3{width:200px;height:200px;background:var(--accent-3);top:50%;left:60%;animation-delay:5s}
@keyframes float{0%,100%{transform:translateY(0) scale(1)}50%{transform:translateY(-30px) scale(1.05)}}
.hero-content{position:relative;z-index:1;max-width:700px}
.hero-title-sub{display:block;font-size:0.9rem;font-weight:500;color:var(--accent-1);letter-spacing:0.15em;text-transform:uppercase;margin-bottom:8px}
.hero-title-main{display:block;font-size:clamp(2rem,5vw,3.2rem);font-weight:800;background:linear-gradient(135deg,#fff 0%,rgba(255,255,255,0.7) 100%);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;line-height:1.2}
.hero-desc{margin-top:12px;font-size:1rem;color:var(--text-secondary)}
.hero-search{margin-top:28px}
.hero-search-box{display:flex;max-width:500px;margin:0 auto;background:var(--bg-glass);border:1px solid var(--border-glass);border-radius:var(--radius-xl);overflow:hidden;transition:border-color var(--transition)}
.hero-search-box:focus-within{border-color:var(--accent-1)}
.hero-search-input{flex:1;padding:14px 20px;background:transparent;border:none;color:var(--text-primary);font-size:1rem;outline:none}
.hero-search-input::placeholder{color:var(--text-dim)}
.hero-search-btn{padding:14px 28px;background:var(--gradient-main);color:#fff;font-weight:600;font-size:0.95rem;transition:opacity var(--transition)}
.hero-search-btn:hover{opacity:0.85}
.hero-tags{margin-top:20px;display:flex;flex-wrap:wrap;justify-content:center;gap:8px}
.hero-tag{padding:6px 14px;background:var(--bg-glass);border:1px solid var(--border-glass);border-radius:var(--radius-xl);font-size:0.82rem;color:var(--text-secondary);cursor:pointer;transition:all var(--transition)}
.hero-tag:hover{background:var(--gradient-subtle);border-color:var(--accent-1);color:var(--text-primary)}

/* === Categories === */
.categories{padding:40px 0 20px}
.section-header{text-align:center;margin-bottom:28px}
.section-title{font-size:1.4rem;font-weight:700}
.section-subtitle{font-size:0.85rem;color:var(--text-secondary);margin-top:4px}
.category-grid{display:flex;justify-content:center;gap:12px;flex-wrap:wrap}
.category-card{display:flex;flex-direction:column;align-items:center;gap:8px;padding:18px 28px;background:var(--bg-card);border:1px solid var(--border-glass);border-radius:var(--radius-md);transition:all var(--transition);min-width:120px}
.category-card:hover{background:var(--bg-card-hover);transform:translateY(-2px);box-shadow:var(--shadow-glow)}
.category-card.active{background:var(--gradient-subtle);border-color:var(--accent-1)}
.category-icon{font-size:1.6rem}
.category-name{font-size:0.82rem;font-weight:500;color:var(--text-secondary)}
.category-card.active .category-name{color:var(--text-primary)}

/* === Results === */
.main{padding:20px 0 60px}
.results-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:24px;flex-wrap:wrap;gap:12px}
.results-title{font-size:1.3rem;font-weight:700}
.results-count{font-size:0.82rem;color:var(--text-secondary);margin-left:12px}
.sort-select{padding:8px 14px;background:var(--bg-glass);border:1px solid var(--border-glass);border-radius:var(--radius-sm);color:var(--text-primary);font-size:0.85rem;outline:none;cursor:pointer}
.sort-select option{background:var(--bg-secondary);color:var(--text-primary)}

/* === Item Grid === */
.items-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:20px}

/* === Item Card === */
.item-card{background:var(--bg-card);border:1px solid var(--border-glass);border-radius:var(--radius-md);overflow:hidden;transition:all var(--transition);cursor:pointer;position:relative}
.item-card:hover{transform:translateY(-6px);box-shadow:var(--shadow-card),var(--shadow-glow);border-color:rgba(99,102,241,0.3);background:var(--bg-card-hover)}
.item-thumb{position:relative;width:100%;aspect-ratio:3/4;overflow:hidden;background:var(--bg-secondary)}
.item-thumb img{width:100%;height:100%;object-fit:cover;transition:transform 0.5s ease}
.item-card:hover .item-thumb img{transform:scale(1.06)}
.item-thumb-overlay{position:absolute;inset:0;background:linear-gradient(to top,rgba(0,0,0,0.7) 0%,transparent 50%);opacity:0;transition:opacity var(--transition)}
.item-card:hover .item-thumb-overlay{opacity:1}
.item-price-badge{position:absolute;top:10px;right:10px;padding:4px 10px;background:var(--gradient-main);border-radius:var(--radius-sm);font-size:0.75rem;font-weight:700;color:#fff;z-index:2}
.item-info{padding:14px}
.item-title{font-size:0.85rem;font-weight:600;line-height:1.4;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;margin-bottom:8px}
.item-meta{display:flex;flex-wrap:wrap;gap:4px;margin-bottom:6px}
.item-genre{padding:2px 8px;background:rgba(99,102,241,0.12);border-radius:4px;font-size:0.7rem;color:var(--accent-1)}
.item-actress{font-size:0.78rem;color:var(--text-secondary);margin-bottom:4px}
.item-bottom{display:flex;align-items:center;justify-content:space-between}
.item-review{display:flex;align-items:center;gap:4px;font-size:0.75rem;color:var(--text-secondary)}
.item-review .stars{color:#fbbf24}
.item-date{font-size:0.7rem;color:var(--text-dim)}

/* === Loading === */
.loading{text-align:center;padding:60px 0}
.loading-spinner{width:40px;height:40px;margin:0 auto 16px;border:3px solid var(--border-glass);border-top-color:var(--accent-1);border-radius:50%;animation:spin 0.8s linear infinite}
@keyframes spin{to{transform:rotate(360deg)}}
.loading-text{font-size:0.9rem;color:var(--text-secondary)}

/* Skeleton */
.skeleton-card{background:var(--bg-card);border:1px solid var(--border-glass);border-radius:var(--radius-md);overflow:hidden}
.skeleton-thumb{width:100%;aspect-ratio:3/4;background:linear-gradient(90deg,var(--bg-secondary) 25%,rgba(255,255,255,0.05) 50%,var(--bg-secondary) 75%);background-size:200% 100%;animation:shimmer 1.5s infinite}
.skeleton-line{height:12px;margin:10px 14px;border-radius:4px;background:linear-gradient(90deg,var(--bg-secondary) 25%,rgba(255,255,255,0.05) 50%,var(--bg-secondary) 75%);background-size:200% 100%;animation:shimmer 1.5s infinite}
.skeleton-line.short{width:60%}
@keyframes shimmer{0%{background-position:200% 0}100%{background-position:-200% 0}}

/* === Error === */
.error-state{text-align:center;padding:80px 0}
.error-icon{font-size:3rem;margin-bottom:16px}
.error-text{color:var(--text-secondary);margin-bottom:20px}
.retry-btn{padding:10px 24px;background:var(--gradient-main);color:#fff;border-radius:var(--radius-sm);font-weight:600;transition:opacity var(--transition)}
.retry-btn:hover{opacity:0.85}

/* === Pagination === */
.pagination{display:flex;align-items:center;justify-content:center;gap:8px;margin-top:40px;flex-wrap:wrap}
.page-btn{display:flex;align-items:center;gap:6px;padding:10px 18px;background:var(--bg-glass);border:1px solid var(--border-glass);border-radius:var(--radius-sm);font-size:0.85rem;font-weight:500;color:var(--text-secondary);transition:all var(--transition)}
.page-btn:hover:not(:disabled){background:var(--bg-card-hover);color:var(--text-primary);border-color:var(--accent-1)}
.page-btn:disabled{opacity:0.3;cursor:not-allowed}
.page-btn svg{width:16px;height:16px}
.page-numbers{display:flex;gap:4px}
.page-num{width:38px;height:38px;display:flex;align-items:center;justify-content:center;background:var(--bg-glass);border:1px solid var(--border-glass);border-radius:var(--radius-sm);font-size:0.85rem;color:var(--text-secondary);transition:all var(--transition)}
.page-num:hover{border-color:var(--accent-1);color:var(--text-primary)}
.page-num.active{background:var(--gradient-main);color:#fff;border-color:transparent}
.page-ellipsis{width:38px;height:38px;display:flex;align-items:center;justify-content:center;color:var(--text-dim);font-size:0.85rem}

/* === Modal === */
.modal-overlay{position:fixed;inset:0;z-index:200;background:rgba(0,0,0,0.75);backdrop-filter:blur(8px);display:flex;align-items:center;justify-content:center;padding:24px;opacity:0;transition:opacity 0.3s ease}
.modal-overlay.visible{opacity:1}
.modal{background:var(--bg-secondary);border:1px solid var(--border-glass);border-radius:var(--radius-lg);max-width:720px;width:100%;max-height:85vh;overflow-y:auto;position:relative;transform:translateY(20px) scale(0.97);transition:transform 0.3s ease}
.modal-overlay.visible .modal{transform:translateY(0) scale(1)}
.modal-close{position:absolute;top:12px;right:12px;width:36px;height:36px;display:flex;align-items:center;justify-content:center;background:var(--bg-glass);border:1px solid var(--border-glass);border-radius:50%;font-size:1.3rem;color:var(--text-secondary);z-index:1;transition:all var(--transition)}
.modal-close:hover{background:rgba(255,255,255,0.1);color:var(--text-primary)}
.modal-body{padding:0}
.modal-image{width:100%;max-height:400px;object-fit:contain;background:#000;border-radius:var(--radius-lg) var(--radius-lg) 0 0}
.modal-content{padding:24px}
.modal-title{font-size:1.2rem;font-weight:700;margin-bottom:12px;line-height:1.4}
.modal-meta{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:16px}
.modal-genre{padding:4px 10px;background:rgba(99,102,241,0.12);border-radius:4px;font-size:0.78rem;color:var(--accent-1)}
.modal-details{display:grid;grid-template-columns:auto 1fr;gap:8px 16px;font-size:0.85rem;margin-bottom:20px}
.modal-label{color:var(--text-dim);font-weight:500}
.modal-value{color:var(--text-secondary)}
.modal-link{display:inline-flex;align-items:center;gap:8px;padding:12px 28px;background:var(--gradient-main);color:#fff;border-radius:var(--radius-sm);font-weight:600;font-size:0.95rem;transition:opacity var(--transition)}
.modal-link:hover{opacity:0.85;color:#fff}

/* === Footer === */
.footer{padding:40px 0;border-top:1px solid var(--border-glass);background:var(--bg-secondary)}
.footer-content{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:20px}
.footer-logo{font-weight:700;font-size:1rem}
.footer-desc{font-size:0.8rem;color:var(--text-dim);margin-top:6px}
.footer-credit{text-align:right;font-size:0.78rem;color:var(--text-dim)}
.footer-copyright{margin-top:4px}

/* === Animations === */
.fade-in{opacity:0;transform:translateY(16px);animation:fadeInUp 0.5s ease forwards}
@keyframes fadeInUp{to{opacity:1;transform:translateY(0)}}

/* === Age Gate（年齢認証ゲート） === */
.age-gate-active{overflow:hidden}
.age-gate{position:fixed;inset:0;z-index:9999;display:flex;align-items:center;justify-content:center;padding:24px;background:rgba(5,5,12,0.96);backdrop-filter:blur(20px);transition:opacity 0.4s ease}
.age-gate-hide{opacity:0;pointer-events:none}
.age-gate-bg{position:absolute;inset:0;background:radial-gradient(ellipse at 30% 20%,rgba(99,102,241,0.15) 0%,transparent 50%),radial-gradient(ellipse at 70% 80%,rgba(236,72,153,0.12) 0%,transparent 50%);pointer-events:none}
.age-gate-card{position:relative;max-width:480px;width:100%;background:linear-gradient(180deg,var(--bg-secondary),var(--bg-primary));border:1px solid var(--border-glass);border-radius:var(--radius-lg);padding:40px 32px;text-align:center;box-shadow:0 20px 80px rgba(0,0,0,0.5),0 0 60px rgba(99,102,241,0.15)}
.age-gate-logo{font-size:1rem;font-weight:700;color:var(--text-primary);margin-bottom:24px;letter-spacing:0.02em}
.age-gate-title{font-size:1.6rem;font-weight:800;background:var(--gradient-main);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;margin-bottom:16px}
.age-gate-desc{font-size:0.9rem;color:var(--text-secondary);line-height:1.7;margin-bottom:24px}
.age-gate-question{font-size:1rem;color:var(--text-primary);margin-bottom:24px}
.age-gate-question strong{color:var(--accent-2)}
.age-gate-buttons{display:flex;flex-direction:column;gap:10px;margin-bottom:20px}
.age-gate-btn{display:block;width:100%;padding:14px 20px;border-radius:var(--radius-sm);font-size:0.95rem;font-weight:600;text-align:center;transition:all var(--transition);cursor:pointer;text-decoration:none}
.age-gate-yes{background:var(--gradient-main);color:#fff;border:none}
.age-gate-yes:hover{opacity:0.9;transform:translateY(-1px)}
.age-gate-no{background:transparent;color:var(--text-secondary);border:1px solid var(--border-glass)}
.age-gate-no:hover{color:var(--text-primary);border-color:var(--text-secondary)}
.age-gate-note{font-size:0.75rem;color:var(--text-dim);line-height:1.6}
.age-gate-note a{color:var(--text-secondary);text-decoration:underline}
.age-gate-note a:hover{color:var(--accent-1)}

/* === Hero 記事リンク === */
.hero-articles-link{margin-top:20px}
.hero-articles-link a{display:inline-block;padding:8px 18px;background:var(--bg-glass);border:1px solid var(--border-glass);border-radius:var(--radius-xl);font-size:0.85rem;color:var(--text-secondary);transition:all var(--transition)}
.hero-articles-link a:hover{background:var(--gradient-subtle);color:var(--text-primary);border-color:var(--accent-1)}

/* === Footer（拡張） === */
.footer-grid{display:grid;grid-template-columns:2fr 1fr 1fr;gap:40px;margin-bottom:32px}
.footer-heading{font-size:0.85rem;font-weight:600;color:var(--text-primary);margin-bottom:12px}
.footer-links ul{list-style:none}
.footer-links li{margin-bottom:8px}
.footer-links a{font-size:0.82rem;color:var(--text-secondary);transition:color var(--transition)}
.footer-links a:hover{color:var(--accent-1)}
.footer-bottom{padding-top:24px;border-top:1px solid var(--border-glass);font-size:0.78rem;color:var(--text-dim);line-height:1.7}
.footer-bottom p{margin-bottom:6px}
.footer-bottom a{color:var(--text-secondary);text-decoration:underline}
.footer-bottom a:hover{color:var(--accent-1)}
.footer-copyright{margin-top:8px;color:var(--text-dim)}

/* === 静的ページ用レイアウト（about/privacy/disclaimer/terms/articles） === */
.page-wrap{max-width:780px;margin:0 auto;padding:120px 24px 80px}
.page-title{font-size:2rem;font-weight:800;background:linear-gradient(135deg,#fff 0%,rgba(255,255,255,0.7) 100%);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;margin-bottom:8px;line-height:1.3}
.page-lead{font-size:0.95rem;color:var(--text-secondary);margin-bottom:32px;padding-bottom:24px;border-bottom:1px solid var(--border-glass)}
.page-section{margin-bottom:32px}
.page-section h2{font-size:1.2rem;font-weight:700;color:var(--text-primary);margin-bottom:14px;padding-left:12px;border-left:3px solid var(--accent-1)}
.page-section h3{font-size:1rem;font-weight:600;color:var(--text-primary);margin:20px 0 10px}
.page-section p{font-size:0.92rem;color:var(--text-secondary);line-height:1.85;margin-bottom:12px}
.page-section ul,.page-section ol{margin-left:24px;margin-bottom:12px;color:var(--text-secondary);font-size:0.92rem;line-height:1.85}
.page-section li{margin-bottom:4px}
.page-section a{color:var(--accent-1);text-decoration:underline}
.page-section table{width:100%;border-collapse:collapse;margin:16px 0;font-size:0.88rem}
.page-section th,.page-section td{padding:10px 14px;text-align:left;border-bottom:1px solid var(--border-glass);color:var(--text-secondary);vertical-align:top}
.page-section th{width:30%;font-weight:600;color:var(--text-primary);background:var(--bg-card)}
.page-back{display:inline-block;margin-top:20px;padding:10px 20px;background:var(--bg-glass);border:1px solid var(--border-glass);border-radius:var(--radius-sm);font-size:0.85rem;color:var(--text-secondary);transition:all var(--transition)}
.page-back:hover{background:var(--bg-card-hover);color:var(--text-primary);border-color:var(--accent-1)}
.page-meta{font-size:0.82rem;color:var(--text-dim);margin-bottom:16px}
.page-section blockquote{padding:14px 18px;margin:14px 0;background:var(--bg-card);border-left:3px solid var(--accent-2);border-radius:var(--radius-sm);color:var(--text-secondary);font-size:0.9rem;line-height:1.7}

/* === Contact Form === */
.contact-form{display:flex;flex-direction:column;gap:18px;margin-top:8px}
.form-group{display:flex;flex-direction:column;gap:6px}
.form-group label{font-size:0.88rem;font-weight:500;color:var(--text-primary)}
.form-group .required{color:var(--accent-2);margin-left:2px}
.form-group input,.form-group textarea{width:100%;padding:11px 14px;background:var(--bg-glass);border:1px solid var(--border-glass);border-radius:var(--radius-sm);color:var(--text-primary);font-size:0.92rem;font-family:inherit;outline:none;transition:all var(--transition);resize:vertical}
.form-group input:focus,.form-group textarea:focus{border-color:var(--accent-1);background:rgba(255,255,255,0.06);box-shadow:0 0 0 3px rgba(99,102,241,0.12)}
.form-group input::placeholder,.form-group textarea::placeholder{color:var(--text-dim)}
.form-group small{font-size:0.75rem;color:var(--text-dim);line-height:1.5}
.form-actions{display:flex;justify-content:flex-end;margin-top:6px}
.form-submit{padding:11px 32px;background:var(--gradient-main);border-radius:var(--radius-sm);font-size:0.92rem;font-weight:600;color:#fff;cursor:pointer;transition:all var(--transition)}
.form-submit:hover:not(:disabled){opacity:0.9;transform:translateY(-1px)}
.form-submit:disabled{opacity:0.5;cursor:not-allowed}
.form-status{padding:12px 16px;border-radius:var(--radius-sm);font-size:0.88rem;line-height:1.6}
.form-status:empty{display:none}
.form-status-success{background:rgba(34,197,94,0.1);border:1px solid rgba(34,197,94,0.3);color:rgb(134,239,172)}
.form-status-error{background:rgba(239,68,68,0.1);border:1px solid rgba(239,68,68,0.3);color:rgb(252,165,165)}

/* === 記事一覧 === */
.articles-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:20px;margin-top:24px}
.article-card{display:block;background:var(--bg-card);border:1px solid var(--border-glass);border-radius:var(--radius-md);padding:24px;transition:all var(--transition);text-decoration:none}
.article-card:hover{background:var(--bg-card-hover);transform:translateY(-3px);box-shadow:var(--shadow-glow);border-color:rgba(99,102,241,0.3)}
.article-card-tag{display:inline-block;padding:3px 10px;background:rgba(99,102,241,0.15);border-radius:4px;font-size:0.72rem;color:var(--accent-1);font-weight:500;margin-bottom:10px}
.article-card-title{font-size:1rem;font-weight:700;color:var(--text-primary);margin-bottom:8px;line-height:1.5}
.article-card-desc{font-size:0.85rem;color:var(--text-secondary);line-height:1.6}

/* === Responsive === */
@media(max-width:768px){
  .header-inner{padding:0 16px;gap:12px}
  .header-nav{display:none}
  .search-container{max-width:none}
  .hero{min-height:400px;padding:100px 16px 40px}
  .hero-title-main{font-size:1.8rem}
  .items-grid{grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:12px}
  .item-info{padding:10px}
  .item-title{font-size:0.78rem}
  .category-card{padding:14px 18px;min-width:80px}
  .category-icon{font-size:1.3rem}
  .footer-content{flex-direction:column;text-align:center}
  .footer-credit{text-align:center}
  .footer-grid{grid-template-columns:1fr;gap:24px;text-align:left}
  .age-gate-card{padding:28px 22px}
  .age-gate-title{font-size:1.35rem}
  .page-wrap{padding:100px 18px 60px}
  .page-title{font-size:1.5rem}
  .modal{margin:12px}
}
@media(max-width:480px){
  .items-grid{grid-template-columns:repeat(2,1fr);gap:10px}
  .hero-search-box{flex-direction:column;border-radius:var(--radius-md)}
  .hero-search-btn{border-radius:0 0 var(--radius-md) var(--radius-md)}
}
