:root{--ink:#101713;--paper:#f7f8f4;--muted:#58615b;--line:#ccd2cb;--lime:#d8fa72;--green:#274d3a;--white:#fff;--gutter:clamp(22px,5vw,90px);--ease:cubic-bezier(.2,.75,.2,1)}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:100px}body{margin:0;background:var(--paper);color:var(--ink);font-family:-apple-system,BlinkMacSystemFont,"Helvetica Neue","Yu Gothic",Meiryo,sans-serif;font-size:16px;line-height:1.9;-webkit-font-smoothing:antialiased}::selection{background:var(--lime);color:var(--ink)}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit}button,a,input,textarea,select{-webkit-tap-highlight-color:transparent}a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid #769d25;outline-offset:5px}img{max-width:100%;display:block}button{cursor:pointer}section[id]{scroll-margin-top:90px}.reading-progress{position:fixed;z-index:100;left:0;top:0;height:3px;width:100%;background:var(--lime);transform:scaleX(var(--progress,0));transform-origin:left;pointer-events:none}.skip-link{position:fixed;top:-120px;left:20px;padding:12px 20px;background:var(--lime);color:var(--ink);z-index:120}.skip-link:focus{top:12px}
.nav{position:absolute;z-index:50;top:0;left:0;width:100%;color:white}.navin{padding:26px var(--gutter);display:flex;align-items:center;justify-content:space-between;gap:24px}.logo{font-weight:800;font-size:30px;line-height:1.15;letter-spacing:.16em;flex-shrink:0}.logo span{display:block;font-size:12px;letter-spacing:.1em;font-weight:500;margin-top:8px}.menu{display:flex;align-items:center;gap:clamp(16px,2vw,32px)}.menu a{font-size:12px;letter-spacing:.06em;font-weight:600;position:relative;padding:10px 0}.menu a:after{content:"";position:absolute;bottom:3px;left:0;right:0;height:1px;background:var(--lime);transform:scaleX(0);transform-origin:left;transition:transform .3s}.menu a:hover:after{transform:scaleX(1)}.menu a:last-child{border:1px solid #ffffff60;border-radius:30px;padding:10px 20px}.menu a:last-child:after{display:none}.menu a:last-child:hover{background:var(--lime);color:var(--ink);border-color:var(--lime)}.mobile-contact,.menu-toggle{display:none}
.hero{position:relative;isolation:isolate;background:var(--ink);color:var(--paper);min-height:950px;min-height:max(900px,100svh);padding:190px var(--gutter) 255px;overflow:hidden}.hero-photo-wrap{position:absolute;top:130px;right:0;width:43%;height:58%;overflow:hidden;background:#294235;z-index:-1}.hero-photo-wrap:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,#10171355,#10171300 50%),#142b233d}.hero-image{width:100%;height:100%;object-fit:cover;filter:saturate(.45);animation:photo-enter 1.8s var(--ease) both;transform:translateY(var(--photo-y,0px)) scale(1.1)}.photo-caption{position:absolute;z-index:2;right:28px;bottom:20px;font-size:12px;letter-spacing:.14em;color:#fff}.hero-in{position:relative;z-index:2;max-width:1500px;margin:auto}.eyebrow{font-size:12px;font-weight:600;letter-spacing:.16em;display:flex;align-items:center;gap:12px}.status-dot{width:7px;height:7px;border-radius:50%;background:var(--lime);box-shadow:0 0 0 5px #d8fa7216}.hero h1{font-size:clamp(48px,6.65vw,108px);letter-spacing:-.075em;line-height:1.26;margin:36px 0 36px;font-weight:800}.hero h1>span{display:block;animation:line-enter 1s var(--ease) both}.hero h1>span:nth-child(2){animation-delay:.1s}.hero h1>span:nth-child(3){animation-delay:.2s}.hero h1 em{font-style:normal;color:var(--lime)}.hero-bottom{display:flex;align-items:flex-end;gap:50px;max-width:820px}.hero-bottom p{font-size:15px;line-height:2;max-width:400px;color:#c1c9c2;margin:0}.btn{display:inline-flex;justify-content:space-between;align-items:center;gap:24px;padding:20px 28px;border:1px solid currentColor;border-radius:50px;font-size:14px;font-weight:600;line-height:1.5;transition:background .3s,color .3s,transform .3s;flex-shrink:0}.btn:after{content:"↗";font-size:24px;font-weight:400;transition:transform .3s}.btn:hover:after{transform:translate(3px,-3px)}.hero .btn{background:var(--lime);border-color:var(--lime);color:var(--ink)}.btn span{font-size:12px;letter-spacing:.06em}.hero .btn:hover{background:white;transform:translateY(-3px)}.hero-word{position:absolute;bottom:-.16em;left:var(--gutter);font-family:"Arial Black","Helvetica Neue",sans-serif;font-size:clamp(170px,26.8vw,440px);font-weight:900;letter-spacing:-.085em;line-height:1;color:#f7f8f4;pointer-events:none}.scroll-cue{position:absolute;right:var(--gutter);bottom:34px;font-size:12px;letter-spacing:.12em;display:flex;align-items:center;gap:24px}.scroll-cue span{display:grid;place-items:center;width:42px;height:42px;border:1px solid #ffffff55;border-radius:50%;font-size:20px}
.section{padding:130px var(--gutter)}.inner{max-width:1400px;margin:auto}.section-head{margin-bottom:65px}.section-head small{display:block;font-size:12px;letter-spacing:.12em;font-weight:600;margin-bottom:18px}.section-head small:before{content:"";display:inline-block;width:6px;height:6px;background:currentColor;margin:0 10px 2px 0}.section-head h2{font-size:clamp(34px,4vw,60px);letter-spacing:-.055em;line-height:1.4;margin:0 0 24px}.section-head p{max-width:610px;color:var(--muted);margin:0;line-height:2}.grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:32px}.card{position:relative}.num{font-size:12px;letter-spacing:.08em}.card h3{font-size:24px;line-height:1.6;letter-spacing:-.03em;margin:24px 0 14px}.card p{font-size:16px;color:var(--muted);margin:0;line-height:2}.about{padding-top:145px;padding-bottom:145px}.about .inner{display:grid;grid-template-columns:.9fr 1.4fr;gap:9%}.about .section-head{margin:0}.about .section-head p{max-width:320px}.about .grid{display:block}.about .card{display:grid;grid-template-columns:45px 1fr;column-gap:16px;border-top:1px solid var(--line);padding:28px 0}.about .card:last-child{border-bottom:1px solid var(--line)}.about .num{grid-row:span 2;margin-top:8px;color:var(--muted)}.about .card h3{margin:0 0 10px}.about .card p{max-width:550px}
#service{background:var(--ink);color:white}#service .section-head{display:grid;grid-template-columns:1fr 1fr;gap:0 50px}#service .section-head small{grid-column:1/-1}#service .section-head p{color:#aebbb1;margin-top:10px}#service .grid{display:block}#service .card{display:grid;grid-template-columns:200px 1fr 1fr;gap:30px;align-items:center;border-top:1px solid #ffffff30;padding:44px 0;transition:padding .4s,background .4s}#service .card:last-child{border-bottom:1px solid #ffffff30}#service .num{color:var(--lime)}#service .card h3{font-size:clamp(21px,2.2vw,32px);margin:0}#service .card p{color:#aebbb1}#service .card:hover{padding-left:18px;background:#ffffff04}
#works .section-head{margin-bottom:80px}.work-grid{display:grid;grid-template-columns:1.1fr 1fr;gap:75px 7%}.work:nth-child(even){transform:translateY(110px)}.work-image{overflow:hidden;background:#dae0d8;aspect-ratio:1.36}.work img{width:100%;height:100%;object-fit:cover;filter:saturate(.55);transition:transform .8s var(--ease),filter .8s}.work:hover img{transform:scale(1.045);filter:saturate(1)}.work-body{padding:25px 0;border-bottom:1px solid var(--line)}.tag{font-size:12px;letter-spacing:.12em;font-weight:600;color:var(--green)}.work h3{font-size:26px;letter-spacing:-.04em;margin:12px 0 9px}.work p{font-size:16px;color:var(--muted);margin:0;line-height:1.9}#works>.inner>.note{margin-top:145px}.note{font-size:13px;color:var(--muted);line-height:1.9}
#price{border-top:1px solid var(--line)}.price-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0;border:1px solid var(--line)}.price{padding:46px 32px;min-width:0}.price+.price{border-left:1px solid var(--line)}.price h3{font-size:23px;margin:18px 0 40px;letter-spacing:-.035em}.amount{font-size:clamp(25px,2.9vw,42px);font-weight:600;letter-spacing:-.045em;white-space:nowrap;line-height:1.5}.amount small{display:block;font-size:13px;font-weight:400;letter-spacing:0;margin-top:5px}.price ul{padding:26px 0 0;margin:30px 0 0;border-top:1px solid var(--line);list-style:none;font-size:15px}.price li{padding:5px 0}.price li:before{content:"↗";margin-right:12px}.price.featured{background:var(--ink);color:white;margin:-20px -1px;z-index:1;padding-top:66px;padding-bottom:66px}.featured .tag{color:var(--lime)}.featured .amount{color:var(--lime)}.featured ul{border-color:#ffffff35}.price-grid+.note{margin-top:40px}
#message{background:#e5eadf}.message-box{display:grid;grid-template-columns:1.1fr 1fr;gap:10%;align-items:start}.message h2{font-size:clamp(32px,3.6vw,52px);line-height:1.65;letter-spacing:-.07em;margin:28px 0 0}.message-box>div:nth-child(2){padding-top:43px}.message-box p{margin:0 0 24px;line-height:2.1;color:#435047}.message-box p:last-child{margin-top:35px;color:var(--ink)}#flow{background:var(--paper);border-bottom:1px solid var(--line)}#flow .grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:0}#flow .card{padding:0 28px;border-left:1px solid var(--line)}#flow .card:first-child{padding-left:0;border-left:0}#flow .card:last-child{padding-right:0}#flow .num{font-size:52px;letter-spacing:-.075em;font-weight:400;color:#62755e;line-height:1.2}#flow h3{font-size:22px;margin-top:30px}.company .inner{display:grid;grid-template-columns:.8fr 1.3fr;gap:10%}.company table{width:100%;border-collapse:collapse}.company th,.company td{border-bottom:1px solid var(--line);padding:24px 0;text-align:left;vertical-align:top;font-size:15px}.company th{width:30%;font-weight:500;color:var(--muted);padding-right:20px}.company tr:first-child th,.company tr:first-child td{border-top:1px solid var(--line)}.company td{overflow-wrap:anywhere}.company td a:hover{text-decoration:underline}
.contact{background:var(--lime);padding-bottom:100px}.contact .inner{display:grid;grid-template-columns:.85fr 1.15fr;column-gap:8%;align-items:start}.contact .section-head{grid-column:1;margin-bottom:25px;position:sticky;top:40px}.contact .section-head small{font-size:clamp(35px,5.8vw,86px);letter-spacing:-.055em;line-height:1.1;margin-bottom:28px}.contact .section-head small:before{display:none}.contact .section-head h2{font-size:26px;letter-spacing:-.02em}.contact .section-head p{color:#364524;font-size:16px;max-width:380px}.contact-options{grid-column:1;display:grid;gap:0}.contact-option{display:flex;flex-direction:column;padding:24px 0;border-top:1px solid #10171340}.contact-option:last-child{border-bottom:1px solid #10171340}.contact-option small{font-size:13px;color:#364524}.contact-option strong{font-size:clamp(23px,2.5vw,35px);font-weight:500;letter-spacing:-.035em;line-height:1.8}.contact-option:hover strong{text-decoration:underline;text-underline-offset:6px}.contact-form{grid-column:2;grid-row:1/span 3;background:var(--ink);color:white;padding:42px;margin:0;min-width:0}.contact-form>p:first-child{font-size:14px;color:#c8d0c7;margin:0 0 30px}.field{margin-bottom:26px}.field label{display:block;font-size:14px;font-weight:500;margin-bottom:10px}.field input,.field textarea,.field select{width:100%;min-width:0;padding:14px 0;color:#fff;background:transparent;border:0;border-bottom:1px solid #849082;border-radius:0;font-size:16px;line-height:1.7}.field input::placeholder,.field textarea::placeholder{color:#929e92;opacity:1}.field select option{background:var(--ink);color:white}.field textarea{min-height:130px;resize:vertical}.contact-form input[type=checkbox]{accent-color:var(--lime);width:18px;height:18px;vertical-align:middle;margin-right:8px}.contact-form>p>label{font-size:14px}.form-btn{width:100%;background:var(--lime);color:var(--ink);border:0;border-radius:0;padding:20px 24px;justify-content:space-between;margin-top:20px}.form-btn:hover{background:white}.form-btn:disabled{opacity:.6;cursor:wait}.contact-form .note{font-size:13px;color:#b5c2b4;margin-top:22px}.contact-form .note a{color:#e2e9df}.form-status{font-size:14px;color:var(--lime);line-height:1.9}.form-status:empty{display:none}.trap{position:absolute;left:-10000px;width:1px;height:1px;overflow:hidden}footer{background:var(--ink);color:white;padding:60px var(--gutter) 30px;overflow:hidden}.footer-brand{display:flex;align-items:center;justify-content:space-between;font-family:"Arial Black","Helvetica Neue",sans-serif;font-size:clamp(100px,19vw,280px);font-weight:900;line-height:1;letter-spacing:-.08em;margin-bottom:50px}.footer-brand span{font-family:Arial,sans-serif;font-size:.65em;font-weight:400;color:var(--lime)}.footer-meta{border-top:1px solid #ffffff30;padding-top:25px;font-size:12px;color:#b9c5b8;line-height:2.3}.footer-meta a:hover{color:var(--lime)}.privacy-page{background:var(--paper)}.privacy-page h1{font-size:clamp(26px,4vw,44px);line-height:1.5}.privacy-page h2{font-size:24px;margin-top:50px}.privacy-page a{text-decoration:underline}
@keyframes line-enter{from{opacity:0;transform:translateY(45px)}to{opacity:1;transform:translateY(0)}}@keyframes photo-enter{from{opacity:0;clip-path:inset(0 0 100% 0)}to{opacity:1;clip-path:inset(0 0 0 0)}}.reveal-pending{opacity:0;translate:0 25px;transition:opacity .8s var(--ease),translate .8s var(--ease);transition-delay:var(--reveal-delay,0ms)}.reveal-pending.is-visible{opacity:1;translate:0 0}
@media(min-width:1600px){.hero{min-height:1050px}.hero-photo-wrap{max-height:670px}.hero h1{max-width:1000px}}
@media(max-width:1100px){.menu{gap:13px}.menu a{font-size:12px}.menu a:last-child{padding:8px 14px}.hero{padding-top:180px}.hero-bottom{display:block}.hero-bottom p{max-width:420px}.hero .btn{margin-top:25px}.hero-photo-wrap{width:42%;height:55%}#service .card{grid-template-columns:135px 1fr 1fr;gap:25px}.price{padding:35px 22px}.price.featured{padding-top:55px;padding-bottom:55px}.contact-form{padding:30px}.contact .inner{column-gap:5%}}
@media(max-width:800px){.navin{padding:22px var(--gutter)}.logo{font-size:25px}.logo span{font-size:10px}.mobile-contact{display:block;font-size:12px;border-bottom:1px solid #ffffff70;margin-left:auto}.menu-toggle{display:flex;align-items:center;gap:10px;background:none;border:0;color:white;padding:10px 0;font-size:12px;z-index:2}.menu-toggle i{width:20px;height:10px;border-top:1px solid currentColor;border-bottom:1px solid currentColor;transition:transform .3s}.menu-toggle[aria-expanded=true] i{transform:rotate(-45deg)}.menu{display:none;position:absolute;top:88px;left:0;right:0;background:var(--ink);padding:20px var(--gutter) 35px;box-shadow:0 25px 40px #0004}.menu.is-open{display:grid;grid-template-columns:1fr 1fr;gap:8px 30px}.menu a{font-size:14px;padding:12px 0}.menu a:last-child{padding:12px 0;border:0;border-radius:0;color:var(--lime)}.hero{min-height:950px;padding-top:160px;padding-bottom:210px}.hero-photo-wrap{top:140px;height:430px;width:44%;opacity:.65}.hero h1{font-size:clamp(45px,7.8vw,65px)}.hero-bottom p{font-size:15px;max-width:370px}.hero-word{font-size:29vw;bottom:8px;left:var(--gutter)}.scroll-cue{bottom:15px;right:var(--gutter);font-size:10px}.scroll-cue span{width:28px;height:28px}.section{padding:85px var(--gutter)}.section-head{margin-bottom:45px}.about .inner,.message-box,.company .inner{grid-template-columns:1fr;gap:40px}.about .section-head p{max-width:600px}.about .grid{margin-top:10px}.about .card{padding:25px 0}#service .section-head{display:block}#service .card{grid-template-columns:1fr;gap:14px;padding:32px 0}#service .card h3{font-size:26px}#service .card p{max-width:600px}.work-grid{gap:50px 6%}.work:nth-child(even){transform:translateY(65px)}.work h3{font-size:21px}.work p{font-size:15px}#works>.inner>.note{margin-top:100px}.price-grid{grid-template-columns:1fr;border:0;gap:22px}.price{padding:32px;border:1px solid var(--line)}.price+.price{border-left:1px solid var(--line)}.price h3{margin-bottom:20px}.amount{font-size:42px}.amount small{display:inline;margin-left:10px}.price.featured{margin:0;padding:32px}.price ul{margin-top:20px}.message-box>div:nth-child(2){padding-top:0}.message h2{font-size:40px}#flow .grid{grid-template-columns:1fr 1fr;gap:40px 0}#flow .card:nth-child(3){padding-left:0;border-left:0}.company .section-head{margin:0}.contact .inner{display:block}.contact .section-head{position:static;margin-bottom:35px}.contact .section-head small{font-size:72px}.contact-options{margin-bottom:45px;grid-template-columns:1fr 1fr;gap:25px}.contact-option:last-child{border-bottom:0}.contact-option strong{font-size:23px}.contact-form{padding:35px}.footer-brand{margin-bottom:35px}}
@media(max-width:480px){.navin{gap:18px}.logo span{font-size:9px}.hero{padding-top:150px;min-height:880px;padding-bottom:175px}.hero-photo-wrap{top:128px;right:-5%;width:59%;height:360px;opacity:.5}.photo-caption{display:none}.hero h1{font-size:clamp(38px,10.5vw,50px);line-height:1.38;letter-spacing:-.08em;margin-top:30px;margin-bottom:35px}.hero .eyebrow{font-size:10px;letter-spacing:.11em}.hero-bottom p{font-size:14px;max-width:300px}.hero .btn{font-size:13px;padding:18px 24px;margin-top:30px}.hero-word{font-size:29vw;bottom:30px}.scroll-cue{bottom:14px;left:var(--gutter);right:auto;font-size:9px;gap:15px}.scroll-cue span{border:0;width:auto;height:auto}.section{padding-top:72px;padding-bottom:72px}.section-head h2{font-size:34px}.about .card{grid-template-columns:30px 1fr;gap:12px}.card h3{font-size:23px}.work-grid{grid-template-columns:1fr;gap:45px}.work:nth-child(even){transform:none}.work-image{aspect-ratio:1.25}.work h3{font-size:24px}.work p{font-size:16px}#works .section-head{margin-bottom:45px}#works>.inner>.note{margin-top:40px}.price{padding:28px}.price.featured{padding:28px}.amount{font-size:36px}.message h2{font-size:32px}.message-box{gap:30px}#flow .grid{grid-template-columns:1fr;gap:0}#flow .card,#flow .card:first-child,#flow .card:last-child{border-left:0;border-top:1px solid var(--line);padding:25px 0;display:grid;grid-template-columns:60px 1fr;gap:10px 15px}#flow .num{grid-row:span 2;font-size:37px}#flow .card h3{margin:0;font-size:23px}#flow .card p{grid-column:2}.company th,.company td{font-size:14px;padding:20px 0}.company th{width:32%;padding-right:10px}.contact .section-head small{font-size:63px}.contact-options{grid-template-columns:1fr;gap:0}.contact-option strong{font-size:29px}.contact-form{padding:27px 22px}.contact{padding-left:16px;padding-right:16px}.contact .section-head,.contact-options{margin-left:6px;margin-right:6px}.form-btn{font-size:13px;padding:20px 17px}.footer-brand{font-size:25vw}.footer-meta{font-size:11px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation:none!important;transition:none!important}.reveal-pending{opacity:1;translate:none}.hero-image{transform:none}}
