:root{--soft-pink:#fde1ea;--light-pink:#f9c9d8;--very-light-pink:#fff4fa;--dark-purple:#5a3e5f;--plum:#725276;--lavender-purple:#b89ccf;--pale-lavender:#e6d8f3;--charcoal:#4b454f;--muted-gray:#6e6873;--gray:#9b949e;--light-gray:#d9d3da;--background:#f8f6f9;--white:#fff;font-synthesis:none;color:var(--charcoal);background:var(--background);text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;font-family:Tahoma,Verdana,Arial,sans-serif}*{box-sizing:border-box}body{margin:0}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit;cursor:pointer}a{color:var(--accent);text-underline-offset:3px;text-decoration:none}a:hover{text-decoration:underline}button:focus-visible,a:focus-visible{outline:2px solid var(--muted-gray);outline-offset:4px}::selection{background:var(--soft-pink);color:var(--dark-purple)}h1,h2,h3,p{margin-top:0}h1,h2,h3{color:var(--heading)}p{margin-bottom:13px}p:last-child{margin-bottom:0}em{font-style:italic}svg{vertical-align:middle}.site{--bg:var(--background);--panel:var(--white);--panel-2:var(--very-light-pink);--heading:var(--dark-purple);--text:var(--charcoal);--muted:var(--muted-gray);--accent:var(--plum);--border:var(--light-gray);--header-fill:var(--soft-pink);--lavender-fill:var(--pale-lavender);min-height:100vh;color:var(--text);background-color:var(--bg);--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;background-image:url(/pattern.svg);padding:24px 0 0;font-size:12px;line-height:1.7}.site.theme-dark{--bg:var(--charcoal);--panel:var(--charcoal);--panel-2:var(--dark-purple);--heading:var(--very-light-pink);--text:var(--white);--muted:var(--light-gray);--accent:var(--pale-lavender);--border:var(--gray);--header-fill:var(--dark-purple);--lavender-fill:var(--plum);--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;background-image:none}.shell{width:min(1080px,100% - 48px);margin-inline:auto}.skip-link{background:var(--panel);z-index:100;border:1px solid var(--gray);padding:10px 16px;position:absolute;top:-100px;left:16px}.skip-link:focus{top:8px}.site-header{border:1px solid var(--border);background:var(--panel);border-radius:5px 5px 3px 3px;overflow:hidden}.header-utility{background:var(--panel-2);border-bottom:1px solid var(--border);min-height:27px;color:var(--muted);justify-content:space-between;align-items:center;padding:2px 20px;font-size:10px;display:flex}.header-content{align-items:center;gap:16px;min-height:86px;padding:12px 24px;display:flex}.brand{color:var(--heading);letter-spacing:-1.5px;white-space:nowrap;align-items:center;gap:11px;font:700 33px Georgia,Times New Roman,serif;display:inline-flex}.brand:hover{text-decoration:none}.brand-icon{width:47px;height:44px;color:var(--plum);background:var(--soft-pink);border:1px solid var(--gray);border-radius:3px;place-items:center;font:40px/1 Georgia,serif;display:inline-grid}.brand-space{margin-left:5px;font-style:italic;font-weight:400}.brand-star{color:var(--lavender-purple);vertical-align:top;margin-left:6px;font:27px Georgia,serif}.header-tagline{color:var(--muted);margin-left:auto;font:11px/1.6 Courier New,monospace}.header-actions{gap:8px;margin-left:10px;display:flex}.icon-button{border:1px solid var(--border);background:var(--panel-2);width:31px;height:31px;color:var(--heading);border-radius:3px;place-items:center;font-size:18px;display:grid}.icon-button:hover{border-color:var(--gray)}.mobile-menu{display:none}.nav{background:var(--header-fill);border-top:1px solid var(--border);align-items:stretch;min-height:39px;padding:0 11px;display:flex}.nav a{min-height:39px;color:var(--heading);border-inline:1px solid #0000;justify-content:center;align-items:center;gap:7px;padding:4px 19px;font-size:12px;font-weight:700;display:inline-flex}.nav a span{font-size:15px;font-weight:400}.nav a:hover{background:var(--panel-2);text-decoration:none}.nav a.active{background:var(--panel);border-inline-color:var(--border)}.nav-note{color:var(--accent);margin:auto 11px auto auto;font:10px Courier New,monospace}.page-location{color:var(--muted);justify-content:space-between;gap:12px;padding:13px 1px;font-size:10px;display:flex}.page-location strong{color:var(--heading);font-weight:400}.profile-layout{grid-template-columns:298px minmax(0,1fr);align-items:start;gap:20px;display:grid}.profile-sidebar,.route-page{gap:16px;min-width:0;display:grid}.page-main{min-width:0}.page-main:focus{outline:none}.retro-box{background:var(--panel);border:1px solid var(--border);border-radius:3px;min-width:0}.box-heading{background:var(--header-fill);border-bottom:1px solid var(--border);border-radius:2px 2px 0 0;justify-content:space-between;align-items:center;gap:10px;min-height:33px;padding:5px 12px;display:flex}.box-heading h2{letter-spacing:.1px;margin:0;font:700 12px/1.5 Tahoma,Verdana,sans-serif}.box-heading h2>span{margin-right:4px;font-size:15px}.box-heading>a{white-space:nowrap;font-size:10px}.box-body{padding:16px}.profile-sidebar .box-body{padding:14px}.profile-sidebar .box-heading{background:var(--lavender-fill)}.profile-name{justify-content:space-between;align-items:center;margin-bottom:7px;font:700 28px/1.2 Georgia,serif;display:flex}.profile-name span{color:var(--plum);font-size:24px;font-weight:400}.profile-quote{color:var(--accent);max-width:240px;font:italic 12px/1.5 Georgia,serif}.profile-intro{grid-template-columns:108px minmax(0,1fr);align-items:start;gap:13px;margin-top:17px;display:grid}.profile-avatar{object-fit:cover;border:1px solid var(--gray);border-radius:2px;width:108px;height:118px}.profile-role{margin-bottom:7px;font-size:11px;font-weight:700;line-height:1.6}.profile-location{color:var(--muted);margin-bottom:8px;font-size:10px;line-height:1.5}.online-label{color:var(--accent);font:700 10px/1.6 Courier New,monospace}.online-label>span{animation:6s ease-in-out infinite gentle-turn;display:inline-block}.profile-status{border-top:1px dotted var(--gray);margin:16px 0 12px;padding-top:10px;font-size:10px}.profile-status>div{gap:6px;margin:2px 0;display:flex}.profile-status dt{color:var(--heading);font-weight:700}.profile-status dd{margin:0}.profile-url{color:var(--muted);text-align:center;border:1px solid var(--border);background:var(--panel-2);padding:7px 5px;font-size:9px}.contacting-box .box-body{padding-block:12px}.profile-links{grid-template-columns:repeat(2,minmax(0,1fr));gap:9px 12px;font-size:11px;font-weight:700;display:grid}.profile-links a{align-items:center;gap:7px;display:flex}.profile-links span{color:var(--accent);font-size:16px}.interests-box .box-body{padding:5px}.info-table{margin:0;font-size:10px}.info-table>div{border-bottom:1px solid var(--border);grid-template-columns:86px minmax(0,1fr);display:grid}.info-table>div:last-child{border:0}.info-table dt{background:var(--panel-2);color:var(--heading);border-right:1px solid var(--border);padding:9px 7px;font-weight:700}.info-table dd{margin:0;padding:9px}.info-table dd a:not(.badge){margin-top:4px;display:block}.muted{color:var(--muted)}.working-box p{margin-top:6px;font-size:11px}.working-project{justify-content:space-between;font-size:12px;font-weight:700;display:flex}.badge,.tag{border:1px solid var(--border);background:var(--panel-2);min-height:22px;color:var(--accent);border-radius:2px;justify-content:center;align-items:center;padding:2px 7px;font:10px/1.5 Tahoma,sans-serif;display:inline-flex}a.badge:hover{border-color:var(--gray);background:var(--lavender-fill);text-decoration:none}.sidebar-stickers{flex-wrap:wrap;justify-content:center;gap:8px;padding-top:2px;display:flex}.sidebar-stickers .badge{border-color:var(--gray);background:var(--lavender-fill);padding:5px 8px;font:700 9px/1.4 Courier New,monospace}.sidebar-stickers .badge+.badge{background:var(--header-fill)}.welcome-box{isolation:isolate;background:var(--panel-2);border:1px solid var(--border);border-radius:3px;padding:21px 24px 17px;position:relative;overflow:hidden}.welcome-top{color:var(--accent);justify-content:space-between;align-items:center;display:flex}.pixel-label{letter-spacing:2px;font:700 10px/1.4 Courier New,monospace}.welcome-top>span+span{letter-spacing:6px;font-size:17px}.welcome-box h1{z-index:1;letter-spacing:-.9px;margin:13px 0 11px;font:clamp(25px,3vw,34px)/1.25 Georgia,serif;position:relative}.welcome-box h1 em{color:var(--accent)}.welcome-box>p{z-index:1;font-size:11px;position:relative}.welcome-bottom{z-index:1;border-top:1px dotted var(--gray);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-top:17px;padding-top:13px;display:flex;position:relative}.welcome-bottom>span{color:var(--muted);font:9px Courier New,monospace}.welcome-bottom .badge{background:var(--panel);font-size:10px}.welcome-spark{color:var(--lavender-fill);z-index:-1;font:115px Georgia,serif;position:absolute;top:35px;right:14px;transform:rotate(12deg)}.blurb-box h3{margin-bottom:6px;font-size:12px}.blurb-box p{font-size:12px;line-height:1.85}.blurb-bottom{justify-content:space-between;align-items:center;gap:10px;display:flex}.blurb-bottom p{margin:0;font-size:10px}.text-link{align-items:center;gap:5px;font-size:11px;font-weight:700;display:inline-flex}.blurb-bottom .text-link{font-size:10px}.box-intro{color:var(--muted);margin-bottom:13px;font-size:11px}.projects-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;display:grid}.project-card{border:1px solid var(--border);background:var(--panel);border-radius:3px;min-width:0;overflow:hidden}.project-art{border-bottom:1px solid var(--border);background:var(--lavender-fill);height:167px;display:block;overflow:hidden}.project-art:hover{text-decoration:none}.project-art>img{object-fit:cover;width:100%;height:100%}.project-art-content{background:var(--pale-lavender);height:100%;color:var(--dark-purple);place-items:center;padding:19px 22px 28px;display:grid;position:relative}.project-art-content.art-1,.project-art-content.art-3{background:var(--soft-pink)}.mini-window{border:1px solid var(--gray);background:var(--white);border-radius:3px;width:100%;max-width:254px;font-family:Courier New,monospace;position:relative;box-shadow:3px 3px #9b949e}.mini-titlebar{background:var(--very-light-pink);border-bottom:1px solid var(--gray);justify-content:space-between;align-items:center;padding:3px 6px;font-size:6px;line-height:1.7;display:flex}.mini-titlebar>span:first-child{letter-spacing:2px;font-size:5px}.mini-titlebar>span:last-child{font-size:8px}.mini-workspace{grid-template-columns:33px 1fr;min-height:82px;display:grid}.mini-sidebar{border-right:1px solid var(--light-gray);background:var(--very-light-pink);padding:12px 5px}.mini-sidebar i{background:var(--pale-lavender);height:3px;margin-bottom:8px;display:block}.mini-workspace-body{padding:8px}.mini-workspace-body strong{margin-bottom:5px;font-size:7px;display:block}.mini-tiles{grid-template-columns:repeat(3,1fr);gap:5px;display:grid}.mini-tiles>span{background:var(--pale-lavender);flex-direction:column;align-items:center;padding:4px 1px;font-size:14px;line-height:1.2;display:flex}.mini-tiles>span:nth-child(2){background:var(--soft-pink)}.mini-tiles>span:nth-child(3){background:var(--very-light-pink)}.mini-tiles small{margin-top:2px;font-size:5px}.mini-line{background:var(--light-gray);width:85%;height:2px;margin-top:5px}.mini-line.short{width:60%;margin-top:3px}.art-star{color:var(--plum);font-size:24px;position:absolute}.star-one{top:3px;left:8px}.star-two{font-size:17px;bottom:15px;right:6px}.art-caption{text-align:center;letter-spacing:1px;font:7px/1.5 Courier New,monospace;position:absolute;bottom:5px;left:0;right:0}.mini-data{grid-template-columns:1.2fr 1fr;gap:7px;height:82px;padding:9px 11px;display:grid;position:relative}.mini-code{flex-direction:column;font-size:6px;line-height:2.1;display:flex}.mini-code span:first-child{color:var(--muted-gray)}.mini-chart{border-left:1px solid var(--gray);border-bottom:1px solid var(--gray);align-self:center;align-items:flex-end;gap:3px;height:44px;padding:2px 4px 0;display:flex}.mini-chart i{background:var(--lavender-purple);flex:1}.mini-chart i:nth-child(2n){background:var(--light-pink)}.chart-axis{font-size:5px;position:absolute;bottom:2px;right:10px}.mini-table{padding:9px 12px;font-size:6px}.mini-table strong{margin-bottom:4px;display:block}.mini-table>div{border-bottom:1px solid var(--light-gray);justify-content:space-between;padding:3px;display:flex}.mini-table>div:first-of-type{background:var(--pale-lavender)}.mini-model{text-align:center;height:95px;font-size:6px}.mini-model svg{width:100%;height:77px;display:block}.project-content{padding:13px}.project-meta{color:var(--muted);flex-wrap:wrap;justify-content:space-between;gap:3px 8px;margin-bottom:7px;font-size:9px;line-height:1.5;display:flex}.project-meta>span:first-child{color:var(--accent);font-weight:700}.project-content h3{margin-bottom:7px;font-size:14px;line-height:1.4}.project-content h3 a{color:var(--heading)}.project-subtitle{color:var(--accent);margin-bottom:7px;font-size:10px;line-height:1.6}.project-description{margin-bottom:12px;font-size:11px;line-height:1.8}.tags{flex-wrap:wrap;gap:5px;display:flex}.tag{min-height:20px;padding-inline:6px;font-size:9px}.project-detail-link{border-top:1px dotted var(--border);justify-content:space-between;align-items:center;margin-top:13px;padding:11px 0 4px;font-size:11px;font-weight:700;display:flex}.detail-toggle{width:100%;color:var(--muted);text-align:left;background:0 0;border:0;justify-content:space-between;align-items:center;padding:7px 0 0;font-size:10px;display:flex}.detail-toggle:hover{color:var(--accent);text-decoration:underline}.project-notes{margin-bottom:0;padding-left:17px;font-size:11px;line-height:1.9}.project-notes li+li{margin-top:6px}.project-links{flex-wrap:wrap;gap:12px;margin-top:16px;font-size:11px;font-weight:700;display:flex}.project-links a{align-items:center;gap:4px;display:inline-flex}.home-bottom-grid{grid-template-columns:1fr 1fr;gap:16px;display:grid}.home-bottom-grid .box-heading{background:var(--lavender-fill)}.home-bottom-grid p{font-size:11px}.workbench-title{margin:12px 0 6px;font-size:14px}.updates-list{margin:0;padding:0;list-style:none}.updates-list li{align-items:start;gap:9px;display:flex}.updates-list li+li{margin-top:11px}.updates-list li>span{color:var(--accent);font-size:15px}.updates-list a{font-size:10px;font-weight:700}.updates-list p{color:var(--muted);margin:1px 0 0;font-size:9px}.guestbook-note{border:1px dashed var(--gray);background:var(--panel-2);border-radius:3px;align-items:center;gap:13px;padding:14px;display:flex}.guestbook-note>span{color:var(--accent);font-size:25px}.guestbook-note strong{color:var(--heading);font-size:11px}.guestbook-note p{color:var(--muted);font-size:10px}.guestbook-note .button{white-space:nowrap;margin-left:auto}.button{border:1px solid var(--gray);background:var(--header-fill);min-height:32px;color:var(--heading);border-radius:3px;justify-content:center;align-items:center;gap:8px;padding:5px 13px;font-size:11px;font-weight:700;display:inline-flex}.button:hover{background:var(--lavender-fill);text-decoration:none}.site-footer{margin-top:27px}.footer-content{border-top:1px solid var(--border);color:var(--muted);justify-content:space-between;align-items:center;gap:20px;padding:19px 0 24px;display:flex}.footer-brand{color:var(--heading);font:italic 700 15px Georgia,serif}.footer-content p{margin:3px 0 0;font-size:9px}.footer-message{font:10px Courier New,monospace}.back-top{background:var(--panel);color:var(--accent);border:1px solid var(--border);border-radius:2px;padding:6px 9px;font-size:10px}.back-top:hover{border-color:var(--gray)}.page-main .shell{width:100%;margin:0}.section-label{letter-spacing:1.8px;color:var(--muted);margin-bottom:13px;font:700 9px/1.6 Courier New,monospace}.section-label>span{color:var(--accent)}.page-heading{letter-spacing:-.7px;margin:5px 0 18px;font:clamp(26px,3vw,35px)/1.25 Georgia,serif}.page-heading em,.muted-heading{color:var(--accent)}.section-description{color:var(--muted);max-width:510px;font-size:12px;line-height:1.8}.section-heading-row{justify-content:space-between;align-items:center;gap:22px;display:flex}.project-count{color:var(--accent);text-align:right;font:34px Georgia,serif}.project-count span{letter-spacing:1.5px;font:8px Courier New,monospace;display:block}.filters{flex-wrap:wrap;gap:7px;margin:17px 0 8px;display:flex}.filter{border:1px solid var(--border);background:var(--panel);color:var(--accent);border-radius:2px;padding:6px 12px;font-size:10px}.filter:hover{background:var(--panel-2);border-color:var(--gray)}.filter.selected{background:var(--lavender-fill);border-color:var(--muted-gray);color:var(--heading);font-weight:700}.filter-result{color:var(--muted);margin-bottom:13px;font-size:9px}.about-grid{gap:5px;display:grid}.about-copy p{line-height:1.95}.retro-box .box-body>h2{margin-bottom:18px;font:25px Georgia,serif}.experience-list{border-top:1px solid var(--border)}.experience-row{border-bottom:1px solid var(--border);grid-template-columns:28px minmax(0,1fr);gap:12px;padding:20px 0;display:grid}.experience-row:last-child{border-bottom:0;padding-bottom:2px}.experience-number{color:var(--accent);padding-top:2px;font:17px Courier New,monospace}.experience-kicker{text-transform:uppercase;letter-spacing:1px;color:var(--muted);font:700 9px Courier New,monospace}.experience-row h3{margin:5px 0 8px;font-size:14px}.experience-row p{font-size:12px;line-height:1.85}.experience-detail{color:var(--accent);grid-column:2;font-size:10px;font-weight:700}.academic-timeline{margin:0;padding:0;list-style:none}.academic-timeline .experience-row{background:var(--panel-2);padding:18px 12px;position:relative}.academic-timeline .experience-row:nth-child(2){background:var(--lavender-fill)}.academic-timeline .experience-row:not(:last-child):after{content:"";border-left:1px dotted var(--gray);position:absolute;top:49px;bottom:12px;left:25px}.skills-description{max-width:240px;font-size:11px}.skills-grid{grid-template-columns:1fr 1fr;gap:14px;margin-top:17px;display:grid}.skill-card{border:1px solid var(--border);background:var(--panel-2);border-radius:3px;padding:16px}.skill-index{color:var(--muted);font:10px Courier New,monospace}.skill-card h2{margin:10px 0 13px;font-size:13px}.skill-list{flex-wrap:wrap;gap:6px;margin:0;padding:0;list-style:none;display:flex}.skill-list>li{border:1px solid var(--border);background:var(--panel);border-radius:2px;padding:3px 7px;font-size:10px}.contact-links{flex-wrap:wrap;gap:10px;margin:23px 0;display:flex}.contact-links:empty{display:none}.contact-placeholder{border:1px dashed var(--gray);background:var(--panel-2);text-align:center;margin:25px 0;padding:27px 18px}.contact-placeholder>span{color:var(--accent);font-size:30px}.contact-placeholder h3{margin:8px 0;font-size:14px}.contact-placeholder p{font-size:11px}.contact-signoff{border-top:1px dotted var(--gray);color:var(--muted);padding-top:19px;font-size:11px}.contact-signoff>span{color:var(--heading);margin-top:8px;font:italic 22px Georgia,serif;display:inline-block}.detail-art{border:1px solid var(--border);border-radius:3px;height:300px;margin:20px 0}.detail-art .mini-window{max-width:330px}.detail-art .project-art-content{padding-bottom:35px}.detail-art .mini-titlebar{font-size:9px}.detail-art .mini-workspace{min-height:115px}.detail-art .mini-workspace-body{padding:16px}.detail-art .mini-workspace-body strong{font-size:11px}.detail-art .mini-tiles>span{padding:7px;font-size:25px}.detail-art .mini-tiles small{font-size:8px}.detail-art .art-caption{font-size:9px;bottom:12px}.detail-art .mini-data{height:130px;padding:20px}.detail-art .mini-code{font-size:8px}.detail-art .mini-chart{height:70px}.detail-art .chart-axis{font-size:7px;right:20px}.detail-art .mini-table{padding:20px;font-size:9px}.detail-art .mini-model{height:145px;font-size:9px}.detail-art .mini-model svg{height:120px}.detail-subheading{margin:24px 0 12px}.project-pager{flex-wrap:wrap;gap:8px;display:flex}.project-pager a{border:1px solid var(--border);background:var(--panel);border-radius:2px;padding:6px 9px;font-size:10px}.project-pager a.current{background:var(--lavender-fill);border-color:var(--muted-gray)}.page-main>.route-page>.page-section{background:var(--panel);border:1px solid var(--border);border-radius:3px;padding:25px}.experience-cards{gap:14px;display:grid}.experience-card{border:1px solid var(--border);background:var(--panel-2);border-radius:3px;padding:16px}.experience-card:nth-child(2n){background:var(--panel)}.experience-card-heading{grid-template-columns:28px minmax(0,1fr);gap:12px;margin-bottom:13px;display:grid}.experience-card-heading h2{margin:5px 0;font-size:16px;line-height:1.5}.experience-card-heading .experience-kicker{margin:0;line-height:1.6}.experience-dates{color:var(--accent);font-size:10px;font-weight:700}.education-institution{color:var(--accent);font-weight:700}.coursework-label{margin:0 0 7px;font-size:10px}.resume-actions{flex-wrap:wrap;gap:10px;margin-top:18px;display:flex}.resume-quick-links{border-top:1px dotted var(--gray);flex-wrap:wrap;gap:10px 22px;margin-top:18px;padding-top:14px;display:flex}.resume-preview{border:1px solid var(--border);background:var(--panel-2);width:100%;height:710px;display:block}.resume-fallback{text-align:center;padding:28px 16px}.resume-preview-help{color:var(--muted);margin-top:12px;font-size:10px}.career-summary{border:1px solid var(--border)}.contact-email{overflow-wrap:anywhere}.nav{flex-wrap:wrap}@media (width<=620px){.nav:not(.nav-open){grid-template-columns:repeat(4,minmax(0,1fr));display:grid}.nav-note{display:none}.resume-preview{height:520px}}@keyframes gentle-turn{0%,75%,to{transform:rotate(0)}85%{transform:rotate(25deg)}93%{transform:rotate(-15deg)}}@media (width<=1000px){.nav a{padding-inline:14px}.nav-note{display:none}.profile-layout{grid-template-columns:275px minmax(0,1fr);gap:16px}.profile-intro{grid-template-columns:96px minmax(0,1fr);gap:10px}.profile-avatar{width:96px;height:110px}.header-tagline{font-size:9px}.blurb-bottom{display:block}.blurb-bottom .text-link{margin-top:8px}.project-meta{font-size:8px}.mini-code{font-size:5px}.mini-window{box-shadow:2px 2px #9b949e}.project-art-content{padding-inline:14px}}@media (width<=780px){.shell{width:calc(100% - 32px)}.site{padding-top:16px}.header-tagline{display:none}.header-actions{margin-left:auto}.profile-layout{grid-template-columns:240px minmax(0,1fr)}.profile-intro{grid-template-columns:80px minmax(0,1fr)}.profile-avatar{width:80px;height:100px}.profile-role{font-size:10px}.profile-location,.online-label{font-size:9px}.projects-grid,.home-bottom-grid,.skills-grid{grid-template-columns:1fr}.project-art{height:180px}.project-meta{font-size:9px}.mini-code{font-size:6px}.welcome-box{padding:17px}.welcome-box h1{font-size:29px}.guestbook-note{flex-wrap:wrap}.guestbook-note .button{margin-left:38px}.section-heading-row{align-items:start}.skills-description{max-width:none}.section-skills .section-heading-row{display:block}.page-location>span:last-child,.footer-message{display:none}.detail-art{height:250px}}@media (width<=620px){.site{padding-top:10px}.shell{width:calc(100% - 24px)}.header-utility{padding-inline:12px;font-size:9px}.header-content{gap:7px;min-height:77px;padding:13px}.brand{gap:8px;font-size:28px}.brand-icon{width:35px;height:36px;font-size:32px}.brand-star{display:none}.brand-space{margin-left:3px}.header-actions{gap:5px}.mobile-menu{display:grid}.nav{padding:4px}.nav a{flex:1;gap:4px;min-height:36px;padding:4px 5px;font-size:10px}.nav a span{display:none}.nav.nav-open{grid-template-columns:repeat(3,1fr);gap:4px;display:grid}.nav.nav-open a{border:1px solid var(--border);min-height:40px}.nav.nav-open a span{display:inline}.page-location{padding-block:11px;font-size:9px}.profile-layout{grid-template-columns:minmax(0,1fr);gap:18px}.profile-sidebar{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.profile-box,.interests-box,.sidebar-stickers{grid-column:1/-1}.profile-box{order:-3}.contacting-box{order:-2}.working-box{order:-1}.profile-intro{grid-template-columns:108px minmax(0,1fr);gap:18px}.profile-avatar{width:108px;height:108px}.profile-role{max-width:220px;font-size:12px}.profile-location,.online-label{font-size:11px}.profile-quote{max-width:none}.profile-status{font-size:11px}.profile-url{font-size:10px}.profile-links{grid-template-columns:1fr}.profile-sidebar .box-heading{padding-inline:10px}.profile-sidebar .box-heading h2{font-size:11px}.profile-sidebar .box-heading h2>span{margin-right:2px;font-size:12px}.working-project{font-size:11px}.working-box p{font-size:10px}.info-table>div{grid-template-columns:100px minmax(0,1fr)}.info-table{font-size:11px}.sidebar-stickers{padding-bottom:2px}.welcome-box h1{font-size:30px}.home-bottom-grid,.skills-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.projects-grid{grid-template-columns:1fr}.project-art{height:210px}.project-content{padding:16px}.project-description{font-size:12px}.project-content h3{font-size:16px}.home-bottom-grid .box-body{padding:12px}.home-bottom-grid .box-heading{padding-inline:10px}.home-bottom-grid .box-heading h2{font-size:11px}.guestbook-note{flex-wrap:nowrap;gap:10px}.guestbook-note .button{margin-left:auto;padding-inline:9px}.guestbook-note>span{display:none}.detail-art{height:270px}}@media (width<=380px){.brand{font-size:24px}.brand-icon{width:30px}.header-actions{gap:4px}.icon-button{width:28px}.home-bottom-grid,.skills-grid{grid-template-columns:1fr}.welcome-box h1{font-size:27px}.nav a{padding-inline:3px;font-size:9px}.profile-sidebar .box-heading h2{font-size:10px}.profile-sidebar .box-heading h2>span{display:none}.guestbook-note{flex-wrap:wrap}.guestbook-note .button{margin-left:0}}.sr-only{clip-path:inset(50%);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.japan-scrapbook .box-heading{background:var(--lavender-fill)}.japan-scrapbook .box-body{padding:22px}.japan-intro{border-bottom:1px dotted var(--gray);justify-content:space-between;align-items:center;gap:17px;padding-bottom:18px;display:flex}.japan-intro .pixel-label{color:var(--accent);letter-spacing:1.4px;font-size:9px}.japan-subtitle{color:var(--heading);margin:9px 0 0;font:italic 23px/1.4 Georgia,serif}.japan-stamp{text-align:center;border:1px dashed var(--gray);background:var(--panel-2);width:81px;height:81px;color:var(--accent);border-radius:50%;flex-shrink:0;align-content:center;font:8px/1.1 Courier New,monospace;display:grid;transform:rotate(9deg)}.japan-stamp>span{font:20px/1 Georgia,serif}.japan-story{margin:20px 0;font-size:13px;line-height:1.95}.japan-story p+p{margin-top:15px}.japan-keepsakes{flex-wrap:wrap;gap:7px;margin-bottom:23px;display:flex}.japan-keepsakes>span{background:var(--panel-2);border:1px solid var(--border);color:var(--accent);border-radius:2px;padding:4px 8px;font:10px/1.5 Courier New,monospace}.japan-keepsakes>span:nth-child(2){background:var(--lavender-fill)}.japan-gallery-heading{border-top:1px dotted var(--gray);justify-content:space-between;align-items:center;gap:12px;padding-top:18px;display:flex}.japan-gallery-heading h3{margin:0 0 4px;font-size:13px}.japan-gallery-heading p{color:var(--muted);font-size:11px}.japan-gallery-heading>span{color:var(--accent);white-space:nowrap;font-size:18px}.japan-photo-grid{grid-template-columns:repeat(auto-fit,minmax(min(100%,165px),1fr));align-items:start;gap:25px 18px;padding:20px 4px 12px;display:grid}.japan-polaroid{background:var(--panel);border:1px solid var(--gray);border-radius:2px;min-width:0;margin:0;padding:9px 9px 0;position:relative;transform:rotate(-1.3deg)}.japan-polaroid:nth-child(2n){transform:rotate(1.3deg)}.japan-polaroid:nth-child(3n){transform:rotate(-.7deg)}.scrapbook-tape{z-index:1;border:1px solid var(--border);background:var(--lavender-fill);pointer-events:none;width:46px;height:17px;position:absolute;top:-9px;left:calc(50% - 23px);transform:rotate(-5deg)}.japan-polaroid:nth-child(2n) .scrapbook-tape{background:var(--header-fill);transform:rotate(5deg)}.japan-photo-button{border:1px solid var(--border);background:var(--panel-2);border-radius:1px;width:100%;padding:0;display:block;position:relative;overflow:hidden}.japan-photo-button img{aspect-ratio:4/3;object-fit:cover;width:100%;height:auto;display:block}.photo-enlarge{background:var(--panel);width:25px;height:25px;color:var(--accent);border:1px solid var(--gray);border-radius:2px;place-items:center;font-size:17px;display:grid;position:absolute;bottom:5px;right:5px}.japan-photo-button:hover .photo-enlarge{background:var(--lavender-fill)}.japan-polaroid figcaption{color:var(--accent);text-align:center;overflow-wrap:anywhere;padding:12px 1px 13px;font:italic 12px/1.6 Georgia,serif}.japan-empty-gallery{background:var(--panel-2);border:1px dashed var(--gray);border-radius:3px;margin-top:17px;padding:27px 15px 18px}.empty-polaroids{justify-content:center;align-items:center;gap:17px;padding:2px 5px 22px;display:flex}.empty-polaroid{background:var(--panel);border:1px solid var(--gray);border-radius:2px;width:min(29%,124px);padding:7px;position:relative;transform:rotate(-5deg)}.empty-polaroid:nth-child(2){transform:rotate(3deg)}.empty-polaroid:nth-child(3){transform:rotate(-2deg)}.empty-photo{background:var(--lavender-fill);color:var(--accent);aspect-ratio:1.2;place-items:center;font:35px Georgia,serif;display:grid}.empty-polaroid:nth-child(2) .empty-photo{background:var(--header-fill)}.empty-caption{color:var(--accent);text-align:center;padding:6px 0 2px;font:italic 8px/1.3 Georgia,serif;display:block}.japan-empty-gallery>p{color:var(--heading);text-align:center;font:italic 16px/1.6 Georgia,serif}.japan-empty-gallery>p>span{color:var(--muted);font:10px Tahoma,sans-serif}.japan-editor{margin-top:16px}.scrapbook-edit-toggle{color:var(--accent);background:0 0;border:0;padding:4px 0}.scrapbook-edit-toggle:hover{text-decoration:underline}.japan-editor-controls{border:1px solid var(--border);background:var(--panel-2);border-radius:3px;margin-top:8px;padding:14px}.japan-editor-controls>p:first-child{font-size:11px}.japan-editor-buttons{flex-wrap:wrap;gap:9px;display:flex}.photo-upload-label{cursor:pointer;position:relative}.photo-upload-label:focus-within{outline:2px solid var(--muted-gray);outline-offset:4px}.japan-upload-help{color:var(--muted);margin:11px 0 0;font-size:10px}.japan-save-status,.japan-save-error{margin:10px 0 0;font-size:11px}.japan-save-status:empty{display:none}.japan-save-error{border-left:2px solid var(--gray);background:var(--panel-2);color:var(--heading);padding:7px 10px}.photo-caption-input{text-align:center;width:100%;color:var(--accent);background:var(--panel-2);border:1px solid var(--border);border-radius:2px;padding:5px;font:italic 12px/1.6 Georgia,serif}.photo-caption-input:focus-visible{outline:2px solid var(--muted-gray);outline-offset:2px}.photo-caption-input::placeholder{color:var(--muted)}.photo-remove{color:var(--muted);background:0 0;border:0;margin-top:7px;font:9px Tahoma,sans-serif;text-decoration:underline}.japan-scrapbook button:disabled,.japan-scrapbook .is-disabled{opacity:.6;cursor:default}.japan-signoff{text-align:right;color:var(--accent);margin:23px 0 0;font:italic 13px/1.6 Georgia,serif}.japan-signoff span{margin-left:5px}.japan-lightbox{width:min(900px,100% - 32px);max-width:calc(100% - 32px);max-height:calc(100dvh - 32px);color:var(--text);background:var(--panel);border:1px solid var(--gray);border-radius:3px;padding:0}.japan-lightbox::backdrop{background:#4b454fd9}.japan-lightbox-content{padding:14px}.japan-lightbox-toolbar{justify-content:space-between;align-items:center;gap:14px;margin-bottom:12px;display:flex}.japan-lightbox-toolbar h3{margin:0;font:700 12px Tahoma,sans-serif}.japan-lightbox-toolbar .icon-button{flex-shrink:0}.japan-lightbox-image{object-fit:contain;background:var(--panel-2);width:100%;min-height:100px;max-height:calc(100dvh - 215px);display:block}.japan-lightbox-footer{justify-content:center;align-items:center;gap:15px;margin-top:12px;display:flex}.japan-lightbox-footer>div{text-align:center;flex:1;min-width:0}.japan-lightbox-footer p{color:var(--accent);overflow-wrap:anywhere;margin-bottom:4px;font:italic 15px/1.5 Georgia,serif}.japan-lightbox-footer span{color:var(--muted);font:10px Courier New,monospace}@media (width<=780px){.japan-scrapbook .box-body{padding:17px}.japan-intro{align-items:start;gap:12px}.japan-subtitle{font-size:21px}.japan-stamp{width:65px;height:65px;font-size:6px}.japan-stamp>span{font-size:17px}.japan-photo-grid{grid-template-columns:repeat(auto-fit,minmax(min(100%,135px),1fr))}.empty-polaroids{gap:12px;padding-inline:0}.empty-polaroid{padding:5px}.empty-polaroid:nth-child(3){display:none}.empty-polaroid{width:min(42%,124px)}.japan-gallery-heading>span{font-size:13px}}@media (width<=620px){.empty-polaroid:nth-child(3){display:block}.empty-polaroid{width:min(29%,124px)}}@media (width<=380px){.japan-intro .pixel-label{font-size:8px}.japan-subtitle{font-size:20px}.japan-stamp{width:58px;height:58px;font-size:6px}.japan-scrapbook .box-body{padding:14px}.empty-polaroids{gap:10px}.empty-caption{font-size:7px}.japan-gallery-heading>span{display:none}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition:none!important;animation:none!important}}
