@import url('https://fonts.googleapis.com/css2?family=Barlow+Condensed:wght@600;700;800&family=Noto+Sans+JP:wght@400;500;700&display=swap');
:root{--blue:#0069b3;--ink:#171717;--paper:#f6f6f3}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:100px}body{margin:0;background:var(--paper);color:var(--ink);font-family:'Noto Sans JP',sans-serif;font-size:16px}a{color:inherit;text-decoration:none}button{font:inherit}::selection{background:var(--blue);color:#fff}header{height:102px;padding:0 4vw;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid #bfbfbd;background:var(--paper);position:relative;z-index:20}.brand{font-family:Arial,sans-serif;font-size:32px;font-weight:900;letter-spacing:-2px}.brand span{display:block;font-size:10px;letter-spacing:1.1px;margin-top:3px}.desktop{display:flex;gap:30px;font-size:14px}.desktop a:hover{color:var(--blue)}.menu-toggle{border:0;background:none;display:flex;align-items:center;gap:20px;font-size:14px;cursor:pointer;padding:16px 0 16px 24px}.menu-toggle span{font-size:32px;font-weight:300;transition:transform .6s}.menu-toggle[aria-expanded=true] span{transform:rotate(45deg)}.progress{position:fixed;left:0;top:0;height:3px;background:var(--blue);width:0;z-index:50}.menu{position:fixed;inset:102px 0 0;background:var(--blue);color:white;z-index:19;padding:3vh 10vw;clip-path:inset(0 0 100% 0);transition:clip-path .7s cubic-bezier(.76,0,.24,1);overflow:auto}.menu.open{clip-path:inset(0)}.menu nav a{display:flex;gap:40px;border-bottom:1px solid #ffffff50;padding:12px 0;align-items:center}.menu nav a>span:not(.navnum){font:700 clamp(30px,5vw,64px)/1.1 'Barlow Condensed',sans-serif}.menu small{font:14px 'Noto Sans JP',sans-serif;margin-left:32px}.navnum{font-size:14px}.menu-note{display:block;margin-top:30px;font-size:14px}.hero{padding:26px 4vw 32px;min-height:calc(100svh - 102px);display:flex;flex-direction:column;overflow:hidden}.hero-meta{display:flex;justify-content:space-between;font-size:12px;letter-spacing:1px}.hero-type{position:relative;flex:1;display:flex;align-items:center;min-height:470px}.hero h1{margin:26px 0 30px;position:relative;z-index:2;font:800 clamp(88px,11.6vw,184px)/.91 'Barlow Condensed',Impact,sans-serif;letter-spacing:-.012em;pointer-events:none}.hero h1>span{display:block;transform-origin:left center;will-change:transform}.hero h1 .outlined{color:transparent;-webkit-text-stroke:1.5px var(--ink)}.period{color:var(--blue)}#field{position:absolute;right:-3vw;top:0;width:51vw;height:100%;z-index:1}.hero-bottom{display:flex;align-items:flex-end;justify-content:space-between;border-top:1px solid #bfbfbd;padding-top:24px;position:relative;z-index:2}.hero-bottom p{margin:0;font-size:16px;line-height:1.9;font-weight:500}.hero-bottom>a{font-size:12px;display:flex;align-items:center;gap:18px}.scroll-mark{font-size:22px;animation:bob 2s infinite}@keyframes bob{50%{transform:translateY(7px)}}.section-tag{font-size:12px;letter-spacing:.12em}.intro{padding:140px 7vw;display:grid;grid-template-columns:1fr 2fr;gap:40px;border-top:1px solid #bfbfbd}.intro h2{font-size:clamp(24px,3vw,43px);line-height:1.7;margin:0 0 36px;letter-spacing:-.05em}.intro p{max-width:670px;line-height:2.2;margin-bottom:36px}.text-link{display:inline-block;font-size:14px;border-bottom:1px solid;padding-bottom:9px;transition:color .2s}.text-link:hover{color:var(--blue)}.selected{padding:90px 4vw 130px;background:#e9e9e6}.section-head{display:flex;justify-content:space-between;align-items:flex-end;margin-bottom:55px;gap:20px}.section-head h2{font:600 clamp(56px,7vw,100px)/1 'Barlow Condensed',sans-serif;margin:16px 0 0;letter-spacing:-.02em}.section-head h2 span{display:block;font:14px 'Noto Sans JP',sans-serif;margin-top:14px}.work-grid{display:grid;grid-template-columns:1fr 1fr;gap:70px 36px}.work-item{min-width:0;perspective:1000px;transition:transform .5s}.work-item:nth-child(even){margin-top:100px}.work-item>a{display:block;overflow:hidden;background:#d9d9d5;transition:transform .35s;transform:rotateX(var(--rx,0deg)) rotateY(var(--ry,0deg))}.work-item img{display:block;width:100%;height:auto;aspect-ratio:4/3;object-fit:cover;transition:transform .7s,filter .7s;filter:saturate(.75)}.work-item a:hover img{transform:scale(1.055);filter:saturate(1)}.work-item p{font-size:16px;border-bottom:1px solid #aaa;padding:18px 0;margin:0;line-height:1.7}.work-item p small{font-size:14px}.marquee{background:var(--blue);color:#fff;overflow:hidden;padding:24px 0}.marquee div{white-space:nowrap;font:700 94px/1 'Barlow Condensed',sans-serif;width:max-content;animation:marquee 25s linear infinite}@keyframes marquee{to{transform:translateX(-50%)}}.services{padding:120px 7vw}.service-list{margin:60px 0 40px}.service-list>a{display:flex;align-items:center;padding:35px 0;border-top:1px solid #aaa;gap:40px;transition:padding .4s,color .4s}.service-list>a:last-child{border-bottom:1px solid #aaa}.service-list>a:hover{padding-left:22px;color:var(--blue)}.service-number{font-size:14px}.service-list h3{font-size:clamp(20px,2.5vw,34px);margin:0;font-weight:500}.service-list small{display:block;font:18px 'Barlow Condensed',sans-serif;margin-top:8px}.plus{margin-left:auto;font-size:40px;font-weight:400}.page-title{padding:80px 7vw 70px;border-bottom:1px solid #aaa;overflow:hidden}.page-title h1{font:700 clamp(65px,10vw,150px)/1.05 'Barlow Condensed',sans-serif;letter-spacing:-.025em;margin:26px 0 0}.page-title h1 span{display:block;font:18px 'Noto Sans JP',sans-serif;letter-spacing:0;margin-top:25px}.content{padding:70px 7vw 120px;line-height:2.1}.content h1,.content h2{font-size:clamp(24px,3vw,38px);line-height:1.6;margin:50px 0 25px}.content h3{font-size:24px;margin:40px 0 20px}.content h4,.content h5{font-size:20px;margin:30px 0}.content p{margin:22px 0}.content dt{font-weight:700;margin-top:30px}.content dd{margin:10px 0 35px}.content ul,.content ol{padding-left:24px}.content li{margin:6px 0}.content a{border-bottom:1px solid}.content .work-item a{border-bottom:0}.content .row{display:block}.content .all-works .work-item p{margin:0}.table-scroll{overflow-x:auto;margin:25px 0 65px}table{width:100%;border-collapse:collapse;text-align:left;min-width:580px;font-size:14px;line-height:1.9}td,th{padding:22px 18px;border-bottom:1px solid #bdbdb9;vertical-align:top}th{background:var(--ink);color:#fff;font-weight:500}td:first-child{font-weight:500}td p{margin:0!important}.outline table{font-size:16px}.outline table th{width:20%}.contact-body{padding:70px 7vw 130px}.contact-body h2{font-size:32px;margin:0 0 40px}.contact-button{display:inline-block;padding:26px 40px;background:var(--blue);color:white;transition:background .2s}.contact-button:hover{background:var(--ink)}.phone{display:block;font:600 clamp(40px,6vw,80px) 'Barlow Condensed',sans-serif;margin:40px 0 20px}.contact-body p{line-height:2}footer{background:var(--ink);color:var(--paper);padding:65px 4vw 30px}.footer-top{border-bottom:1px solid #555;padding-bottom:70px}.footer-top p{font-size:16px}.contact-title{display:block;font:700 clamp(80px,15vw,230px)/1 'Barlow Condensed',sans-serif;letter-spacing:-.02em;transition:color .3s}.contact-title:hover{color:#0069b3}.contact-title span{display:block;font:14px 'Noto Sans JP',sans-serif;letter-spacing:0;margin:18px 0}.footer-bottom{display:flex;align-items:center;justify-content:space-between;gap:25px;padding-top:35px}.footer-bottom p,.footer-bottom>a:last-child{font-size:12px}.reveal{opacity:0;transform:translateY(45px);transition:opacity .8s,transform 1s cubic-bezier(.2,.7,.2,1)}.reveal.visible{opacity:1;transform:translateY(0)}:focus-visible{outline:3px solid var(--blue);outline-offset:6px}.menu :focus-visible{outline-color:#fff}
@media(min-width:1700px){main{max-width:1900px;margin:auto}}
@media(max-width:760px){header{height:80px;padding:0 6vw}.brand{font-size:26px}.desktop{display:none}.menu{top:80px;padding:30px 6vw}.menu nav a{padding:20px 0;gap:20px}.menu small{display:block;margin:8px 0 0}.hero{padding:24px 6vw 26px;min-height:calc(90svh - 80px)}.hero-meta{font-size:10px;gap:20px}.hero-type{min-height:350px}.hero h1{font-size:clamp(64px,15vw,114px);line-height:1;letter-spacing:-.025em}#field{width:85vw;right:-25vw;opacity:.5}.hero-bottom{gap:24px;align-items:start;flex-direction:column}.hero-bottom p{font-size:14px}.intro{padding:80px 6vw;grid-template-columns:1fr;gap:30px}.intro h2{font-size:25px}.intro p{font-size:16px}.selected{padding:70px 6vw}.section-head{align-items:start;flex-direction:column;gap:28px}.work-grid{grid-template-columns:1fr;gap:38px}.work-item:nth-child(even){margin-top:0}.marquee div{font-size:68px}.services{padding:80px 6vw}.service-list>a{gap:20px;padding:28px 0}.service-list h3{font-size:19px}.page-title{padding:65px 6vw 50px}.page-title h1{font-size:clamp(56px,13vw,90px);overflow-wrap:anywhere}.content{padding:35px 6vw 80px}.content h1{font-size:24px}.table-scroll{margin-bottom:45px}td,th{padding:16px 12px}.contact-body{padding:50px 6vw 80px}.contact-body h2{font-size:24px}.contact-button{padding:22px 26px;font-size:14px}.footer-bottom{flex-direction:column;align-items:start;gap:18px}.footer-top{padding-bottom:35px}footer{padding:45px 6vw 25px}.contact-title{font-size:20vw}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation:none!important;transition:none!important}.reveal{opacity:1;transform:none}.work-item>a{transform:none!important}}

/* Revised art direction: pure white, black and original brand assets. */
:root{--paper:#fff;--ink:#080808}.brand{letter-spacing:0}.brand img{width:210px;height:auto;display:block;filter:none}.brand span{font-size:10px;letter-spacing:1.25px;margin-top:8px}.footer-brand{background:transparent;padding:0;display:inline-block}.hero{background:#080808;color:white;min-height:calc(100svh - 102px);padding-top:24px;position:relative}.hero-meta{color:#fff}.hero-type{min-height:520px;isolation:isolate}.hero h1{font-size:clamp(68px,9.6vw,160px);line-height:1.03;width:100%;margin:50px 0;z-index:3;letter-spacing:-.01em}.hero h1>span:nth-child(2){margin-left:28%;-webkit-text-stroke:1px #fff;position:relative}.hero h1>span:nth-child(3){font-size:.88em;margin-left:8%}.hero h1>span:first-child{position:relative}.hero-bottom{border-color:#444}.hero-bottom p{font-size:16px}.art-label{position:absolute;right:0;top:30px;font-size:12px;letter-spacing:.35em;writing-mode:vertical-rl}.hero #field{width:68vw;height:100%;right:0;opacity:.9;z-index:1}.intro{background:white;padding-top:150px;padding-bottom:150px}.intro h2{font-weight:500}.work-portal{background:#080808;color:#fff;padding:70px 4vw 80px;overflow:hidden}.work-portal>a{position:relative;display:block;margin-top:30px;padding-bottom:20px;border-bottom:1px solid #555}.portal-word{font:700 clamp(85px,18vw,280px)/1 'Barlow Condensed',sans-serif;letter-spacing:-.025em;display:block;transition:letter-spacing .6s,color .6s;transform-origin:left}.work-portal>a:hover .portal-word{letter-spacing:.01em;color:var(--blue)}.portal-caption{font-size:16px;display:inline-block;margin:24px 0 0}.portal-index{font:500 24px 'Barlow Condensed',sans-serif;position:absolute;right:0;bottom:20px}.marquee{background:white;color:#080808;padding:38px 0;border-bottom:1px solid #080808}.marquee div{font-size:110px;color:transparent;-webkit-text-stroke:1px #080808}.services{background:white}.content,.page-title,.selected{background:white}.work-item>a{background:white}.work-item img{filter:none}.work-item a:hover img{filter:none}.menu{background:#080808}.menu a:hover{color:#0069b3}.contact-title{color:white}.footer-bottom .brand{flex-shrink:0}.progress{background:var(--blue)}
@media(max-width:760px){.brand img{width:170px}.hero{min-height:calc(90svh - 80px)}.hero-type{min-height:360px}.hero h1{font-size:clamp(55px,13.6vw,103px);line-height:1.1;margin:65px 0}.hero h1>span:nth-child(2){margin-left:23%}.hero h1>span:nth-child(3){margin-left:0;font-size:.87em}.hero #field{width:110vw;right:-28vw;opacity:.7}.hero-bottom p{font-size:14px}.art-label{top:10px}.intro{padding-top:80px;padding-bottom:80px}.work-portal{padding:50px 6vw}.portal-word{font-size:21vw}.marquee div{font-size:75px}.footer-brand{padding:0}}
@media(prefers-reduced-motion:reduce){.portal-word{transition:none}}


/* Contact: original Mailform Pro workflow with the site's visual language. */
.contact-layout{display:grid;grid-template-columns:1fr 1.55fr;gap:9vw;padding:90px 7vw 130px;align-items:start}.contact-aside{position:sticky;top:50px}.contact-aside h2{font-size:clamp(28px,3vw,44px);font-weight:500;line-height:1.65;margin:25px 0 50px}.contact-tel{font:600 38px 'Barlow Condensed',sans-serif}.contact-aside p{font-size:14px;line-height:2.1;margin-top:25px}.contact-form-area{min-width:0}form#mailformpro{padding:0;margin:0;font-family:'Noto Sans JP',sans-serif;font-size:16px}form#mailformpro dl.mailform{padding:0;margin:0;display:block}form#mailformpro dl.mailform dt.mfp{float:none;width:auto;text-align:left;padding:28px 0 12px;margin:0;clear:both;background:none;border:0;font-weight:500;line-height:1.7}form#mailformpro dl.mailform dt.mfp:first-of-type{padding-top:0}form#mailformpro dl.mailform dd.mfp{padding:0 0 25px;margin:0;clear:both;float:none;width:100%;border:0;border-bottom:1px solid #ddd;background:none}form#mailformpro .mfp_rows{display:flex;gap:14px;padding:0;width:100%}form#mailformpro .mfp_col5{float:none;width:calc(50% - 7px);margin:0;padding:0}form#mailformpro .mfp_col10{float:none;width:100%;margin:0;padding:0}form#mailformpro input:not([type=hidden]):not([type=checkbox]),form#mailformpro textarea{width:100%!important;max-width:100%;height:auto;min-height:54px;padding:14px 16px!important;background:#fff!important;border:1px solid #aaa!important;border-radius:0!important;box-shadow:none!important;color:#080808;font:16px/1.7 'Noto Sans JP',sans-serif!important;box-sizing:border-box}form#mailformpro textarea{min-height:180px;resize:vertical}form#mailformpro input:focus,form#mailformpro textarea:focus{outline:2px solid var(--blue)!important;outline-offset:2px}form#mailformpro span.must{display:inline-block;float:none;background:#080808;color:white;font-size:12px;font-weight:400;border-radius:0;padding:3px 7px;margin-right:12px}form#mailformpro label{font-size:14px;line-height:1.9;cursor:pointer}form#mailformpro input[type=checkbox]{accent-color:var(--blue);width:18px;height:18px;vertical-align:middle;margin-right:8px}form#mailformpro .mfp_buttons{padding:35px 0 0;margin:0;text-align:left}form#mailformpro button,#mfp_overlay button,#mfp_phase_confirm button{border:1px solid #080808!important;border-radius:0!important;background:#080808!important;color:#fff!important;box-shadow:none!important;font:16px 'Noto Sans JP',sans-serif!important;padding:20px 30px!important;cursor:pointer;min-width:180px}form#mailformpro button:hover,#mfp_overlay button:hover,#mfp_phase_confirm button:hover{background:var(--blue)!important;border-color:var(--blue)!important}form#mailformpro button:disabled{opacity:.4;cursor:default}#mfp_overlay_inner,#mfp_phase_confirm_inner{border-radius:0!important;background:#fff!important;color:#080808;font-family:'Noto Sans JP',sans-serif!important;box-shadow:none!important;max-width:calc(100vw - 32px);box-sizing:border-box}#mfp_overlay_inner h4,#mfp_phase_confirm_inner h4{font-size:24px;font-weight:500;line-height:1.6}#mfp_confirm_table{min-width:0;width:100%;font-size:16px;border-collapse:collapse}#mfp_confirm_table th,#mfp_confirm_table td{background:white;color:#080808;border-bottom:1px solid #ccc;padding:18px 12px;overflow-wrap:anywhere}#mfp_confirm_table th{width:35%}#mfp_button_cancel{background:white!important;color:#080808!important}#form-unavailable{font-size:14px;line-height:1.8}#form-unavailable a{text-decoration:underline}.mfp_err{font-size:14px!important}#mfp_overlay .mfp_buttons{display:flex;gap:12px;flex-wrap:wrap;justify-content:center}
@media(max-width:760px){.contact-layout{grid-template-columns:1fr;gap:50px;padding:55px 6vw 80px}.contact-aside{position:static}.contact-aside h2{font-size:28px;margin-bottom:25px}.contact-tel{font-size:32px}form#mailformpro button{width:100%}#mfp_confirm_table{font-size:14px}#mfp_confirm_table th,#mfp_confirm_table td{padding:12px 8px}}

/* Page-specific kinetic geometry. */
.page-title{position:relative;isolation:isolate;min-height:350px}.page-title>.section-tag,.page-title>h1{position:relative;z-index:2}.page-title h1{max-width:80%;font-size:clamp(65px,9vw,135px)}.page-art{position:absolute;right:1vw;top:0;width:35%;height:100%;pointer-events:none;z-index:1;opacity:.48;mask-image:linear-gradient(to right,transparent,#000 30%);-webkit-mask-image:linear-gradient(to right,transparent,#000 30%)}
@media(max-width:760px){.page-title{padding-bottom:155px;min-height:0}.page-title h1{max-width:100%;font-size:clamp(56px,13vw,90px)}.page-art{top:auto;bottom:0;right:2vw;width:60%;height:145px;opacity:.65;mask-image:none;-webkit-mask-image:none}}


.work-item img.site-screenshot{object-fit:contain;object-position:center top;background:#fff}
/* Compact portfolio grid. */
.all-works{grid-template-columns:repeat(4,minmax(0,1fr));gap:36px 24px}
.all-works .work-item:nth-child(even){margin-top:0}
.all-works .work-item p{font-size:14px;padding:14px 0;line-height:1.7;overflow-wrap:anywhere}
.all-works .work-item p small{font-size:12px}
@media(max-width:760px){.all-works{grid-template-columns:repeat(2,minmax(0,1fr));gap:28px 14px}.all-works .work-item p{font-size:14px;padding:10px 0}.all-works .work-item p small{font-size:12px}.content.products{padding-left:5vw;padding-right:5vw}}

/* Expanded opening geometry, behind readable typography. */
.hero #field{width:82vw;right:-6vw;opacity:1;mask-image:linear-gradient(to right,transparent,#000 26%);-webkit-mask-image:linear-gradient(to right,transparent,#000 26%)}
@media(max-width:760px){.hero #field{width:120vw;right:-28vw;opacity:.85;mask-image:linear-gradient(to right,transparent,#000 25%);-webkit-mask-image:linear-gradient(to right,transparent,#000 25%)}}
