:root {
  --bg:        #0d0a14;
  --bg2:       #130d1e;
  --card:      rgba(30,16,46,0.85);
  --border:    rgba(255,105,180,0.35);
  --neon-pink: #ff69b4;
  --neon-lav:  #bf80ff;
  --neon-cyan: #00e5ff;
  --neon-mint: #80ffcc;
  --sakura:    #ffb7d5;
  --gold:      #ffd700;
  --text:      #f0d6f5;
  --muted:     #a07ab0;
  --glow-pink: 0 0 12px rgba(255,105,180,0.6), 0 0 30px rgba(255,105,180,0.2);
  --glow-lav:  0 0 12px rgba(191,128,255,0.6), 0 0 30px rgba(191,128,255,0.2);
  --glow-cyan: 0 0 12px rgba(0,229,255,0.5), 0 0 28px rgba(0,229,255,0.15);
}

* { margin:0; padding:0; box-sizing:border-box; }

body {
  font-family: 'Nunito', 'Kosugi Maru', sans-serif;
  background: var(--bg);
  color: var(--text);
  min-height: 100vh;
  overflow-x: hidden;
}

body::before {
  content: '';
  position: fixed; inset: 0; z-index: 0;
  pointer-events: none;
  background: repeating-linear-gradient(
    0deg, transparent, transparent 2px,
    rgba(0,0,0,0.08) 2px, rgba(0,0,0,0.08) 4px
  );
}

.bg-layer {
  position: fixed; inset: 0; z-index: 0; pointer-events: none;
  overflow: hidden;
}
.bg-grad {
  position: absolute; inset: 0;
  background:
    radial-gradient(ellipse at 15% 20%, rgba(255,105,180,0.12) 0%, transparent 50%),
    radial-gradient(ellipse at 85% 80%, rgba(191,128,255,0.12) 0%, transparent 50%),
    radial-gradient(ellipse at 50% 50%, rgba(0,229,255,0.05) 0%, transparent 60%);
  animation: bgPulse 8s ease-in-out infinite alternate;
}
@keyframes bgPulse { from{opacity:.7;} to{opacity:1;} }

.petal {
  position: absolute;
  opacity: 0;
  animation: petalFall linear infinite;
  user-select: none;
}
@keyframes petalFall {
  0%   { opacity:0; transform: translateY(-40px) rotate(0deg); }
  10%  { opacity:.7; }
  90%  { opacity:.5; }
  100% { opacity:0; transform: translateY(110vh) rotate(720deg); }
}

.custom-container {
  position: relative; z-index: 1;
  max-width: 800px;
  margin: 0 auto;
  padding: 40px 18px 100px;
}

.kanji-bg {
  position: fixed;
  font-family: 'Zen Maru Gothic', serif;
  font-size: 260px; font-weight: 900;
  color: rgba(255,105,180,0.03);
  right: -40px; bottom: -40px;
  z-index: 0; pointer-events: none; line-height:1; user-select:none;
}

/* ── HERO ── */
.hero {
  position: relative;
  background: var(--card);
  border: 1.5px solid var(--border);
  border-radius: 4px;
  overflow: hidden;
  box-shadow: var(--glow-pink), inset 0 0 60px rgba(255,105,180,0.04);
  animation: popIn 0.8s cubic-bezier(.34,1.56,.64,1) both;
}
@keyframes popIn {
  from{opacity:0;transform:scale(0.9) translateY(20px);}
  to{opacity:1;transform:scale(1) translateY(0);}
}
.hero::before,.hero::after,.section::before,.section::after {
  content:''; position:absolute;
  width:18px; height:18px;
  border-color:var(--neon-pink); border-style:solid; z-index:2;
}
.hero::before,.section::before { top:0;left:0; border-width:2px 0 0 2px; }
.hero::after,.section::after   { bottom:0;right:0; border-width:0 2px 2px 0; }

.hero-banner {
  background: linear-gradient(135deg,#1a0a2e 0%,#0d0a14 50%,#0a1420 100%);
  border-bottom: 1px solid var(--border);
}

.avatar-frame { position:relative; flex-shrink:0; }
.avatar-hex {
  width:110px; height:110px; border-radius:50%;
  background: conic-gradient(var(--neon-pink),var(--neon-lav),var(--neon-cyan),var(--neon-pink));
  padding:3px; animation:rotateBorder 4s linear infinite;
  display:flex; align-items:center; justify-content:center;
}
@keyframes rotateBorder { to{transform:rotate(360deg);} }
.avatar-inner img { width:104px; height:104px; border-radius:50%; object-fit:cover; display:block; flex-shrink:0; }
.avatar-inner {
  width:104px; height:104px; border-radius:50%;
  background:#1a0a2e;
  display:flex; align-items:center; justify-content:center;
  font-size:58px; position:relative; overflow:hidden;
}
.avatar-inner::after {
  content:''; position:absolute; inset:0; border-radius:50%;
  background:linear-gradient(180deg,transparent 50%,rgba(255,105,180,0.15) 100%);
}
.lvl-badge {
  position:absolute; bottom:-4px; right:-4px;
  background:linear-gradient(135deg,var(--neon-pink),var(--neon-lav));
  border:2px solid var(--bg); border-radius:10px;
  padding:2px 7px; font-size:0.65rem; font-weight:900; color:#fff; letter-spacing:.5px;
}

.jp-name {
  font-family:'Zen Maru Gothic',sans-serif; font-size:.8rem;
  color:var(--neon-pink); letter-spacing:3px; text-transform:uppercase;
  margin-bottom:4px; text-shadow:var(--glow-pink);
}
.hero-text h1 {
  font-family:'Zen Maru Gothic',sans-serif; font-size:1.9rem; font-weight:900; line-height:1.1;
  background:linear-gradient(90deg,#fff 0%,var(--sakura) 50%,var(--neon-lav) 100%);
  -webkit-background-clip:text; -webkit-text-fill-color:transparent; background-clip:text;
  margin-bottom:8px;
}
.hero-text .role { font-size:.88rem; color:var(--muted); font-weight:700; margin-bottom:12px; line-height:1.6; }
.hero-text .role span { color:var(--neon-cyan); text-shadow:var(--glow-cyan); }
.hero-badges { display:flex; flex-wrap:wrap; gap:8px; }
.hbadge { border:1px solid; border-radius:3px; padding:3px 10px; font-size:.75rem; font-weight:700; letter-spacing:.5px; }
.hbadge.pink { border-color:var(--neon-pink); color:var(--neon-pink); text-shadow:var(--glow-pink); }
.hbadge.lav  { border-color:var(--neon-lav);  color:var(--neon-lav);  text-shadow:var(--glow-lav); }
.hbadge.cyan { border-color:var(--neon-cyan); color:var(--neon-cyan); text-shadow:var(--glow-cyan); }
.hbadge.gold { border-color:var(--gold); color:var(--gold); }

.hero-status {
  padding:16px 36px;
  display:flex; align-items:center; gap:20px; flex-wrap:wrap;
  border-top:1px solid rgba(255,105,180,0.1);
}
.status-dot { width:8px;height:8px;background:#43e97b;border-radius:50%;box-shadow:0 0 8px #43e97b;animation:blink 1.4s ease-in-out infinite; }
@keyframes blink{0%,100%{opacity:1;}50%{opacity:.2;}}
.status-text { font-size:.82rem;color:#80ffa0;font-weight:700; }
.loc { margin-left:auto;font-size:.8rem;color:var(--muted); }
.loc span { color:var(--sakura); }

/* ── SECTION ── */
.section {
  position:relative; background:var(--card);
  border:1px solid var(--border); border-radius:4px;
  padding:26px 30px; margin-top:20px;
  box-shadow:0 4px 24px rgba(0,0,0,.4);
  animation:slideUp 0.5s cubic-bezier(.34,1.56,.64,1) both;
  overflow:hidden;
}
.section:nth-child(2){animation-delay:.08s;}
.section:nth-child(3){animation-delay:.16s;}
.section:nth-child(4){animation-delay:.24s;}
.section:nth-child(5){animation-delay:.32s;}
.section:nth-child(6){animation-delay:.40s;}
.section:nth-child(7){animation-delay:.48s;}
@keyframes slideUp{from{opacity:0;transform:translateY(30px);}to{opacity:1;transform:translateY(0);}}
.section::before{border-color:var(--neon-lav);}
.section::after{border-color:var(--neon-cyan);}

.section-glow {
  position:absolute; top:0;left:0;right:0; height:1px;
  background:linear-gradient(90deg,transparent,var(--neon-pink),var(--neon-lav),transparent);
  opacity:.6;
}

.sec-title {
  font-family:'Zen Maru Gothic',sans-serif;
  font-size:.65rem; letter-spacing:4px; text-transform:uppercase;
  color:var(--neon-pink); text-shadow:var(--glow-pink);
  margin-bottom:20px; display:flex; align-items:center; gap:12px;
}
.sec-title::after { content:''; flex:1; height:1px; background:linear-gradient(90deg,rgba(255,105,180,.4),transparent); }
.sec-jp { font-family:'Zen Maru Gothic',sans-serif; font-size:.75rem; color:var(--muted); margin-left:4px; }

/* about */
.about-text { font-size:.88rem; line-height:1.85; color:#c8a8d8; margin-bottom:12px; }
.about-text strong{color:var(--sakura);}
.about-text em{color:var(--neon-cyan);font-style:normal;}
.goal-box {
  border:1px solid rgba(255,105,180,.3); border-radius:4px;
  padding:14px 18px; background:rgba(255,105,180,.05);
  font-size:.85rem; line-height:1.7; color:#c8a8d8;
}
.goal-box .goal-label { font-size:.65rem;letter-spacing:3px;color:var(--neon-pink);text-shadow:var(--glow-pink);margin-bottom:6px;font-weight:900; }

/* exp */
.exp-row { display:flex;gap:16px;padding:16px 0;border-bottom:1px dashed rgba(255,105,180,.15); }
.exp-row:last-child{border-bottom:none;padding-bottom:0;}
.exp-icon {
  width:42px;height:42px;border-radius:8px;flex-shrink:0;
  display:flex;align-items:center;justify-content:center;font-size:20px;
  background:rgba(255,105,180,.08);border:1px solid rgba(255,105,180,.2);
}
.exp-icon.c{background:rgba(0,229,255,.08);border-color:rgba(0,229,255,.2);}
.exp-icon.m{background:rgba(128,255,204,.08);border-color:rgba(128,255,204,.2);}
.exp-icon.s{background:rgba(255,215,0,.07);border-color:rgba(255,215,0,.2);}
.exp-body h3{font-size:.95rem;font-weight:800;color:#f0d6f5;margin-bottom:2px;}
.exp-body .co{font-size:.8rem;color:var(--neon-pink);font-weight:700;margin-bottom:2px;}
.exp-body .period{font-size:.73rem;color:var(--muted);margin-bottom:6px;}
.exp-body p{font-size:.83rem;color:#a088b0;line-height:1.6;}

/* skills */
.skill-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:8px;}
.sk {
  border:1px solid rgba(191,128,255,.25); border-radius:4px;
  padding:10px 8px; text-align:center; font-size:.78rem; font-weight:700;
  color:#d0a8e8; background:rgba(191,128,255,.05); transition:all .2s; cursor:default;
}
.sk:hover{border-color:var(--neon-pink);color:var(--sakura);background:rgba(255,105,180,.1);box-shadow:var(--glow-pink);transform:translateY(-3px);}
.sk .si{font-size:20px;display:block;margin-bottom:5px;}

/* lang bars */
.lang-item{display:flex;align-items:center;gap:14px;margin-bottom:14px;}
.lang-item:last-child{margin-bottom:0;}
.lang-flag{
  font-size: 22px;
  flex-shrink: 0;
  line-height: 1;
}
.lang-name{width:80px;flex-shrink:0;font-size:.85rem;font-weight:800;color:#f0d6f5;}
.lang-jp{font-size:.72rem;color:var(--muted);display:block;}
.stat-bar{flex:1;height:8px;background:rgba(255,255,255,.07);border-radius:4px;overflow:hidden;border:1px solid rgba(255,105,180,.15);}
.stat-fill{height:100%;border-radius:4px;animation:fillBar 1.2s cubic-bezier(.4,0,.2,1) both;}
@keyframes fillBar{from{width:0;}}
.stat-fill.es{background:linear-gradient(90deg,var(--neon-pink),var(--neon-lav));width:100%;animation-delay:.2s;}
.stat-fill.en{background:linear-gradient(90deg,var(--neon-cyan),var(--neon-mint));width:90%;animation-delay:.4s;}
.stat-fill.jp{background:linear-gradient(90deg,var(--gold),#ff9800);width:65%;animation-delay:.6s;}
.stat-label{font-size:.72rem;color:var(--muted);width:32px;text-align:right;flex-shrink:0;}

/* certs */
.cert-card {
  border:1px solid rgba(191,128,255,.2); border-radius:4px;
  padding:14px 16px; background:rgba(191,128,255,.04);
  transition:all .25s; position:relative; overflow:hidden;
}
.cert-card::before{content:'';position:absolute;top:0;left:0;right:0;height:1px;background:linear-gradient(90deg,transparent,var(--neon-lav),transparent);opacity:0;transition:opacity .25s;}
.cert-card:hover{border-color:var(--neon-lav);background:rgba(191,128,255,.09);transform:translateY(-3px);}
.cert-card:hover::before{opacity:1;}
.cert-icon{font-size:26px;margin-bottom:8px;}
.cert-name{font-size:.85rem;font-weight:800;color:#f0d6f5;margin-bottom:3px;}
.cert-issuer{font-size:.73rem;color:var(--neon-lav);margin-bottom:4px;font-weight:700;}
.cert-date{font-size:.7rem;color:var(--muted);margin-bottom:8px;}
.cert-tags{display:flex;flex-wrap:wrap;gap:4px;}
.ctag{font-size:.65rem;border:1px solid rgba(0,229,255,.3);border-radius:3px;padding:1px 7px;color:var(--neon-cyan);font-weight:700;}

/* edu */
.edu-row{display:flex;gap:16px;align-items:flex-start;padding:14px 0;border-bottom:1px dashed rgba(255,105,180,.15);}
.edu-row:last-child{border-bottom:none;}
.edu-icon2{font-size:30px;flex-shrink:0;margin-top:2px;}
.edu-body h3{font-size:.92rem;font-weight:800;color:#f0d6f5;margin-bottom:3px;}
.edu-body .deg{font-size:.82rem;color:var(--neon-lav);font-weight:700;}
.edu-body .sub{font-size:.75rem;color:var(--muted);margin-top:3px;}

/* footer */
.footer{text-align:center;margin-top:40px;font-size:.78rem;color:var(--muted);}
.footer a{color:var(--neon-pink);text-decoration:none;text-shadow:var(--glow-pink);}
.footer a:hover{text-decoration:underline;}
.footer .jp-footer{font-family:'Zen Maru Gothic',sans-serif;font-size:.7rem;color:rgba(160,122,176,.5);margin-top:6px;letter-spacing:2px;}

@media(max-width:540px){
  .section{padding:22px 18px;}
}
.draw-tool {
  background:rgba(255,255,255,.05); border:1px solid rgba(191,128,255,.3);
  border-radius:6px; padding:6px 10px; font-size:16px; cursor:pointer; transition:all .2s;
}
.draw-tool.active { background:rgba(191,128,255,.2); border-color:var(--neon-lav); }
.draw-tool:hover  { border-color:var(--neon-pink); }

/* Utility Classes */
.text-neon-pink { color: var(--neon-pink) !important; text-shadow: var(--glow-pink); }
.text-neon-lav { color: var(--neon-lav) !important; text-shadow: var(--glow-lav); }
.text-neon-cyan { color: var(--neon-cyan) !important; text-shadow: var(--glow-cyan); }
.text-muted-lavender { color: #a088b0 !important; }
.text-muted-bright { color: #c8a8d8 !important; }
.text-light-lavender { color: #e0d0f0 !important; }
.border-dashed { border-style: dashed !important; border-color: rgba(255,105,180,0.2) !important; }
.fw-black { font-weight: 900 !important; }
.text-sakura { color: var(--sakura) !important; }

/* ── TARKOV THEME ── */
body.tarkov-theme {
  --bg: #0a0a0a;
  --bg2: #141414;
  --card: rgba(20, 20, 20, 0.98);
  --border: #4a4a3a;
  --neon-pink: #9a8866; /* Khaki/Brass */
  --neon-lav: #5c5c4a;
  --neon-cyan: #7a7a5c;
  --sakura: #d1b26b;
  --text: #d0d0d0;
  --muted: #666655;
  --glow-pink: 0 0 10px rgba(154, 136, 102, 0.3);
  --glow-lav: 0 0 10px rgba(92, 92, 74, 0.3);
  --glow-cyan: 0 0 10px rgba(122, 122, 92, 0.2);
  filter: sepia(0.15) contrast(1.05);
}

body.tarkov-theme::before {
  background: repeating-linear-gradient(
    0deg, transparent, transparent 1px,
    rgba(255,255,255,0.03) 1px, rgba(255,255,255,0.03) 2px
  );
  mix-blend-mode: overlay;
}

body.tarkov-theme .bg-grad {
  background: 
    radial-gradient(circle at 50% 50%, rgba(122, 122, 92, 0.15) 0%, transparent 80%),
    url('https://www.transparenttextures.com/patterns/carbon-fibre.png');
}

body.tarkov-theme .petal { display: none !important; }
body.tarkov-theme .kanji-bg { opacity: 0.015; filter: grayscale(1); }

body.tarkov-theme .hero, body.tarkov-theme .section {
  border-radius: 0;
  border-color: var(--border);
  box-shadow: 4px 4px 0px rgba(0,0,0,0.8);
}

body.tarkov-theme .hero::before, body.tarkov-theme .hero::after, 
body.tarkov-theme .section::before, body.tarkov-theme .section::after {
  border-color: #666655;
  width: 10px; height: 10px;
}

body.tarkov-theme h1, body.tarkov-theme h3, body.tarkov-theme .sec-title {
  font-family: 'Courier New', monospace;
  text-transform: uppercase;
  letter-spacing: 2px;
}

body.tarkov-theme .progress-bar {
  background: #7a7a5c !important;
  border-radius: 0;
}

body.tarkov-theme .sk:hover {
  background: #333322;
  box-shadow: none;
  transform: none;
  border-color: #9a8866;
}
