@import "https://fonts.googleapis.com/css2?family=Zen+Kurenaido&family=Noto+Serif+JP:wght@300;400;500;700&family=Shippori+Mincho:wght@400;500;600;700;800&family=Kaisei+Tokumin:wght@400;500;700;800&family=Yomogi&display=swap";
*,:before,:after{box-sizing:border-box;margin:0;padding:0}:root{--washi:#f5efe0;--washi-dark:#ebe0c8;--washi-deeper:#ddd0b3;--sumi:#2a1f0e;--sumi-light:#4a3728;--beni:#c0392b;--beni-deep:#8b1a10;--kogane:#d4892a;--kogane-light:#e8b060;--matcha:#4a5e3a;--indigo:#2c3e6b;--kaki:#8b6b3d;--cream:#faf5e8;--smoke:#c8bea8;--charcoal:#1a1208}html{scroll-behavior:smooth}body{background-color:var(--washi);color:var(--sumi);font-family:Noto Serif JP,Georgia,serif;line-height:1.7;overflow-x:hidden}body:before{content:"";pointer-events:none;z-index:999;opacity:.5;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='400' height='400'%3E%3Cfilter id='noise'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='4' stitchTiles='stitch'/%3E%3CfeColorMatrix type='saturate' values='0'/%3E%3C/filter%3E%3Crect width='400' height='400' filter='url(%23noise)' opacity='0.04'/%3E%3C/svg%3E");position:fixed;inset:0}h1,h2,h3,h4{font-family:Kaisei Tokumin,Noto Serif JP,serif;font-weight:700;line-height:1.2}.font-script{font-family:Yomogi,cursive}.font-display{font-family:Kaisei Tokumin,serif}.font-serif{font-family:Shippori Mincho,serif}.brush-underline{display:inline-block;position:relative}.brush-underline:after{content:"";background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 200 12'%3E%3Cpath d='M2,8 C20,3 50,10 80,6 C110,2 140,9 170,5 C185,3 195,7 198,6' stroke='%23C0392B' stroke-width='3' fill='none' stroke-linecap='round' stroke-linejoin='round' opacity='0.8'/%3E%3C/svg%3E") 50%/100% 100% no-repeat;width:100%;height:6px;position:absolute;bottom:-4px;left:0}@keyframes inkDrop{0%{opacity:0;transform:scale(.8)translateY(10px)}to{opacity:1;transform:scale(1)translateY(0)}}@keyframes float{0%,to{transform:translateY(0)rotate(-1deg)}50%{transform:translateY(-8px)rotate(1deg)}}@keyframes brushIn{0%{clip-path:inset(0 100% 0 0)}to{clip-path:inset(0 0% 0 0)}}@keyframes fadeUp{0%{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}@keyframes rotateSlow{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.animate-ink{animation:.8s ease-out forwards inkDrop}.animate-float{animation:6s ease-in-out infinite float}.animate-fadeUp{animation:.9s ease-out forwards fadeUp}
