/* brand worlds */
.world{position:relative;min-height:100svh;padding:clamp(70px,10vh,110px) var(--pad);display:flex;flex-direction:column;justify-content:center;overflow:clip}
.world .bgnum{position:absolute;top:2vh;left:1vw;font-weight:800;font-size:clamp(9rem,26vw,24rem);line-height:1;opacity:.06;user-select:none;pointer-events:none;letter-spacing:-.05em}
.world .inner{position:relative;z-index:3;display:grid;grid-template-columns:1.02fr .98fr;gap:clamp(30px,4vw,70px);align-items:center}
.world .tag{display:inline-flex;align-items:center;gap:.6rem;font-size:11px;letter-spacing:.24em;text-transform:uppercase;border:1px solid currentColor;border-radius:99px;padding:.45rem 1.1rem;margin-bottom:2rem;opacity:.9}
.world h3{font-weight:300;text-transform:uppercase;letter-spacing:-.07em;line-height:.86;font-size:clamp(3.4rem,8.5vw,8.4rem)}
.brand-logo{display:block;width:clamp(140px,15vw,225px);height:auto;margin-bottom:2.2rem}
.world h3 .sub{display:block;font-size:.16em;font-weight:600;letter-spacing:.4em;margin-top:1.2rem;opacity:.75}
.world .jp-tag{font-family:var(--jp);font-size:.9rem;letter-spacing:.5em;opacity:.7;margin-top:1.4rem}
.world .desc{max-width:440px;margin-top:2rem;font-size:clamp(.98rem,1.2vw,1.12rem);line-height:1.65;opacity:.92}
.world .cta{display:inline-flex;align-items:center;gap:.9rem;margin-top:2.6rem;font-weight:600;font-size:.92rem;letter-spacing:.04em;border-bottom:2px solid currentColor;padding-bottom:.45rem;transition:gap .3s}
.world .cta:hover{gap:1.5rem}
.world .visual{position:relative;height:clamp(380px,62vh,640px)}
.world .visual .layer{position:absolute;border-radius:12px;overflow:hidden;box-shadow:0 34px 70px -26px rgba(23,23,23,.4)}
.world .visual .layer img{width:100%;height:100%;object-fit:cover}
.world .float-prod{position:absolute;z-index:5;border-radius:10px;box-shadow:0 22px 44px -16px rgba(23,23,23,.35);animation:floaty 6s ease-in-out infinite;overflow:hidden}
@keyframes floaty{0%,100%{transform:translateY(0) rotate(var(--r,0deg))}50%{transform:translateY(-16px) rotate(var(--r,0deg))}}
@media(max-width:920px){.world .inner{grid-template-columns:1fr}.world .visual{height:52vh}}

/* TORA · forest + matcha pour */
.w-tora{background:var(--forest);color:var(--forest-paper)}
.w-tora .pour{position:absolute;inset:0;width:100%;height:100%;z-index:2;pointer-events:none;opacity:0;transition:opacity .5s}
.w-tora .pour.on{opacity:1}
.w-tora .drop{opacity:0}
.w-tora .pour.on .d1{animation:drip 1.5s cubic-bezier(.5,0,.9,.6) .15s infinite}
.w-tora .pour.on .d2{animation:drip 1.9s cubic-bezier(.5,0,.9,.6) .6s infinite}
.w-tora .pour.on .d3{animation:drip 1.7s cubic-bezier(.5,0,.9,.6) 1s infinite}
@keyframes drip{0%{transform:translateY(-8vh);opacity:0}12%{opacity:1}92%{opacity:1}100%{transform:translateY(105vh);opacity:0}}
.w-tora .bub{opacity:0}
.w-tora .pour.on .b1{animation:bubble 5s ease-in 1s infinite}
.w-tora .pour.on .b2{animation:bubble 6.5s ease-in 2.4s infinite}
.w-tora .pour.on .b3{animation:bubble 7.2s ease-in 3.6s infinite}
@keyframes bubble{0%{transform:translateY(0);opacity:0}14%{opacity:.85}86%{opacity:.85}100%{transform:translateY(-24vh);opacity:0}}
.w-tora .tag{border-color:rgba(243,239,228,.6)}
.w-tora .l1{width:62%;height:74%;top:0;left:0}
.w-tora .l2{width:44%;height:52%;bottom:0;right:2%;z-index:4;border:3px solid rgba(243,239,228,.3)}
.w-tora .p1{width:26%;bottom:-3%;left:8%;--r:-6deg}
.w-tora .p2{width:20%;top:-2%;right:12%;--r:7deg;animation-delay:1.2s}
.w-tora .cta:hover{color:#fff}

/* DETSU · paper + falling dates */
.w-detsu .date-rain{position:absolute;inset:0;pointer-events:none}
.w-detsu .date-rain img{position:absolute;top:0;z-index:2;opacity:0;will-change:transform;filter:drop-shadow(0 14px 14px rgba(67,51,31,.28))}
.w-detsu .date-rain img.front{z-index:4}

/* DETSU · paper + signal red */
.w-detsu{background:var(--paper);color:var(--ink)}
.w-detsu .tag{border-color:var(--accent);color:var(--accent)}
.w-detsu h3 .sub{color:var(--accent);opacity:1}
.w-detsu .cta{color:var(--accent)}
.w-detsu .l1{width:70%;height:66%;top:0;right:0}
.w-detsu .l2{width:40%;height:46%;bottom:2%;left:0;z-index:4;border:3px solid var(--paper)}
.w-detsu .p1{width:23%;top:-2%;left:12%;--r:5deg}
.w-detsu .p2{width:21%;bottom:-3%;right:8%;--r:-7deg;animation-delay:1.4s}

/* MIZAB · forest paper + mercy drop */
.w-mizab .mercy{position:absolute;inset:0;width:100%;height:100%;z-index:4;pointer-events:none;opacity:0;transition:opacity .6s}
.w-mizab .mercy.on{opacity:1}
.w-mizab .mercy-line{position:absolute;bottom:12%;left:27%;transform:translateX(-50%);z-index:3;font-style:italic;color:var(--olive);opacity:0;letter-spacing:.08em;font-size:clamp(.9rem,1.25vw,1.1rem);pointer-events:none;white-space:nowrap}
.w-mizab .rip{opacity:0;transform-box:fill-box;transform-origin:center}

/* MIZAB · forest paper + olive */
.w-mizab{background:var(--forest-paper);color:var(--ink)}
.w-mizab .tag{border-color:var(--olive);color:var(--olive)}
.w-mizab h3 .sub{color:var(--olive);opacity:1}
.w-mizab .cta{color:var(--olive)}
.w-mizab .desc{color:var(--fog-dark)}
.w-mizab .l1{width:58%;height:72%;top:0;left:2%}
.w-mizab .l2{width:42%;height:50%;bottom:0;right:0;z-index:4;border:3px solid rgba(255,255,255,.8)}
.w-mizab .p1{width:18%;bottom:-2%;left:6%;--r:-4deg}
.w-mizab .p2{width:16%;top:-2%;right:8%;--r:5deg;animation-delay:1s}

/* principles · black */
.principles{background:var(--black);color:var(--paper);padding:clamp(90px,12vw,170px) var(--pad) clamp(70px,9vw,130px)}
.principles .kicker{color:var(--d-num)}
.principles h2{font-weight:300;text-transform:uppercase;letter-spacing:-.06em;line-height:.9;font-size:clamp(2.6rem,6.5vw,6.4rem);margin-bottom:clamp(60px,9vw,130px)}
.principles .grid{display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid var(--d-border);border-bottom:1px solid var(--d-border)}
.principles article{border-left:1px solid var(--d-border);min-height:260px;padding:16px clamp(16px,2vw,30px) 26px;display:flex;flex-direction:column}
.principles article:first-child{border-left:none;padding-left:0}
.principles article .num{color:var(--d-num);font-size:11px}
.principles article h4{font-size:clamp(1.2rem,1.8vw,1.9rem);font-weight:400;letter-spacing:-.02em;line-height:1.05;margin-top:auto;max-width:230px}
.principles article p{color:var(--d-txt);font-size:.8rem;line-height:1.55;margin-top:14px}
@media(max-width:920px){.principles .grid{grid-template-columns:repeat(2,1fr)}.principles article{border-top:1px solid var(--d-border)}}

/* contact · forest */
.contact{background:var(--forest);color:var(--forest-paper);padding:clamp(60px,8vw,100px) var(--pad) 30px;position:relative;overflow:clip}
.contact .meta-row{border-color:rgba(243,239,228,.36)}
.contact-main{display:grid;grid-template-columns:1fr auto;gap:50px;align-items:end;margin-top:clamp(56px,8vw,130px)}
.contact-main h2{font-weight:300;text-transform:uppercase;letter-spacing:-.07em;line-height:.85;font-size:clamp(3rem,9.5vw,10.5rem)}
.contact-main p{font-size:clamp(1rem,1.4vw,1.3rem);max-width:360px;opacity:.9}
.contact-link{display:flex;align-items:center;justify-content:space-between;gap:2rem;border-top:1px solid var(--forest-paper);border-bottom:1px solid var(--forest-paper);font-weight:300;font-size:clamp(1.5rem,3.6vw,4rem);letter-spacing:-.04em;padding:22px 0;margin-top:clamp(48px,7vw,110px)}
.contact-link span:last-child{transition:transform .2s}
.contact-link:hover span:last-child{transform:translate(6px,-6px)}
@media(max-width:880px){.contact-main{grid-template-columns:1fr}}
