@font-face{font-family:"Instrument Serif";src:url(/fonts/instrument-serif-latin.woff2) format("woff2");font-style:normal;font-weight:400;font-display:swap}:root{color-scheme:light;--paper: #f8f7f2;--ink: #20211f;--accent: #253dd0;--muted: #585952;--line: #cbc9be;--mono: "IBM Plex Mono", Consolas, "Liberation Mono", monospace;--sans: "Helvetica Neue", Arial, sans-serif;--serif: "Instrument Serif", "Times New Roman", serif}*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font:16px/1.5 var(--sans)}img{display:block;max-width:100%}button,input{font:inherit}a{color:var(--accent);text-decoration-thickness:1px;text-underline-offset:.2em}a:hover{text-decoration-thickness:2px}:focus-visible{outline:2px solid var(--accent);outline-offset:4px}::-moz-selection{color:#fff;background:var(--accent)}::selection{color:#fff;background:var(--accent)}.page-width{width:min(calc(100% - clamp(36px,10vw,144px)),1120px);margin-inline:auto}.site-shell{min-height:100vh;display:flex;flex-direction:column}.site-shell>main{flex:1}.skip-link{position:absolute;top:0;left:8px;z-index:2;padding:8px;background:var(--paper);transform:translateY(-140%)}.skip-link:focus{transform:none}.site-header,.site-footer,.profile-links,.goma-caption,.entry-year{font-family:var(--mono)}.site-header,.site-footer{display:flex;align-items:center;justify-content:space-between;gap:16px;font-size:13px}.site-header{min-height:67px;border-bottom:1px solid var(--ink)}.site-address{color:var(--ink);font-weight:700;text-decoration:none}.site-address:hover,.site-nav a:hover,.site-nav a.active{text-decoration:underline}.site-nav,.site-footer>div{display:flex;flex-wrap:wrap;gap:0 clamp(16px,2.8vw,38px)}.site-nav a{color:var(--ink);text-decoration:none;padding-block:7px}.site-nav a.active{color:var(--accent)}.site-footer{border-top:1px solid var(--ink);padding-block:24px 38px}.site-footer>span{color:var(--muted)}.site-footer a{color:var(--ink)}.home-intro{display:grid;grid-template-columns:1.3fr 1fr;align-items:center;gap:16px;padding-block:clamp(42px,5vw,76px) clamp(48px,5.5vw,80px)}.home-identity h1{margin:0 0 22px -.035em;font:400 clamp(108px,12.4vw,178px)/.83 var(--serif);letter-spacing:-.06em}.home-identity h1 span{color:var(--accent)}.home-identity p{margin:0;font:400 clamp(20px,2vw,27px)/1.3 var(--sans);letter-spacing:-.045em}.profile-links{display:flex;flex-wrap:wrap;gap:8px 25px;margin-top:20px;font-size:14px}.profile-links span,.tool-entry h3 span{display:inline-block;font-family:var(--sans);font-size:.88em}.goma-print{justify-self:center;display:grid;justify-items:center;color:var(--accent);text-decoration:none}.goma-portrait{width:clamp(180px,20vw,288px);height:auto;image-rendering:pixelated}.goma-caption{margin-top:12px;font-size:11px;color:var(--muted)}.goma-print:hover .goma-caption{color:var(--accent);text-decoration:underline}.index-section{display:grid;grid-template-columns:minmax(0,.44fr) minmax(0,1fr);gap:clamp(28px,6vw,88px);padding-block:26px clamp(40px,5vw,68px);border-top:1px solid var(--ink);scroll-margin-top:18px}.index-section h2{margin:0;font:400 clamp(48px,5.4vw,76px)/.95 var(--serif);letter-spacing:-.05em}.game-source-notice{margin-top:23px;max-width:52ch;padding-left:14px;border-left:2px solid var(--accent);color:var(--muted);font:14px/1.55 var(--sans)}.index-margin .game-source-notice{max-width:31ch;margin-top:26px}.game-list{margin:-2px 0 0;padding:0;list-style:none}.game-list li+li,.tool-entry+.tool-entry{border-top:1px solid var(--line)}.game-entry{position:relative;display:grid;grid-template-columns:clamp(88px,9vw,124px) minmax(0,1fr) auto 18px;align-items:center;gap:clamp(10px,1.75vw,26px);padding-block:14px}.game-entry:first-child{padding-top:2px}.game-entry img{width:100%;height:auto;aspect-ratio:1.6;-o-object-fit:cover;object-fit:cover;background:var(--line)}.entry-copy{display:grid;gap:5px}.entry-copy h3,.tool-entry h3{margin:0;color:var(--ink);font:600 clamp(19px,2.05vw,30px)/1.06 var(--sans);letter-spacing:-.05em}.entry-copy>span{color:var(--muted);font:14px/1.35 var(--sans)}.entry-title{color:var(--ink);text-decoration:none}.entry-title:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0}.entry-title:hover,.entry-title:focus-visible{color:var(--accent);text-decoration:underline}.entry-stores{display:flex;flex-wrap:wrap;gap:0 16px;font:13px/1.4 var(--mono)}.entry-stores a{position:relative;padding-block:3px}.entry-year{font-size:12px;color:var(--muted)}.entry-arrow{justify-self:end;color:var(--accent);font:20px/1 var(--sans)}.tool-entry{padding-block:21px}.tool-entry:first-child{padding-top:2px}.tool-entry:last-child{padding-bottom:0}.tool-entry h3 a{color:var(--ink);text-decoration:none}.tool-entry h3 span{margin-left:3px;font-size:.7em;color:var(--accent)}.tool-entry h3 a:hover{color:var(--accent);text-decoration:underline}.tool-entry p,.about-copy p{max-width:57ch;margin:8px 0 0}.about-copy p{margin:0;font-size:clamp(18px,1.65vw,23px);line-height:1.45;letter-spacing:-.025em}@media(max-width:760px){.index-section{grid-template-columns:1fr;gap:24px}.index-margin{display:flex;align-items:start;flex-wrap:wrap;gap:18px 42px}.index-margin .game-source-notice{flex:1 1 245px;max-width:49ch;margin:0}.game-entry{grid-template-columns:92px minmax(0,1fr) auto 18px}.home-intro{grid-template-columns:minmax(0,1fr) auto;gap:0}.home-identity p{max-width:33ch}.goma-portrait{width:clamp(136px,22vw,175px)}}@media(max-width:560px){.page-width{width:calc(100% - 36px)}.site-header{min-height:54px;gap:8px;font-size:12px}.site-nav{gap:0 13px}.home-intro{grid-template-columns:minmax(0,1fr) auto;align-items:start;position:relative;padding-block:37px 32px}.home-identity{grid-column:1 / -1}.home-identity h1{width:-moz-fit-content;width:fit-content;margin-bottom:28px;font-size:clamp(80px,20vw,112px)}.home-identity p{font-size:19px;max-width:none}.goma-print{position:absolute;top:32px;right:4px}.goma-portrait{width:clamp(78px,21vw,114px)}.goma-caption{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}.index-section{padding-block:22px 36px;gap:20px}.index-section h2{font-size:47px}.index-margin{display:grid;grid-template-columns:1fr;gap:14px}.index-margin .game-source-notice{max-width:50ch}.game-source-notice{font-size:13px}.game-entry{grid-template-columns:70px minmax(0,1fr) auto;gap:12px}.entry-arrow{display:none}.entry-year{font-size:11px}.entry-copy>span{font-size:12px}.site-footer{align-items:start;font-size:12px}.site-footer>div{gap:8px 16px;justify-content:end}}@media(max-width:375px){.site-header{flex-wrap:wrap;gap:0 12px;padding-block:7px}.site-nav{gap:0 10px}.game-entry{grid-template-columns:56px minmax(0,1fr) auto;gap:8px}}@media print{.site-header,.site-footer,.skip-link{display:none}}.game-sheet{padding-block:30px 64px}.game-back,.game-links,.game-next>span{font:14px/1.5 var(--mono)}.game-lead{display:grid;grid-template-columns:minmax(0,1.08fr) minmax(0,.92fr);align-items:start;gap:clamp(30px,6vw,72px);margin-block:40px 45px}.game-lead h1,.game-missing h1{margin:0;font:500 clamp(48px,6.8vw,94px)/.99 var(--serif);letter-spacing:-.055em;text-wrap:balance}.game-premise,.game-opening{font:400 clamp(20px,2vw,25px)/1.38 var(--serif)}.game-premise{max-width:37ch;margin:20px 0 0}.game-links{display:flex;flex-wrap:wrap;gap:8px 23px;margin-top:20px}.game-cover,.game-figure,.game-diagram{margin:0}.game-cover img{width:auto;max-width:100%;max-height:320px;margin:0 auto}.game-sheet figcaption,.game-technical,.game-inputs p{color:var(--muted);font:14px/1.5 var(--sans)}.game-sheet figcaption{margin-top:8px}.game-reading{display:grid;grid-template-columns:minmax(180px,.42fr) minmax(0,1fr);gap:clamp(36px,7vw,96px);padding-block:35px 55px;border-top:1px solid var(--ink)}.game-facts,.game-contents ul{margin:0;padding:0}.game-facts dt,.game-contents summary,.game-diagram h2,.game-credits h2,.game-inputs dt,.game-next>span{color:var(--muted);font:400 13px/1.4 var(--mono)}.game-facts dd,.game-contents a{font:15px/1.45 var(--sans)}.game-facts dd{margin:4px 0 17px}.game-contents{margin-top:32px}.game-diagram h2,.game-credits h2{margin:0 0 8px}.game-contents ul{list-style:none}.game-contents summary{width:-moz-fit-content;width:fit-content;cursor:pointer}.game-contents[open] summary{margin-bottom:9px}.game-contents li+li{margin-top:7px}.game-notes{max-width:66ch;min-width:0;font:17px/1.65 var(--sans)}.game-opening{margin:0 0 24px}.game-diagram,.game-inputs{margin-block:20px;padding-block:14px;border-block:1px solid var(--line)}.game-flow{display:flex;flex-wrap:wrap;gap:3px 9px;list-style:none;margin:0;padding:0;font:14px/1.55 var(--mono)}.game-flow li span{color:var(--muted)}.game-diagram ul{margin-block:8px;padding-left:24px}.game-chapter{margin-top:clamp(34px,4.5vw,58px);scroll-margin-top:24px}.game-chapter h2{max-width:26ch;margin:0 0 16px;font:500 clamp(29px,3.25vw,44px)/1.05 var(--serif);letter-spacing:-.035em;text-wrap:balance}.game-chapter>p{margin:0 0 15px}.game-figure{margin:22px 0}.game-figure img{width:100%;height:auto}.game-inputs dt,.game-technical strong{color:var(--ink);font:600 13px/1.5 var(--mono)}.game-inputs dd{margin:5px 0 14px}.game-inputs p,.game-technical p{margin:5px 0 0}.game-inputs dd:last-child{margin-bottom:0}.game-technical{margin:18px 0;padding-left:14px;border-left:2px solid var(--line)}.game-compare-images{position:relative;overflow:hidden}.game-compare-images img+img{position:absolute;top:0;right:0;bottom:0;left:0}.game-compare-divider{position:absolute;inset-block:0;width:2px;background:#fff}.game-compare-control{display:flex;align-items:center;gap:12px;margin-top:7px;font:13px/1.4 var(--mono)}.game-compare-control input{flex:1;min-width:0;height:28px;accent-color:var(--accent);cursor:pointer}.game-credits{margin-top:38px;padding-top:20px;border-top:1px solid var(--line)}.game-credits p{margin:0}.game-next{display:flex;gap:16px;align-items:baseline;border-top:1px solid var(--ink);padding-top:18px}.game-next a{font:500 clamp(24px,3.3vw,38px)/1.1 var(--serif)}.game-missing{padding-block:80px}.game-missing h1{margin-bottom:30px}@media(max-width:760px){.game-lead{grid-template-columns:1fr;gap:26px;margin-block:26px}.game-cover img{margin-left:0;max-height:350px}.game-reading{grid-template-columns:1fr;padding-top:24px;gap:28px}.game-facts{display:grid;grid-template-columns:auto minmax(0,1fr);gap:8px 18px;align-items:baseline}.game-facts dd{margin:0}.game-contents{margin-top:20px}}.info-page{padding-block:clamp(44px,7vw,100px) clamp(64px,9vw,128px)}.info-heading{margin-bottom:clamp(36px,5vw,72px)}.info-heading h1{margin:0 0 .25em;color:var(--ink);font:500 clamp(52px,8vw,100px)/1 var(--serif);letter-spacing:-.06em}.info-heading>p:not(.info-meta){max-width:48ch;margin:0;font:400 clamp(18px,2.2vw,24px)/1.45 var(--serif)}.info-page .info-meta{color:var(--muted);font:400 .8125rem/1.55 var(--mono)}.info-heading .info-meta{margin:0 0 .9rem}.info-heading p+.info-meta{margin:1.4rem 0 0}.mod-section,.resume-section{display:grid;grid-template-columns:minmax(130px,1fr) minmax(0,2.6fr);gap:clamp(24px,5vw,80px);border-top:1px solid var(--line);padding-block:clamp(20px,3vw,36px) clamp(36px,5vw,64px)}.mod-section h2,.resume-section h2{margin:0;color:var(--ink);font:500 clamp(22px,2.5vw,32px)/1.15 var(--serif);letter-spacing:-.035em}.mod-entries,.resume-skills,.contact-directory,.contact-directory dd,.resume-skills dd{margin:0;padding:0}.mod-entries{list-style:none}.mod-entries li+li,.resume-project+.resume-project{margin-top:1.35rem;padding-top:1.35rem;border-top:1px solid var(--line)}.mod-entries h3,.resume-project h3{margin:0;font:600 clamp(19px,2vw,24px)/1.25 var(--sans);letter-spacing:-.035em;overflow-wrap:anywhere}.mod-entries p,.resume-section>p,.resume-skills,.resume-project{max-width:64ch;font:400 1rem/1.55 var(--sans)}.mod-entries p{margin:.4rem 0 .6rem}.mod-meta,.resume-links{display:flex;flex-wrap:wrap;align-items:baseline;gap:.3em 1.25em}.contact-directory{max-width:44rem;border-bottom:1px solid var(--line)}.contact-directory>div,.resume-skills>div{display:grid;grid-template-columns:minmax(6rem,.85fr) minmax(0,2fr);gap:1rem}.contact-directory>div{align-items:baseline;padding-block:1.3rem;border-top:1px solid var(--line);font:400 clamp(17px,2vw,23px)/1.35 var(--sans)}.contact-directory dt{font-weight:600}.contact-directory dd{overflow-wrap:anywhere}.resume-links{margin-top:1.25rem;font:400 .9rem/1.5 var(--mono)}.resume-links button{padding:0;border:0;border-radius:0;background:transparent;color:var(--accent);font:inherit;text-decoration:underline;text-underline-offset:.17em;cursor:pointer}.resume-section>p,.resume-project p{margin:0}.resume-skills>div+div{margin-top:.45rem}.resume-skills dt{font-weight:600}.resume-project-heading{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:.25em 1em;margin-bottom:.45em}.resume-project ul{list-style:disc;margin:.7em 0 0;padding-inline-start:1.1em}.resume-project li+li{margin-top:.25em}@media(max-width:660px){.mod-section,.resume-section{grid-template-columns:1fr;gap:1.4rem}.contact-directory>div{grid-template-columns:5rem minmax(0,1fr)}}@media print{@page resume{margin:.55in .65in}body:has(.resume-page){color:#000;background:#fff}.site-shell:has(.resume-page){display:block;min-height:0;overflow:visible;background:#fff}.site-shell:has(.resume-page)>:not(main),.resume-links button{display:none}.resume-page.page-width{page:resume;width:auto;max-width:none;margin:0;padding:0}.resume-page .info-heading{margin:0 0 12pt}.resume-page .info-heading h1{font-size:29pt}.resume-page .info-heading>p:not(.info-meta){font-size:12pt}.resume-links{margin-top:4pt;font-size:9pt}.resume-page a,.resume-page .info-meta{color:inherit}.resume-page a{text-decoration:none}.resume-section{display:block;padding:6pt 0 9pt}.resume-section h2{margin-bottom:5pt;font-size:14pt;-moz-column-break-after:avoid;break-after:avoid}.resume-page .info-meta{font-size:8pt}.resume-section>p,.resume-skills,.resume-project{max-width:none;font-size:9.5pt;line-height:1.35}.resume-skills>div{grid-template-columns:8.5rem 1fr}.resume-skills>div+div,.resume-project li+li{margin-top:0}.resume-project{-moz-column-break-inside:avoid;break-inside:avoid}.resume-project+.resume-project{margin-top:7pt;padding-top:7pt}.resume-project h3{font-size:11pt}.resume-project ul{margin-top:3pt}}
