:root {
  --bg: #050913;
  --panel: rgba(10, 17, 31, .84);
  --panel-2: rgba(12, 20, 36, .74);
  --line: rgba(160, 178, 205, .14);
  --line-strong: rgba(160, 178, 205, .22);
  --text: #f4f7fb;
  --muted: #9aa6ba;
  --blue: #75a9ff;
  --cyan: #50dfff;
  --yellow: #ffd76b;
  --green: #20e39a;
  --shadow: 0 20px 70px rgba(0,0,0,.38);
  --radius: 25px;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  min-height: 100vh;
  background: radial-gradient(circle at top, #0d1930 0, var(--bg) 42%, #02050b 100%);
  color: var(--text);
  font-family: "Sora", ui-sans-serif, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  letter-spacing: .005em;
  overflow-x: hidden;
}
h1, h2, h3, .about-orb span, .repo-title, .footer-card h2 { font-family: "Space Grotesk", "Sora", ui-sans-serif, sans-serif; }
.handle, .terminal, .status-line, .prompt, .slash, .hero-online, .principle-label, .tech-label, .eyebrow, .message-time, .footer, .mini-badge, .wa-popup-time { font-family: "JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, monospace; }
.principle p { font-family: "Fraunces", Georgia, serif; }
button, input, textarea { font: inherit; }
a { color: inherit; text-decoration: none; }
button { color: inherit; }

.bg-grid {
  position: fixed; inset: 0; pointer-events: none; opacity: .26;
  background-image: linear-gradient(rgba(125,164,220,.035) 1px, transparent 1px), linear-gradient(90deg, rgba(125,164,220,.035) 1px, transparent 1px);
  background-size: 36px 36px;
  mask-image: linear-gradient(to bottom, rgba(0,0,0,.8), transparent 80%);
}
.aurora { position: fixed; width: 48vw; height: 48vw; border-radius: 999px; pointer-events: none; filter: blur(90px); opacity: .12; }
.aurora-a { top: -17vw; left: -15vw; background: #2e73ff; }
.aurora-b { top: 30vh; right: -20vw; background: #ffca4a; opacity: .075; }
#stars { position: fixed; inset: 0; pointer-events: none; overflow: hidden; z-index: 0; }
.star { position: absolute; width: 2px; height: 2px; border-radius: 999px; background: rgba(255,255,255,.85); box-shadow: 0 0 12px rgba(137,186,255,.8); animation: twinkle 3.6s infinite ease-in-out; }
@keyframes twinkle { 0%,100% { opacity:.15; transform:scale(.7)} 50% {opacity:.75; transform:scale(1.35)} }

.site-header {
  position: sticky; top: 0; z-index: 20;
  backdrop-filter: blur(18px); -webkit-backdrop-filter: blur(18px);
  background: rgba(4,8,15,.68); border-bottom: 1px solid var(--line);
}
.container { width: min(100% - 28px, 980px); margin: 0 auto; }
.topline { min-height: 62px; display: flex; align-items: center; justify-content: space-between; color: #aeb9cc; font: 500 12px/1.2 ui-monospace, SFMono-Regular, Menlo, monospace; }
.brand-mini { border: 0; background: transparent; padding: 8px 0; cursor: pointer; color: inherit; }
.prompt { color: #71b9ff; }
.slash { color: #56627a; }
.status-line { display:flex; align-items:center; gap:8px; }
.status-dot, .pulse { width: 8px; height: 8px; border-radius:50%; background: var(--green); box-shadow:0 0 14px rgba(32,227,154,.7); }
.pulse { width:7px;height:7px; animation: pulse 2s infinite; }
@keyframes pulse { 50%{box-shadow:0 0 0 5px rgba(32,227,154,.04),0 0 20px rgba(32,227,154,.7)} }

.page-shell { position: relative; z-index: 1; padding: 28px 0 56px; }
.card { background: linear-gradient(180deg, rgba(11,17,31,.88), rgba(7,12,23,.88)); border: 1px solid var(--line); box-shadow: var(--shadow); border-radius: var(--radius); overflow: hidden; }
.reveal { opacity: 0; transform: translateY(18px); transition: opacity .7s ease, transform .7s cubic-bezier(.2,.7,.2,1); }
.reveal.visible { opacity:1; transform:none; }

.hero { position: relative; min-height: 500px; display:flex; align-items:flex-end; }
.hero-cover { position:absolute; inset:0 0 auto 0; height:295px; background: url('https://raw.githubusercontent.com/Lynxcode-id/picture/main/1788501421462.jpeg') center/cover no-repeat; filter: saturate(.88) contrast(1.04); }
.hero-cover-shade { position:absolute; inset:0; background: linear-gradient(180deg, rgba(3,7,13,.05) 0%, rgba(5,9,18,.18) 31%, rgba(5,9,18,.98) 69%, rgba(5,9,18,1) 100%); }
.hero-online { position:absolute; right:18px; top:18px; padding:9px 13px; display:flex; align-items:center; gap:8px; border-radius:999px; background:rgba(6,12,21,.78); border:1px solid var(--line-strong); color:#bfffe7; font: 600 12px ui-monospace,monospace; backdrop-filter:blur(10px); }
.hero-content { width:100%; text-align:center; position:relative; z-index:2; padding: 210px 26px 30px; }
.avatar-wrap { width:136px; height:136px; position:relative; margin:0 auto 18px; }
.avatar-glow { position:absolute; inset:-26px; border-radius:50%; background:radial-gradient(circle, rgba(255,215,107,.55) 0%, rgba(255,215,107,.22) 40%, transparent 72%); filter:blur(18px); z-index:0; animation: glowPulse 3.4s ease-in-out infinite; }
@keyframes glowPulse { 0%,100% { opacity:.75; transform:scale(1); } 50% { opacity:1; transform:scale(1.06); } }
.avatar { position:relative; z-index:1; width:100%; height:100%; border-radius:50%; object-fit:cover; background:#f6f7fb; border:8px solid #0a101b; box-shadow: 0 0 0 1px rgba(255,255,255,.16), 0 0 40px rgba(255,215,107,.25), 0 18px 50px rgba(0,0,0,.45); }
.verified { position:absolute; z-index:2; right:1px; bottom:8px; width:31px;height:31px;border-radius:50%;display:grid;place-items:center;background:var(--green);color:#032117;font-weight:900;border:4px solid #09121f; box-shadow:0 6px 16px rgba(32,227,154,.3); }
.name-row { display:flex; justify-content:center; align-items:center; gap:10px; flex-wrap:wrap; text-align:center; }
.role-badge-wrap { display:flex; justify-content:center; margin:2px 0 10px; }
h1,h2,h3,p { margin-top:0; }
h1 { font-size:clamp(28px, 6vw, 38px); line-height:1; margin-bottom:8px; letter-spacing:-.03em; }
.role-badge,.mini-badge,.repo-tags span { display:inline-flex; align-items:center; border-radius:999px; border:1px solid var(--line); color:#b9c2d2; background:rgba(255,255,255,.055); }
.role-badge { font-size:12px; padding:7px 10px; }
.hero-sub { color:#d4dbea; margin-bottom:8px; }
.hero-sub strong { color:#fff; }
.handle { margin-bottom:22px; color:#8793a8; font: 13px/1.4 ui-monospace, SFMono-Regular, Menlo, monospace; }
.terminal { color:#49d5ac; margin-right:6px; }
.muted-dot { color:#5c687c; padding:0 4px; }
.hero-actions { display:flex; justify-content:center; gap:9px; flex-wrap:wrap; }
.btn,.icon-btn { border:1px solid var(--line); border-radius:14px; min-height:44px; padding:0 16px; display:inline-flex; align-items:center; justify-content:center; gap:8px; cursor:pointer; transition:.22s ease; }
.btn { background:rgba(255,255,255,.045); color:#ecf2fb; }
.btn:hover,.icon-btn:hover { transform:translateY(-2px); border-color:var(--line-strong); }
.btn.primary { background:#f4f6fa; color:#0b101a; border-color:transparent; font-weight:700; box-shadow:0 8px 22px rgba(255,255,255,.08), 0 0 24px rgba(255,215,107,.18); }
.btn.primary:hover { box-shadow:0 8px 22px rgba(255,255,255,.08), 0 0 32px rgba(255,215,107,.32); }
.btn.light { background:#edf1f7; color:#101725; border-color:transparent; min-width:94px; font-weight:700; }
.icon-btn { width:45px; padding:0; background:rgba(255,255,255,.045); }

.about,.featured,.guestbook-card,.footer-card { margin-top:20px; }
.about { padding:28px; }
.section-kicker,.section-title { display:flex; align-items:center; justify-content:space-between; gap:16px; color:#7f8a9e; font: 12px/1.2 ui-monospace, SFMono-Regular, Menlo, monospace; letter-spacing:.11em; text-transform:uppercase; }
.divider { height:1px; background:var(--line); margin:16px 0 24px; }
.about-head { display:grid; grid-template-columns:1fr auto; gap:24px; align-items:center; }
h2 { font-size:26px; line-height:1.1; margin-bottom:10px; letter-spacing:-.025em; }
.about-head p { color:#aeb8ca; font-size:15px; line-height:1.75; max-width:730px; margin-bottom:0; }
.about-head p strong { color:#eef3fb; }
.about-orb { width:82px;height:82px;border-radius:24px;display:grid;place-items:center;border:1px solid rgba(126,171,255,.22);background:radial-gradient(circle at 30% 25%,rgba(120,177,255,.2),transparent 55%),rgba(20,33,58,.55); color:#d9e9ff;font:700 12px ui-monospace,monospace; box-shadow:inset 0 0 30px rgba(88,139,255,.08); transform:rotate(-4deg); }
.principle { position:relative; margin-top:24px; padding:22px 58px 22px 22px; border:1px solid var(--line); border-radius:20px; background:rgba(4,8,16,.54); }
.principle-label,.tech-label,.eyebrow { color:#8995aa; font: 11px ui-monospace,monospace; letter-spacing:.13em; text-transform:uppercase; }
.principle p { margin:8px 0 0; color:#dbe3ef; font-style:italic; font-size:15px; line-height:1.75; }
.principle .copy-quote { position:absolute; right:12px; top:15px; }
.tech-block { margin-top:22px; padding-top:18px; border-top:1px solid var(--line); }
.tech-label { margin-bottom:12px; text-transform:none; letter-spacing:.06em; font-size:12px; }
.chips { display:flex; flex-wrap:wrap; gap:8px; }
.chips span,.repo-tags span { padding:8px 11px; font-size:12px; }

.featured { display:flex; align-items:center; gap:15px; padding:19px; }
.repo-icon { flex:0 0 56px; width:56px;height:56px;border-radius:17px;display:grid;place-items:center;background:linear-gradient(145deg,rgba(255,255,255,.07),rgba(255,255,255,.02));border:1px solid var(--line); color:#c8d5ea; font-size:23px; }
.repo-copy { min-width:0; flex:1; }
.repo-title { font-weight:700; font-size:15px; margin-bottom:6px; }
.repo-title span { color:#56627a; padding:0 2px; }
.tagline { color:#8e9aae; font-size:12.5px; line-height:1.55; }
.repo-tags { display:flex; gap:7px; margin-top:9px; flex-wrap:wrap; }
.repo-tags span { padding:5px 8px; font-size:10px; }
.arrow-link { color:#a8b5c9; font-size:21px; padding:12px; }

.section { margin-top:34px; }
.section-title { margin:0 6px 13px; }
.link-grid { display:grid; gap:13px; }
.link-card { padding:19px 20px 18px; border:1px solid var(--line); border-radius:21px; background:linear-gradient(180deg,rgba(10,17,31,.88),rgba(7,12,23,.88)); box-shadow:0 12px 38px rgba(0,0,0,.18); transition:.22s ease; }
.link-card:hover { transform:translateY(-2px); border-color:rgba(255,215,107,.35); box-shadow:0 12px 38px rgba(0,0,0,.18), 0 0 26px rgba(255,215,107,.12); }
.link-main { display:flex; gap:14px; align-items:flex-start; }
.link-icon { width:56px;height:56px;border-radius:17px;display:grid;place-items:center;flex:0 0 auto;font-weight:800;letter-spacing:-.03em;border:1px solid var(--line);color:#eaf4ff;background:rgba(255,255,255,.045); overflow:hidden; }
.link-icon img { width:100%; height:100%; object-fit:cover; display:block; }
.link-icon.wa { color:#052218; background:#35e78e; border-color:transparent; font-size:25px; }
.link-icon.blue { background:rgba(91,141,255,.14); color:#8fb6ff; }
.link-icon.gold { background:rgba(255,204,84,.1); color:#ffd76b; }
.link-icon.violet { background:rgba(161,118,255,.12); color:#cbb2ff; }
.link-icon.github { background:rgba(255,255,255,.07); color:#f0f2f6; }
.link-icon.cyan { background:rgba(66,212,255,.1); color:#7fe5ff; }
.link-icon.api2 { background:rgba(93,132,255,.12); color:#a9c2ff; }
.link-icon.heart { background:rgba(255,103,122,.1); color:#ff8a9c; }
.link-icon.qna { background:rgba(255,255,255,.06); color:#f7d66a; font-size:24px; }
.link-main h3 { margin:0 7px 7px 0; display:inline-block; font-size:15px; }
.mini-badge { font-size:10px; padding:4px 7px; vertical-align:2px; }
.mini-badge.official { color:#cde7ff; border-color:rgba(112,177,255,.22); }
.link-main p { margin:0 0 8px; color:#8e99ab; font-size:12.5px; line-height:1.55; }
.link-main small { color:#69758a; font: 11px ui-monospace,monospace; }
.link-actions { display:flex; justify-content:flex-end; gap:8px; margin-top:17px; padding-top:14px; border-top:1px solid var(--line); }
.link-actions .icon-btn { min-height:42px;width:47px; }
.link-actions .btn { min-height:42px; }

.guestbook-card { padding:20px; }
form input,form textarea { width:100%; border-radius:16px; border:1px solid var(--line); background:rgba(2,6,13,.76); color:#eff4fb; outline:none; padding:14px 15px; transition:.2s ease; }
form input:focus,form textarea:focus { border-color:rgba(105,157,255,.38); box-shadow:0 0 0 4px rgba(90,142,255,.06); }
form textarea { margin-top:10px; min-height:102px; resize:vertical; }
.form-row { display:flex; align-items:center; justify-content:space-between; margin-top:10px; color:#647086; font-size:11px; }
.btn.send { min-height:40px; padding:0 16px; }
.message-list { display:grid; gap:9px; margin-top:18px; }
.message { display:flex; gap:12px; padding:15px; border-radius:17px; border:1px solid var(--line); background:rgba(2,6,13,.54); }
.message-avatar { width:37px;height:37px;border-radius:50%;display:grid;place-items:center;flex:0 0 auto;background:rgba(255,255,255,.08);color:#d4dbea;border:1px solid var(--line);font-size:13px; }
.message-body { flex:1; min-width:0; }
.message-top { display:flex; justify-content:space-between; gap:12px; font-size:13px; }
.message-time { color:#677388; font:10px ui-monospace,monospace; white-space:nowrap; }
.message-text { margin:5px 0 0; color:#aeb8ca; font-size:12px; line-height:1.55; }
.guest-note { margin:14px 3px 0; color:#617087; font-size:10px; line-height:1.5; }

.footer-card { padding:24px; display:flex; align-items:center; justify-content:space-between; gap:18px; }
.footer-card h2 { margin:7px 0 7px; font-size:24px; }
.footer-card p { margin:0; color:#8d99ac; font-size:13px; line-height:1.55; }
.footer { padding:0 0 34px; display:flex; justify-content:space-between; gap:18px; color:#616d82; font:10px ui-monospace,monospace; }

.toast { position:fixed; left:50%; bottom:22px; z-index:60; transform:translate(-50%,15px); opacity:0; pointer-events:none; background:#edf2fa; color:#0a111e; border-radius:999px; padding:10px 15px; font-size:12px; font-weight:700; box-shadow:0 12px 30px rgba(0,0,0,.4); transition:.25s ease; }
.toast.show { transform:translate(-50%,0); opacity:1; }
.modal { position:fixed; inset:0; display:none; z-index:50; }
.modal.open { display:grid; place-items:center; }
.modal-backdrop { position:absolute; inset:0; background:rgba(1,4,9,.7); backdrop-filter:blur(12px); }
.modal-panel { position:relative; z-index:1; width:min(92vw,390px); padding:26px; border:1px solid var(--line-strong); border-radius:25px; background:linear-gradient(180deg,#0c1525,#070c16); box-shadow:0 30px 90px rgba(0,0,0,.6); text-align:center; }
.modal-close { position:absolute; right:13px; top:13px; width:40px; height:40px; }
.modal-panel h3 { margin:7px 0; font-size:24px; }
.modal-panel p { color:#8d99ad; font-size:12px; }
.qr-box { padding:15px; background:#fff; border-radius:20px; width:min(250px,70vw); margin:18px auto; }
.qr-box img { display:block; width:100%; aspect-ratio:1; object-fit:cover; }
.full { width:100%; }

.marquee-strip { position:relative; z-index:1; overflow:hidden; padding:16px 0 40px; -webkit-mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent); mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent); }
.marquee-track { display:flex; width:max-content; animation: marquee 22s linear infinite; }
.marquee-track span { flex:0 0 auto; padding-right:12px; font-family:"JetBrains Mono", ui-monospace, monospace; font-size:12px; letter-spacing:.14em; text-transform:uppercase; color:#ffd76b; text-shadow:0 0 18px rgba(255,215,107,.45); white-space:nowrap; }
@keyframes marquee { from { transform:translateX(0); } to { transform:translateX(-50%); } }

.wa-popup { position:fixed; top:16px; left:50%; transform:translate(-50%,-140%); width:min(92vw,360px); z-index:70; display:flex; align-items:center; gap:12px; padding:12px 14px; border-radius:20px; border:1px solid var(--line-strong); background:rgba(10,14,22,.88); backdrop-filter:blur(16px); -webkit-backdrop-filter:blur(16px); box-shadow:0 18px 50px rgba(0,0,0,.5), 0 0 30px rgba(255,215,107,.12); cursor:pointer; transition: transform .5s cubic-bezier(.2,.8,.2,1); }
.wa-popup.show { transform:translate(-50%,0); }
.wa-popup.hide { display:none; }
.wa-popup-icon { width:44px; height:44px; flex:0 0 auto; border-radius:50%; overflow:hidden; box-shadow:0 0 0 1px rgba(255,255,255,.12); }
.vinyl { width:100%; height:100%; }
.vinyl.playing { animation: spinVinyl 2.6s linear infinite; }
@keyframes spinVinyl { to { transform: rotate(360deg); } }
.wa-popup-body { min-width:0; flex:1; }
.wa-popup-top { display:flex; align-items:center; justify-content:space-between; gap:8px; font-size:13px; color:#eef2f9; }
.wa-popup-time { color:#6c7890; font-size:10px; }
.wa-popup-body p { margin:3px 0 0; font-size:12px; color:#a7b1c4; }
.wa-popup-close { position:absolute; top:-9px; right:-9px; width:24px; height:24px; min-height:0; border-radius:50%; background:#151c2b; border:1px solid var(--line-strong); font-size:13px; line-height:1; color:#aeb9cc; }

@media (min-width: 720px) {
  .link-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .link-card { min-height:247px; display:flex; flex-direction:column; }
  .link-actions { margin-top:auto; }
}
@media (max-width: 650px) {
  .page-shell { padding-top:18px; }
  .hero { min-height: 470px; }
  .hero-cover { height:250px; }
  .hero-content { padding-top:178px; }
  .hero-actions .btn span { display:none; }
  .hero-actions .btn { width:47px; padding:0; }
  .hero-actions .icon-btn { width:47px; }
  .about-head { grid-template-columns:1fr; }
  .about-orb { display:none; }
  .section-kicker,.section-title { font-size:10px; }
  .featured { padding:16px; }
  .footer-card { align-items:flex-start; flex-direction:column; }
  .footer-card .btn { width:100%; }
  .footer { flex-direction:column; }
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior:auto; }
  *,*::before,*::after { animation-duration:.001ms !important; animation-iteration-count:1 !important; transition-duration:.001ms !important; }
}
