:root{
      --ink:#101010;
      --muted:#777;
      --line:#ddd;
      --beige:#e8ddcf;
      --cream:#f8f2ec;
      --ease:cubic-bezier(.16,1,.3,1);
    }
    *{box-sizing:border-box}
    body{margin:0;color:var(--ink);font-family:"Helvetica Neue",Arial,"Noto Sans JP",sans-serif;background:#fff;line-height:1.8;}
    a{color:inherit;text-decoration:none}
    .serif{font-family:Georgia,"Times New Roman",serif;font-style:italic;font-weight:400;letter-spacing:-.04em}

    /* Header */
    .header{position:fixed;top:0;left:0;right:0;z-index:50;display:flex;align-items:center;justify-content:space-between;padding:22px 32px;mix-blend-mode:difference;color:#fff;transition:padding .4s var(--ease),background .4s var(--ease)}
    .header.is-scrolled{padding:14px 32px;background:rgba(255,255,255,.78);backdrop-filter:blur(12px);mix-blend-mode:normal;color:#111;border-bottom:1px solid rgba(0,0,0,.08)}
    .nav{display:flex;gap:24px;font-size:12px;letter-spacing:.08em}
    .nav a{position:relative;padding-bottom:4px}
    .nav a::after{content:"";position:absolute;left:0;bottom:0;width:100%;height:1px;background:currentColor;transform:scaleX(0);transform-origin:right;transition:transform .45s var(--ease)}
    .nav a:hover::after{transform:scaleX(1);transform-origin:left}
    .logo{position:absolute;left:50%;transform:translateX(-50%);font-family:Georgia,serif;letter-spacing:.25em;font-size:16px}
    .contact-btn{position:relative;overflow:hidden;border:1px solid currentColor;padding:5px 14px;font-size:11px;letter-spacing:.08em;transition:color .45s var(--ease),border-color .45s var(--ease),transform .45s var(--ease)}
    .contact-btn::before{content:"";position:absolute;left:0;bottom:0;width:100%;height:100%;background:#111;transform:translateY(100%);transition:transform .45s var(--ease);z-index:-1}
    .contact-btn:hover{color:#fff;border-color:#111;transform:translateY(-1px)}
    .contact-btn:hover::before{transform:translateY(0)}
    .header:not(.is-scrolled) .contact-btn::before{background:#fff}
    .header:not(.is-scrolled) .contact-btn:hover{color:#111;border-color:#fff}

    /* Hero */
    .hero{height:100vh;min-height:720px;position:relative;display:grid;place-items:center;overflow:hidden;background:var(--cream)}
    .hero::before{content:"";position:absolute;inset:-12%;background:radial-gradient(ellipse at 25% 35%,rgba(255,255,255,.95),transparent 35%),linear-gradient(135deg,#faf7f2 0%,#ead6c6 45%,#f7efe8 70%,#d5b49b 100%);filter:blur(1px);animation:bgFloat 9s ease-in-out infinite alternate;}
    .hero::after{content:"";position:absolute;inset:0;background:linear-gradient(115deg,transparent 0 44%,rgba(183,132,96,.18) 44% 56%,transparent 56%);transform:translateX(-8%);}
    @keyframes bgFloat{from{transform:scale(1) translate3d(-1%,0,0)}to{transform:scale(1.05) translate3d(1%,1%,0)}}
    .hero-inner{position:relative;width:min(1100px,86vw);text-align:center;padding-top:50px}
    .hero-line{display:flex;align-items:center;justify-content:center;gap:14px;font-family:Georgia,serif;font-size:12px;letter-spacing:.08em;text-transform:uppercase;margin-bottom:18px;opacity:0;animation:fadeUp .9s var(--ease) .25s forwards}
    .hero-line::before,.hero-line::after{content:"";width:190px;height:1px;background:#111;transform:scaleX(0);animation:lineGrow 1.1s var(--ease) .45s forwards}
    @keyframes lineGrow{to{transform:scaleX(1)}}
    .hero h1{font-size:clamp(46px,8.2vw,96px);line-height:1.28;margin:0;font-weight:800;letter-spacing:.01em;opacity:0;color:#111;animation:fadeUp 1.6s var(--ease) .55s forwards}
    .hero h1 .char{display:inline-block;animation:charGlow 8s ease-in-out infinite;color:#111}
    .hero h1 .char.space{width:.25em}
    .hero h1 .char:nth-child(1){animation-delay:2.0s}.hero h1 .char:nth-child(2){animation-delay:2.14s}.hero h1 .char:nth-child(3){animation-delay:2.28s}.hero h1 .char:nth-child(4){animation-delay:2.42s}.hero h1 .char:nth-child(5){animation-delay:2.56s}.hero h1 .char:nth-child(6){animation-delay:2.70s}.hero h1 .char:nth-child(7){animation-delay:2.84s}.hero h1 .char:nth-child(8){animation-delay:2.98s}.hero h1 .char:nth-child(9){animation-delay:3.12s}.hero h1 .char:nth-child(10){animation-delay:3.26s}.hero h1 .char:nth-child(12){animation-delay:3.40s}.hero h1 .char:nth-child(13){animation-delay:3.54s}.hero h1 .char:nth-child(14){animation-delay:3.68s}.hero h1 .char:nth-child(15){animation-delay:3.82s}.hero h1 .char:nth-child(16){animation-delay:3.96s}.hero h1 .char:nth-child(17){animation-delay:4.10s}.hero h1 .char:nth-child(18){animation-delay:4.24s}.hero h1 .char:nth-child(19){animation-delay:4.38s}
    .hero p{margin-top:42px;opacity:0;animation:fadeUp 1.35s var(--ease) 1.05s forwards}
    .scroll{position:absolute;right:34px;bottom:36px;font-family:Georgia,serif;font-size:11px;writing-mode:vertical-rl;letter-spacing:.12em}
    .scroll::after{content:"";display:block;width:1px;height:52px;background:#111;margin:10px auto 0;animation:scrollLine 1.6s ease-in-out infinite}
    @keyframes scrollLine{0%{transform:scaleY(0);transform-origin:top}45%{transform:scaleY(1);transform-origin:top}55%{transform:scaleY(1);transform-origin:bottom}100%{transform:scaleY(0);transform-origin:bottom}}
    @keyframes fadeUp{from{opacity:0;transform:translateY(26px)}to{opacity:1;transform:translateY(0)}}
    @keyframes charGlow{0%,82%,100%{color:#111;text-shadow:none}88%{color:#6f6f6f;text-shadow:none}94%{color:#4d4d4d;text-shadow:none}}
    

    section{padding:130px 8vw}
    .intro{display:grid;grid-template-columns:1fr 1.3fr;gap:90px;max-width:1120px;margin:auto}
    .intro h2{font-size:32px;line-height:1.7;font-weight:400;margin:0}.intro p{font-size:14px;margin:0 0 18px}

    .section-title{max-width:1120px;margin:0 auto 58px}.section-title .serif{font-size:72px;line-height:.75;display:block}.section-title b{font-size:62px;line-height:.8;display:block;letter-spacing:-.04em}
    
    .card{display:grid;grid-template-columns:1fr 1fr;gap:52px;align-items:center;position:relative}.card:nth-child(even){direction:rtl}.card:nth-child(even)>*{direction:ltr}
    .photo{height:330px;overflow:hidden;background:#ddd;position:relative}.photo img{width:100%;height:100%;object-fit:cover;display:block;transition:transform 1.6s var(--ease),filter .8s var(--ease)}
    .card-copy{padding:18px 0}.num{font-family:Georgia,serif;font-size:32px;font-style:italic;line-height:1}.card h3{font-size:26px;font-weight:400;margin:2px 0 20px}.card p{color:#333}.more{position:relative;display:inline-flex;align-items:center;gap:10px;margin-top:20px;font-size:12px;font-weight:700;letter-spacing:.02em;padding-bottom:5px}.more::before{content:"";position:absolute;left:0;bottom:0;width:100%;height:1px;background:#111;transform:scaleX(0);transform-origin:right;transition:transform .55s var(--ease)}.more::after{content:"→";display:inline-block;transition:transform .55s var(--ease)}.more:hover::before{transform:scaleX(1);transform-origin:left}.more:hover::after{transform:translateX(9px)}

    .group{background:var(--beige);display:grid;grid-template-columns:.9fr 1.1fr;gap:80px;align-items:center}.group .serif{font-size:70px;line-height:.75}.group b{font-size:56px;line-height:.8;display:block}
    .company{max-width:1080px;margin:auto;display:grid;grid-template-columns:240px 1fr;gap:60px}.company-title .serif{font-size:28px}.company-title h2{font-size:46px;line-height:1.1;font-weight:400;margin:0}.table{border-top:1px solid var(--line)}.row{display:grid;grid-template-columns:180px 1fr;border-bottom:1px solid var(--line);padding:22px 0;font-size:13px}.row b{font-size:12px}
    .contact{background:#050505;color:#fff;display:grid;grid-template-columns:1fr 1fr;gap:70px}.contact .serif{font-size:56px}.contact p{color:#bbb;font-size:13px}.form input,.form textarea{width:100%;background:#fff;border:0;margin-bottom:16px;padding:14px;font-size:14px}.form textarea{height:180px}.form button{float:right;background:#050505;color:#fff;border:1px solid #fff;padding:11px 22px;transition:background .35s var(--ease),color .35s var(--ease)}.form button:hover{background:#fff;color:#050505}

    /* Scroll reveal */
    .reveal{opacity:0;transform:translateY(64px);transition:opacity 1.35s var(--ease),transform 1.35s var(--ease)}
    .reveal.is-visible{opacity:1;transform:translateY(0)}
    .reveal-left{opacity:0;transform:translateX(-58px);transition:opacity 1.45s var(--ease),transform 1.45s var(--ease)}
    .reveal-right{opacity:0;transform:translateX(58px);transition:opacity 1.45s var(--ease),transform 1.45s var(--ease)}
    .is-visible .reveal-left,.is-visible .reveal-right,.reveal-left.is-visible,.reveal-right.is-visible{opacity:1;transform:translateX(0)}
    .stagger > *{opacity:0;transform:translateY(34px);transition:opacity 1.15s var(--ease),transform 1.15s var(--ease)}
    .stagger.is-visible > *{opacity:1;transform:translateY(0)}
    .stagger.is-visible > *:nth-child(2){transition-delay:.2s}.stagger.is-visible > *:nth-child(3){transition-delay:.4s}.stagger.is-visible > *:nth-child(4){transition-delay:.6s}.stagger.is-visible > *:nth-child(5){transition-delay:.8s}

    .motion-note{position:fixed;left:24px;bottom:24px;z-index:60;background:rgba(0,0,0,.78);color:#fff;padding:14px 16px;border-radius:999px;font-size:12px;backdrop-filter:blur(8px)}

    @media(max-width:760px){.header{padding:18px}.nav{display:none}.hero{min-height:640px}.hero-line::before,.hero-line::after{width:70px}.intro,.card,.group,.company,.contact{grid-template-columns:1fr;gap:34px}.card:nth-child(even){direction:ltr}.photo{height:240px}section{padding:90px 6vw}.section-title .serif{font-size:56px}.section-title b{font-size:48px}.row{grid-template-columns:1fr;gap:6px}.motion-note{left:12px;right:12px;text-align:center}}