@charset "UTF-8";
:root{--paper:#f5f3ee;--ink:#292a26;--muted:#64655d;--accent:#b33925;--line:#d7d5ce;--gutter:clamp(1.3rem,6vw,6rem);font-family:Arial,Helvetica,sans-serif;color:var(--ink);background:var(--paper);font-synthesis:none;color-scheme:light}
*{box-sizing:border-box}body{margin:0}a{color:inherit;text-decoration-thickness:1px;text-underline-offset:.3em}button{font:inherit;color:inherit;cursor:pointer}[hidden]{display:none!important}a,button{-webkit-tap-highlight-color:transparent}a:focus-visible,button:focus-visible{outline:3px solid var(--accent);outline-offset:6px}.hero a:focus-visible,.site-header:not(.legal-header) a:focus-visible{outline-color:#fff}::selection{background:var(--accent);color:var(--paper)}.wrap{width:min(100%,1440px);padding-inline:var(--gutter);margin-inline:auto}.site-header{position:absolute;z-index:2;top:1rem;left:0;right:0;display:flex;justify-content:space-between;align-items:center;min-height:88px;gap:2rem;color:var(--paper)}.wordmark{display:inline-flex;align-items:center;gap:0;font-size:1.75rem;font-weight:500;letter-spacing:.015em;text-decoration:none;white-space:nowrap}.brand-type{display:block;width:7.3em;height:auto;flex:none}.site-header nav{display:flex;gap:2rem;align-items:center}.site-header nav a{font-size:.875rem;text-decoration:none}.site-header nav a:last-child{border:1px solid #ffffff70;border-radius:40px;padding:.85rem 1.25rem}.site-header nav a:hover{text-decoration:underline}.hero{position:relative;isolation:isolate;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;margin:12px;width:calc(100% - 24px);max-width:none;min-height:min(860px,calc(100svh - 24px));padding:9rem var(--gutter) 5.5rem;border-radius:24px;overflow:hidden;background:#30312c;color:#fff}.hero-photo{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center;z-index:-2}.hero:after{content:"";position:absolute;inset:0;z-index:-1;background:rgba(17,20,17,.55)}.eyebrow{font-size:.75rem;line-height:1.6;letter-spacing:.13em;text-transform:uppercase}.hero-role{margin:0 0 1.9rem;line-height:1.8}.hero-role br{display:none}.hero-role br:after{content:" · "}.hero-role{max-width:42rem}h1{font-family:Georgia,'Times New Roman',serif;font-size:clamp(3.6rem,6.65vw,6.75rem);font-weight:400;letter-spacing:-.01em;line-height:1.12;margin:0 0 1.75rem}.hero h1 br:nth-child(2){display:none}.hero h1 .accent:before{content:' '}.hero h1 .accent{font-style:italic}.hero-bottom{display:flex;flex-direction:column;align-items:center;gap:2rem}.hero-bottom p{max-width:520px;font-size:1.0625rem;line-height:1.7;margin:0}.hero-actions{display:flex;gap:2rem;align-items:center}.text-link{font-size:.875rem;text-decoration:none;display:inline-flex;align-items:center;gap:1.4rem;padding:.75rem 0;border-bottom:1px solid currentColor}.hero .text-link{background:var(--paper);color:var(--ink);border:1px solid var(--paper);border-radius:40px;padding:1rem 1.65rem;font-size:.75rem;letter-spacing:.12em;text-transform:uppercase}.hero-contact{font-size:.75rem;letter-spacing:.12em;text-decoration:none;text-transform:uppercase;padding:1rem 0}.hero-contact:hover{text-decoration:underline}.hero-index{position:absolute;bottom:1.75rem;left:50%;transform:translateX(-50%);font-size:.75rem;letter-spacing:.13em;white-space:nowrap}.section{display:grid;grid-template-columns:1fr 3fr;column-gap:3rem;padding-top:6rem;padding-bottom:6rem;position:relative}.section-label{display:flex;align-items:flex-start;gap:1.1rem;padding-top:.45rem}.number{color:var(--accent);font-size:.75rem;line-height:1.6}.section-label h2{font-size:.75rem;letter-spacing:.09em;text-transform:uppercase;font-weight:400;line-height:1.6;max-width:165px;margin:0}.section-lead{font-family:Georgia,'Times New Roman',serif;font-size:clamp(2.25rem,3.7vw,3.75rem);font-weight:400;letter-spacing:-.01em;line-height:1.1;margin:0 0 3rem}.service{display:grid;grid-template-columns:1.6rem 1fr 1.3fr;gap:1.4rem;border-top:1px solid var(--line);padding:2rem 0}.service:last-child{padding-bottom:0}.service-index{font-size:.75rem;line-height:1.8;color:var(--muted)}.service h3{font-size:1.25rem;font-weight:400;letter-spacing:-.03em;line-height:1.3;margin:0}.service p{font-size:1rem;line-height:1.7;margin:0;max-width:440px}.about{background:#eae8e1;max-width:none;border-radius:24px;width:calc(100% - 24px);margin-inline:12px;padding-inline:max(var(--gutter),calc((100vw - 1248px)/2))}.about-copy{display:grid;grid-template-columns:1fr 1fr;gap:2.5rem}.about-copy p{font-size:1rem;line-height:1.8;margin:0}.about blockquote{border-left:2px solid var(--accent);margin:3.5rem 0 1.5rem;padding-left:1.5rem}.about blockquote p{font-family:Georgia,'Times New Roman',serif;font-size:clamp(2rem,3.2vw,3rem);font-style:italic;letter-spacing:-.01em;margin:0 0 .75rem}.about blockquote footer{font-size:.875rem;letter-spacing:.02em}.attitude-note{font-size:.9375rem;line-height:1.7;max-width:490px;margin:0;color:var(--muted)}.contact{text-align:center;padding:1rem 0}.contact .section{display:flex;flex-direction:column;align-items:center;gap:2rem}.contact .section-label{justify-content:center}.contact .section-label h2{max-width:none}.contact .section-content{width:100%}.contact-title{font-family:Georgia,'Times New Roman',serif;font-size:clamp(3rem,6vw,6rem);line-height:1.15;letter-spacing:-.01em;margin:0 0 1.5rem}.contact-intro{font-size:1.0625rem;line-height:1.75;max-width:510px;margin:0 auto 2rem}.contact-link{display:inline-flex;gap:1.5rem;align-items:center;font-size:clamp(1.1rem,2.15vw,2rem);letter-spacing:-.035em;line-height:1.4;text-decoration:none;border-bottom:1px solid var(--ink);padding-bottom:.6rem;overflow-wrap:anywhere}.contact-link:hover{color:var(--accent)}.contact-note{font-size:.8125rem;color:var(--muted);margin:1rem 0 0}.site-footer{display:flex;gap:2.5rem;align-items:center;min-height:120px;padding-block:2rem;border-top:1px solid var(--line)}.site-footer .wordmark{font-size:1.45rem}.site-footer>span{font-size:.875rem;color:var(--muted)}.site-footer nav{display:flex;align-items:center;margin-left:auto;flex-wrap:wrap;gap:1.5rem}.site-footer nav a,.site-footer button{font-size:.875rem}.site-footer nav a{text-decoration:none}.site-footer nav a:hover{text-decoration:underline}.site-footer button{background:none;border:0;padding:0;text-decoration:underline;text-underline-offset:.3em}.connection-notice,.update-notice{background:var(--paper);border-top:2px solid var(--accent);padding:1rem var(--gutter);font-size:.9375rem;line-height:1.5}.connection-notice{position:fixed;bottom:0;left:0;right:0;z-index:3}.update-notice{position:fixed;bottom:0;left:0;right:0;z-index:4;display:flex;justify-content:center;gap:1.5rem;align-items:center}.update-notice button{background:var(--ink);color:var(--paper);border:0;border-radius:30px;padding:.75rem 1rem}.skip-link{position:fixed;top:1rem;left:1rem;z-index:10;background:var(--ink);color:var(--paper);padding:1rem;transform:translateY(-180%)}.skip-link:focus{transform:none}.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}.legal{max-width:900px;min-height:65vh;padding-block:4rem 6rem}.legal h1{font-size:clamp(2.8rem,7vw,5rem);margin:2.5rem 0}.legal h2{font-size:1.4rem;font-weight:500;margin:2.5rem 0 1rem;letter-spacing:-.02em}.legal p,.legal li{font-size:1.0625rem;line-height:1.7}.draft-note{border-left:3px solid var(--accent);padding:1rem 1.5rem;background:#eae8e1}.legal a{overflow-wrap:anywhere}.back-link{font-size:.9375rem}.legal-header{position:relative;top:0;color:var(--ink);border-bottom:1px solid var(--line)}.legal-header nav a:last-child{border-color:var(--line)}section[id]{scroll-margin-top:2rem}
@media(max-width:900px){.section{grid-template-columns:1fr;gap:2.5rem;padding-block:4rem}.section-label h2{max-width:none}.section-label{gap:1rem}.section-lead{margin-bottom:2rem}.site-header nav{gap:1.5rem}.site-footer{flex-wrap:wrap}.site-footer nav{margin-left:auto}.contact-link{font-size:1.6rem}.hero{min-height:740px}.hero-role{max-width:28rem}}
@media(max-width:600px){.site-header{top:8px;min-height:90px;align-items:center;padding-top:1rem;padding-bottom:1rem;flex-wrap:wrap;gap:1rem}.wordmark{font-size:1.5rem}.site-header nav{gap:1rem}.site-header nav a{font-size:.75rem}.site-header:not(.legal-header) nav a:first-child{display:none}.site-header nav a:last-child{padding:.6rem .8rem}.hero{margin:8px;width:calc(100% - 16px);border-radius:20px;min-height:720px;min-height:max(660px,calc(100svh - 16px));padding:8rem 1.5rem 5rem}.hero-photo{object-position:80% center}.hero-role{font-size:.6875rem;max-width:245px;margin-bottom:1.75rem;line-height:1.9}.hero-role br{display:block}h1{font-size:clamp(2.75rem,11.7vw,4.4rem);margin-bottom:1.75rem;letter-spacing:-.01em}.hero h1 br:nth-child(2){display:block}.hero h1 .accent:before{content:''}.hero-bottom p{font-size:1rem;max-width:340px}.hero-actions{gap:1.3rem;flex-wrap:wrap;justify-content:center}.hero .text-link,.hero-contact{font-size:.6875rem;letter-spacing:.1em}.hero .text-link{padding:.95rem 1.2rem;gap:.75rem}.hero-index{bottom:1.5rem;font-size:.625rem}.section{padding-block:3.5rem;gap:2rem}.section-lead{font-size:2.3rem}.service{grid-template-columns:1.5rem 1fr;gap:.75rem 1rem;padding-block:1.6rem}.service h3{font-size:1.3rem}.service h3 br{display:none}.service p{grid-column:2;font-size:1rem}.about{margin-inline:8px;width:calc(100% - 16px);border-radius:20px;padding-inline:1.3rem}.about-copy{grid-template-columns:1fr;gap:1.5rem}.about blockquote{margin-top:2.5rem;padding-left:1rem}.contact-title{font-size:3.2rem}.contact-intro{font-size:1rem}.contact-link{font-size:1.04rem;gap:.6rem;max-width:100%}.site-footer{gap:1.5rem;justify-content:space-between}.site-footer nav{width:100%;margin:0;gap:1.5rem}.update-notice{align-items:flex-start;gap:.75rem;flex-direction:column}.legal{padding-block:2rem 4rem}.legal h1{font-size:3rem}}
@media(prefers-reduced-motion:no-preference){html{scroll-behavior:smooth}}
@media print{.site-header nav,.site-footer nav,.connection-notice,.update-notice,.hero-photo,.hero:after{display:none!important}.site-header{position:relative;color:var(--ink)}.section,.hero{padding-block:2rem;min-height:0}.hero{background:none;color:var(--ink)}a{color:var(--ink)}}

.work-photo{width:100%;height:245px;object-fit:cover;object-position:center 62%;border-radius:16px;margin:0 0 2.5rem;display:block}.about-photo{width:100%;height:340px;object-fit:cover;object-position:center 55%;border-radius:16px;margin:0 0 3rem;display:block}.hero-role{font-size:.875rem}.section-label h2{font-size:.8125rem}@media(max-width:600px){.work-photo{height:200px;margin-bottom:2rem}.about-photo{height:280px;margin-bottom:2rem}.hero-role{font-size:.8125rem;max-width:300px}.hero{padding-top:9rem}.hero:after{background:rgba(17,20,17,.55)}}
/* Intrinsic grid widths must remain shrinkable at enlarged browser text sizes. */
.section-content,.section-label,.about-copy>*{min-width:0}.section-content{overflow-wrap:anywhere;hyphens:auto}.hero h1{max-width:100%;overflow-wrap:anywhere}.hero-index{white-space:normal;width:calc(100% - 3rem)}

.hero-role>span{display:block}
.cave{margin-top:5rem}.cave .section-lead,.modules .section-lead{hyphens:none}.cave-statement{font-family:Georgia,'Times New Roman',serif;font-size:clamp(1.8rem,3vw,2.7rem);line-height:1.25;letter-spacing:-.01em;margin:3.5rem 0;hyphens:none}.cave-principles{margin:0}.cave-principles>div{display:grid;grid-template-columns:1fr 2fr;gap:2rem;padding:1.6rem 0;border-top:1px solid #c5c3bc}.cave-principles dt{font-size:1.1rem;line-height:1.5}.cave-principles dd{margin:0;font-size:1rem;line-height:1.7}/* Shared editorial grid keeps background and next steps in the reading flow. */
.editorial-row{display:grid;grid-template-columns:1fr 2fr;gap:2rem;padding-block:1.6rem;border-top:1px solid var(--line)}
.cave .editorial-row{border-color:#c5c3bc}
.editorial-row>h3{font-size:1.1rem;font-weight:400;line-height:1.5;margin:0;hyphens:none}
.editorial-row>div{min-width:0}
.editorial-row p{font-size:1rem;line-height:1.7;margin:0 0 1.2rem}
.editorial-row p:last-child{margin-bottom:0}
.section-transition{padding-bottom:0}
.inline-link{text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:.22em}
.inline-link:hover{color:var(--accent)}
.module-intro{max-width:42rem;font-size:1.125rem;line-height:1.7;margin:-1rem 0 2.5rem}.service h4{font-size:1.25rem;font-weight:400;line-height:1.35;letter-spacing:-.01em;margin:0;hyphens:none}.module-copy{min-width:0}.service .module-output{font-size:.9375rem;margin-top:1rem;color:var(--muted)}.module-output strong{font-weight:400;color:var(--ink)}.module-brief{border-bottom:1px solid var(--line);padding-block:2rem;margin-top:1rem}.designer-profile h3{font-weight:400;font-size:1.25rem;line-height:1.4;margin:0 0 1rem;hyphens:none}.designer-profile p{font-size:1rem;line-height:1.75;max-width:42rem;margin:0 0 1rem}.designer-profile{padding-top:2.5rem}.designer-profile p{color:var(--muted);margin-bottom:0}.modules+.contact{border-top:1px solid var(--line)}
@media(max-width:600px){.cave{margin-top:3rem}.cave-statement{margin-block:2.5rem}.cave-principles>div,.editorial-row{grid-template-columns:1fr;gap:.6rem}.module-intro{font-size:1rem;margin-top:0}.module-copy{grid-column:2}.service h4{font-size:1.3rem}.service h4 br{display:none}}

/* Keep the tabletop and its playable routes visible in the new image series. */
.work-photo,.about-photo{height:auto;aspect-ratio:3/2;object-position:center}@media(max-width:600px){.hero-photo{object-position:right center}}

.designer-profile p+p{margin-top:1.2rem}

/* Quiet miniature interludes between the personal profile’s three text groups. */
.profile-divider{display:flex;justify-content:center;align-items:center;max-width:42rem;margin:1.75rem 0;min-width:0}.profile-divider img{display:block;width:auto;height:148px;max-width:100%;object-fit:contain}.profile-divider:first-of-type img{height:164px}@media(max-width:600px){.profile-divider{margin:1.5rem 0}.profile-divider img{height:124px}.profile-divider:first-of-type img{height:144px}}

/* Small game-master miniatures belong to the title column, keeping the copy readable. */
.principle-heading{display:flex;flex-direction:column;align-items:flex-start;gap:1rem;min-width:0}
.principle-heading h3{font-size:1.1rem;font-weight:400;line-height:1.5;margin:0;hyphens:none}
.principle-miniature{display:block;width:144px;height:144px;max-width:100%;object-fit:contain;object-position:center}
@media(max-width:600px){.principle-heading{display:grid;grid-template-columns:minmax(0,1fr) 88px;gap:1rem;align-items:center}.principle-miniature{width:88px;height:88px}.cave-principles>div,.cave-origin{gap:1rem}}
