:root{--paper:#faf9f6;--ink:#292b2e;--muted:#6a6b6b;--pink:#c07590;--soft:#ecd6df;--line:#deded7;--serif:'DM Serif Display',Georgia,serif;--sans:'DM Sans',Arial,sans-serif}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:35px}body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--sans);font-size:15px;line-height:1.65}a{color:inherit;text-decoration:none}button{font:inherit;cursor:pointer}button,a{-webkit-tap-highlight-color:transparent}a:focus-visible,button:focus-visible{outline:3px solid var(--pink);outline-offset:5px}.wrap{width:min(1120px,calc(100% - 100px));margin-inline:auto}.nav{height:108px;display:flex;align-items:center;justify-content:space-between}.wordmark{font-size:29px;font-weight:700;letter-spacing:-1.8px}.wordmark span{color:var(--pink);margin-left:4px}.nav nav{display:flex;gap:32px;align-items:center;font-size:13px}.nav nav a:hover,.text-link:hover{color:var(--pink)}.resume{border:1px solid var(--line);padding:8px 16px;border-radius:5px}.hero{display:grid;grid-template-columns:1.12fr 1fr;min-height:650px;align-items:center;padding:45px 0 90px;gap:35px}.eyebrow{font-size:10px;font-weight:600;letter-spacing:2px;margin:0 0 25px}.status-dot{display:inline-block;width:6px;height:6px;background:var(--pink);border-radius:50%;margin-right:8px}.hello{margin:0 0 3px;color:var(--muted);font-size:17px}h1{font-size:clamp(66px,7.8vw,100px);font-weight:500;letter-spacing:-6px;line-height:1.15;margin:0 0 20px}.name{color:var(--pink)}.cursor{font-weight:400;font-size:.8em;animation:blink 1s step-end infinite;letter-spacing:-12px}.hero-tagline{font-size:37px;line-height:1.2;letter-spacing:-1px;margin:0 0 22px}em{font-family:var(--serif);font-weight:400}p.intro{color:var(--muted);font-size:15px}.hero-actions{display:flex;align-items:center;gap:23px;margin-top:30px}.primary{display:inline-flex;align-items:center;justify-content:center;gap:23px;padding:13px 19px;background:var(--ink);border:1px solid var(--ink);color:white;border-radius:4px;font-size:12px;transition:background .2s,transform .2s}.primary:hover{background:#4f3c45;transform:translateY(-2px)}.text-link{font-size:12px;border-bottom:1px solid var(--line);padding-bottom:3px}.tiny-note{margin-top:37px;font-size:11px;color:var(--muted)}.tiny-note span{color:var(--pink);padding-right:7px}.scrapbook{position:relative;height:450px;isolation:isolate}.polaroid{position:absolute;background:#fff;padding:12px 12px 0;box-shadow:0 9px 25px #28232016;border:1px solid #eae6e0;width:240px}.polaroid p{text-align:center;font-size:12px;letter-spacing:.1px;margin:12px 0 14px;color:#59554f}.back{top:38px;left:9px;transform:rotate(-9deg)}.front{top:115px;right:0;transform:rotate(8deg)}.snapshot{height:252px;position:relative;overflow:hidden}.sunset{background:linear-gradient(#d9b9be,#f3d6bd 65%,#b4b6a1)}.sun{width:75px;height:75px;background:#f6e4be;border-radius:50%;position:absolute;top:60px;left:80px}.hill{position:absolute;width:380px;height:170px;border-radius:50%;bottom:-58px;left:-110px;background:#858e77;transform:rotate(15deg)}.hill-two{background:#535f53;left:-12px;bottom:-95px;transform:rotate(-20deg)}.sunset>span{position:absolute;left:25px;top:25px;color:white;font-size:30px}.space-art{background:#282e3c;color:#f9f2e5}.planet{position:absolute;width:98px;height:98px;border-radius:50%;background:linear-gradient(145deg,#e6cbd1,#a87991);top:72px;left:64px;box-shadow:inset -12px -7px 20px #46314766}.orbit{position:absolute;border:1px solid #b8acbe80;width:190px;height:80px;border-radius:50%;transform:rotate(-33deg);top:81px;left:20px;z-index:2}.orbit-two{width:260px;height:180px;top:31px;left:-15px;transform:rotate(33deg);opacity:.4;z-index:0}.space-star{position:absolute;font-size:22px}.s1{top:25px;left:30px}.s2{right:15px;top:65px}.s3{bottom:42px;left:28px;font-size:14px}.s4{right:40px;bottom:54px}.space-label{position:absolute;bottom:15px;width:100%;text-align:center;font-size:7px;letter-spacing:2px}.tape{position:absolute;width:75px;height:22px;background:#d9c8b687;left:80px;top:-13px;transform:rotate(-5deg);z-index:3}.scribble{font-size:12px;color:var(--muted)}.top-note{position:absolute;top:0;left:90px}.arrow-doodle{position:absolute;right:12px;top:3px;width:74px;fill:none;stroke:var(--pink);stroke-width:1.5}.sparkle{position:absolute;color:var(--pink)}.sparkle-one{font-size:52px;right:-24px;top:54px}.sparkle-two{font-size:34px;left:16px;bottom:32px}.sticker{position:absolute;left:5px;bottom:25px;background:#e8e9db;border:1px solid #c6c9b6;padding:13px 20px;transform:rotate(-7deg);font-size:9px;text-align:center;z-index:4}.sticker b{display:block;font-size:22px;letter-spacing:-1px}.sticker>span{font-size:9px}.photo-note{position:absolute;bottom:-23px;right:2px;font-size:10px}.ribbon{overflow:hidden;border-block:1px solid var(--line);padding:17px 0;font-size:9px;letter-spacing:2px}.ribbon>div{width:max-content;display:flex;align-items:center;gap:43px}.ribbon span{color:var(--pink);font-size:18px;line-height:1}.section{padding-block:95px}.section-heading{display:flex;justify-content:space-between;align-items:end;gap:20px}.section-heading .eyebrow{margin-bottom:15px}h2{font-size:40px;font-weight:500;line-height:1.2;letter-spacing:-1.2px;margin:0}h2 em{color:var(--pink)}.section-intro{color:var(--muted);margin:16px 0 35px}.projects{display:grid;grid-template-columns:repeat(3,1fr);gap:27px}.project{display:block}.project-art{height:240px;position:relative;overflow:hidden;transition:transform .3s}.project:hover .project-art{transform:translateY(-5px)}.visual-label{position:absolute;top:18px;left:18px;font-size:7px;letter-spacing:1.3px}.detection{background:#e5e7df}.vision-object{position:absolute;font-size:130px;line-height:1;top:57px;left:calc(50% - 65px);color:#788673}.bounding-box{position:absolute;width:160px;height:145px;border:1px solid #53684a;top:47px;left:calc(50% - 80px)}.bounding-box span{position:absolute;top:-17px;left:-1px;background:#53684a;color:white;font-size:8px;padding:2px 7px}.art-caption{position:absolute;bottom:13px;width:100%;text-align:center;font-size:12px}.racing{background:#eddfe1}.race-track{width:230px;height:125px;border:22px solid #48494d;border-radius:80px;position:absolute;left:calc(50% - 115px);top:65px;transform:rotate(-15deg);outline:2px dashed #faf9f6;outline-offset:-12px}.race-car{position:absolute;color:#c07590;font-size:40px;top:-53px;left:80px}.race-star{position:absolute;color:#c07590;font-size:30px;left:52px;top:10px}.race-star.second{font-size:16px;left:95px;top:32px}.memory-art{background:#e2e4ec}.mini-cards{display:flex;gap:7px;position:absolute;top:95px;width:100%;justify-content:center;transform:rotate(-8deg)}.mini-cards span{width:49px;height:54px;display:grid;place-items:center;background:#faf9f6;font-size:25px;border:1px solid #c7c9d3}.mini-cards span:first-child{background:#81947e;color:white}.mini-cards span:nth-child(3){background:#c07590;color:white}.project-meta{display:flex;justify-content:space-between;font-size:8px;letter-spacing:1.2px;margin-top:21px;color:var(--muted)}.project-meta>span:last-child{font-size:20px;line-height:1;color:var(--ink)}h3{font-size:20px;font-weight:500;letter-spacing:-.5px;margin:9px 0}.project p{font-size:13px;line-height:1.7;color:var(--muted);margin:8px 0 17px}.tags{display:flex;flex-wrap:wrap;gap:7px}.tags span{font-size:9px;border:1px solid var(--line);padding:4px 9px;border-radius:3px}.about-section{padding:75px 0;background:#f0efea;border-block:1px solid #e6e4dd}.about-grid{display:grid;grid-template-columns:1fr 1fr;gap:85px}.about-grid h2{font-size:36px}.about-decoration{font-size:14px;color:var(--muted);margin-top:38px}.about-decoration span{color:var(--pink);font-size:24px;margin-left:15px}.about-copy p{margin-top:0;color:var(--muted);font-size:14px}.about-copy p:first-child{font-size:17px;color:var(--ink)}.about-tags{margin:25px 0}.experience-list{margin-top:35px}.experience-row{display:grid;grid-template-columns:45px 1fr 1.1fr 140px;gap:20px;align-items:start;border-top:1px solid var(--line);padding:25px 0}.company-mark{width:35px;height:35px;display:grid;place-items:center;border:1px solid var(--line);font-size:12px;background:#f1ede9}.experience-row h3{font-size:16px;margin:0}.experience-role{font-size:12px;color:var(--muted)}.experience-row p{font-size:12px;color:var(--muted);margin:0}.experience-date{font-size:10px;color:var(--muted);text-align:right;padding-top:4px}.play-section{padding:55px;background:#eeeae9;display:grid;grid-template-columns:.9fr 1fr;gap:60px;border:1px solid #e0dcd9;border-radius:5px}.play-copy{padding-top:12px}.play-copy h2{font-size:42px;position:relative}.game-doodle{position:absolute;right:-6px;top:3px;font-size:40px;color:var(--pink)}.play-copy>p:not(.eyebrow){font-size:14px;color:var(--muted);max-width:300px}.play-copy .instructions{font-size:12px!important;margin:25px 0}.game-panel{background:var(--paper);padding:23px 20px 17px;border:1px solid var(--line);border-radius:4px}.game-stats{display:flex;justify-content:space-between;font-size:9px;letter-spacing:1.2px;margin-bottom:19px}.game-stats>span:first-child{font-weight:700}.game-stats>span:first-child>span{color:var(--pink);margin-left:5px}.word-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:5px;max-width:250px;margin:auto}.letter-cell{aspect-ratio:1;display:grid;place-items:center;border:1px solid #d4d4ce;font-size:22px;font-weight:600;line-height:1;text-transform:uppercase}.letter-cell.filled{border-color:#777}.correct{background:#748b73!important;color:white!important;border-color:#748b73!important}.present{background:#bc7d94!important;color:white!important;border-color:#bc7d94!important}.absent{background:#73757a!important;color:white!important;border-color:#73757a!important}.game-message{text-align:center;font-size:10px;color:var(--muted);min-height:33px;margin:13px 0 6px}.keyboard{display:flex;flex-direction:column;gap:5px}.keyboard-row{display:flex;justify-content:center;gap:4px}.key{padding:0;min-width:0;flex:1;max-width:31px;height:34px;border:0;border-radius:3px;background:#e4e3df;color:var(--ink);font-size:10px;font-weight:600}.key.wide{max-width:48px;flex:1.5;font-size:8px}.key:hover{filter:brightness(.93)}.game-legend{display:flex;gap:12px;justify-content:center;margin-top:15px;font-size:8px;color:var(--muted)}.game-legend i{width:7px;height:7px;display:inline-block;margin-right:4px}.contact{padding:100px 0 85px;text-align:center}.contact .eyebrow{margin-bottom:20px}.contact h2{font-size:42px}.contact h2>span{color:var(--pink)}.contact .primary{margin-top:30px}footer{border-top:1px solid var(--line);display:flex;justify-content:space-between;gap:15px;font-size:10px;color:var(--muted);padding:25px 0 35px}.sr-only,.skip{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}.skip:focus{clip:auto;width:auto;height:auto;z-index:50;padding:10px;background:white}.name{display:inline-block;min-width:2.7em}@keyframes blink{50%{opacity:0}}@media(min-width:1400px){.hero{min-height:690px}}@media(max-width:1000px){.wrap{width:calc(100% - 64px)}.hero{gap:15px}.hero-actions{gap:14px;flex-wrap:wrap}.scrapbook{transform:scale(.85);transform-origin:center}.front{right:-20px}.back{left:-10px}.projects{gap:18px}.project-art{height:210px}.play-section{gap:30px;padding:35px}.about-grid{gap:40px}.experience-row{grid-template-columns:35px 1fr 1fr 100px;gap:15px}}@media(max-width:720px){.wrap{width:calc(100% - 40px)}.nav{height:82px}.nav nav{gap:17px;font-size:11px}.resume{padding:5px 9px}.nav nav a:nth-child(2){display:none}.wordmark{font-size:25px}.hero{grid-template-columns:1fr;padding-top:35px;padding-bottom:45px}.hero-copy{max-width:500px}.hero h1{font-size:80px}.hero-tagline{font-size:34px}.hero .eyebrow{margin-bottom:22px}.scrapbook{width:350px;max-width:100%;height:430px;margin:20px auto 0;transform:scale(.9);transform-origin:center}.front{right:-5px}.back{left:-5px}.sparkle-one{right:-5px}.hero-actions{gap:20px}.tiny-note{margin-top:25px}.section{padding-block:65px}h2{font-size:33px}.section-heading{align-items:center}.section-heading>.text-link{white-space:nowrap;font-size:10px}.section-intro{font-size:13px}.projects{grid-template-columns:1fr;gap:35px}.project-art{height:270px}.race-track{top:80px}.mini-cards{top:109px}.bounding-box{top:68px}.vision-object{top:77px}.project h3{font-size:22px}.project p{max-width:420px}.about-section{padding:55px 0}.about-grid{grid-template-columns:1fr;gap:30px}.about-grid h2{font-size:32px}.about-decoration{margin-top:20px}.experience-row{grid-template-columns:35px 1fr 105px;gap:12px}.experience-row>p{grid-column:2/4;grid-row:2}.experience-row h3{font-size:15px}.experience-role{font-size:11px}.experience-date{font-size:9px}.play-section{grid-template-columns:1fr;gap:25px;padding:28px 20px}.play-copy h2{font-size:37px}.play-copy p{max-width:none!important}.play-copy .instructions{margin-block:18px}.game-doodle{right:22px}.game-panel{max-width:400px;width:100%;margin:auto}.key{max-width:34px;height:40px}.word-grid{max-width:265px}.contact{padding:70px 0 60px}.contact h2{font-size:34px}footer{flex-wrap:wrap;font-size:9px}footer>span:nth-child(2){order:3;width:100%}.desktop{display:none}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation:none!important;transition:none!important}}
/* Let narrow layouts shrink without letting long headings widen the page. */
.hero-copy,.scrapbook,.play-copy,.game-panel,.about-copy{min-width:0}
@media(max-width:720px){.hero{grid-template-columns:minmax(0,1fr)}.hero h1{font-size:72px;letter-spacing:-4px}.nav nav{gap:12px;font-size:10px}.nav .resume{padding:5px 7px}.wordmark{font-size:23px}.hero-actions{gap:16px}.scrapbook{width:320px}.sparkle-one{right:0}.front{right:0}.play-section{grid-template-columns:minmax(0,1fr)}}

/* A quieter visual language; pink is an accent rather than a theme. */
:root{color-scheme:light;--surface:#f0efea;--panel:#fff;--key:#e4e3df;--button:#292b2e;--button-text:#fff}
:root[data-theme="dark"]{color-scheme:dark;--paper:#17191c;--ink:#e6e5e1;--muted:#a2a4a8;--pink:#d29bb0;--soft:#3d2e36;--line:#373a3f;--surface:#1e2125;--panel:#24272c;--key:#35393f;--button:#e6e5e1;--button-text:#1b1d20}
.nav nav{gap:25px}.theme-toggle{display:grid;place-items:center;width:34px;height:34px;padding:7px;border:1px solid var(--line);border-radius:50%;background:transparent;color:var(--ink)}.theme-toggle svg{width:18px;height:18px}.sun-icon{display:none}[data-theme="dark"] .moon-icon{display:none}[data-theme="dark"] .sun-icon{display:block}
.hero{grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);min-height:590px;padding-top:30px;padding-bottom:60px;gap:45px}h1{font-size:clamp(48px,5.8vw,78px);letter-spacing:-3.8px;white-space:nowrap;font-weight:500}.name{color:var(--ink);min-width:0}.cursor{color:var(--pink);letter-spacing:-6px}p.intro{font-size:17px;line-height:1.8}.hero-actions{margin-top:32px;gap:22px}.primary{background:var(--button);border-color:var(--button);color:var(--button-text)}.primary:hover{background:var(--button);opacity:.85;transform:none}
.scrapbook{height:375px}.polaroid{background:var(--panel);border-color:var(--line);padding:8px 8px 0;width:215px;box-shadow:0 8px 24px #0000000b}.polaroid p{color:var(--muted);font-size:10px;text-align:left;margin:9px 2px 11px}.back{top:15px;left:0;transform:rotate(-4deg)}.front{top:85px;right:0;transform:rotate(4deg)}.snapshot{height:245px}.sunset{filter:saturate(.65)}.space-art{background:#252c38}.space-label{display:none}
h2{font-size:34px;font-weight:500;letter-spacing:-1px}h2 em{color:var(--ink)}.section{padding-block:75px}.section-intro{font-size:14px}.project-art{height:235px;border:1px solid var(--line);border-radius:3px;background:var(--surface)}.project:hover .project-art{transform:none;border-color:var(--pink)}.project-meta{letter-spacing:1px;font-size:9px}.project h3{font-size:19px}.project p{font-size:13px}.tags span{border-radius:2px}.visual-label{font-size:8px;letter-spacing:1px;color:var(--muted)}.system-flow{display:flex;align-items:center;justify-content:center;gap:9px;position:absolute;top:93px;width:100%;padding:0 16px}.system-flow>span{padding:9px 10px;border:1px solid var(--line);background:var(--panel);font-family:monospace;font-size:10px}.system-flow>i{font-style:normal;color:var(--pink)}.system-lines{display:flex;justify-content:center;gap:10px;position:absolute;top:151px;width:100%;font-size:7px;color:var(--muted)}.art-footnote{position:absolute;bottom:18px;left:18px;font-size:7px;letter-spacing:1px;color:var(--muted)}.circuit{position:absolute;width:85%;height:175px;top:30px;left:7.5%;color:var(--ink)}.mini-cards{transform:none;top:92px;gap:6px}.mini-cards span{width:43px;height:48px;background:var(--panel);color:var(--ink);font-family:monospace;font-size:20px;border-color:var(--line)}.memory-art .art-caption{display:none}.about-section{background:var(--surface);border-color:var(--line)}.about-grid h2{font-size:34px}.about-copy p:first-child{font-size:16px}.company-mark{background:var(--surface)}.play-section{background:var(--surface);border-color:var(--line);border-radius:3px}.play-copy h2{font-size:40px}.game-panel{border-color:var(--line);border-radius:3px}.letter-cell{border-color:var(--line)}.letter-cell.filled{border-color:var(--muted)}.key{background:var(--key);color:var(--ink)}.contact h2{font-size:36px}.contact{padding:80px 0}.skip:focus{background:var(--panel)}
@media(min-width:1400px){.hero{min-height:590px}}
@media(max-width:1000px){.hero{gap:20px}h1{font-size:56px}.scrapbook{transform:scale(.85)}.front{right:-10px}.nav nav{gap:20px}.system-flow{gap:5px;padding-inline:10px}.system-flow>span{padding:8px 6px;font-size:9px}.system-lines{gap:6px;font-size:6px}}
@media(max-width:720px){.nav nav{gap:12px}.nav .resume{display:none}.hero{grid-template-columns:minmax(0,1fr);padding-top:45px;padding-bottom:35px;gap:10px}.hero h1{font-size:clamp(40px,10.5vw,65px);letter-spacing:-2px}.hero-copy{max-width:none}p.intro{font-size:15px}.hero-actions{gap:18px;margin-top:25px}.hero-actions .primary{padding:12px 14px;font-size:11px}.hero-actions .text-link{font-size:11px}.scrapbook{width:320px;height:365px;transform:scale(.9);margin-top:20px}.front{right:0}.back{left:0}.section{padding-block:55px}h2,.about-grid h2{font-size:30px}.project-art{height:235px}.system-flow{top:90px;gap:12px}.system-flow>span{font-size:11px;padding:10px}.system-lines{top:151px;gap:16px;font-size:8px}.mini-cards{top:92px}.contact h2{font-size:30px}.play-copy h2{font-size:34px}}

.off-duty{padding-bottom:20px}.off-duty-note{font-size:12px;color:var(--muted)}.interests-grid{display:grid;grid-template-columns:1fr 1fr;gap:32px;margin-top:32px}.interest{margin:0;min-width:0}.interest-photo{position:relative;aspect-ratio:1.6;overflow:hidden;border:1px solid var(--line);border-radius:3px;background:var(--surface);color:var(--ink)}.interest-photo svg{width:100%;height:100%;display:block}.interest-photo img{width:100%;height:100%;object-fit:cover;display:block}.interest-stars{background:#252c38;color:#e4e2e1}.photo-placeholder-label{position:absolute;bottom:14px;left:17px;font-size:8px;letter-spacing:1.4px;opacity:.6}.interest figcaption{padding-top:20px}.interest-number{font-size:9px;letter-spacing:1.2px;color:var(--muted)}.interest h3{font-size:19px;margin:8px 0}.interest p{font-size:13px;color:var(--muted);margin:0;max-width:410px;line-height:1.75}
@media(max-width:720px){.off-duty .section-heading{display:block}.off-duty-note{display:block;margin-top:15px}.interests-grid{grid-template-columns:minmax(0,1fr);gap:32px;margin-top:25px}.interest h3{font-size:18px}.off-duty{padding-bottom:0}}

.wordmark{font-size:26px;letter-spacing:-1.3px;white-space:nowrap}.current-role{font-size:14px}.profile-links{display:flex;flex-wrap:wrap;gap:18px;margin-top:27px}.profile-links a{display:inline-flex;align-items:center;gap:7px;font-size:12px;color:var(--muted)}.profile-links a:hover{color:var(--pink)}.link-icon{width:15px;height:15px;flex:none}.external-mark{font-size:11px}.forecast-chart{position:absolute;top:53px;left:6%;width:88%;height:145px;color:var(--ink)}.editorial-preview{position:absolute;top:63px;left:25px;right:25px}.editorial-title{font-family:var(--serif);font-size:30px;line-height:1.2}.editorial-rule{height:1px;background:var(--ink);opacity:.3;margin:9px 0}.editorial-columns{display:flex;gap:10px}.editorial-columns span{flex:1;height:24px;background:repeating-linear-gradient(to bottom,var(--line) 0,var(--line) 1px,transparent 1px,transparent 5px)}.editorial-match{font-size:9px;display:flex;justify-content:space-between;border-top:1px solid var(--line);padding-top:9px;margin-top:12px}.editorial-match span{color:var(--pink)}.off-duty-preview{display:flex;justify-content:space-between;align-items:center;gap:25px;border-bottom:1px solid var(--line);padding-block:50px}.off-duty-preview .eyebrow{margin-bottom:14px}.off-duty-preview p:not(.eyebrow){font-size:14px;color:var(--muted);margin:15px 0 0}.off-duty-preview>a{white-space:nowrap}.back-link{padding-top:40px}.hobby-page{min-height:70vh;padding-bottom:90px}.hobby-page .interest-photo{aspect-ratio:1.25}
@media(max-width:720px){.wordmark{font-size:21px;letter-spacing:-1px}.nav nav{gap:10px}.profile-links{gap:12px 17px;margin-top:24px}.profile-links a{font-size:11px}.current-role{font-size:13px}.off-duty-preview{display:block;padding-block:40px}.off-duty-preview>a{display:inline-block;margin-top:24px}.hobby-page{padding-bottom:60px}}
@media(max-width:370px){.wordmark{font-size:19px}.nav nav{gap:8px;font-size:9px}.theme-toggle{width:29px;height:29px;padding:5px}}

.section-heading>.text-link{display:inline-flex;align-items:center;gap:7px}.building-section{display:flex;align-items:center;justify-content:space-between;gap:25px;border-block:1px solid var(--line);padding-block:32px;scroll-margin-top:30px}.building-section .eyebrow{margin-bottom:10px}.building-section h2{font-size:30px}.building-dot{color:var(--pink)}.building-section p:not(.eyebrow){font-size:14px;color:var(--muted);margin:10px 0 0}.building-status{font-size:11px;color:var(--muted);white-space:nowrap}.off-duty-preview{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,340px);gap:70px;padding-block:48px}.glimpse-copy h2{font-size:32px;max-width:350px}.glimpse-copy>.text-link{display:inline-block;margin-top:22px}.glimpse-gallery{min-width:0}.glimpse-track{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;overscroll-behavior-x:contain;gap:12px;border-radius:3px}.glimpse-track::-webkit-scrollbar{display:none}.glimpse-slide{flex:0 0 100%;min-width:0;scroll-snap-align:start;scroll-snap-stop:always}.glimpse-slide .interest-photo{aspect-ratio:1.65}.glimpse-caption{display:flex;justify-content:space-between;margin-top:10px;font-size:11px;color:var(--muted)}.glimpse-caption>span{color:var(--pink)}.glimpse-controls{display:flex;align-items:center;justify-content:flex-end;gap:13px;margin-top:12px}.glimpse-controls button{border:1px solid var(--line);background:transparent;color:var(--ink);width:29px;height:29px;border-radius:50%;padding:0;font-size:13px}.glimpse-controls button:hover{border-color:var(--pink);color:var(--pink)}.glimpse-controls button:disabled{opacity:.3;cursor:default}.glimpse-controls>span{font-size:10px;color:var(--muted);font-variant-numeric:tabular-nums}
@media(max-width:720px){.building-section{align-items:flex-start;padding-block:26px}.building-status{margin-top:5px;font-size:10px}.building-section h2{font-size:28px}.off-duty-preview{display:grid;grid-template-columns:minmax(0,1fr);gap:27px}.glimpse-copy h2{font-size:29px}.glimpse-copy>.text-link{margin-top:15px}.glimpse-gallery{width:100%;max-width:380px}.glimpse-slide .interest-photo{aspect-ratio:1.8}}

.hero-photo{display:block;width:100%;height:100%;object-fit:cover}.toronto-photo{object-position:60% 50%}.aurora-photo{object-position:65% 65%}.interest-stars img{object-position:center 45%}

.company-mark{padding:4px;background:#fff;overflow:hidden;border-radius:5px}.company-mark img{display:block;width:100%;height:100%;object-fit:contain}.interest-racing img{object-position:center 48%}

.profile-links .linkedin-link{color:#0a66c2}.profile-links .github-link{color:#7952b3}.profile-links .social-link:hover{text-decoration:underline;text-underline-offset:4px}[data-theme="dark"] .profile-links .linkedin-link{color:#78b7f5}[data-theme="dark"] .profile-links .github-link{color:#c0a2ef}

.hobby-page{padding-top:30px}.hobby-page .interests-grid{display:block;columns:2;column-gap:26px;margin-top:0}.hobby-page .interest{break-inside:avoid;margin-bottom:26px}.hobby-page .interest-photo{aspect-ratio:auto;background:transparent}.hobby-page .interest-photo img{height:auto;width:100%;object-fit:contain}.hobby-page .interest-car img{object-position:center}
@media(max-width:720px){.hobby-page .interests-grid{columns:1}.hobby-page{padding-top:25px}}

.hobbies-title{font-size:36px;font-weight:500;letter-spacing:-1px;white-space:normal;margin:0 0 30px}.hobby-page .interests-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:30px 26px;columns:auto}.hobby-page .interest{margin:0;min-width:0}.hobby-page .interest-photo{aspect-ratio:4/3;background:var(--surface)}.hobby-page .interest-photo img{width:100%;height:100%;object-fit:cover}.hobby-page .interest-car img{object-position:center}.hobby-page .interest-racing img{object-position:center 48%}.hobby-page .interest figcaption.hobby-caption{padding-top:12px;color:var(--muted);font-size:13px;line-height:1.5}
@media(max-width:720px){.hobbies-title{font-size:30px;margin-bottom:24px}.hobby-page .interests-grid{grid-template-columns:minmax(0,1fr);gap:25px}}

.hobbies-slideshow{max-width:720px;margin-inline:auto}.hobby-page .hobby-track{display:flex;gap:0;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;overscroll-behavior-x:contain;border-radius:3px}.hobby-track::-webkit-scrollbar{display:none}.hobby-track:focus-visible{outline:2px solid var(--pink);outline-offset:7px}.hobby-page .hobby-track .interest{flex:0 0 100%;width:100%;scroll-snap-align:start;scroll-snap-stop:always}.hobby-page .hobby-track .interest-photo{aspect-ratio:4/3}.hobby-page .hobby-track .hobby-caption{min-height:52px;padding:13px 2px 0}.hobby-controls{display:flex;align-items:center;justify-content:center;gap:20px;margin-top:8px}.hobby-controls button{width:38px;height:38px;border:1px solid var(--line);border-radius:50%;background:transparent;color:var(--ink);padding:0}.hobby-controls button:hover{border-color:var(--pink);color:var(--pink)}.hobby-controls span{font-size:12px;color:var(--muted);font-variant-numeric:tabular-nums}.hobby-page:has(.hobbies-slideshow){min-height:0;padding-bottom:55px}

/* A compact Polaroid frame, a little larger than the homepage photos. */
.hobbies-slideshow{max-width:370px}.hobby-page .hobby-track{border-radius:0;padding:0;background:transparent}.hobby-page .hobby-track .interest{padding:12px 12px 0;background:var(--panel);border:1px solid var(--line);box-sizing:border-box}.hobby-page .hobby-track .interest-photo{aspect-ratio:1/1;border:0;border-radius:0;background:var(--surface)}.hobby-page .hobby-track .hobby-caption{min-height:65px;display:flex;align-items:center;justify-content:center;text-align:center;padding:14px 8px 18px;font-size:12px;color:var(--ink)}.hobby-controls{margin-top:22px}.hobby-page:has(.hobbies-slideshow){padding-top:25px;padding-bottom:50px}.hobbies-title{margin-bottom:25px}
@media(max-width:720px){.hobbies-slideshow{max-width:330px}.hobby-page .hobby-track .interest{padding:10px 10px 0}.hobby-page .hobby-track .hobby-caption{min-height:60px;font-size:11px}}

/* Match the personal preview to the gallery's compact Polaroid frames. */
.off-duty-preview{max-width:850px;grid-template-columns:minmax(0,1fr) 270px;gap:36px;padding-block:32px}.glimpse-gallery{width:270px;max-width:100%}.glimpse-track{border-radius:0;gap:12px}.glimpse-slide{padding:10px 10px 0;background:var(--panel);border:1px solid var(--line)}.glimpse-slide .interest-photo{aspect-ratio:1;border:0;border-radius:0}.glimpse-caption{min-height:52px;margin:0;padding:12px 6px 15px;align-items:center;justify-content:center;gap:12px;color:var(--ink);font-size:11px}.glimpse-controls{margin-top:12px;justify-content:center}.glimpse-copy h2{font-size:30px;max-width:300px}
@media(max-width:720px){.off-duty-preview{grid-template-columns:minmax(0,1fr);gap:20px;padding-block:30px}.glimpse-gallery{width:270px;margin-inline:auto}.glimpse-copy h2{font-size:28px;max-width:none}.glimpse-slide .interest-photo{aspect-ratio:1}}

.bigback-link:hover{color:var(--pink)}.bigback-arrow{color:var(--pink);font-size:20px;vertical-align:middle}

/* Native touch scrolling replaces the overlapping intro photos on small screens. */
@media(max-width:720px){
 .hero .scrapbook{position:relative;display:flex;align-items:flex-start;gap:16px;width:100%;max-width:350px;height:auto;min-width:0;margin:22px auto 0;padding:3px 0 9px;transform:none;overflow-x:auto;scroll-snap-type:x mandatory;overscroll-behavior-x:contain;scrollbar-width:none;isolation:auto}
 .hero .scrapbook::-webkit-scrollbar{display:none}
 .hero .scrapbook .polaroid{position:relative;inset:auto;flex:0 0 calc(100% - 28px);width:calc(100% - 28px);min-width:0;margin:0;padding:10px 10px 0;transform:none;scroll-snap-align:start;scroll-snap-stop:always;box-shadow:none}
 .hero .scrapbook .snapshot{height:auto;aspect-ratio:1}
 .hero .scrapbook .hero-photo{position:absolute;inset:0}
 .hero .scrapbook .polaroid p{min-height:38px;margin:0;padding:10px 3px 12px;font-size:11px}
 .hero .scrapbook:focus-visible{outline:2px solid var(--pink);outline-offset:4px}
}

.logo-star{width:23px;height:23px;display:inline-block;vertical-align:-2px;margin-left:5px;flex:none}.intro-photo-track{display:contents}.intro-photo-dots{display:none}
@media(max-width:720px){
 .hero .scrapbook{display:block;overflow:hidden;scroll-snap-type:none;touch-action:pan-y;padding:0 0 4px}
 .hero .scrapbook .intro-photo-track{display:flex;gap:0;width:100%;transition:transform .25s ease;will-change:transform}
 .hero .scrapbook .polaroid{flex:0 0 100%;width:100%;scroll-snap-align:none;user-select:none;-webkit-user-select:none}
 .hero .scrapbook img{-webkit-user-drag:none;user-select:none;pointer-events:none}
 .intro-photo-dots{display:flex;justify-content:center;gap:10px;padding-top:15px}
 .intro-photo-dots button{width:7px;height:7px;padding:0;border:0;border-radius:50%;background:var(--line)}
 .intro-photo-dots button[aria-pressed="true"]{background:var(--pink)}
}
