@import url("https://fonts.googleapis.com/css2?family=Playfair+Display:ital,wght@0,400;0,700;0,900;1,400;1,700&family=Sora:wght@300;400;500;600&family=Noto+Serif+JP:wght@300;400;700&display=swap");:root{--cream:#fdf6ec;--paper:#f7ede0;--paper-dark:#eeddc8;--ink:#1c1510;--ink-2:#4a3728;--ink-3:#8a7060;--ink-4:#b8a898;--sakura:#e8a0b0;--sakura-deep:#c4607a;--amber:#d4843a;--amber-light:#f0b060;--moss:#6a8c5a;--dusk:#8878b8;--sky:#7aaed4;--grad-sakura:linear-gradient(135deg,#f5c5d0,#e8a0b0,#d4849a);--grad-sunset:linear-gradient(135deg,#f0b060,#e8886a,#c4607a);--grad-hero:linear-gradient(160deg,#fdf6ec,#f5ddd0 40%,#eeddc8);--surface:#fff9f2;--surface-2:#fdf0e4;--border:rgba(28,21,16,.1);--border-mid:rgba(28,21,16,.18);--font-display:"Playfair Display",Georgia,serif;--font-body:"Sora",sans-serif;--font-serif:"Noto Serif JP",serif;--radius:8px;--radius-lg:16px;--radius-xl:24px;--shadow-sm:0 2px 8px rgba(28,21,16,.08);--shadow-md:0 4px 24px rgba(28,21,16,.1);--shadow-lg:0 8px 48px rgba(28,21,16,.14);--ease-out:cubic-bezier(0.16,1,0.3,1);--ease-in:cubic-bezier(0.7,0,0.84,0);--ease-io:cubic-bezier(0.65,0,0.35,1);--focus-ring:0 0 0 2px var(--cream),0 0 0 4px var(--sakura-deep)}*,:after,:before{box-sizing:border-box;margin:0;padding:0}*{-moz-user-select:none;user-select:none;-webkit-user-select:none}html{scroll-behavior:smooth}body{background:var(--cream);color:var(--ink);font-family:var(--font-body);font-size:1rem;line-height:1.65;min-height:100vh;overflow-x:hidden;font-optical-sizing:auto;font-variant-numeric:tabular-nums;font-kerning:normal;font-feature-settings:"kern" 1,"liga" 1,"calt" 1,"tnum","kern"}h1,h2,h3,h4{text-wrap:balance}:focus-visible{outline:none;box-shadow:var(--focus-ring);border-radius:var(--radius)}::-webkit-scrollbar{width:5px;height:5px}::-webkit-scrollbar-track{background:var(--paper)}::-webkit-scrollbar-thumb{background:var(--ink-4);border-radius:3px}.font-display{font-family:var(--font-display)}.font-serif{font-family:var(--font-serif)}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);padding:28px;box-shadow:var(--shadow-sm);transition:box-shadow .22s var(--ease-out),transform .22s var(--ease-out),border-color .2s var(--ease-out)}@media (hover:hover) and (pointer:fine){.card:hover{box-shadow:var(--shadow-md);transform:translateY(-2px);border-color:var(--border-mid)}}@keyframes fadeUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes float{0%,to{transform:translateY(0)}50%{transform:translateY(-6px)}}@keyframes spin-slow{to{transform:rotate(1turn)}}@keyframes petal-fall{0%{transform:translateY(-20px) translateX(0) rotate(0deg);opacity:0}10%{opacity:.8}to{transform:translateY(110vh) translateX(40px) rotate(200deg);opacity:0}}@keyframes bounce{0%,80%,to{transform:scale(.6);opacity:.4}40%{transform:scale(1);opacity:1}}@keyframes shake{0%,to{transform:translateX(0)}15%{transform:translateX(-8px)}30%{transform:translateX(7px)}45%{transform:translateX(-6px)}60%{transform:translateX(5px)}75%{transform:translateX(-3px)}90%{transform:translateX(2px)}}@keyframes marquee-scroll{0%{transform:translateX(0)}to{transform:translateX(-50%)}}@keyframes draw-stroke{0%{stroke-dashoffset:350}to{stroke-dashoffset:0}}@keyframes hero-exit{0%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(-32px)}}.animate-fade-up{animation:fadeUp .6s ease both}.container{max-width:1100px;margin:0 auto;padding:0 32px}@media (max-width:768px){.container{padding:0 20px}}.petal-layer{position:fixed;inset:0;pointer-events:none;z-index:9999;overflow:hidden}.petal{position:absolute;top:-20px;background:var(--sakura);border-radius:50% 0 50% 0;opacity:0;pointer-events:none;animation:petal-fall linear infinite}