@import "https://fonts.googleapis.com/css2?family=Noto+Serif+JP:wght@300;400;500;600&family=Shippori+Mincho:wght@400;500;600;700&display=swap";
:root{--bg:#f5f0e8;--bg-dark:#ede5d5;--ink-deep:#1a1714;--ink-mid:#3d3832;--ink-light:#7a7267;--ink-wash:#bab2a0;--sakura:#c9a0ab;--sakura-light:#e8d4d8;--gold:#9c8050;--border:#c8bfaf;--font-serif:"Shippori Mincho","Noto Serif JP",serif;--font-sans:"Noto Serif JP",serif}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth}body{background-color:var(--bg);color:var(--ink-deep);font-family:var(--font-serif);-webkit-font-smoothing:antialiased;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='100%25' height='100%25' filter='url(%23noise)' opacity='0.04'/%3E%3C/svg%3E");min-height:100vh;line-height:2;position:relative}body:after{content:"";opacity:.3;pointer-events:none;z-index:0;background-image:url(/sumie_bg.png);background-position:50%;background-repeat:no-repeat;background-size:cover;position:fixed;inset:0}.container{z-index:1;position:relative}body:before{content:"";pointer-events:none;z-index:100;border:2px solid #a0947840;margin:12px;position:fixed;inset:0}.container{max-width:860px;margin:0 auto;padding:5rem 2.5rem 4rem}header{text-align:center;margin-bottom:4rem;padding-bottom:2.5rem;position:relative}header:after{content:"";background:linear-gradient(to right,transparent,var(--ink-wash),transparent);width:120px;height:1px;position:absolute;bottom:0;left:50%;transform:translate(-50%)}h1{font-family:var(--font-serif);letter-spacing:.25em;color:var(--ink-deep);margin-bottom:1rem;font-size:2.6rem;font-weight:600;display:inline-block;position:relative}h1:after{content:"";background:linear-gradient(to right,var(--sakura),var(--ink-light),var(--sakura));opacity:.5;border-radius:2px;height:2px;position:absolute;bottom:-4px;left:0;right:0}header p{font-family:var(--font-serif);letter-spacing:.45em;color:var(--ink-light);margin-top:.75rem;font-size:.85rem}.chat-box{border:1px solid var(--border);background:#fffcf4b3;padding:3rem;position:relative;box-shadow:4px 4px #645a460a,8px 8px #645a4605,0 20px 60px #32281e14}.chat-box:before,.chat-box:after{content:"";border-color:var(--ink-wash);border-style:solid;width:20px;height:20px;position:absolute}.chat-box:before{border-width:2px 0 0 2px;top:-1px;left:-1px}.chat-box:after{border-width:0 2px 2px 0;bottom:-1px;right:-1px}.character-intro{border-bottom:1px solid var(--border);flex-direction:column;align-items:stretch;gap:2rem;margin-bottom:3rem;padding-bottom:2.5rem;display:flex;position:relative}.character-intro:after{content:"❀";background:var(--bg);color:var(--sakura);padding:0 .75rem;font-size:.85rem;position:absolute;bottom:-.7em;left:50%;transform:translate(-50%)}.avatar-container{width:100%;height:clamp(200px,40vh,320px);box-shadow:none;background:0 0;border:none;flex-shrink:0;animation:6s ease-in-out infinite mysticWaver;position:relative;overflow:hidden;-webkit-mask-image:radial-gradient(85% 100%,#000 40%,#0000 100%);mask-image:radial-gradient(85% 100%,#000 40%,#0000 100%);-webkit-mask-position:50%;mask-position:50%;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat}@keyframes mysticWaver{0%,to{-webkit-mask-size:100% 100%;mask-size:100% 100%}50%{-webkit-mask-size:105% 115%;mask-size:105% 115%}}.avatar-img{object-fit:cover;object-position:center 20%;filter:sepia(15%)contrast(1.05);width:100%;height:100%;animation:8s ease-in-out infinite gentleBreathe}@keyframes gentleBreathe{0%,to{filter:sepia(15%)contrast(1.05)brightness();transform:scale(1)}50%{filter:sepia(15%)contrast(1.05)brightness(1.08);transform:scale(1.03)}}.character-text h3{font-family:var(--font-serif);letter-spacing:.2em;color:var(--ink-deep);margin-bottom:.75rem;font-size:1.4rem;font-weight:600}.character-text p{color:var(--ink-mid);font-size:.95rem;line-height:2}.input-area{flex-direction:column;gap:1.25rem;display:flex}textarea{border:1px solid var(--border);width:100%;color:var(--ink-deep);font-size:1rem;font-family:var(--font-serif);resize:none;background:#fffcf8cc;border-radius:0;padding:1.25rem 1.5rem;line-height:2;transition:border-color .3s,box-shadow .3s}textarea::placeholder{color:var(--ink-wash);font-style:italic}textarea:focus{border-color:var(--ink-light);outline:none;box-shadow:inset 0 1px 4px #32281e14}button{background:var(--ink-deep);color:#f5f0e8;font-family:var(--font-serif);letter-spacing:.2em;cursor:pointer;border:none;padding:1.1rem 2rem;font-size:1rem;font-weight:500;transition:background .3s,letter-spacing .3s;position:relative;overflow:hidden}button:before{content:"";background:linear-gradient(90deg,#0000,#c9a0ab26,#0000);width:100%;height:100%;transition:left .5s;position:absolute;top:0;left:-100%}button:hover:before{left:100%}button:hover{background:var(--ink-mid);letter-spacing:.25em}button:disabled{background:var(--ink-wash);cursor:not-allowed;letter-spacing:.2em}.loading{text-align:center;color:var(--ink-light);letter-spacing:.15em;margin-top:2rem;font-size:.95rem;font-style:italic;animation:2s ease-in-out infinite breathe}@keyframes breathe{0%,to{opacity:.5}50%{opacity:1}}.response-area{border-left:2px solid var(--sakura);line-height:2.2;font-family:var(--font-serif);color:var(--ink-mid);background:#ede5d566;margin-top:2.5rem;padding:2rem 2.5rem;font-size:1rem;animation:1s ease-out forwards inkFadeIn;position:relative}.response-area:before{content:"⌁";color:var(--sakura);background:var(--bg);padding:0 .5rem;font-size:1.2rem;position:absolute;top:-.6em;left:1.5rem}@keyframes inkFadeIn{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}.brand-highlight{color:var(--ink-deep);background:linear-gradient(transparent 70%,var(--sakura-light)70%);margin:0 .1em;padding:0 .2em;font-size:1.25rem;font-weight:700;display:inline-block;position:relative}.response-h3{color:var(--ink-deep);border-left:4px solid var(--sakura-dark);margin-top:1.5rem;margin-bottom:.5rem;padding-left:.8rem;font-size:1.4rem;line-height:1.2}footer{text-align:center;letter-spacing:.2em;color:var(--ink-wash);border-top:1px solid var(--border);margin-top:5rem;padding-top:2rem;font-size:.8rem}.splash-screen{background-color:var(--bg);z-index:1000;cursor:pointer;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='100%25' height='100%25' filter='url(%23noise)' opacity='0.04'/%3E%3C/svg%3E"),url(/sumie_bg.png);background-position:50%;background-size:auto,cover;justify-content:center;align-items:center;transition:transform 1.2s cubic-bezier(.77,0,.175,1);display:flex;position:fixed;inset:0;overflow:hidden}.splash-screen.exit{transform:translateY(-100%)}.splash-screen:before{content:"";border:4px double var(--border);pointer-events:none;margin:20px;position:absolute;inset:0}.splash-content{text-align:center;animation:2.5s ease-in-out infinite fadeInOut}@keyframes fadeInOut{0%,to{opacity:.8;transform:translateY(0)}50%{opacity:1;transform:translateY(-5px)}}.splash-avatar{width:300px;height:300px;box-shadow:none;background:0 0;border:none;margin:0 auto 2rem;animation:6s ease-in-out infinite mysticWaverSplash;-webkit-mask-image:radial-gradient(circle,#000 40%,#0000 100%);mask-image:radial-gradient(circle,#000 40%,#0000 100%);-webkit-mask-position:50%;mask-position:50%;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat}@keyframes mysticWaverSplash{0%,to{-webkit-mask-size:100% 100%;mask-size:100% 100%}50%{-webkit-mask-size:110% 110%;mask-size:110% 110%}}.splash-avatar img{object-fit:cover;filter:sepia(10%);width:100%;height:100%;animation:8s ease-in-out infinite gentleBreathe}.splash-title{font-family:var(--font-serif);letter-spacing:.4em;color:var(--ink-deep);margin-bottom:.5rem;font-size:3rem;position:relative}.splash-subtitle{font-family:var(--font-serif);letter-spacing:.6em;color:var(--ink-light);margin-bottom:2rem;font-size:1rem}.splash-description{font-family:var(--font-serif);color:var(--ink-mid);letter-spacing:.1em;max-width:600px;margin-bottom:3rem;margin-left:auto;margin-right:auto;font-size:1.1rem}.enter-guide{font-family:var(--font-serif);letter-spacing:.3em;color:var(--gold);border:1px solid var(--gold);margin-top:0;margin-bottom:2rem;padding:.8rem 2rem;font-size:.9rem;display:inline-block;position:relative}.splash-disclaimer{color:var(--ink-light);opacity:.8;margin-top:1rem;font-size:.8rem}.enter-guide:before,.enter-guide:after{content:"❀";margin:0 1rem;font-size:.7rem}@media (max-width:640px){.container{padding:3rem 1.25rem}h1{letter-spacing:.15em;font-size:2rem}.chat-box{padding:2rem 1.5rem}.character-intro{text-align:center;flex-direction:column;align-items:stretch}.avatar-container{width:100%;height:220px}}.list-container{max-width:1000px;margin:0 auto;padding:2rem}.list-header{text-align:center;margin-top:2rem;margin-bottom:3rem}.list-title-link{margin-bottom:1rem;text-decoration:none;transition:opacity .3s;display:inline-block}.list-title-link:hover{opacity:.7}.list-title{color:var(--ink-deep);border-bottom:1px solid var(--sakura-light);margin:0;padding-bottom:1rem;font-size:2rem;font-weight:400}.list-description{color:var(--ink-medium);font-size:1rem;line-height:1.6}.section-title{color:var(--ink-deep);text-align:center;margin-bottom:2rem;font-size:1.6rem}.items-grid{grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:2rem;margin-bottom:4rem;display:grid}.item-card{background-color:var(--paper-bg);border:1px solid #0000000d;flex-direction:column;padding:1.5rem;display:flex;box-shadow:0 4px 15px #0000000d}.item-header{justify-content:space-between;margin-bottom:.5rem;font-size:.8rem;display:flex}.item-category{color:var(--sakura-dark);font-weight:700}.item-brand{color:var(--ink-medium)}.item-name{color:var(--ink-deep);margin-bottom:.5rem;font-size:1.3rem}.item-meta{color:var(--ink-medium);border-bottom:1px solid #0000001a;margin-bottom:1rem;padding-bottom:.5rem;font-size:.85rem}.item-desc{color:var(--ink-deep);flex-grow:1;font-size:.95rem;line-height:1.5}.request-card{background-color:var(--paper-bg);border:1px solid #d6b9ba4d;margin-bottom:3rem;padding:3rem;box-shadow:0 6px 20px #00000014}.request-description{text-align:center;color:var(--ink-medium);margin-bottom:2rem;line-height:1.6}.request-form{flex-direction:column;gap:1.5rem;max-width:600px;margin:0 auto;display:flex}.form-group{flex-direction:column;gap:.5rem;display:flex}.form-group label{color:var(--ink-deep);font-size:.9rem;font-weight:700}.form-group input,.form-group textarea{color:var(--ink-deep);background-color:#0000;border:1px solid #0003;padding:.8rem;font-family:inherit;font-size:1rem}.form-group input:focus,.form-group textarea:focus{border-color:var(--sakura-dark);outline:none;box-shadow:0 0 0 2px #b8868933}.submit-button{background-color:var(--ink-deep);color:#fff;border:1px solid var(--ink-deep);cursor:pointer;margin-top:1rem;padding:1rem;font-size:1.1rem;transition:background-color .2s}.submit-button:hover:not(:disabled){background-color:var(--ink-medium)}.submit-button:disabled{opacity:.7;cursor:not-allowed}.form-success{color:var(--sakura-dark);text-align:center;border-left:4px solid var(--sakura-dark);background-color:#b886891a;padding:1rem}.form-error{color:#d32f2f;margin-top:.5rem;font-size:.9rem}.list-link-container{text-align:center;border-top:1px solid var(--sakura-light);margin-top:2rem;padding-top:1.5rem}.list-link{border:1px solid var(--sakura-dark);color:var(--sakura-dark);padding:.8rem 1.5rem;font-weight:700;text-decoration:none;transition:all .3s;display:inline-block}.share-link-container{text-align:center;margin-top:2.5rem}.share-link{color:#fff;letter-spacing:.05em;background-color:#000;border:1px solid #000;justify-content:center;align-items:center;gap:.5rem;padding:.8rem 1.5rem;font-family:sans-serif;font-size:.95rem;font-weight:700;text-decoration:none;transition:all .3s;display:inline-flex}.share-link:hover{color:#fff;background-color:#333}.x-icon{fill:currentColor;width:1.2rem;height:1.2rem}.list-link:hover{background-color:var(--sakura-light);color:var(--ink-deep)}.bottom-back-link-container{text-align:center;margin-top:2rem;margin-bottom:3rem}.bottom-back-link{border:1px solid var(--sakura-dark);color:var(--sakura-dark);padding:.8rem 3rem;font-weight:700;text-decoration:none;transition:all .3s;display:inline-block}.bottom-back-link:hover{background-color:var(--sakura-light);color:var(--ink-deep)}@media (max-width:600px){.request-card{padding:1.5rem}}
