/*
Theme Name: KVG World Portfolio V3
Author: KVG World
Description: Custom KVG World portfolio theme inspired by the Web Developer Portfolio 04 visual language.
Version: 3.0.0
*/
:root{--bg:#080808;--ink:#f4f2ed;--muted:#96938f;--line:#292929;--gold:#f3b51b;--violet:#a98bff;--green:#9dff8a;--max:1220px}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--bg);color:var(--ink);font-family:Arial,Helvetica,sans-serif;line-height:1.55}a{color:inherit}.container{width:min(calc(100% - 56px),var(--max));margin:auto}
.site-header{position:fixed;top:0;left:0;right:0;z-index:99;background:rgba(8,8,8,.86);backdrop-filter:blur(15px);border-bottom:1px solid rgba(255,255,255,.08)}.header-inner{height:76px;display:flex;align-items:center;justify-content:space-between}.brand{font-family:monospace;text-decoration:none;font-weight:700;font-size:19px;letter-spacing:-.04em}.brand .mark{color:var(--gold)}.main-nav ul{display:flex;gap:27px;list-style:none;margin:0;padding:0}.main-nav a{font-family:monospace;font-size:12px;color:#aaa;text-decoration:none}.main-nav a:hover{color:#fff}.menu-toggle{display:none;background:none;color:#fff;border:0;font-size:25px}

.hero{min-height:100vh;padding:155px 0 80px;display:flex;align-items:center;position:relative;overflow:hidden}.hero:before{content:"";position:absolute;width:600px;height:600px;right:-300px;top:10%;border:1px solid rgba(169,139,255,.12);border-radius:50%;box-shadow:0 0 0 90px rgba(169,139,255,.025),0 0 0 180px rgba(169,139,255,.018);pointer-events:none}
.hero-grid{display:grid;grid-template-columns:minmax(0,1fr) 290px;gap:70px;align-items:end;width:100%}.eyebrow{font-family:monospace;font-size:13px;color:#a6a6a6;margin:0 0 25px}.eyebrow b{color:var(--gold);font-weight:400}
.hero h1{font-size:clamp(55px,8.3vw,118px);line-height:.9;letter-spacing:-.075em;margin:0;max-width:1040px;font-weight:800}.hero h1 .static{display:block}.hero h1 .typed{display:block;color:var(--gold);min-height:1em}.caret{display:inline-block;width:.045em;height:.72em;background:var(--gold);margin-left:.08em;vertical-align:-.04em;animation:blink .85s steps(1) infinite}@keyframes blink{50%{opacity:0}}
.hero-intro{max-width:650px;color:#9d9d9d;font-size:17px;margin:35px 0 25px}.hero-actions{display:flex;gap:12px;flex-wrap:wrap}.btn{display:inline-flex;min-height:47px;align-items:center;padding:0 19px;border:1px solid #505050;text-decoration:none;font:12px monospace;transition:.2s}.btn-primary{background:var(--gold);border-color:var(--gold);color:#080808;font-weight:700}.btn:hover{transform:translateY(-2px)}.btn-secondary:hover{border-color:var(--gold);color:var(--gold)}
.terminal{border:1px solid var(--line);background:#0e0e10;padding:18px;font:11px/2 monospace;color:#666;box-shadow:0 25px 70px rgba(0,0,0,.35)}.terminal .v{color:var(--violet)}.terminal .g{color:var(--green)}.terminal .y{color:var(--gold)}.hero-scroll{font:10px monospace;color:#666;margin-top:55px;letter-spacing:.12em}.float-symbol{position:absolute;font:18px monospace;color:#555}.s1{left:3%;top:42%}.s2{right:4%;top:28%}.s3{right:10%;bottom:18%}.s4{left:12%;bottom:12%}

.ticker{overflow:hidden;border-block:1px solid var(--line);white-space:nowrap;padding:17px 0;font:11px monospace;color:#777}.ticker-track{display:inline-block;animation:slide 25s linear infinite}.ticker i{color:var(--gold);font-style:normal;margin:0 20px}@keyframes slide{to{transform:translateX(-50%)}}

.section{padding:120px 0;border-bottom:1px solid var(--line)}.section-head{display:grid;grid-template-columns:260px 1fr;gap:55px;margin-bottom:60px}.code-label{font:12px monospace;color:var(--gold)}.section h2{font-size:clamp(43px,5.6vw,75px);line-height:.91;letter-spacing:-.065em;margin:0}.lead{font-size:18px;color:#9b9b9b;max-width:750px;margin-top:25px}
.about-grid{display:grid;grid-template-columns:1.25fr .75fr;gap:80px}.about-copy{font-size:19px;color:#c1bfbb;max-width:720px}.facts{border-top:1px solid var(--line)}.fact{display:flex;justify-content:space-between;border-bottom:1px solid var(--line);padding:17px 0;font:12px monospace}.fact span{color:#666}
.project-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:2px;background:var(--line);border:1px solid var(--line)}.project{min-height:345px;background:#0d0d0f;padding:29px;display:flex;flex-direction:column;justify-content:space-between;text-decoration:none;position:relative;overflow:hidden;transition:.25s}.project:hover{background:#141418}.project:hover .project-arrow{transform:translate(5px,-5px);color:var(--gold)}.project-num{font:11px monospace;color:#666}.project h3{font-size:31px;letter-spacing:-.045em;margin:0 0 7px}.project p{color:#818181;font-size:13px;margin:0;max-width:450px}.project-tag{font:10px monospace;color:var(--gold);margin-top:17px}.project-arrow{font-size:27px;transition:.2s;color:#666;position:absolute;right:27px;bottom:25px}

.services{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.service{padding:30px;border-top:2px solid var(--gold);background:#0e0e10;min-height:290px}.service:nth-child(2){border-color:var(--violet)}.service:nth-child(3){border-color:#eee}.service-no{font:11px monospace;color:#666}.service h3{font-size:28px;letter-spacing:-.04em;margin:72px 0 12px}.service p{font-size:13px;color:#818181;margin:0}
.resume-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}.resume{padding:30px;background:#0e0e10;border:1px solid var(--line)}.resume small{font:11px monospace;color:var(--gold)}.resume h3{font-size:24px;margin:14px 0 8px}.resume p{font-size:13px;color:#858585}
.contact{background:#101014}.contact-grid{display:grid;grid-template-columns:1.2fr .8fr;gap:80px}.contact h2{font-size:clamp(55px,7.8vw,105px);line-height:.87;letter-spacing:-.075em;margin:0}.contact-info{color:#999;font-size:17px}.contact-info a{display:block;margin-top:16px;font:14px monospace;color:#fff;text-decoration:none}.contact-info a:hover{color:var(--gold)}
.site-footer{border-top:1px solid var(--line);padding:28px 0;color:#666;font:11px monospace}.footer-inner{display:flex;justify-content:space-between}.footer-inner a{text-decoration:none}

.page-hero{padding:160px 0 85px;border-bottom:1px solid var(--line)}.page-hero .code-label{margin-bottom:20px}.page-hero h1{font-size:clamp(58px,9vw,115px);line-height:.88;letter-spacing:-.075em;margin:0}.page-body{padding:90px 0}.page-body .lead{font-size:19px}

@media(max-width:850px){.container{width:min(calc(100% - 34px),var(--max))}.header-inner{height:68px}.menu-toggle{display:block}.main-nav{display:none;position:absolute;top:68px;left:0;right:0;background:#080808;padding:20px 17px;border-bottom:1px solid var(--line)}.main-nav.is-open{display:block}.main-nav ul{flex-direction:column;gap:18px}.hero{padding-top:130px}.hero-grid,.about-grid,.contact-grid{grid-template-columns:1fr;gap:35px}.terminal{display:none}.hero h1{font-size:clamp(50px,15vw,83px)}.section{padding:85px 0}.section-head{grid-template-columns:1fr;gap:20px;margin-bottom:40px}.project-grid,.services,.resume-grid{grid-template-columns:1fr}.project{min-height:285px}.service{min-height:235px}.service h3{margin-top:48px}.footer-inner{flex-direction:column;gap:9px}.float-symbol{display:none}}

/* V4 visual layer */
.hero-grid{grid-template-columns:minmax(0,1fr) 360px;align-items:center}
.hero-art{position:relative;border:1px solid #292929;background:#0e0e10;overflow:hidden;min-height:540px}
.hero-art img{display:block;width:100%;height:540px;object-fit:cover;filter:saturate(.78)}
.hero-art:after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 55%,rgba(0,0,0,.55))}
.hero-art-label{position:absolute;z-index:2;left:18px;bottom:16px;font:10px monospace;color:#aaa}
.hero h1 .static{display:none}
.hero h1 .typed{display:block;color:var(--gold);min-height:1em}
.project-image{height:205px;margin:-29px -29px 25px;overflow:hidden;background:#15151a}
.project-image img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .5s ease;filter:saturate(.8)}
.project:hover .project-image img{transform:scale(1.04);filter:saturate(1)}
.project.project-image-card{padding-top:0}
@media(max-width:850px){.hero-grid{grid-template-columns:1fr}.hero-art{display:block;min-height:390px}.hero-art img{height:390px}.hero h1{font-size:clamp(50px,14vw,83px)}}
