@import "https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600&family=Manrope:wght@400;500;600&display=swap";:root{--paper:#f2f0e9;--paper-deep:#e7e5dc;--ink:#151714;--muted:#686d66;--green:#174c3a;--green-dark:#10372b;--green-soft:#b8c9b5;--line:#1517142b;--white-line:#ffffff38;--shadow:0 18px 45px #14221914;--radius:6px;--shell:min(1180px, calc(100vw - 40px));--header:76px;--ease:cubic-bezier(.2, .8, .2, 1)}*{box-sizing:border-box}html{scroll-behavior:smooth}body{background:var(--paper);min-width:320px;color:var(--ink);-webkit-font-smoothing:antialiased;margin:0;font-family:DM Sans,PingFang SC,Microsoft YaHei,Arial,sans-serif;line-height:1.5}body:before{content:"";pointer-events:none;opacity:.22;z-index:100;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.12'/%3E%3C/svg%3E");position:fixed;inset:0}img{max-width:100%;display:block}button,input,textarea{font:inherit}button{color:inherit}a{color:inherit;text-decoration:none}h1,h2,h3,p{margin-top:0}h1,h2,h3{letter-spacing:-.05em;font-family:Manrope,PingFang SC,Microsoft YaHei,sans-serif;font-weight:500;line-height:1.02}h1 em,h2 em,h3 em,blockquote em{color:var(--green);font-family:Georgia,Songti SC,SimSun,serif;font-weight:400}button,a{-webkit-tap-highlight-color:transparent}:focus-visible{outline:2px solid var(--green);outline-offset:4px}.shell{width:var(--shell);margin-inline:auto}.skip-link{background:var(--green);color:#fff;z-index:1000;padding:10px 14px;position:fixed;top:10px;left:10px;transform:translateY(-150%)}.skip-link:focus{transform:translateY(0)}.eyebrow{text-transform:uppercase;letter-spacing:.15em;color:var(--green);font-size:.7rem;font-weight:600}.button{border:1px solid var(--green);background:var(--green);color:#fff;cursor:pointer;min-height:48px;transition:transform .25s var(--ease), background .25s;border-radius:2px;justify-content:space-between;align-items:center;gap:28px;padding:0 18px;font-size:.83rem;font-weight:600;display:inline-flex}.button:hover{background:var(--green-dark);transform:translateY(-2px)}.button--secondary{color:var(--green);background:0 0}.text-button{border:0;border-bottom:1px solid var(--line);cursor:pointer;background:0 0;padding:12px 0;font-size:.84rem}.site-header{z-index:40;height:var(--header);border-bottom:1px solid var(--line);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);background:#f2f0e9db;position:sticky;top:0}.nav{justify-content:space-between;align-items:center;height:100%;display:flex}.brand{letter-spacing:-.03em;align-items:center;gap:10px;font-weight:600;display:inline-flex}.brand span{background:var(--green);color:#fff;border-radius:50%;place-items:center;width:28px;height:28px;font-family:Georgia,Songti SC,SimSun,serif;font-style:italic;display:grid}.desktop-nav{gap:34px;display:none}.desktop-nav a{color:var(--muted);font-size:.82rem;position:relative}.desktop-nav a.active,.desktop-nav a:hover{color:var(--ink)}.desktop-nav a.active:after{content:"";background:var(--green);height:1px;position:absolute;bottom:-10px;left:0;right:0}.nav-actions{align-items:center;gap:10px;display:flex}.command-trigger,.nav-contact{display:none}.menu-button{border:1px solid var(--line);cursor:pointer;background:0 0;place-content:center;gap:5px;width:42px;height:42px;display:grid}.menu-button span{background:var(--ink);width:17px;height:1px}.hero{min-height:calc(100svh - var(--header));align-items:center;gap:64px;padding-block:70px;display:grid;overflow:hidden}.hero h1{margin:22px 0 28px;font-size:clamp(2.7rem,8.8vw,5.7rem)}.hero__intro{color:var(--muted);max-width:580px;font-size:1.04rem}.hero__actions{flex-wrap:wrap;align-items:center;gap:24px;margin-top:32px;display:flex}.availability{text-transform:uppercase;letter-spacing:.1em;color:var(--muted);align-items:center;gap:9px;margin-top:58px;font-size:.69rem;display:flex}.availability span{background:#65885d;border-radius:50%;width:7px;height:7px;box-shadow:0 0 0 4px #65885d26}.hero-art{perspective:900px;min-height:480px;position:relative}.orb{filter:blur(.2px);background:radial-gradient(circle at 30% 30%,#dce3c7,#7ea18b 55%,#235440);border-radius:50%;width:390px;height:390px;position:absolute;top:30px;left:10%;box-shadow:inset -30px -30px 80px #082d2059,0 45px 90px #193d2e2e}.panel{box-shadow:var(--shadow);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);border:1px solid #ffffff61;position:absolute}.panel--main{background:#ebeee0bd;width:min(82%,430px);padding:12px;top:90px;left:5%;transform:rotateY(-5deg)rotate(-2deg)}.panel__bar{align-items:center;gap:5px;height:22px;display:flex}.panel__bar i{background:var(--green);opacity:.45;border-radius:50%;width:5px;height:5px}.panel__visual{color:#fff;background:linear-gradient(145deg,#214d3d,#8ca38d);align-items:flex-end;height:230px;padding:22px;font-family:Georgia,Songti SC,SimSun,serif;font-size:2.4rem;font-style:italic;line-height:.9;display:flex}.panel__meta{text-transform:uppercase;letter-spacing:.1em;justify-content:space-between;padding:12px 4px 2px;font-size:.58rem;display:flex}.panel--back{width:180px;height:105px;color:var(--green);background:#f8f8ef80;padding:18px;top:22px;right:1%;transform:rotate(6deg)}.panel--back span,.panel--note span{text-transform:uppercase;letter-spacing:.12em;margin-bottom:14px;font-size:.58rem;display:block}.panel--back strong{font-family:Georgia,Songti SC,SimSun,serif;font-size:2rem;font-weight:400}.panel--note{color:#fff;background:#174c3ae0;width:160px;padding:18px;top:300px;right:0;transform:rotate(3deg)}.panel--note strong{font-family:Georgia,Songti SC,SimSun,serif;font-style:italic;font-weight:400}.coordinate{color:var(--muted);letter-spacing:.12em;font:.58rem monospace;position:absolute;bottom:2%;right:5%}.reveal{animation:reveal .7s var(--ease) both}.reveal:nth-child(2){animation-delay:80ms}.reveal:nth-child(3){animation-delay:.16s}.reveal:nth-child(4){animation-delay:.24s}@keyframes reveal{0%{opacity:0;transform:translateY(18px)}}.section{padding-block:90px}.section-heading{gap:18px;margin-bottom:42px;display:grid}.section-heading h2{margin:14px 0 0;font-size:clamp(2.1rem,5vw,3.8rem)}.section-heading>p{color:var(--muted);align-self:end;max-width:440px}.bento{gap:12px;display:grid}.bento-card{border:1px solid var(--line);text-align:left;min-height:260px;transition:transform .3s var(--ease), box-shadow .3s;background:#ffffff29;padding:26px;position:relative;overflow:hidden}.bento-card:hover{box-shadow:var(--shadow);transform:translateY(-3px)}.bento-card>span,.bento-card__content>span{text-transform:uppercase;letter-spacing:.12em;font-size:.62rem}.bento-card h3{margin:48px 0 14px;font-size:1.8rem}.bento-card p{color:var(--muted);font-size:.9rem}.bento-card b{font-size:.72rem;font-weight:500;position:absolute;bottom:24px;left:26px}.bento-card--project{color:#fff;border:0;min-height:480px;padding:0}.bento-card--project img{object-fit:cover;width:100%;height:100%;position:absolute;inset:0}.bento-card--project:after{content:"";background:linear-gradient(#0000 30%,#091f18e6);position:absolute;inset:0}.bento-card__content{z-index:1;position:absolute;inset:auto 28px 28px}.bento-card__content h3{margin:12px 0;font-size:2.2rem}.bento-card__content p{color:#ffffffbf;max-width:420px}.bento-card__content b{position:static}.bento-card--about{background:#d8ddcb}.bento-card--skills{background:var(--green);color:#fff}.bento-card--skills h3{margin-top:115px;font-size:1.35rem}.orbit-mark{border:1px solid #ffffff40;border-radius:50%;width:95px;height:95px;position:absolute;top:32px;right:28px}.orbit-mark i{background:#d5dec5;border-radius:50%;width:8px;height:8px;position:absolute}.orbit-mark i:first-child{top:3px;left:44px}.orbit-mark i:nth-child(2){bottom:15px;left:10px}.orbit-mark i:nth-child(3){top:45px;right:3px}.bento-card--writing{background:#e4d7ca}.bento-card--contact{color:#fff;cursor:pointer;background:#151714;border:0;width:100%}.bento-card--contact h3{font-family:Georgia,Songti SC,SimSun,serif;font-style:italic;font-weight:400}.page-intro{padding-block:92px 40px}.page-intro h1{max-width:1050px;margin:24px 0 30px;font-size:clamp(3rem,8vw,6.5rem)}.page-intro>p{max-width:590px;color:var(--muted);font-size:1.04rem}.project-grid{grid-template-columns:1fr;gap:48px 16px;display:grid}.project-card{border:1px solid var(--line);background:#ffffff2b;overflow:hidden}.project-card__image{aspect-ratio:1.35;background:var(--paper-deep);display:block;position:relative;overflow:hidden}.project-card__image img{object-fit:cover;width:100%;height:100%;transition:transform .6s var(--ease)}.project-card:hover .project-card__image img{transform:scale(1.025)}.project-card__index{background:#f2f0e9d9;padding:6px 9px;font-size:.64rem;position:absolute;top:14px;right:14px}.project-card__body{padding:22px}.project-card h3{margin:10px 0;font-size:1.7rem}.project-card p{color:var(--muted);min-height:2.65em;font-size:.88rem}.clamp-two{-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.project-card__footer{border-top:1px solid var(--line);flex-direction:column;gap:18px;margin-top:22px;padding-top:18px;display:flex}.tags{flex-wrap:wrap;gap:5px;margin:0;padding:0;list-style:none;display:flex}.tags li{text-transform:uppercase;letter-spacing:.08em;border:1px solid var(--line);padding:5px 7px;font-size:.6rem}.text-link{font-size:.74rem;font-weight:600}.gallery-section{border-top:1px solid var(--line)}.masonry{columns:1;column-gap:14px}.masonry__item{background:var(--paper-deep);cursor:zoom-in;break-inside:avoid;border:0;width:100%;margin-bottom:14px;padding:0;display:block;overflow:hidden}.masonry__item img{width:100%;height:auto;transition:transform .4s var(--ease)}.masonry__item:hover img{transform:scale(1.02)}.case-hero{padding-block:28px 72px}.breadcrumb{color:var(--muted);flex-wrap:wrap;gap:9px;margin-bottom:76px;font-size:.7rem;display:flex}.breadcrumb a{text-underline-offset:3px;text-decoration:underline}.case-hero__grid{gap:24px;margin-bottom:48px;display:grid}.case-hero h1{margin:16px 0 0;font-size:clamp(3.7rem,10vw,7.2rem)}.case-hero__grid>p{color:var(--muted);align-self:end;max-width:480px;font-size:1.08rem}.case-cover{object-fit:cover;width:100%;max-height:700px}.case-layout{padding-bottom:110px;display:grid}.toc{top:calc(var(--header) + 20px);border-top:1px solid var(--line);border-bottom:1px solid var(--line);background:var(--paper);z-index:4;align-self:start;padding:22px 0;position:sticky;overflow-x:auto}.toc>span{display:none}.toc nav{gap:20px;min-width:max-content;display:flex}.toc a{color:var(--muted);font-size:.7rem}.toc a span{color:var(--green);margin-right:5px}.toc button{display:none}.case-content{max-width:740px}.case-content>section{border-bottom:1px solid var(--line);padding:80px 0;scroll-margin-top:150px}.section-number{color:var(--green);font-size:.7rem}.case-content h2{margin:18px 0 28px;font-size:clamp(2.3rem,6vw,4rem)}.case-content>section>p{color:var(--muted);max-width:660px;font-size:1.08rem;line-height:1.8}.case-content .masonry{margin-top:52px}.about-story{gap:48px;padding-block:60px 100px;display:grid}.about-portrait{background:var(--green);color:#fff;place-items:center;min-height:470px;display:grid;position:relative;overflow:hidden}.about-portrait>span{color:#d5dec5;z-index:1;font:italic 18rem/1 Georgia,serif}.about-portrait i{border:1px solid #ffffff4d;border-radius:50%;width:350px;height:350px;position:absolute;box-shadow:0 0 0 70px #ffffff0a}.about-portrait b{text-transform:uppercase;letter-spacing:.13em;font-size:.65rem;font-weight:400;position:absolute;bottom:24px;left:24px}.prose{align-self:center}.prose p{color:var(--muted);max-width:570px;line-height:1.8}.prose .lead{color:var(--ink);font:1.65rem/1.45 Georgia,Songti SC,SimSun,serif}.skill-grid{border-top:1px solid var(--line);display:grid}.skill-grid article{border-bottom:1px solid var(--line);padding:28px 0}.skill-grid article>span{color:var(--green);font-size:.68rem}.skill-grid h3{margin:25px 0;font-size:2.2rem}.skill-grid ul{color:var(--muted);margin:0;padding:0;list-style:none}.manifesto{background:var(--green);color:#fff;padding:100px 0}.manifesto span{text-transform:uppercase;letter-spacing:.14em;font-size:.7rem}.manifesto blockquote{letter-spacing:-.05em;margin:60px 0 0;font:400 clamp(2.7rem,8vw,6.8rem)/1 Georgia,Songti SC,SimSun,serif}.manifesto blockquote em{color:#cad7bc}.journal-list{border-top:1px solid var(--line)}.journal-list article{border-bottom:1px solid var(--line);gap:22px;padding:34px 0;display:grid}.journal-index{color:var(--green);font-size:.7rem}.journal-list h2{margin:14px 0;font-size:clamp(2rem,5vw,3.5rem)}.journal-list p{color:var(--muted);max-width:630px}.journal-meta{color:var(--muted);flex-wrap:wrap;gap:18px;font-size:.67rem;display:flex}.journal-meta button{border:0;border-bottom:1px solid var(--line);cursor:pointer;background:0 0;margin-left:auto;padding:0 0 4px}.contact-hero{align-items:center;gap:50px;min-height:680px;padding-block:90px;display:grid}.contact-hero h1{margin:24px 0 28px;font-size:clamp(3rem,8vw,6rem)}.contact-hero>div:first-child>p{max-width:580px;color:var(--muted);font-size:1.05rem}.contact-actions{flex-wrap:wrap;gap:24px;margin-top:34px;display:flex}.contact-card{border:1px solid var(--line);background:#dfe2d5;padding:28px}.contact-card>span{text-transform:uppercase;letter-spacing:.13em;font-size:.64rem}.contact-card>button{color:var(--green);cursor:pointer;border:0;border-bottom:1px solid var(--green);background:0 0;margin:28px 0 60px;padding:0;font:1.5rem Georgia,Songti SC,SimSun,serif;display:block}.contact-card dl{margin:0}.contact-card dl div{border-top:1px solid var(--line);justify-content:space-between;padding:13px 0;font-size:.72rem;display:flex}.contact-card dt{color:var(--muted)}.faq-section{border-top:1px solid var(--line);gap:42px;display:grid}.faq-section h2{margin-top:20px;font-size:2.8rem}.accordion__item{border-top:1px solid var(--line)}.accordion__item:last-child{border-bottom:1px solid var(--line)}.accordion h3{margin:0}.accordion h3 button{text-align:left;cursor:pointer;background:0 0;border:0;justify-content:space-between;width:100%;padding:22px 0;font-size:.93rem;display:flex}.accordion__item>div p{color:var(--muted);padding-bottom:22px;padding-right:30px}.site-footer{color:#fff;background:#141815;padding:70px 0 22px}.footer-grid{gap:50px;display:grid}.brand--footer span{color:var(--green);background:#d5dec5}.footer-grid>div:first-child p{color:#a8ada8;margin-top:24px;font-family:Georgia,Songti SC,SimSun,serif}.footer-grid nav{align-content:start;gap:10px;font-size:.8rem;display:grid}.footer-contact>span{color:#a8ada8;text-transform:uppercase;letter-spacing:.1em;margin-bottom:18px;font-size:.65rem;display:block}.footer-contact button{color:#fff;border:0;border-bottom:1px solid var(--white-line);cursor:pointer;background:0 0;padding:0 0 6px;font:1.15rem Georgia,Songti SC,SimSun,serif}.footer-base{border-top:1px solid var(--white-line);color:#848984;text-transform:uppercase;letter-spacing:.1em;justify-content:space-between;margin-top:65px;padding-top:20px;font-size:.6rem;display:flex}.overlay{z-index:80;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#0d141094;place-items:center;padding:18px;animation:.2s both fade;display:grid;position:fixed;inset:0}.dialog{background:var(--paper);width:min(600px,100%);max-height:calc(100svh - 36px);padding:24px;overflow:auto;box-shadow:0 30px 90px #00000040}.dialog__top{justify-content:space-between;align-items:center;gap:20px;margin-bottom:28px;display:flex}.dialog__top h2{margin:0;font-size:1.35rem}.icon-button{border:1px solid var(--line);cursor:pointer;background:0 0;width:36px;height:36px;font-size:1.5rem}.overlay--drawer{place-items:stretch end;padding:0}.dialog--drawer{width:min(390px,92vw);height:100svh;max-height:none;animation:drawer .35s var(--ease) both;padding:26px}.drawer-nav{margin:70px 0;display:grid}.drawer-nav a{border-bottom:1px solid var(--line);align-items:center;gap:25px;padding:18px 0;font:2rem Georgia,Songti SC,SimSun,serif;display:flex}.drawer-nav a span{color:var(--green);font:.65rem DM Sans}.overlay--lightbox{background:#070c09e6}.dialog--lightbox{width:min(1000px,100%);box-shadow:none;color:#fff;background:0 0}.dialog--lightbox .dialog__top{margin-bottom:12px}.dialog--lightbox .icon-button{border-color:var(--white-line);color:#fff}.lightbox-figure{margin:0}.lightbox-figure img{width:auto;max-height:calc(100svh - 160px);margin:auto}.lightbox-figure figcaption{text-align:center;color:#bbb;margin-top:12px;font-size:.68rem}.dialog--command{align-self:start;margin-top:10vh;padding:18px}.command input{border:0;border-bottom:1px solid var(--line);background:0 0;outline:0;width:100%;padding:12px 4px 18px;font-size:1.1rem}.command ul{margin:0;padding:10px 0 0;list-style:none}.command li button{cursor:pointer;text-align:left;background:0 0;border:0;justify-content:space-between;width:100%;padding:13px 8px;display:flex}.command li button:hover,.command li button:focus{background:var(--paper-deep)}kbd{border:1px solid var(--line);border-radius:3px;padding:2px 6px;font:.65rem monospace}.empty{color:var(--muted);padding:10px 8px}.contact-form{gap:18px;display:grid}.form-note{background:var(--paper-deep);color:var(--muted);padding:12px;font-size:.74rem}.contact-form label{gap:7px;font-size:.72rem;font-weight:600;display:grid}.contact-form input,.contact-form textarea{border:1px solid var(--line);resize:vertical;background:#ffffff59;border-radius:0;width:100%;padding:12px}.contact-form [aria-invalid=true]{border-color:#a23d2f}.field-error{color:#8b3025;font-size:.68rem;font-weight:400}.contact-form .button{justify-self:start}.toast{z-index:110;background:var(--green);color:#fff;max-width:min(380px,100vw - 40px);box-shadow:var(--shadow);opacity:0;pointer-events:none;transition:.3s var(--ease);padding:14px 18px;font-size:.78rem;position:fixed;bottom:20px;right:20px;transform:translateY(15px)}.toast--visible{opacity:1;transform:translateY(0)}.not-found{min-height:70vh;padding-block:100px}.not-found>span{color:var(--green)}.not-found h1{margin:20px 0;font-size:clamp(3rem,9vw,6rem)}.not-found p{color:var(--muted);margin-bottom:30px}@keyframes fade{0%{opacity:0}}@keyframes drawer{0%{transform:translate(100%)}}@media (width>=640px){:root{--shell:min(1180px, calc(100vw - 64px))}.project-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.masonry{columns:2}.bento{grid-template-columns:repeat(2,1fr)}.bento-card--project{grid-column:span 2}.section-heading{grid-template-columns:1.3fr .7fr}.journal-list article{grid-template-columns:50px 1fr}.journal-meta{grid-column:2}.skill-grid{grid-template-columns:repeat(3,1fr)}.skill-grid article{border-right:1px solid var(--line);padding:28px}.footer-grid{grid-template-columns:1.2fr .5fr 1.3fr}}@media (width>=900px){.menu-button{display:none}.desktop-nav{display:flex}.command-trigger{color:var(--muted);cursor:pointer;background:0 0;border:0;align-items:center;gap:10px;font-size:.68rem;display:flex}.nav-contact{background:var(--green);color:#fff;cursor:pointer;border:0;height:38px;padding:0 15px;display:block}.hero{grid-template-columns:1.03fr .97fr;gap:20px}.hero__copy{padding-right:20px}.bento{grid-template-rows:275px 275px;grid-template-columns:1.2fr .8fr .8fr}.bento-card{min-height:0}.bento-card--project{grid-area:span 2}.bento-card--about{grid-column:span 2}.project-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.project-card__footer{flex-direction:row;justify-content:space-between;align-items:flex-end}.masonry{columns:3}.case-hero__grid{grid-template-columns:1.4fr .6fr}.case-layout{grid-template-columns:230px minmax(0,1fr);gap:80px}.toc{background:0 0;border:0;padding:0;overflow:visible}.toc>span{text-transform:uppercase;letter-spacing:.12em;margin-bottom:22px;font-size:.62rem;display:block}.toc nav{gap:11px;min-width:0;display:grid}.toc button{border:0;border-bottom:1px solid var(--line);cursor:pointer;background:0 0;margin-top:30px;padding:0 0 5px;font-size:.68rem;display:block}.about-story{grid-template-columns:1fr 1fr;gap:10%}.journal-list article{grid-template-columns:70px 1fr 180px;align-items:start}.journal-meta{grid-column:auto;display:grid}.journal-meta button{justify-self:start;margin-left:0}.contact-hero{grid-template-columns:1.3fr .7fr;gap:8%}.faq-section{grid-template-columns:.7fr 1.3fr}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}
