.slider[data-v-d9e30f54]{position:relative;width:100%;max-width:500px;aspect-ratio:500 / 550;overflow:hidden;border-radius:8px;box-shadow:0 4px 12px #0000004d;user-select:none;-webkit-user-select:none;margin:0 auto;cursor:ew-resize;touch-action:pan-y}.slider img[data-v-d9e30f54]{position:absolute;top:0;left:0;width:100%;height:100%;object-fit:cover;object-position:center 85%;display:block;pointer-events:none}.before-img[data-v-d9e30f54]{z-index:2;will-change:clip-path}.handle[data-v-d9e30f54]{position:absolute;top:0;width:4px;height:100%;background:#fff;transform:translate(-50%);z-index:10;pointer-events:none;will-change:left}.knob[data-v-d9e30f54]{position:absolute;top:50%;left:50%;width:36px;height:36px;background:#fff;border-radius:50%;transform:translate(-50%,-50%);box-shadow:0 2px 6px #0000004d;display:flex;align-items:center;justify-content:center;color:#333;font-weight:700;font-size:16px}#featured[data-v-435f4f39]{max-width:none}.grid[data-v-435f4f39]{display:grid;align-items:start;grid-template-columns:1fr 1fr;gap:80px 56px}.entry[data-v-435f4f39]{display:flex;flex-direction:column;gap:22px;color:var(--text);border:0}.entry.lead[data-v-435f4f39]{grid-column:1 / -1;display:grid;grid-template-columns:1.3fr 1fr;gap:64px;align-items:center}.mount[data-v-435f4f39]{padding:12px;background:var(--bg-raised);border:1px solid var(--line);transition:border-color .15s}.mount img[data-v-435f4f39]{display:block;width:100%;height:auto}.entry:hover .mount[data-v-435f4f39]{border-color:var(--bronze)}h3[data-v-435f4f39]{font-family:var(--serif);font-weight:600;font-size:24px;letter-spacing:-.01em;line-height:1.25;margin:0 0 14px}.entry.lead h3[data-v-435f4f39]{font-size:32px}p[data-v-435f4f39]{margin:0 0 14px;color:var(--text-dim);max-width:46ch}.kit[data-v-435f4f39]{font-size:14px}.cta[data-v-435f4f39]{display:inline-block;margin-top:10px;color:var(--accent);border-bottom:1px solid var(--accent-dim)}.entry:hover .cta[data-v-435f4f39]{border-bottom-color:var(--accent)}@media(max-width:760px){.grid[data-v-435f4f39],.entry.lead[data-v-435f4f39]{grid-template-columns:1fr}.grid[data-v-435f4f39]{gap:56px}.entry.lead[data-v-435f4f39]{gap:22px}}.hero[data-v-619ae784]{max-width:none;padding-top:56px;padding-bottom:112px}.legend[data-v-619ae784]{display:block;width:100%;fill:none;stroke:var(--accent-dim);stroke-width:5;stroke-linecap:square;opacity:.5}.hero-grid[data-v-619ae784]{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.05fr);gap:64px;align-items:center;margin-top:56px}.intro[data-v-619ae784]{position:relative;z-index:2}.hero h1[data-v-619ae784]{font-family:var(--serif);font-weight:600;font-size:clamp(44px,6.4vw,78px);line-height:1.08;letter-spacing:-.02em;margin:0 0 32px}.hero h1 span[data-v-619ae784]{display:block}.lede[data-v-619ae784]{font-size:19px;line-height:1.7;color:var(--text-dim);max-width:44ch;margin:0 0 40px}.actions[data-v-619ae784]{display:flex;flex-wrap:wrap;gap:14px;font-size:15px}.actions a[data-v-619ae784]{border:1px solid var(--line);padding:12px 22px;border-radius:2px;color:var(--text)}.actions a[data-v-619ae784]:hover{border-color:var(--accent);color:var(--accent)}.actions a.primary[data-v-619ae784]{background:var(--accent);border-color:var(--accent);color:#1b1408;font-weight:600}.actions a.primary[data-v-619ae784]:hover{background:var(--text);border-color:var(--text);color:#1b1408}.coin[data-v-619ae784]{margin:0;position:relative;z-index:1}.coin img[data-v-619ae784]{display:block;width:100%;height:auto;filter:drop-shadow(0 22px 26px rgba(0,0,0,.5))}.coin figcaption[data-v-619ae784]{font-size:15px;line-height:1.75;color:var(--text-dim);max-width:46ch;margin-top:24px}.coin figcaption strong[data-v-619ae784]{display:block;font-family:var(--serif);font-weight:600;font-size:17px;color:var(--text);margin-bottom:6px}.coin figcaption [lang=grc][data-v-619ae784]{font-family:var(--sans);font-weight:600;color:var(--bronze);letter-spacing:.06em}@media(max-width:760px){.hero-grid[data-v-619ae784]{grid-template-columns:1fr;gap:40px;margin-top:32px}.coin[data-v-619ae784]{margin:0}.coin figcaption[data-v-619ae784]{text-align:left}}.compare[data-v-619ae784]{display:flex;flex-direction:column;align-items:center}.compare .section-title[data-v-619ae784]{align-self:flex-start;margin-bottom:14px}.numis-note[data-v-619ae784]{align-self:flex-start;max-width:52ch;margin:0 0 40px;color:var(--text-dim)}.specimen[data-v-619ae784]{width:100%;max-width:500px;margin:28px auto 0;text-align:center;color:var(--text-dim)}.specimen strong[data-v-619ae784]{font-family:var(--serif);font-weight:600;color:var(--text)}.coin-caption[data-v-619ae784]{width:100%;max-width:500px;margin:24px auto 4px;font-size:.95rem;line-height:1.6;text-align:center;padding:14px 20px;border-radius:2px;background:var(--bg-raised);color:var(--text);border:1px solid var(--line)}.photo-notice[data-v-619ae784]{margin-top:12px;font-size:.8rem;color:var(--text-dim);font-style:italic;text-align:center}#work[data-v-19687ce4]{padding:40px 0 0}#work[data-v-19687ce4]:after{display:none}#tinkering[data-v-19687ce4]{padding:48px 0}.project[data-v-19687ce4]{padding:26px 28px;margin-bottom:20px;border:1px solid var(--line);border-radius:6px;background:var(--bg-raised);transition:border-color .15s}.project[data-v-19687ce4]:hover{border-color:var(--accent-dim)}.project[data-v-19687ce4]:first-of-type{padding-top:26px}.row[data-v-19687ce4]{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap}.prompt[data-v-19687ce4]{font-family:var(--mono);color:var(--accent)}.name[data-v-19687ce4]{font-family:var(--sans);font-size:18px;font-weight:600;color:var(--text);border-bottom:none}.name[data-v-19687ce4]:hover{color:var(--accent);border-bottom-color:var(--accent)}.project p[data-v-19687ce4]{margin:12px 0 0;color:var(--text-dim);max-width:60ch}.project.featured[data-v-19687ce4]{border-left:2px solid var(--accent)}.badge[data-v-19687ce4]{margin-left:10px;padding:2px 8px;font-family:var(--mono);font-size:11px;color:var(--accent);border:1px solid var(--accent-dim);border-radius:999px;vertical-align:2px}.shot[data-v-19687ce4]{display:block;width:100%;max-width:480px;height:auto;margin-top:20px;border:1px solid var(--line);border-radius:6px}.more[data-v-19687ce4]{margin-top:12px}.more summary[data-v-19687ce4]{cursor:pointer;color:var(--accent);width:fit-content}.more summary[data-v-19687ce4]:hover{text-decoration:underline}#games[data-v-ac6c80c5]{padding:40px 0}#games[data-v-ac6c80c5]:after{display:none}.project[data-v-ac6c80c5]{padding:26px 28px;margin-bottom:20px;border:1px solid var(--line);border-radius:6px;background:var(--bg-raised);transition:border-color .15s}.project[data-v-ac6c80c5]:hover{border-color:var(--accent-dim)}.project[data-v-ac6c80c5]:first-of-type{padding-top:26px}.row[data-v-ac6c80c5]{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap}.prompt[data-v-ac6c80c5]{font-family:var(--mono);color:var(--accent)}.name[data-v-ac6c80c5]{font-family:var(--sans);font-size:18px;font-weight:600;color:var(--text);border-bottom:none}.name[data-v-ac6c80c5]:hover{color:var(--accent);border-bottom-color:var(--accent)}.project p[data-v-ac6c80c5]{margin:12px 0 0;color:var(--text-dim);max-width:60ch}.more[data-v-ac6c80c5]{margin-top:12px}.more summary[data-v-ac6c80c5]{cursor:pointer;color:var(--accent);width:fit-content}.more summary[data-v-ac6c80c5]:hover{text-decoration:underline}.shot[data-v-ac6c80c5]{display:block;width:100%;max-width:480px;height:auto;margin-top:20px;border:1px solid var(--line)}.play[data-v-ac6c80c5]{display:inline-block;margin-top:18px;padding:10px 24px;background:var(--accent);border:1px solid var(--accent);border-radius:2px;color:#1b1408;font-weight:600}.play[data-v-ac6c80c5]:hover{background:var(--text);border-color:var(--text);color:#1b1408}@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/ibm-plex-mono-latin-400.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:IBM Plex Mono;font-style:normal;font-weight:500;font-display:swap;src:url(/fonts/ibm-plex-mono-latin-500.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:IBM Plex Mono;font-style:normal;font-weight:600;font-display:swap;src:url(/fonts/ibm-plex-mono-latin-600.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:IBM Plex Sans;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/ibm-plex-sans-latin-400.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:IBM Plex Sans;font-style:normal;font-weight:600;font-display:swap;src:url(/fonts/ibm-plex-sans-latin-600.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:"IBM Plex Serif";font-style:normal;font-weight:600;font-display:swap;src:url(/fonts/ibm-plex-serif-latin-600.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:Caveat;font-style:normal;font-weight:600;font-display:swap;src:url(/fonts/caveat-latin-600.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:IBM Plex Sans;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/ibm-plex-sans-greek-400.woff2) format("woff2");unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF}@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:600;font-display:swap;src:url(/fonts/ibm-plex-sans-greek-600.woff2) format("woff2");unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF}@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/ibm-plex-sans-cyrillic-400.woff2) format("woff2");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}:root{--bg: #17211D;--bg-raised: #1E2B26;--line: #33463F;--text: #ECE7D8;--text-dim: #A3B2AA;--accent: #8ED1B2;--accent-dim: #47725F;--teal: #9CC3B5;--bronze: #C98F4E;--mono: "IBM Plex Mono", ui-monospace, monospace;--sans: "IBM Plex Sans", system-ui, sans-serif;--serif: "IBM Plex Serif", Georgia, serif}*{box-sizing:border-box}html{scroll-behavior:smooth}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{animation-duration:.01ms!important;transition-duration:.01ms!important}}body{margin:0;background:var(--bg);color:var(--text);font:17px/1.75 var(--sans);-webkit-font-smoothing:antialiased}header.site,main{position:relative;z-index:2}a{color:var(--accent);text-decoration:none;border-bottom:1px solid transparent;transition:color .15s,border-color .15s}a:hover{border-bottom-color:currentColor}:focus-visible{outline:2px solid var(--bronze);outline-offset:3px}::selection{background:var(--accent-dim);color:var(--text)}h1,h2,h3{text-wrap:balance}p{text-wrap:pretty}.wrap{max-width:1160px;margin:0 auto;padding:0 clamp(24px,5vw,56px)}.wrap:not(.wide)>section{max-width:760px}header.site{position:sticky;top:0;background:#17211ddb;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-bottom:1px solid var(--line);z-index:10}nav.site{max-width:1160px;margin:0 auto;padding:20px clamp(24px,5vw,56px);display:flex;justify-content:space-between;align-items:center;font-size:15px}nav.site .mark{display:inline-flex;align-items:center;gap:10px;color:var(--text);border:0;font-family:var(--serif);font-weight:600;letter-spacing:-.01em}nav.site .avatar{width:34px;height:34px;border-radius:50%;object-fit:cover;object-position:center 20%;border:1px solid var(--bronze)}nav.site .pages{display:flex;gap:34px}nav.site .pages a{color:var(--text-dim);padding:4px 0;border-bottom:2px solid transparent}nav.site .pages a:hover{color:var(--text)}nav.site .pages a.router-link-exact-active{color:var(--text);border-bottom-color:var(--bronze)}main{padding-top:8px}section{padding:104px 0;position:relative}section:not(:last-of-type):after{content:"";position:absolute;left:0;right:0;bottom:0;height:1px;background:var(--line)}h2.section-title{font-family:var(--serif);font-weight:600;font-size:clamp(24px,3.2vw,32px);letter-spacing:-.01em;line-height:1.25;color:var(--text);margin:0 0 44px}h2.section-title .rule{display:none}.page-head{padding-top:88px;padding-bottom:16px}.page-head h1{font-family:var(--serif);font-weight:600;font-size:clamp(34px,5vw,48px);letter-spacing:-.015em;line-height:1.15;margin:0 0 20px}.page-head p{color:var(--text-dim);max-width:52ch;margin:0}.now-list{list-style:none;margin:0;padding:0}.now-list li{padding:30px 0;border-top:1px solid var(--line)}.now-list li:first-child{border-top:0;padding-top:0}.now-list strong{display:block;font-family:var(--serif);font-weight:600;font-size:20px;letter-spacing:-.005em;margin-bottom:10px}.now-list span{color:var(--text-dim);max-width:62ch;display:block}.stack-group{margin-bottom:20px}.stack-group:last-child{margin-bottom:0}.stack-group .label{font-size:14px;color:var(--text-dim);display:block;margin-bottom:10px}.tags{display:flex;flex-wrap:wrap;gap:10px}.tags span{font-family:var(--mono);font-size:13px;background:var(--bg-raised);border:1px solid var(--line);padding:3px 9px;border-radius:2px}footer.site{padding:88px 0 104px}footer.site .row{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:20px}footer.site .logo{width:48px;height:48px;border-radius:50%;filter:hue-rotate(-75deg) saturate(.9)}footer.site a.email{font-family:var(--serif);font-weight:600;font-size:20px}footer.site .links{display:flex;gap:18px;font-size:14px;flex-wrap:wrap}footer.site .links a{color:var(--text-dim)}footer.site .links a:hover{color:var(--accent)}@media(max-width:520px){nav.site{padding:10px 16px}nav.site .mark span{display:none}nav.site .pages{gap:18px}section{padding:68px 0}}
