/* ====== Root & Variables (blush pink theme) ====== */
:root{
  --pink-100: #fff3f6;
  --pink-200: #ffe6ee;
  --blush:   #ffb6c1; /* accent */
  --blush-deep: #ff7f9c;
  --charcoal: #242424;
  --muted: #7a6f72;
  --max-width: 980px;
  --card-radius: 18px;
  --glass: rgba(255,255,255,0.6);
}

/* Light mode base */
body.light {
  background: linear-gradient(180deg, var(--pink-100), #fff);
  color: var(--charcoal);
}

/* Dark mode overrides */
body.dark {
  --pink-100: #1a0e11;
  --pink-200: #241217;
  --blush: #ff99aa;
  background: linear-gradient(180deg,#0f0b0c,#120a0b);
  color: black;
}

/* PAGE LAYOUT */
* { box-sizing: border-box; }
body {
  font-family: 'Poppins', system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial;
  margin: 0;
  padding: 2rem;
  display: flex;
  justify-content: center;
  transition: background 0.35s ease, color 0.35s ease;
}

.container {
  width: 100%;
  max-width: var(--max-width);
}

/* HEADER */
.site-header{
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  margin-bottom: 1.5rem;
}

.greeting {
  display:flex;
  align-items: baseline;
  gap: 0.6rem;
}

.hi {
  font-size: 2.2rem;
  font-weight: 700;
  color: var(--blush-deep);
  transform: translateX(-120%);
  animation: slideIn 0.7s ease forwards 0.2s;
}

/* handwritten welcome */
.welcome {
  font-family: 'Dancing Script', cursive;
  font-size: 2.4rem;
  color: var(--blush-deep);
  margin: 0;
}

/* right header */
.header-right .name, .name {
  font-size: 1.4rem;
  margin: 0;
  font-weight: 700;
}
.tagline {
  margin: 0;
  color: var(--muted);
  font-weight: 500;
  font-size: 0.95rem;
}

/* PROFILE AREA (flexbox side-by-side) */
.profile-area {
  display: flex;
  gap: 2rem;
  align-items: flex-start;
  margin-bottom: 1.5rem;
}

/* left card - image & CTA */
.profile-card {
  flex: 0 0 320px;
  background: linear-gradient(180deg, rgba(255,255,255,0.6), rgba(255,255,255,0.3));
  border-radius: var(--card-radius);
  padding: 1.5rem;
  box-shadow: 0 8px 30px rgba(0,0,0,0.06);
  text-align: center;
}

/* cute frame */
.profile-frame{
  width: 200px;
  height: 200px;
  margin: 0 auto 1rem;
  border-radius: 26px;
  padding: 12px;
  background: linear-gradient(135deg, var(--pink-200), var(--pink-100));
  display: grid;
  place-items: center;
  box-shadow: 0 8px 30px rgba(255,182,193,0.12), inset 0 2px 8px rgba(255,255,255,0.35);
}

.profile-frame::after{
  content:"";
  position:absolute;
}

/* image */
.profile-img{
  width: 100%;
  height: 100%;
  object-fit: cover;
  border-radius: 16px;
  display: block;
  transform: translateY(0);
}

/* actions */
.profile-actions {
  display:flex;
  gap: 0.6rem;
  justify-content:center;
  margin-top: 0.6rem;
}
.cta-btn {
  background: var(--blush-deep);
  color: #fff;
  padding: 0.6rem 1rem;
  border-radius: 999px;
  text-decoration:none;
  font-weight:600;
  border: none;
}
.cta-outline {
  background: transparent;
  border: 1px solid rgba(0,0,0,0.08);
  padding: 0.5rem 0.9rem;
  border-radius: 999px;
  color: var(--muted);
  text-decoration: none;
}

/* right card - about & projects */
.about-card {
  flex: 1 1 auto;
  background: linear-gradient(180deg, rgba(255,255,255,0.6), rgba(255,255,255,0.4));
  border-radius: var(--card-radius);
  padding: 1.25rem 1.5rem;
  box-shadow: 0 8px 30px rgba(0,0,0,0.04);
}

.about-card h3 { margin-top: 0; color: var(--blush-deep);}
.bio { line-height: 1.5; color: var(--muted); }

/* two-column inside about */
.two-col {
  display: flex;
  gap: 1.2rem;
  margin-top: 1rem;
}
.two-col > div { flex: 1; }

/* hobbies */
.hobbies { padding-left: 1rem; margin:0; color: var(--muted); }
.hobbies li { margin-bottom: 0.5rem; }

/* projects */
.projects {
  display:flex;
  gap: 0.9rem;
  margin-top: 1rem;
  flex-wrap: wrap;
}
.project-card {
  background: rgba(255,255,255,0.85);
  border-radius: 12px;
  padding: 0.8rem;
  min-width: 160px;
  box-shadow: 0 6px 20px rgba(0,0,0,0.03);
}
.project-card h5 { margin:0 0 .3rem 0; color: var(--blush-deep); }
.open-project {
  background: transparent;
  border: 1px solid var(--blush-deep);
  color: var(--blush-deep);
  padding: 0.35rem 0.6rem;
  border-radius: 999px;
  cursor:pointer;
}

/* footer */
.site-footer {
  text-align:center;
  margin-top: 1rem;
  padding-top: 1rem;
  border-top: 1px dashed rgba(0,0,0,0.04);
}
.theme-btn { background: transparent; border: none; cursor: pointer; }

/* modal (popup) */
.modal {
  position: fixed;
  inset: 0;
  display: none;
  align-items: center;
  justify-content: center;
  background: rgba(0,0,0,0.45);
  z-index: 40;
}
.modal.show { display:flex; }
.modal-inner {
  background: linear-gradient(180deg, #fff, #fff7f8);
  padding: 1.25rem;
  border-radius: 12px;
  width: min(720px, 92%);
  box-shadow: 0 12px 40px rgba(0,0,0,0.25);
  position: relative;
}
.modal .modal-close {
  position: absolute;
  right: 14px;
  top: 10px;
  background:transparent;
  border:none;
  font-size: 1.3rem;
  cursor: pointer;
}

/* small screens - media queries */
@media (max-width: 900px){
  .profile-area { flex-direction: column; }
  .two-col { flex-direction: column; }
  .profile-card { width: 100%; max-width: 420px; margin: 0 auto; }
  .about-card { width: 100%; }
}

/* very small screens */
@media (max-width: 420px){
  body { padding: 1rem; }
  .hi { font-size: 1.8rem; }
  .welcome { font-size: 1.9rem; }
}

/* animations */
@keyframes slideIn {
  to { transform: translateX(0); opacity: 1; }
  from { transform: translateX(-120%); opacity: 0; }
}
/* ====== Font Size Controls ====== */
.text-controls {
  margin: 1rem 0;
}

.text-controls button {
  background-color: var(--blush); /* Uses theme variable */
  border: none;
  padding: 0.5rem 1rem;
  margin-right: 5px;
  border-radius: 5px;
  cursor: pointer;
  font-size: 1rem;
  color: #fff;
  font-weight: 500;
  transition: background-color 0.25s ease;
}

.text-controls button:hover {
  background-color: var(--blush-deep);
}

/* Dark mode adjustments */
body.dark .text-controls button {
  background-color: var(--blush);
  color: #1a0e11; /* Dark background contrast */
}

body.dark .text-controls button:hover {
  background-color: var(--blush-deep);
}
/* ====== Font Size Controls ====== */
.text-controls {
  margin: 1rem 0;
}

.text-controls button {
  background-color: #ffc0cb; /* blush pink */
  border: none;
  padding: 0.5rem 1rem;
  margin-right: 5px;
  border-radius: 5px;
  cursor: pointer;
  font-size: 1rem;
}

.text-controls button:hover {
  background-color: #ff99aa;
}
.cute-button {
  display: inline-block;
  padding: 12px 24px;
  background: linear-gradient(135deg, #ffb6c1, #ff69b4); /* pink gradient */
  color: white;
  font-weight: bold;
  text-decoration: none;
  border-radius: 16px;
  box-shadow: 0 4px 6px rgba(0,0,0,0.1);
  font-family: 'Segoe UI', sans-serif;
  position: relative;
  overflow: hidden;
  animation: pulse 1.5s infinite;
}

.cute-button:hover {
  transform: translateY(-3px);
  box-shadow: 0 6px 10px rgba(0,0,0,0.2);
}

/* Heart Animation */
.cute-button::after {
  content: '💖';
  position: absolute;
  left: 50%;
  top: -10px;
  font-size: 1rem;
  opacity: 0;
  transform: translateX(-50%) scale(0);
  animation: none;
}

.cute-button:hover::after {
  animation: floatHeart 0.8s ease forwards;
}

/* Pulse Animation */
@keyframes pulse {
  0% { transform: scale(1); }
  50% { transform: scale(1.05); }
  100% { transform: scale(1); }
}

/* Heart Float Animation */
@keyframes floatHeart {
  0% {
    opacity: 1;
    transform: translateX(-50%) translateY(0) scale(1);
  }
  50% {
    transform: translateX(-50%) translateY(-15px) scale(1.2);
  }
  100% {
    opacity: 0;
    transform: translateX(-50%) translateY(-30px) scale(0);
  }
}

/* Optional Sparkle Effect */
.cute-button::before {
  content: '✨';
  position: absolute;
  top: -5px;
  left: -5px;
  font-size: 1rem;
  opacity: 0;
  animation: sparkle 2s infinite;
}

@keyframes sparkle {
  0%, 80%, 100% { opacity: 0; transform: rotate(0deg) scale(0.5); }
  40% { opacity: 1; transform: rotate(20deg) scale(1); }
}