.phone-frame[data-astro-cid-k7mbr7da],.phone-frame__screen[data-astro-cid-k7mbr7da]{display:contents}.phone-frame__button[data-astro-cid-k7mbr7da],.phone-frame__island[data-astro-cid-k7mbr7da]{display:none}@media (width>=64rem) and (hover:hover) and (pointer:fine){body{background:#e5e3df url(/personal-site/images/background-images/ocean.jpg) 50%/cover no-repeat fixed;place-items:center;display:grid}.phone-frame[data-astro-cid-k7mbr7da]{aspect-ratio:417/876;background:#151515;border:1px solid #080808;border-radius:3.25rem;width:auto;height:min(876px,100dvh - 2rem);padding:12px;display:block;position:relative;box-shadow:0 1.25rem 2.5rem #00000038}.phone-frame__screen[data-astro-cid-k7mbr7da]{z-index:1;background:var(--header-background);border-radius:2.5rem;height:100%;padding-top:2.2rem;display:block;position:relative;overflow:hidden}.phone-frame__island[data-astro-cid-k7mbr7da]{z-index:4;background:#080808;border-radius:999px;width:7.25rem;height:1.65rem;display:block;position:absolute;top:.65rem;left:50%;transform:translate(-50%)}.phone-frame__button[data-astro-cid-k7mbr7da]{z-index:0;background:#292929;border-radius:999px;width:.25rem;display:block;position:absolute}.phone-frame__button--mute[data-astro-cid-k7mbr7da]{height:1.5rem;top:7rem;left:-.25rem}.phone-frame__button--volume-up[data-astro-cid-k7mbr7da]{height:2.75rem;top:10rem;left:-.25rem}.phone-frame__button--volume-down[data-astro-cid-k7mbr7da]{height:2.75rem;top:13.25rem;left:-.25rem}.phone-frame__button--power[data-astro-cid-k7mbr7da]{height:4rem;top:10rem;right:-.25rem}.phone-frame__screen[data-astro-cid-k7mbr7da] .site-content{border-radius:inherit;width:100%;max-width:none;height:100%;margin:0}}.coral-pixels-regular{font-family:Coral Pixels,serif;font-style:normal;font-weight:400}.space-mono-regular{font-family:Space Mono,monospace;font-style:normal;font-weight:400}.space-mono-bold{font-family:Space Mono,monospace;font-style:normal;font-weight:700}.space-mono-regular-italic{font-family:Space Mono,monospace;font-style:italic;font-weight:400}.space-mono-bold-italic{font-family:Space Mono,monospace;font-style:italic;font-weight:700}.ibm-plex-mono-thin{font-family:IBM Plex Mono,monospace;font-style:normal;font-weight:100}.ibm-plex-mono-extralight{font-family:IBM Plex Mono,monospace;font-style:normal;font-weight:200}.ibm-plex-mono-light{font-family:IBM Plex Mono,monospace;font-style:normal;font-weight:300}.ibm-plex-mono-regular{font-family:IBM Plex Mono,monospace;font-style:normal;font-weight:400}.ibm-plex-mono-medium{font-family:IBM Plex Mono,monospace;font-style:normal;font-weight:500}.ibm-plex-mono-semibold{font-family:IBM Plex Mono,monospace;font-style:normal;font-weight:600}.ibm-plex-mono-bold{font-family:IBM Plex Mono,monospace;font-style:normal;font-weight:700}.ibm-plex-mono-thin-italic{font-family:IBM Plex Mono,monospace;font-style:italic;font-weight:100}.ibm-plex-mono-extralight-italic{font-family:IBM Plex Mono,monospace;font-style:italic;font-weight:200}.ibm-plex-mono-light-italic{font-family:IBM Plex Mono,monospace;font-style:italic;font-weight:300}.ibm-plex-mono-regular-italic{font-family:IBM Plex Mono,monospace;font-style:italic;font-weight:400}.ibm-plex-mono-medium-italic{font-family:IBM Plex Mono,monospace;font-style:italic;font-weight:500}.ibm-plex-mono-semibold-italic{font-family:IBM Plex Mono,monospace;font-style:italic;font-weight:600}.ibm-plex-mono-bold-italic{font-family:IBM Plex Mono,monospace;font-style:italic;font-weight:700}.rubik-moonrocks-regular{font-family:Rubik Moonrocks,sans-serif;font-style:normal;font-weight:400}.geist-pixel{font-optical-sizing:auto;font-variation-settings:"ELSH" 0;font-family:Geist Pixel,sans-serif;font-style:normal;font-weight:400}:root{--page-background:#f6f0ea;--page-text:#000;--border-color:#e6e6df;--header-color:#adda42;--header-background:#f2f0e7;--footer-color:#181818;--footer-control-border:#474745;--shell-width:100%;--content-width:min(100% - 4rem, 60rem);color:var(--page-text);background:#f6f5f5;font-family:Verdana,Geneva,sans-serif;font-size:13px}*{box-sizing:border-box}body{background-color:#e5e3df;min-width:0;height:100dvh;margin:0;line-height:1.55;overflow:hidden}@media (width>=64rem) and (hover:hover) and (pointer:fine){body{background-image:linear-gradient(#00000026,#00000026),url(/personal-site/_astro/ocean.BYlDQyQN.jpg);background-position:50%;background-repeat:no-repeat;background-size:cover}}.site-content{background:var(--page-background);grid-template-rows:auto minmax(0,1fr);width:100%;max-width:440px;height:100dvh;margin-inline:auto;display:grid;overflow:hidden}@media (width>=48rem){.site-content{max-width:none}}a{color:inherit;text-underline-offset:.18em}a:hover{color:#6a4b23}a:visited{color:#3d2c83}header p{font-size:.75rem}:focus-visible{outline-offset:3px;outline:2px solid}.site-header,.site-footer{width:100%;margin:0;padding:.55rem 1rem;position:static}.site-header{background-color:var(--header-background);padding-top:calc(.55rem + env(safe-area-inset-top));background-position:50%;border-bottom:.25px dashed #6b2a2a}.site-footer{z-index:3;background:var(--footer-color);color:var(--page-background);border-top:1px solid #f6f6ef40;position:relative}.site-header__inner,.site-footer__inner{width:100%;margin:0 auto}.page{width:calc(100% - 2rem);margin:0 auto}.site-header__inner,.site-footer__inner{justify-content:center;align-items:center;display:flex}.site-footer__inner{flex-direction:column;justify-items:center;gap:.65rem;display:flex}.footer-controls{justify-content:center;align-items:center;gap:.4rem;width:100%;max-width:100%;display:flex}.footer-intro,.footer-meta{text-align:right;place-self:end;margin:0;padding-top:1.2rem;padding-right:.4rem;font-size:.8rem}.footer-meta a{align-items:center;gap:.25rem;display:inline-flex}.footer-meta img{vertical-align:middle;width:1.5rem;height:1.5rem;margin-inline:.15rem;display:inline-block}.footer-meta__astro{width:1.7rem;height:1.7rem}.footer-meta__gitlab{transform-origin:50%;width:1.8rem;height:1.8rem;transform:scale(1.85)}.site-title{white-space:nowrap;background:0 0;width:fit-content;padding:.2rem .35rem;font-family:Coral Pixels,serif;font-size:clamp(2rem,8.5vw,2.35rem);font-weight:700;text-decoration:none;display:inline-block}.site-branding{flex-direction:column;align-items:center;gap:.2rem;width:fit-content;max-width:100%;display:flex}.site-tagline{background:var(--page-background);text-align:center;white-space:nowrap;background-color:#bbf052;width:100%;max-width:100%;margin:0;padding:.4rem .55rem;font-size:clamp(.75rem,2.6vw,.7rem)}.site-nav,.mobile-menu__list,.sample-link-list{margin:0;padding:0;list-style:none}.site-nav{flex-wrap:wrap;gap:.85rem;font-size:1rem;display:flex}.site-nav a{background:var(--page-background);padding:.2rem .35rem;display:inline-block}.about-page{width:100%;max-width:42rem;margin-inline:auto;padding-inline:clamp(0rem,1.5vw,1rem)}.about-page h1{margin-bottom:1rem}.about-page>p{margin-bottom:1rem;font-size:1rem}.about-page__location,.about-page__interests{margin-top:1.25rem}.about-page__tech{margin-top:1.5rem;margin-bottom:1.5rem}.resume,.resume:visited{border-block:1px solid var(--border-color);color:#141414;justify-content:space-between;align-items:center;gap:1rem;min-height:44px;padding:.55rem 0;text-decoration:none;display:flex}.resume:hover{color:#141414;background:#bbf05240;padding-inline:.65rem}.resume:focus-visible{outline-color:#bbf052}.resume-link__icon{fill:currentColor;flex:none;width:1.5rem;height:1.5rem}.menu-button{display:none}.footer-player{grid-template-columns:minmax(0,1fr);grid-auto-rows:minmax(3.75rem,auto);align-items:center;gap:.4rem;width:100%;max-width:100%;margin-left:0;display:grid}.video-popup-toggle,.video-controls__button{border:1px solid var(--footer-control-border);color:inherit;cursor:pointer;font:inherit;background:0 0;border-radius:.2rem}.video-popup-toggle{place-items:center;width:44px;height:44px;padding:0;display:grid}.video-popup-toggle img{object-fit:cover;border-radius:inherit;width:100%;height:100%}.video-toggle__icon{fill:currentColor;width:1.15rem;height:1.15rem}.fullscreen-icon{fill:currentColor;width:1rem;height:1rem}.fullscreen-icon--exit,[data-fullscreen-toggle][aria-pressed=true] .fullscreen-icon--enter{display:none}[data-fullscreen-toggle][aria-pressed=true] .fullscreen-icon--exit{display:block}.video-toggle__icon--down,.video-popup-toggle[aria-expanded=true] .video-toggle__icon--up{display:none}.video-popup-toggle[aria-expanded=true] .video-toggle__icon--down{display:block}.video-player{z-index:2;background:var(--footer-color);color:var(--page-background);border-top:1px solid #f6f6ef40;margin-top:-.5rem;position:relative;box-shadow:0 -.25rem .8rem #0000001a}.video-dock{width:100%}.video-dock__media{aspect-ratio:16/9;background:#000;width:100%;margin:0 auto}.video-dock__media iframe,.video-dock__media video{border:0;width:100%;height:100%;display:block}.media-shell:fullscreen,.media-shell--fullscreen{background:#000;grid-template-rows:minmax(0,1fr) auto;width:100%;height:100%;display:grid}.media-shell--fullscreen{z-index:20;position:fixed;inset:0}.media-shell:fullscreen .video-player,.media-shell--fullscreen .video-player{height:100%;box-shadow:none;border:0;margin:0;display:block}.media-shell:fullscreen .main-content,.media-shell--fullscreen .main-content{background:#000;grid-template-rows:minmax(0,1fr);display:grid;overflow:hidden}.media-shell:fullscreen .page,.media-shell--fullscreen .page{display:none}.media-shell:fullscreen .video-dock,.media-shell--fullscreen .video-dock{height:100%;display:block}.media-shell:fullscreen .video-dock__media,.media-shell--fullscreen .video-dock__media{aspect-ratio:auto;height:100%}.media-shell:fullscreen .site-footer,.media-shell--fullscreen .site-footer{z-index:1;position:relative}.video-controls,.radio-player{flex:1 1 0;width:100%;min-width:0;max-width:100%}.footer-module,.menu-button{border:1px solid var(--footer-control-border);border-radius:.25rem;min-height:3.25rem}.video-controls{grid-template-columns:44px minmax(0,1fr) 44px 44px 44px;align-items:center;gap:.4rem;min-height:3.75rem;padding:.5rem;display:grid}.video-controls__details,.radio-player__details{align-self:center;min-width:0;max-width:100%}.video-controls__label,.radio-player__label{letter-spacing:.1em;text-transform:uppercase;opacity:.75;font-size:.55rem;font-weight:700;display:block}.video-controls__details p{text-overflow:ellipsis;white-space:nowrap;width:100%;margin:0;font-size:1rem;font-weight:700;line-height:1.1;overflow:hidden}.video-controls__button{place-items:center;width:44px;height:44px;padding:0;display:grid}.video-controls__icon{fill:currentColor;width:1rem;height:1rem}.video-controls__icon--close,.video-controls__toggle[aria-pressed=true] .video-controls__icon--play{display:none}.video-controls__toggle[aria-pressed=true] .video-controls__icon--close{display:block}.main-content{background:var(--page-background);width:100%;min-height:0;margin:0;overflow:hidden auto}.media-shell{grid-template-rows:minmax(0,1fr) auto;width:100%;min-height:0;display:grid}.page{min-height:100%;padding-block:1rem}.site-content--home .page{z-index:3;background:var(--page-background);width:100%;min-height:0;padding-inline:0;position:relative}.site-content--home .link-index{width:calc(100% - 2rem);margin-inline:auto}.site-content--home .main-content{flex-direction:column;display:flex;position:relative}.site-content--home .video-player{inset-inline:0;z-index:2;position:absolute;bottom:0}.site-content--shazam .main-content{overflow:hidden}.site-content--shazam .page{height:100%;min-height:0;padding-block:1rem;position:relative}.site-content--shazam .blog-intro{display:none}.shazam-playlist{width:min(100%,41.25rem);margin:0 auto;position:absolute;inset-block:1rem;inset-inline:0;overflow:hidden}.shazam-playlist iframe{border:0;width:100%;height:100%;display:block}h1,h2,p{margin-top:0}h1{margin-bottom:.5rem;font-size:1.4rem;line-height:1.25}h2{margin-bottom:.2rem;font-size:1rem;font-weight:400}.content-intro,.sample-page{max-width:42rem}.content-intro{border-bottom:.25px dashed #938b8b;flex-direction:column;justify-content:center;align-items:center;margin-bottom:1.25rem;display:flex}.content-intro p,.sample-page>p:not(.sample-label),.sample-link-list article>p:last-child{color:#141414}.sample-link-list{counter-reset:sample-links;border-top:1px solid var(--border-color);max-width:42rem}.sample-link-list>li{counter-increment:sample-links;border-bottom:1px solid var(--border-color);position:relative}.sample-link{color:#141414;padding:.65rem 0 .65rem 2rem;text-decoration:none;display:block}.sample-link:hover,.sample-link:visited{color:#141414}.sample-link h2{text-underline-offset:.18em;text-decoration:underline}.sample-link-list>li:before{color:#6b665e;content:counter(sample-links) ".";position:absolute;top:.65rem;left:0}.sample-link-list article>p:last-child{margin-bottom:0;font-size:.85rem}.sample-label{letter-spacing:.06em;text-transform:uppercase;margin-top:.2rem;margin-bottom:.9rem;font-size:.7rem;font-weight:700}.radio-player{grid-template-columns:44px minmax(0,1fr) 44px 44px 44px;align-items:center;gap:.4rem;min-width:0;min-height:3.75rem;padding:.5rem;display:grid}.radio-player__artwork{width:44px;height:44px;color:inherit;cursor:pointer;font-size:.58rem;font-weight:700;font:inherit;background:#f6f6ef26;border:1px solid;border-radius:0;place-items:center;padding:0;display:grid;overflow:hidden}.radio-player__artwork img{object-fit:cover;width:100%;height:100%}.radio-player__artwork.has-image span{display:none}.radio-player__details{min-width:0}.radio-player__button{border:1px solid var(--footer-control-border);width:44px;height:44px;color:inherit;cursor:pointer;font:inherit;background:0 0;border-radius:.2rem;place-items:center;padding:0;line-height:1;display:grid}.radio-player__button:hover:not(:disabled){background:var(--page-text);color:var(--page-background)}.radio-player__button:disabled{cursor:not-allowed;opacity:.6}.radio-player__icon{fill:currentColor;width:1rem;height:1rem}.radio-player__spinner{border:2px solid;border-right-color:#0000;border-radius:50%;width:.8rem;height:.8rem;animation:.75s linear infinite radio-player-spin}@keyframes radio-player-spin{to{transform:rotate(1turn)}}.radio-player__station-info{text-overflow:ellipsis;white-space:nowrap;margin:0;font-size:1rem;font-weight:700;line-height:1.1;overflow:hidden}.radio-player__show-info{text-overflow:ellipsis;white-space:nowrap;opacity:.75;margin:0;font-size:.58rem;overflow:hidden}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.mobile-menu{display:none}@media (prefers-reduced-motion:reduce){.radio-player__spinner{animation:none}}@media (width<=45rem){:root{--content-width:calc(100% - 2rem)}.site-title{font-size:clamp(2rem,8.5vw,2.35rem)}header p{font-size:clamp(.55rem,2.6vw,.7rem)}h1{font-size:2.3rem}p{font-size:1.8rem}.sample-page p{font-size:1.4rem}.site-header__inner{flex-direction:column;justify-content:center;gap:.75rem}.site-branding{align-items:center}.site-nav{justify-content:center}.desktop-nav{display:none}.blog-intro{justify-content:space-around;align-items:center;display:flex}.blog-intro p{font-size:1.6rem}.menu-button{color:inherit;cursor:pointer;font:inherit;background:0 0;justify-content:center;align-items:center;padding:.5rem;display:inline-grid}.menu-button__icon{gap:.2rem;display:grid}.menu-button__icon span{background:currentColor;width:1rem;height:1px;display:block}.footer-player{grid-template-columns:minmax(0,1fr);grid-auto-rows:minmax(3.75rem,auto);gap:.4rem;width:100%;min-width:0;margin-left:0;display:grid}.site-footer{padding:.55rem 1rem}.footer-controls{width:100%;display:block}.footer-meta{width:100%}.video-controls,.radio-player{min-width:0}.video-controls{grid-template-columns:44px minmax(0,1fr) 44px 44px 44px;gap:.4rem;min-height:3.75rem;padding:.5rem}.video-controls__button,.video-popup-toggle,.radio-player__button{width:44px;height:44px}.radio-player{grid-template-columns:44px minmax(0,1fr) 44px 44px 44px;gap:.4rem;min-height:3.75rem;padding:.5rem}.radio-player__artwork{width:44px;height:44px}.radio-player__show-info{display:none}.page{flex-direction:column;justify-content:flex-start;padding-bottom:1rem;display:flex}.mobile-menu[open]{background:var(--page-background);width:100%;max-width:none;height:100dvh;max-height:none;color:var(--page-text);border:0;margin:0;padding:1rem;display:grid}.mobile-menu::backdrop{background:var(--page-background)}.mobile-menu__inner{grid-template-rows:auto 1fr;width:min(100%,52rem);margin:0 auto;display:grid}.mobile-menu__close{color:inherit;cursor:pointer;font:inherit;background:0 0;border:0;justify-self:start;padding:.35rem 0}.mobile-menu__list{align-content:center;gap:1.25rem;display:grid}.mobile-menu__list a{font-size:1.5rem;font-weight:700}.page{padding-block:1rem}}
