:root{
      --cream:#FAF6EA;--brown:#553C19;--gold:#CAB543;--greige:#EBE7DC;--sage:#ABB98D;--pale-sage:#C5CBAF;--khaki:#CECAAE;--teal:#6BA2A0;--taupe:#B49786;--olive:#AAAE5B;--deep-olive:#575A2A;--bluegray:#678E97;--white:#FFFFFF;--rose:#D0716E;
      --surface:var(--cream);--text:var(--brown);--accent:var(--teal);--serif:"Noto Serif JP","Yu Mincho","YuMincho","Hiragino Mincho ProN",serif;--sans:"Questrial","Noto Sans JP",sans-serif;--latin:"Cinzel",serif;
    }
    *{box-sizing:border-box;margin:0;padding:0}
    html{scroll-behavior:smooth;scroll-padding-top:24px}
    body{min-height:100dvh;background:var(--surface);color:var(--text);font:clamp(.9375rem,1vw + .7rem,1.125rem)/1.8 var(--serif);letter-spacing:.04em;-webkit-font-smoothing:antialiased;overflow-x:hidden}
    .nb{display:inline-block}
    h1,h2,h3,h4,button,a,.hero-note,.section-head p,.category-title,.catalogue-lead,.video-title,.step-pill{word-break:auto-phrase;overflow-wrap:break-word;line-break:strict;text-wrap:balance}
    p{overflow-wrap:break-word;line-break:strict;text-wrap:pretty}
    body.modal-open{overflow:hidden}
    button,a{-webkit-tap-highlight-color:transparent}
    button{font:inherit;color:inherit;cursor:pointer}
    a{color:inherit;text-decoration:none}
    img{display:block;width:100%;height:auto}
    button:focus-visible,a:focus-visible{outline:3px solid var(--deep-olive);outline-offset:4px}
    button:disabled{cursor:not-allowed;opacity:.5}
    .wrap{width:min(100% - 32px,1080px);margin-inline:auto}
    .eyebrow{font:500 12px/1.4 var(--latin);letter-spacing:.18em}
    .header{min-height:78px;display:flex;align-items:center;justify-content:space-between;gap:12px}
    .brand{display:flex;align-items:center;gap:9px;min-height:48px}
    .brand-logo{display:block;width:min(48vw,210px);height:auto}
    .brand-name{font:700 17px/1 var(--sans);letter-spacing:.08em}
    .brand-sub{display:block;margin-top:5px;font:500 8px/1.2 var(--serif);letter-spacing:.06em}
    .header-contact{display:flex;align-items:center;justify-content:center;min-height:46px;padding:0 17px;border-radius:24px;background:var(--gold);font:700 clamp(.75rem,1vw + .5rem,.875rem)/1.4 var(--sans);letter-spacing:.04em;white-space:nowrap;transition:transform .2s,opacity .2s}
    .header-contact:hover{transform:translateY(-2px)}
    .hero{padding:18px 0 34px}
    .hero-copy{position:relative;z-index:2;padding:0 6px 22px}
    .hero h1{margin-top:12px;font-size:clamp(1.75rem,4.5vw + .5rem,2.5rem);line-height:1.4;font-weight:700;letter-spacing:.04em}
    .hero h1 em{display:inline-block;font-style:normal;color:var(--bluegray)}
    .hero-note{margin-top:12px;font-size:clamp(.9375rem,1vw + .7rem,1.125rem);line-height:1.8}
    .hero-visual{position:relative;margin-left:28px;border-radius:30px 0 0 30px;overflow:hidden;background:var(--greige);aspect-ratio:1.45}
    .hero-visual img{height:100%;object-fit:cover;object-position:center}
    .hero-visual::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 45%,rgba(85,60,25,.34))}
    .hero-movie{position:absolute;z-index:2;left:-18px;bottom:-8px;color:var(--white);font:500 clamp(54px,18vw,118px)/1 var(--latin);letter-spacing:-.02em}
    .spark{position:absolute;right:8px;top:-15px;width:68px;height:68px;color:var(--gold);z-index:3}
    .step-pill{display:inline-flex;align-items:center;gap:8px;margin-top:17px;font:700 clamp(.75rem,1vw + .45rem,.875rem)/1.4 var(--sans);color:var(--deep-olive);white-space:nowrap}
    .step-pill::before{content:"";width:24px;height:1px;background:var(--gold)}
    .worry-section{background:var(--greige);border-radius:36px 36px 0 0;padding:34px 0 40px}
    .section-head{text-align:center;margin-bottom:22px}
    .section-head h2{margin-top:7px;font-size:clamp(1rem,4.2vw + .25rem,1.5rem);line-height:1.4;letter-spacing:.035em;white-space:nowrap}
    .section-head p{margin-top:8px;font-size:clamp(.8125rem,1vw + .55rem,.9375rem);line-height:1.8}
    .category-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
    .category{position:relative;min-height:174px;border:0;border-radius:26px;padding:15px 6px 13px;background:var(--white);display:flex;flex-direction:column;align-items:center;text-align:center;box-shadow:0 5px 0 rgba(85,60,25,.06);transition:transform .22s ease-out,box-shadow .22s ease-out;overflow:hidden}
    .category:hover{transform:translateY(-3px);box-shadow:0 8px 0 rgba(85,60,25,.07)}
    .category:active{transform:translateY(2px);box-shadow:0 2px 0 rgba(85,60,25,.06)}
    .category:nth-child(3n+2){background:#F2F4E9}.category:nth-child(3n){background:#EDF3F1}
    .category-icon{width:78px;height:78px;display:grid;place-items:center;margin-bottom:4px}
    .category-icon svg{width:74px;height:74px;overflow:visible}
    .category-title{font-size:clamp(.8125rem,2.3vw + .4rem,1rem);line-height:1.5;font-weight:700;letter-spacing:.03em}
    .category-small{display:block;margin-top:4px;font:500 9px/1.4 var(--sans);letter-spacing:.08em;color:var(--bluegray)}
    .category-arrow{position:absolute;right:12px;bottom:10px;font:20px/1 var(--sans);color:var(--taupe)}
    .category.strength:last-child{grid-column:1/-1;min-height:142px;display:grid;grid-template-columns:100px 1fr 24px;text-align:left;padding:12px 20px;background:var(--pale-sage)}
    .category.strength:last-child .category-icon{margin:0}.category.strength:last-child .category-small{margin-top:6px}.category.strength:last-child .category-arrow{position:static;text-align:right}
    .strength-label{grid-column:1/-1;margin:26px 2px -2px;font-size:clamp(.75rem,1vw + .5rem,.875rem);line-height:1.5;font-weight:700;color:var(--deep-olive);display:flex;align-items:center;gap:10px;white-space:nowrap}
    .strength-label::after{content:"";height:1px;flex:1;background:rgba(85,60,25,.25)}
    .catalogue{display:none;padding:34px 0 40px;scroll-margin-top:20px}
    .catalogue.is-active{display:block;animation:enter .24s ease-out}
    .chooser.is-hidden{display:none}
    @keyframes enter{from{opacity:0;transform:scale(.98) translateY(8px)}to{opacity:1;transform:none}}
    .back-button{width:100%;min-height:48px;border:0;background:transparent;display:flex;align-items:center;gap:10px;text-align:left;font:700 clamp(.8125rem,1vw + .5rem,.9375rem)/1.4 var(--sans);white-space:nowrap}
    .back-button span:first-child{display:grid;place-items:center;width:34px;height:34px;border:1px solid rgba(85,60,25,.3);border-radius:50%;font-size:20px}
    .catalogue-title{margin:14px 0 6px;font-size:clamp(1.25rem,4.5vw + .5rem,2rem);line-height:1.4}
    .catalogue-lead{font-size:clamp(.875rem,1vw + .55rem,1rem);line-height:1.8;margin-bottom:20px}
    .video-list{display:grid;gap:22px}
    .video-card{border:0;background:var(--white);border-radius:24px;overflow:hidden;text-align:left;box-shadow:0 5px 18px rgba(85,60,25,.07);transition:transform .2s}
    .video-card:hover{transform:translateY(-2px)}
    .thumb{display:block;position:relative;aspect-ratio:16/9;overflow:hidden;background:var(--khaki)}
    .thumb img{height:100%;object-fit:cover;transition:transform .25s}
    .video-card:hover .thumb img{transform:scale(1.025)}
    .play-badge{position:absolute;inset:50% auto auto 50%;transform:translate(-50%,-50%);width:56px;height:56px;border-radius:50%;background:rgba(250,246,234,.93);display:grid;place-items:center;box-shadow:0 3px 12px rgba(85,60,25,.16)}
    .play-badge svg{width:22px;margin-left:3px}
    .video-info{display:block;padding:15px 17px 17px}.video-kicker,.video-title,.video-action{display:block}
    .video-kicker{font:700 10px/1.4 var(--sans);letter-spacing:.12em;color:var(--teal)}
    .video-title{margin-top:6px;font-size:clamp(.9375rem,1vw + .6rem,1.0625rem);line-height:1.65;font-weight:700;display:-webkit-box;-webkit-line-clamp:4;-webkit-box-orient:vertical;overflow:hidden}
    .video-action{display:flex;justify-content:flex-end;align-items:center;gap:5px;margin-top:8px;font:700 clamp(.75rem,1vw + .4rem,.8125rem)/1.4 var(--sans);color:var(--deep-olive);white-space:nowrap}
    .video-action::after{content:"›";font-size:19px}
    .more-button{display:none;width:100%;min-height:54px;margin-top:24px;border:2px solid var(--brown);border-radius:28px;background:transparent;font:700 clamp(.8125rem,1vw + .55rem,.9375rem)/1.4 var(--sans);white-space:nowrap;transition:background .2s,transform .2s}
    .more-button.is-visible{display:block}.more-button:hover{background:var(--cream);transform:translateY(-2px)}
    .contact-band{background:var(--sage);padding:34px 0 38px;position:relative}
    .contact-band::before{content:"";position:absolute;top:0;left:50%;transform:translateX(-50%);border-left:18px solid transparent;border-right:18px solid transparent;border-top:15px solid var(--cream)}
    .contact-band .eyebrow{font-size:36px;color:rgba(255,255,255,.65);letter-spacing:.04em}
    .contact-band h2{font-size:clamp(1.25rem,4.5vw + .5rem,2rem);line-height:1.4;margin:6px 0 10px}
    .contact-band p{font-size:clamp(.9375rem,1vw + .65rem,1.0625rem);line-height:1.8}
    .contact-actions{display:grid;gap:10px;margin-top:20px}
    .contact-button{min-height:54px;border-radius:28px;background:var(--cream);border:2px solid var(--brown);display:flex;align-items:center;justify-content:center;gap:9px;font:700 clamp(.8125rem,1vw + .55rem,.9375rem)/1.4 var(--sans);white-space:nowrap;transition:transform .2s}
    .contact-button.secondary{background:transparent;border-color:rgba(85,60,25,.45)}
    .contact-button:hover{transform:translateY(-2px)}
    .footer{padding:28px 0 0}
    .footer-links{display:flex;justify-content:center;gap:18px;margin:4px 0 26px}
    .footer-links a{width:52px;height:52px;border-radius:50%;background:var(--greige);display:grid;place-items:center;transition:transform .2s,background .2s}
    .footer-links a:hover{transform:translateY(-2px);background:var(--pale-sage)}
    .footer-links svg{width:23px;height:23px}
    .copyright{background:var(--brown);color:var(--cream);min-height:56px;display:grid;place-items:center;font:10px/1.4 var(--sans);letter-spacing:.06em}
    dialog{width:min(100% - 20px,960px);max-height:92dvh;border:0;border-radius:24px;background:var(--cream);color:var(--brown);padding:0;overflow:auto;box-shadow:0 20px 70px rgba(85,60,25,.35)}
    dialog::backdrop{background:rgba(85,60,25,.68)}
    dialog[open]{animation:enter .22s ease-out}
    .player-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 12px 12px 18px}
    .player-label{font:700 11px/1.4 var(--sans)}
    .close-button{width:44px;height:44px;border:0;border-radius:50%;background:var(--greige);font:26px/1 var(--sans)}
    .player-frame{aspect-ratio:16/9;background:var(--brown)}
    .player-frame iframe{display:block;width:100%;height:100%;border:0}
    .player-title{padding:18px 20px 22px;font-size:clamp(.9375rem,1vw + .6rem,1.0625rem);line-height:1.7;font-weight:700}
    .toast{position:fixed;left:50%;bottom:20px;z-index:20;transform:translate(-50%,20px);background:var(--deep-olive);color:var(--white);border-radius:24px;padding:12px 20px;font:700 12px/1.5 var(--sans);opacity:0;pointer-events:none;transition:.2s;white-space:nowrap}
    .toast.show{opacity:1;transform:translate(-50%,0)}
    @media(min-width:700px){
      .wrap{width:min(100% - 64px,1080px)}.hero{padding:38px 0 52px}.category-grid{grid-template-columns:repeat(3,1fr);gap:18px}.category.strength:last-child{grid-column:auto;display:flex;min-height:174px;text-align:center;padding:15px 10px 13px}.category.strength:last-child .category-arrow{position:absolute}.category.strength:last-child .category-icon{margin-bottom:4px}.strength-label{grid-column:1/-1}.video-list{grid-template-columns:repeat(2,1fr);gap:26px}.contact-actions{grid-template-columns:1fr 1fr}.contact-band{padding:50px 0}.contact-band .wrap{max-width:720px}
    }
    @media(min-width:700px){.mobile-break{display:none}}
    @media(min-width:1000px){.hero{display:grid;grid-template-columns:1fr 1.25fr;align-items:center}.hero-copy{padding-right:12px}.hero-visual{margin-left:0;aspect-ratio:1.35}.hero-movie{left:-60px}}
    @media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation:none!important;transition:none!important}}
  
/* Deployment and accessibility fixes; original design is preserved. */
.hero { position: relative; }
dialog { margin: auto; }
.skip-link { position: fixed; top: 8px; left: 8px; z-index: 50; background: var(--cream); padding: 8px 16px; transform: translateY(-150%); }
.skip-link:focus { transform: none; }
.player-footer { padding: 0 20px 20px; font: 500 12px/1.8 var(--sans); }
.player-footer a { text-decoration: underline; text-underline-offset: 4px; }
@media (max-width: 359px) {
  .header-contact { padding-inline: 11px; }
  .brand-logo { width: 43vw; }
  .section-head h2, .step-pill, .strength-label { white-space: normal; }
  .section-head h2 .nb { display: inline; }
  .category.strength:last-child { grid-template-columns: 76px 1fr 16px; padding-inline: 12px; }
}
