:root{--bg:#fff7fb;--text:#2d2d2d;--primary:#a78bfa;--accent:#f472b6;--link:#a855f7;--card:#ffffff}
*{box-sizing:border-box}
html,body{margin:0;padding:0}
body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,"Noto Sans",sans-serif;line-height:1.6;background:
  radial-gradient(circle at 20px 20px, #ffe6f3 2px, transparent 3px),
  radial-gradient(circle at 60px 40px, #f3e8ff 2px, transparent 3px),
  var(--bg);
color:var(--text)}
.container{max-width:960px;margin:0 auto;padding:0 16px}
.site-header{position:sticky;top:0;z-index:10;background:var(--card);border-bottom:1px solid #f0e8f8}
.header-inner{display:flex;align-items:center;gap:12px;justify-content:space-between;height:56px}
.brand{font-weight:800;font-size:20px;color:var(--link);text-decoration:none;border-radius:12px;padding:6px 10px;background:#faf5ff}
.menu-toggle{display:none;background:transparent;border:0;font-size:22px}
.site-nav{display:flex;gap:16px}
.site-nav a{color:var(--link);text-decoration:none;padding:8px 10px;border-radius:999px}
.site-nav a:hover{background:linear-gradient(90deg,#faf5ff,#f3e8ff)}
.hero{padding:28px 0}
.hero h1{font-size:30px;margin:0 0 8px;color:#7c3aed}
.hero p{color:#6b7280}
.hero-illustration{display:block;width:100%;height:280px;object-fit:cover;object-position:center;border-radius:16px;border:1px solid #f0e8f8;box-shadow:0 6px 14px rgba(167,139,250,.12)}
.decor-wave-top,.decor-wave-bottom{display:block;width:100%;height:60px}
.decor-wave-top{margin-top:-8px}
.decor-wave-bottom{margin-bottom:-8px}
.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:16px;margin:20px 0 40px}
.card{display:block;background:var(--card);border-radius:20px;overflow:hidden;border:1px solid #f0e8f8;text-decoration:none;color:inherit;box-shadow:0 6px 14px rgba(167,139,250,.12)}
.card{background-image:url('../svg/bow-mini.svg');background-repeat:no-repeat;background-position:right 8px top 8px;background-size:36px}
.card{transition:transform .18s ease, box-shadow .18s ease}
.card:hover{transform:translateY(-2px) rotateZ(-1deg);box-shadow:0 10px 20px rgba(167,139,250,.18)}
.card::after{content:"";position:absolute;right:10px;bottom:10px;width:18px;height:18px;background:radial-gradient(circle,#f472b6 0,#f472b6 60%,transparent 61%);border-radius:50%;opacity:.7}
.card-media img{display:block;width:100%;height:180px;object-fit:cover}
.card-body{padding:12px 14px}
.card-body h2{margin:0 0 6px;font-size:20px;color:#7c3aed}
.site-footer{padding:24px 0;border-top:1px solid #f0e8f8;margin-top:24px}
.gallery{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:14px;margin:20px 0}
.gallery figure{margin:0;background:var(--card);border:1px solid #f0e8f8;border-radius:16px;overflow:hidden;box-shadow:0 4px 10px rgba(244,114,182,.12)}
.gallery img{display:block;width:100%;height:160px;object-fit:cover}
.gallery figcaption{padding:8px 10px;font-size:14px;color:#7c3aed}
.section-title{font-size:22px;margin:20px 0 8px;color:#7c3aed}
.section-title::before{content:"♡";display:inline-block;margin-right:8px;color:var(--accent)}
.section-decor{display:block;margin:6px 0 12px;width:180px}
.links{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px}
.link-card{display:flex;align-items:center;gap:12px;padding:12px;border:1px solid #f0e8f8;background:var(--card);border-radius:16px;text-decoration:none;color:inherit;box-shadow:0 4px 10px rgba(167,139,250,.10)}
.link-card .icon{font-size:18px;width:32px;height:32px;border-radius:50%;background:#ffe6f3;color:#7c3aed;display:inline-flex;align-items:center;justify-content:center}
.link-card:hover{border-color:#e9d5ff;transform:translateY(-2px)}
@media(max-width:720px){.menu-toggle{display:block}.site-nav{display:none;position:absolute;top:56px;right:16px;left:16px;background:var(--card);border:1px solid #eee;border-radius:12px;padding:8px}.site-nav.open{display:flex;flex-direction:column}}
body.has-kawaii-cursor{cursor:none}
.kawaii-cursor{position:fixed;left:0;top:0;width:28px;height:28px;pointer-events:none;z-index:10000;filter:drop-shadow(0 2px 6px rgba(124,58,237,.3))}
.kawaii-sparkles{position:fixed;left:0;top:0;width:100vw;height:100vh;pointer-events:none;z-index:9999}
.sparkle{position:absolute;background:radial-gradient(circle,#f472b6 0%,#f472b6 60%,transparent 61%);opacity:.9;border-radius:50%;transform:translateY(-2px);animation:spk .7s ease-out forwards}
@keyframes spk{0%{opacity:.9;transform:translateY(-2px) scale(1)}100%{opacity:0;transform:translateY(-14px) scale(.4)}}
/* floating background decor */
.kawaii-floaters{position:fixed;left:0;top:0;width:100vw;height:100vh;pointer-events:none;z-index:1}
.floater{position:absolute;opacity:.5}
.floater.heart{width:14px;height:14px;background:radial-gradient(circle,#fb7185 0,#fb7185 60%,transparent 61%);border-radius:50%}
.floater.dot{width:8px;height:8px;background:#a78bfa;border-radius:50%}
.floater{animation:floatUp 10s linear forwards}
@keyframes floatUp{0%{transform:translateY(0)}100%{transform:translateY(-120px);opacity:0}}
/* lightbox */
.lightbox{position:fixed;inset:0;background:rgba(0,0,0,.4);backdrop-filter:saturate(140%) blur(2px);display:none;align-items:center;justify-content:center;z-index:10001}
.lightbox.open{display:flex}
.lightbox .box{position:relative;background:var(--card);border-radius:16px;box-shadow:0 10px 24px rgba(0,0,0,.2);max-width:90vw;max-height:80vh;overflow:auto;border:1px solid #f0e8f8;padding:12px}
.lightbox img{display:block;max-width:90vw;max-height:70vh}
.lightbox .close{position:absolute;top:10px;right:10px;width:40px;height:40px;border:none;border-radius:50%;background:radial-gradient(circle,#f472b6 0,#f472b6 60%,transparent 61%);box-shadow:0 4px 10px rgba(244,114,182,.3);cursor:pointer}
.lightbox,.lightbox *{cursor:auto}
body.lb-open .kawaii-cursor,body.lb-open .kawaii-sparkles,body.lb-open .kawaii-floaters{display:none}
