:root{--bg: #f8f6f1;--bg-soft: #f1ede4;--bg-cream: #fcfbf7;--ink: #14130f;--ink-soft: #4a4942;--ink-mute: #95938a;--line: #e0dccf;--line-soft: #ece8db;--accent: #8a7642;--accent-soft: #b8a572;--glow: rgba(180, 165, 114, .22);--gold: #c4a85a}*{box-sizing:border-box;margin:0;padding:0}html,body,#root{height:100%}body{background:var(--bg);color:var(--ink);font-family:"Noto Serif JP",Cormorant Garamond,serif;font-weight:300;line-height:1.95;letter-spacing:.04em;word-break:auto-phrase;overflow-wrap:break-word;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-image:radial-gradient(ellipse at 15% 15%,var(--glow) 0%,transparent 45%),radial-gradient(ellipse at 85% 80%,var(--glow) 0%,transparent 45%),radial-gradient(ellipse at 50% 110%,rgba(220,200,150,.15) 0%,transparent 55%),linear-gradient(180deg,var(--bg-cream) 0%,var(--bg) 60%);background-attachment:fixed;position:relative;overflow-x:hidden}body:before,body:after{content:"";position:fixed;pointer-events:none;z-index:0;border-radius:50%;background:radial-gradient(circle,var(--gold) 0%,transparent 70%);opacity:.06;filter:blur(40px)}body:before{width:480px;height:480px;top:-100px;left:-100px;animation:drift1 24s ease-in-out infinite}body:after{width:600px;height:600px;bottom:-150px;right:-150px;animation:drift2 32s ease-in-out infinite}@keyframes drift1{0%,to{transform:translate(0) scale(1)}50%{transform:translate(80px,100px) scale(1.15)}}@keyframes drift2{0%,to{transform:translate(0) scale(1)}50%{transform:translate(-100px,-80px) scale(1.1)}}#root{position:relative;z-index:1}::selection{background:var(--gold);color:var(--bg-cream)}.app{min-height:100vh;display:flex;flex-direction:column}.container{max-width:760px;margin:0 auto;padding:120px 40px 160px;width:100%}@media(max-width:640px){.container{padding:64px 24px 96px}br.lb{display:none}.intro h1{font-size:1.7rem!important;line-height:1.75!important;letter-spacing:.04em!important;margin-bottom:48px!important}.intro p{font-size:.95rem!important;line-height:1.95!important;letter-spacing:.04em!important}.q-title{font-size:1.2rem!important;line-height:1.75!important}}@keyframes fadeUp{0%{opacity:0;transform:translateY(32px);filter:blur(4px)}60%{filter:blur(0)}to{opacity:1;transform:translateY(0);filter:blur(0)}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideFadeLeft{0%{opacity:0;transform:translate(-24px)}to{opacity:1;transform:translate(0)}}.intro>*{opacity:0;will-change:opacity,transform,filter;animation:fadeUp 1.6s cubic-bezier(.16,1,.3,1) forwards}.intro>h1{opacity:1!important;animation:none!important}.intro>*:nth-child(1){animation-delay:.15s}.intro>*:nth-child(2){animation-delay:.6s}.intro>*:nth-child(3){animation-delay:.9s}.intro>*:nth-child(4){animation-delay:1.15s}.intro>*:nth-child(5){animation-delay:1.4s}.intro>*:nth-child(6){animation-delay:1.65s}.intro>*:nth-child(7){animation-delay:1.9s}.intro>*:nth-child(8){animation-delay:2.1s}.intro>*:nth-child(9){animation-delay:2.3s}.intro>*:nth-child(10){animation-delay:2.5s}.intro>*:nth-child(11){animation-delay:2.7s}.intro>*:nth-child(12){animation-delay:2.9s}.intro>*:nth-child(13){animation-delay:3.05s}.intro>*:nth-child(14){animation-delay:3.2s}.intro>*:nth-child(15){animation-delay:3.35s}.intro>*:nth-child(16){animation-delay:3.5s}.intro>*:nth-child(17){animation-delay:3.65s}.intro>*:nth-child(18){animation-delay:3.8s}.intro>*:nth-child(19){animation-delay:3.95s}.intro>*:nth-child(n+20){animation-delay:4.1s}@media(prefers-reduced-motion:reduce){.intro>*{opacity:1!important;transform:none!important;filter:none!important;animation:none!important}}.intro h1{font-family:"Noto Serif JP",Playfair Display,serif;font-weight:300;font-size:2.4rem;line-height:1.6;margin-bottom:72px;letter-spacing:.08em;color:var(--ink)}.intro h1 .em{display:block;font-size:.42em;color:var(--accent);font-family:Cormorant Garamond,serif;font-style:italic;letter-spacing:.4em;margin-bottom:28px;font-weight:400;text-transform:uppercase;position:relative;padding-bottom:18px}.intro h1 .em:after{content:"";position:absolute;left:0;bottom:0;width:48px;height:1px;background:linear-gradient(90deg,var(--accent),transparent);animation:lineGrow 2s cubic-bezier(.16,1,.3,1) .4s both}@keyframes lineGrow{0%{width:0;opacity:0}to{width:48px;opacity:1}}.reveal-text{display:inline-block}.reveal-char{display:inline-block;opacity:0;transform:translateY(40px);filter:blur(8px);animation:charReveal 1.2s cubic-bezier(.16,1,.3,1) forwards}@keyframes charReveal{0%{opacity:0;transform:translateY(40px);filter:blur(8px)}60%{filter:blur(0)}to{opacity:1;transform:translateY(0);filter:blur(0)}}@media(prefers-reduced-motion:reduce){.reveal-char{opacity:1!important;transform:none!important;filter:none!important;animation:none!important}}.intro p{font-family:"Noto Serif JP",serif;font-size:1.02rem;margin-bottom:28px;color:var(--ink-soft);line-height:2.1;letter-spacing:.06em;font-weight:300}.intro .strong{color:var(--ink);font-weight:500;letter-spacing:.08em;position:relative}.intro .divider{border:none;border-top:1px solid transparent;margin:64px 0;position:relative;height:1px;background:linear-gradient(90deg,transparent 0%,var(--line) 25%,var(--accent-soft) 50%,var(--line) 75%,transparent 100%)}.intro .divider:after{content:"✦";position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);background:var(--bg);padding:0 16px;color:var(--accent);font-size:.7rem;letter-spacing:.2em;animation:shimmer 4s ease-in-out infinite}@keyframes shimmer{0%,to{color:var(--accent);text-shadow:0 0 0px transparent}50%{color:var(--gold);text-shadow:0 0 16px var(--gold)}}.intro .quote{font-family:Cormorant Garamond,"Noto Serif JP",serif;font-style:italic;color:var(--ink-soft);font-size:1rem;padding-left:24px;border-left:1px solid var(--accent-soft);margin:32px 0;letter-spacing:.06em}.intro .meta{margin-top:80px;padding-top:40px;border-top:1px solid var(--line);font-size:.85rem;color:var(--ink-mute);font-family:Cormorant Garamond,"Noto Serif JP",serif;letter-spacing:.12em;text-align:center}.intro .meta p{margin-bottom:10px;line-height:1.9;font-style:italic}.btn{position:relative;display:inline-block;background:var(--ink);color:var(--bg-cream);border:none;padding:22px 56px;font-family:Cormorant Garamond,"Noto Serif JP",serif;font-size:1.05rem;font-weight:400;letter-spacing:.16em;cursor:pointer;transition:all .5s cubic-bezier(.16,1,.3,1);border-radius:0;overflow:hidden;isolation:isolate;-webkit-tap-highlight-color:transparent}.btn:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(135deg,var(--accent) 0%,var(--gold) 100%);transform:translateY(100%);transition:transform .5s cubic-bezier(.16,1,.3,1);z-index:-1}@media(hover:hover){.btn:hover:before{transform:translateY(0)}.btn:hover{color:var(--bg-cream);transform:translateY(-2px);box-shadow:0 12px 32px #8a764238;letter-spacing:.2em}}.btn:active{transform:scale(.98);transition-duration:.1s}.btn:disabled{background:var(--ink-mute);cursor:not-allowed;transform:none;letter-spacing:.16em}.btn:disabled:before{display:none}.btn-ghost{background:transparent;color:var(--ink-soft);border:1px solid var(--line);padding:16px 36px;font-size:.92rem;letter-spacing:.14em}.btn-ghost:before{display:none}@media(hover:hover){.btn-ghost:hover{background:transparent;color:var(--ink);border-color:var(--accent);box-shadow:0 4px 16px var(--glow);letter-spacing:.16em}}.progress{position:fixed;top:0;left:0;right:0;height:2px;background:var(--line);z-index:100}.progress-bar{height:100%;background:linear-gradient(90deg,var(--accent),#c4b48a);transition:width .4s ease}.progress-text{position:fixed;top:16px;right:24px;font-family:Cormorant Garamond,serif;font-style:italic;font-size:.85rem;color:var(--ink-mute);letter-spacing:.1em;z-index:100}.q-section-label{font-family:Cormorant Garamond,serif;font-style:italic;font-size:.8rem;letter-spacing:.32em;color:var(--accent);text-transform:uppercase;margin-bottom:20px;font-weight:400;position:relative;padding-bottom:14px}.q-section-label:after{content:"";position:absolute;left:0;bottom:0;width:32px;height:1px;background:linear-gradient(90deg,var(--accent-soft),transparent)}.q-title{font-family:"Noto Serif JP",serif;font-weight:400;font-size:1.5rem;line-height:1.85;margin-bottom:14px;color:var(--ink);letter-spacing:.06em;animation:fadeUp .8s cubic-bezier(.16,1,.3,1) both}.q-help{font-family:"Noto Serif JP",serif;font-size:.92rem;color:var(--ink-mute);margin-bottom:36px;line-height:1.95;letter-spacing:.05em;font-weight:300;animation:fadeUp .8s cubic-bezier(.16,1,.3,1) .1s both}.input,.textarea,.select{width:100%;background:#fff;border:1px solid var(--line);border-radius:4px;padding:14px 16px;font-family:inherit;font-size:1rem;color:var(--ink);outline:none;transition:all .25s ease;font-weight:300;box-shadow:inset 0 1px 2px #00000005;-webkit-appearance:none;-moz-appearance:none;appearance:none}.input::placeholder,.textarea::placeholder{color:var(--ink-mute);opacity:.55}.input:hover,.textarea:hover,.select:hover{border-color:var(--accent-soft)}.input:focus,.textarea:focus,.select:focus{border-color:var(--accent);background:#fffefa;box-shadow:0 0 0 3px #8a76421a,inset 0 1px 2px #00000005}.textarea{resize:vertical;min-height:140px;line-height:1.8;padding:16px}.paste-target{width:100%;background:#fff;border:1.5px dashed var(--accent);border-radius:4px;padding:24px;font-family:inherit;font-size:1rem;color:var(--ink);outline:none;resize:vertical;min-height:280px;line-height:1.8;font-weight:300;transition:all .3s ease;box-shadow:inset 0 0 24px #b4aa8c0f}.paste-target::placeholder{color:var(--ink-mute);font-style:italic;opacity:.7}.paste-target:hover{border-color:var(--ink-soft);background:#fffefb}.paste-target:focus{border-color:var(--ink);border-style:solid;background:#fff;box-shadow:0 0 0 3px #8b7d5b1f}.paste-target.has-content{border-style:solid;border-color:var(--accent);background:#fffefb}.paste-wrap{position:relative}.paste-wrap:before{content:"↓ ここに貼り付け";position:absolute;top:-10px;left:16px;background:var(--bg);padding:0 12px;font-family:Cormorant Garamond,serif;font-style:italic;font-size:.8rem;color:var(--accent);letter-spacing:.15em;z-index:1}.paste-wrap.has-content:before{content:"✓ 貼り付け済み";color:var(--accent)}.choices{display:flex;flex-direction:column;gap:4px;margin-top:12px}.choice{display:flex;align-items:flex-start;gap:16px;padding:18px 20px;border:1px solid var(--line);cursor:pointer;transition:all .2s ease;font-size:.95rem;background:#fff6;line-height:1.6}.choice:hover{border-color:var(--ink-soft);background:#ffffffb3}.choice.selected{border-color:var(--ink);background:var(--bg-soft)}.choice input{margin-top:4px;accent-color:var(--ink)}.nav{display:flex;justify-content:space-between;align-items:center;margin-top:56px;gap:12px;flex-wrap:wrap}.nav .btn{padding:14px 28px;font-size:.88rem;letter-spacing:.1em;margin-top:0}.nav .btn-ghost{padding:13px 24px;font-size:.82rem;letter-spacing:.08em}.nav .hint{font-size:.8rem;color:var(--ink-mute);font-family:Cormorant Garamond,serif;font-style:italic;letter-spacing:.08em;flex:1;text-align:center}@media(max-width:640px){.nav{margin-top:40px;gap:8px}.nav .btn{padding:12px 18px;font-size:.82rem;letter-spacing:.08em;flex:1}.nav .btn-ghost{padding:11px 14px;font-size:.78rem}.nav .hint{flex-basis:100%;order:-1;margin-bottom:4px}}.done{text-align:center;padding-top:80px;animation:fadeIn 1.4s ease both}.done h1{font-family:"Noto Serif JP",serif;font-weight:300;font-size:1.4rem;margin-bottom:28px;letter-spacing:.08em}.done .em{display:block;font-family:Cormorant Garamond,serif;font-style:italic;color:var(--accent);font-size:.72rem;letter-spacing:.32em;margin-bottom:18px;text-transform:uppercase;font-weight:400}.done p{font-family:"Noto Serif JP",serif;color:var(--ink-soft);margin-bottom:14px;font-size:.92rem;line-height:1.95;letter-spacing:.05em}@media(max-width:640px){.done{padding-top:56px}.done h1{font-size:1.2rem!important;margin-bottom:20px}.done .em{font-size:.65rem;letter-spacing:.28em;margin-bottom:14px}.done p{font-size:.88rem!important}}.particle{display:inline-block;width:4px;height:4px;background:var(--accent);border-radius:50%;margin:0 4px;box-shadow:0 0 8px var(--accent);animation:glow 3s ease-in-out infinite}.particle:nth-child(2){animation-delay:.5s}.particle:nth-child(3){animation-delay:1s}@keyframes glow{0%,to{opacity:.4;transform:scale(1)}50%{opacity:1;transform:scale(1.3)}}.error{color:#b85c5c;font-size:.85rem;margin-top:12px}.back-link{display:inline-block;background:transparent;border:none;color:var(--ink-mute);font-size:.85rem;font-family:inherit;padding:0;margin-bottom:32px;cursor:pointer;letter-spacing:.05em;transition:color .2s ease}.back-link:hover{color:var(--ink)}.stepper{margin:0 0 40px;padding:0;position:relative}.stepper-meta{margin-bottom:16px;font-size:.78rem;letter-spacing:.12em}.stepper-wrap{position:relative;padding:0 5.5px}.stepper-line{position:absolute;top:5px;left:11px;right:11px;height:1px;background:var(--line);z-index:0}.stepper-line-fill{position:absolute;top:5px;left:11px;height:1px;background:linear-gradient(90deg,var(--accent),#c4b48a);z-index:1;transition:width .5s cubic-bezier(.16,1,.3,1)}.stepper-row{position:relative;display:flex;justify-content:space-between;z-index:2}.stepper-node{display:flex;flex-direction:column;align-items:center;flex:1 1 0;min-width:0;cursor:default}.stepper-node:first-child{align-items:flex-start}.stepper-node:last-child{align-items:flex-end}.stepper-dot{width:11px;height:11px;border-radius:50%;background:var(--bg);border:1.5px solid var(--line);margin-bottom:8px;transition:all .3s ease;flex-shrink:0}.stepper-node.done .stepper-dot{background:var(--accent);border-color:var(--accent);box-shadow:0 0 8px var(--glow)}.stepper-node.current .stepper-dot{background:var(--ink);border-color:var(--ink);box-shadow:0 0 0 4px #1a1a1a0f;animation:pulse 2.4s ease-in-out infinite}.stepper-label{font-size:.65rem;color:var(--ink-mute);letter-spacing:.05em;text-align:center;line-height:1.4;font-weight:300;max-width:60px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.stepper-node.current .stepper-label{color:var(--ink);font-weight:500}.stepper-node.done .stepper-label{color:var(--accent)}.stepper-meta{text-align:center;font-family:Cormorant Garamond,serif;font-style:italic;font-size:.85rem;color:var(--ink-mute);letter-spacing:.15em;margin-bottom:16px}@media(max-width:640px){.stepper-label{font-size:.55rem;max-width:36px}.stepper-dot{width:9px;height:9px}.stepper-line,.stepper-line-fill{top:12px}}.section-card{text-align:center;padding:56px 24px;border:1px solid var(--line);background:#ffffff80;margin-bottom:48px;position:relative}.section-card:before{content:"";position:absolute;left:50%;top:-3px;width:6px;height:6px;background:var(--accent);border-radius:50%;transform:translate(-50%);box-shadow:0 0 12px var(--accent)}.section-card-em{font-family:Cormorant Garamond,serif;font-style:italic;font-size:.8rem;letter-spacing:.25em;color:var(--accent);margin-bottom:12px}.section-card-title{font-family:"Noto Serif JP",serif;font-weight:400;font-size:1.4rem;letter-spacing:.05em;color:var(--ink)}.cta-group{margin-top:72px;display:flex;flex-direction:column;gap:16px;align-items:stretch}.cta-group .btn{margin-top:0;display:flex;flex-direction:column;align-items:center;gap:6px;padding:28px 40px}.cta-en{font-family:Cormorant Garamond,serif;font-style:italic;font-size:.78rem;letter-spacing:.4em;text-transform:uppercase;opacity:.85}.cta-jp{font-family:"Noto Serif JP",serif;font-size:1.05rem;letter-spacing:.18em;font-weight:400}.cta-secondary{background:var(--bg-cream)!important;color:var(--ink)!important;border:1px solid var(--ink)!important}.cta-secondary:before{background:linear-gradient(135deg,var(--bg) 0%,var(--bg-soft) 100%)!important}.cta-secondary:hover{color:var(--ink)!important;box-shadow:0 12px 32px #14130f14!important}.cta-foot{margin-top:40px!important;text-align:center;font-family:Cormorant Garamond,"Noto Serif JP",serif!important;font-style:italic;font-size:.85rem!important;color:var(--ink-mute)!important;letter-spacing:.08em!important;line-height:2.1!important;max-width:520px;margin-left:auto!important;margin-right:auto!important}.cta-foot span{display:block}@media(max-width:640px){.cta-foot{font-size:.8rem!important;line-height:1.9!important;letter-spacing:.04em!important;text-align:left!important;padding:0 8px}.cta-foot span{display:block;margin-bottom:6px}}.attendance-row{display:flex;flex-direction:column;gap:16px;margin-bottom:24px;padding:20px;border:1px solid var(--line);background:#fff6}.attendance-row .label{font-size:.95rem;color:var(--ink)}.attendance-row .opts{display:flex;gap:12px}.attendance-row .opts label{flex:1;text-align:center;padding:10px;border:1px solid var(--line);cursor:pointer;font-size:.85rem;background:#fff}.attendance-row .opts label.selected{border-color:var(--ink);background:var(--bg-soft)}.timeline{position:relative;padding-left:40px}.timeline:before{content:"";position:absolute;left:11px;top:12px;bottom:12px;width:1px;background:linear-gradient(to bottom,var(--accent) 0%,var(--line) 8%,var(--line) 92%,transparent 100%)}.tl-section{position:relative;padding-bottom:56px}.tl-section:before{content:"";position:absolute;left:-34px;top:8px;width:11px;height:11px;border-radius:50%;background:var(--bg);border:1.5px solid var(--accent);box-shadow:0 0 0 4px var(--bg),0 0 12px var(--glow);transition:all .3s ease}.tl-section.filled:before{background:var(--accent);box-shadow:0 0 0 4px var(--bg),0 0 16px var(--accent)}.tl-section.current:before{background:var(--ink);border-color:var(--ink);box-shadow:0 0 0 4px var(--bg),0 0 0 8px #1a1a1a14;animation:pulse 2.4s ease-in-out infinite}@keyframes pulse{0%,to{transform:scale(1)}50%{transform:scale(1.15)}}.tl-end{position:relative;padding:24px 0 8px;text-align:center;margin-top:-24px}.tl-end:before{content:"";position:absolute;left:11px;top:-8px;width:1px;height:32px;background:linear-gradient(to bottom,var(--line),transparent)}.tl-end-label{font-family:Cormorant Garamond,serif;font-style:italic;font-size:.85rem;color:var(--ink-mute);letter-spacing:.15em;margin-left:40px}.scroll-hint{text-align:center;margin-top:32px;color:var(--ink-mute);font-size:.8rem;font-family:Cormorant Garamond,serif;font-style:italic;letter-spacing:.2em;animation:bob 2s ease-in-out infinite}@keyframes bob{0%,to{transform:translateY(0);opacity:.6}50%{transform:translateY(4px);opacity:1}}@media(max-width:640px){.timeline{padding-left:28px}.timeline:before{left:7px}.tl-section:before{left:-26px;width:9px;height:9px}.tl-end:before{left:7px}.tl-end-label{margin-left:28px}}
