html,body,#root{height:100%;margin:0;padding:0}body{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;overflow:hidden}*,:before,:after{box-sizing:border-box}:root{--resume-accent:var(--panel-heading,#f0c27f);--resume-bg:#fdfdfd;--resume-text:#1a1a1a;--resume-text-secondary:#555;--resume-border:#e0e0e0;--resume-font:"Helvetica Neue", Helvetica, Arial, sans-serif}.resume-overlay{z-index:100;justify-content:center;animation:.3s ease-out resume-slide-in;display:flex;position:fixed;inset:0}@keyframes resume-slide-in{0%{opacity:0;transform:translate(40px)}to{opacity:1;transform:translate(0)}}.resume-overlay__backdrop{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#0009;position:absolute;inset:0}.resume-overlay__panel{background:var(--resume-bg);width:100%;max-width:800px;height:100%;padding:2rem 3rem 4rem;position:relative;overflow-y:auto;box-shadow:-4px 0 24px #0000004d}.resume-overlay__close{z-index:2;background:var(--resume-bg);border:1px solid var(--resume-border);font-family:var(--resume-font);color:var(--resume-text-secondary);cursor:pointer;border-radius:6px;align-items:center;gap:.4rem;margin-bottom:1.5rem;padding:.5rem 1rem;font-size:.85rem;transition:color .15s,border-color .15s;display:inline-flex;position:sticky;top:0}.resume-overlay__close:hover,.resume-overlay__close:focus-visible{color:var(--resume-text);border-color:var(--resume-text);outline:none}.resume{font-family:var(--resume-font);color:var(--resume-text);line-height:1.6}.resume__header{text-align:center;border-bottom:2px solid var(--resume-accent);margin-bottom:2rem;padding-bottom:1.5rem}.resume__header h1{color:var(--resume-text);letter-spacing:.02em;margin:0 0 .75rem;font-size:2rem;font-weight:700}.resume__contact{color:var(--resume-text-secondary);flex-wrap:wrap;justify-content:center;gap:.25rem 0;font-size:.9rem;display:flex}.resume__contact a{color:var(--resume-text-secondary);border-bottom:1px solid #0000;text-decoration:none;transition:border-color .15s}.resume__contact a:hover{border-bottom-color:var(--resume-accent)}.resume__sep{margin:0 .5rem}.resume__section{margin-bottom:2rem}.resume__section h2{text-transform:uppercase;letter-spacing:.1em;color:var(--resume-accent);border-bottom:1px solid var(--resume-border);margin:0 0 1rem;padding-bottom:.4rem;font-size:.8rem;font-weight:700}.resume__section>p{color:var(--resume-text);margin:0;font-size:.95rem}.resume__entry{margin-bottom:1.5rem}.resume__entry:last-child{margin-bottom:0}.resume__entry-header{justify-content:space-between;align-items:flex-start;gap:1rem;margin-bottom:.5rem;display:flex}.resume__entry-header h3{color:var(--resume-text);margin:0;font-size:1.05rem;font-weight:600}.resume__company{color:var(--resume-text-secondary);margin:.15rem 0 0;font-size:.9rem}.resume__dates{color:var(--resume-text-secondary);white-space:nowrap;flex-shrink:0;margin:0;font-size:.85rem}.resume__highlights{margin:0;padding:0;list-style:none}.resume__highlights li{color:var(--resume-text);margin-bottom:.35rem;padding-left:1rem;font-size:.9rem;position:relative}.resume__highlights li:before{content:"";background:var(--resume-accent);border-radius:50%;width:4px;height:4px;position:absolute;top:.55em;left:0}.resume__skills{grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:1rem;display:grid}.resume__skill-group h3{color:var(--resume-text);margin:0 0 .25rem;font-size:.9rem;font-weight:600}.resume__skill-group p{color:var(--resume-text-secondary);margin:0;font-size:.85rem}@media (width<=768px){.resume-overlay__panel{max-width:100%;padding:1.5rem 1.25rem 3rem}.resume__header h1{font-size:1.5rem}.resume__contact{flex-direction:column;align-items:center;gap:.25rem}.resume__sep{display:none}.resume__entry-header{flex-direction:column;gap:.25rem}.resume__dates{white-space:normal}.resume__skills{grid-template-columns:1fr}}@media (prefers-reduced-motion:reduce){.resume-overlay{animation:none}}@media print{.world,.character{display:none!important}.resume-overlay{animation:none;position:static}.resume-overlay__backdrop{display:none}.resume-overlay__panel{box-shadow:none;background:#fff;max-width:100%;padding:0;overflow:visible}.resume-overlay__close{display:none}.resume{color:#000}.resume__header{border-bottom-color:#000}.resume__header h1{color:#000}.resume__contact,.resume__contact a{color:#333}.resume__section h2{color:#333;border-bottom-color:#ccc}.resume__entry-header h3,.resume__skill-group h3{color:#000}.resume__company,.resume__dates,.resume__skill-group p{color:#555}.resume__highlights li{color:#000}.resume__highlights li:before{background:#333}}:root{--trail-font:"Georgia", "Times New Roman", serif;--trail-font-sans:"Helvetica Neue", Helvetica, Arial, sans-serif;--panel-heading:#f0c27f;--scroll-pos:0px;--floor-h:48px}.world{cursor:pointer;touch-action:none;background:linear-gradient(#68cbff 0%,#8ed8ff 55%,#b6e6ff 100%);width:100vw;height:100dvh;position:relative;overflow:hidden}.world__bg{left:0;right:0;bottom:calc(var(--floor-h) - 10px);background-image:url(/sprite/background.png);background-repeat:repeat-x;background-size:auto 100%;background-position-x:calc(var(--scroll-pos) * -.3);height:100%;image-rendering:pixelated;z-index:0;pointer-events:none;position:absolute}.world__floor{width:100%;height:var(--floor-h);background-image:url(/sprite/brick_floor.png);background-repeat:repeat-x;background-size:auto var(--floor-h);background-position-x:calc(var(--scroll-pos) * -1);image-rendering:pixelated;z-index:2;pointer-events:none;position:absolute;bottom:0;left:0}.scenery{bottom:var(--floor-h);z-index:3;image-rendering:pixelated;pointer-events:none;position:absolute;transform:translate(-50%)}.scenery img{image-rendering:pixelated;display:block}.character{--char-frame:0;--char-lift:0px;--char-scale:1.4;--flip:1;z-index:50;bottom:var(--floor-h);width:114px;height:176px;image-rendering:pixelated;pointer-events:none;background-image:url(/sprite/run_sheet.png);background-repeat:no-repeat;background-size:4902px 176px;background-position-x:calc(var(--char-frame) * -114px);transform:translateX(-50%) translateY(calc(-1 * var(--char-lift))) scale(calc(var(--char-scale) * var(--flip)), var(--char-scale));transform-origin:bottom;will-change:transform, background-position;background-position-y:0;position:fixed;left:35%}.character.is-jumping{background-image:url(/sprite/jump_sheet.png);background-size:2425px 175px;background-position-x:calc(var(--char-frame) * -97px);width:97px;height:175px}.building{bottom:var(--floor-h);z-index:3;cursor:pointer;transform-origin:bottom;image-rendering:pixelated;background:0 0;border:none;padding:0;transition:transform .15s,filter .15s;position:absolute;transform:translate(-50%)}.building img{width:auto;image-rendering:pixelated;filter:drop-shadow(0 3px #00000026);display:block}.building:hover,.building:focus-visible{filter:brightness(1.12)drop-shadow(0 0 8px #f0c27fa6);outline:none;transform:translate(-50%)translateY(-4px)scale(1.03)}.building:focus-visible{outline:3px solid var(--panel-heading);outline-offset:4px;border-radius:4px}.mobile-hint{z-index:60;opacity:.45;pointer-events:none;justify-content:center;align-items:center;width:33.34vw;height:100dvh;transition:opacity .45s;display:flex;position:fixed;top:0}.mobile-hint--left{left:0}.mobile-hint--right{right:0}.mobile-hint.is-hidden{opacity:0}.mobile-hint img{width:auto;height:22vh;max-height:190px;image-rendering:pixelated}@media (prefers-reduced-motion:reduce){.character{transition:none!important}}@media (width<=768px){.character{--char-scale:1}.world__bg{background-size:auto 100%;height:100%}.building img{max-height:55vh}}
