:root{--ink:#161a25;--muted:#727685;--paper:#f7f7f4;--line:rgba(22,26,37,.12);--orange:#fd7758;--blue:#9fd7f4;--lime:#d9e991;--violet:#cfc3f5;--serif:'Playfair Display',Georgia,serif}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--paper);font-family:Manrope,Arial,sans-serif;color:var(--ink);overflow-x:hidden}.canvas-grid{position:fixed;inset:0;background-image:linear-gradient(rgba(22,26,37,.035) 1px,transparent 1px),linear-gradient(90deg,rgba(22,26,37,.035) 1px,transparent 1px);background-size:52px 52px;mask-image:linear-gradient(to bottom,black,transparent 80%);pointer-events:none;z-index:-2}.orb{position:fixed;border-radius:50%;filter:blur(12px);opacity:.52;z-index:-1}.orb-one{width:31vw;height:31vw;background:#f7c5b8;top:-13vw;right:-9vw}.orb-two{width:30vw;height:30vw;background:#cbdca6;bottom:-12vw;left:-10vw}.glass{background:rgba(255,255,255,.52);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border:1px solid rgba(255,255,255,.8);box-shadow:0 16px 45px rgba(41,45,57,.07)}.topbar{position:sticky;top:17px;z-index:10;display:flex;align-items:center;width:100%;max-width:1380px;margin:17px auto 0;padding:10px 24px;border-radius:18px}.brand{font:700 15px 'DM Mono',monospace;color:var(--ink);text-decoration:none;letter-spacing:-1px;margin-right:auto}.brand-dot{display:none!important}.topbar nav{display:flex;gap:4px;margin-right:20px}.topbar nav a{font-size:11px;text-decoration:none;color:var(--muted);font-weight:800;padding:9px 12px;border-radius:10px;transition:.2s ease}.topbar nav a:hover,.topbar nav a.active{color:var(--ink);background:#fff}.admin-link{font-size:10px;text-decoration:none;color:var(--muted);font-weight:700;padding:6px 10px;border-radius:8px;background:transparent;opacity:0.18;transition:opacity .2s,background .2s,color .2s;margin-left:8px}.admin-link:hover{opacity:1;color:var(--ink);background:rgba(22,26,37,.05)}.admin-link span{display:none}.nav-toggle{display:none}main{width:100%;max-width:1380px;padding:0 24px;margin:auto}.hero{display:grid;grid-template-columns:1.1fr .9fr;gap:74px;align-items:center;min-height:690px;padding:86px 45px 72px}.eyebrow,.section-kicker{font:10px 'DM Mono',monospace;letter-spacing:.1em;color:var(--muted)}.eyebrow{display:flex;align-items:center;gap:9px}.eyebrow .status-dot,.eyebrow i{display:inline-block;width:7px;height:7px;border-radius:50%;background:#9bcb53;box-shadow:0 0 0 5px rgba(155,203,83,.18);flex-shrink:0;margin-right:2px}.hero h1{font-size:clamp(45px,6.25vw,78px);line-height:1.02;letter-spacing:-.077em;margin:18px 0 23px;max-width:750px}.intro{line-height:1.85;color:var(--muted);max-width:510px;font-size:15px}.hero-actions{display:flex;gap:11px;margin-top:31px}.button{position:relative;isolation:isolate;overflow:hidden;text-decoration:none;display:inline-flex;align-items:center;justify-content:center;gap:20px;font:800 12px Manrope;padding:14px 19px;border-radius:13px;cursor:pointer;transition:transform .2s ease,box-shadow .2s ease}.button:hover{transform:translateY(-3px)}.primary{background:var(--ink);color:#fff;box-shadow:0 8px 16px rgba(22,26,37,.16)}.primary:before{content:'';position:absolute;inset:0;z-index:-1;background:var(--orange);transform:translateX(-102%);transition:transform .25s ease}.primary:hover:before{transform:translateX(0)}.primary span{color:var(--orange);font-size:18px}.primary:hover span{color:#fff}.subtle{background:rgba(255,255,255,.66);color:var(--ink);border:1px solid var(--line)}.subtle:hover{box-shadow:0 8px 20px rgba(30,35,46,.1)}.hero-proof{display:none!important}.portrait-wrap{position:relative;padding:0 18px 18px 0}.portrait-card{height:475px;border-radius:28px;position:relative;overflow:hidden;background:linear-gradient(145deg,#bcdced,#f0cbbd);transform:rotate(2.4deg);transition:transform .45s ease}.portrait-wrap:hover .portrait-card{transform:rotate(0deg) translateY(-5px)}.portrait-card:after{content:'';position:absolute;inset:0;border:1px solid rgba(255,255,255,.4);border-radius:inherit;pointer-events:none}.portrait-card img{width:100%;height:100%;object-fit:contain;object-position:center bottom;position:relative;z-index:1}.portrait-noise{position:absolute;inset:0;opacity:.18;background-image:radial-gradient(#fff 1px,transparent 1px);background-size:5px 5px}.avatar-placeholder{height:100%;display:grid;place-items:center;font-size:110px;color:#fff;font-weight:800;letter-spacing:-.1em}.portrait-label{position:absolute;bottom:16px;left:16px;right:16px;z-index:2;border-radius:13px;background:rgba(255,255,255,.62);backdrop-filter:blur(12px);padding:11px 13px;display:flex;justify-content:space-between;align-items:center;font:10px 'DM Mono';line-height:1.5}.portrait-label b{font-size:18px;color:var(--orange)}.floating-note{position:absolute;right:-10px;bottom:1px;background:var(--ink);color:#fff;padding:13px 16px;border-radius:14px;display:flex;align-items:center;gap:11px;box-shadow:0 10px 20px rgba(22,26,37,.16);transform:rotate(-4deg)}.floating-note i{font-style:normal;color:var(--orange)}.floating-note span{font:9px 'DM Mono';line-height:1.45;text-transform:uppercase}.section{display:grid;grid-template-columns:200px 1fr;gap:28px;padding:112px 45px;border-top:1px solid var(--line)}.section h2,.contact h2{font-size:clamp(35px,4.1vw,56px);letter-spacing:-.073em;line-height:1.04;margin:0 0 26px}.about>div>p{color:var(--muted);font-size:15px;line-height:1.95;max-width:680px}.skill-list{display:grid;grid-template-columns:repeat(3,1fr);gap:13px;margin-top:44px}.skill{min-height:195px;padding:20px;border-radius:18px;position:relative;overflow:hidden;transition:transform .25s,box-shadow .25s}.skill:hover{transform:translateY(-7px);box-shadow:0 20px 32px rgba(40,44,56,.12)}.skill:nth-child(2){background:rgba(210,235,246,.54)}.skill:nth-child(3){background:rgba(231,238,186,.55)}.skill>span{font:10px 'DM Mono';color:var(--muted)}.skill h3{font-size:17px;margin:53px 0 3px;letter-spacing:-.04em}.skill p{font-size:10px;color:var(--muted);margin:0}.skill i{position:absolute;height:5px;left:20px;bottom:20px;width:calc(var(--level) - 40px);max-width:calc(100% - 40px);background:var(--orange);border-radius:5px}.skill:nth-child(2) i{background:#539ac5}.skill:nth-child(3) i{background:#91aa39}.projects{padding-bottom:126px}.project-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:15px;margin-top:44px}.project{border-radius:20px;overflow:hidden;text-decoration:none;color:var(--ink);transition:transform .25s,box-shadow .25s}.project:hover{transform:translateY(-7px);box-shadow:0 22px 35px rgba(31,36,47,.13)}.project-visual{height:245px;display:grid;place-items:center;font:11px 'DM Mono';letter-spacing:.12em;position:relative;overflow:hidden}.project-visual:after{content:'VIEW PROJECT ↗';position:absolute;right:14px;top:14px;background:rgba(255,255,255,.86);padding:7px 9px;border-radius:8px;font-size:8px;letter-spacing:.08em;opacity:0;transform:translateY(-8px);transition:.22s}.project:hover .project-visual:after{opacity:1;transform:translateY(0)}.project-visual img{width:100%;height:100%;object-fit:cover;transition:transform .45s}.project:hover .project-visual img{transform:scale(1.06)}.coral{background:#f5ad99}.blue{background:#a5d5ec}.lime{background:#d6e69d}.project-info{padding:19px;display:flex;justify-content:space-between;align-items:flex-start}.project-info h3{margin:0 0 5px;font-size:18px;letter-spacing:-.04em}.project-info p{margin:0;color:var(--muted);font-size:11px;max-width:290px;line-height:1.6}.project-info b{display:grid;place-items:center;width:29px;height:29px;border-radius:50%;background:#f0f0ec;font-size:16px;color:var(--orange);transition:.2s}.project:hover .project-info b{background:var(--orange);color:#fff;transform:rotate(45deg)}.contact{margin:0 45px 40px;border-radius:28px;padding:68px 8%;background:linear-gradient(115deg,rgba(222,235,170,.75),rgba(205,229,243,.68));position:relative;overflow:hidden}.contact:after{content:'✦';position:absolute;right:9%;top:30px;font-size:105px;color:rgba(255,255,255,.47)}.contact p{font:10px 'DM Mono';letter-spacing:.1em;color:var(--muted)}.contact h2{position:relative;z-index:1}.contact em{font-family:var(--serif);font-weight:600;font-style:italic;color:#d9634a;letter-spacing:-.08em}footer{width:100%;max-width:none;display:flex;justify-content:space-between;padding:25px 5% 38px;font:10px 'DM Mono';color:var(--muted)}footer a{color:var(--ink);text-decoration:none;font-weight:700}
/* Dashboard */.admin-body{min-height:100vh;display:grid;place-items:center;padding:22px;background:linear-gradient(130deg,#f4d5cc,#eef0d1)}.login{width:min(430px,100%);border-radius:25px;padding:36px}.login h1{letter-spacing:-.06em;margin:28px 0}.login form{display:grid;gap:16px}.login small{display:block;margin-top:22px;color:var(--muted);font-size:11px}.login code{background:#eee;padding:3px}.dashboard-body{display:grid;grid-template-columns:210px 1fr;background:#f5f2ea}.dashboard-body aside{position:fixed;width:210px;height:100vh;border-right:1px solid var(--line);padding:30px 22px;display:flex;flex-direction:column;gap:17px;background:rgba(255,255,255,.32)}.dashboard-body aside p{font:10px 'DM Mono';color:var(--muted);margin:25px 0 2px}.dashboard-body aside a:not(.brand){text-decoration:none;color:var(--ink);font-size:13px;font-weight:700}.dashboard-body aside hr{border:0;border-top:1px solid var(--line);width:100%;margin:10px 0}.dashboard{grid-column:2;max-width:1000px;width:100%;padding:55px;justify-self:center}.dash-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:36px}.dash-head h1{letter-spacing:-.06em;margin:8px 0 0;font-size:38px}.panel{background:rgba(255,255,255,.52);border:1px solid rgba(255,255,255,.75);padding:27px;border-radius:20px;margin-bottom:18px}.panel h2{font-size:21px;letter-spacing:-.04em;margin:0 0 24px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-bottom:22px}label{font-size:11px;font-weight:800;display:grid;gap:7px}input,textarea,select{width:100%;border:1px solid var(--line);border-radius:10px;background:rgba(255,255,255,.7);padding:11px;font:13px Manrope;color:var(--ink)}textarea{min-height:80px;resize:vertical}.full{grid-column:1/-1}.repeat-row{display:grid;grid-template-columns:1.2fr 1fr 80px 35px;gap:8px;margin-bottom:9px}.remove{border:0;border-radius:9px;background:#f3d3cb;font-size:20px;cursor:pointer}.add-row{margin:5px 8px 20px 0;background:none;border:0;color:#cf624b;font-weight:800;cursor:pointer}.project-edit{display:grid;grid-template-columns:1fr 1fr;gap:9px;border-bottom:1px solid var(--line);padding:0 0 18px;margin-bottom:18px}.project-edit .repeat-row,.project-edit label{grid-column:1/-1}.notice{padding:13px 16px;background:#def0be;border-radius:12px;margin-bottom:16px;font-size:13px;font-weight:700}.error{color:#aa3e31;background:#f6d8d3;padding:8px;border-radius:8px;font-size:12px}
@media(max-width:720px){.topbar{margin:10px;top:10px;padding:10px 12px}.nav-toggle{display:grid;gap:5px;border:0;background:#fff;width:34px;height:34px;border-radius:10px;place-content:center;margin-left:auto;margin-right:8px}.nav-toggle i{width:14px;height:1.5px;background:var(--ink);transition:.2s}.nav-toggle.is-open i:first-child{transform:translateY(3px) rotate(45deg)}.nav-toggle.is-open i:last-child{transform:translateY(-3px) rotate(-45deg)}.topbar nav{position:absolute;left:0;right:0;top:calc(100% + 8px);display:none;margin:0;padding:9px;flex-direction:column;border-radius:15px;background:rgba(255,255,255,.94);border:1px solid rgba(255,255,255,.9);box-shadow:0 14px 25px rgba(30,35,46,.11)}.topbar nav.is-open{display:flex}.topbar nav a{padding:11px}.admin-link{font-size:0;padding:0;width:24px;height:24px;display:grid;place-items:center;border-radius:6px;background:transparent;opacity:0.18;margin-left:auto}.admin-link span{display:inline;font-size:13px;margin:0;color:var(--muted)}.admin-link:hover{opacity:1;background:rgba(22,26,37,.05)}.hero{grid-template-columns:1fr;padding:74px 25px 55px;gap:40px;min-height:auto}.hero h1{font-size:clamp(42px,12vw,58px)}.hero-proof{display:none!important}.portrait-wrap{max-width:430px;width:100%;justify-self:center}.portrait-card{height:365px}.section{grid-template-columns:1fr;padding:76px 25px;gap:8px}.skill-list{grid-template-columns:1fr}.skill{min-height:165px}.skill h3{margin-top:34px}.project-grid{grid-template-columns:1fr}.project-visual{height:220px}.contact{margin:0 25px 30px;padding:42px 28px}.contact:after{font-size:70px;right:5%;top:25px}footer{padding:20px 25px 32px;gap:15px;flex-direction:column}.dashboard-body{display:block}.dashboard-body aside{position:static;width:auto;height:auto;padding:17px 22px;flex-direction:row;align-items:center;flex-wrap:wrap}.dashboard-body aside p,.dashboard-body aside hr{display:none}.dashboard{padding:30px 16px}.stat-grid,.form-grid,.project-fields,.project-edit{grid-template-columns:1fr}.repeat-row{grid-template-columns:1fr 1fr 60px 35px}.dash-head h1{font-size:31px}.project-info{flex-direction:column}}

/* Extended portfolio and dashboard */
.project{border-radius:20px;overflow:hidden;color:var(--ink)}.project-visual small{position:absolute;right:14px;top:14px;background:rgba(255,255,255,.86);padding:7px 9px;border-radius:8px;font:8px 'DM Mono';letter-spacing:.08em}.project-actions{display:flex;flex-direction:column;gap:8px;align-items:flex-end;flex-shrink:0}.project-link{display:flex;align-items:center;gap:7px;white-space:nowrap;text-decoration:none;color:var(--ink);font-size:11px;font-weight:800}.project-link b{display:grid;place-items:center;width:29px;height:29px;border-radius:50%;background:#f0f0ec;font-size:14px;color:var(--orange);transition:.2s}.project-link:hover b{background:var(--orange);color:#fff;transform:rotate(45deg)}.project-link.secondary b{background:#f0f0ec;color:var(--ink)}.project-link.secondary:hover b{background:var(--ink);color:#fff;transform:none}.project-info{gap:14px;align-items:center}.stat-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin:0 0 18px}.stat-card{background:rgba(255,255,255,.52);border:1px solid rgba(255,255,255,.75);border-radius:16px;padding:18px}.stat-card span{display:block;font:10px 'DM Mono';color:var(--muted);margin-bottom:10px}.stat-card b{font-size:17px;letter-spacing:-.04em}.panel h2{margin-bottom:8px}.panel-note{font-size:12px;line-height:1.6;color:var(--muted);margin:0 0 24px}.project-fields{display:grid;grid-template-columns:1fr 1fr;gap:9px}
@media(max-width:720px){.stat-grid,.project-fields{grid-template-columns:1fr}.project-info{flex-direction:column;align-items:flex-start}.project-actions{align-items:flex-start;margin-top:10px}}
