@font-face{font-family:Fredoka;font-style:normal;font-weight:600 700;font-display:swap;src:url(/fonts/fredoka.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Inter;font-style:normal;font-weight:400 600;font-display:swap;src:url(/fonts/inter.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--sky: #8fd0d6;--cream: #f9f3e6;--ink: #34423f;--teal: #3da7a6;font-family:Inter,system-ui,sans-serif}*{margin:0;padding:0;box-sizing:border-box}html,body{height:100%;overflow:hidden;background:var(--sky)}#scene{position:fixed;inset:0;width:100vw;height:100vh;display:block;touch-action:none}#topnav{position:fixed;top:0;left:0;right:0;z-index:20;display:flex;align-items:baseline;gap:12px;padding:20px 26px;pointer-events:none;opacity:0;transition:opacity .8s ease .3s}body.ready #topnav{opacity:1}.brand{font-family:Fredoka,sans-serif;font-weight:700;font-size:22px;color:var(--cream);text-shadow:0 2px 6px rgba(0,0,0,.18)}.brand-sub{font-size:13px;font-weight:500;color:#ffffffd9;text-shadow:0 1px 3px rgba(0,0,0,.25)}#controls-hint{position:fixed;left:50%;bottom:34px;transform:translate(-50%);z-index:20;display:flex;flex-direction:column;gap:8px;padding:14px 20px;border-radius:16px;background:#ffffff29;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border:1px solid rgba(255,255,255,.3);color:var(--cream);font-size:13px;opacity:0;transition:opacity .6s ease}body.ready #controls-hint{opacity:1}#controls-hint.hidden{opacity:0;pointer-events:none}.ch-row{display:flex;align-items:center;gap:7px}.ch-row span{text-shadow:0 1px 2px rgba(0,0,0,.25)}kbd{font-family:Fredoka,sans-serif;font-size:12px;min-width:22px;text-align:center;padding:3px 6px;border-radius:6px;background:#ffffffe6;color:var(--ink);box-shadow:0 2px #00000026}.ch-tap{font-weight:600;padding:3px 9px;border-radius:6px;background:#ffffff47;text-transform:uppercase;font-size:11px;letter-spacing:.5px}#resume{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}#resume .r-bar,#resume .r-fallback{display:none}html.resume-open #resume,html.no-js #resume,body.no-webgl #resume{position:fixed;inset:0;z-index:60;width:auto;height:auto;margin:0;clip:auto;white-space:normal;overflow-x:hidden;overflow-y:auto;-webkit-overflow-scrolling:touch;overscroll-behavior:contain;background:#fcf8ee;color:var(--ink);font-size:16px;line-height:1.6}html.resume-open #resume .r-bar,html.no-js #resume .r-bar,body.no-webgl #resume .r-bar{display:flex;align-items:center;justify-content:space-between;gap:12px;position:sticky;top:0;z-index:1;padding:12px max(16px,calc((100% - 688px)/2));background:#fcf8eef0;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);border-bottom:1px solid rgba(52,66,63,.1)}html.no-js #resume .r-back,body.no-webgl #resume .r-back{visibility:hidden}body.no-webgl #resume .r-fallback{display:block;max-width:720px;margin:18px auto 0;padding:0 16px;font-size:14px;color:#5d6b64}#resume .r-back,#resume .r-pdf{font-family:Fredoka,sans-serif;font-weight:600;font-size:15px;text-decoration:none;border-radius:12px;padding:9px 14px;line-height:1.2;transition:background .2s ease,transform .15s ease}#resume .r-back{color:var(--ink);background:#0000000d}#resume .r-back:hover{background:#00000017}#resume .r-pdf{color:#fff;background:var(--teal)}#resume .r-pdf:hover{transform:translateY(-1px)}#resume .r-doc{max-width:720px;margin:0 auto;padding:28px 16px 72px}#resume h1{font-family:Fredoka,sans-serif;font-weight:700;font-size:clamp(34px,8vw,46px);line-height:1.05;letter-spacing:.2px}#resume h1:focus{outline:none}#resume .r-sub{font-size:17px;color:#4a574f;margin-top:6px;font-weight:500}#resume .r-summary{font-size:17px;line-height:1.6;margin-top:14px;max-width:64ch}#resume .r-links{list-style:none;display:flex;flex-wrap:wrap;gap:8px 18px;margin-top:14px}#resume .r-links a{color:#2b7f7e;font-weight:600;text-underline-offset:3px}#resume .r-stats{list-style:none;display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin:26px 0 6px}#resume .r-stats li{display:flex;flex-direction:column;gap:2px;padding:12px 10px;border-radius:14px;background:#0000000a;text-align:center}#resume .r-stat-num{font-family:Fredoka,sans-serif;font-weight:700;font-size:26px;line-height:1.1;color:#2b7f7e}#resume .r-stat-label{font-size:12px;line-height:1.3;color:#5d6b64}#resume h2{font-family:Fredoka,sans-serif;font-weight:600;font-size:14px;letter-spacing:1px;text-transform:uppercase;color:#6a7a70;margin:38px 0 4px;padding-bottom:8px;border-bottom:1px solid rgba(52,66,63,.14)}#resume .r-item{padding:18px 0 4px}#resume .r-item,#resume .r-contact{scroll-margin-top:72px}#resume .r-item+.r-item{border-top:1px dashed rgba(52,66,63,.12)}#resume h3{font-family:Fredoka,sans-serif;font-weight:600;font-size:21px;line-height:1.2}#resume .r-meta{font-size:14px;color:#6a7a70;margin-top:2px}#resume .r-lede{margin-top:8px;color:#4a574f}#resume ul:not(.r-links):not(.r-stats){margin:8px 0 8px 20px}#resume li{margin:5px 0;line-height:1.5}#resume section>p{margin-top:10px}#resume a:focus-visible,#resume-btn:focus-visible{outline:3px solid #2b7f7e;outline-offset:2px}html.resume-open #topnav,html.resume-open #mute,html.resume-open #resume-btn,html.resume-open #nav-arrows,html.resume-open #prompt,html.resume-open #controls-hint,html.resume-open #card,html.resume-open #card-backdrop{visibility:hidden}@media(max-width:560px){#resume .r-stats{grid-template-columns:repeat(2,1fr)}#resume .r-doc{padding-top:22px}}html.no-js #scene,html.no-js #topnav,html.no-js #controls-hint,html.no-js #mute,html.no-js #resume-btn,html.no-js #nav-arrows,html.no-js #prompt,html.no-js #preloader,body.no-webgl #scene,body.no-webgl #topnav,body.no-webgl #controls-hint,body.no-webgl #mute,body.no-webgl #resume-btn,body.no-webgl #nav-arrows,body.no-webgl #prompt,body.no-webgl #preloader{display:none!important}#resume-btn{position:fixed;top:18px;right:72px;z-index:51;height:42px;padding:0 15px 0 12px;border-radius:12px;display:flex;align-items:center;gap:7px;background:#fcf8ee;color:var(--ink);border:1px solid rgba(255,255,255,.7);box-shadow:0 6px 18px #14282829;font-family:Fredoka,sans-serif;font-weight:600;font-size:15px;text-decoration:none;transition:transform .15s ease,box-shadow .2s ease}#resume-btn:hover{transform:translateY(-1px);box-shadow:0 10px 24px #14282833}#resume-btn svg{width:18px;height:18px;color:var(--teal)}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important}}#mute{position:fixed;top:18px;right:20px;z-index:22;width:42px;height:42px;border-radius:12px;border:1px solid rgba(255,255,255,.4);background:#ffffff2e;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);color:var(--cream);cursor:pointer;display:flex;align-items:center;justify-content:center;opacity:0;transition:opacity .8s ease .3s,transform .15s ease,background .2s ease}body.ready #mute{opacity:1}#mute:hover{transform:translateY(-1px);background:#ffffff47}#mute svg{width:20px;height:20px}#mute .ic-off,#mute.muted .ic-on{display:none}#mute.muted .ic-off{display:block}#nav-arrows button{position:fixed;bottom:26px;z-index:32;width:46px;height:46px;border-radius:50%;border:1px solid rgba(255,255,255,.4);background:#ffffff2e;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);color:var(--cream);font-family:Fredoka,sans-serif;font-size:28px;line-height:1;cursor:pointer;display:flex;align-items:center;justify-content:center;padding-bottom:4px;opacity:0;transition:opacity .8s ease .3s,background .2s ease}body.ready #nav-arrows button{opacity:1}#nav-arrows button:hover{background:#ffffff4d}#nav-prev{left:20px}#nav-next{right:20px}@media(max-width:768px){#nav-arrows button{width:42px;height:42px;bottom:20px}}#prompt{position:fixed;left:50%;bottom:96px;transform:translate(-50%) translateY(0);z-index:25;display:flex;align-items:center;gap:12px;padding:12px 18px;border-radius:14px;background:#ffffff38;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border:1px solid rgba(255,255,255,.4);color:var(--cream);font-family:Fredoka,sans-serif;font-size:16px;cursor:pointer;box-shadow:0 10px 30px #0000002e;width:max-content;max-width:calc(100vw - 32px);white-space:nowrap;transition:opacity .25s ease,transform .25s ease,bottom .35s ease}#controls-hint:not(.hidden)~#prompt{bottom:calc(var(--hint-top, 84px) + 12px)}#prompt.hidden{opacity:0;pointer-events:none;transform:translate(-50%) translateY(8px)}#prompt .prompt-key{display:flex;align-items:center;gap:6px;font-size:13px;opacity:.92;flex:none}#prompt-name{text-shadow:0 1px 4px rgba(0,0,0,.3);min-width:0;overflow:hidden;text-overflow:ellipsis}#card-backdrop{position:fixed;inset:0;z-index:30;background:#141e1e52;backdrop-filter:blur(2px);-webkit-backdrop-filter:blur(2px);transition:opacity .26s ease}#card-backdrop.hidden{opacity:0;pointer-events:none}#card{position:fixed;z-index:31;top:50%;left:50%;transform:translate(-50%,-48%) scale(.96);width:min(540px,calc(100vw - 36px));max-height:min(80vh,760px);overflow-y:auto;padding:34px 34px 30px;border-radius:22px;background:#fcf8ee;border:1px solid rgba(255,255,255,.7);box-shadow:0 30px 80px #14282847;color:var(--ink);transition:transform .26s cubic-bezier(.2,.9,.3,1)}#card.shown{transform:translate(-50%,-50%) scale(1)}#card.hidden{display:none}#card-close{position:absolute;top:14px;right:16px;width:34px;height:34px;border:none;border-radius:50%;background:#0000000f;color:var(--ink);font-size:22px;line-height:1;cursor:pointer;transition:background .2s ease}#card-close:hover{background:#0000001f}.card-eyebrow{font-family:Fredoka,ui-monospace,monospace;font-size:12px;letter-spacing:.6px;text-transform:uppercase;font-weight:600;margin-bottom:6px}.card-title{font-family:Fredoka,sans-serif;font-weight:700;font-size:30px;line-height:1.1;margin-bottom:12px}.card-intro{font-size:16px;line-height:1.6;color:#4a574f;margin-bottom:18px}.card-section{font-family:Fredoka,sans-serif;font-weight:600;font-size:13px;letter-spacing:.4px;text-transform:uppercase;color:#7a8a80;margin:20px 0 10px}.card-list{list-style:none;display:flex;flex-direction:column;gap:9px}.card-list li{position:relative;padding-left:20px;line-height:1.5;font-size:15px}.card-list li:before{content:"";position:absolute;left:2px;top:9px;width:7px;height:7px;border-radius:2px;background:var(--teal)}.card-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin:4px 0}.stat{text-align:center;padding:12px 6px;border-radius:14px;background:#00000009}.stat-num{font-family:Fredoka,sans-serif;font-weight:700;font-size:26px;color:var(--teal)}.stat-label{font-size:11px;color:#6a7a70;margin-top:3px;line-height:1.2}.pills{display:flex;flex-wrap:wrap;gap:7px}.pill{font-size:13px;padding:5px 11px;border-radius:20px;background:#0000000d;color:#4a574f}.card-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:24px}.btn{font-family:Fredoka,sans-serif;font-weight:600;font-size:14px;padding:11px 18px;border-radius:12px;border:1px solid rgba(0,0,0,.12);background:#fff9;color:var(--ink);cursor:pointer;text-decoration:none;transition:transform .15s ease,box-shadow .15s ease}.btn:hover{transform:translateY(-2px);box-shadow:0 8px 20px #0000001f}.btn-primary{background:var(--teal);color:#fff;border-color:transparent}@media(max-width:768px){#controls-hint{bottom:22px;font-size:12px}.pl-mark{font-size:48px}#prompt{bottom:88px}#card{padding:26px 22px}.card-title{font-size:25px}.card-stats{grid-template-columns:repeat(2,1fr)}}@media(max-width:480px){#topnav{flex-direction:column;gap:0;padding:16px 18px}#resume-btn{top:14px;right:64px;height:40px;padding:0 12px 0 10px;font-size:14px}#mute{top:14px;right:16px;width:40px;height:40px}}
