html,body,#root{height:100%;margin:0;padding:0}html{-webkit-touch-callout:none;-webkit-user-select:none;user-select:none}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:#44607a;--resume-bg:#faf9f7;--resume-bg-raised:#fff;--resume-text:#22201d;--resume-text-secondary:#5f5b54;--resume-border:#e4e1db;--resume-font:var(--ui-font)}.resume-overlay{animation:.28s ease-out resume-fade-in}@keyframes resume-fade-in{0%{opacity:0;transform:translateY(12px)scale(.99)}to{opacity:1;transform:translateY(0)scale(1)}}.resume-overlay__panel{background:var(--resume-bg);border:1px solid var(--resume-border);max-width:820px}.resume-overlay__body{padding:0 3rem 3rem}.resume-overlay__close{background:var(--resume-bg-raised);border:1px solid var(--resume-border);color:var(--resume-text-secondary)}.resume-overlay__close:hover,.resume-overlay__close:focus-visible{background:var(--resume-accent);border-color:var(--resume-accent);color:#fff;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:1.5rem 3.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);-webkit-touch-callout:default;-webkit-user-select:text;user-select:text;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%}.resume-overlay__body{padding:0 1.25rem 2rem}.resume__header{margin-bottom:1.5rem;padding:1.25rem 3.25rem}.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{padding:0;animation:none;display:block;position:static}.resume-overlay__backdrop{display:none}.resume-overlay__panel{box-shadow:none;background:#fff;border:none;border-radius:0;max-width:100%;max-height:none;padding:0;overflow:visible}.resume-overlay__body{padding:0;overflow:visible}.resume__header{padding-left:0;padding-right:0}.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{--dogs-bg:#f6ecd9;--dogs-bg-raised:#fbf5e9;--dogs-accent:#8b5e3c;--dogs-text:#3a2c1f;--dogs-text-secondary:#7a6552;--dogs-border:#d9c3a5;--dogs-placeholder:#e8dcc6;--dogs-font:var(--ui-font)}.dogs-overlay{animation:.28s ease-out dogs-fade-in}@keyframes dogs-fade-in{0%{opacity:0;transform:translateY(12px)scale(.99)}to{opacity:1;transform:translateY(0)scale(1)}}.dogs-overlay__panel{background:var(--dogs-bg);border:1px solid var(--dogs-border);max-width:1100px}.dogs-overlay__body{padding:0 2rem 2.25rem}.dogs-overlay__close{background:var(--dogs-bg-raised);border:1px solid var(--dogs-border);color:var(--dogs-text-secondary)}.dogs-overlay__close:hover,.dogs-overlay__close:focus-visible{background:var(--dogs-accent);border-color:var(--dogs-accent);color:#fff;outline:none}.dogs__header{font-family:var(--dogs-font);text-align:center;border-bottom:2px solid var(--dogs-accent);margin:0 0 1.75rem;padding:1.5rem 3.5rem 1.25rem}.dogs__title{color:var(--dogs-text);letter-spacing:.02em;margin:0 0 .4rem;font-size:2rem;font-weight:700}.dogs__sub{color:var(--dogs-text-secondary);margin:0;font-size:.9rem}.dogs__bio{max-width:46ch;color:var(--dogs-text);margin:0 auto .6rem;font-size:1rem;line-height:1.6}.dogs__tag{vertical-align:1px;border:1px dashed var(--dogs-accent);text-transform:uppercase;letter-spacing:.06em;color:var(--dogs-accent);white-space:nowrap;border-radius:4px;margin-left:.35rem;padding:.1rem .4rem;font-size:.65rem;display:inline-block}.dogs__covers,.dogs__photos{flex-wrap:wrap;justify-content:center;align-items:flex-start;gap:.9rem;display:flex}.dogs__cover{max-width:220px;font-family:var(--dogs-font);cursor:pointer;background:0 0;border:none;flex-direction:column;flex:0 calc(50% - .45rem);gap:.5rem;padding:0;display:flex}.dogs__cover-name{color:var(--dogs-text);font-size:.95rem;font-weight:600}.dogs__cover:focus-visible{outline:3px solid var(--dogs-accent);outline-offset:4px;border-radius:12px}.dogs__cover:hover .dogs__tile,.dogs__cover:focus-visible .dogs__tile{transform:rotate(-1.2deg)scale(1.02);box-shadow:0 6px 18px #33281f47}.dogs__photo{flex:0 calc(50% - .45rem)}.dogs__tile{background:var(--dogs-placeholder);border-radius:10px;margin:0;transition:transform .18s,box-shadow .18s;display:block;overflow:hidden;transform:rotate(0)}.dogs__tile:hover{transform:rotate(-1.2deg)scale(1.02);box-shadow:0 6px 18px #33281f47}.dogs__tile img{aspect-ratio:3/4;opacity:0;width:100%;height:auto;transition:opacity .35s;display:block}.dogs__tile img.is-loaded{aspect-ratio:auto;opacity:1}@media (width>=768px){.dogs__cover{flex-basis:190px}.dogs__photo{flex-basis:260px;max-width:300px}}@media (width<=767px){.dogs-overlay__panel{max-width:100%}.dogs-overlay__body{padding:0 1rem 1.5rem}.dogs__header{margin-bottom:1.25rem;padding:1.25rem 3.5rem 1rem}.dogs__covers{grid-template-columns:repeat(2,minmax(0,1fr));place-items:start center;display:grid}.dogs__cover{width:100%}.dogs__covers--odd>.dogs__cover:first-child{grid-column:1/-1;width:calc(50% - .45rem)}.dogs__title{font-size:1.5rem}.dogs__bio{font-size:.95rem}}@media (prefers-reduced-motion:reduce){.dogs-overlay{animation:none}.dogs__tile,.dogs__tile img{transition:none}.dogs__tile:hover,.dogs__cover:hover .dogs__tile,.dogs__cover:focus-visible .dogs__tile{transform:none}.dogs__tile img{opacity:1}}: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;--ui-font:"Helvetica Neue", Helvetica, Arial, sans-serif;--ui-radius:14px;--ui-shadow:0 18px 48px #00000057;--ui-panel-max-h:90vh;--ui-backdrop:#0009}.ui-overlay{z-index:100;justify-content:center;align-items:center;padding:1rem;display:flex;position:fixed;inset:0}.ui-overlay__backdrop{background:var(--ui-backdrop);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);position:absolute;inset:0}.ui-overlay__panel{width:100%;max-height:var(--ui-panel-max-h);border-radius:var(--ui-radius);box-shadow:var(--ui-shadow);flex-direction:column;display:flex;position:relative;overflow:hidden}.ui-overlay__body{overscroll-behavior:contain;overflow-y:auto}.ui-icon-btn{z-index:3;width:38px;height:38px;font-family:var(--ui-font);cursor:pointer;border-radius:50%;justify-content:center;align-items:center;padding:0;font-size:1.1rem;line-height:1;transition:background-color .15s,border-color .15s,color .15s;display:inline-flex;position:absolute;top:.85rem}.ui-icon-btn--left{left:.85rem}.ui-icon-btn--right{right:.85rem}.ui-tip:not(.ui-icon-btn){position:relative}.ui-tip:after{content:attr(data-tip);color:#fff;font-family:var(--ui-font);letter-spacing:.02em;white-space:nowrap;opacity:0;pointer-events:none;background:#1c1a18f0;border-radius:6px;padding:.3rem .55rem;font-size:.72rem;transition:opacity .15s;position:absolute;top:calc(100% + 8px);left:50%;transform:translate(-50%)}.ui-icon-btn--right.ui-tip:after{left:auto;right:0;transform:none}.ui-icon-btn--left.ui-tip:after{left:0;transform:none}.ui-tip:hover:after,.ui-tip:focus-visible:after{opacity:1}@media (prefers-reduced-motion:reduce){.ui-tip:after{transition:none}}.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);transform:translateY(var(--sprite-base-inset,0));display:block}.building--smooth img{image-rendering:auto}.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}}
