:root{--color-navy:#0c2340;--color-navy-light:#1a3a5c;--color-forest:#2d5a3d;--color-forest-light:#4a7c59;--color-cream:#f7f5f0;--color-white:#fff;--color-text:#1a1a1a;--color-text-muted:#5c6470;--color-border:#e2e0db;--color-error:#b42318;--font-serif:"Noto Serif JP", "Hiragino Mincho ProN", serif;--font-sans:"Noto Sans JP", "Hiragino Sans", sans-serif;font:20px/1.6 var(--font-sans);color:var(--color-text);background:var(--color-white);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}@media (width<=768px){:root{font-size:18px}}*,:before,:after{box-sizing:border-box}body{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light only;margin:0;overflow-x:hidden}#root{flex-direction:column;width:100%;min-height:100svh;display:flex}h1,h2,h3{font-family:var(--font-serif);color:var(--color-text);margin:0;font-weight:600}p{margin:0}a{color:inherit}.access-denied{text-align:center;flex-direction:column;justify-content:center;align-items:center;min-height:60vh;padding:2rem 1.5rem;display:flex}.access-denied__title{color:var(--color-ink,#2c2a26);margin:0 0 .75rem;font-size:1.125rem;font-weight:600}.access-denied__body{max-width:22rem;color:var(--color-ink-muted,#5c584f);margin:0;font-size:.9375rem;line-height:1.6}.letter-sheet{width:100%}.letter-sheet__paper{box-sizing:border-box;background:var(--color-cream);width:100%;height:auto;color:var(--color-text);border:1px solid var(--color-border);pointer-events:auto;border-radius:2px;flex-direction:column;display:flex;overflow:visible;box-shadow:0 1px 3px #2d5a3d14,0 8px 24px #0c23401a}.letter-sheet__content{text-align:left;flex:0 auto;padding:1rem 1.25rem .875rem}.letter-sheet__fold-cover{height:var(--letter-top-cover-height);flex:none}.letter-sheet__name{font-family:var(--font-serif);color:var(--color-text);margin:0 0 .625rem;font-size:.875rem;font-weight:600}.letter-sheet__text{color:var(--color-text);white-space:pre-wrap;overflow-wrap:break-word;word-break:break-word;margin:0;font-size:.8125rem;line-height:1.75}.letter-sheet--compact .letter-sheet__name{font-size:.8125rem}.letter-sheet--compact .letter-sheet__text{font-size:.75rem;line-height:1.7}.letter{--letter-body-ratio:605 / 341;--letter-head-ratio:601 / 235;--letter-head-height:calc(100% * 235 / 605);--letter-flap-shoulder-ratio:.31;--letter-sheet-inline:6%;--letter-top-cover-line-buffer:calc(2 * 1.65 * .8125rem);--letter-top-cover-height:calc(100cqh * (1 - var(--letter-flap-shoulder-ratio)) + 10cqh + var(--letter-top-cover-line-buffer));--letter-max-width:680px;width:min(var(--letter-max-width), calc(100vw - 2rem));max-width:100%;padding-top:var(--letter-head-height);margin-inline:auto;position:relative;overflow:visible}.letter__envelope{width:100%;aspect-ratio:var(--letter-body-ratio);perspective:1200px;transform-style:preserve-3d;position:relative;overflow:visible}.letter__body{transform-style:flat;isolation:isolate;position:absolute;inset:0;container-type:size}.letter__body-back,.letter__body-top{width:100%;height:100%;display:block;position:absolute;inset:0}.letter__body-back{z-index:0;pointer-events:none}.letter__sheet{z-index:1;box-sizing:border-box;padding-inline:var(--letter-sheet-inline);pointer-events:none;align-items:flex-end;display:flex;position:absolute;inset:0;overflow:visible}.letter__sheet-motion{transform-origin:bottom;width:100%}.letter__body-top{z-index:2;pointer-events:none}.letter__flap-pivot{inset-inline:0;z-index:3;transform-origin:top;transform-style:preserve-3d;pointer-events:none;position:absolute;top:0}.letter__flap-inner{width:100%;aspect-ratio:var(--letter-head-ratio);transform-style:preserve-3d;position:relative}.letter__flap-face--open{transform-origin:top;backface-visibility:hidden;pointer-events:none;height:0;position:absolute;top:0;left:0;right:0;overflow:visible;transform:rotateX(180deg)translateZ(-.5px)}.letter__flap-face--open img{width:100%;height:auto;display:block;position:absolute;bottom:0;left:0}.letter__flap-close{z-index:1;transform-origin:top;pointer-events:none;position:relative}.letter__flap-close img{transform-origin:top;width:100%;height:auto;display:block}@media (width<=768px){.letter{--letter-sheet-inline:5%;z-index:15;width:min(var(--letter-max-width), calc(100vw - 2rem))}.letter__envelope{max-width:100%}}.site-header{box-sizing:border-box;background:var(--color-navy);width:100%;color:var(--color-white);padding:1.25rem 1.5rem}.site-header__inner{text-align:center;flex-direction:column;gap:.375rem;max-width:960px;margin:0 auto;display:flex}.site-header__title{font-family:var(--font-serif);letter-spacing:.12em;font-size:1.125rem;font-weight:600}.site-header__company{opacity:.75;letter-spacing:.06em;font-size:.75rem;font-weight:400}@media (width>=768px){.site-header{padding:1.5rem 2rem}.site-header__title{font-size:1.25rem}.site-header__company{font-size:.8125rem}}.hero{box-sizing:border-box;background:linear-gradient(180deg, var(--color-navy) 0%, var(--color-forest) 55%, #1e4a32 100%);width:100%;color:var(--color-white);text-align:center;padding:4rem 1.5rem 5rem;position:relative;overflow:hidden}.hero:before{content:"";pointer-events:none;background:radial-gradient(80% 50% at 50% 100%,#ffffff14 0%,#0000 70%);position:absolute;inset:0}.hero__inner{z-index:1;flex-direction:column;align-items:center;gap:1.25rem;max-width:720px;margin:0 auto;display:flex;position:relative}.hero__label{letter-spacing:.2em;opacity:.85;font-size:.875rem}.hero__heading{font-family:var(--font-serif);color:var(--color-white);font-size:clamp(1.75rem,5vw,2.5rem);font-weight:600;line-height:1.5}.hero__lead{opacity:.9;max-width:32em;font-size:clamp(.9375rem,2.5vw,1.125rem);line-height:1.7}.hero__badge{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#ffffff26;border:1px solid #ffffff4d;border-radius:999px;margin-top:.5rem;padding:.5rem 1.25rem;font-size:.875rem;font-weight:500;display:inline-block}@media (width>=768px){.hero{padding:5rem 2rem 6rem}}@media (width<=767px){.hero{z-index:0;padding:2.5rem 1.25rem 3rem}.hero__inner{gap:1rem}.hero__label{letter-spacing:.15em;font-size:.8125rem}.hero__heading{font-size:clamp(1.5rem,7vw,1.875rem)}.hero__lead{font-size:.9375rem;line-height:1.75}.hero__lead br{display:none}.hero__badge{padding:.4375rem 1rem;font-size:.8125rem}}.scroll-guide{box-sizing:border-box;background:var(--color-cream);border-top:1px solid var(--color-border);text-align:center;flex-direction:column;align-items:center;gap:.75rem;width:100%;padding:3rem 1.5rem;display:flex}.scroll-guide__text{color:var(--color-text-muted);letter-spacing:.05em;font-size:.9375rem}.scroll-guide__icon{color:var(--color-forest);font-size:1.25rem;animation:2s ease-in-out infinite scroll-bounce}@keyframes scroll-bounce{0%,to{transform:translateY(0)}50%{transform:translateY(6px)}}@media (width<=768px){.scroll-guide{z-index:0;padding:2rem 1.25rem;position:relative}}@media (prefers-reduced-motion:reduce){.scroll-guide__icon{animation:none}}.thanks-closing{text-align:center;background:linear-gradient(180deg, var(--color-cream) 0%, var(--color-white) 100%);border-top:1px solid var(--color-border);padding:4rem 1.5rem}.thanks-closing__text{font-family:var(--font-serif);color:var(--color-text-muted);margin:0 0 2rem;font-size:clamp(1rem,2.5vw,1.125rem);line-height:1.8}.thanks-closing__signature{font-family:var(--font-serif);letter-spacing:.15em;color:var(--color-forest);margin:0;font-size:clamp(1.25rem,3.5vw,1.5rem);font-weight:600}@media (width>=768px){.thanks-closing{padding:5rem 2rem}}.site-footer{background:var(--color-navy);color:var(--color-white);margin-top:auto;padding:2rem 1.5rem}.site-footer__inner{text-align:center;flex-direction:column;align-items:center;gap:.5rem;max-width:720px;margin:0 auto;display:flex}.site-footer__message{font-family:var(--font-serif);letter-spacing:.2em;opacity:.85;font-size:.875rem}.site-footer__company{opacity:.6;letter-spacing:.05em;font-size:.75rem}.forest-scenery{pointer-events:none;z-index:0;width:min(24vw,280px);position:absolute;top:0;bottom:0;overflow:hidden}.forest-scenery--left{left:0}.forest-scenery--right{right:0}.forest-scenery__svg{width:100%;height:100%;display:block}.forest-scenery__sway{transform-origin:bottom;animation:6s ease-in-out infinite forest-sway}.forest-scenery__sway--slow{animation-duration:8s;animation-delay:-2s}.forest-scenery__butterfly{animation:12s ease-in-out infinite forest-butterfly}.forest-scenery__drift{opacity:.45;background:#6aab7a;border-radius:50% 0;width:14px;height:8px;position:absolute}.forest-scenery__drift--1{animation:14s linear infinite forest-drift;top:18%;left:30%}.forest-scenery__drift--2{animation:18s linear -4s infinite reverse forest-drift;top:55%;left:55%}.forest-scenery__drift--3{animation:16s linear -2s infinite forest-drift;top:25%;right:35%}.forest-scenery__drift--4{animation:20s linear infinite reverse forest-drift;top:62%;right:45%}.forest-scenery__caption{transform-origin:50%;font-family:var(--font-serif);letter-spacing:.35em;color:var(--color-forest);opacity:.45;white-space:nowrap;font-size:.75rem;position:absolute;bottom:2rem;left:50%;transform:translate(-50%)rotate(-90deg)}@keyframes forest-sway{0%,to{transform:rotate(0)}50%{transform:rotate(1.2deg)}}@keyframes forest-butterfly{0%,to{transform:translate(0)}25%{transform:translate(-12px,20px)}50%{transform:translate(8px,40px)}75%{transform:translate(16px,15px)}}@keyframes forest-drift{0%{opacity:0;transform:translateY(0)rotate(0)}10%{opacity:.45}90%{opacity:.35}to{opacity:0;transform:translateY(120vh)rotate(180deg)}}@media (width<=768px){.forest-scenery{display:none}}@media (prefers-reduced-motion:reduce){.forest-scenery__sway,.forest-scenery__butterfly,.forest-scenery__drift{animation:none}}.letters-zone{width:100%;position:relative;overflow:visible}.letters{z-index:1;background:linear-gradient(90deg,#0000 0%,#f7f5f08c 28%,#ffffffa6 50%,#f7f5f08c 72%,#0000 100%);width:100%;max-width:100%;margin-inline:auto;position:relative}.letter-stage{z-index:1;background:0 0;flex-direction:column;align-items:center;padding-block:0;display:flex;position:relative}@media (width<=768px){.letters-zone{z-index:20;background:var(--color-cream)}.letters{background:0 0}.letter-stage{z-index:20;box-sizing:border-box;width:100%;padding-inline:1rem}}@media (prefers-reduced-motion:reduce){.letter-stage+.letter-stage{margin-top:2rem}}
