:root{--burgundy:#6b0f1a;--burgundy-mid:#8b1a2b;--burgundy-bright:#9b1b2e;--burgundy-deep:#3d080f;--ink:#1a0508;--paper:#f2e8e4;--paper-dim:#c9b6b0;--gold:#c4a35a;--rule:#f2e8e438;--font-pixel:"Press Start 2P", monospace;--font-body:"Be Vietnam Pro", "Helvetica Neue", sans-serif;color:var(--paper);background:var(--burgundy-deep);font-family:var(--font-body);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-size:16px;line-height:1.5}*,:before,:after{box-sizing:border-box}html,body,#root{min-height:100%;margin:0}body{min-height:100vh;overflow-x:hidden}a{color:inherit;text-decoration:none}img{max-width:100%;display:block}::selection{background:var(--gold);color:var(--ink)}.site{--mx:50%;--my:18%;background:radial-gradient(ellipse 70% 45% at 50% 12%, #8b1a2b 0%, transparent 58%), linear-gradient(180deg, var(--burgundy) 0%, var(--burgundy-deep) 72%, #140406 100%);min-height:100vh;color:var(--paper);justify-content:center;display:flex;position:relative}.pixel-grid{pointer-events:none;z-index:0;opacity:.22;background-image:linear-gradient(var(--ink) 1px, transparent 1px), linear-gradient(90deg, var(--ink) 1px, transparent 1px);background-size:8px 8px;transition:opacity .2s steps(4,end);position:fixed;inset:0}.cursor-glow{pointer-events:none;z-index:0;opacity:0;background:radial-gradient(420px circle at var(--mx) var(--my), #c4a35a29 0%, #9b1b2e2e 28%, transparent 62%);transition:opacity .25s steps(4,end);position:fixed;inset:0}.scanlines{pointer-events:none;z-index:2;opacity:.05;background:repeating-linear-gradient(0deg,#0000,#0000 2px,#00000073 2px 4px);position:fixed;inset:0}.page{z-index:1;opacity:0;flex-direction:column;gap:2.5rem;width:min(560px,100% - 2rem);padding:3rem 0;transition:opacity .45s steps(6,end),transform .45s steps(6,end);display:flex;position:relative;transform:translateY(8px)}.site.is-ready .page{opacity:1;transform:translateY(0)}.identity{border-bottom:3px solid var(--rule);grid-template-columns:auto 1fr;align-items:start;gap:1.15rem 1.25rem;padding-bottom:1.75rem;display:grid}.avatar{object-fit:cover;border:3px solid var(--paper);width:104px;height:104px;box-shadow:0 0 0 3px var(--burgundy-deep), 4px 4px 0 var(--ink);transition:transform .12s steps(3,end),box-shadow .12s steps(3,end),filter .12s steps(3,end)}.identity-meta{flex-direction:column;justify-content:space-between;gap:.75rem;min-width:0;min-height:104px;padding-top:0;display:flex}.identity-top{justify-content:space-between;align-items:flex-start;gap:.75rem;min-width:0;display:flex}.name{font-family:var(--font-pixel);color:var(--paper);text-shadow:2px 0 0 var(--burgundy-deep), -2px 0 0 var(--burgundy-deep), 0 2px 0 var(--burgundy-deep), 0 -2px 0 var(--burgundy-deep);margin:0;padding-top:0;font-size:clamp(.72rem,2.8vw,1rem);font-weight:400;line-height:1}.lang-toggle{border:3px solid var(--paper);box-shadow:0 0 0 2px var(--burgundy-deep), 3px 3px 0 var(--ink);background:var(--burgundy-deep);flex-shrink:0;display:inline-flex}.lang-btn{min-width:2.4rem;font-family:var(--font-pixel);color:var(--paper-dim);cursor:pointer;background:0 0;border:0;margin:0;padding:.35rem .55rem;font-size:.42rem;line-height:1;transition:background .1s steps(2,end),color .1s steps(2,end)}.lang-btn+.lang-btn{border-left:2px solid var(--paper)}.lang-btn.is-active{color:var(--gold);background:#c4a35a29}.lang-btn:hover,.lang-btn:focus-visible{color:var(--paper);background:var(--burgundy-bright);outline:none}.social{flex-wrap:wrap;gap:.55rem;margin-top:auto;display:flex}.social-item{z-index:1;position:relative}.social-item:hover,.social-item:focus-within{z-index:40}.social-btn{width:2.55rem;height:2.55rem;color:var(--paper);background:var(--burgundy-deep);border:3px solid var(--paper);box-shadow:0 0 0 2px var(--burgundy-deep), 3px 3px 0 var(--ink);place-items:center;transition:transform .1s steps(2,end),box-shadow .1s steps(2,end),background .1s steps(2,end),color .1s steps(2,end),border-color .1s steps(2,end);display:grid}.social-btn svg{width:1.1rem;height:1.1rem;display:block}.social-preview{z-index:40;width:min(210px,100vw - 2.5rem);color:var(--paper);background:var(--burgundy-deep);border:3px solid var(--paper);box-shadow:0 0 0 2px var(--burgundy-deep), 3px 3px 0 var(--ink);opacity:0;visibility:hidden;pointer-events:none;padding:.55rem .6rem .6rem;transition:opacity .1s steps(2,end),transform .1s steps(2,end),visibility .1s steps(2,end);position:absolute;top:calc(100% + 10px);left:50%;transform:translate(-50%)translateY(-4px)}.social-preview:before{content:"";background:var(--burgundy-deep);border-left:3px solid var(--paper);border-top:3px solid var(--paper);width:8px;height:8px;margin-left:-4px;position:absolute;bottom:100%;left:50%;transform:rotate(45deg)translate(3px,3px)}.social-preview-accent{width:4px;position:absolute;inset:0 auto 0 0}.social-preview-head{align-items:center;gap:.45rem;margin-bottom:.35rem;padding-left:.15rem;display:flex}.social-preview-icon{width:1.55rem;height:1.55rem;color:var(--paper);border:2px solid var(--paper);background:#f2e8e414;flex-shrink:0;place-items:center;display:grid}.social-preview-icon svg{width:.8rem;height:.8rem}.social-preview-meta{flex-direction:column;gap:.12rem;min-width:0;display:flex}.social-preview-label{font-family:var(--font-pixel);color:var(--gold);font-size:.38rem;line-height:1.35}.social-preview-handle{font-family:var(--font-body);color:var(--paper);text-overflow:ellipsis;white-space:nowrap;font-size:.7rem;font-weight:600;line-height:1.2;overflow:hidden}.social-preview-blurb{font-family:var(--font-body);color:var(--paper-dim);margin:0;padding-left:.15rem;font-size:.72rem;line-height:1.3}.social-item:hover .social-preview,.social-item:focus-within .social-preview{opacity:1;visibility:visible;transform:translate(-50%)translateY(0)}.social-item:first-child .social-preview,.social-item:nth-child(2) .social-preview{left:0;transform:translate(0)translateY(-4px)}.social-item:first-child .social-preview:before,.social-item:nth-child(2) .social-preview:before{margin-left:0;left:1.05rem}.social-item:first-child:hover .social-preview,.social-item:first-child:focus-within .social-preview,.social-item:nth-child(2):hover .social-preview,.social-item:nth-child(2):focus-within .social-preview{transform:translate(0)translateY(0)}.social-item:nth-last-child(-n+2) .social-preview{left:auto;right:0;transform:translate(0)translateY(-4px)}.social-item:nth-last-child(-n+2) .social-preview:before{margin-left:0;left:auto;right:1.05rem}.social-item:nth-last-child(-n+2):hover .social-preview,.social-item:nth-last-child(-n+2):focus-within .social-preview{transform:translate(0)translateY(0)}.social-btn:hover,.social-btn:focus-visible,.work-link:hover,.work-link:focus-visible{color:var(--gold);border-color:var(--gold);background:var(--burgundy-bright);box-shadow:0 0 0 2px var(--burgundy-deep), 5px 5px 0 var(--ink);outline:none;transform:translate(-2px,-2px)}.social-btn:active,.work-link:active{box-shadow:0 0 0 2px var(--burgundy-deep), 1px 1px 0 var(--ink);transform:translate(1px,1px)}.works{flex-direction:column;gap:2rem;display:flex}.work-section{flex-direction:column;gap:.9rem;display:flex}.section-label{font-family:var(--font-body);letter-spacing:.04em;text-transform:uppercase;color:var(--gold);margin:0;font-size:.85rem;font-weight:600;line-height:1.4}.work-list{flex-direction:column;gap:.75rem;margin:0;padding:0;list-style:none;display:flex}.work-section.is-rail .work-list{overscroll-behavior-x:contain;scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch;scrollbar-color:var(--gold) #14040673;scrollbar-width:thin;flex-flow:row;justify-content:flex-start;gap:.65rem;padding-bottom:.45rem;scroll-padding-inline:.15rem;display:flex;overflow-x:auto}.work-section.is-rail .work-list::-webkit-scrollbar{height:6px}.work-section.is-rail .work-list::-webkit-scrollbar-track{background:#14040673}.work-section.is-rail .work-list::-webkit-scrollbar-thumb{background:var(--gold)}.work-section.is-rail .work-list>li{scroll-snap-align:start;flex:none;width:min(14rem,50% - .325rem);max-width:14rem}.work-link{color:var(--paper);background:var(--burgundy-deep);border:3px solid var(--paper);box-shadow:0 0 0 2px var(--burgundy-deep), 3px 3px 0 var(--ink);grid-template-columns:auto 1fr;align-items:center;gap:.9rem;padding:.85rem;transition:transform .1s steps(2,end),box-shadow .1s steps(2,end),background .1s steps(2,end),border-color .1s steps(2,end),color .1s steps(2,end);display:grid;position:relative;overflow:hidden}.work-link:after{content:"";pointer-events:none;background:linear-gradient(120deg,#0000 30%,#f2e8e414 48%,#0000 66%);transition:transform .35s steps(8,end);position:absolute;inset:0;transform:translate(-120%)}.work-link.is-pinned{grid-template-columns:auto 1fr auto}.work-link.is-compact{text-align:center;grid-template-columns:1fr;justify-items:center;gap:.55rem;height:100%;padding:.75rem}.work-link.is-compact .work-icon,.work-link.is-compact .work-mark{justify-self:center;width:48px;height:48px}.work-link.is-compact .work-copy{align-items:center;gap:.28rem;width:100%}.work-link.is-compact .work-title{-webkit-line-clamp:4;-webkit-box-orient:vertical;font-size:.82rem;font-weight:600;line-height:1.35;display:-webkit-box;overflow:hidden}.work-link.is-compact .work-blurb{-webkit-line-clamp:3;-webkit-box-orient:vertical;font-size:.78rem;line-height:1.35;display:-webkit-box;overflow:hidden}.work-link.is-compact .work-badge{font-size:.72rem}.work-pin{color:var(--gold);image-rendering:pixelated;flex-shrink:0;align-self:start;margin-top:.15rem;transition:transform .12s steps(3,end),color .1s steps(2,end)}.work-icon,.work-mark{border:2px solid var(--paper);flex-shrink:0;width:56px;height:56px;transition:transform .12s steps(3,end),border-color .12s steps(3,end),box-shadow .12s steps(3,end)}.work-icon{object-fit:cover;image-rendering:auto}.work-mark{font-family:var(--font-pixel);color:var(--gold);background:#1404068c;place-items:center;font-size:.48rem;line-height:1;display:grid}.work-mark-art{padding:0;overflow:hidden}.work-art{width:100%;height:100%;image-rendering:pixelated;transition:transform .12s steps(3,end);display:block}.work-copy{flex-direction:column;gap:.25rem;min-width:0;display:flex}.work-title{font-family:var(--font-body);letter-spacing:0;font-size:.95rem;font-weight:650;line-height:1.35;transition:color .1s steps(2,end)}.work-blurb{font-family:var(--font-body);letter-spacing:0;color:var(--paper-dim);font-size:.88rem;font-weight:400;line-height:1.4}.work-badge{font-family:var(--font-body);color:var(--gold);letter-spacing:.02em;font-size:.75rem;font-weight:500;line-height:1.35;transition:letter-spacing .12s steps(3,end),color .1s steps(2,end)}@media (width<=480px){.identity{grid-template-columns:1fr;justify-items:start}.avatar{width:96px;height:96px}.work-section.is-rail .work-list>li{width:min(100%,max(12.5rem,50% - .325rem))}}@media (width>=900px){.page{width:min(720px,100% - 2rem)}.work-section.is-rail .work-list>li{width:min(15rem,50% - .325rem);max-width:15rem}}@media (hover:hover) and (pointer:fine){.site:hover .cursor-glow{opacity:1}.site:hover .pixel-grid{opacity:.3}.avatar:hover{box-shadow:0 0 0 3px var(--burgundy-deep), 7px 7px 0 var(--ink), 0 0 0 1px var(--gold);filter:contrast(1.05)saturate(1.08);transform:translate(-3px,-3px)}.work-link:hover,.work-link:focus-visible{border-color:var(--gold);box-shadow:0 0 0 2px var(--burgundy-deep), 6px 6px 0 var(--ink), 0 0 18px #c4a35a2e;background:#4a0c14}.work-link:hover:after,.work-link:focus-visible:after{transform:translate(120%)}.work-link:hover .work-title,.work-link:focus-visible .work-title{color:var(--gold)}.work-link:hover .work-badge,.work-link:focus-visible .work-badge{letter-spacing:.06em;color:#e0c57a}.work-link:hover .work-icon,.work-link:focus-visible .work-icon,.work-link:hover .work-mark,.work-link:focus-visible .work-mark{border-color:var(--gold);box-shadow:3px 3px 0 var(--ink);transform:translate(-2px,-2px)rotate(-2deg)}.work-link:hover .work-art,.work-link:focus-visible .work-art{transform:translateY(-2px)}.work-link:hover .work-pin,.work-link:focus-visible .work-pin{color:#e0c57a;transform:translateY(-2px)rotate(12deg)}.work-section.is-rail .work-list:hover>li:not(:hover){opacity:.62;transition:opacity .12s steps(3,end)}.work-section.is-rail .work-list>li{transition:opacity .12s steps(3,end)}}@media (prefers-reduced-motion:reduce){.page,.social-btn,.social-preview,.work-link,.lang-btn,.avatar,.work-icon,.work-mark,.work-art,.cursor-glow,.pixel-grid{transition:none!important;animation:none!important}.work-link:after{display:none}.cursor-glow{opacity:0!important}.site .page{opacity:1;transform:none}}
