@font-face{font-family:Geist;src:url('/assets/fonts/geist-regular.ttf') format('truetype');font-weight:400;font-display:swap}
:root{font-family:'Nunito Sans',sans-serif;color:#3d382f;background:#e8e1d2;font-synthesis:none;font-size:16px;--gold:#e1c38a;--paper:#fff4da;--muted:#e7dbc7}
*{box-sizing:border-box}body{margin:0;background:radial-gradient(ellipse at 50% 5%,#fff9eacc,transparent 65%),repeating-linear-gradient(0deg,#81745b06 0 1px,transparent 1px 4px),#e8e1d2;min-height:100vh}a{color:inherit;text-decoration:none}button,input{font:inherit}button,a{-webkit-tap-highlight-color:transparent}button{cursor:pointer}img{display:block;max-width:100%}h1,h2,h3,p,dl,dd{margin:0}h1,h2,h3{font-family:'Playfair Display',Georgia,serif;font-weight:600}p{line-height:1.6;text-wrap:pretty}a:focus-visible,button:focus-visible,input:focus-visible{outline:2px solid currentColor;outline-offset:5px}.ui-icon{width:18px;height:18px;flex:none;vertical-align:middle}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}.skip-link{position:fixed;top:-100px;left:15px;z-index:10;padding:12px 16px;background:var(--paper)}.skip-link:focus{top:12px}
.site-shell{width:min(1180px,calc(100% - 72px));margin:0 auto 104px;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0 34px;align-items:stretch}.profile,.profile-grid{display:contents}.name-panel{grid-column:1/-1;display:flex;justify-content:space-between;align-items:center;gap:20px;padding:24px 0 32px}.name{font:600 24px 'Playfair Display',Georgia,serif;letter-spacing:-.6px}.name span{font:400 19px 'Noto Naskh Arabic',serif;color:#756c5c;margin-left:14px}.command-trigger{display:flex;align-items:center;gap:8px;background:#f7eedb;color:#594c36;border:1px solid #b8a17b;border-radius:2px;padding:7px 12px;min-height:40px;box-shadow:0 3px 0 #ab9671,inset 0 1px 0 #fffaf0;transition:transform .15s,box-shadow .15s}.command-trigger:hover{background:#fff6e3}.command-trigger:active{transform:translateY(3px);box-shadow:0 0 0 #ab9671}.command-trigger kbd{font:12px 'Nunito Sans',sans-serif;color:#82735c}.command-trigger span{font-size:14px;margin-right:5px}
/* Each column is one continuous piece of cloth, with a rod and a cut hem. */
.banner{--cloth:#30513f;--shade:#203e30;position:relative;isolation:isolate;min-width:0;color:var(--paper);padding:28px 27px 34px;border-inline:5px double #d8bc7a70;background:repeating-linear-gradient(0deg,#fff4d908 0 1px,transparent 1px 3px),repeating-linear-gradient(90deg,#111b160a 0 1px,transparent 1px 4px),linear-gradient(90deg,#00000013,transparent 12%,#ffffff05 45%,transparent 82%,#00000018),var(--cloth);filter:drop-shadow(5px 9px 7px #4b392527)}
.banner::before{content:'';position:absolute;z-index:2;top:-8px;left:-20px;width:calc(100% + 40px);height:12px;border:1px solid #77603a;border-radius:8px;background:linear-gradient(90deg,#826131 0 2%,#e6c68b 2% 4%,transparent 4% 96%,#e6c68b 96% 98%,#826131 98%),linear-gradient(#dfc08a,#9e7744 45%,#644729 55%,#aa844c);box-shadow:0 2px 2px #30200d38}
.banner::after{content:'';position:absolute;z-index:-1;left:-5px;bottom:-56px;width:calc(100% + 10px);height:58px;background:repeating-linear-gradient(0deg,#fff4d908 0 1px,transparent 1px 3px),repeating-linear-gradient(90deg,#111b160a 0 1px,transparent 1px 4px),linear-gradient(90deg,#00000013,transparent 12%,#ffffff05 45%,transparent 82%,#00000018),var(--cloth);clip-path:polygon(0 0,100% 0,100% 25%,50% 100%,0 25%)}
.banner-crest{display:block;width:54px;height:62px;margin:0 auto 25px;color:var(--gold)}.banner-crest svg{width:100%;height:100%;overflow:visible}.banner h2{font-size:22px;line-height:1.2;color:var(--paper)}.banner h3{font-size:20px;line-height:1.3}.banner p,.banner li{color:var(--muted)}.about-panel{display:flex;flex-direction:column;gap:25px;--cloth:#315441}.about-panel .banner-crest{margin-bottom:0}.eyebrow{font-size:12px;letter-spacing:.12em;text-transform:uppercase}.about-panel .eyebrow{color:#dcc894}.about-panel h1{font-size:clamp(52px,5.3vw,72px);line-height:1.03;letter-spacing:-2.5px;margin:15px 0 20px;font-weight:400}.about-copy{font-size:17px;max-width:24ch}.location{font-size:14px;margin-top:14px;color:#c5d1bc!important}.school h2{font-family:'Nunito Sans',sans-serif;font-size:17px;font-weight:700}.school p{font-size:14px;margin-top:3px}.work-section,.recent-section{padding-top:20px;border-top:1px solid #dbc59042}.work-section h2,.recent-section h2{font-size:21px;font-style:italic;margin-bottom:15px}.work-entry{display:flex;gap:13px;align-items:center;width:fit-content}.work-logo{width:44px;height:44px;display:grid;place-items:center;background:#fffaf0;border-radius:9px}.work-logo img{width:32px;height:32px}.work-info{display:grid;gap:3px}.work-info strong{font-size:17px}.work-info>span{font-size:14px;color:var(--muted)}.work-entry:hover strong,.recent-brand:hover span{text-decoration:underline;text-underline-offset:4px}.recent-updates{margin:0;padding-left:16px;display:grid;gap:12px;font-size:15px;line-height:1.6}.recent-updates li::marker{color:#c5b885}.recent-updates strong{color:var(--paper);font-weight:700}.inline-brand{white-space:nowrap}.inline-brand img{display:inline-block;vertical-align:-3px;width:16px;height:16px;margin-right:4px;border-radius:3px}.inline-brand span{text-decoration:underline;text-decoration-color:#d7c58c70;text-underline-offset:3px}.forest-vignette{min-height:70px;flex:1;background:url('/assets/pixel-forest.svg') bottom center/100% auto no-repeat;opacity:.2;margin:0 -16px -22px;mask-image:linear-gradient(transparent,#000 65%)}
.middle-column{--cloth:#853f31;--muted:#f2ddca;display:flex;flex-direction:column}.demo-heading{display:flex;align-items:center;gap:9px;margin-bottom:18px}.company-logo{width:30px;height:30px;object-fit:contain;flex:none;border-radius:5px}.demo-heading h2{font-size:24px;letter-spacing:-.6px}.product-stage{background:#f5f4f0;margin-inline:-13px;color:#364039;position:relative}.storefront-preview{height:238px;position:relative;overflow:hidden;background:#f5f4f0}.storefront-frame{position:absolute;top:50%;left:50%;width:1100px;height:710px;max-width:none;border:0;pointer-events:none;transform-origin:center;clip-path:inset(170px 300px 170px 300px);opacity:0}.preview-ready .storefront-frame{opacity:1}.preview-fallback{position:absolute;inset:0;display:grid;place-items:center}.preview-fallback img{width:100%;height:100%;object-fit:cover}.preview-status{position:absolute;bottom:8px;left:10px;right:10px;font-size:12px!important;color:#646454!important;text-align:center;background:#f5f4f0ed;padding:3px 6px}.preview-ready .preview-fallback{display:none}.preview-open{position:absolute;inset:0}.purchase-dock-local{display:flex;justify-content:center;padding:0 12px 18px}.purchase-button{position:relative;display:inline-flex;align-items:center;justify-content:center;gap:20px;width:280px;max-width:100%;height:55px;padding:0 22px;background:transparent;color:#364039;font:400 13px Geist,Arial,sans-serif;white-space:nowrap;isolation:isolate}.purchase-button>span:not(.money-bill){position:relative;z-index:1}.purchase-price{color:#737869;font-size:12px}.purchase-outline{position:absolute;inset:0;width:100%;height:100%;overflow:visible;transition:transform .3s,filter .4s}.drawn-button-edge{fill:none;stroke:#40473f;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;vector-effect:non-scaling-stroke}.drawn-button-highlight{fill:none;stroke:#72b9ed;stroke-width:4;stroke-linecap:round;stroke-linejoin:round;stroke-dashoffset:0;transition:stroke-dashoffset .5s cubic-bezier(.34,1.4,.52,1)}.purchase-button:hover .purchase-outline{transform:rotate(-1deg) scale(1.025);filter:drop-shadow(0 0 5px #a2d4ec55)}.purchase-button:is(:hover,:focus-visible,:active) .drawn-button-highlight{stroke-dashoffset:-50}.purchase-button:active{transform:scale(.985)}.money-bill{position:absolute;left:0;top:0;width:18px;height:18px;z-index:3;pointer-events:none}.money-bill svg{display:block;width:18px;height:18px}.demo-copy{padding-top:17px}.demo-copy p{font-size:16px}.detail-link{display:inline-flex;align-items:center;gap:5px;font-size:14px;margin-top:9px;color:#f1ce9c;text-decoration:underline;text-underline-offset:4px}.roblox-panel{margin-top:26px;padding-top:23px;border-top:1px solid #e7c29750}.roblox-panel>h2{font-style:italic;font-size:22px}.group-list{display:grid;gap:22px;margin-top:20px}.group-item{display:flex;gap:12px;align-items:flex-start}.group-item>img{width:42px;height:42px;object-fit:cover;border-radius:5px;transition:transform .2s;flex:none}.group-item:hover>img{transform:rotate(-5deg)}.group-item h3{font-family:'Nunito Sans',sans-serif;font-size:16px;font-weight:700}.group-item .ui-icon{width:14px;height:14px}.studio-role{font-size:13px;margin:3px 0 4px}.studio-stat{font-size:14px;line-height:1.45}.studio-stat strong{color:#ffe0a4}.social-panel{display:flex;flex-wrap:wrap;align-items:center;gap:12px;margin-top:auto;padding-top:28px}.social-key{position:relative;display:grid;place-items:center;width:42px;height:42px;border:1px solid #b5a071;background:#f4e9cf;box-shadow:0 3px 0 #533021,inset 0 1px 0 #fff9e8;border-radius:3px;transition:transform .15s,box-shadow .15s}.social-key:hover{transform:translateY(-2px)}.social-key:active{transform:translateY(3px);box-shadow:0 0 0 #533021}.social-key img{width:21px;height:21px}.social-tooltip{position:absolute;bottom:calc(100% + 8px);left:50%;transform:translateX(-50%);padding:3px 7px;background:#fff6e2;color:#453b2b;font-size:12px;white-space:nowrap;opacity:0;pointer-events:none}.social-key:is(:hover,:focus-visible) .social-tooltip{opacity:1}.social-handle{font-size:12px;color:#f1d2b9}
.project-rail{--cloth:#30596b;--muted:#e0e8e5;display:flex;flex-direction:column}.rail-heading{margin-bottom:20px}.rail-heading h2{font-size:24px;letter-spacing:-.6px}.project-list{display:grid;gap:24px}.project-entry{display:block;min-width:0}.project-entry+.project-entry{border-top:1px solid #d6c79c45;padding-top:23px}.project-art{aspect-ratio:2.5;overflow:hidden;position:relative;background:#759294}.project-image{width:100%;height:100%;object-fit:cover;transition:transform .5s;opacity:.88}.project-art::after{content:'';position:absolute;inset:0;background:linear-gradient(130deg,#fff4d928,transparent 65%);pointer-events:none}.project-entry:hover .project-image{transform:scale(1.035)}.project-caption{display:flex;gap:10px;align-items:center;margin-top:13px}.project-caption>div{flex:1;min-width:0}.project-caption h3{font-size:22px;letter-spacing:-.4px}.project-caption p{font-size:14px;line-height:1.5;margin-top:4px}.project-caption>.ui-icon{width:16px;height:16px;color:var(--gold)}.project-entry:is(:hover,.active) h3{text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:5px}.sample-stats{margin-top:13px}.sample-label{font-size:12px;color:#d2d9cc!important}.sample-stats dl{display:flex;gap:25px;margin-top:4px}.sample-stats dl>div{display:flex;flex-direction:column-reverse;gap:2px}.sample-stats dd{font-family:'Playfair Display',Georgia,serif;font-size:23px;font-variant-numeric:tabular-nums;color:#fae7b5}.sample-stats dt{font-size:12px;color:#d6e0dc}.notes{margin-top:24px;border-top:1px solid #d6c79c45;padding-top:19px}.notes h2{font-style:italic;font-size:22px;margin-bottom:12px}.note-board{display:grid}.note-link{display:grid;grid-template-columns:1fr auto;gap:3px 10px;padding:9px 0}.note-link time{grid-column:1/-1;font-size:12px;color:#cbd7d1}.note-title{font-size:15px}.note-link:hover .note-title{text-decoration:underline;text-underline-offset:4px}.note-link .ui-icon{width:16px;height:16px;color:var(--gold)}.project-rail footer{margin-top:auto;padding-top:22px;font-size:12px}.project-rail footer p{line-height:1.5;color:#c6d4cf}.project-rail footer p+p{margin-top:3px}.project-rail footer a{text-decoration:underline;text-underline-offset:3px;color:#f1deb0}.project-rail footer .ui-icon{width:12px;height:12px}
/* Project pages keep the same typography and the blue hanging project index. */
.site-shell:has(.detail){grid-template-columns:minmax(0,2fr) minmax(280px,1fr);padding-top:40px;gap:38px}.detail{min-width:0}.detail-nav{display:flex;align-items:center;justify-content:space-between;margin-bottom:30px}.back-link,.text-link,.project-external a{display:inline-flex;align-items:center;gap:7px;text-decoration:underline;text-underline-offset:4px}.detail article{padding:0 12px}.detail-heading h1{font-size:clamp(36px,5vw,58px);line-height:1.1;letter-spacing:-1.8px;margin:13px 0 25px}.detail-art{max-height:350px;overflow:hidden;margin:0 0 20px}.detail-art img{aspect-ratio:2;object-fit:cover}.detail p{font-size:16px;line-height:1.75}.detail article>section{margin-top:28px}.detail article>section h2{font-size:26px;margin-bottom:10px}.detail .intro{font-size:19px;margin-top:22px}.detail .project-external{font-size:14px}.project-facts{display:grid;gap:14px;margin-top:26px;padding-block:20px;border-block:1px solid #b7aa914f}.project-facts dt{font-size:12px;color:#776c57}.project-facts dd{font-size:15px;margin-top:3px}.detail-signoff{margin-top:32px}.detail .sample-label,.detail .sample-stats dt{color:#70654f!important}.detail .sample-stats dd{color:#4b4635}.archive-art{height:220px;display:grid;place-items:center;background:#d6ccb6}.note-article>p{margin-top:24px}
dialog{color:#473c2b;background:#f8efdb;border:1px solid #bba77f;border-radius:3px;max-width:560px;width:calc(100% - 30px);padding:0;box-shadow:0 14px 50px #261c2050}dialog::backdrop{background:#222a2580;backdrop-filter:blur(4px)}.command-head{display:flex;justify-content:space-between;align-items:center;padding:20px}.command-head h2{font-size:27px}.close-command{display:grid;place-items:center;background:#e7d8b7;border:1px solid #bca474;color:inherit;min-width:40px;min-height:40px}#command-search{width:calc(100% - 40px);margin:0 20px 15px;padding:12px;border:1px solid #b6a683;background:#fffaf0;color:inherit;font-size:16px}.command-results{max-height:min(440px,50svh);overflow-y:auto;padding:0 12px 12px}.command-group{padding:12px 10px 6px;font-size:12px;color:#7a6d55}.command-option{display:flex;justify-content:space-between;align-items:center;gap:15px;padding:12px;min-height:45px;font-size:15px}.command-option.selected,.command-option:hover{background:#ddd2b7}.command-option kbd{font-size:12px}.command-help{border-top:1px solid #bca47450;font-size:12px;padding:12px 20px;display:flex;justify-content:space-between;gap:10px}.no-results{padding:25px 12px;font-size:15px}
@media(min-width:1500px){.site-shell{width:1260px;gap:0 42px}.banner{padding-inline:31px}.storefront-preview{height:255px}}
@media(max-width:1050px) and (min-width:761px){.site-shell{width:calc(100% - 44px);gap:0 22px}.banner{padding:25px 16px 30px}.banner::before{left:-13px;width:calc(100% + 26px)}.demo-heading h2,.rail-heading h2{font-size:21px}.purchase-button{gap:10px;padding:0 15px;font-size:12px}.purchase-price{font-size:12px}.product-stage{margin-inline:-9px}.storefront-preview{height:200px}.purchase-dock-local{padding-inline:5px}.project-caption{gap:7px}.project-caption .company-logo{width:25px;height:25px}.project-caption h3{font-size:19px}.group-item{gap:9px}.group-item>img{width:33px;height:33px}.social-panel{gap:9px}.social-handle{flex-basis:100%}}
@media(max-width:760px){.site-shell{display:flex;flex-direction:column;width:min(470px,calc(100% - 48px));gap:90px;margin-bottom:90px}.name-panel{padding:20px 0 8px;margin-bottom:-61px}.name{font-size:22px}.name span{font-size:16px;margin-left:8px}.command-trigger{padding:7px 9px}.command-trigger span,.command-trigger kbd{display:none}.banner{padding:27px 25px 30px}.banner-crest{margin-bottom:23px}.about-panel{gap:23px}.about-panel h1{font-size:66px}.about-copy{max-width:30ch}.forest-vignette{flex:none;height:80px}.storefront-preview{height:250px}.social-panel{margin-top:0}.project-rail footer{margin-top:12px}.project-art{aspect-ratio:2.6}.site-shell:has(.detail){display:flex;gap:65px;padding-top:22px}.detail article{padding:0}.detail-nav{margin-bottom:24px}.detail-heading h1{font-size:40px}.command-help{display:block}.command-help span{display:block}}
@media(max-width:359px){.site-shell{width:calc(100% - 38px)}.banner{padding-inline:18px}.name{font-size:20px}.name span{margin-left:5px;font-size:15px}.product-stage{margin-inline:-10px}.purchase-button{padding-inline:14px;gap:9px;font-size:12px}.storefront-preview{height:210px}.purchase-dock-local{padding-inline:5px}.social-panel{gap:10px}.social-handle{flex-basis:100%}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;transition:none!important}.money-bill{display:none}.project-entry:hover .project-image{transform:none}}
