
/* Modern portfolio theme; the visitor counter and typing game retain their character. */
:root{--bg:#f5f7fb;--ink:#17243b;--ink-dim:#64748b;--rule:#dbe3ef;--rule-soft:#e8edf5;--link:#244d85;--link-hover:#142f56;--link-visited:#244d85;--title-bg:#18365f;--title-bg2:#244d85;--face:#fff;--font-title:var(--font-body);--font-title-lg:var(--font-body)}
body{font-size:16px;line-height:1.8}a{text-underline-offset:4px}a:focus-visible,button:focus-visible{outline:3px solid #6ba2ef;outline-offset:4px}
.page{max-width:1080px;padding:48px 40px 72px}.page--wide{max-width:1200px}
.page-title{text-align:left;font-weight:750;font-size:2rem;letter-spacing:-.05em;margin:0 0 24px}
.section-head{justify-content:flex-start;margin:32px 0 16px}.section-title{text-align:left;font-weight:700;font-size:1.3rem;letter-spacing:-.02em}.section-title .star{display:none}
.panel{border:1px solid var(--rule);border-radius:16px;box-shadow:none;padding:28px}.prose{max-width:76ch}.prose p{margin-bottom:1.5em}.prose-head{border:0!important;font-weight:700!important;font-size:1.15rem!important;margin-top:2em!important}.prose-head:before{display:none!important}
.btn,.btn-icon{border:1px solid var(--rule);border-radius:8px;background:#fff;font-family:var(--font-body);font-weight:600;padding:10px 16px;color:var(--ink);transition:background .15s,border-color .15s}.btn:hover,.btn-icon:hover{background:#edf2f9;border-color:#9fb4d0;color:var(--ink)}.btn:active,.btn-icon:active{border-color:#7189a9}.btn[disabled]{opacity:.5}.btn-icon{padding:10px;min-width:40px;min-height:40px}.portfolio-actions .btn:first-child{background:var(--title-bg);color:#fff;border-color:var(--title-bg)}
input,textarea,select{border:1px solid var(--rule);border-radius:7px;padding:10px;font-family:var(--font-body)}
.portfolio-hero{padding:0 0 36px;margin:0 0 36px;border:0;border-bottom:1px solid var(--rule);background:transparent}.portfolio-hero h2{font-size:clamp(2rem,4vw,3.2rem);line-height:1.3;letter-spacing:-.055em;margin:14px 0 24px}.portfolio-hero>p{color:var(--ink-dim)}.eyebrow{color:#526b8c;font-weight:650;letter-spacing:.03em;font-size:.78rem}.portfolio-actions{gap:10px;margin:24px 0}.portfolio-facts{border:0;gap:36px;padding-top:12px}.portfolio-facts span{color:var(--ink-dim)}.portfolio-facts strong{font-size:1.4rem;color:var(--ink)}
.work-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin:20px 0 42px}.work-card{padding:24px;background:#fff;border:1px solid var(--rule);border-radius:14px}.work-card h3{font-size:1.15rem;margin:10px 0}.work-card p{font-size:.9rem;color:var(--ink-dim);line-height:1.75}.work-card .work-role{color:var(--title-bg);font-weight:650}.work-card .eyebrow{font-size:.75rem}
.project-grid{gap:24px}.project-card{border:1px solid var(--rule);border-radius:16px;box-shadow:0 6px 24px #17243b05}.project-card img{height:300px;background:#eaf0f7;border:0;padding:14px}.project-copy{padding:26px}.project-copy h2{font-size:1.35rem;letter-spacing:-.03em}.project-copy p{font-size:.95rem;color:var(--ink-dim)}.project-copy .project-lead{color:var(--ink);font-weight:600}.store-note{background:#edf2f8;border:0;border-radius:10px;padding:18px;color:var(--ink-dim);margin-top:32px}
.profile-aside{flex-basis:160px!important}#profile-img{width:132px!important;height:132px!important;border:1px solid var(--rule)!important}.profile-name{font-size:.85rem!important;color:var(--ink-dim)}
.dlg{border:0;border-radius:14px;box-shadow:0 24px 80px #10254133}.win{border:0;box-shadow:none;background:#fff}.win-title{background:var(--title-bg);padding:14px 18px}.win-body{background:#fff;padding:24px}.dlg-close{border:0;background:transparent;color:inherit}
.nav-brand{display:block;padding:28px 24px 20px;text-decoration:none;color:var(--ink)!important}.nav-brand strong{display:block;font-size:1.2rem;letter-spacing:-.04em}.nav-brand small{display:block;color:var(--ink-dim);font-size:.78rem;margin-top:2px}
body.nav-page{background:#fff}ul.nav{padding:0 14px 24px}ul.nav li+li{margin-top:3px}ul.nav a{display:block;white-space:normal;font-size:.88rem;text-decoration:none;padding:10px 12px;border-radius:8px;color:var(--ink-dim)}ul.nav a:hover,ul.nav a[aria-current=page]{background:#edf2f8;color:var(--title-bg)}.nav-dot{display:none}.nav-family-header{padding:18px 12px 4px!important;margin-top:16px!important;border-color:var(--rule)}.nav-group-label{font-size:.75rem}.nav-group-head .btn-icon{padding:4px;min-width:28px;min-height:28px;font-size:.75rem}.nav-secondary a{font-size:.8rem}
#nav-stat{margin:16px 20px 0!important;border:0!important;font-size:.7rem!important;background:transparent!important;justify-content:flex-start!important}.counter{font-family:var(--font-mono)}
.contact-card{max-width:720px;padding:36px;background:#fff;border:1px solid var(--rule);border-radius:16px}.contact-card h2{font-size:1.8rem;letter-spacing:-.04em}.contact-card p{color:var(--ink-dim)}
@media(min-width:300px){body.nav-page ul.nav{justify-content:flex-start;gap:4px;padding:0 16px 12px;flex-wrap:nowrap;overflow-x:auto}body.nav-page ul.nav li{flex-shrink:0}body.nav-page .nav-brand{padding:12px 20px 4px}body.nav-page .nav-brand small{display:none}body.nav-page #nav-stat,body.nav-page .nav-secondary,body.nav-page .nav-family-header,body.nav-page .nav-family-dynamic{display:none!important}body.nav-page ul.nav a{padding:8px 10px;font-size:.82rem}}
@media(max-width:800px){.work-grid{grid-template-columns:1fr}.work-card{padding:20px}.project-grid{grid-template-columns:1fr}}
@media(max-width:640px){.page{padding:30px 20px 52px}.page-title{font-size:1.55rem}.portfolio-hero{padding:0 0 28px}.portfolio-hero h2{font-size:2rem}.portfolio-facts{gap:24px}.portfolio-actions .btn{flex:initial;font-size:.85rem}.project-card img{height:280px;max-height:none;object-fit:contain}.project-copy{padding:22px}.panel{padding:22px}.profile-aside{align-self:flex-start!important;display:flex;gap:16px;align-items:center}.profile-aside #profile-img{width:64px!important;height:64px!important;margin:0}.contact-card{padding:24px}}

.portfolio-hero h2,.work-card,.project-copy{word-break:keep-all;overflow-wrap:break-word}
@media(min-width:300px){html:has(body.nav-page){overflow-y:hidden}}

.experience-note{font-size:.85rem;color:var(--ink-dim);padding:18px;background:#eaf0f7;border-radius:10px;margin-bottom:28px}
.experience-item{background:#fff;border:1px solid var(--rule);border-radius:12px;margin:12px 0;overflow:hidden}.experience-item summary{display:flex;gap:24px;align-items:center;padding:22px;cursor:pointer;list-style:none}.experience-item summary::-webkit-details-marker{display:none}.experience-date{flex:0 0 155px;color:var(--ink-dim);font-size:.8rem}.experience-date small,.experience-heading small{display:block;margin-top:4px}.experience-heading{flex:1;min-width:0}.experience-heading strong{font-size:1rem}.experience-heading small{color:var(--ink-dim);font-size:.82rem}.experience-kind{font-size:.72rem;background:#edf2f8;border-radius:6px;padding:4px 8px;white-space:nowrap}.experience-item summary:after{content:'+';color:var(--title-bg);font-size:1.3rem}.experience-item[open] summary:after{content:'−'}.experience-item[open] summary{border-bottom:1px solid var(--rule)}.experience-detail{padding:6px 22px 22px}.experience-detail dl>div{display:grid;grid-template-columns:110px 1fr;gap:16px;margin-top:14px;font-size:.88rem}.experience-detail dt{font-weight:650}.experience-detail dd{margin:0;color:var(--ink-dim);overflow-wrap:anywhere}
@media(max-width:640px){.experience-item summary{flex-wrap:wrap;gap:8px;padding:18px}.experience-date{flex-basis:100%}.experience-date small{display:inline;margin-left:10px}.experience-heading{flex-basis:100%}.experience-detail{padding:4px 18px 18px}.experience-detail dl>div{grid-template-columns:1fr;gap:4px}.experience-kind{margin-top:4px}}
