:root{--ink:#080706;--charcoal:#15110f;--paper:#e9e2d7;--paper-dim:#aaa39b;--red:#b51f2d;--red-bright:#e02c3d;--line:#e9e2d72b}*{box-sizing:border-box}html{scroll-behavior:smooth}body{background:var(--ink);color:var(--paper);font-family:var(--font-geist-sans), "Noto Sans SC", "Microsoft YaHei", sans-serif;margin:0}::selection{background:var(--red);color:#fff}a{color:inherit;text-decoration:none}body.intro-active{overflow:hidden}.intro-screen{z-index:9999;color:var(--paper);isolation:isolate;background-color:#050505;background-position:50%;background-repeat:no-repeat;background-size:cover;place-items:center;display:grid;position:fixed;inset:0;overflow:hidden}.intro-screen.leaving{animation:.75s cubic-bezier(.4,0,.2,1) forwards intro-curtain}.intro-shade{z-index:-1;pointer-events:none;background:#0000007a;position:absolute;inset:0}.intro-center{z-index:2;text-align:center;width:min(78vw,760px);position:relative}.intro-subtitle,.intro-status,.intro-skip{letter-spacing:.32em;font-size:.62rem;font-weight:600}.intro-name{padding:.08em 0 .16em;overflow:hidden}.intro-name span{letter-spacing:.12em;opacity:0;text-shadow:0 2px 28px #00000073;font-family:Songti SC,STSong,serif;font-size:clamp(5rem,13vw,11rem);font-weight:700;line-height:1;animation:.9s cubic-bezier(.2,.8,.16,1) .28s forwards intro-name;display:block;transform:translateY(14px)}.intro-line{background:#e8e0d329;width:min(72%,500px);height:1px;margin:1.8rem auto 1.3rem;position:relative;overflow:hidden}.intro-line i{transform-origin:50%;background:#e8e0d3b3;width:100%;height:100%;animation:.8s .72s forwards intro-line;display:block;transform:scaleX(0)}.intro-subtitle{color:#e8e0d394;opacity:0;margin:0;animation:.6s .85s forwards intro-fade-up}.intro-status{color:#e8e0d36b;opacity:0;justify-content:space-between;align-items:center;animation:.5s .72s forwards intro-fade;display:flex;position:absolute;bottom:4.5vh;left:4vw;right:4vw}.intro-pulse{align-items:center;gap:.7rem;display:flex}.intro-pulse i{background:#e8e0d3bf;border-radius:50%;width:5px;height:5px;animation:1.2s ease-in-out infinite intro-pulse}.intro-skip{z-index:3;color:#e8e0d375;cursor:pointer;opacity:0;background:0 0;border:0;padding:.7rem;animation:.5s .8s forwards intro-fade;position:absolute;top:4vh;right:4vw}.intro-skip span{margin-left:.35rem}.intro-skip:hover{color:var(--paper)}body.intro-active .hero-content{animation-delay:1.95s}@keyframes intro-name{to{opacity:1;transform:translateY(0)}}@keyframes intro-line{to{transform:scaleX(1)}}@keyframes intro-fade-up{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes intro-fade{to{opacity:1}}@keyframes intro-pulse{50%{opacity:.25;transform:scale(.7)}}@keyframes intro-curtain{0%{opacity:1}to{opacity:0;visibility:hidden}}.shell,.section-shell{width:min(100% - 8vw,1520px);margin-inline:auto}.hero{isolation:isolate;background:#080706 url(/hero-bg.png) 50%/cover no-repeat;min-height:100svh;position:relative;overflow:hidden}.hero:after{content:"";z-index:-1;background:linear-gradient(90deg,#0504038f 0%,#05040329 50%,#05040333 100%),linear-gradient(#0000 66%,#03020294);position:absolute;inset:0}.hero-noise{z-index:2;pointer-events:none;opacity:.16;mix-blend-mode:soft-light;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='.95' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.35'/%3E%3C/svg%3E");position:absolute;inset:0}.site-header{z-index:5;justify-content:space-between;align-items:center;height:112px;display:flex;position:relative}.brand{letter-spacing:.08em;font-family:Songti SC,STSong,Noto Serif CJK SC,serif;font-size:clamp(1.8rem,2.35vw,2.75rem);font-weight:700}.main-nav{gap:clamp(2.2rem,5vw,5.8rem);display:flex}.main-nav a,.eyebrow,.hero-footer,.text-link{letter-spacing:.28em;font-size:.72rem;font-weight:600}.main-nav a{padding:10px 0;position:relative}.main-nav a:after{content:"";background:var(--red-bright);width:0;height:1px;transition:width .35s;position:absolute;bottom:3px;left:0}.main-nav a:hover:after,.main-nav a:focus-visible:after{width:100%}.hero-content{z-index:3;padding-top:clamp(7vh,11vh,13rem);animation:1s cubic-bezier(.22,.74,.18,1) both rise-in;position:relative}.hero-eyebrow{color:#c7c0b7;margin-bottom:2rem}.hero h1,.section-heading h2,.about-copy h2,.contact-inner h2{letter-spacing:-.035em;margin:0;font-family:Songti SC,STSong,Noto Serif CJK SC,serif;font-weight:600}.hero h1{text-shadow:0 2px 35px #00000073;max-width:900px;font-size:clamp(4.5rem,8.3vw,9.2rem);line-height:.95}.hero h1 span{color:var(--red-bright)}.hero-intro{color:#bcb5ac;letter-spacing:.1em;max-width:650px;margin:2rem 0 2.7rem;font-size:clamp(.87rem,1.04vw,1rem);line-height:2}.text-link{color:var(--red-bright);align-items:center;gap:1.5rem;display:inline-flex}.text-link i{background:currentColor;width:7rem;height:1px;transition:width .35s;display:block;position:relative}.text-link i:after{content:"";border-top:1px solid;border-right:1px solid;width:9px;height:9px;position:absolute;top:-4px;right:0;transform:rotate(45deg)}.text-link:hover i{width:9rem}.hero-footer{z-index:3;color:#b8b1a8;letter-spacing:.16em;align-items:center;display:flex;position:absolute;bottom:5vh;left:50%;transform:translate(-50%)}.hero-footer .dot{background:var(--red-bright);border-radius:50%;width:4px;height:4px;margin:0 1rem}.scroll-mark{color:#77716b;margin-left:auto}.work-section{padding-top:clamp(7rem,12vw,13rem);padding-bottom:clamp(7rem,12vw,13rem)}.section-heading{grid-template-columns:.65fr 1.35fr .8fr;align-items:end;gap:3rem;padding-bottom:5.5rem;display:grid}.eyebrow{color:var(--red-bright);margin:0}.section-heading h2,.about-copy h2{font-size:clamp(3.4rem,6vw,7rem);line-height:1.05}.section-lede{color:var(--paper-dim);letter-spacing:.08em;margin:0;font-size:.86rem;line-height:1.9}.project-list{border-top:1px solid var(--line)}.project-card{border-bottom:1px solid var(--line);grid-template-columns:.3fr 1.08fr 1fr;min-height:430px;padding:2.6rem 0;display:grid;position:relative;overflow:hidden}.project-index{color:#6f6963;letter-spacing:.2em;font-size:.72rem}.project-visual{background:radial-gradient(circle at 58% 45%,#34211d 0%,#120e0c 38%,#080706 72%);margin-right:5vw;position:relative;overflow:hidden}.project-card.crimson .project-visual{background:radial-gradient(circle at 60% 48%,#7c101c 0%,#26090d 26%,#090706 70%)}.project-card.paper .project-visual{background:linear-gradient(135deg,#d2c7b7 0%,#554942 25%,#15100d 56%,#050404 100%)}.project-card.shadow .project-visual{background:radial-gradient(at 50% 95%,#4c171d 0%,#17100f 34%,#060505 68%)}.project-visual.has-cover{background:#100d0b}.project-visual.has-cover img{object-fit:cover;width:100%;height:100%;transition:transform .8s cubic-bezier(.2,.75,.2,1),filter .5s;display:block}.project-card:hover .project-visual.has-cover img{filter:contrast(1.04);transform:scale(1.035)}.project-orbit{aspect-ratio:1;border:1px solid #ece1d357;border-radius:50%;width:min(70%,290px);transition:transform .8s cubic-bezier(.2,.75,.2,1);position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);box-shadow:0 0 60px #dc203129,inset 0 0 50px #0000008c}.project-orbit:before,.project-orbit:after{content:"";border:1px solid #da2b397a;border-radius:50%;position:absolute;inset:12%}.project-orbit:after{background:var(--red);filter:blur(1px);border:0;inset:34%}.project-slice{filter:blur(9px);background:#e12c3ba6;width:150%;height:18px;position:absolute;top:47%;left:-25%;transform:rotate(-16deg)}.project-card:hover .project-orbit{transform:translate(-50%,-50%)scale(1.08)rotate(14deg)}.project-copy{flex-direction:column;align-items:flex-start;padding:1.2rem 0 1rem;display:flex}.project-copy>p{color:var(--red-bright);letter-spacing:.2em;margin:0 0 auto;font-size:.66rem}.project-copy h3{margin:0;font-family:Songti SC,STSong,serif;font-size:clamp(2.8rem,4.4vw,5rem);font-weight:500}.project-copy>span{color:#79736d;letter-spacing:.22em;font-size:.7rem}.project-note{color:#aaa39b;letter-spacing:.06em;max-width:500px;margin-top:auto;font-size:.88rem;line-height:1.9}.about-section{border-top:1px solid var(--line);grid-template-columns:.3fr 1.15fr .8fr;gap:4vw;padding-top:clamp(7rem,11vw,12rem);padding-bottom:clamp(7rem,11vw,12rem);display:grid;position:relative}.about-number{color:#3e3935;font-family:serif;font-size:clamp(5rem,10vw,12rem);line-height:.7}.about-copy h2{margin-top:3rem}.about-copy h2 em{color:var(--red-bright);font-style:normal}.about-text{color:var(--paper-dim);grid-template-columns:1fr 1fr;gap:3rem;margin-top:5rem;font-size:.92rem;line-height:2;display:grid}.about-text p{margin:0}.services{border-top:1px solid var(--line);align-self:end}.service{border-bottom:1px solid var(--line);grid-template-columns:3rem 1fr;padding:1.4rem 0;display:grid}.service span{color:var(--red-bright);font-size:.65rem}.service strong{letter-spacing:.12em;font-size:.92rem;font-weight:500}.contact-section{border-top:1px solid var(--line);background:#0c0807;position:relative;overflow:hidden}.contact-glow{pointer-events:none;background:radial-gradient(#b1182757,#0000 62%);height:120%;position:absolute;inset:auto -10% -60% 35%;transform:rotate(-12deg)}.contact-inner{z-index:1;padding-top:clamp(7rem,11vw,12rem);position:relative}.contact-inner h2{max-width:1100px;margin-top:3rem;font-size:clamp(3.8rem,7.4vw,8.5rem);line-height:1.02}.contact-note{color:var(--paper-dim);letter-spacing:.08em;margin:3rem 0;line-height:2}.contact-link{border-top:1px solid var(--red);border-bottom:1px solid var(--red);color:var(--red-bright);letter-spacing:.18em;justify-content:space-between;align-items:center;padding:2rem 0;font-size:clamp(1rem,1.5vw,1.45rem);display:flex}.contact-link i{font-size:2rem;font-style:normal;transition:transform .3s}.contact-link:hover i{transform:translate(6px,-6px)}.footer-row{color:#625d58;letter-spacing:.16em;justify-content:space-between;padding:6rem 0 2rem;font-size:.64rem;display:flex}.footer-row a:hover{color:var(--paper)}@keyframes rise-in{0%{opacity:0;transform:translateY(28px)}to{opacity:1;transform:translateY(0)}}@media (max-width:900px){.shell,.section-shell{width:min(100% - 2.5rem,760px)}.site-header{height:88px}.main-nav{gap:1.7rem}.hero-content{padding-top:13vh}.hero-intro br,.scroll-mark{display:none}.section-heading{grid-template-columns:1fr;gap:1.5rem}.section-heading h2{margin-top:1rem}.project-card{grid-template-columns:2.4rem 1fr;min-height:600px}.project-visual{min-height:330px;margin:0 0 2rem}.project-copy{grid-column:2;min-height:230px}.about-section{grid-template-columns:1fr}.about-number{display:none}.services{margin-top:2rem}}@media (max-width:620px){.shell,.section-shell{width:calc(100% - 2rem)}.brand{font-size:1.75rem}.main-nav{gap:1rem}.main-nav a{letter-spacing:.14em;font-size:.56rem}.hero{background-position:58%;min-height:760px}.hero-content{padding-top:12vh}.hero h1{font-size:clamp(4rem,19vw,6rem)}.hero-eyebrow{max-width:260px;line-height:1.8}.hero-intro{font-size:.8rem}.text-link{letter-spacing:.2em;gap:1rem;font-size:.64rem}.text-link i{width:4rem}.hero-footer{letter-spacing:.08em;font-size:.56rem;bottom:2rem}.project-card{min-height:auto;display:block}.project-index{margin-bottom:1rem}.project-visual{min-height:300px;margin-right:0}.project-copy{min-height:250px}.about-text{grid-template-columns:1fr;gap:1.6rem;margin-top:3rem}.contact-inner h2{font-size:3.5rem}.footer-row{flex-direction:column;gap:1rem;padding-top:4rem}.intro-name span{font-size:clamp(5rem,29vw,8rem)}.intro-center{width:90vw}.intro-status{left:1rem;right:1rem}.intro-status span:nth-child(2){display:none}.intro-skip{right:1rem}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important}.intro-screen{display:none}}.editor-page{min-height:100svh;color:var(--paper);background:#0a0908}.editor-header{z-index:20;border-bottom:1px solid var(--line);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);background:#0a0908eb;justify-content:space-between;align-items:center;min-height:88px;padding:0 4vw;display:flex;position:sticky;top:0}.editor-header>div{align-items:center;gap:1.3rem;display:flex}.editor-mark{font-family:Songti SC,STSong,serif;font-size:1.75rem;font-weight:700}.editor-header p,.editor-user{color:#8d8780;letter-spacing:.12em;margin:0;font-size:.72rem}.editor-user a{border:1px solid var(--line);color:var(--paper);padding:.72rem 1rem;transition:border-color .25s,color .25s}.editor-user a:hover{border-color:var(--red);color:var(--red-bright)}.editor-layout{grid-template-columns:250px minmax(0,900px);gap:clamp(3rem,7vw,8rem);width:min(92%,1350px);margin:0 auto;padding:5rem 0 10rem;display:grid}.editor-sidebar{flex-direction:column;align-self:start;gap:.35rem;display:flex;position:sticky;top:135px}.editor-sidebar p{color:var(--red-bright);letter-spacing:.22em;margin:0 0 1.25rem;font-size:.68rem}.editor-sidebar a{color:#77716b;letter-spacing:.08em;border-bottom:1px solid #ffffff0f;padding:.85rem 0;font-size:.82rem}.editor-sidebar a:hover{color:var(--paper)}.editor-form{min-width:0}.editor-section{border-bottom:1px solid var(--line);margin:0 0 6rem;padding:0 0 6rem;scroll-margin-top:110px}.editor-section-title{align-items:baseline;gap:1.2rem;margin-bottom:3rem;display:flex}.editor-section-title span{color:var(--red-bright);letter-spacing:.2em;font-size:.7rem}.editor-section-title h2{margin:0;font-family:Songti SC,STSong,serif;font-size:clamp(2.3rem,4vw,4rem);font-weight:500}.editor-grid{grid-template-columns:1fr 1fr;gap:1.2rem;display:grid}.editor-field{margin-bottom:1.2rem;display:block}.editor-field>span{color:#8f8982;letter-spacing:.08em;margin-bottom:.65rem;font-size:.75rem;display:block}.editor-field input,.editor-field textarea{width:100%;color:var(--paper);font:inherit;background:#12100f;border:1px solid #282421;border-radius:2px;outline:none;padding:.95rem 1rem;font-size:.9rem;line-height:1.7;transition:border-color .2s,background .2s}.editor-field input:focus,.editor-field textarea:focus{border-color:var(--red);background:#161210}.editor-field textarea{resize:vertical;min-height:120px}.project-editor{border:1px solid var(--line);background:#0d0b0a;margin:3.5rem 0 0;padding:2rem}.project-editor-heading{justify-content:space-between;align-items:center;gap:1.5rem;margin-bottom:2rem;display:flex}.project-editor h3{color:var(--red-bright);letter-spacing:.2em;margin:0;font-size:.74rem;font-weight:600}.project-editor h3 span{color:#77716b;letter-spacing:.08em;margin-left:1rem;font-weight:400}.project-actions{align-items:center;gap:.45rem;display:flex}.project-actions button{border:1px solid var(--line);color:#a49e97;cursor:pointer;background:0 0;min-width:34px;height:34px;padding:0 .65rem}.project-actions button:hover:not(:disabled){color:var(--paper);border-color:#726b64}.project-actions button:disabled{opacity:.3;cursor:default}.project-actions .danger{color:#cf5b66;border-color:#e02c3d59;margin-left:.35rem}.project-actions .danger:hover{border-color:var(--red-bright);color:var(--red-bright)}.project-list-toolbar{border:1px solid var(--line);background:#11100e;justify-content:space-between;align-items:center;gap:1.5rem;margin:2rem 0 -1rem;padding:1.1rem 1.2rem;display:flex}.project-list-toolbar p{color:#817b74;margin:0;font-size:.8rem}.project-list-toolbar strong{color:var(--paper)}.project-list-toolbar button,.add-project-bottom{border:1px solid var(--red);color:var(--red-bright);font:inherit;letter-spacing:.08em;cursor:pointer;background:0 0;padding:.75rem 1rem;font-size:.76rem}.project-list-toolbar button:hover,.add-project-bottom:hover{background:var(--red);color:#fff}.add-project-bottom{border-style:dashed;width:100%;margin-top:2rem;padding:1rem;display:block}.image-input{grid-template-columns:220px 1fr;align-items:center;gap:1.5rem;margin-bottom:2rem;display:grid}.image-preview{aspect-ratio:16/10;border:1px solid var(--line);color:#6f6963;background:#171412;place-items:center;font-size:.75rem;display:grid;overflow:hidden}.image-preview img{object-fit:cover;width:100%;height:100%}.image-input label{flex-direction:column;align-items:flex-start;gap:.6rem;display:flex}.image-input label strong{font-size:.87rem;font-weight:500}.image-input label small{color:#77716b;line-height:1.6}.image-input input{opacity:0;pointer-events:none;position:absolute}.upload-button{border:1px solid var(--red);color:var(--red-bright);letter-spacing:.1em;cursor:pointer;margin-top:.45rem;padding:.72rem 1rem;font-size:.75rem;display:inline-flex}.clear-image{color:#8a837c;font:inherit;cursor:pointer;background:0 0;border:0;padding:.2rem 0;font-size:.74rem}.clear-image:hover{color:var(--paper)}.editor-savebar{border:1px solid var(--line);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);background:#13100ef0;justify-content:space-between;align-items:center;gap:2rem;padding:1rem 1rem 1rem 1.4rem;display:flex;position:sticky;bottom:1.2rem;box-shadow:0 18px 60px #00000059}.editor-status{color:#8f8982;margin:0;font-size:.78rem}.editor-status.success{color:#88b895}.editor-status.error{color:#ef6370}.editor-savebar button{background:var(--red);color:#fff;font:inherit;letter-spacing:.12em;cursor:pointer;border:0;padding:.95rem 1.4rem;font-size:.8rem}.editor-savebar button:disabled{opacity:.55;cursor:wait}.editor-denied{text-align:center;background:var(--ink);place-content:center;min-height:100svh;display:grid}.editor-denied h1{margin:0 0 1rem;font-family:Songti SC,serif;font-size:3rem}.editor-denied p{color:var(--paper-dim)}.editor-denied a{color:var(--red-bright);margin-top:1rem}.editor-login{background:radial-gradient(circle at 50% 20%,#1b1513,#080706 55%);place-items:center;min-height:100svh;padding:2rem;display:grid}.editor-login form{border:1px solid var(--line);background:#0c0a09e0;width:min(100%,470px);padding:clamp(2rem,6vw,4rem);box-shadow:0 30px 100px #00000073}.editor-login form>span{font-family:Songti SC,STSong,serif;font-size:2.3rem;font-weight:700;display:block}.editor-login form>p{color:var(--red-bright);letter-spacing:.24em;margin:.7rem 0 3.5rem;font-size:.64rem}.editor-login h1{margin:0 0 2rem;font-family:Songti SC,STSong,serif;font-size:clamp(2rem,6vw,3rem);font-weight:500}.editor-login label>span{color:#8f8982;letter-spacing:.1em;margin-bottom:.7rem;font-size:.75rem;display:block}.editor-login input{width:100%;color:var(--paper);font:inherit;background:#12100f;border:1px solid #322c28;outline:none;padding:1rem}.editor-login input:focus{border-color:var(--red)}.editor-login button{background:var(--red);color:#fff;width:100%;font:inherit;letter-spacing:.12em;cursor:pointer;border:0;margin-top:1rem;padding:1rem}.editor-login button:disabled{opacity:.5;cursor:wait}.editor-login form>a{color:#7f7872;margin-top:1.5rem;font-size:.76rem;display:inline-block}.editor-login-error{color:#ef6370;margin-top:.8rem;font-size:.78rem}@media (max-width:800px){.editor-header{padding:0 1rem}.editor-user>span{display:none}.editor-layout{width:calc(100% - 2rem);padding-top:2rem;display:block}.editor-sidebar{grid-template-columns:1fr 1fr;margin-bottom:4rem;display:grid;position:static}.editor-sidebar p{grid-column:1/-1}.editor-grid{grid-template-columns:1fr;gap:0}.image-input{grid-template-columns:1fr}.image-preview{width:100%}.project-editor{padding:1.2rem}.project-editor-heading{flex-direction:column;align-items:flex-start}.project-actions{width:100%}.project-actions .danger{margin-left:auto}.project-list-toolbar{flex-direction:column;align-items:flex-start;margin-bottom:0}.editor-savebar{flex-direction:column;align-items:flex-start;gap:.8rem;bottom:.5rem}.editor-savebar button{width:100%}}
