@font-face{font-family:Golos Text;font-style:normal;font-weight:400 900;font-display:swap;src:url(/assets/golos-text-latin-CeRm3aSN.woff2) format("woff2")}:root{--bg-page: hsl(38, 18%, 91%);--bg-panel: #ffffff;--border: hsl(38, 16%, 84%);--border-strong: hsl(38, 12%, 68%);--text: hsl(35, 20%, 14%);--text-secondary: hsl(35, 12%, 36%);--text-dim: hsl(35, 10%, 52%);--link: hsl(209, 79%, 44%);--link-hover: hsl(209, 79%, 36%);--accent-lime: hsl(73, 60%, 32%);--accent-navy: hsl(228, 60%, 42%);--accent-gold: hsl(36, 70%, 42%);--shadow-card: 0 1px 3px hsla(35, 15%, 8%, .08);--shadow-hover: 0 8px 24px hsla(35, 15%, 8%, .18);--card-w: 72px;--card-h: 96px;--card-cell-w: 36px;--suit-red: hsl(0, 65%, 42%);--suit-black: #1a1814;--font-display: "Golos Text", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--font-body: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--text-xs: 12px;--text-sm: 13px;--text-base: 14px;--text-md: 15px;--text-lg: 16px;--text-xl: 21px;--text-2xl: 30px;--weight-title: 500;--weight-bold: 600;--space-1: 4px;--space-2: 6px;--space-3: 8px;--space-4: 12px;--space-5: 16px;--space-6: 20px;--space-7: 24px;--space-8: 32px;--space-9: 44px;--space-10: 64px;--space-11: 72px;--radius-xs: 4px;--radius-sm: 8px;--radius: 10px;--content-width: 720px}*{box-sizing:border-box}html,body,#root{margin:0;padding:0;min-height:100%}body{background:var(--bg-page);color:var(--text);font-family:var(--font-body);font-size:var(--text-base);line-height:1.65;overflow-x:hidden}a{color:var(--link);text-decoration:none}a:hover{color:var(--link-hover);text-decoration:underline}button{font:inherit;cursor:pointer}.page{max-width:var(--content-width);margin:0 auto;padding:0 var(--space-7);display:flex;flex-direction:column;min-height:100vh}.masthead{display:block;padding:var(--space-9) 0 var(--space-5);margin-bottom:var(--space-6);border-bottom:1px solid var(--border)}.brand{display:block;font-family:var(--font-display);font-weight:var(--weight-title);font-size:var(--text-2xl);line-height:1.15;letter-spacing:-.015em;color:var(--text)}.brand:hover{color:var(--text);text-decoration:none}.brand-group{display:block}.brand-caption{display:block;margin-top:var(--space-2);font-family:var(--font-display);font-size:var(--text-md);color:var(--text-secondary)}.topnav{display:flex;flex-wrap:wrap;gap:var(--space-2) var(--space-6);margin-top:var(--space-6)}.topnav-link{font-family:var(--font-display);font-size:var(--text-base);color:var(--text-secondary)}.topnav-link:hover{color:var(--link);text-decoration:none}.topnav-link.is-active{color:var(--text);font-weight:var(--weight-title)}.ext{color:var(--text-dim);font-size:.85em}.topnav-arcade{background-image:linear-gradient(105deg,currentColor 0% 42%,var(--accent-gold) 50%,currentColor 58% 100%);background-size:300% 100%;background-position:100% 0;-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;animation:arcade-sheen 3s linear infinite}@keyframes arcade-sheen{0%{background-position:100% 0}to{background-position:0% 0}}@media (prefers-reduced-motion: reduce){.topnav-arcade{animation:none}}.site-main{flex:1 0 auto}.site-footer{position:relative;margin-top:var(--space-11);padding:var(--space-6) 0 var(--space-9);border-top:1px solid var(--border);display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:var(--space-4);color:var(--text-dim);font-size:var(--text-sm)}.footer-links{display:flex;gap:var(--space-5)}.footer-links a{font-family:var(--font-display)}.recaman-backdrop{position:absolute;bottom:100%;left:50%;transform:translate(-50%);width:100vw;z-index:-1;display:block;pointer-events:none;color:var(--border-strong);-webkit-mask-image:linear-gradient(to top,#000 38%,transparent);mask-image:linear-gradient(to top,#000 38%,transparent)}.page-head{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.home-links{display:flex;flex-wrap:wrap;gap:var(--space-6);margin:0}.home-links a{font-family:var(--font-display);font-weight:var(--weight-title);font-size:var(--text-md)}.pub{background:var(--bg-panel);border:1px solid var(--border);border-radius:var(--radius);padding:var(--space-5) var(--space-6);margin:0 0 var(--space-5);box-shadow:var(--shadow-card);transition:transform .18s ease,box-shadow .18s ease}.pub:hover{transform:translateY(-3px);box-shadow:var(--shadow-hover)}.pub-title{font-family:var(--font-display);font-weight:var(--weight-title);font-size:var(--text-lg);line-height:1.4;margin-bottom:var(--space-2);color:var(--text)}.pub-authors{font-size:var(--text-base);color:var(--text-secondary);margin-bottom:var(--space-4)}.author-self{color:var(--text);font-weight:var(--weight-bold)}.pub-meta{display:flex;align-items:center;flex-wrap:wrap;gap:var(--space-4)}.pub-venue{font-family:var(--font-display);font-weight:var(--weight-title);font-size:var(--text-sm);color:var(--text-secondary)}.pub-badge{font-family:var(--font-display);font-weight:var(--weight-title);font-size:var(--text-xs);line-height:1.4;padding:2px var(--space-4);border:1px solid transparent;border-radius:999px;letter-spacing:.02em;color:#fff;text-transform:uppercase}.badge-oral{background:var(--accent-navy)}.badge-spotlight{background:var(--accent-lime)}.badge-best-student-paper{background:var(--accent-gold)}.pub-link{font-family:var(--font-display);font-weight:var(--weight-title);font-size:var(--text-sm)}.gallery-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:var(--space-4)}.gallery-item{display:block;padding:0;border:none;background:none;line-height:0}.gallery-item img{width:100%;aspect-ratio:1 / 1;object-fit:cover;border-radius:var(--radius-sm);box-shadow:var(--shadow-card);transition:transform .18s ease,box-shadow .18s ease}.gallery-item:hover img{transform:translateY(-3px);box-shadow:var(--shadow-hover)}.gallery-empty{color:var(--text-dim);padding:var(--space-5) 0}.game-tile{display:flex;align-items:center;gap:var(--space-7);background:var(--bg-panel);border:1px solid var(--border);border-radius:var(--radius);padding:var(--space-5) var(--space-6);margin:0 0 var(--space-5);box-shadow:var(--shadow-card);transition:transform .18s ease,box-shadow .18s ease}.game-tile:hover{transform:translateY(-3px);box-shadow:var(--shadow-hover);text-decoration:none}.game-tile-name{font-family:var(--font-display);font-weight:var(--weight-title);font-size:var(--text-lg);color:var(--text)}.game-tile-tagline{margin-top:var(--space-1);font-size:var(--text-base);color:var(--text-secondary)}.game-tile-host{margin-top:var(--space-3);font-family:var(--font-display);font-weight:var(--weight-title);font-size:var(--text-sm);color:var(--link)}.arcade-hand{flex:none;display:grid;grid-template-rows:var(--card-h)}.arcade-hand-cell{position:relative;width:var(--card-w);height:var(--card-h);transition:transform .1s ease}.arcade-hand-cell:hover~.arcade-hand-cell{transform:translate(var(--card-cell-w))}.arcade-hand-cell:hover .arcade-card{transform:translateY(-8px);box-shadow:0 4px 10px #00000026}.arcade-card{position:relative;width:var(--card-w);height:var(--card-h);background:var(--bg-panel);border:1px solid var(--border-strong);border-radius:var(--radius-xs);box-shadow:var(--shadow-card);font-family:var(--font-body);font-weight:700;-webkit-user-select:none;user-select:none;overflow:hidden;transition:transform 80ms ease,box-shadow 80ms ease}.arcade-card.suit-red{color:var(--suit-red)}.arcade-card.suit-black{color:var(--suit-black)}.arcade-card-index{position:absolute;top:6px;left:8px;display:flex;flex-direction:column;align-items:center;line-height:.95}.arcade-card-rank{font-size:26px;letter-spacing:-.02em}.arcade-card-suit{font-size:24px}.arcade-card-joker .arcade-card-rank{font-size:32px;line-height:.9}.lightbox{position:fixed;top:0;right:0;bottom:0;left:0;z-index:100;display:flex;align-items:center;justify-content:center;padding:var(--space-7);background:#12100df7;animation:lb-fade .16s ease}@keyframes lb-fade{0%{opacity:0}to{opacity:1}}.lb-figure{margin:0;display:flex;flex-direction:column;align-items:center;gap:var(--space-4);max-width:92vw}.lb-stage{position:relative;display:flex;align-items:center;justify-content:center;min-width:var(--space-10);min-height:var(--space-10)}.lb-image{max-width:92vw;max-height:82vh;object-fit:contain;border-radius:var(--radius-xs);box-shadow:0 10px 50px #0000008c;opacity:0;transition:opacity .3s ease}.lb-image.is-loaded{opacity:1}.lb-spinner{position:absolute;width:34px;height:34px;border-radius:50%;border:3px solid hsla(40,24%,92%,.22);border-top-color:#efece6d9;animation:lb-spin .8s linear infinite}@keyframes lb-spin{to{transform:rotate(360deg)}}.lb-caption{display:flex;align-items:center;justify-content:space-between;gap:var(--space-7);width:100%;font-family:var(--font-display);font-size:var(--text-sm);color:#efece6eb}.lb-count{color:#efece68c;font-variant-numeric:tabular-nums}.lb-close{position:fixed;top:var(--space-5);right:var(--space-6);background:none;border:none;font-size:32px;line-height:1;padding:var(--space-2) var(--space-4);color:#efece6cc}.lb-close:hover{color:#fff}.lb-nav{position:fixed;top:50%;transform:translateY(-50%);background:none;border:none;font-size:46px;line-height:1;padding:var(--space-4) var(--space-5);color:#efece6b3}.lb-nav:hover{color:#fff}.lb-prev{left:var(--space-2)}.lb-next{right:var(--space-2)}.markdown{font-size:var(--text-md);line-height:1.55}.markdown p{margin:.7em 0}.markdown>:first-child{margin-top:0}.markdown>:last-child{margin-bottom:0}.markdown strong{color:var(--text);font-weight:var(--weight-bold)}.markdown h2{font-family:var(--font-display);font-weight:var(--weight-title);font-size:var(--text-xl);margin:var(--space-8) 0 var(--space-4);padding-bottom:var(--space-1);border-bottom:1px solid var(--border)}.markdown ul,.markdown ol{padding-left:var(--space-7)}.markdown li{margin:0 0 var(--space-2)}@media (max-width: 600px){.masthead{padding-top:var(--space-6);margin-bottom:var(--space-8)}.topnav{gap:var(--space-2) var(--space-5)}.lb-nav{font-size:34px;padding:var(--space-3) var(--space-4)}.gallery-grid{grid-template-columns:repeat(auto-fill,minmax(116px,1fr));gap:var(--space-3)}.game-tile{flex-direction:column;align-items:flex-start;gap:var(--space-5)}}
