:root{--bg:#eef4f7;--panel:#f9fcfd;--border:#55708424;--text:#587082;--text-strong:#1d3140;--muted:#8a9dac;--accent:#4f88ad;--line:#4f88ad57;--font-body:"Avenir Next", "Segoe UI", "Trebuchet MS", "Helvetica Neue", sans-serif;--font-display:"Gill Sans", "Avenir Next Condensed", "Arial Narrow", sans-serif;color:var(--text);font:16px/1.6 var(--font-body);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;scroll-behavior:smooth;background:radial-gradient(circle at top,#b1d6ec6b,#0000 30%),linear-gradient(#fbfeff,#f3f8fb 20%,#edf3f7 100%)}*{box-sizing:border-box}html{scroll-behavior:smooth}body{background:var(--bg);min-width:320px;min-height:100vh;margin:0}body:before{content:"";pointer-events:none;mix-blend-mode:normal;background:linear-gradient(#ffffff57,#ffffff14),radial-gradient(circle at 20% 10%,#91c6e524,#0000 22%);position:fixed;inset:0}a,button,input,textarea{font:inherit}img,svg{display:block}#root{width:min(100%,1340px);min-height:100vh;margin:0 auto;padding:1rem}.page-shell{border:1px solid var(--border);background:linear-gradient(180deg, #ffffffb8, #ffffff61), var(--bg);border-radius:2rem;min-height:calc(100vh - 2rem);position:relative;overflow:hidden;box-shadow:0 24px 80px #47657c14,inset 0 1px #ffffffb8}.page-shell:before,.page-shell:after{content:"";pointer-events:none;position:absolute;inset:0}.page-shell:before{background:linear-gradient(90deg,#ffffff42,#0000 8% 92%,#fff3),linear-gradient(#ffffff38,#0000 7% 93%,#ffffff1f)}.page-shell:after{opacity:.38;background-image:radial-gradient(circle at 1px 1px,#749bb514 1px,#0000 0);background-size:28px 28px}::selection{color:var(--text-strong);background:#4f88ad3d}.page-shell{width:min(100%,1220px);margin:0 auto;padding:1.1rem 1.1rem 2.75rem}.topbar{justify-content:space-between;align-items:center;gap:1.25rem;margin-bottom:3.5rem;display:flex}.brand{color:var(--text-strong);font-family:var(--font-display);letter-spacing:-.05em;margin:0;font-size:2rem;font-weight:700;text-decoration:none}.brand span{color:var(--accent)}.nav{align-items:center;gap:2rem;display:flex}.nav a,.secondary-link{color:var(--text);text-decoration:none;transition:color .2s,transform .2s}.nav a:hover,.secondary-link:hover,.social-links a:hover,.icon-button:hover{color:var(--text-strong);transform:translateY(-1px)}.icon-button,.social-links a{border:1px solid var(--border);width:3rem;height:3rem;color:var(--text-strong);background:#ffffff85;border-radius:999px;justify-content:center;align-items:center;transition:transform .2s,border-color .2s,background .2s;display:inline-flex;box-shadow:0 10px 30px #607e9114}.icon-button svg,.social-links svg,.project-preview-copy svg{width:1.4rem;height:1.4rem}.icon-button:hover,.social-links a:hover{border-color:var(--accent);background:#f7fbfdf2}.hero-section{grid-template-columns:minmax(0,1fr) .92fr;align-items:center;gap:3rem;margin-bottom:4rem;padding:2rem 1rem 1rem;display:grid}.eyebrow{color:var(--text-strong);margin-bottom:.75rem;font-size:1.4rem}.hero-copy h1{color:var(--accent);font-family:var(--font-display);letter-spacing:-.07em;margin:0;font-size:clamp(4rem,9vw,6rem);line-height:.92}.hero-text{max-width:34rem;margin:1.4rem 0 2rem;font-size:1.05rem}.hero-actions{flex-wrap:wrap;align-items:center;gap:1.25rem;display:flex}.primary-link,.contact-form button{appearance:none;border:none;border-bottom:2px solid var(--accent);color:var(--text-strong);font-family:var(--font-display);letter-spacing:.06em;text-transform:uppercase;cursor:pointer;background:0 0;padding:0 0 .35rem;font-size:1rem;font-weight:700;text-decoration:none;transition:color .2s,border-color .2s}.primary-link:hover,.contact-form button:hover{color:var(--accent)}.portrait-card{cursor:pointer;min-height:32rem;position:relative}.portrait-glow{filter:blur(10px);opacity:.82;will-change:transform, opacity;background:radial-gradient(circle,#95c7e347,#0000 70%);border-radius:999px;width:14rem;height:14rem;position:absolute;inset:10% 8% auto auto}.portrait-frame{background:radial-gradient(circle at 30% 18%,#ffffff7a,#0000 28%),linear-gradient(#dbeaf3 0%,#c5dbe8 100%);border-radius:1rem;width:min(100%,31rem);min-height:32rem;margin-left:auto;position:relative;overflow:hidden;box-shadow:inset 0 0 0 1px #ffffff38,0 18px 40px #5c7e9729}.portrait-badge{z-index:2;color:#dfeeff;font-family:var(--font-display);letter-spacing:.08em;will-change:transform, background-color;background:#121218b3;border-radius:999px;padding:.55rem .8rem;font-size:.95rem;position:absolute;top:1.25rem;right:1.25rem}.portrait-image{object-fit:cover;object-position:center 28%;will-change:transform;width:100%;height:100%;position:absolute;inset:0}.content-section{margin-bottom:4.75rem}.section-heading{grid-template-columns:auto 1fr;align-items:center;gap:1.5rem;margin-bottom:1.4rem;display:grid}.section-heading h2{color:var(--accent);font-family:var(--font-display);letter-spacing:-.06em;text-transform:lowercase;margin:0;font-size:clamp(2.4rem,4vw,3.9rem);line-height:.95}.section-heading span{background:linear-gradient(90deg, var(--line), #b1d2ef24);height:2px}.section-body{padding-left:clamp(0rem,5vw,4.7rem)}.lead{max-width:48rem;margin:0 0 2.5rem;font-size:1.08rem}.skills-grid,.projects-grid{gap:1.5rem;display:grid}.skills-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.skill-card{border:1px solid var(--border);background:linear-gradient(#fffffff0,#f4fafde0);border-radius:.85rem;padding:1.4rem 1.5rem;box-shadow:0 18px 34px #607e9114}.skill-card h3,.project-meta h3{color:var(--text-strong);font-family:var(--font-display);letter-spacing:-.04em;margin:0 0 .5rem;font-size:2rem}.skill-card p,.project-meta p,.project-stack{margin:0}.projects-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.project-card{background:linear-gradient(#fffffff0,#f4f9fce6);border:1px solid #6e8ea41f;border-radius:.95rem;gap:1rem;padding:1rem;display:grid;box-shadow:0 20px 45px #5f7c8f17,inset 0 1px #ffffffa6}.project-link{color:inherit;text-decoration:none;transition:transform .24s;display:block}.project-link:hover{transform:translateY(-5px)}.project-link-static{cursor:default}.project-link-static:hover{transform:none}.project-preview{background:linear-gradient(145deg,#eef7fb 0%,#e1eef5 52%,#d5e6f0 100%);border:1px solid #92b5cc38;border-radius:.75rem;grid-template-columns:1fr;min-height:15rem;display:grid;overflow:hidden;box-shadow:inset 0 1px #ffffffb8,0 16px 34px #6180951f}.project-preview-copy{color:var(--text-strong);background:linear-gradient(#ffffff57,#fff0);flex-direction:row;justify-content:space-between;align-items:flex-start;gap:1rem;padding:1rem 1.1rem .85rem;display:flex}.project-preview-copy p{font-family:var(--font-display);font-size:1.55rem;line-height:.95}.project-preview-copy span{color:#1d31409e;max-width:11rem;font-size:.83rem;display:inline-block}.project-preview-window{background:#fbfdff;border:1px solid #7798af24;border-radius:.55rem;min-height:12.5rem;margin:0 1rem 1rem;overflow:hidden;box-shadow:0 14px 28px #5e7a8d1a}.project-preview-image{object-fit:cover;object-position:top center;background:#fbfdff;width:100%;height:calc(100% - 1.45rem);transition:transform .35s;display:block}.project-link:hover .project-preview-image{transform:scale(1.02)}.window-bar{background:#edf5f9;gap:.35rem;padding:.5rem .65rem;display:flex}.window-bar span{background:#b8cfde;border-radius:999px;width:.45rem;height:.45rem}.window-hero{background:linear-gradient(90deg,#4134c826,#4134c808),linear-gradient(120deg,#d7dced,#f5f7ff);border-radius:.45rem;height:4rem;margin:.8rem .9rem}.window-lines{gap:.4rem;padding:0 .9rem;display:grid}.window-lines span{background:#d8dbea;border-radius:999px;height:.45rem}.window-stack{gap:.4rem;padding:1rem .9rem .9rem;display:flex}.window-stack i{background:linear-gradient(135deg,#ffb357,#ff6c4c);border-radius:.35rem;width:1.25rem;height:1.25rem}.window-stack i:nth-child(2){background:linear-gradient(135deg,#4eb3ff,#3678ff)}.window-stack i:nth-child(3){background:linear-gradient(135deg,#ffe066,#ff9f1c)}.window-stack i:nth-child(4){background:linear-gradient(135deg,#98f5a2,#22c55e)}.project-stack{color:var(--muted);text-transform:uppercase;letter-spacing:.14em;margin-bottom:.75rem;font-size:.78rem}.project-meta{gap:.75rem;padding:.2rem .2rem 0;display:grid}.store-badges{flex-wrap:wrap;gap:.9rem;margin-top:1.2rem;display:flex}.store-badge{color:#fff;background:#050505;border:1.5px solid #ffffffb3;border-radius:.5rem;align-items:center;gap:.9rem;min-width:12rem;padding:.56rem .82rem;text-decoration:none;transition:transform .2s,box-shadow .2s,border-color .2s;display:inline-flex;box-shadow:inset 0 0 0 1px #ffffff1f,0 10px 24px #0000002e}.store-badge:hover{border-color:#fffffff2;transform:translateY(-2px);box-shadow:inset 0 0 0 1px #ffffff29,0 14px 30px #0000003d}.store-badge-icon{flex:none;justify-content:center;align-items:center;display:inline-flex}.store-badge-app-store .store-badge-icon{width:1.95rem;height:1.95rem}.store-badge-google-play .store-badge-icon{width:2.15rem;height:2.15rem}.store-badge-icon svg{width:100%;height:100%;display:block}.store-badge-copy{gap:.05rem;line-height:1;display:grid}.store-badge-eyebrow{letter-spacing:.04em;color:#ffffffe6;text-transform:none;font-size:.62rem;font-weight:500}.store-badge-title{letter-spacing:-.04em;color:#fff;font-size:1.38rem;font-weight:600}.contact-layout{max-width:46rem}.contact-copy{max-width:40rem}.contact-form{gap:1.75rem;display:grid}.contact-form>div{border-bottom:1px solid #dfeeff2e;gap:.8rem;padding-bottom:.8rem;display:grid}.contact-form span{color:var(--muted);letter-spacing:.16em;text-transform:uppercase;font-size:.72rem}.contact-form a,.contact-form p{color:var(--text-strong);font:inherit;margin:0;padding:.1rem 0 0;text-decoration:none}.footer{justify-content:space-between;align-items:center;gap:1rem;padding:1rem 0 0;display:flex}.footer-brand{font-size:2.15rem}.social-links{gap:.9rem;display:flex}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}@media (width<=980px){.topbar,.hero-section,.footer{grid-template-columns:1fr}.topbar,.footer,.hero-section{display:grid}.topbar{justify-content:initial}.nav{flex-wrap:wrap;gap:1rem 1.5rem}.hero-section,.projects-grid,.skills-grid{grid-template-columns:1fr}.portrait-frame{margin:0 auto}.section-body{padding-left:0}.project-preview{grid-template-columns:1fr}.project-preview-window{margin:0 1rem 1rem}.store-badge{justify-content:flex-start;width:100%;min-width:0}}@media (width<=640px){.page-shell{padding-inline:.9rem}.hero-section{gap:2rem;padding-inline:0}.portrait-card,.portrait-frame{min-height:27rem}.portrait-image{object-position:center 24%}.section-heading{grid-template-columns:1fr;gap:.85rem}.footer{justify-items:start}}
