:root{--bg:#1d351f;--text:#e8e6e1;--text-dim:hsla(43,13%,90%,.45);--text-soft:hsla(43,13%,90%,.78);--text-faint:hsla(43,13%,90%,.22);--hairline:hsla(43,13%,90%,.1);--white:#f5f3ee;--grain:0.34;--edge:32px;--sans:var(--font-montserrat),system-ui,sans-serif}*{margin:0;padding:0;box-sizing:border-box}body,html{height:100%;overflow:hidden;background:var(--bg);color:var(--text);font-family:var(--sans);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body:has(.article-page),body:has(.page){height:auto;overflow:auto;min-height:100vh}body:before{content:"";position:fixed;inset:0;pointer-events:none;z-index:1;opacity:var(--grain);mix-blend-mode:overlay;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 200 200'%3E%3Cfilter id='f'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.8' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23f)'/%3E%3C/svg%3E"),url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 600 600'%3E%3Cfilter id='c'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.045' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23c)' opacity='0.25'/%3E%3C/svg%3E");background-size:200px 200px,600px 600px;background-repeat:repeat,repeat}body:has(.article-page):after,body:has(.page):after{content:"";position:fixed;left:0;right:0;top:0;bottom:0;pointer-events:none;z-index:9;background:linear-gradient(to bottom,var(--bg) 0,var(--bg) 56px,rgba(29,53,31,.85) 78px,rgba(29,53,31,0) 100px) top /100% 100px no-repeat,linear-gradient(to top,var(--bg) 0,var(--bg) 56px,rgba(29,53,31,.85) 78px,rgba(29,53,31,0) 100px) bottom /100% 100px no-repeat}.corner{position:fixed;z-index:10;font-family:var(--sans);font-size:13px;font-weight:300;letter-spacing:.06em;text-transform:none;color:var(--text);opacity:0;animation:fade 1.2s ease forwards}.corner.tl{animation-delay:.2s;top:var(--edge);left:var(--edge)}.corner.tr{animation-delay:.35s;top:var(--edge);right:var(--edge)}.corner.bl{animation-delay:.5s;bottom:var(--edge);left:var(--edge)}.corner.br{animation-delay:.65s;bottom:var(--edge);right:var(--edge);display:flex;align-items:center}.corner a,.corner button:not(.menu-toggle){color:inherit;text-decoration:none;background:none;border:none;font:inherit;letter-spacing:inherit;text-transform:inherit;cursor:pointer;display:inline-flex;align-items:center;gap:8px;transition:opacity .4s ease;padding:0}.corner a:hover,.corner button:not(.menu-toggle):hover{opacity:.55}.logo{display:inline-flex;align-items:baseline;gap:4px}.logo .slash{color:var(--text-faint);font-weight:200}.menu-toggle{width:28px;height:28px;border:1px solid #fff;border-radius:10px;background:transparent;cursor:pointer;padding:0;display:block;transition:background .45s cubic-bezier(.6,0,.2,1),border-color .45s ease,transform .3s ease}.menu-toggle:hover{transform:scale(1.06)}.menu-toggle.open{background:#fff;border-color:#fff}.menu-panel{position:fixed;bottom:calc(var(--edge) + 46px);right:var(--edge);z-index:11;display:flex;flex-direction:column;align-items:flex-end;gap:16px;pointer-events:none}.menu-panel a{font-family:var(--sans);font-size:13px;font-weight:300;letter-spacing:.06em;text-transform:none;color:var(--text);text-decoration:none;opacity:0;transform:translateY(10px);transition:opacity .55s ease,transform .55s cubic-bezier(.2,.7,.2,1),color .3s ease}.menu-panel a:hover{color:var(--text-dim)}.menu-panel.open{pointer-events:auto}.menu-panel.open a{opacity:1;transform:translateY(0)}.menu-panel.open a:first-child{transition-delay:.4s}.menu-panel.open a:nth-child(2){transition-delay:.32s}.menu-panel.open a:nth-child(3){transition-delay:.24s}.menu-panel.open a:nth-child(4){transition-delay:.16s}body.menu-open .article,body.menu-open .marquee,body.menu-open .page-inner,body.menu-open .tagline{opacity:.18;transition:opacity .6s ease}.center{position:fixed;inset:0;display:grid;place-items:center;z-index:5;padding:0 var(--edge);pointer-events:none}.home-block{display:flex;flex-direction:column;align-items:center}.mark{width:clamp(104px,9.5vw,190px);height:auto;margin-bottom:calc(clamp(40px, 7vh, 88px) + 16px);opacity:0;transform:translateY(8px);animation:rise 1.8s cubic-bezier(.2,.7,.2,1) .4s forwards;transition:opacity .6s ease}.tagline{font-style:normal;font-size:clamp(.9rem,1.15vw,1.2rem);letter-spacing:.005em;line-height:1.55;text-transform:none;color:var(--text);max-width:62ch;transform:translateY(10px);animation:rise 1.8s cubic-bezier(.2,.7,.2,1) .75s forwards;transition:opacity .6s ease}.subline,.tagline{font-family:var(--sans);font-weight:300;text-align:center;opacity:0}.subline{font-size:clamp(.85rem,1vw,1.05rem);font-style:italic;letter-spacing:.01em;color:var(--text-soft);margin-top:56px;transform:translateY(8px);animation:rise 1.6s cubic-bezier(.2,.7,.2,1) 1.1s forwards}.subline a{color:var(--text);text-decoration:none;border-bottom:1px solid var(--text-faint);padding-bottom:3px;transition:border-color .3s ease,color .3s ease;pointer-events:auto}.subline a:hover{border-bottom-color:var(--text)}.marquee{position:fixed;left:0;right:0;bottom:calc(var(--edge) + 56px);overflow:hidden;z-index:4;pointer-events:none;mask-image:linear-gradient(90deg,transparent,#000 14%,#000 86%,transparent);-webkit-mask-image:linear-gradient(90deg,transparent,#000 14%,#000 86%,transparent);opacity:0;animation:fade 2s ease 1.2s forwards}.marquee-track{display:inline-flex;white-space:nowrap;animation:drift 90s linear infinite;font-family:var(--sans);font-weight:200;font-style:italic;font-size:clamp(1.4rem,2.8vw,2.2rem);color:var(--text-dim);letter-spacing:.01em}.marquee-track .item{display:inline-flex;align-items:center;padding:0 1.8rem}.marquee-track .dot{display:inline-block;width:3px;height:3px;border-radius:50%;background:var(--text-faint);margin:0 1.4rem;transform:translateY(-.4em)}.page{position:relative;min-height:100vh;display:grid;place-items:center;padding:110px var(--edge) 110px;z-index:5}.page-inner{width:100%;max-width:660px;display:flex;flex-direction:column;opacity:0;transform:translateY(8px);animation:rise 1.4s cubic-bezier(.2,.7,.2,1) .4s forwards}.heading{font-family:var(--sans);font-weight:700;font-size:clamp(1.3rem,2.2vw,1.6rem);letter-spacing:.01em;text-transform:none;color:var(--text);margin-bottom:28px;padding-bottom:14px;border-bottom:1px solid var(--hairline)}.heading .count{font-weight:300;font-size:.7em;color:var(--text-dim);margin-left:12px;letter-spacing:.18em}.tabs{display:flex;gap:36px;margin-bottom:36px;position:relative}.tabs:after{content:"";position:absolute;left:0;right:0;bottom:0;height:1px;background:var(--hairline)}.tab{font-family:var(--sans);font-size:11px;font-weight:500;letter-spacing:.22em;text-transform:uppercase;color:var(--text-dim);background:none;border:none;cursor:pointer;padding:4px 0 14px;position:relative;transition:color .3s ease}.tab.active,.tab:hover:not(.active){color:var(--text)}.tab.active:after{content:"";position:absolute;left:0;right:0;bottom:0;height:1px;background:var(--text);z-index:2}.panel{display:none;opacity:0;transition:opacity .35s ease}.panel.active{display:block;opacity:1;animation:panelIn .4s ease forwards}.panel h1{font-weight:700;font-size:clamp(1.3rem,2.2vw,1.6rem);letter-spacing:.04em;margin-bottom:24px;color:var(--text)}.panel h1,.panel h3{font-family:var(--sans);text-transform:uppercase}.panel h3{font-weight:500;font-size:11px;letter-spacing:.22em;color:var(--text-dim);margin-top:26px;margin-bottom:14px}.panel p{font-family:var(--sans);font-weight:300;font-size:.92rem;line-height:1.7;color:var(--text);margin-bottom:14px;max-width:62ch}.panel p:last-child{margin-bottom:0}.panel a{color:var(--text);border-bottom:1px solid var(--text-faint);text-decoration:none;transition:border-color .3s ease}.panel a:hover{border-bottom-color:var(--text)}.panel em{font-style:italic;font-weight:300;color:var(--text-dim)}.panel ul{list-style:none;padding-left:0;margin-bottom:18px}.panel li{font-size:.92rem;line-height:1.5;font-weight:300;padding-left:18px;position:relative;margin-bottom:6px;color:var(--text)}.panel li:before{content:"·";position:absolute;left:6px;color:var(--text-faint)}.steps{display:flex;flex-direction:column;gap:20px;margin-top:8px}.step{display:grid;grid-template-columns:38px 1fr;grid-column-gap:18px;column-gap:18px}.step-num{grid-column:1;grid-row:1/span 2;font-size:11px;letter-spacing:.22em;color:var(--text-dim);font-weight:500;padding-top:3px}.step-title{grid-row:1;font-size:.78rem;font-weight:600;text-transform:uppercase;letter-spacing:.12em;margin-bottom:6px}.step-body,.step-title{grid-column:2;color:var(--text)}.step-body{grid-row:2;font-size:.9rem;font-weight:300;line-height:1.6;max-width:58ch}.projects-grid{display:grid;grid-template-columns:repeat(3,1fr);grid-column-gap:40px;column-gap:40px;grid-row-gap:0;row-gap:0}.projects-grid-item{font-family:var(--sans);font-size:1rem;font-weight:500;letter-spacing:-.003em;color:var(--text);padding:16px 0;border-bottom:1px solid var(--hairline);opacity:0;animation:itemIn .6s ease forwards}.blog-index{max-width:1080px}.blog-grid{display:grid;grid-template-columns:repeat(3,1fr);grid-gap:36px 28px;gap:36px 28px}.blog-card{display:flex;flex-direction:column;text-decoration:none;color:var(--text);opacity:0;animation:itemIn .6s ease forwards;transition:transform .4s cubic-bezier(.2,.7,.2,1)}.blog-card:hover{transform:translateY(-2px)}.blog-card-image{width:100%;aspect-ratio:3/2;overflow:hidden;background:#26412a;margin-bottom:16px;border-radius:4px;position:relative}.blog-card-image img{width:100%;height:100%;object-fit:cover;transition:opacity .4s ease}.blog-card:hover .blog-card-image img{opacity:.88}.blog-card-image.no-image:after{content:"";position:absolute;inset:0;background:linear-gradient(135deg,hsla(43,13%,90%,.04),hsla(43,13%,90%,.02))}.blog-card-title{font-family:var(--sans);font-size:1rem;font-weight:600;line-height:1.3;letter-spacing:-.005em;color:var(--text);margin-bottom:8px}.blog-card-date{font-family:var(--sans);font-size:10px;font-weight:400;letter-spacing:.22em;text-transform:uppercase;color:var(--text-dim)}.empty-state{font-size:.92rem;font-weight:300;color:var(--text-dim);font-style:italic}.article-page{position:relative;z-index:5;padding:130px var(--edge) 130px;min-height:100vh}.article{max-width:680px;margin:0 auto;opacity:0;transform:translateY(8px);animation:rise 1.4s cubic-bezier(.2,.7,.2,1) .3s forwards;transition:opacity .6s ease}.article-hero{width:100%;margin-bottom:40px;border-radius:4px;overflow:hidden;background:#26412a}.article-hero img{width:100%;height:auto;display:block}.article-header{margin-bottom:28px}.article-title{font-family:var(--sans);font-size:clamp(1.6rem,3vw,2.4rem);font-weight:700;letter-spacing:-.015em;line-height:1.15;color:var(--text);margin-bottom:14px}.article-date{font-family:var(--sans);font-size:11px;font-weight:400;letter-spacing:.22em;text-transform:uppercase;color:var(--text-dim)}.article-intro{font-size:clamp(1.05rem,1.4vw,1.2rem);font-style:italic;line-height:1.55;margin-bottom:36px;padding-bottom:28px;border-bottom:1px solid var(--hairline);max-width:56ch}.article-body,.article-intro{font-family:var(--sans);font-weight:300;color:var(--text)}.article-body{font-size:1rem;line-height:1.75}.article-body p{margin-bottom:20px;max-width:64ch}.article-body h2{font-size:1.4rem;font-weight:700;letter-spacing:-.01em;margin:40px 0 16px;color:var(--text)}.article-body h3{font-size:1.15rem;font-weight:600;letter-spacing:-.005em;margin:32px 0 12px;color:var(--text)}.article-body ol,.article-body ul{margin:0 0 24px 22px;max-width:60ch}.article-body li{margin-bottom:8px;line-height:1.7}.article-body a{color:var(--text);text-decoration:none;border-bottom:1px solid var(--text-faint);transition:border-color .3s ease}.article-body a:hover{border-bottom-color:var(--text)}.article-body blockquote{margin:28px 0;padding:4px 0 4px 24px;border-left:2px solid var(--text-faint);font-style:italic;color:var(--text-dim);max-width:60ch}.article-body code{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.88em;background:hsla(43,13%,90%,.06);padding:2px 6px;border-radius:3px}.article-body pre{background:hsla(43,13%,90%,.04);border:1px solid var(--hairline);padding:16px 18px;border-radius:4px;overflow-x:auto;margin:24px 0;max-width:100%}.article-body pre code{background:transparent;padding:0;font-size:.85rem;line-height:1.6}.article-body hr{border:none;border-top:1px solid var(--hairline);margin:40px 0}.article-body img{max-width:100%;height:auto;border-radius:4px;margin:24px 0}.login-inner{max-width:380px}.field,.login-form{display:flex;flex-direction:column}.field{margin-bottom:26px}.field-label{font-family:var(--sans);font-size:11px;font-weight:400;letter-spacing:.14em;color:var(--text-dim);margin-bottom:10px}.field-input{font-family:var(--sans);font-size:1rem;font-weight:300;color:var(--text);background:hsla(43,13%,90%,.04);border:1px solid var(--hairline);border-radius:3px;padding:13px 14px;width:100%;transition:border-color .3s ease,background .3s ease}.field-input:hover{border-color:var(--text-faint)}.field-input:focus{outline:none;border-color:var(--text-soft);background:hsla(43,13%,90%,.07)}.field-input:focus-visible{box-shadow:0 0 0 3px hsla(43,13%,90%,.12)}.login-button{font-family:var(--sans);font-size:12px;font-weight:600;letter-spacing:.16em;color:var(--bg);background:var(--white);border:1px solid var(--white);border-radius:3px;padding:14px 18px;margin-top:6px;cursor:pointer;transition:opacity .3s ease,transform .2s ease}.login-button:hover{opacity:.86}.login-button:active{transform:translateY(1px)}.login-button:focus-visible{outline:none;box-shadow:0 0 0 3px hsla(43,13%,90%,.25)}.login-notice{font-family:var(--sans);font-size:.88rem;font-weight:300;line-height:1.6;color:var(--text-soft);margin-top:22px;min-height:2.8em}.login-notice a{color:var(--text);text-decoration:none;border-bottom:1px solid var(--text-faint);transition:border-color .3s ease}.login-notice a:hover{border-bottom-color:var(--text)}.message{font-family:var(--sans);font-weight:300;font-size:.95rem;line-height:1.7;color:var(--text);margin-bottom:28px;max-width:56ch}.message a{color:var(--text);border-bottom:1px solid var(--text-faint);text-decoration:none;transition:border-color .3s ease}.message a:hover{border-bottom-color:var(--text)}.video-wrap{width:100%;max-width:520px;aspect-ratio:16/9;background:#000;margin:0 auto}.video-wrap iframe{width:100%;height:100%;border:0;display:block}@keyframes rise{to{opacity:1;transform:translateY(0)}}@keyframes fade{to{opacity:1}}@keyframes itemIn{to{opacity:1}}@keyframes drift{0%{transform:translateX(0)}to{transform:translateX(-50%)}}@keyframes panelIn{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}@media (max-width:900px){.blog-grid{grid-template-columns:repeat(2,1fr);gap:32px 24px}}@media (max-width:640px){:root{--edge:22px}.page{padding:90px var(--edge) 90px}.article-page{padding:100px var(--edge) 100px}.marquee{bottom:calc(var(--edge) + 48px)}.subline{margin-top:44px}.tabs{gap:18px;margin-bottom:28px}.tab{font-size:10px;letter-spacing:.18em}.projects-grid{grid-template-columns:repeat(2,1fr);column-gap:28px}.projects-grid-item{font-size:.95rem;padding:14px 0}.blog-grid{grid-template-columns:1fr;gap:32px}.message{font-size:.92rem}}@media (max-width:420px){.projects-grid{grid-template-columns:1fr}}