.game-shell{--g-red:#7a1f1f;--g-gold:#e9c46a;--g-paper:#f6ead0;aspect-ratio:4/3.4;border:4px solid var(--ink,#2b1d14);width:100%;box-shadow:8px 8px 0 var(--ink,#2b1d14);font-family:var(--font-vt),monospace;color:#2b1d14;-webkit-user-select:none;user-select:none;touch-action:manipulation;background:#24101a;outline:none;display:block;position:relative;overflow:hidden}html[data-mode=intro] .game-shell,html[data-mode=playing] .game-shell{aspect-ratio:auto;width:100vw;height:100dvh;box-shadow:none;z-index:100;border:0;animation:.35s g-fadein;position:fixed;inset:0}html[data-mode=intro],html[data-mode=playing],html[data-mode=intro] body,html[data-mode=playing] body{overflow:hidden}@keyframes g-fadein{0%{opacity:0}}.g-still{z-index:0;object-fit:cover;width:100%;height:100%;image-rendering:pixelated;pointer-events:none;transition:opacity .6s;position:absolute;inset:0}.g-still.gone{opacity:0}.g-label{font-family:var(--font-px),monospace;color:#fdf0d5;background:var(--g-red,#7a1f1f);white-space:nowrap;pointer-events:none;border:2px solid #e9c46a;align-items:center;gap:6px;padding:5px 8px 6px;font-size:9px;line-height:1;display:flex;transform:translate(-50%,-100%);box-shadow:3px 3px #0000004d}.g-label.near{background:#c1121f}.g-label.small{border-width:1px;padding:3px 5px 4px;font-size:7px}.g-btn{font-family:var(--font-px),monospace;color:#2b1d14;cursor:pointer;white-space:nowrap;background:#fdf0d5;border:3px solid #2b1d14;padding:9px 11px;font-size:9px;line-height:1.3;box-shadow:3px 3px #2b1d14}.g-btn:hover{background:#fff6e0}.g-btn:active{transform:translate(2px,2px);box-shadow:1px 1px #2b1d14}.g-btn.red{color:#fdf0d5;background:#9b2226}.g-btn.red:hover{background:#b0282c}.g-btn.big{padding:13px 18px;font-size:12px}.game-shell :focus-visible{outline-offset:2px;outline:3px solid #ffd166}.g-title{z-index:8;background:radial-gradient(34em 22em,#0d07099e 0%,#0d07096b 45%,#0d070900 100%),#2b1d141f;justify-content:center;align-items:center;padding:16px;display:none;position:absolute;inset:0}html[data-mode=intro] .g-title{display:flex}.g-title-in{text-align:center;color:#fff;max-width:100%;animation:.6s both g-rise}@keyframes g-rise{0%{opacity:0;transform:translateY(16px)}}.g-title-k{font-family:var(--font-px),monospace;color:#ffd166;text-shadow:2px 2px #7a1f1f;margin:0 0 18px;font-size:10px;line-height:1.6}.g-title-t{font-family:var(--font-px),monospace;text-shadow:5px 5px #7a1f1f;letter-spacing:0;margin:0;font-size:clamp(32px,7vw,70px);font-weight:400;line-height:1.3}.g-title-s{text-shadow:2px 2px #7a1f1f;margin:10px 0 0;font-size:27px}.g-title-o{flex-wrap:wrap;justify-content:center;gap:14px;margin-top:28px;display:flex}.g-title-h .g-touch{display:none}.g-title-h{text-shadow:2px 2px #7a1f1f;margin:16px 0 0;font-size:20px;animation:1.2s steps(2,end) infinite g-blink}@keyframes g-blink{50%{opacity:.35}}.g-hud{z-index:5;pointer-events:none;justify-content:space-between;align-items:flex-start;gap:12px;display:flex;position:absolute;top:16px;left:18px;right:18px}.g-hud-t{color:#fff;font-family:var(--font-px),monospace;text-shadow:3px 3px #7a1f1f;font-size:15px;line-height:1.2}.g-hud-t small{font-family:var(--font-vt),monospace;text-shadow:2px 2px #7a1f1f;margin-top:6px;font-size:21px;display:block}.g-hud-r{pointer-events:auto;flex-wrap:wrap;justify-content:flex-end;align-items:flex-start;gap:8px;display:flex}.g-help{color:#f4ead2;background:#2b1d14d1;border:3px solid #e9c46a;flex-direction:column;padding:8px 12px;font-size:19px;line-height:1.15;display:flex}.g-help b{font-family:var(--font-px),monospace;color:#e9c46a;font-size:8px;font-weight:400}.g-panel{z-index:6;background:var(--g-paper,#f6ead0);--px:28px;--frame:13px;opacity:0;pointer-events:none;width:min(580px,92vw);max-height:calc(100% - 200px);font-family:var(--font-head),system-ui,sans-serif;color:#2b1d14;--acc:#9b2226;--acc-line:color-mix(in srgb,var(--acc)25%,transparent);--acc-tint:color-mix(in srgb,var(--acc)10%,#fffaf0);border:4px solid #2b1d14;flex-direction:column;padding:0;font-size:15px;line-height:1.5;transition:opacity .2s,transform .2s;display:flex;position:absolute;bottom:104px;left:50%;overflow:hidden;transform:translate(-50%,16px);box-shadow:6px 6px #0000004d}.g-panel.acc-about{--acc:#3d5a80}.g-panel.acc-exp{--acc:#9b2226}.g-panel.acc-proj{--acc:#2a7f74}.g-panel.acc-beyond{--acc:#b07d1a}.g-panel.acc-contact{--acc:#9b2226}.g-panel.open{opacity:1;pointer-events:auto;transform:translate(-50%)}.g-panel:focus-visible{outline:3px solid #ffd166}.g-panel:after{content:"";pointer-events:none;z-index:3;border:3px solid #9b2226;position:absolute;inset:6px}.g-panel-head{padding:24px var(--px)0;flex:none;position:relative}.g-panel-body{overscroll-behavior:contain;touch-action:pan-y;min-height:0;margin:0 var(--frame);padding:14px calc(var(--px) - var(--frame))6px;--fade:28px;flex:auto;overflow-y:auto}.g-panel-body.fade-top{-webkit-mask-image:linear-gradient(to bottom,transparent,#000 var(--fade));-webkit-mask-image:linear-gradient(to bottom,transparent,#000 var(--fade));mask-image:linear-gradient(to bottom,transparent,#000 var(--fade))}.g-panel-body.fade-bottom{-webkit-mask-image:linear-gradient(to top,transparent,#000 var(--fade));-webkit-mask-image:linear-gradient(to top,transparent,#000 var(--fade));mask-image:linear-gradient(to top,transparent,#000 var(--fade))}.g-panel-body.fade-top.fade-bottom{-webkit-mask-image:linear-gradient(to bottom,transparent,#000 var(--fade),#000 calc(100% - var(--fade)),transparent);-webkit-mask-image:linear-gradient(to bottom,transparent,#000 var(--fade),#000 calc(100% - var(--fade)),transparent);mask-image:linear-gradient(to bottom,transparent,#000 var(--fade),#000 calc(100% - var(--fade)),transparent)}.g-panel-foot{padding:4px var(--px)18px;flex:none;justify-content:flex-end;display:flex}.g-panel h2{font-family:var(--font-px),monospace;color:var(--acc);border-bottom:3px solid var(--acc);margin:0;padding:0 40px 10px 0;font-size:12px;font-weight:400;line-height:1.5}.g-panel p{margin:0}.g-panel ul{margin:0;padding:0;list-style:none}.game-shell .g-panel a{color:var(--acc);text-underline-offset:2px}.g-lbl{font-family:var(--font-px),monospace;color:var(--acc);letter-spacing:.3px;font-size:8px;font-weight:400;line-height:1.6}.g-panel h3.g-lbl{margin:14px 0 8px}.g-list>li{border-top:1px solid var(--acc-line);padding:12px 0}.g-list>li:first-child{border-top:none;padding-top:2px}.g-head{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;display:flex}.g-head b,.g-name{font-size:16px;font-weight:700}.g-pill{font-family:var(--font-px),monospace;white-space:nowrap;color:var(--acc);background:var(--acc-tint);border:1px solid var(--acc-line);border-radius:99px;padding:5px 7px;font-size:7px;line-height:1}.g-role{color:var(--acc);font-weight:500}.g-more{font-family:var(--font-px),monospace;margin-top:6px;font-size:8px;line-height:1.6;display:inline-block}.g-skills{flex-direction:column;gap:5px;margin-top:8px;display:flex}.g-skills .g-lbl{font-size:7px}.g-chips{flex-wrap:wrap;gap:5px;display:flex}.g-chips li{border:1px solid var(--acc);background:var(--acc-tint);color:#2b1d14;border-radius:99px;padding:5px 9px;font-size:12px;line-height:1}.g-chips.small li{border-color:var(--acc-line);padding:4px 7px;font-size:11px}.g-links{flex-wrap:wrap;align-items:center;gap:6px;margin-top:8px;display:flex}.game-shell .g-pbtn{font-family:var(--font-px),monospace;border:1.5px solid var(--acc);color:var(--acc);background:0 0;border-radius:99px;padding:6px 9px;font-size:7px;line-height:1;text-decoration:none}.game-shell .g-pbtn.fill{background:var(--acc);color:#fff}.g-pbtn:hover{filter:brightness(1.1);text-decoration:underline}.g-links .g-chips{margin-left:4px}.g-panel .g-row{align-items:flex-start;gap:18px;display:flex}.g-panel .g-photo{object-fit:cover;border:3px solid #2b1d14;flex:none;width:84px;height:105px}.acc-contact .g-list>li{flex-wrap:wrap;align-items:baseline;gap:12px;display:flex}.acc-contact .g-list .g-lbl{flex:none;width:80px}.acc-contact .g-list a{overflow-wrap:anywhere}.g-car{outline:none;max-width:300px;margin:0 auto}.g-car:focus-visible{outline-offset:4px;outline:3px solid #ffd166}.g-car-view{background:#fff;border:6px solid #fff;overflow:hidden;box-shadow:3px 4px #2b1d1440}.g-car-track{transition:transform .35s steps(6,end);display:flex}.g-car-track figure{flex:0 0 100%;margin:0}.g-car-track img{aspect-ratio:4/3;object-fit:cover;width:100%;display:block}.g-car-bar{align-items:center;gap:10px;margin-top:10px;display:flex}.g-car-bar p{text-align:center;flex:1;font-size:15px;font-weight:500;line-height:1.3}.g-car-bar small{font-family:var(--font-px),monospace;color:var(--acc);margin-top:4px;font-size:7px;display:block}.g-car-btn{font-family:var(--font-px),monospace;cursor:pointer;width:32px;height:32px;color:var(--acc);border:3px solid var(--acc);background:#fdf0d5;font-size:9px;box-shadow:2px 2px #2b1d14}.g-car-btn:active{box-shadow:none;transform:translate(2px,2px)}.g-car-dots{justify-content:center;gap:6px;margin-top:8px;display:flex}.g-car-dots span{background:var(--acc-line);width:7px;height:7px}.g-car-dots span.on{background:var(--acc)}@media (prefers-reduced-motion:reduce){.g-car-track{transition:none}}.g-x{font-family:var(--font-px),monospace;cursor:pointer;color:#2b1d14;background:0 0;border:none;padding:6px;font-size:10px;position:absolute;top:16px;right:18px}.g-seal{color:#fdf0d5;width:42px;height:42px;font-family:var(--font-px),monospace;opacity:.85;pointer-events:none;background:#b5171d;border:2px solid #fdf0d5;outline:2px solid #b5171d;justify-content:center;align-items:center;font-size:9px;display:flex;transform:rotate(-6deg)}.g-bar{z-index:5;background:#2b1d14cc;border:3px solid #e9c46a;gap:6px;padding:6px;display:flex;position:absolute;bottom:18px;left:50%;transform:translate(-50%)}.g-slot{cursor:pointer;color:#fdf0d5;min-width:64px;height:64px;font-family:var(--font-vt),monospace;background:#7a1f1f;border:3px solid #4a1010;border-color:#c0504d #4a1010 #4a1010 #c0504d;flex-direction:column;justify-content:center;align-items:center;padding:0 8px;font-size:16px;line-height:1;display:flex;position:relative}.g-slot-n{font-family:var(--font-px),monospace;color:#ffd166;margin-bottom:6px;font-size:14px;line-height:1}.g-slot.on{background:#9b2226;border-color:#ffd166}.g-stick{z-index:6;touch-action:none;background:#2b1d1473;border:3px solid #e9c46acc;border-radius:50%;justify-content:center;align-items:center;width:112px;height:112px;display:flex;position:absolute;bottom:100px;left:18px}.g-stick-knob{pointer-events:none;background:#e9c46a;border:3px solid #2b1d14;border-radius:50%;width:44px;height:44px}.game-preview{z-index:3;cursor:pointer;background:0 0;border:0;width:100%;height:100%;padding:0;display:none;position:absolute;inset:0}html[data-mode=site]:not([data-nogl]) .game-preview{display:block}.game-preview .start{font-family:var(--font-px),monospace;color:#fff;background:var(--navy,#1d3557);white-space:nowrap;border:3px solid #fff;padding:10px 14px;font-size:11px;animation:1.2s steps(2,end) infinite g-blink;position:absolute;bottom:22px;left:50%;transform:translate(-50%);box-shadow:3px 3px #00000059}.game-preview:focus-visible{outline:3px solid var(--acc,#e76f51);outline-offset:-6px}@media (max-width:700px){.g-help{display:none}.g-slot{min-width:0;height:52px;padding:0 6px;font-size:13px}.g-slot-n{margin-bottom:5px;font-size:11px}.g-hud-t{font-size:11px}.g-hud-t small{font-size:18px}.g-hud{top:12px;left:12px;right:12px}.g-hud-r{gap:6px}.g-hud-r .g-btn{padding:7px 8px;font-size:8px}.g-panel{--px:22px;font-size:14px}.g-panel-head{padding-top:22px}.g-panel-foot{padding-bottom:16px}.g-panel .g-row{flex-direction:column;gap:12px}.g-panel .g-photo{width:64px;height:80px}.g-title-s{font-size:22px}.g-title-k{margin-bottom:14px;font-size:8px}}@media (pointer:coarse){.g-panel{max-height:calc(100% - 336px);top:108px;bottom:auto}.g-help,.g-title-h .g-keys{display:none}.g-title-h .g-touch{display:inline}}@media (prefers-reduced-motion:reduce){.game-shell,.g-title-in,.g-title-h,.game-preview .start{animation:none!important}.g-panel{transition:none}}
.fy{--bg:#fdf6e9;--ink:#2b1d14;--dim:#6f5d4e;--line:#e6d6bd;--acc:#e76f51;--acc-text:#b9472a;--sky:#5fb4ff;--navy:#1d3557;--card:#fffaf1;--body:#4a3b2f;--px:var(--font-px),monospace;--vt:var(--font-vt),monospace;--head:var(--font-head),system-ui,sans-serif;background:var(--bg);color:var(--ink);font-family:var(--font-body),system-ui,sans-serif;-webkit-font-smoothing:antialiased;min-height:100vh;line-height:1.6}.fy *,.fy :before,.fy :after{box-sizing:border-box}.fy :where(h1,h2,h3,p,ul,figure){margin:0;padding:0}.fy a{color:inherit}.fy :focus-visible{outline:3px solid var(--acc);outline-offset:3px}.fy section[id]{scroll-margin-top:72px}.fy .px{font-family:var(--px);font-weight:400}.fy .sr-only{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.fy .wrap{max-width:1120px;margin:0 auto;padding:0 28px}.fy .site-header{z-index:20;-webkit-backdrop-filter:blur(8px);border-bottom:1px solid var(--line);background:#fdf6e9e6;position:sticky;top:0}.fy .site-header .wrap{justify-content:space-between;align-items:center;gap:16px;height:64px;display:flex}.fy .logo{font-family:var(--px);white-space:nowrap;font-size:12px;text-decoration:none}.fy .logo span{color:var(--acc-text)}.fy .site-nav{color:var(--dim);align-items:center;gap:26px;font-size:14px;display:flex}.fy .site-nav a{text-decoration:none}.fy .site-nav a:hover{color:var(--ink)}.fy .pbtn{font-family:var(--px);letter-spacing:.5px;background:var(--acc-text);color:#fff;border:3px solid var(--ink);cursor:pointer;box-shadow:3px 3px 0 var(--ink);white-space:nowrap;align-items:center;gap:8px;padding:10px 14px;font-size:10px;line-height:1.4;text-decoration:none;transition:transform .1s,box-shadow .1s;display:inline-flex}.fy .pbtn:hover{box-shadow:4px 4px 0 var(--ink);transform:translate(-1px,-1px)}.fy .pbtn:active{box-shadow:1px 1px 0 var(--ink);transform:translate(2px,2px)}.fy .pbtn.ghost{background:var(--card);color:var(--ink)}.fy .hero{padding:72px 0 64px}.fy .hero .wrap{grid-template-columns:1.05fr 1fr;align-items:center;gap:56px;display:grid}.fy .kick{font-family:var(--px);color:var(--acc-text);letter-spacing:.5px;margin-bottom:18px;font-size:10px;line-height:1.6}.fy h1{font-family:var(--head);letter-spacing:-.03em;font-size:clamp(44px,6.4vw,84px);font-weight:600;line-height:.95}.fy .lead{color:var(--dim);max-width:480px;margin-top:22px;font-size:18px}.fy .ctas{flex-wrap:wrap;gap:14px;margin-top:30px;display:flex}.fy .meta{color:var(--dim);flex-wrap:wrap;gap:28px;margin-top:38px;font-size:13px;display:flex}.fy .meta b{font-family:var(--head);color:var(--ink);font-size:22px;font-weight:500;display:block}.fy .cart{min-width:0;position:relative}.fy .cart .label-top{font-family:var(--px);color:var(--dim);justify-content:space-between;gap:8px;margin-bottom:10px;font-size:9px;display:flex}.fy #hero-title:focus,.fy section h2[tabindex="-1"]:focus{outline:none}.fy section.s{border-top:1px solid var(--line);padding:84px 0}.fy .sh{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:20px;margin-bottom:36px;display:flex}.fy .sh h2{font-family:var(--head);letter-spacing:-.02em;font-size:40px;font-weight:600;line-height:1}.fy .visit{font-family:var(--px);color:var(--dim);border:none;border-bottom:2px dotted var(--dim);cursor:pointer;background:0 0;align-items:center;gap:8px;padding:8px 0;font-size:9px;line-height:1.4;display:inline-flex}.fy .visit:hover{color:var(--acc-text);border-color:var(--acc-text)}.fy .about{grid-template-columns:1.2fr 1fr;gap:48px;display:grid}.fy .about-text{grid-template-columns:148px 1fr;align-items:start;gap:28px;display:grid}.fy .about p{color:var(--body);font-size:17px}.fy .about p+p{margin-top:14px}.fy .portrait{border:3px solid var(--ink);box-shadow:5px 5px 0 var(--ink);background:var(--card);padding:6px}.fy .portrait img{aspect-ratio:4/5;object-fit:cover;width:100%;display:block}.fy .facts{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px 20px;margin-top:22px;font-size:14px;display:grid}.fy .facts dt{font-family:var(--px);color:var(--dim);margin-bottom:4px;font-size:8px}.fy .facts dd{margin:0}.fy .skills h3{font-family:var(--px);color:var(--dim);margin:18px 0 10px;font-size:8px;font-weight:400}.fy .skills>h3:first-child{margin-top:0}.fy .chips{flex-wrap:wrap;gap:8px;list-style:none;display:flex}.fy .chips li{border:2px solid var(--ink);background:var(--card);box-shadow:2px 2px 0 var(--ink);padding:6px 10px;font-size:13px}.fy .chips.small li{box-shadow:none;border-width:1px;padding:3px 8px;font-size:12px}.fy .tl{border-left:3px solid var(--ink);margin-left:6px;list-style:none}.fy .tl .it{padding:0 0 30px 28px;position:relative}.fy .tl .it:before{content:"";background:var(--acc);border:3px solid var(--ink);width:12px;height:12px;position:absolute;top:6px;left:-9px}.fy .tl .it.up:before{background:var(--card)}.fy .tl .row{flex-wrap:wrap;justify-content:space-between;gap:12px;display:flex}.fy .tl h3{font-family:var(--head);font-size:22px;font-weight:500}.fy .tl h3 small{color:var(--dim);margin-left:8px;font-size:15px;font-weight:400}.fy .tl em{font-style:normal;font-family:var(--px);color:var(--dim);align-self:center;font-size:9px}.fy .tl p{color:var(--body);margin-top:4px}.fy .tl ul.bul{color:var(--body);margin:8px 0 0 18px;list-style:square}.fy .tl ul.bul li::marker{color:var(--acc)}.fy .tl ul.bul li+li{margin-top:4px}.fy .todo{font-family:var(--px);color:#9b2226;background:#fde8e0;border:2px dashed #9b2226;margin-top:10px;padding:8px 10px;font-size:8px;line-height:1.6;display:inline-block}.fy .grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:24px;display:grid}.fy .card{background:var(--card);border:3px solid var(--ink);box-shadow:5px 5px 0 var(--ink);flex-direction:column;transition:transform .15s,box-shadow .15s;display:flex}.fy .card:hover{box-shadow:7px 7px 0 var(--ink);transform:translate(-2px,-2px)}.fy .thumb{border-bottom:3px solid var(--ink);width:100%;height:170px;image-rendering:pixelated;display:block}.fy .card .body{flex-direction:column;flex:1;padding:18px 20px 20px;display:flex}.fy .card .num{font-family:var(--px);color:var(--acc-text);margin-bottom:8px;font-size:8px}.fy .card h3{font-family:var(--head);font-size:22px;font-weight:500}.fy .card p{color:var(--body);margin-top:6px;font-size:15px}.fy .card p.short{color:var(--ink);font-weight:500}.fy .card .tags{margin-top:auto;padding-top:14px}.fy .card .repos{flex-wrap:wrap;gap:18px;margin-top:14px;display:flex}.fy .card .repo{font-family:var(--px);color:var(--dim);border-bottom:2px dotted var(--dim);align-self:flex-start;padding-bottom:4px;font-size:8px;text-decoration:none}.fy .card .repo:hover{color:var(--acc-text);border-color:var(--acc-text)}.fy .tags{flex-wrap:wrap;gap:6px;margin-top:14px;list-style:none;display:flex}.fy .tags li{font-family:var(--px);color:var(--ink);text-transform:uppercase;background:#f1e3cb;padding:5px 7px;font-size:7.5px}.fy .more{margin-top:44px}.fy .more h3.more-h{font-family:var(--px);color:var(--dim);margin-bottom:16px;font-size:10px;font-weight:400}.fy .more-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;display:grid}.fy .more-item{border:2px solid var(--ink);background:var(--card);box-shadow:3px 3px 0 var(--ink);padding:16px 18px;text-decoration:none;transition:transform .15s,box-shadow .15s;display:block}.fy a.more-item:hover{box-shadow:4px 4px 0 var(--ink);transform:translate(-1px,-1px)}.fy .more-item h4{font-family:var(--head);justify-content:space-between;gap:8px;margin:0;font-size:18px;font-weight:500;display:flex}.fy .more-item h4 span{font-family:var(--px);color:var(--acc-text);font-size:9px}.fy .more-item p{color:var(--dim);margin-top:4px;font-size:14px}.fy .resume{grid-template-columns:1fr 1.1fr;align-items:start;gap:48px;display:grid}.fy .resume .lead{margin-top:0}.fy .resume .ctas{margin-top:24px}.fy .resume-doc{background:#fff;border:1px solid #2b1d1459;justify-self:center;width:100%;max-width:640px;transition:transform .2s,box-shadow .2s;display:block;transform:rotate(1.2deg);box-shadow:6px 7px #2b1d1438}.fy .resume-doc:hover{transform:rotate(.4deg)translateY(-3px);box-shadow:8px 10px #2b1d1438}.fy .resume-doc img{width:100%;height:auto;display:block}.fy .pmap-frame{border:3px solid var(--ink);box-shadow:5px 5px 0 var(--ink);background:#1d3557;position:relative}.fy .pmap{aspect-ratio:1197/520;position:relative}.fy .places-hint{display:none}.fy .pmap-art{width:100%;height:100%;display:block;position:absolute;inset:0}.fy .pmap-label{font-family:var(--px);letter-spacing:1px;font-size:15px}.fy .pmap-leaders{pointer-events:none;width:100%;height:100%;position:absolute;inset:0;overflow:visible}.fy .pmap-leaders line{stroke:var(--ink);stroke-width:2px;stroke-dasharray:3 3}.fy .pmap-dot{background:var(--ink);pointer-events:none;border:2px solid #fdf0d5;width:8px;height:8px;margin:-4px 0 0 -4px;position:absolute}.fy .pmap-pin{z-index:1;min-width:26px;height:26px;font-family:var(--px);color:#fff;border:2px solid var(--ink);box-shadow:2px 2px 0 var(--ink);cursor:pointer;background:#b5171d;justify-content:center;align-items:center;gap:6px;padding:0 6px;font-size:9px;line-height:1;display:inline-flex;position:absolute;transform:translate(-50%,-50%)}.fy .pmap-pin:hover,.fy .pmap-pin.on{color:var(--ink);z-index:2;background:#ffd166}.fy .pmap-pin em{font-size:8px;font-style:normal}.fy .pmap-far{z-index:1;background:var(--card);border:2px solid var(--ink);box-shadow:3px 3px 0 var(--ink);flex-direction:column;align-items:flex-start;gap:6px;padding:8px 10px 10px;display:flex;position:absolute;bottom:10px;right:10px}.fy .pmap-far p{font-family:var(--px);color:var(--dim);margin-bottom:2px;font-size:7px}.fy .pmap-far .pmap-pin{position:static;transform:none}.fy .pmap-pop{--tx:-50%;--ty:20px;z-index:5;width:200px;transform:translate(var(--tx),var(--ty))rotate(-1.5deg);pointer-events:none;background:#fff;border:1px solid #e3d5bd;margin:0;padding:8px 8px 0;position:absolute;box-shadow:4px 5px #2b1d144d}.fy .pmap-pop.above{--ty:calc(-100% - 20px)}.fy .pmap-pop.al{--tx:-14px}.fy .pmap-pop.ar{--tx:calc(-100% + 14px)}.fy .pmap-pop[hidden]{display:none}.fy .pmap-pop img{aspect-ratio:1;object-fit:cover;background:#eadfcb;width:100%;display:block}.fy .pmap-pop figcaption{font-family:var(--vt);text-align:center;color:var(--ink);padding:8px 0 10px;font-size:20px;line-height:1}.fy .pmap-pop figcaption small{font-family:var(--font-body),sans-serif;color:var(--dim);margin-top:4px;font-size:11px;display:block}.fy .pmap-x{pointer-events:auto;width:26px;height:26px;font-family:var(--px);background:var(--card);color:var(--ink);border:2px solid var(--ink);cursor:pointer;font-size:10px;line-height:1;position:absolute;top:-10px;right:-10px}.fy .places-line{color:var(--body);margin-top:26px;font-size:17px}.fy .pstrip{scrollbar-width:none;overscroll-behavior-x:contain;gap:16px;margin-top:6px;padding:14px 4px 18px;list-style:none;display:flex;overflow-x:auto;-webkit-mask-image:linear-gradient(90deg,#0000,#000 56px calc(100% - 56px),#0000);mask-image:linear-gradient(90deg,#0000,#000 56px calc(100% - 56px),#0000)}.fy .pstrip::-webkit-scrollbar{display:none}.fy .pstrip.marquee{cursor:grab}.fy .pstrip.marquee.dragging{cursor:grabbing;-webkit-user-select:none;user-select:none}.fy .pstrip.dragging button{cursor:grabbing}.fy .pstrip li{flex:none}.fy .pstrip button{cursor:pointer;width:132px;font:inherit;color:var(--ink);background:#fff;border:1px solid #e3d5bd;padding:6px 6px 0;transition:transform .15s;display:block;box-shadow:3px 4px #2b1d142e}.fy .pstrip li:nth-child(odd) button{transform:rotate(-1.5deg)}.fy .pstrip li:nth-child(2n) button{transform:rotate(1.5deg)}.fy .pstrip button:hover{transform:rotate(0)translateY(-3px)}.fy .pstrip img{aspect-ratio:1;object-fit:cover;background:#eadfcb;width:100%;display:block}.fy .pstrip span{font-family:var(--vt);justify-content:center;align-items:center;gap:6px;padding:7px 0 9px;font-size:17px;line-height:1;display:flex}.fy .pstrip b{font-family:var(--px);color:#fff;background:#b5171d;padding:3px 4px;font-size:7px;font-weight:400}.fy .postcard{border:3px solid var(--ink);outline-offset:-9px;max-width:560px;box-shadow:6px 6px 0 var(--ink);background:#f6ead0;outline:2px solid #9b2226;margin:0 auto;padding:34px 30px 28px;position:relative}.fy .postcard-seal{color:#fdf0d5;width:44px;height:44px;font-family:var(--px);opacity:.9;pointer-events:none;background:#b5171d;border:2px solid #fdf0d5;outline:2px solid #b5171d;justify-content:center;align-items:center;font-size:9px;display:flex;position:absolute;top:20px;right:20px;transform:rotate(-6deg)}.fy .postcard .kick,.fy .postcard h2{padding-right:60px}.fy .postcard .kick{margin-bottom:12px}.fy .postcard h2{font-family:var(--head);letter-spacing:-.02em;font-size:30px;font-weight:600;line-height:1.1}.fy .postcard .sub{color:var(--body);margin-top:10px;font-size:16px}.fy .postcard .links{flex-wrap:wrap;gap:10px;margin-top:24px;display:flex}.fy .postcard .addr{color:var(--dim);-webkit-user-select:all;user-select:all;overflow-wrap:anywhere;margin-top:16px;font-size:13px}.fy .postcard .addr a{text-decoration:none}.fy .postcard .addr a:hover{color:var(--acc-text);text-decoration:underline}.fy .swap{justify-items:center;display:grid}.fy .swap>*{grid-area:1/1}.fy .contact-visit{justify-content:center;margin-top:22px;display:flex}.fy .site-footer{background:var(--navy);color:#a8c5e8;font-family:var(--px);border-top:1px solid #ffffff1f;padding:26px 0 34px;font-size:8px}.fy .site-footer .wrap{flex-wrap:wrap;justify-content:space-between;gap:12px;line-height:1.8;display:flex}@media (max-width:900px){.fy .hero .wrap,.fy .about,.fy .resume,.fy .grid,.fy .more-grid{grid-template-columns:1fr}.fy .site-nav a:not(.pbtn){display:none}}@media (max-width:560px){.fy .wrap{padding:0 16px}.fy .hero{padding:48px 0}.fy .about-text{grid-template-columns:1fr}.fy .portrait{max-width:180px}.fy .pmap-label{display:none}.fy .pmap-scroll{overscroll-behavior-x:contain;overflow-x:auto}.fy .pmap{width:640px}.fy .pmap-far{gap:4px;padding:4px 5px 5px;bottom:5px;right:5px}.fy .pmap-far p{margin:0;font-size:6px}.fy .pmap-far .pmap-pin{height:22px;padding:0 5px;font-size:7px}.fy .places-hint{font-family:var(--px);color:var(--dim);margin-top:12px;font-size:7px;display:block}.fy .pmap-pop{--tx:-50%;--ty:-50%;width:150px;top:50%!important;left:50%!important}.fy .pmap-pop.above,.fy .pmap-pop.al,.fy .pmap-pop.ar{--tx:-50%;--ty:-50%}.fy .sh h2{font-size:32px}.fy .logo{font-size:10px}.fy .site-header .pbtn{padding:8px 10px;font-size:8px}.fy .postcard{padding:26px 20px 22px}.fy .postcard .links{grid-template-columns:1fr 1fr;display:grid}.fy .postcard .links .pbtn{justify-content:center}}@media (prefers-reduced-motion:reduce){.fy .card,.fy .pstrip button,.fy .pbtn,.fy .resume-doc{transition:none}}html[data-nogl] .fy .cart .label-top span:last-child{display:none}
