:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--header-height:48px;--footer-height:36px;--space-1:.55rem;--space-2:1rem;--space-3:1.6rem;--background:#121212;--foreground:#d7d7d7;--muted:#a1a1a1;--line:#2a2a2a;--preview-progress-base:#777;--preview-progress-overlay:#2e2e2e;--home-logo-filter:none;--osc-logo-filter:grayscale(1) brightness(0) invert(1)}:root[data-theme=light]{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--background:#f4f4f4;--foreground:#161616;--muted:#505050;--line:#d5d5d5;--preview-progress-base:#bdbdbd;--preview-progress-overlay:#555;--home-logo-filter:invert(1);--osc-logo-filter:grayscale(1) brightness(0)}*{box-sizing:border-box}html,body{min-height:100%}body{background-color:var(--background);color:var(--foreground);margin:0;font:400 15px/1.55 Iowan Old Style,Palatino Linotype,URW Palladio L,Times New Roman,serif}.night-sky{inset:var(--header-height) 0 var(--footer-height);z-index:0;pointer-events:none;opacity:1;transition:opacity .28s,visibility .28s;position:fixed;overflow:hidden}:root[data-theme=light] .night-sky{visibility:hidden;opacity:0}.night-sky__stars,.night-sky__shooting-stars{position:absolute;inset:0}.night-sky__stars{z-index:0}.night-sky__shooting-stars{z-index:1}.night-star{--night-star-size-scale:1;clip-path:polygon(50% 0,57% 43%,100% 50%,57% 57%,50% 100%,43% 57%,0 50%,43% 43%);background:var(--star-color,#f8f9ff);box-shadow:0 0 5px color-mix(in srgb, var(--star-color,#f8f9ff) 52%, transparent);opacity:.08;transform:scale(calc(.72 * var(--night-star-size-scale)));animation:night-star-twinkle var(--twinkle-duration) ease-in-out var(--twinkle-delay) infinite;position:absolute}.night-star:before,.night-star:after{content:"";opacity:.82;border-radius:999px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.night-star:before{background:linear-gradient(180deg, transparent, var(--star-color,#f8f9ff) 46%, var(--star-color,#f8f9ff) 54%, transparent);width:1px;height:calc(100% + 8px)}.night-star:after{background:linear-gradient(90deg, transparent, var(--star-color,#f8f9ff) 46%, var(--star-color,#f8f9ff) 54%, transparent);width:calc(100% + 8px);height:1px}.shooting-star{background:var(--shoot-color,#edf4ff);width:2px;height:2px;box-shadow:0 0 7px 1px color-mix(in srgb, var(--shoot-color,#edf4ff) 68%, transparent);opacity:0;animation:shooting-star-flight var(--shoot-duration) ease-in var(--shoot-delay) infinite;border-radius:50%;position:absolute;transform:rotate(135deg)translate(0)}.shooting-star:after{content:"";background:linear-gradient(90deg, transparent, var(--shoot-color,#edf4ff));width:110px;height:1px;position:absolute;top:50%;right:1px;transform:translateY(-50%)}@keyframes night-star-twinkle{0%,to{opacity:.08;transform:scale(calc(.72 * var(--night-star-size-scale)))}48%{opacity:var(--star-peak);transform:scale(calc(1.16 * var(--night-star-size-scale)))}}@keyframes shooting-star-flight{0%,78%{opacity:0;transform:rotate(135deg)translate(0)}80%{opacity:.9}91%{opacity:.82}to{opacity:0;transform:rotate(135deg)translate(82vw)}}.sky-easter-eggs{inset:var(--header-height) 0 var(--footer-height);z-index:5;pointer-events:none;position:fixed;overflow:hidden}.sky-meteors{position:absolute;inset:0}.sky-distant-meteors{inset:var(--header-height) 0 var(--footer-height);z-index:0;pointer-events:none;position:fixed;overflow:hidden}.sky-distant-meteors .shooting-star-target{pointer-events:none}.sky-shower-dimmer{z-index:85;opacity:0;pointer-events:none;background:#000;transition:opacity .45s;position:fixed;inset:0}.sky-shower-dimmer.is-active{opacity:.18}.layout,.bar{transition:opacity .45s}body:has(.sky-easter-eggs--shower) :is(.layout,.bar){opacity:.34}.sky-easter-eggs--shower{z-index:90}:root[data-theme=light] .sky-meteors{visibility:hidden;opacity:0;display:none}.shooting-star-target{pointer-events:auto;touch-action:manipulation;cursor:pointer;visibility:hidden;width:96px;height:96px;animation:wish-star-flight var(--shoot-duration) linear var(--shoot-delay) infinite both;background:0 0;border:0;border-radius:50%;margin:-26px;padding:0;position:absolute}.shooting-star-target .shooting-star{opacity:1;animation:none;top:47px;left:47px;transform:none}.shooting-star-target:focus-visible{outline:1px solid var(--shoot-color);outline-offset:3px;animation-play-state:paused}.shooting-star-target--meteor{animation-name:idle-meteor-flight}.shooting-star-target--meteor:focus-visible{--meteor-play-state:paused!important}.shooting-star-target--meteor .shooting-star{top:calc(48px - var(--meteor-size) / 2);left:calc(48px - var(--meteor-size));width:calc(var(--meteor-size) * 2);height:var(--meteor-size);box-shadow:0 0 3px 1px #fff, 0 0 9px 2px var(--shoot-color), 0 0 18px color-mix(in srgb, var(--shoot-color) 45%, transparent);animation:meteor-burn var(--shoot-duration) linear var(--shoot-delay) infinite both;animation-play-state:var(--meteor-play-state,running);background:#fff}.shooting-star-target--meteor .shooting-star:after{width:min(var(--meteor-trail), 55vmin);height:max(1px, calc(var(--meteor-size) * .65));background:linear-gradient(90deg, transparent, color-mix(in srgb, var(--shoot-color) 25%, transparent) 20%, var(--shoot-color) 78%, #fff);box-shadow:0 0 4px color-mix(in srgb, var(--shoot-color) 50%, transparent);clip-path:polygon(0 50%,100% 0,100% 100%);transform-origin:100%;animation:meteor-train var(--shoot-duration) linear var(--shoot-delay) infinite both;animation-play-state:var(--meteor-play-state,running)}.shooting-star-target--meteor .shooting-star:before{content:"";width:min(var(--meteor-trail), 55vmin);height:calc(var(--meteor-size) * 2);background:linear-gradient(90deg, transparent, color-mix(in srgb, var(--shoot-color) 16%, transparent));transform-origin:100%;animation:meteor-train var(--shoot-duration) linear var(--shoot-delay) infinite both;animation-play-state:var(--meteor-play-state,running);border-radius:50%;position:absolute;top:50%;right:0}.shooting-star-target--distant .shooting-star{box-shadow:0 0 3px #fff, 0 0 8px var(--shoot-color)}.sky-wish{border:1px solid var(--line);color:var(--foreground);background:var(--background);letter-spacing:.04em;border-radius:999px;padding:.65rem 1.2rem;font-size:1rem;position:absolute;bottom:2rem;left:50%;transform:translate(-50%)}.sky-easter-eggs--shower .sky-wish:not(.sky-shower-message){bottom:5.5rem}.sky-constellation{width:min(240px,44vw);color:var(--foreground);background:radial-gradient(ellipse, var(--background), transparent 72%);margin:0;animation:4s both constellation-reveal;position:absolute;top:1.5rem;right:1rem}.sky-constellation svg{width:100%;display:block;overflow:visible}.sky-constellation path{fill:none;stroke:currentColor;stroke-width:.35px;opacity:.55}.sky-constellation polygon{fill:currentColor;filter:drop-shadow(0 0 2px)}.sky-constellation figcaption{text-align:center;text-wrap:balance;font-size:.875rem}@keyframes wish-star-flight{0%,78%{visibility:hidden;opacity:0;transform:rotate(135deg)translate(0)}78.01%{visibility:visible;opacity:0}80%{opacity:.9}91%{opacity:.82}99.99%{visibility:visible}to{visibility:hidden;opacity:0;transform:rotate(135deg)translate(82vw)}}@keyframes idle-meteor-flight{0%{visibility:hidden;opacity:0;transform:rotate(var(--meteor-angle)) translateX(0)}.01%{visibility:visible}2%{opacity:.8}5%,12%{opacity:1}18%{opacity:.6}21.99%{visibility:visible;opacity:0}22%,to{visibility:hidden;opacity:0;transform:rotate(var(--meteor-angle)) translateX(var(--meteor-travel))}}@keyframes meteor-burn{0%,22%,to{opacity:0}2%{opacity:.65}5%,11%{opacity:1}16%{opacity:.85}19%{opacity:.25}}@keyframes meteor-train{0%,to{opacity:0;transform:translateY(-50%)scaleX(.05)}3%{opacity:.65;transform:translateY(-50%)scaleX(.3)}8%{opacity:1;transform:translateY(-50%)scaleX(.85)}13%{opacity:.8;transform:translateY(-50%)scaleX(1)}19%{opacity:.2;transform:translateY(-50%)scaleX(.65)}22%{opacity:0;transform:translateY(-50%)scaleX(.4)}}@keyframes constellation-reveal{0%,to{opacity:0}12%,82%{opacity:1}}@media (prefers-reduced-motion:reduce){.sky-meteors,.sky-shower-dimmer,.sky-distant-meteors{display:none}.sky-constellation{animation:none}}@media (max-width:700px),(hover:none),(pointer:coarse){.sky-shower-dimmer,.sky-distant-meteors,.shooting-star-target--meteor,.sky-constellation,.sky-shower-message{display:none}}:root[data-theme=light] .sky-shower-dimmer,:root[data-theme=light] .sky-distant-meteors{display:none}@media (hover:none),(pointer:coarse){.sky-easter-eggs--playground .shooting-star-target:not(.shooting-star-target--meteor){display:none}}::view-transition-old(root){animation-duration:.28s;animation-timing-function:ease}::view-transition-new(root){animation-duration:.28s;animation-timing-function:ease}@view-transition{navigation:auto}h1,h2,h3,p{margin:0}a,button{color:inherit;font:inherit;text-decoration:none}button{cursor:pointer;background:0 0;border:0;padding:0}.container{width:min(840px,100% - 2rem);margin:0 auto}.layout.container{width:min(760px,100% - 2rem)}.bar{z-index:20;background:var(--background);position:fixed;left:0;right:0}.topbar{height:var(--header-height);border-bottom:1px solid var(--line);top:0}.bottombar{height:var(--footer-height);bottom:0}.topbar-content,.footer-content{justify-content:space-between;align-items:center;gap:var(--space-2);height:100%;color:var(--muted);font-size:.86rem;display:flex}.footer-webring{--webring-size:.86rem;--webring-color:currentColor;--webring-accent:var(--text);color:var(--muted);justify-content:center;align-items:center;display:flex}.footer-views{font-variant-numeric:tabular-nums;align-items:center;gap:.42rem;display:inline-flex}.footer-eye{fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.45px;flex:none;width:.96rem;height:.7rem}.footer-eye circle{fill:currentColor;stroke:none}.topbar-actions{align-items:center;gap:.85rem;display:flex}.text-btn.home-link{align-items:center;gap:.02rem;line-height:0;display:inline-flex}.home-link img{object-fit:contain;width:1.35rem;height:1.35rem;filter:var(--home-logo-filter);transition:filter .28s;display:block}.text-btn,.text-link{transition:color .18s,transform .18s;position:relative}.text-btn{color:var(--muted);font-size:.84rem}.text-btn:after,.text-link:after{content:"";background:var(--foreground);transform-origin:0;height:1px;transition:transform .18s;position:absolute;bottom:-.1em;left:0;right:0;transform:scaleX(0)}:is(.text-btn:hover,.text-btn:focus-visible,.text-link:hover,.text-link:focus-visible){color:var(--foreground)}.text-btn:hover:after,.text-link:hover:after{transform:scaleX(1)}.text-btn:focus-visible:after{transform:scaleX(1)}.text-link:focus-visible:after{transform:scaleX(1)}.text-btn:active,.text-link:active{transform:translateY(1px)}.visually-hidden{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.theme-toggle{border-radius:999px;place-items:center;width:1.75rem;height:1.75rem;display:inline-grid}.theme-toggle:after{display:none}.theme-toggle:before{content:"";border-radius:inherit;opacity:0;background:radial-gradient(circle,#7f7f7f47 0%,#0000 72%);position:absolute;inset:0;transform:scale(.35)}.theme-toggle:active:before{animation:.22s ease-out theme-ripple}.theme-toggle:focus-visible{color:var(--foreground);outline:2px solid var(--foreground);outline-offset:2px}.theme-icon{fill:none;stroke:currentColor;stroke-width:1.7px;stroke-linecap:round;stroke-linejoin:round;width:1.1rem;height:1.1rem;transition:transform .26s}.theme-icon__sun,.theme-icon__moon,.theme-icon__rays{transform-origin:50%;transition:opacity .22s,transform .26s}.theme-icon__sun{opacity:0;transform:scale(.6)}.theme-icon__moon{opacity:1;stroke:none;fill:currentColor;transform:scale(1)}.theme-icon__rays{opacity:0;transform:scale(.65)}.theme-toggle.is-dark .theme-icon{transform:rotate(0)}.theme-toggle:not(.is-dark) .theme-icon{transform:rotate(-36deg)}.theme-toggle:not(.is-dark) .theme-icon__sun,.theme-toggle:not(.is-dark) .theme-icon__rays{opacity:1;transform:scale(1)}.theme-toggle:not(.is-dark) .theme-icon__moon{opacity:0;transform:scale(.72)}@keyframes theme-ripple{0%{opacity:.42;transform:scale(.35)}to{opacity:0;transform:scale(1.45)}}.layout{z-index:1;min-height:100vh;padding-block:calc(var(--header-height) + 3.2rem) calc(var(--footer-height) + var(--space-3));align-content:start;gap:var(--space-3);font-size:.92rem;display:grid;position:relative}.layout:before{content:"";z-index:-1;inset:var(--header-height) max(-2.75rem, calc(50% - 50vw)) 0;pointer-events:none;background:linear-gradient(90deg, transparent, color-mix(in srgb, var(--background) 72%, transparent) 12%, color-mix(in srgb, var(--background) 72%, transparent) 88%, transparent);position:absolute}.hero{gap:.9rem;display:grid}.hero h1{font-size:3.3rem;font-weight:560;line-height:1.1}.hero-heading{justify-content:space-between;align-items:center;gap:var(--space-2);display:flex}.social-links{flex:none;align-items:center;gap:.9rem;display:flex}.social-link{width:1.9rem;height:1.9rem;color:var(--muted);border-radius:.2rem;place-items:center;transition:color .18s,transform .18s;display:grid}:is(.social-link:hover,.social-link:focus-visible){color:var(--foreground)}.social-link:focus-visible{outline:1px solid var(--foreground);outline-offset:3px}.social-link:active{transform:translateY(1px)}.social-link svg{fill:none;stroke:currentColor;stroke-width:1.65px;stroke-linecap:round;stroke-linejoin:round;width:1.5rem;height:1.5rem;display:block}.subtitle,.hero-description,.resume-item>p,.project-description,.service-description,.skills-list,.data-note,.placeholder-copy,.ranking-card li{color:var(--muted)}.subtitle{font-size:1rem;line-height:1.7}.subtitle-separator{color:var(--muted);margin-inline:.58rem;display:inline-block}.hero-description{width:100%;max-width:none;padding:1.55rem 0 1.1rem}.mode-serious .hero-description{max-width:none;padding-block:2rem 1.5rem;line-height:1.85}.hero-postscript{margin-top:1.55rem}.mode-content{gap:3rem;padding-bottom:4rem;display:grid}.serious-content{gap:3.5rem}.fun-content{gap:2rem}.fun-content .section{gap:.58rem}.side-quest-index{width:100%;color:var(--foreground);font:inherit;gap:.55rem;display:grid}.side-quest-index-row{grid-template-columns:repeat(5,minmax(0,1fr));align-items:stretch;column-gap:.75rem;width:100%;display:grid}.side-quest-index-item{justify-content:center;align-items:center;min-width:0;display:inline-flex;position:relative}.side-quest-index-divider{color:currentColor;opacity:.5;width:auto;position:absolute;top:50%;left:-.375rem;transform:translate(-50%,-50%)}.side-quest-index-link{color:inherit;text-align:center;white-space:normal;line-height:1.25}.side-quest-index-link:after{background:currentColor}:is(.side-quest-index-link:hover,.side-quest-index-link:focus-visible){color:#fff}:is(:root[data-theme=light] .side-quest-index-link:hover,:root[data-theme=light] .side-quest-index-link:focus-visible){color:#000}.fun-content .section,.fun-content .dropdown-entry[id],.fun-content .collection-static-entry[id]{scroll-margin-top:calc(var(--header-height) + 1rem)}.serious-content .section{gap:1.4rem;padding-block:.75rem}.serious-content .entries,.serious-content .education-entries{gap:2.25rem}.serious-content .resume-item>p{max-width:38rem;line-height:1.9}.section{gap:.75rem;display:grid}.section h2{font-size:1.18rem;font-weight:530}.entries{gap:1.4rem;display:grid}.education-entry{align-items:center;gap:var(--space-2);grid-template-columns:64px minmax(0,1fr);display:grid}.education-entries{gap:1.45rem;display:grid}.education-logo{object-fit:contain;display:block}.education-logo--uoft{justify-self:center;width:42px;height:42px}.education-logo--osc{width:34px;height:31px;filter:var(--osc-logo-filter);object-fit:cover;object-position:left center;justify-self:center;transition:filter .28s}.resume-item,.skills-list{gap:.18rem;display:grid}.resume-item h3,.skills-list h3,.ranking-card h3{font-size:.96rem;font-weight:520}.entry-head{justify-content:space-between;align-items:baseline;gap:var(--space-2);display:flex}.entry-dates{color:color-mix(in srgb, var(--muted) 78%, transparent);letter-spacing:.01em;text-align:right;white-space:nowrap;flex:none;font-size:.8rem}.item-detail{margin-top:.15rem;font-size:.86rem}.project-description{max-width:46rem}.external-link-icon{fill:none;stroke:currentColor;stroke-width:1.8px;stroke-linecap:round;stroke-linejoin:round;vertical-align:-.08em;width:.88em;height:.88em;margin-left:.68rem;transition:transform .18s;display:inline-block;overflow:visible}:is(.text-link:hover .external-link-icon,.text-link:focus-visible .external-link-icon){transform:translate(2px,-2px)}.photo-pinterest-link .external-link-icon{margin-left:.3rem}.skills-list strong{color:var(--foreground);font-weight:520}.subsection-item{transition:transform .18s}.subsection-item:hover,.subsection-item:focus-within{transform:translate(.35rem)}.listening-rankings{columns:3 13rem;column-gap:var(--space-3);column-fill:balance;margin-top:.85rem}.dropdown-list{gap:.28rem;padding-left:1rem;display:grid}.dropdown-entry summary{color:var(--foreground);cursor:pointer;justify-content:flex-start;align-items:center;gap:.55rem;padding-block:.48rem;font-size:.96rem;font-weight:520;list-style:none;transition:color .18s;display:flex}.collection-static-entry>h3{color:var(--foreground);font-size:.96rem;font-weight:520;line-height:inherit;margin:0;padding:.48rem 0 .48rem .93rem}.dropdown-entry summary::-webkit-details-marker{display:none}.dropdown-entry summary:before{content:"";border-right:1.5px solid var(--muted);border-bottom:1.5px solid var(--muted);transform-origin:50%;flex:none;width:.38rem;height:.38rem;transition:border-color .18s,transform .18s;transform:rotate(45deg)translate(-.08rem,-.08rem)}.dropdown-entry[open] summary:before{transform:rotate(225deg)translate(-.08rem,-.08rem)}.dropdown-entry summary:hover:before{border-color:var(--foreground)}.dropdown-entry summary:focus-visible:before{border-color:var(--foreground)}.dropdown-entry summary:focus-visible{outline:1px solid var(--foreground);outline-offset:3px}.dropdown-content{gap:.65rem;max-width:42rem;padding:.15rem 0 .9rem .95rem;display:grid}.media-placeholder{min-height:8rem;padding:var(--space-2);border:1px dashed var(--line);color:var(--muted);text-align:center;place-items:center;font-size:.84rem;display:grid}.media-placeholder--gallery{min-height:11rem}#collections .dropdown-content>.media-placeholder,#collections .dropdown-content>.pokemon-card-wheel,.food-photo-dropdown{margin-top:.85rem}.listening-preview{gap:.6rem;margin:.1rem 0 1.25rem;display:grid}.listening-preview-heading{justify-content:space-between;align-items:baseline;gap:var(--space-2);color:var(--muted);font-size:.82rem;display:flex}.listening-preview-heading strong{min-width:0;color:var(--foreground);text-align:right;text-overflow:ellipsis;white-space:nowrap;font-weight:520;overflow:hidden}.listening-preview-status{justify-content:flex-end;align-items:center;gap:.45rem;min-width:0;display:flex}.listening-preview-heading .listening-preview-prompt{color:var(--muted)}.cover-instruction-tap{display:none}@media (hover:none),(pointer:coarse){.cover-instruction-hover{display:none}.cover-instruction-tap{display:inline}}.listening-preview-progress{background:conic-gradient(var(--preview-progress-overlay) 0 var(--preview-progress), var(--preview-progress-base) var(--preview-progress) 360deg);border-radius:50%;flex:none;width:.72rem;height:.72rem}.listening-cover-wheel{overscroll-behavior-inline:contain;scrollbar-color:var(--line) transparent;scrollbar-width:thin;scroll-snap-type:x proximity;gap:.85rem;padding:.7rem .2rem .9rem;display:flex;overflow-x:auto}.listening-cover-wheel.is-touch-dragging{scroll-snap-type:none;scroll-behavior:auto}.listening-cover-wheel-item{scroll-snap-align:start;flex:0 0 112px}.listening-cover-thumbnail{-webkit-touch-callout:none;touch-action:none;-webkit-user-select:none;user-select:none;border:1px solid #0000;border-radius:7px;width:100%;transition:border-color .18s,box-shadow .18s,filter .18s,transform .18s;display:block;overflow:hidden}.listening-cover-thumbnail img{aspect-ratio:1;border-radius:inherit;object-fit:contain;width:100%;height:auto;display:block}:is(.listening-cover-thumbnail:hover,.listening-cover-thumbnail:focus-visible,.listening-cover-thumbnail.is-previewing){color:var(--foreground);filter:brightness(1.08);box-shadow:0 0 0 1px currentColor, 0 0 20px color-mix(in srgb, currentColor 28%, transparent);border-color:currentColor;transform:translateY(-7px)}@media (hover:none),(pointer:coarse){.listening-cover-thumbnail:hover:not(.is-previewing){filter:none;box-shadow:none;border-color:#0000;transform:none}}.listening-volume{width:max-content;color:var(--muted);grid-template-columns:auto 112px auto;align-items:center;gap:.7rem;font-size:.78rem;display:grid}.listening-volume input{width:100%;accent-color:var(--foreground);cursor:pointer}.listening-volume output{color:var(--muted);font-variant-numeric:tabular-nums;text-align:left}.listening-text-placeholder{margin:0}.pokemon-card-wheel{overscroll-behavior-inline:contain;scrollbar-color:var(--line) transparent;scrollbar-width:thin;scroll-snap-type:x proximity;gap:.75rem;padding:.2rem .15rem .8rem;display:flex;overflow-x:auto}.pokemon-card-wheel-item{scroll-snap-align:start;flex:0 0 104px}.pokemon-card-thumbnail{border-radius:6px;width:100%;transition:filter .18s,transform .18s;display:block}.pokemon-card-thumbnail img{aspect-ratio:320/447;border-radius:inherit;object-fit:cover;width:100%;height:auto;display:block;box-shadow:0 5px 14px #0000003d}:is(.pokemon-card-thumbnail:hover,.pokemon-card-thumbnail:focus-visible){filter:brightness(1.08);transform:translateY(-3px)}:is(.pokemon-card-thumbnail:focus-visible,.photo-gallery-thumbnail:focus-visible,.photo-gallery-close:focus-visible,.photo-gallery-nav:focus-visible,.photo-gallery-expanded:focus-visible,.pokemon-card-close:focus-visible,.pokemon-card-nav:focus-visible,.pokemon-card-expanded-link:focus-visible,.listening-cover-thumbnail:focus-visible,.listening-cover-close:focus-visible,.listening-cover-nav:focus-visible,.listening-cover-expanded-link:focus-visible){outline-offset:3px;outline:2px solid}.pokemon-card-lightbox,.listening-cover-lightbox,.photo-gallery-lightbox{z-index:80;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#050505d1;place-items:center;padding:3.5rem 1.25rem 2rem;animation:.18s ease-out pokemon-lightbox-in;display:grid;position:fixed;inset:0}.pokemon-card-dialog,.listening-cover-dialog,.photo-gallery-dialog{color:#f4f4f4;grid-template-columns:2.75rem minmax(0,1fr) 2.75rem;align-items:center;gap:.8rem;width:min(620px,100%);display:grid;position:relative}.pokemon-card-expanded-link,.listening-cover-expanded-link,.photo-gallery-expanded{cursor:pointer;border-radius:10px;grid-column:2;justify-items:center;display:grid}.pokemon-card-expanded-link img,.listening-cover-expanded-link img,.photo-gallery-expanded img{border-radius:inherit;object-fit:contain;width:auto;max-width:100%;max-height:74vh;display:block;box-shadow:0 18px 48px #0000007a}.pokemon-card-close,.listening-cover-close,.photo-gallery-close{color:#f4f4f4;border:1px solid #f4f4f4b8;border-radius:999px;width:2.25rem;height:2.25rem;font-size:1.35rem;line-height:1;position:absolute;top:0;right:2.75rem;transform:translateY(-50%)}.pokemon-card-nav,.listening-cover-nav,.photo-gallery-nav{color:#f4f4f4;border:1px solid #f4f4f46b;border-radius:999px;width:2.25rem;height:2.25rem;font-size:1rem;transition:border-color .18s,transform .18s}.pokemon-card-nav:hover,.listening-cover-nav:hover,.photo-gallery-nav:hover{border-color:#f4f4f4;transform:scale(1.06)}.pokemon-card-nav--previous,.listening-cover-nav--previous,.photo-gallery-nav--previous{grid-column:1}.pokemon-card-nav--next,.listening-cover-nav--next,.photo-gallery-nav--next{grid-column:3}.pokemon-card-caption,.listening-cover-caption,.photo-gallery-caption{text-align:center;grid-column:1/-1;gap:.2rem;display:grid}.pokemon-card-caption h3,.listening-cover-caption h3{font-size:.92rem;font-weight:520}.pokemon-card-caption p,.listening-cover-caption p,.photo-gallery-caption p{color:#f4f4f4a8;font-size:.78rem}@keyframes pokemon-lightbox-in{0%{opacity:0}to{opacity:1}}.listening-cover-dialog{width:min(560px,100%)}.listening-cover-expanded-link img{aspect-ratio:1;width:min(68vh,100%)}.photo-gallery-grid{grid-template-columns:repeat(5,minmax(0,1fr));gap:.5rem;margin-top:.85rem;display:grid}.photo-gallery-grid--3{grid-template-columns:repeat(3,minmax(0,1fr))}.photo-gallery-grid--6{grid-template-columns:repeat(6,minmax(0,1fr))}.photo-gallery-column{flex-direction:column;gap:.5rem;min-width:0;display:flex}.photo-gallery-thumbnail{cursor:zoom-in;border-radius:4px;width:100%;transition:filter .18s,transform .18s;display:block;overflow:hidden}.photo-gallery-thumbnail img{border-radius:inherit;width:100%;height:auto;display:block}:is(.photo-gallery-thumbnail:hover,.photo-gallery-thumbnail:focus-visible){filter:brightness(1.08);transform:translateY(-2px)}.photo-gallery-dialog{width:min(820px,100%)}.photo-gallery-expanded{cursor:zoom-out;width:100%;min-width:0;max-width:100%}.photo-gallery-expanded img{max-height:78vh}.ranking-card{min-width:0;margin:0 0 var(--space-2);break-inside:auto}.ranking-card h3{break-after:avoid}.ranking-card ol{margin:var(--space-1) 0 0;padding:0;list-style:none}.ranking-card li{break-inside:avoid;grid-template-columns:1.6rem minmax(0,1fr) auto;gap:.35rem;font-size:.84rem;line-height:1.65;display:grid}.ranking-card .ranking-time{color:var(--muted);font-variant-numeric:tabular-nums;white-space:nowrap}.ranking-card li span:first-child{color:var(--line);font-variant-numeric:tabular-nums}.gaming-widgets{grid-template-columns:repeat(2,minmax(0,1fr));gap:2rem;margin-top:1.5rem;display:grid}.gaming-widget h3,.gaming-widget p,.recently-played-placeholder{margin:0}.steam-empty-state{color:var(--muted);margin-top:.35rem;font-size:.84rem;line-height:1.65}.gaming-widget h3{color:var(--muted);font-size:.95rem}.gaming-widget-label{color:var(--muted);font-size:.82rem;margin-top:.3rem!important}.gaming-widget-value{font-size:1.35rem;margin-top:.35rem!important}.recently-played-placeholder{color:var(--muted);margin-top:.35rem;padding:0;font-size:.84rem;line-height:1.65;list-style-position:inside}.gaming-widget .data-note{margin-top:.45rem}.clash-player-name{font-size:.78rem}.clash-player-tag{font-size:.66rem}@media (max-width:700px){:root{--footer-height:44px}.container{width:calc(100% - 1.2rem)}.layout.container{width:calc(100% - 2rem)}.hero h1{font-size:2.75rem}.hero-heading{gap:.75rem}.social-links{gap:.68rem}.social-link{width:1.72rem;height:1.72rem}.social-link svg{width:1.38rem;height:1.38rem}.gaming-widgets{grid-template-columns:1fr;gap:1.25rem}.pokemon-card-wheel-item{flex-basis:96px}.hero-description{padding-top:1.25rem}.entry-head{align-items:flex-start}.dropdown-list{grid-template-columns:1fr}.listening-rankings{columns:1}}@media (max-width:520px){:root[data-theme=dark] .night-star{--night-star-size-scale:.68}:root[data-theme=dark] .night-star:nth-child(3n){display:none}:root{--header-height:44px;--footer-height:38px}body{font-size:14px}.container{width:calc(100% - 1rem)}.layout.container{width:calc(100% - 1.25rem)}.topbar-content,.footer-content{gap:.55rem;font-size:.75rem}.footer-content{position:relative}.footer-webring{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.topbar-actions{gap:.5rem}.home-link,.page-links .text-btn,.theme-toggle{min-height:44px}.home-link{justify-content:center;min-width:44px}.page-links .text-btn{align-items:center;display:inline-flex}.home-link img{width:1.12rem;height:1.12rem}.theme-toggle{width:44px;height:44px}.theme-icon{width:.96rem;height:.96rem}.footer-eye{width:.82rem;height:.6rem}.layout{padding-block:calc(var(--header-height) + 2rem) calc(var(--footer-height) + 1rem);gap:1.2rem;font-size:.86rem}.layout:before{background:color-mix(in srgb, var(--background) 66%, transparent);inset-inline:-.625rem}.hero{gap:.65rem}.hero-heading{gap:.4rem}.hero h1{white-space:nowrap;flex:0 auto;font-size:clamp(2rem,10vw,2.25rem)}.social-links{grid-template-columns:repeat(2,44px);justify-content:end;gap:0 .2rem;display:grid}.social-link{width:44px;height:44px}.mode-serious .social-links{gap:0;display:flex}.social-link svg{width:1.08rem;height:1.08rem}.subtitle{font-size:.88rem;line-height:1.55}.subtitle-separator{margin-inline:.35rem}.external-link-icon{width:.75em;height:.75em;margin-left:.3rem}.hero-description,.mode-serious .hero-description{padding-block:1.05rem .75rem;line-height:1.68}.hero-postscript{margin-top:1rem}.mode-content{padding-bottom:3rem}.serious-content{gap:2.35rem}.fun-content{gap:1.45rem}.section,.fun-content .section{gap:.48rem}.serious-content .section{gap:.9rem;padding-block:.45rem}.section h2{font-size:1.04rem}.resume-item h3,.skills-list h3,.ranking-card h3,.dropdown-entry summary,.collection-static-entry>h3{font-size:.88rem}.entries,.serious-content .entries,.serious-content .education-entries{gap:1.2rem}.serious-content .resume-item>p{line-height:1.68}.item-detail,.data-note,.steam-empty-state,.recently-played-placeholder,.ranking-card li{font-size:.76rem}.side-quest-index{gap:.4rem;font-size:.7rem}.side-quest-index-link{justify-content:center;align-items:center;min-height:44px;display:inline-flex}.side-quest-index-row{column-gap:.45rem}.side-quest-index-divider{left:-.225rem}.dropdown-list{padding-left:.55rem}.dropdown-content{gap:.5rem;padding:.1rem 0 .65rem .6rem}.listening-preview-heading{gap:.5rem;font-size:.73rem}.listening-cover-wheel{gap:.55rem;padding-block:.55rem .7rem}.listening-cover-wheel-item{flex-basis:88px}.listening-volume{grid-template-columns:auto 88px auto;gap:.45rem;font-size:.7rem}.pokemon-card-wheel{gap:.5rem}.pokemon-card-wheel-item{flex-basis:78px}.photo-gallery-grid{gap:.35rem;width:calc(100% - .5rem);margin:.65rem auto 0}.photo-gallery-column{gap:.35rem}.gaming-widgets{gap:.9rem;margin-top:1rem}.pokemon-card-lightbox,.listening-cover-lightbox,.photo-gallery-lightbox{padding-inline:.75rem}.pokemon-card-dialog,.listening-cover-dialog,.photo-gallery-dialog{grid-template-columns:2.25rem minmax(0,1fr) 2.25rem;gap:.45rem}.pokemon-card-close,.listening-cover-close,.photo-gallery-close{right:2.25rem}.education-entry{grid-template-columns:46px minmax(0,1fr);align-items:start}.education-logo--uoft{width:34px;height:34px}.education-logo--osc{width:28px;height:26px}.entry-head{gap:.05rem;display:grid}.entry-dates{text-align:left;white-space:normal}}@media (prefers-reduced-motion:reduce){.subsection-item,.social-link,.text-btn,.text-link,.external-link-icon,.home-link img,.theme-icon,.theme-icon__sun,.theme-icon__moon,.theme-icon__rays,.dropdown-entry summary,.dropdown-entry summary:before,.pokemon-card-thumbnail,.pokemon-card-nav,.photo-gallery-thumbnail,.photo-gallery-nav,.listening-cover-thumbnail,.listening-cover-nav{transition:none}.pokemon-card-lightbox,.listening-cover-lightbox,.photo-gallery-lightbox,.theme-toggle:active:before{animation:none}.night-star{opacity:.22;animation:none;transform:none}.shooting-star{display:none}}@media (max-width:360px){.mode-serious .hero h1{font-size:clamp(1.75rem,9vw,2rem)}}.page-links{align-items:center;gap:1.25rem;display:flex}:root[data-theme=light] .night-star{animation-play-state:paused}
