:root{color-scheme:light;--ink: #17201d;--muted: #66736e;--line: #dde6e1;--paper: #faf8f3;--panel: #ffffff;--soft: #edf4f1;--accent: #1b6d61;--accent-2: #c47a3d;--deep: #0d1714;--shadow: 0 24px 70px rgba(15, 28, 24, .12)}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;color:var(--ink);background:var(--paper);font-family:Inter,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}body.admin-open{background:#f3f5f1}a{color:inherit;text-decoration:none}button,input,textarea{font:inherit}.loading{min-height:100vh;display:grid;place-items:center;padding:24px;color:var(--ink);background:var(--paper);font-weight:800}.site-shell{min-height:100vh}.topbar{position:fixed;top:0;left:0;right:0;z-index:30;display:flex;align-items:center;justify-content:space-between;gap:24px;padding:18px clamp(18px,4vw,56px);color:#f8fbf8;background:#0d1714ad;border-bottom:1px solid rgba(255,255,255,.1);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px)}.brand{display:flex;align-items:center;gap:10px;min-width:150px;font-weight:800;letter-spacing:0}.brand-mark{display:grid;place-items:center;width:34px;height:34px;color:#fff;background:var(--accent);border-radius:8px}.nav{display:flex;align-items:center;justify-content:center;gap:clamp(12px,2vw,26px);flex-wrap:wrap;color:#f8fbf8d1;font-size:.92rem;font-weight:600}.nav a:hover{color:#fff}.top-actions{display:flex;align-items:center;gap:10px}.icon-btn,.admin-tab{display:inline-flex;align-items:center;justify-content:center;min-height:38px;border:1px solid rgba(255,255,255,.18);border-radius:8px;color:#fff;background:#ffffff14;cursor:pointer;transition:transform .16s ease,background .16s ease,border-color .16s ease}.icon-btn{width:40px}.admin-tab{padding:0 14px;font-weight:700}button.admin-tab{font:inherit}.icon-btn:hover,.admin-tab:hover{transform:translateY(-1px);background:#ffffff29;border-color:#ffffff57}.hero{position:relative;min-height:94vh;display:grid;align-items:end;padding:128px clamp(18px,5vw,72px) 64px;color:#f9fbf8;overflow:hidden;background:linear-gradient(90deg,#080f0df0,#080f0dbd 39%,#080f0d2e 73%),url(/assets/hero-workspace.png) center / cover no-repeat}.hero:after{content:"";position:absolute;inset:auto 0 0 0;height:18vh;background:linear-gradient(180deg,rgba(250,248,243,0),var(--paper));pointer-events:none}.hero-content{position:relative;z-index:1;width:min(770px,100%)}.eyebrow{display:inline-flex;align-items:center;gap:9px;margin:0 0 18px;color:#bfe2d8;font-size:.9rem;font-weight:800;text-transform:uppercase}.eyebrow:before{content:"";width:34px;height:2px;background:var(--accent-2)}h1,h2,h3,p{margin-top:0}.hero h1{max-width:760px;margin-bottom:22px;font-size:clamp(2.55rem,7vw,6.6rem);line-height:.94;letter-spacing:0}.hero-lede{max-width:680px;margin-bottom:30px;color:#f8fbf8d6;font-size:clamp(1.03rem,2vw,1.24rem);line-height:1.7}.hero-links,.card-actions,.social-grid{display:flex;gap:12px;flex-wrap:wrap}.btn{display:inline-flex;align-items:center;justify-content:center;gap:9px;min-height:44px;padding:0 17px;border:1px solid var(--line);border-radius:8px;color:var(--ink);background:#fff;font-weight:800;cursor:pointer}.btn.primary{color:#fff;border-color:var(--accent);background:var(--accent)}.btn.dark{color:#fff;border-color:#ffffff38;background:#ffffff1a}.btn.ghost{background:transparent}.section{padding:78px clamp(18px,5vw,72px)}.section.tight{padding-top:38px}.section.dark{color:#f8fbf8;background:var(--deep)}.section-head{display:grid;grid-template-columns:minmax(0,.8fr) minmax(280px,1.2fr);gap:clamp(24px,5vw,72px);align-items:end;max-width:1180px;margin:0 auto 34px}.section-label{color:var(--accent);font-size:.86rem;font-weight:800;text-transform:uppercase}.dark .section-label{color:#8dd5c6}.section h2{margin:8px 0 0;font-size:clamp(2rem,4vw,4.1rem);line-height:1.02;letter-spacing:0}.section-head p{margin-bottom:0;color:var(--muted);line-height:1.75}.dark .section-head p,.dark .muted{color:#f8fbf8ad}.about-grid,.project-grid,.blog-grid,.contact-grid,.admin-grid,.activity-grid{display:grid;gap:18px;max-width:1180px;margin:0 auto}.about-grid{grid-template-columns:1.1fr .9fr}.project-grid,.activity-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.blog-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.contact-grid{grid-template-columns:.9fr 1.1fr;align-items:start}.panel,.project-card,.blog-card,.timeline-item,.skill-group,.activity-card{background:var(--panel);border:1px solid var(--line);border-radius:8px;box-shadow:0 8px 22px #0f1c180d}.panel{padding:clamp(20px,3vw,30px)}.about-copy{color:#3d4a45;font-size:1.03rem;line-height:1.85}.stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-top:26px}.stat{padding:16px;border:1px solid var(--line);border-radius:8px;background:var(--soft)}.stat strong{display:block;margin-bottom:4px;color:var(--accent);font-size:1.55rem}.stat span{color:var(--muted);font-size:.84rem;font-weight:700}.info-list{display:grid;gap:14px;margin:0}.info-list div{display:grid;gap:5px}.info-list dt{color:var(--muted);font-size:.8rem;font-weight:800;text-transform:uppercase}.info-list dd{margin:0;color:var(--ink);font-weight:700;overflow-wrap:anywhere}.skill-wrap{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;max-width:1180px;margin:0 auto}.skill-group{padding:22px}.skill-group h3,.project-card h3,.blog-card h3,.activity-card h3{margin-bottom:14px;font-size:1.08rem}.chips{display:flex;flex-wrap:wrap;gap:8px}.chip{display:inline-flex;align-items:center;min-height:31px;padding:0 10px;color:#2f413b;background:var(--soft);border:1px solid #d7e7df;border-radius:999px;font-size:.86rem;font-weight:700}.timeline{max-width:940px;margin:0 auto;display:grid;gap:14px}.consistency-band{background:#f1f6f2}.stack-strip{display:flex;align-items:center;gap:10px;flex-wrap:wrap;max-width:1180px;margin:-12px auto 18px;padding:14px;border:1px solid #d5e4da;border-radius:8px;background:#fff}.stack-strip span{color:var(--muted);font-size:.82rem;font-weight:800;text-transform:uppercase}.stack-strip strong{display:inline-flex;align-items:center;min-height:32px;padding:0 11px;color:#fff;background:var(--deep);border-radius:999px;font-size:.86rem}.activity-card{padding:22px;overflow:hidden}.activity-top{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;margin-bottom:18px}.activity-label{display:block;margin-bottom:7px;color:var(--accent);font-size:.78rem;font-weight:800;text-transform:uppercase}.activity-stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin-bottom:18px}.activity-stats div{padding:11px;background:var(--soft);border:1px solid #d7e7df;border-radius:8px}.activity-stats strong,.activity-stats span{display:block}.activity-stats strong{margin-bottom:4px;color:var(--ink);font-size:.98rem}.activity-stats span{color:var(--muted);font-size:.72rem;font-weight:800;text-transform:uppercase}.heatmap{display:grid;grid-auto-flow:column;grid-template-rows:repeat(7,12px);grid-auto-columns:12px;gap:4px;max-width:100%;padding:4px 0 2px;overflow-x:auto;scrollbar-width:thin}.heat-cell{display:inline-block;width:12px;height:12px;border-radius:3px;border:1px solid rgba(23,32,29,.05);flex:0 0 auto}.level-0{background:#e5ece8}.level-1{background:#b9ddcb}.level-2{background:#72c59e}.level-3{background:#249d72}.level-4{background:#126042}.heat-legend{display:flex;align-items:center;justify-content:flex-end;gap:6px;margin-top:12px;color:var(--muted);font-size:.76rem;font-weight:700}.timeline-item{position:relative;padding:24px}.timeline-meta{color:var(--accent);font-size:.88rem;font-weight:800}.timeline-title{margin:7px 0 8px;font-size:1.28rem}.bullets{display:grid;gap:10px;margin:18px 0 0;padding:0;list-style:none;color:#40504a;line-height:1.65}.bullets li{position:relative;padding-left:19px}.bullets li:before{content:"";position:absolute;top:.75em;left:0;width:7px;height:7px;background:var(--accent-2);border-radius:99px}.project-card,.blog-card{padding:24px}.project-top{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-bottom:12px}.project-year{color:var(--accent);font-size:.84rem;font-weight:800}.project-card p,.blog-card p{color:var(--muted);line-height:1.7}.project-card .chips{margin:18px 0}.blog-card{display:grid;align-content:start}.blog-date{margin-bottom:11px;color:var(--accent-2);font-size:.82rem;font-weight:800;text-transform:uppercase}.social-card{display:grid;gap:6px;min-width:150px;padding:16px;border:1px solid rgba(255,255,255,.14);border-radius:8px;background:#ffffff0f}.social-card span:first-child{color:#8dd5c6;font-size:.78rem;font-weight:800;text-transform:uppercase}.social-card span:last-child{color:#fff;font-weight:800;overflow-wrap:anywhere}.contact-note{color:#f8fbf8b8;font-size:1.05rem;line-height:1.8}.footer{padding:24px clamp(18px,5vw,72px);color:#f8fbf894;background:var(--deep);border-top:1px solid rgba(255,255,255,.08)}.footer-inner{display:flex;align-items:center;justify-content:space-between;gap:14px;max-width:1180px;margin:0 auto;flex-wrap:wrap}.admin-shell{min-height:100vh;padding:32px clamp(16px,3vw,36px)}.admin-header{display:flex;justify-content:space-between;align-items:flex-start;gap:18px;max-width:1240px;margin:0 auto 22px}.admin-header h1{margin-bottom:7px;font-size:clamp(2rem,4vw,3.5rem);line-height:1}.admin-header p{margin:0;color:var(--muted)}.admin-actions{display:flex;gap:10px;flex-wrap:wrap;justify-content:flex-end}.admin-grid{grid-template-columns:300px minmax(0,1fr);align-items:start;max-width:1240px}.admin-menu{position:sticky;top:18px;display:grid;gap:8px;padding:12px;background:#fff;border:1px solid var(--line);border-radius:8px}.admin-menu button{min-height:42px;padding:0 12px;border:0;border-radius:8px;color:#40504a;background:transparent;text-align:left;font-weight:800;cursor:pointer}.admin-menu button.active,.admin-menu button:hover{color:#fff;background:var(--accent)}.editor-panel{padding:22px;background:#fff;border:1px solid var(--line);border-radius:8px;box-shadow:var(--shadow)}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.field{display:grid;gap:7px;margin-bottom:14px}.field.full{grid-column:1 / -1}.field label{color:#42514d;font-size:.82rem;font-weight:800}.field input,.field textarea{width:100%;border:1px solid #cfdcd6;border-radius:8px;color:var(--ink);background:#fbfdfb}.field input{min-height:42px;padding:0 12px}.field textarea{min-height:180px;padding:12px;line-height:1.55;resize:vertical}.array-editor textarea{min-height:520px;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,monospace;font-size:.86rem}.array-editor>textarea{width:100%;min-height:65vh;padding:14px;border:1px solid #cfdcd6;border-radius:8px;background:#fbfdfb;line-height:1.55;resize:vertical}.login-shell{display:grid;place-items:center}.login-card{display:grid;gap:14px;width:min(460px,100%);padding:28px;background:#fff;border:1px solid var(--line);border-radius:8px;box-shadow:var(--shadow)}.login-card h1{margin-bottom:8px;line-height:1}.login-card label{display:grid;gap:7px;color:#42514d;font-size:.82rem;font-weight:800}.login-card input{width:100%;min-height:42px;padding:0 12px;border:1px solid #cfdcd6;border-radius:8px;color:var(--ink);background:#fbfdfb}.error-copy,.note-copy{color:var(--muted);line-height:1.6}.error-copy{color:#9d2b22;font-weight:700}.save-row{display:flex;justify-content:space-between;align-items:center;gap:14px;margin-top:16px;flex-wrap:wrap}.status{color:var(--accent);font-weight:800}.toast{position:fixed;right:18px;bottom:18px;z-index:50;max-width:min(360px,calc(100vw - 36px));padding:14px 16px;color:#fff;background:var(--deep);border-radius:8px;box-shadow:var(--shadow);transform:translateY(24px);opacity:0;pointer-events:none;transition:.18s ease}.toast.show{transform:translateY(0);opacity:1}@media(max-width:940px){.topbar{align-items:flex-start;flex-wrap:wrap}.nav{order:3;width:100%;justify-content:flex-start}.section-head,.about-grid,.contact-grid,.admin-grid{grid-template-columns:1fr}.project-grid,.activity-grid,.blog-grid,.skill-wrap{grid-template-columns:repeat(2,minmax(0,1fr))}.admin-menu{position:static;grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:660px){.hero{min-height:88vh;padding-top:154px;background:linear-gradient(90deg,#080f0df0,#080f0dc2),url(/assets/hero-workspace.png) center / cover no-repeat}.brand{min-width:auto}.nav{gap:12px;font-size:.84rem}.project-grid,.activity-grid,.blog-grid,.skill-wrap,.stats,.form-grid,.activity-stats{grid-template-columns:1fr}.activity-top,.admin-header{display:grid}.admin-actions{justify-content:flex-start}}
