@font-face{font-family:Chessvetica;src:url('assets/fonts/Chessvetica-Regular.woff2') format('woff2');font-weight:400;font-style:normal;font-display:block}
@font-face{font-family:'Chessvetica Outline';src:url('assets/fonts/Chessvetica-Outlined.woff2') format('woff2');font-weight:400;font-style:normal;font-display:block}
@font-face{font-family:'Instrument Serif';src:url('assets/fonts/InstrumentSerif-Regular.ttf') format('truetype');font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:'Instrument Serif';src:url('assets/fonts/InstrumentSerif-Italic.ttf') format('truetype');font-weight:400;font-style:italic;font-display:swap}
/* Chessvetica is an icon/notation font, not a Cyrillic or Latin prose face. */
.chess-glyph{display:inline-block;flex-shrink:0;font:400 1em/1 Chessvetica;letter-spacing:0;text-transform:none;font-variant:normal;font-feature-settings:'liga' 1;font-synthesis:none;text-align:center;user-select:none}
.chess-glyph-outline{font-family:'Chessvetica Outline'}
.wordmark{font-family:'Instrument Serif','Old Standard',serif;font-size:49px;letter-spacing:-.025em;gap:13px}
.wordmark>.chess-glyph{font-size:41px;width:30px;line-height:1.1}
.portal-cover .wordmark{font-size:49px}
.portal-hero h1,#work-title,#play-title,#contact-title{font-family:'Instrument Serif','Old Standard',serif;font-weight:400;letter-spacing:-.025em}
html[lang=en] .portal-hero h1{font-size:clamp(55px,5.7vw,84px);line-height:.98}
#work-title,#play-title,#contact-title{font-size:clamp(44px,5vw,74px);line-height:1.04}
.footer-signature>span{font-family:'Instrument Serif','Old Standard',serif;font-size:clamp(90px,20vw,290px);letter-spacing:-.025em;line-height:.9}
.footer-signature>.chess-glyph{font:400 77px/1 Chessvetica;width:65px;text-align:center}
.chess-frieze{gap:0;padding:0;border-bottom:0;display:grid;grid-template-columns:repeat(6,minmax(0,1fr));color:#d5d8c7}
.chess-frieze>.chess-glyph{font-size:clamp(43px,4.7vw,65px);height:112px;display:grid;place-items:center;border-bottom:1px solid var(--line);border-right:1px solid var(--line)}
.chess-frieze>.chess-glyph:first-child{border-left:1px solid var(--line)}
.chess-frieze>.chess-glyph:nth-child(even){background:#40323e}
.service-piece{width:35px;height:45px;display:grid;place-items:start center}
.service-piece>.chess-glyph{font-size:35px;line-height:1.1}
.support-crest.chess-glyph{font-size:49px;width:42px;height:52px;display:block}
.builder-service .chess-glyph{font-size:32px;grid-column:1;grid-row:1/4;color:#d1c3ce}
.builder-service input:checked+span .chess-glyph{color:#e1dfd2}
.builder-empty .chess-glyph{font-size:61px;display:block;margin:0 auto 25px;color:#485b3d}
.builder-receipt-head .chess-glyph{font-size:32px;width:25px;color:#34412f}
.builder-final .chess-glyph{font-size:48px;width:38px;color:#34412f}
.square>.chess-glyph{font-size:clamp(32px,4.15vw,61px);width:100%;line-height:1.05;filter:none;pointer-events:none}
.square.is-queen{background:#c5cbb3;color:#30252f}.square.is-queen.dark-square{background:#525d49;color:#ececde}
.square.is-target{color:#5c343d}.square.is-hint{outline:3px solid #e8ce9c;outline-offset:-4px;background:#8e796b}
.square .coordinate{font-family:Manrope,sans-serif;font-size:11px;font-variant-numeric:tabular-nums;opacity:.85}
.game-heading{border-bottom:1px solid #75626e;padding-bottom:13px;margin-bottom:15px}.game-table{box-shadow:none}
.type-credit{display:flex;gap:8px 18px;flex-wrap:wrap;font-size:12px;line-height:1.7;color:#c5b5c0;margin:0 0 30px}
.type-credit a{color:inherit;text-underline-offset:3px}.type-credit>span{opacity:.75}
@media(max-width:1100px) and (min-width:761px){.portal-cover .wordmark{font-size:40px}.wordmark>.chess-glyph{font-size:34px;width:25px}}
@media(max-width:760px){.wordmark,.portal-cover .wordmark{font-size:36px;gap:9px}.wordmark>.chess-glyph{font-size:31px;width:23px}.portal-hero h1{font-size:clamp(47px,11.5vw,66px)}html[lang=en] .portal-hero h1{font-size:clamp(49px,12vw,68px)}#work-title,#play-title,#contact-title{font-size:clamp(41px,10.4vw,54px)}.footer-signature>span{font-size:21vw}.footer-signature>.chess-glyph{font-size:44px;width:34px}.chess-frieze>.chess-glyph{font-size:38px;height:75px}.service-piece>.chess-glyph{font-size:30px}.builder-service .chess-glyph{font-size:34px}.square>.chess-glyph{font-size:clamp(29px,11vw,48px)}.type-credit{font-size:12px;margin-bottom:24px}.case-page .masthead .wordmark{font-family:'Instrument Serif',serif;font-size:29px}.case-page .masthead .wordmark>.chess-glyph{font-size:25px;width:19px}}
@media(max-width:360px){.wordmark,.portal-cover .wordmark{font-size:31px;gap:7px}.wordmark>.chess-glyph{font-size:27px;width:20px}.chess-frieze>.chess-glyph{font-size:32px;height:64px}.footer-signature>.chess-glyph{font-size:38px;width:29px}.case-page .masthead .wordmark{font-size:26px}}
.artwork-inner{grid-template-columns:1fr;max-width:900px;gap:40px}.artwork-inner>div{max-width:900px}.square .piece-w{text-shadow:-1px -1px 0 #2c2630,1px -1px 0 #2c2630,-1px 1px 0 #2c2630,1px 1px 0 #2c2630}.square .piece-b{text-shadow:-1px -1px 0 #f3f2e3,1px -1px 0 #f3f2e3,-1px 1px 0 #f3f2e3,1px 1px 0 #f3f2e3}.project-meta h3 a,.portfolio-description h2 a{transition:color .25s ease}.project-meta h3 a:hover,.portfolio-description h2 a:hover{color:#c8d5b7}.project-media:focus-visible .browser-frame{outline:2px solid #d7dfc6;outline-offset:5px}
/* Readability and interaction refinements. */
.builder-final>p{color:#e5dce2}.builder-final .chess-glyph{color:#d7dfc6}.builder-range input{touch-action:pan-x;cursor:grab}.builder-range input:active{cursor:grabbing}.wordmark{align-items:center}.wordmark>.chess-glyph{display:flex;align-items:center;justify-content:center;line-height:1}.chess-frieze .chess-glyph{cursor:pointer;transition:transform .25s ease,background-color .25s ease}.chess-frieze .chess-glyph:hover{transform:translateY(-8px);background-color:#695365}.chess-frieze .chess-glyph.is-bouncing{animation:chess-hop .48s ease}@keyframes chess-hop{40%{transform:translateY(-18px) rotate(-5deg)}75%{transform:translateY(0) scale(.9,1.1)}}@media(prefers-reduced-motion:reduce){.chess-frieze .chess-glyph{transition:none!important;animation:none!important;transform:none!important}}
#chess-board{grid-template-columns:repeat(8,1fr)}.square{padding:8%}.square>.piece-w,.square>.piece-b{width:100%;height:100%;display:grid;place-items:center}.square .piece-w .chess-glyph,.square .piece-b .chess-glyph{font-size:clamp(22px,2.6vw,42px)}.square .piece-w{color:#fffbea}.square .piece-b{color:#1d181d}.square .coordinate{font-size:9px}.portfolio-more{display:inline-block;margin-top:42px;font-size:15px}.portfolio-page{padding-block:80px 110px}.portfolio-page h1{font:400 clamp(52px,7vw,100px)/1 'Instrument Serif','Old Standard',serif}.portfolio-list{margin-top:60px}.portfolio-row{display:grid;grid-template-columns:1.2fr .8fr;gap:7%;align-items:center;padding:45px 0;border-top:1px solid var(--line)}.portfolio-row:nth-child(even) .portfolio-preview{order:2}.portfolio-row:nth-child(even) .portfolio-description{order:1}.portfolio-description h2{margin:15px 0}.portfolio-description h2 a{text-decoration:none}.portfolio-description>p{color:var(--muted);max-width:42ch}.portfolio-description .case-tags{margin:25px 0}.portfolio-preview{aspect-ratio:1.3;padding:8%;display:grid;place-items:center}.browser-frame{display:block;width:100%;box-shadow:0 15px 35px #100c1080;background:#251e25}.browser-bar{display:flex;gap:5px;padding:8px;background:#d6d6cc}.browser-bar i{width:6px;height:6px;border-radius:50%;background:#827d80}.portfolio-preview .browser-frame img{width:100%;height:auto;max-height:360px;object-fit:contain;box-shadow:none}.project-ordynat .portfolio-preview img{width:45%;height:auto;margin:auto}.three-d-offer{display:flex;align-items:center;gap:22px;border-block:1px solid var(--line);padding:22px 0;margin:0 0 38px}.three-d-offer>.chess-glyph{font-size:52px}.three-d-offer strong{font-size:15px}.three-d-offer p{color:var(--muted);font-size:13px}.three-d-offer button{margin-left:auto}#three-d-stage{height:440px;position:relative;background:#27232b;margin-bottom:35px}#three-d-stage[hidden]{display:none}#seal{width:100%;height:100%;touch-action:pan-y}#three-d-stage .scene-controls{position:absolute;bottom:15px;right:20px;color:#e8e3e5}.portal-art{object-position:center top}@media(max-width:760px){.square .piece-w .chess-glyph,.square .piece-b .chess-glyph{font-size:clamp(19px,6vw,34px)}.portfolio-row{grid-template-columns:1fr;gap:25px}.portfolio-row:nth-child(even) .portfolio-preview,.portfolio-row:nth-child(even) .portfolio-description{order:initial}.portfolio-page{padding-block:55px}.three-d-offer{flex-wrap:wrap}.three-d-offer button{margin-left:0}#three-d-stage{height:340px}}
.project-ordynat .project-media img{width:100%;height:180px;max-height:none;object-fit:cover;object-position:top;align-self:flex-start}.project-ordynat .portfolio-preview .browser-frame{overflow:hidden}.project-ordynat .portfolio-preview .browser-frame img{width:100%;height:180px;object-fit:cover;object-position:top}.case-image.ordynat img{width:100%;height:220px;object-fit:cover;object-position:top}
.project-grid{gap:75px 34px}.project-media{aspect-ratio:1.4;padding:6%;display:grid;place-items:center}.project-media .browser-frame img{max-height:unset;width:100%;height:auto;box-shadow:none}.project-ordynat .project-media .browser-frame img{height:180px;object-fit:cover;object-position:top}.project-summary{font-size:13px;color:var(--muted);max-width:52ch;margin-top:10px}.project-scopes{display:flex;flex-wrap:wrap;gap:8px;margin-top:17px}.project-scopes span{border:1px solid var(--line);padding:4px 9px;font-size:11px}.project-media .browser-frame{transition:transform .55s var(--ease)}.project-media:hover .browser-frame{transform:translateY(-8px)}.project-media:hover .browser-frame img{transform:none}.chess-frieze button.chess-glyph{color:inherit;background:transparent;border:0;border-radius:0;cursor:pointer}.chess-frieze button.chess-glyph:nth-child(even){background:#40323e}@media(max-width:760px){.project-grid{gap:45px}.project-summary{font-size:13px}}@media(prefers-reduced-motion:reduce){.project-media .browser-frame{transition:none}.project-media:hover .browser-frame{transform:none}}
