
*{box-sizing:border-box}
:root{
  --ink:#252525;
  --cream:#fff8ee;
  --paper:#fffdf8;
  --pink:#ff7fa8;
  --pink2:#ff5c8a;
  --coral:#ff9b78;
  --yellow:#ffd66b;
  --aqua:#78d7e7;
  --mint:#b9e78b;
  --line:#2b2b2b;
  --soft:#756f72;
  --shadow:0 16px 0 rgba(43,43,43,.08),0 28px 60px rgba(43,43,43,.12);
}

html{scroll-behavior:smooth}

body{
  margin:0;
  min-height:100vh;
  color:var(--ink);
  font-family:-apple-system,BlinkMacSystemFont,"Hiragino Sans","Yu Gothic UI","Yu Gothic","Noto Sans JP",sans-serif;
  background:
    radial-gradient(circle at 15% 4%,rgba(255,127,168,.28),transparent 20rem),
    radial-gradient(circle at 85% 8%,rgba(120,215,231,.28),transparent 22rem),
    linear-gradient(180deg,#fff4e7 0%,#fffaf3 55%,#fff3e8 100%);
  overflow-x:hidden;
}

.noise{
  position:fixed;
  inset:0;
  pointer-events:none;
  opacity:.22;
  background-image:
    radial-gradient(circle at 20% 30%,rgba(43,43,43,.06) 0 1px,transparent 1.5px),
    radial-gradient(circle at 70% 60%,rgba(43,43,43,.05) 0 1px,transparent 1.5px);
  background-size:18px 18px,24px 24px;
}

.page{
  position:relative;
  z-index:1;
  width:min(100% - 24px,760px);
  margin:0 auto;
  padding:34px 0 60px;
}

.hero{
  position:relative;
  text-align:center;
  padding:34px 22px 26px;
  border:2px solid var(--line);
  border-radius:30px;
  background:
    linear-gradient(135deg,rgba(255,255,255,.92),rgba(255,249,238,.88));
  box-shadow:var(--shadow);
  overflow:hidden;
}

.hero::before{
  content:"";
  position:absolute;
  width:180px;height:180px;
  left:-60px;top:-70px;
  border-radius:50%;
  background:var(--yellow);
  opacity:.65;
}
.hero::after{
  content:"";
  position:absolute;
  width:170px;height:170px;
  right:-70px;bottom:-70px;
  border-radius:50%;
  background:var(--aqua);
  opacity:.6;
}

.avatar{
  position:relative;
  z-index:2;
  width:112px;height:112px;
  object-fit:cover;
  border-radius:50%;
  border:4px solid white;
  outline:2px solid var(--line);
  box-shadow:0 10px 0 rgba(43,43,43,.08);
  transform:rotate(-2deg);
}

.kicker{
  position:relative;
  z-index:2;
  margin:18px 0 5px;
  font-size:11px;
  font-weight:900;
  letter-spacing:.18em;
  color:var(--pink2);
}

h1{
  position:relative;
  z-index:2;
  margin:0;
  font-size:clamp(38px,9vw,66px);
  line-height:1;
  letter-spacing:-.03em;
  font-weight:900;
}

.bio{
  position:relative;
  z-index:2;
  max-width:520px;
  margin:14px auto 0;
  color:var(--soft);
  font-size:14px;
  line-height:1.9;
}

.mini-tags{
  position:relative;
  z-index:2;
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  justify-content:center;
  margin-top:18px;
}
.mini-tags span{
  padding:7px 10px;
  border:1.5px solid var(--line);
  border-radius:999px;
  background:white;
  font-size:11px;
  font-weight:800;
}

.hero-sticker{
  position:absolute;
  z-index:3;
  display:grid;
  place-items:center;
  border:2px solid var(--line);
  box-shadow:4px 5px 0 var(--line);
  font-weight:900;
}
.sticker-a{
  top:18px;left:18px;
  width:76px;height:38px;
  border-radius:12px;
  background:var(--pink);
  color:white;
  transform:rotate(-8deg);
}
.sticker-b{
  top:26px;right:24px;
  width:48px;height:48px;
  border-radius:50%;
  background:var(--yellow);
  transform:rotate(8deg);
  font-size:22px;
}

section{margin-top:42px}

.section-head{
  display:flex;
  align-items:end;
  justify-content:space-between;
  gap:18px;
  margin-bottom:15px;
}
.eyebrow{
  margin:0 0 4px;
  font-size:11px;
  font-weight:900;
  letter-spacing:.18em;
  color:var(--pink2);
}
h2{
  margin:0;
  font-size:27px;
  letter-spacing:-.02em;
}
.scribble{
  font-family:cursive;
  color:var(--pink2);
  font-weight:700;
  transform:rotate(-6deg);
}

.feature-card{
  position:relative;
  border:2px solid var(--line);
  border-radius:28px;
  background:var(--paper);
  box-shadow:var(--shadow);
  overflow:visible;
}
.feature-image{
  display:block;
  width:100%;
  aspect-ratio:16/10;
  object-fit:cover;
  border-radius:26px 26px 0 0;
  border-bottom:2px solid var(--line);
}
.feature-body{padding:22px}
.feature-body h3{
  margin:10px 0 8px;
  font-size:23px;
}
.feature-body p{
  margin:0;
  color:var(--soft);
  font-size:14px;
  line-height:1.8;
}
.badge-row{display:flex;gap:8px}
.badge{
  padding:5px 9px;
  border:1.5px solid var(--line);
  border-radius:999px;
  background:white;
  font-size:10px;
  font-weight:900;
}
.badge.hot{background:var(--pink);color:white}

.tape{
  position:absolute;
  z-index:4;
  width:85px;height:24px;
  background:rgba(255,214,107,.78);
  border:1px solid rgba(43,43,43,.15);
}
.tape-left{top:-10px;left:42px;transform:rotate(-5deg)}
.tape-right{top:-10px;right:42px;transform:rotate(5deg)}

.shop-buttons{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:12px;
  margin-top:20px;
}
.shop-button{
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  justify-content:center;
  min-height:70px;
  padding:14px 16px;
  border:2px solid var(--line);
  border-radius:18px;
  text-decoration:none;
  color:var(--ink);
  box-shadow:5px 6px 0 var(--line);
  transition:.18s ease;
}
.shop-button:hover{transform:translate(-2px,-2px);box-shadow:8px 9px 0 var(--line)}
.shop-button.fanza{background:var(--pink)}
.shop-button.dlsite{background:var(--aqua)}
.shop-label{font-size:18px;font-weight:900}
.shop-sub{margin-top:2px;font-size:11px;font-weight:700;opacity:.72}

.works-grid{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:12px;
}
.mini-work{
  position:relative;
  overflow:hidden;
  border:2px solid var(--line);
  border-radius:20px;
  background:white;
  color:var(--ink);
  text-decoration:none;
  box-shadow:5px 6px 0 rgba(43,43,43,.9);
  transition:.18s ease;
}
.mini-work:hover{transform:translateY(-3px)}
.mini-work img{
  display:block;
  width:100%;
  aspect-ratio:4/3;
  object-fit:cover;
}
.mini-work span{
  display:block;
  padding:10px 12px;
  border-top:2px solid var(--line);
  font-size:11px;
  font-weight:900;
}

.link-list{display:grid;gap:11px}
.link-card{
  display:flex;
  align-items:center;
  gap:14px;
  min-height:78px;
  padding:13px 14px;
  border:2px solid var(--line);
  border-radius:20px;
  color:var(--ink);
  text-decoration:none;
  box-shadow:5px 6px 0 var(--line);
  transition:.18s ease;
}
.link-card:hover{transform:translate(-2px,-2px);box-shadow:8px 9px 0 var(--line)}
.x-card{background:#ffffff}
.pixiv-card{background:#bfefff}
.support-card{background:#ffd5e3}
.contact-card{background:#fff0a9}
.link-icon{
  display:grid;
  place-items:center;
  width:48px;height:48px;
  flex:0 0 auto;
  border:2px solid var(--line);
  border-radius:14px;
  background:white;
  font-size:22px;
  font-weight:900;
}
.link-main{flex:1}
.link-main strong,.link-main small{display:block}
.link-main strong{font-size:17px}
.link-main small{margin-top:3px;color:#665f62;font-size:11px}
.arrow{
  display:grid;
  place-items:center;
  width:38px;height:38px;
  border:2px solid var(--line);
  border-radius:50%;
  background:white;
  font-weight:900;
}

.notice-card{
  display:flex;
  align-items:center;
  gap:14px;
  padding:16px;
  border:2px dashed var(--line);
  border-radius:18px;
  background:rgba(255,255,255,.72);
}
.notice-card p{
  margin:0;
  color:#6a6265;
  font-size:12px;
  line-height:1.6;
}
.notice-icon{
  display:grid;
  place-items:center;
  min-width:54px;height:42px;
  padding:0 10px;
  border:2px solid var(--line);
  border-radius:12px;
  background:var(--coral);
  color:white;
  font-weight:900;
}

footer{
  margin-top:44px;
  text-align:center;
  color:#756d70;
  font-size:12px;
}
.footer-small{margin-top:5px;font-size:10px}

@media(max-width:560px){
  .page{width:min(100% - 18px,760px);padding-top:18px}
  .hero{padding:30px 16px 24px}
  .avatar{width:96px;height:96px}
  .hero-sticker.sticker-a{left:12px;top:12px}
  .hero-sticker.sticker-b{right:13px;top:18px}
  .works-grid{grid-template-columns:1fr 1fr}
  .works-grid .mini-work:last-child{grid-column:1 / -1}
  .shop-buttons{grid-template-columns:1fr}
}
