@font-face{font-family:Pixel;src:url('/assets/pixelify-sans-latin-400-normal.woff2') format('woff2');font-style:normal;font-weight:400;font-display:swap}
:root{--ink:#16382f;--shade:#466b48;--mid:#8caf6c;--paper:#e4f5c5;--wall:#d5edb0;--mortar:#a8c68a;--line:3px;--font:Pixel,'Courier New',monospace;color-scheme:light;font-family:var(--font);font-synthesis:none;background:var(--wall);color:var(--ink)}
:root[data-palette=pocket]{--ink:#272f28;--shade:#636c5a;--mid:#a2aa8c;--paper:#e4e8ce;--wall:#d1d8ba;--mortar:#adb69a}
*{box-sizing:border-box}body{margin:0;min-width:320px}a{color:inherit}button,input{font:inherit;color:inherit}button,a,input{-webkit-tap-highlight-color:transparent}button{cursor:pointer}a,button{touch-action:manipulation}button:disabled{cursor:default}img,svg{image-rendering:pixelated}h1,h2,h3,p{margin:0;font-weight:400}a:focus-visible,button:focus-visible,input:focus-visible,.content-frame:focus-visible{outline:3px dashed var(--ink);outline-offset:6px}button:focus-visible{outline-offset:4px}::selection{background:var(--ink);color:var(--paper)}
.world{min-height:100svh;position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:108px 60px 42px;overflow:hidden;background-color:var(--wall);background-image:linear-gradient(var(--mortar) 2px,transparent 2px),linear-gradient(90deg,var(--mortar) 2px,transparent 2px),linear-gradient(90deg,var(--mortar) 2px,transparent 2px);background-size:48px 24px,48px 48px,48px 48px;background-position:0 0,0 0,24px 24px}
.world::before{content:'';position:absolute;inset:0;pointer-events:none;background:radial-gradient(ellipse at 50% 45%,transparent 25%,#466b4811 100%)}
.toolbar{position:absolute;top:26px;left:32px;right:32px;display:flex;justify-content:space-between;z-index:4}.toolbar-left,.toolbar-right{display:flex;gap:18px;align-items:flex-start}.toolbar-left{flex-direction:column}.toolbar-right{align-items:center}
.pixel-button{background:var(--mid);border:3px solid var(--ink);box-shadow:inset 2px 2px var(--paper),inset -3px -3px var(--shade),3px 3px 0 var(--shade);color:var(--ink);text-decoration:none;display:inline-flex;align-items:center;justify-content:center;position:relative;border-radius:2px;padding:8px;transition:background .1s,transform .1s;user-select:none}.pixel-button:hover{background:var(--paper)}.pixel-button:active{transform:translate(2px,2px);box-shadow:inset 2px 2px var(--paper),inset -2px -2px var(--shade),1px 1px 0 var(--shade)}.icon-button{width:46px;height:46px}.icon{width:24px;height:24px;flex-shrink:0}.language{display:flex;align-items:center;gap:7px;font-size:17px;background:var(--wall);padding:4px}.language a{padding:6px 3px;text-decoration:none;opacity:.65}.language a[aria-current=true]{opacity:1;box-shadow:0 2px var(--ink)}
.scene{display:flex;align-items:flex-end;gap:24px;width:850px;max-width:100%;position:relative;margin:18px auto 0;padding-bottom:30px;isolation:isolate}.profile-side{width:380px;flex-shrink:0;position:relative;padding-bottom:22px}.profile-row{display:flex;align-items:stretch}.greeting{width:230px;min-height:65px;background:var(--ink);color:var(--paper);margin:0 0 14px 144px;border:3px solid var(--ink);outline:2px solid var(--paper);box-shadow:0 0 0 5px var(--shade);text-align:center;display:flex;align-items:center;justify-content:center;font-size:18px;line-height:1.12;letter-spacing:.5px;padding:7px 12px;position:relative}.greeting::after{content:'';position:absolute;bottom:-10px;left:25px;width:10px;height:8px;background:var(--ink);border-right:2px solid var(--paper);border-bottom:2px solid var(--paper)}
.section-nav{display:flex;flex-direction:column;align-items:stretch;justify-content:space-around;gap:9px;width:144px;padding:8px 0}.section-tab{margin-right:-5px;font-size:14px;gap:3px;flex-direction:column;min-height:63px;padding:5px 10px 5px 5px}.section-tab span{white-space:nowrap}.section-tab .icon{width:24px;height:24px}.section-tab[aria-current=page]{background:var(--paper);box-shadow:inset 2px 2px var(--paper),inset -3px -3px var(--mid),3px 3px var(--shade)}.section-tab[aria-current=page]::before{content:'▸';position:absolute;left:8px;top:22px;font-size:19px}
.pixel-frame{border:3px solid var(--ink);outline:3px solid var(--mid);box-shadow:inset 3px 3px var(--paper),inset -3px -3px var(--shade),5px 5px 0 var(--shade),6px 6px 0 var(--ink);border-radius:2px;position:relative}.profile{background:var(--ink);color:var(--paper);text-align:center;padding:20px 20px 22px;width:236px;z-index:1;display:flex;flex-direction:column;align-items:center}.portrait-wrap{background:var(--paper);padding:5px;border:2px solid var(--paper);outline:2px solid var(--mid);margin-bottom:15px}.portrait-wrap img{display:block;width:118px;height:auto}.profile h1{font-size:30px;line-height:.95;letter-spacing:1px}.role{font-size:14px;line-height:1.3;margin-top:14px;letter-spacing:.4px}.profile-caption{position:absolute;bottom:0;left:144px;width:236px;text-align:center;font-size:12px;padding-top:11px}
.content-frame{background:var(--paper);width:446px;height:472px;flex-shrink:1;padding:6px;margin-bottom:22px;min-width:0}.content-frame::before{content:'';position:absolute;inset:6px;pointer-events:none;border:2px solid var(--shade)}.panel{height:100%;overflow:auto;padding:28px 26px 26px;scrollbar-width:thin;scrollbar-color:var(--shade) var(--paper);scroll-padding:15px;overscroll-behavior:contain}.panel h2{font-size:28px;line-height:1.1;letter-spacing:1px;margin:0 0 24px}.panel h3{font-size:20px;line-height:1.2}.panel p{font-size:18px;line-height:1.4}.tutorial-content{text-align:center;padding-top:8px}.tutorial-content h2{font-size:29px;letter-spacing:3px}.tutorial-content h3{font-size:28px;letter-spacing:2px;margin:28px 0 10px}.tutorial-content>p{font-size:17px;letter-spacing:1px}.keyboard{display:flex;flex-direction:column;align-items:center;gap:3px;margin:20px 0 13px}.keyboard>div{display:flex;gap:3px}kbd{font:22px var(--font);background:var(--mid);color:var(--paper);border:2px solid var(--shade);box-shadow:inset 2px 2px var(--paper),2px 2px var(--ink);width:32px;height:30px;display:inline-flex;justify-content:center;align-items:center}.tutorial-content p.tiny{font-size:13px;letter-spacing:.3px;margin-top:9px}.tutorial-content .read-hint{font-size:13px;border-top:1px dashed var(--mid);padding-top:14px;margin-top:19px;letter-spacing:0}.touch-hint{display:none}
.bio{display:grid;gap:16px}.location{margin:26px 0;font-size:14px!important;letter-spacing:.5px}.member{display:flex;align-items:center;gap:12px;border-top:2px dashed var(--mid);padding-top:18px;margin-top:22px}.member .icon{width:35px;height:35px}.member strong{font-size:18px;font-weight:400}.member span{display:block;font-size:13px;margin-top:3px}.timeline,.credentials{list-style:none;margin:0;padding:0}.timeline{border-left:2px solid var(--mid);margin-left:6px;padding-left:20px}.timeline li{position:relative;margin-bottom:26px}.timeline li::before{content:'';position:absolute;left:-26px;top:6px;width:10px;height:10px;background:var(--shade);border:2px solid var(--paper)}.timeline h3{font-size:23px;margin:4px 0 5px}.timeline p{font-size:15px}.timeline p.job-role{font-size:14px;margin-bottom:9px}.period{font-size:13px;color:var(--shade)}.degree{display:flex;align-items:flex-start;gap:15px;padding-bottom:22px;border-bottom:2px dashed var(--mid)}.degree-emoji{font-size:30px;line-height:1;flex-shrink:0}.degree h3{font-size:20px}.degree p{font-size:15px;margin-top:8px}.credentials li{margin-top:24px}.credentials h3{font-size:20px}.credentials p{font-size:16px;margin-top:7px}.contact-content{text-align:center;padding-top:22px}.large-icon{width:48px;height:48px;margin-bottom:22px}.contact-content h2{font-size:28px;letter-spacing:0;margin-bottom:12px}.contact-links{display:flex;flex-direction:column;gap:15px;margin-top:30px}.contact-links a{display:flex;justify-content:space-between;padding:10px 14px;font-size:20px;border:2px solid var(--shade);text-decoration:none;box-shadow:3px 3px var(--mid)}.contact-links a:hover{background:var(--mid)}
.player{position:absolute;width:24px;height:34px;z-index:5;pointer-events:none;transform:translate(180px,-34px);image-rendering:pixelated}.player img{width:24px;height:34px}.player[data-moving=true] img{animation:walk .16s steps(2) infinite}.player[data-facing="-1"] img{scale:-1 1}@keyframes walk{50%{translate:0 -2px;rotate:3deg}}
.play-controls{display:flex;gap:12px;margin:12px 0 26px;z-index:2}.play-controls button{font-size:24px;width:48px;height:43px;touch-action:none}.play-controls .jump-button{margin-top:-8px}footer{position:relative;text-align:center;margin-top:28px}footer nav{display:flex;justify-content:center;gap:28px}footer a{font-size:15px;text-underline-offset:4px}footer p{font-size:12px;margin-top:16px;opacity:.75}
dialog{background:var(--paper);color:var(--ink);border:4px solid var(--ink);box-shadow:5px 5px var(--shade);padding:24px;width:380px;max-width:calc(100% - 40px);font:18px var(--font)}dialog::backdrop{background:#16382fa6}.dialog-heading{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-bottom:25px}.dialog-heading h2{font-size:27px}.close-button{font-size:25px;width:35px;height:35px;padding:0}fieldset{border:2px solid var(--mid);margin:0 0 24px;padding:16px;display:flex;gap:15px}legend{padding:0 6px}fieldset label{font-size:17px}.setting-row{display:flex;align-items:center;justify-content:space-between;gap:10px;margin:20px 0}.setting-row input{width:20px;height:20px;accent-color:var(--shade)}input[type=radio]{accent-color:var(--shade)}.reset-button{width:100%;margin:12px 0 3px;font-size:17px}.skip-link{position:fixed;top:10px;left:50%;translate:-50% 0;z-index:30;background:var(--ink);color:var(--paper);padding:15px;transform:translateY(-200%)}.skip-link:focus{transform:translateY(0)}
.js-only{display:none}.enhanced .js-only{display:flex}.enhanced .panel[hidden]{display:none}.enhanced .panel{height:100%}html:not(.enhanced) .scene{align-items:flex-start}html:not(.enhanced) .content-frame{height:auto}html:not(.enhanced) .panel{height:auto;overflow:visible}html:not(.enhanced) .tutorial-panel{display:none}html:not(.enhanced) .content-panel{border-bottom:2px dashed var(--mid);padding-bottom:40px;margin-bottom:20px}html:not(.enhanced) .content-panel:last-child{border:0}
html[data-reduced-motion=true] *,html[data-reduced-motion=true] *::before,html[data-reduced-motion=true] *::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}
@media(min-width:1500px) and (min-height:850px){.scene{scale:1.12;margin:45px auto 30px}footer{margin-top:36px}}
@media(max-width:1000px){.world{padding-left:35px;padding-right:35px}.scene{width:760px;gap:20px}.profile-side{width:330px}.section-nav{width:110px}.profile{width:220px;padding:20px 15px}.greeting{width:214px;margin-left:113px}.profile-caption{left:110px;width:220px}.section-tab{font-size:12px}.section-tab[aria-current=page]::before{left:4px}.content-frame{height:470px}.panel{padding:25px 22px}.panel h2{font-size:25px}.tutorial-content h3{font-size:25px}.tutorial-content>p{font-size:16px}}
@media(max-width:700px){.world{padding:100px 24px 30px;justify-content:flex-start;overflow:clip}.toolbar{left:22px;right:22px;top:22px}.toolbar-left{flex-direction:row;gap:12px}.toolbar-right{gap:12px}.icon-button{width:40px;height:40px}.language{font-size:15px;gap:4px}.scene{width:420px;flex-direction:column;align-items:center;gap:27px;padding-bottom:12px;margin-top:32px}.profile-side{width:100%;max-width:380px;padding-bottom:21px}.profile-row{padding-left:0}.section-nav{width:35%;gap:8px;padding:6px 0}.section-tab{font-size:13px;min-height:54px}.section-tab .icon{width:22px;height:22px}.section-tab[aria-current=page]::before{left:8px;top:17px}.profile{width:65%;padding:15px 12px}.portrait-wrap{margin-bottom:12px}.portrait-wrap img{width:88px}.profile h1{font-size:27px}.role{font-size:13px;margin-top:10px}.greeting{width:calc(65% - 5px);margin:0 0 16px calc(35% + 3px);font-size:16px;min-height:58px}.profile-caption{left:35%;width:65%;font-size:11px}.content-frame{width:100%;height:450px;margin-bottom:8px;flex-shrink:0}.panel{padding:25px 22px}.tutorial-content{padding-top:6px}.tutorial-content>p{font-size:16px}.tutorial-content h3{margin-top:24px}.keyboard{margin-top:16px}.touch-hint{display:block}.tutorial-content .read-hint{margin-top:15px;padding-top:12px}.play-controls{margin:14px 0 0;gap:22px}.play-controls button{width:55px;height:49px}footer{margin-top:32px}footer nav{gap:28px}footer p{font-size:11px}.panel h2{font-size:26px}.panel p{font-size:17px}.timeline p{font-size:15px}.credentials p{font-size:16px}}
@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}
