:root{--color-primary:#1b9391;--color-primary-bright:#16c1bf;--color-primary-deep:#0f6e6c;--color-accent-yellow:#f5e73c;--color-soft-yellow:#ede27f;--color-accent-pink:#f757fa;--color-accent-orange:#e8833a;--color-text:#282727;--color-text-muted:#5c5a5a;--color-bg:#fff;--color-card-beige:#f3e9dc;--color-problem-red:#c84b4b;--color-gray-marker:#d4d4d4;--color-line:#2827271f;--color-white:#fff;--font-display:"Noto Sans JP", "Hiragino Sans", "Hiragino Kaku Gothic ProN", sans-serif;--font-body:"Noto Sans JP", "Hiragino Sans", "Hiragino Kaku Gothic ProN", sans-serif;--font-rounded:"Zen Maru Gothic", "Hiragino Maru Gothic ProN", sans-serif;--font-en:"Montserrat", "Poppins", sans-serif;--fs-xs:.75rem;--fs-sm:.875rem;--fs-md:1rem;--fs-lg:1.125rem;--fs-xl:1.375rem;--fs-2xl:1.75rem;--fs-3xl:2.25rem;--fs-4xl:clamp(2rem, 4vw, 3rem);--fs-hero:clamp(1.15rem, .5rem + 2.1vw, 2.4rem);--fs-tagline:clamp(1.6rem, 2.2vw, 2.4rem);--fs-section-en:clamp(2.5rem, 7vw, 5.4rem);--lh-tight:1.25;--lh-heading:1.45;--lh-body:1.85;--container:1120px;--gutter:clamp(1.25rem, 4vw, 2.75rem);--header-h:4.5rem;--section-y:clamp(4.5rem, 9vw, 7.5rem);--radius-card:24px;--radius-pill:999px;--radius-sm:10px;--shadow-card:0 10px 32px #28272714;--shadow-soft:0 6px 20px #1b93911f;--ease:cubic-bezier(.22, 1, .36, 1);--focus:0 0 0 3px #1b939159}*,:before,:after{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:calc(var(--header-h) + .75rem)}html,body{margin:0;padding:0}body{font-family:var(--font-body);font-size:var(--fs-md);line-height:var(--lh-body);color:var(--color-text);background:var(--color-bg);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility}img,svg{max-width:100%;height:auto;display:block}.app__icon svg,.features__icon svg{max-width:none;height:auto}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit;color:inherit}h1,h3,h4{font-family:var(--font-display);font-weight:700;line-height:var(--lh-heading);margin:0}h2{font-family:var(--font-rounded);font-weight:700;line-height:var(--lh-heading);word-break:keep-all;margin:0}p{margin:0}ul,ol{margin:0;padding:0}:focus-visible{box-shadow:var(--focus);outline:none}.skip-link{left:var(--gutter);z-index:200;background:var(--color-primary);color:var(--color-white);border-radius:var(--radius-sm);padding:.5rem 1rem;position:absolute;top:-4rem}.skip-link:focus{top:.75rem}.container{width:min(100% - var(--gutter) * 2, var(--container));margin-inline:auto}.visually-hidden{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.mesh-bg{isolation:isolate;background-color:#f4f1e4;background-image:radial-gradient(80% 70% at 8% 10%,#f7f0a8 0%,#0000 55%),radial-gradient(65% 80% at 92% 36%,#4ecfcb 0%,#0000 52%),radial-gradient(50% 48% at 86% 94%,#c9b6ee 0%,#0000 55%),radial-gradient(70% 50% at 50% 80%,#16c1bf73 0%,#0000 60%),linear-gradient(108deg,#fffef9 0%,#eaf6c9 38%,#7adad4 70%,#b7c3ea 100%);position:relative;overflow:hidden}.mesh-bg:after{content:"";pointer-events:none;z-index:1;opacity:.22;mix-blend-mode:multiply;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='180' height='180' filter='url(%23n)'/%3E%3C/svg%3E");background-size:180px 180px;position:absolute;inset:0}.mesh-bg>*{z-index:2;position:relative}.mesh-bg--hero{background-color:#f7fbef;background-image:radial-gradient(50% 58% at 8% 8%,#ede27fe6 0%,#0000 62%),radial-gradient(52% 74% at 98% 42%,#16c1bff0 0%,#0000 64%),radial-gradient(44% 38% at 88% 100%,#cabaed99 0%,#0000 62%),radial-gradient(50% 44% at 50% 54%,#ffffffd1 0%,#0000 72%),linear-gradient(108deg,#fffef8 0%,#f7f8e8 28%,#dff5e9 52%,#74d9d3 76%,#16c1bf 100%)}@media (width<=880px){.mesh-bg--hero{background-image:radial-gradient(75% 32% at 8% 0,#ede27fe0 0%,#0000 66%),radial-gradient(78% 48% at 100% 78%,#16c1bfd1 0%,#0000 68%),radial-gradient(70% 30% at 86% 100%,#cabaed80 0%,#0000 64%),linear-gradient(160deg,#fffef8 0%,#eef8ed 46%,#a4e3dc 72%,#45cbc7 100%)}}.mesh-bg--cta{background-color:#d7efec;background-image:radial-gradient(55% 36% at 50% 0,#f7f3c8 0%,#0000 55%),radial-gradient(80% 70% at 70% 100%,#0c4f4d 0%,#0000 55%),linear-gradient(#f6fff9 0%,#d5eeea 22%,#5ec9c4 48%,#12726e 72%,#0f5a58 100%)}.section-label{top:clamp(1.25rem,3vw,2.5rem);right:max(var(--gutter), calc((100vw - var(--container)) / 2));font-family:var(--font-en);font-weight:800;font-size:var(--fs-section-en);letter-spacing:-.035em;text-transform:uppercase;background:linear-gradient(185deg, #0d6b5f 0%, var(--color-primary) 48%, var(--color-primary-bright) 100%);color:#0000;opacity:.2;pointer-events:none;user-select:none;white-space:nowrap;-webkit-background-clip:text;background-clip:text;margin:0;line-height:1;position:absolute}.section{padding-block:var(--section-y);position:relative}.section:has(.section-label){padding-top:calc(var(--section-y) + 1.5rem)}.section--tight{padding-block:clamp(3rem,6vw,5rem)}.section__eyebrow{gap:.2rem;margin-bottom:.85rem;display:grid}.section__eyebrow-en{font-family:var(--font-en);letter-spacing:.2em;text-transform:uppercase;color:var(--color-primary);font-size:.72rem;font-weight:700}.section__eyebrow-ja{font-size:var(--fs-sm);color:var(--color-text);font-weight:700}.section__title{font-size:var(--fs-4xl);letter-spacing:.01em;margin-bottom:1.25rem}.section__lead{font-size:var(--fs-lg);color:var(--color-text);max-width:40rem}.marker{background:var(--color-primary);color:var(--color-white);-webkit-box-decoration-break:clone;box-decoration-break:clone;padding:.18em .5em .2em;font-weight:700;display:inline}.hl-gray{background:var(--color-gray-marker);-webkit-box-decoration-break:clone;box-decoration-break:clone;padding:0 .18em}.accent-teal{color:var(--color-primary);font-weight:700}.hand-oval{white-space:nowrap;padding:.15em .35em;display:inline-block;position:relative}.hand-oval__svg{pointer-events:none;width:116%;height:136%;position:absolute;inset:-18% -8%;overflow:visible}.hand-oval__svg ellipse,.hand-oval__svg path{fill:none;stroke:var(--color-accent-orange);stroke-width:2.6px;stroke-linecap:round}.btn{border-radius:var(--radius-pill);min-height:3rem;font-family:var(--font-display);font-weight:700;font-size:var(--fs-md);letter-spacing:.02em;cursor:pointer;transition:transform .2s var(--ease), background-color .2s var(--ease), color .2s var(--ease), border-color .2s var(--ease);border:2px solid #0000;justify-content:center;align-items:center;gap:.4rem;padding:.7rem 1.6rem;display:inline-flex}.btn:hover{transform:translateY(-1px)}.btn--primary{background:var(--color-primary);color:var(--color-white);border-color:var(--color-primary)}.btn--primary:hover{background:var(--color-primary-deep);border-color:var(--color-primary-deep)}.btn--key{background:var(--color-accent-yellow);color:#0f5a58;border-color:var(--color-accent-yellow);padding:1.1em 2.8em;box-shadow:0 8px 22px #0f5a582e}.btn--key:hover{color:#0f5a58;background:#fff45f;border-color:#fff45f;transform:translateY(-2px);box-shadow:0 11px 26px #0f5a5838}.btn--ghost{color:var(--color-primary);border-color:var(--color-primary);background:0 0}.btn--ghost:hover{background:#1b939114}.btn--on-mesh{background:var(--color-white);color:var(--color-primary);border-color:var(--color-white)}.btn--on-mesh:hover{background:#f4fffe}.btn-row{flex-wrap:wrap;gap:.75rem 1rem;display:flex}.card{background:var(--color-white);border-radius:var(--radius-card);box-shadow:var(--shadow-card);transition:transform .25s var(--ease), box-shadow .25s var(--ease)}@media (hover:hover) and (prefers-reduced-motion:no-preference){.card:hover{transform:translateY(-4px);box-shadow:0 16px 40px #2827271f}}.mark-wm{pointer-events:none;z-index:0;opacity:.1;width:min(280px,42vw);position:absolute;transform:rotate(-8deg)}.mark-wm img{width:100%;height:auto}.text-link{color:var(--color-primary);align-items:center;gap:.35rem;margin-top:1.35rem;font-weight:700;display:inline-flex}.text-link:hover{text-decoration:underline}.badge{border-radius:var(--radius-pill);font-size:var(--fs-sm);color:var(--color-primary-deep);background:#ffffffb8;border:1px solid #1b939147;align-items:center;gap:.35rem;padding:.35rem .85rem;font-weight:700;display:inline-flex}.badge-row{flex-wrap:wrap;gap:.5rem;display:flex}.source{font-size:var(--fs-xs);color:var(--color-text-muted);line-height:1.6}[data-fade]{opacity:1}html.js [data-fade]{opacity:0;transition:opacity .7s var(--ease), transform .7s var(--ease);transform:translateY(16px)}html.js [data-fade].is-visible{opacity:1;transform:none}.form{gap:1.25rem;display:grid}.form__field,.form__fieldset{border:0;gap:.45rem;margin:0;padding:0;display:grid}.form__label,.form__legend{font-weight:700;font-family:var(--font-display);font-size:var(--fs-sm)}.req{color:var(--color-problem-red);margin-left:.35em;font-size:.75em;font-weight:700}.opt{color:var(--color-text-muted);margin-left:.35em;font-size:.75em;font-weight:400}.form__control{border:1px solid var(--color-line);border-radius:var(--radius-sm);background:var(--color-white);width:100%;min-height:3rem;transition:border-color .15s var(--ease);padding:.65rem .9rem}.form__control:focus{border-color:var(--color-primary)}.form__control[aria-invalid=true]{border-color:var(--color-problem-red)}textarea.form__control{resize:vertical;min-height:8rem}.form__radios,.form__checks{flex-wrap:wrap;gap:.65rem 1.1rem;display:flex}.form__radio,.form__check{cursor:pointer;align-items:center;gap:.4rem;display:inline-flex}.form__error{color:var(--color-problem-red);font-size:var(--fs-sm);min-height:1.2em}.form__error:empty{display:none}[data-field][aria-invalid=true]{outline:2px solid var(--color-problem-red);outline-offset:6px;border-radius:var(--radius-sm)}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}html.js [data-fade]{opacity:1;transform:none}}@media (width<=720px){h2{word-break:normal;overflow-wrap:anywhere}.section-label{top:1.25rem;right:var(--gutter);font-size:clamp(2.5rem,14vw,3.7rem)}.hand-oval__svg{width:104%;height:124%;inset:-12% -2%}}
