*{margin:0;padding:0;box-sizing:border-box}html{overflow-x:clip}body{background:var(--white);color:var(--ink);font-family:var(--sans);line-height:2;-webkit-font-smoothing:antialiased;letter-spacing:.04em}img{max-width:100%;display:block}a{color:inherit;text-decoration:none}.wrap{max-width:1280px;margin:0 auto;padding:0 clamp(24px,5vw,72px)}#petals{position:fixed;inset:0;pointer-events:none;z-index:0}main{position:relative;z-index:2}.rv{opacity:0;transform:translateY(44px);transition:opacity 1.15s var(--ease),transform 1.15s var(--ease)}.rv.on{opacity:1;transform:none}.rv-d1{transition-delay:.12s}.rv-d2{transition-delay:.24s}@media (prefers-reduced-motion:reduce){.rv{opacity:1;transform:none;transition:none}}header{position:fixed;top:0;left:0;right:0;z-index:200;background:#ffffffd9;backdrop-filter:blur(14px);border-bottom:1px solid transparent;transition:transform .5s var(--ease),border-color .4s}header.scrolled{border-bottom-color:var(--line)}header.hidden{transform:translateY(-102%)}.nav{max-width:1280px;margin:0 auto;padding:18px clamp(24px,5vw,72px);display:flex;align-items:center;justify-content:space-between}.nav .logo img{height:30px;width:auto}.nav ul{display:flex;gap:32px;list-style:none;align-items:center}.nav ul a{font-size:12.5px;letter-spacing:.14em;color:var(--ink-60);transition:color .3s}.nav ul a:hover{color:var(--blue)}.nav .cta{font-size:12.5px;color:#fff;background:var(--blue);border-radius:999px;padding:10px 24px;transition:background .3s}.nav .cta:hover{background:var(--blue-deep);color:#fff}.nav-toggle{display:none;width:42px;height:42px;border:1px solid var(--line);border-radius:10px;background:#fff;cursor:pointer;align-items:center;justify-content:center;z-index:270}.nav-toggle span{position:relative;display:block;width:18px;height:1.5px;background:var(--ink);transition:background .2s}.nav-toggle span:before,.nav-toggle span:after{content:"";position:absolute;left:0;width:18px;height:1.5px;background:var(--ink);transition:transform .3s var(--ease)}.nav-toggle span:before{top:-6px}.nav-toggle span:after{top:6px}header.menu-open .nav-toggle span{background:transparent}header.menu-open .nav-toggle span:before{transform:translateY(6px) rotate(45deg)}header.menu-open .nav-toggle span:after{transform:translateY(-6px) rotate(-45deg)}.nav-scrim{position:fixed;inset:0;background:#141c3c47;opacity:0;visibility:hidden;transition:opacity .3s;z-index:255}header.menu-open .nav-scrim{opacity:1;visibility:visible}@media (max-width:860px){.nav-toggle{display:flex}.nav ul{position:fixed;top:0;right:0;height:100dvh;width:min(82vw,330px);flex-direction:column;align-items:stretch;gap:0;background:#fff;box-shadow:-20px 0 60px #232e6329;padding:92px 30px 40px;transform:translate(100%);transition:transform .42s var(--ease);overflow-y:auto;z-index:260}header.menu-open .nav ul{transform:none}.nav ul li:not(:last-child){display:block}.nav ul li{border-bottom:1px solid var(--line)}.nav ul a{display:block;padding:16px 2px;font-size:14px;letter-spacing:.1em}.nav .cta{text-align:center;margin-top:22px;padding:15px;font-size:13px}}.fv{height:240svh;position:relative}.fv .stage{position:sticky;top:0;height:100svh;display:flex;flex-direction:column;align-items:center;justify-content:center;overflow:hidden}.fv .bloom{position:absolute;border-radius:50%;opacity:0;transition:opacity 2s var(--ease) .8s}.fv .bloom.b1{width:56vw;height:56vw;max-width:760px;max-height:760px;top:-18%;right:-12%;background:radial-gradient(circle,#2547C81F,transparent 68%)}.fv .bloom.b2{width:44vw;height:44vw;max-width:600px;max-height:600px;bottom:-14%;left:-10%;background:radial-gradient(circle,#F6D9E280,transparent 68%)}.fv .bloom.on{opacity:1}.fv .haru{position:absolute;left:50%;top:50%;transform:translate(-50%,-56%);width:min(96vw,1500px);aspect-ratio:1500/560;pointer-events:none;user-select:none}.fv .haru svg{position:absolute;inset:0;width:100%;height:100%;overflow:visible;clip-path:inset(0 100% 0 0);animation:haruWipe 1.7s cubic-bezier(.55,.06,.28,1) forwards}.fv .haru svg:nth-child(1){animation-delay:.2s}.fv .haru svg:nth-child(2){animation-delay:.6s}.fv .haru svg:nth-child(3){animation-delay:1s}@keyframes haruWipe{to{clip-path:inset(0 0 0 0)}}@media (prefers-reduced-motion:reduce){.fv .haru svg{clip-path:none;animation:none}}.fv .haru text{font-family:var(--en);font-style:italic;font-weight:600;font-size:470px;fill:none;stroke:#c9d2f2;stroke-width:1.1}#loader{position:fixed;inset:0;z-index:150;background:var(--blue);transition:transform 1.15s cubic-bezier(.7,0,.2,1),visibility 0s 1.2s;will-change:transform}body.loaded #loader{transform:translateY(-101%);visibility:hidden}body.loading .fv .haru text{stroke:#fff}body.loading .fv .haru text.l2{stroke:#ffffffbf}body.loading .fv .haru text.l3{stroke:#ffffff80}body:not(.settled) main{z-index:160}.fv .haru{z-index:160}.fv .haru text{transition:stroke 1.2s var(--ease)}body.loading{overflow:hidden}body.skip-loader #loader{display:none}body.loading header,body.loading .fv .content,body.loading .fv .hint{opacity:0}header,.fv .content,.fv .hint{transition:opacity 1s var(--ease) .5s}#loader .load-label{position:absolute;bottom:44px;left:50%;transform:translate(-50%);font-family:var(--en);font-style:italic;font-size:12px;letter-spacing:.4em;color:#ffffffb3}body.loading .fv .down{opacity:0!important;pointer-events:none}.fv .content{position:relative;z-index:5}body.settled .fv .haru{z-index:1}.mesh-zone{position:relative}.mesh-zone .mesh-grid{position:absolute;inset:0;overflow:hidden;z-index:0}.mesh-zone .mesh-grid i{position:absolute;background:#e9ecf6;display:block}.mesh-zone .mesh-grid i.v{width:1px;transform:scaleY(0);transform-origin:top;transition:transform 2s var(--ease)}.mesh-zone .mesh-grid i.h{height:1px;transform:scaleX(0);transform-origin:center;transition:transform 1s var(--ease)}.mesh-zone .mesh-grid i.on{transform:none}.mesh-zone .mesh-grid .cell{position:absolute;background:transparent;transition:background 1.4s var(--ease)}.mesh-zone .mesh-grid .cell.lit{background:#2547c81c;transition:background .15s}.mesh-zone>section{position:relative;z-index:1;background:transparent!important;pointer-events:none}.mesh-zone>section :is(a,button,.shot,.dots,.preview,.rows,img,h2,h3,p,.facts,.more){pointer-events:auto}@media (prefers-reduced-motion:reduce){.mesh-zone .mesh-grid i{transform:none;transition:none}}#replay{position:fixed;right:22px;bottom:22px;z-index:400;width:52px;height:52px;border-radius:50%;border:1px solid var(--line);background:#fff;color:var(--blue);font-size:20px;cursor:pointer;box-shadow:0 8px 26px #1a245624}#replay:hover{background:var(--blue);color:#fff}.fv .haru text.l1{stroke:#bfc9ee;stroke-width:1.3}.fv .haru text.l2{opacity:.55;stroke-width:1.5}.fv .haru text.l3{opacity:.32;stroke-width:1.8}.fv .content{position:relative;z-index:3;text-align:center;padding:0 24px}.fv .en{font-family:var(--en);font-style:italic;font-size:13px;letter-spacing:.34em;color:var(--blue);margin-bottom:40px;opacity:0;transition:opacity 1.2s var(--ease) 1.8s}.fv .en.on{opacity:1}.fv h1{font-family:var(--serif);font-weight:500;font-size:clamp(28px,4.9vw,60px);letter-spacing:.1em;line-height:1.8}.fv h1 .ch{opacity:0;display:inline-block;transform:translateY(.2em);will-change:opacity,transform}.fv h1 .ch.blue{color:var(--blue)}.fv .brush{width:0;height:2px;background:var(--blue);margin:34px auto 0;will-change:width}.fv .after{margin-top:30px;opacity:0;will-change:opacity,transform}.fv .after .sub{font-size:clamp(12px,1.4vw,15px);letter-spacing:.26em;color:var(--ink-60)}.fv .after .actions{margin-top:38px;display:flex;gap:14px;justify-content:center;flex-wrap:wrap}.btn{display:inline-flex;align-items:center;font-size:13.5px;letter-spacing:.12em;padding:16px 40px;border-radius:999px;transition:all .35s var(--ease);position:relative;overflow:hidden}.btn.primary{background:var(--blue);color:#fff}.btn.primary:before{content:"";position:absolute;inset:0;background:var(--blue-deep);transform:translate(-101%);transition:transform .45s var(--ease)}.btn.primary:hover:before{transform:none}.btn.primary span{position:relative}.btn.ghost{border:1px solid var(--ink);color:var(--ink)}.btn.ghost:hover{background:var(--ink);color:#fff}.fv .down{position:absolute;bottom:32px;left:50%;transform:translate(-50%);z-index:3;width:54px;height:54px;border-radius:50%;border:1px solid var(--line);background:#fff;cursor:pointer;display:flex;align-items:center;justify-content:center;opacity:0;transition:opacity 1s var(--ease) 2.4s,background .3s,border-color .3s;box-shadow:0 8px 26px #1a24561a}.fv .down.on{opacity:1}.fv .down svg{width:18px;height:18px;stroke:var(--blue);stroke-width:1.6;fill:none;animation:downNudge 2.2s var(--ease) infinite}.fv .down:hover{background:var(--blue);border-color:var(--blue)}.fv .down:hover svg{stroke:#fff}@keyframes downNudge{0%,to{transform:translateY(-2px)}50%{transform:translateY(3px)}}@media (prefers-reduced-motion:reduce){.fv .down svg{animation:none}}.clients{padding:56px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);overflow:hidden;background:var(--white)}.marquee{display:flex;width:max-content;animation:scroll 48s linear infinite}.marquee:hover{animation-play-state:paused}.marquee .cell img{width:auto;opacity:.9;transition:opacity .3s}.marquee .cell:hover img{opacity:1}.marquee .lg-jtb{height:56px}.marquee .lg-nas{height:30px}.marquee .lg-cosmo,.marquee .lg-upbond{height:38px}.marquee .lg-spider{height:34px}.marquee .lg-geo{height:40px}.marquee .lg-ibuki{height:42px}.marquee .lg-genpin,.marquee .lg-mlj{height:56px}@keyframes scroll{to{transform:translate(-50%)}}@media (prefers-reduced-motion:reduce){.marquee{animation:none;flex-wrap:wrap;width:100%;justify-content:center}}.marquee .cell{flex:none;padding:0 26px;font-size:12px;letter-spacing:.14em;color:#9aa1c4;display:flex;align-items:center;gap:26px}.marquee .cell:after{content:"·";color:var(--pink-deep);font-size:18px}.sec{padding:130px 0}.sec-head{position:relative}.sec-head .en-giant{font-family:var(--en);font-style:italic;font-size:clamp(56px,9vw,130px);line-height:.95;display:block}.sec-head .en-giant .accent{color:var(--blue)}.sec-head .petal-float{position:absolute;top:-8px;font-size:20px}.sec-head h2{font-family:var(--serif);font-size:clamp(19px,2.5vw,27px);font-weight:500;letter-spacing:.18em;margin-top:20px;display:flex;align-items:center;gap:20px}.sec-head h2:after{content:"";width:64px;height:1px;background:var(--ink)}.more{display:inline-flex;align-items:center;gap:14px;font-size:12.5px;letter-spacing:.18em;margin-top:56px;transition:color .3s}.more svg{width:38px;height:38px;border:1px solid var(--ink);border-radius:50%;padding:11px;stroke:var(--ink);stroke-width:1.5;fill:none;transition:all .4s var(--ease)}.more:hover{color:var(--blue)}.more:hover svg{background:var(--blue);border-color:var(--blue);stroke:#fff;transform:translate(6px)}.services{background:var(--white);position:relative;overflow:hidden}.services .rows{margin-top:72px;border-top:1px solid var(--line)}.services .row{display:grid;grid-template-columns:130px 88px 1fr 1.5fr auto;gap:clamp(16px,3vw,44px);align-items:center;padding:48px 12px;border-bottom:1px solid var(--line);position:relative;transition:background .4s,padding .4s var(--ease)}.services .row:hover{background:#f8f9fe;padding-left:28px}.services .row:before{content:"";position:absolute;left:0;bottom:-1px;height:1px;width:0;background:var(--blue);transition:width .8s var(--ease)}.services .row:hover:before{width:100%}.services .num{font-family:var(--en);font-style:italic;font-weight:500;font-size:clamp(48px,5.5vw,84px);line-height:1;color:transparent;-webkit-text-stroke:1.2px #9DB0EC;letter-spacing:.02em}.services .icon{width:56px;height:56px;border:1px solid var(--line);border-radius:50%;display:flex;align-items:center;justify-content:center;transition:all .4s var(--ease);background:#fff}.services .icon svg{width:26px;height:26px;stroke:var(--ink);stroke-width:1.1;fill:none;transition:stroke .3s}.services .row:hover .icon{border-color:var(--blue);transform:scale(1.08);box-shadow:0 0 0 5px #2547c814}.services .row:hover .icon svg{stroke:var(--blue)}.services h3{font-family:var(--serif);font-size:clamp(21px,2.8vw,30px);font-weight:500;letter-spacing:.14em;transition:color .3s}.services .row:hover h3{color:var(--blue)}.services h3 small{display:block;font-family:var(--sans);font-size:11px;color:var(--blue);letter-spacing:.2em;margin-top:6px;font-weight:400}.services p{font-size:12.5px;color:var(--ink-60);line-height:2.2}.services .go{display:inline-flex;align-items:center;gap:12px;font-size:11.5px;letter-spacing:.16em;color:var(--ink-60);white-space:nowrap;transition:color .3s}.services .row:hover .go{color:var(--blue)}.services .go i{width:42px;height:42px;border:1px solid var(--ink);border-radius:50%;display:flex;align-items:center;justify-content:center;transition:all .4s var(--ease);font-style:normal}.services .go svg{width:16px;height:16px;stroke:var(--ink);stroke-width:1.6;fill:none;transition:stroke .3s}.services .row:hover .go i{background:var(--blue);border-color:var(--blue);transform:translate(6px)}.services .row:hover .go svg{stroke:#fff}@media (max-width:860px){.services .row{grid-template-columns:56px 1fr auto;gap:16px}.services .num,.services p{display:none}}.works{background:var(--white);padding:130px 0;overflow:hidden}.works .rows{margin-top:88px;display:flex;flex-direction:column;gap:clamp(26px,4vh,44px);-webkit-mask-image:linear-gradient(90deg,transparent,#000 12%,#000 88%,transparent);mask-image:linear-gradient(90deg,transparent,#000 12%,#000 88%,transparent)}.works .row{display:flex;gap:clamp(18px,2.2vw,32px);width:max-content;will-change:transform}.works figure{position:relative;flex:none;width:clamp(280px,30vw,460px);will-change:transform}.works .visual{aspect-ratio:3/2;overflow:hidden;border-radius:10px;border:1px solid var(--line);background:#fff;box-shadow:0 10px 30px #1a24560f}.works .visual img{width:100%;height:100%;object-fit:cover}.works figcaption{display:flex;justify-content:space-between;margin-top:10px;font-size:10.5px;letter-spacing:.12em;color:var(--ink-60)}.works figcaption b{font-family:var(--serif);font-size:13.5px;font-weight:500;color:var(--ink)}.works .hint{margin-top:44px;text-align:center;font-family:var(--en);font-style:italic;font-size:11.5px;letter-spacing:.3em;color:var(--ink-60)}.about{background:transparent;position:relative;padding-top:220px!important}.about .inner{display:grid;grid-template-columns:5fr 7fr;gap:clamp(40px,6vw,96px);align-items:start}.about .visual{position:sticky;top:110px}.about .deck{position:relative;aspect-ratio:4/3.6}.about .deck .shot{position:absolute;inset:0;border-radius:14px;overflow:hidden;box-shadow:0 24px 60px #1a245624;transition:transform 1s var(--ease),opacity 1s var(--ease);will-change:transform;cursor:pointer}.about .deck .shot img{width:100%;height:100%;object-fit:cover}.about .deck .shot.pos0{transform:rotate(0) translate(0);z-index:3}.about .deck .shot.pos1{transform:rotate(-4.5deg) translate(-20px,14px);z-index:2;opacity:.85}.about .deck .shot.pos2{transform:rotate(3.5deg) translate(22px,18px);z-index:1;opacity:.7}.about .deck .dots{position:absolute;bottom:-30px;left:50%;transform:translate(-50%);display:flex;gap:10px;z-index:4}.about .deck .dots i{width:9px;height:9px;border-radius:50% 0 50% 50%;transform:rotate(-20deg);background:var(--line);transition:background .3s}.about .deck .dots i.on{background:var(--pink-deep)}.about .visual .facts{margin-top:20px;display:flex;gap:1px;background:var(--line);border:1px solid var(--line);border-radius:12px;overflow:hidden}.about .visual .facts div{flex:1;background:#fff;text-align:center;padding:14px 6px}.about .visual .facts b{font-family:var(--en);font-style:italic;font-size:22px;font-weight:500;color:var(--blue);display:block;line-height:1.3}.about .visual .facts span{font-size:9.5px;letter-spacing:.12em;color:var(--ink-60)}.about .en{font-family:var(--en);font-style:italic;font-size:13px;letter-spacing:.3em;color:var(--blue);display:block;margin-bottom:20px}.about h2{font-family:var(--serif);font-weight:500;font-size:clamp(26px,3.4vw,38px);letter-spacing:.14em;margin-bottom:44px}.about .qa{background:#fff;border:1px solid var(--line);border-radius:14px;padding:clamp(24px,3vw,38px);margin-bottom:20px;transition:all .4s var(--ease)}.about .qa:hover{transform:translateY(-4px);box-shadow:0 18px 44px #1a245614}.about .qa .q{display:flex;gap:16px;align-items:baseline}.about .qa .q i{font-family:var(--en);font-style:italic;font-size:26px;color:var(--blue);font-weight:500}.about .qa .q h3{font-family:var(--serif);font-size:clamp(16px,1.8vw,20px);font-weight:500;letter-spacing:.1em;line-height:1.9}.about .qa p{margin-top:12px;padding-left:42px;font-size:13px;color:var(--ink-60);line-height:2.4}.about .more{margin-top:24px}.about .profile{margin-top:28px;background:linear-gradient(0deg,#fff,#fff) padding-box;border:1px solid #2547C84D;border-radius:16px;padding:clamp(24px,3vw,34px);display:grid;grid-template-columns:96px 1fr;gap:22px;align-items:start;box-shadow:0 22px 52px #2547c814}.about .profile>img{width:96px;height:96px;border-radius:50%;object-fit:cover;border:3px solid #fff;box-shadow:0 0 0 1px #2547c84d}.about .profile .nm{font-family:var(--serif);font-size:17px;font-weight:500;letter-spacing:.1em}.about .profile .rl{font-size:10.5px;color:var(--ink-60);letter-spacing:.14em;margin-top:2px}.about .profile .bio{margin-top:10px;font-size:12px;color:var(--ink-60);line-height:2.1}.about .profile .tags{margin-top:12px;display:flex;flex-wrap:wrap;gap:8px}.about .profile .tags span{font-size:10px;letter-spacing:.1em;color:var(--blue);border:1px solid #2547C84D;border-radius:999px;padding:3px 12px}.about .profile .cv{margin-top:18px;display:flex;gap:12px;flex-wrap:wrap}.about .profile .cv .btn{padding:13px 28px;font-size:12px}@media (max-width:560px){.about .profile{grid-template-columns:1fr}.about .profile>img{margin:0 auto}}@media (max-width:860px){.about .inner{grid-template-columns:1fr}.about .visual{position:static}}.journal{background:transparent}.journal .duo{margin-top:64px;display:grid;grid-template-columns:7fr 5fr;gap:clamp(28px,4vw,64px);align-items:start}.journal .rows a{display:grid;grid-template-columns:88px 1fr auto;gap:18px;align-items:center;transition:all .3s;position:relative}.journal .rows .date{font-family:var(--en);font-size:12px;letter-spacing:.08em;color:var(--ink-60)}.journal .rows h4{font-family:var(--sans);font-size:13px;font-weight:400;letter-spacing:.03em;line-height:1.8;transition:color .3s}.journal .rows a:hover h4{color:var(--blue)}.journal .rows .cat{font-size:10px;letter-spacing:.12em;color:var(--blue);white-space:nowrap}.journal .preview{position:sticky;top:110px}.journal .preview .frame{aspect-ratio:16/11;border-radius:14px;overflow:hidden;border:1px solid var(--line);box-shadow:0 26px 60px #1a24561a;position:relative}.journal .preview img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0;transition:opacity .55s var(--ease)}.journal .preview img.show{opacity:1}.journal .preview .cap{margin-top:18px;background:#fff;border:1px solid var(--line);border-radius:12px;padding:18px 20px}.journal .preview .cap b{color:var(--ink);font-family:var(--serif);font-weight:500;display:block;font-size:14.5px;line-height:1.9}.journal .preview .cap .desc{display:block;font-size:11.5px;color:var(--ink-60);line-height:2;margin-top:8px;min-height:3.6em}.journal .preview .rm{display:inline-flex;align-items:center;gap:8px;margin-top:12px;font-size:11px;letter-spacing:.18em;color:var(--blue);border-bottom:1px solid var(--blue);padding-bottom:3px;transition:gap .3s}.journal .preview .rm:hover{gap:14px}@media (max-width:900px){.journal .duo{grid-template-columns:1fr}.journal .preview{display:none}}.journal .rows{background:#fff;border:1px solid var(--line);border-radius:16px;padding:8px 22px;box-shadow:0 20px 50px #1a24560f}.journal .rows a{padding:16px 6px;border-bottom:1px solid var(--line)}.journal .rows a:last-child{border-bottom:none}.journal .rows a:hover{padding-left:14px}@media (max-width:560px){.services .go{font-size:0;gap:0}.services .row{grid-template-columns:44px 1fr auto}.journal .rows a{grid-template-columns:auto 1fr;grid-template-areas:"date title" "cat title";gap:6px 16px;align-items:start}.journal .rows .date{grid-area:date}.journal .rows h4{grid-area:title}.journal .rows .cat{grid-area:cat}.about .profile .cv{justify-content:flex-end}}.cta-sec{padding:170px 0;text-align:center;position:relative}.cta-sec h2{font-family:var(--serif);font-weight:500;font-size:clamp(28px,5vw,54px);letter-spacing:.12em}.cta-sec .sub{margin-top:20px;font-size:14px;letter-spacing:.22em;color:var(--ink-60)}.cta-sec .actions{margin-top:56px;display:flex;gap:16px;justify-content:center;flex-wrap:wrap}.cta-sec .note{margin-top:28px;font-size:11.5px;color:var(--ink-60);letter-spacing:.1em}footer{background:var(--ink);color:#fff;padding:88px 0 44px;position:relative;z-index:2}footer .cols{display:flex;justify-content:space-between;flex-wrap:wrap;gap:48px}footer .logo img{height:34px;width:auto}footer .addr{margin-top:20px;font-size:12px;color:#ffffffb3;line-height:2.2}footer nav{display:flex;gap:clamp(32px,5vw,80px)}footer nav ul{list-style:none}footer nav b{font-family:var(--en);font-style:italic;font-size:12px;letter-spacing:.28em;color:#ffffff73;display:block;margin-bottom:16px;font-weight:400}footer nav a{font-size:12px;line-height:2.7;color:#fffc;transition:color .3s}footer nav a:hover{color:var(--pink)}footer .bottom{margin-top:72px;padding-top:26px;border-top:1px solid #FFFFFF26;display:flex;justify-content:space-between;flex-wrap:wrap;gap:12px;font-size:10.5px;letter-spacing:.14em;color:#ffffff80}.petal-mark{display:inline-block;width:10px;height:10px;background:var(--pink);border-radius:50% 0 50% 50%;transform:rotate(-20deg);margin-right:8px;vertical-align:middle}
