@import "https://fonts.googleapis.com/css2?family=Shippori+Mincho:wght@500;700;800&display=swap";:root{--sumi:#1a1515;--shu:#cc3528;--kin:#dcb354;--washi:#f4efdf;--ruri:#2a4b7c;--murasaki:#5c3066;--sumi-soft:#1a1515a6;--gold-soft:#dcb35459;--paper-shadow:#0000001f;--gold-texture:url(/metallic-gold-background.jpg);--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark;font-family:Shippori Mincho,Yu Mincho,Hiragino Mincho ProN,Noto Serif JP,serif}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial}}*,:before,:after{box-sizing:border-box}body{min-height:100svh;color:var(--washi);background:radial-gradient(circle at 12% 22%, var(--murasaki) 0%, transparent 46%), radial-gradient(circle at 88% 78%, var(--ruri) 0%, transparent 46%), linear-gradient(150deg, #140f17 0%, var(--sumi) 100%);background-attachment:fixed;margin:0;line-height:1.7}.back:before{content:"";opacity:.045;pointer-events:none;z-index:-1;background-image:url(/wagara.png);position:fixed;inset:0}.app{border:4px solid #0000;border-image-source:var(--gold-texture);border-image-slice:120;border-radius:0;width:min(1120px,94vw);margin:40px auto;padding:24px;position:relative;box-shadow:16px 16px #000000e6,0 0 50px #cc352833}.back:before{content:"";opacity:.05;z-index:-1;background-image:url(/wagara.png);position:fixed;inset:0}@media (width<=768px){.app{margin:20px auto;padding:16px;box-shadow:8px 8px #000000e6,0 0 30px #cc352833}}.app:before{content:"";border:1px solid #0000;border-image-source:var(--gold-texture);opacity:.5;pointer-events:none;border-image-slice:120;position:absolute;inset:8px}.scene{border-bottom:2px dashed var(--shu);flex-direction:column;justify-content:space-between;align-items:center;gap:16px;margin-bottom:24px;padding-bottom:16px;display:flex}@media (width<=768px){.scene{flex-direction:column;margin-bottom:16px;padding-bottom:12px}}.moon{background:var(--shu);width:56px;height:56px;box-shadow:0 0 40px var(--shu), inset -10px -10px 0 #0006;border-radius:50%;flex-shrink:0}@media (width<=768px){.moon{width:40px;height:40px}}.cloud{color:var(--kin);letter-spacing:.5em;text-shadow:2px 2px 0 var(--sumi);text-align:center;background:repeating-linear-gradient(45deg,#0000,#0000 2px,#dcb35426 2px 4px);padding:4px 16px;font-size:1.1rem;font-weight:800}@media (width<=768px){.cloud{letter-spacing:.3em;padding:2px 8px;font-size:.9rem}}.card{border:3px solid var(--sumi);background-color:var(--washi);background-blend-mode:normal, multiply, screen, multiply;color:var(--sumi);background-image:linear-gradient(#fffcf4eb,#eadfc2d6),url(/japanese-paper.jpg),radial-gradient(circle at 20% 18%,#ffffff4d,#0000 26%),radial-gradient(circle at 78% 72%,#936b3414,#0000 30%);background-position:50%,50%,50%,50%;background-repeat:no-repeat,repeat,no-repeat,no-repeat;background-size:cover,700px,auto,auto;border-radius:2px;padding:24px;position:relative;box-shadow:inset 0 0 30px #0000000d,inset 0 0 0 1px #82602c1f}.register-page,.calendar-page{gap:20px;display:grid}.calendar-jump-button{z-index:15;background:linear-gradient(#f4efdff5, #f4efdff5), var(--gold-texture);width:auto;max-width:min(280px,100vw - 32px);color:var(--sumi);border-color:#0000;border-image-source:var(--gold-texture);background-position:50%,50%;background-size:auto,cover;border-image-slice:120;margin-top:0;padding:14px 18px;position:fixed;bottom:20px;right:20px;box-shadow:6px 6px #4f310c4d}.nav{flex-direction:row;gap:12px;margin-bottom:24px;display:flex}.header-badges{flex-wrap:wrap;justify-content:flex-end;gap:12px;margin-bottom:10px;display:flex}.yokai-badge{color:var(--shu);white-space:nowrap;border:3.5px solid #cc3528e6;border-radius:2px;align-items:center;gap:8px;padding:8px 12px;font-size:.9rem;font-weight:800;animation:.6s ease-out forwards hanko;display:inline-flex;box-shadow:0 0 #cc352800}.image-badge{gap:12px;padding:12px}@keyframes hanko{0%{opacity:0;transform:translateY(-10px)rotate(-18deg)scale(1.5);box-shadow:0 0 #cc352800}45%{opacity:1;transform:translateY(2px)rotate(4deg)scale(.92);box-shadow:0 0 #cc352800}65%{opacity:1;transform:translateY(0)rotate(-2deg)scale(1.06);box-shadow:0 0 18px #cc35282e}to{opacity:1;transform:rotate(-4deg)scale(1);box-shadow:2px 2px #cc352833}}.nav-button{background:linear-gradient(#f4efdfe6, #f4efdfe6), var(--gold-texture);width:auto;color:var(--sumi);border-color:#0000;border-image-source:var(--gold-texture);background-position:50%,50%;background-size:auto,cover;border-image-slice:120;flex:1;margin-top:0;box-shadow:4px 4px #dcb35480}.nav-button.active{background:var(--shu);color:var(--washi);border-color:var(--shu);box-shadow:4px 4px #00000059}.header{border-bottom:2px solid var(--sumi);justify-content:space-between;align-items:flex-start;gap:10px;margin-bottom:20px;padding-bottom:12px;display:flex}@media (width<=768px){.header-badges{justify-content:flex-start;gap:8px;margin-bottom:8px}.header{flex-direction:column-reverse;margin-bottom:16px;padding-bottom:8px}}.eyebrow{letter-spacing:.3em;color:var(--shu);writing-mode:vertical-rl;margin:0;font-size:.85rem;font-weight:800;position:absolute;top:24px;right:24px}h1{text-shadow:1px 1px #4f310c3d;margin:0 0 4px;font-size:1.8rem;font-weight:800}@media (width<=768px){h1{margin:0 0 2px;font-size:1.5rem}}.sub{color:#555;margin:0;font-size:.95rem;font-weight:700}@media (width<=768px){.sub{font-size:.8rem}}.yokai{color:var(--shu);border:3px solid var(--shu);white-space:nowrap;background:0 0;border-radius:2px;align-items:center;gap:8px;padding:8px 12px;font-size:1.1rem;font-weight:800;display:flex;transform:rotate(-4deg);box-shadow:2px 2px #cc352833}@media (width<=768px){.yokai{padding:6px 10px;font-size:.9rem;transform:rotate(-2deg)}.yokai-badge{padding:6px 10px;font-size:.9rem}.image-badge{gap:10px;padding:9px 12px}}.yokai-img{object-fit:cover;background:0 0;flex-shrink:0;width:88px;height:88px}@media (width<=768px){.yokai-img{width:54px;height:54px}}.yokai-badge-label{letter-spacing:.02em;font-size:1.5rem;line-height:1;display:inline-block;transform:translateY(1px)}@media (width<=768px){.yokai-badge-label{font-size:1.18rem}}.form{gap:16px;margin-top:12px;display:grid}.camera-accordion{gap:0;width:100%;display:grid}.camera-trigger{writing-mode:horizontal-tb;letter-spacing:.14em;width:100%;color:var(--kin);box-shadow:4px 4px 0 var(--shu);z-index:1;background-position:50%,50%;background-size:auto,220px;margin-top:0;padding:14px 18px;position:relative}.camera-trigger-label{display:inline-block}.camera-scroll{opacity:0;background:linear-gradient(#f4efdffa,#e2d3adf2) 50%,url(/japanese-paper.jpg) 50%/520px;border-bottom:2px solid #4f310c38;border-left:2px solid #4f310c38;border-right:2px solid #4f310c38;max-height:0;transition:max-height .5s cubic-bezier(.22,1,.36,1),opacity .24s;position:relative;overflow:hidden}.camera-scroll:before,.camera-scroll:after{content:"";height:14px;position:absolute;left:14px;right:14px;box-shadow:inset 0 0 0 1px #fff1cc29}.camera-scroll:before{top:0}.camera-scroll:after{bottom:0}.camera-accordion.is-open .camera-scroll{opacity:1;max-height:680px}.camera-scroll-inner{align-content:start;justify-items:center;gap:14px;width:100%;min-width:0;height:100%;padding:28px 18px;display:grid}.camera-preview-frame{aspect-ratio:4/3;background:linear-gradient(#120f0ff5,#2d1a0ef0),radial-gradient(circle,#cc352833,#0000 55%);width:100%;max-width:520px;overflow:hidden;box-shadow:inset 0 0 0 1px #fff0d614}.camera-preview{object-fit:cover;width:100%;height:100%;display:block}.camera-capture-button{width:min(320px,100%);margin-top:0}.camera-capture-button:disabled{cursor:not-allowed;opacity:.72}.camera-canvas{display:none}.summary-strip{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;display:grid}.summary-item{border:2px solid #0000;background:#dcb35424;border-image-source:linear-gradient(135deg,#dcb3548c,#87601e73);border-image-slice:1;gap:6px;padding:14px 16px;display:grid}.summary-label{color:#6a5b44;font-size:.85rem;font-weight:800}label{color:var(--sumi);border-left:4px solid var(--shu);padding-left:8px;font-size:.9rem;font-weight:800}input{border:none;border-bottom:2px solid var(--sumi);color:var(--sumi);box-sizing:border-box;background:#ffffff40;width:100%;padding:10px;font-family:inherit;font-size:1rem;font-weight:700;transition:all .3s}@media (width<=768px){.calendar-jump-button{max-width:calc(100vw - 24px);padding:12px 14px;bottom:12px;right:12px;box-shadow:4px 4px #4f310c42}.camera-trigger{padding:12px 14px}.camera-accordion.is-open .camera-scroll{max-height:420px}.camera-scroll-inner{padding:24px 14px}input{padding:8px;font-size:16px}}input:focus{border-bottom-color:var(--shu);background:#cc35280d;outline:none}button{border:2px solid var(--sumi);background:var(--sumi);color:var(--kin);letter-spacing:.2em;cursor:pointer;box-shadow:4px 4px 0 var(--shu);box-sizing:border-box;border-radius:0;width:100%;margin-top:8px;padding:14px 12px;font-family:inherit;font-size:1.1rem;font-weight:800;transition:all .2s}@media (width<=768px){button{box-shadow:2px 2px 0 var(--shu);padding:12px 10px;font-size:.95rem}}button:hover{box-shadow:2px 2px 0 var(--shu);color:var(--shu);transform:translate(2px,2px)}.status{color:var(--ruri);margin-top:8px;font-size:.9rem;font-weight:700}.error{color:var(--shu);margin-top:8px;font-size:.9rem;font-weight:800}.result{background:var(--sumi);border:2px solid #0000;border-image-source:var(--gold-texture);color:var(--washi);border-image-slice:120;border-radius:0;margin-top:24px;padding:16px;position:relative}.smoke{color:#e8c76d;letter-spacing:.3em;border-bottom:1px solid #e8c76d80;margin-bottom:12px;padding-bottom:8px;font-size:.85rem}.yokai-appear{border:2px solid var(--shu);background-color:#000;border-radius:2px;flex-direction:column;align-items:center;margin-bottom:20px;padding:16px 12px;display:flex;position:relative;overflow:hidden}.yokai-appear-bg{object-fit:cover;object-position:center;opacity:.92;pointer-events:none;z-index:0;filter:saturate(1.05)brightness(1.02);width:min(240px,72%);height:min(240px,72%);position:absolute;top:50%;left:50%}.yokai-appear-content{z-index:1;flex-direction:column;align-items:center;gap:12px;width:100%;padding:8px 0;display:flex;position:relative}.yokai-display{object-fit:cover;width:120px;height:120px;filter:drop-shadow(0 0 8px var(--shu));background:0 0;border-radius:4px}@media (width<=768px){.yokai-display{width:80px;height:80px}.yokai-appear{padding:12px 8px}.yokai-appear-bg{width:min(180px,78%);height:min(180px,78%);transform:translate(-50%,-54%)}}.yokai-text{color:var(--shu);letter-spacing:.03em;margin:0;font-size:1.32rem;font-weight:800;line-height:1.15}.result h2{color:var(--shu);margin:0 0 12px;font-size:1.4rem}@media (width<=768px){.result h2{margin:0 0 8px;font-size:1.1rem}}.product,.category,.expiry,.reason{margin:6px 0;font-size:.95rem}.item-image{border:3px solid var(--sumi);background:var(--washi);filter:sepia(.4)contrast(1.2);width:100%;max-width:140px;height:auto;margin-top:12px;padding:4px}.calendar-controls{justify-content:space-between;align-items:center;gap:12px;display:flex}.month-button{background:linear-gradient(#f4efdfe6, #f4efdfe6), var(--gold-texture);width:auto;color:var(--sumi);border-color:#0000;border-image-source:var(--gold-texture);background-position:50%,50%;background-size:auto,cover;border-image-slice:120;margin-top:0;padding:12px 16px;box-shadow:3px 3px #dcb35480}.calendar-month{text-align:center;flex:1;font-size:1.25rem;font-weight:800}.calendar-layout{grid-template-columns:minmax(0,2fr) minmax(280px,1fr);gap:20px;display:grid}.calendar-grid-wrapper{gap:8px;display:grid}.calendar-grid{grid-template-columns:repeat(7,minmax(0,1fr));gap:8px;display:grid}.weekday{text-align:center;color:var(--shu);border-bottom:2px solid #cc35284d;padding:6px 0;font-weight:800}.calendar-cell{background:#fffcf5f2;border:2px solid #1a15152e;align-content:start;gap:10px;min-height:132px;padding:10px;display:grid;position:relative}.calendar-cell.outside{opacity:.45;background:#f4efdf73}.calendar-cell.today{border-color:var(--shu);box-shadow:inset 0 0 0 1px var(--shu)}.calendar-cell.target-date{border-color:#dcb354eb;box-shadow:inset 0 0 0 2px #dcb35480,0 0 0 2px #dcb35429}.calendar-cell-head{justify-content:space-between;align-items:center;gap:8px;display:flex}.calendar-date{font-size:1rem;font-weight:800}.calendar-count{flex-shrink:0}.calendar-stamp{object-fit:contain;filter:drop-shadow(1px 2px 2px #4f310c2e);width:42px;height:42px}.calendar-events{gap:6px;display:grid}.calendar-yokai-events{grid-template-columns:repeat(2,minmax(0,1fr))}.calendar-yokai-button{width:100%;color:var(--sumi);box-shadow:none;letter-spacing:0;background-color:#0000;background-image:none;background-position:0 0;background-repeat:repeat;background-size:auto,220px;background-attachment:scroll;background-origin:padding-box;background-clip:border-box;border:none;margin:0;padding:6px}.calendar-yokai-button:hover{color:var(--sumi);transform:translate(1px,1px);box-shadow:1px 1px #4f310c38}.calendar-yokai-icon{aspect-ratio:1;object-fit:contain;width:100%;display:block}.calendar-event,.calendar-more{border-left:4px solid var(--ruri);text-overflow:ellipsis;white-space:nowrap;background:#2a4b7c1f;justify-content:flex-start;align-items:flex-start;margin:0;padding:0;font-size:.8rem;font-weight:700;display:inline-flex;overflow:hidden}.calendar-more{width:100px;box-shadow:none;color:#6a4a12;background:0 0;border:none;margin:0}.calendar-more:hover{color:#6a4a12;box-shadow:none}.hanko-pop{animation:.65s ease-out hanko}.calendar-modal-backdrop{z-index:20;background:#1a151585;place-items:center;padding:20px;display:grid;position:fixed;inset:0}.calendar-modal{background:linear-gradient(#fffbf2fa,#efe4c6f2),url(/japanese-paper.jpg) 0 0/620px;border:3px solid #4f310c38;width:min(560px,100%);padding:20px;position:relative;box-shadow:16px 16px #1a15153d}.calendar-modal-close{width:auto;box-shadow:none;color:var(--sumi);background:0 0;border:none;margin-top:0;padding:8px 12px;font-size:1.5rem;position:absolute;top:10px;right:10px}.calendar-modal-close:hover{box-shadow:none;color:var(--shu);transform:none}.calendar-modal-hero{justify-content:space-between;align-items:center;gap:12px;margin-bottom:16px;padding-right:36px;display:flex}.calendar-modal-yokai{aspect-ratio:1;object-fit:contain;filter:drop-shadow(0 8px 12px #1a151533);width:min(180px,42vw)}.calendar-modal-stamp-wrap{flex-shrink:0}.calendar-modal-stamp{object-fit:contain;width:100px;height:100px}.calendar-modal-content{gap:8px;display:grid}.calendar-overflow-modal{width:min(520px,100%)}.calendar-overflow-list{gap:10px;margin-top:8px;display:grid}.calendar-overflow-item{width:100%;color:var(--sumi);letter-spacing:0;background:linear-gradient(#fff9eef5,#ece1c5eb),url(/japanese-paper.jpg) 0 0/280px;grid-template-columns:68px minmax(0,1fr);align-items:center;gap:12px;margin-top:0;padding:10px 12px;display:grid}.calendar-overflow-item:hover{color:var(--sumi)}.calendar-overflow-icon{aspect-ratio:1;object-fit:contain;width:100%;display:block}.calendar-overflow-copy{text-align:left;gap:4px;display:grid}.calendar-overflow-copy strong{font-size:1rem}.calendar-overflow-copy span{color:#5a5145;font-size:.9rem}.calendar-modal-kicker{color:var(--shu);letter-spacing:.16em;margin:0;font-weight:800}.calendar-modal-title{color:var(--sumi);margin:0;font-size:1.4rem}.calendar-modal-meta,.calendar-modal-reason{color:#4f4f4f;margin:0;line-height:1.5}.calendar-modal-reason{border-top:1px solid #4f310c29;margin-top:4px;padding-top:10px}.calendar-complete-button{margin-top:10px}.calendar-sidebar{background:linear-gradient(#fff9eef0,#eae0c7e0) 50%/cover,url(/japanese-paper.jpg) 50%/620px;border:2px solid #1a151533;align-content:start;gap:18px;padding:18px;display:grid;box-shadow:inset 0 0 0 1px #82602c26}.calendar-sidebar h2{color:var(--sumi);letter-spacing:.06em;margin:0;font-size:1.15rem}.deadline-list{gap:18px;display:grid}.deadline-item{background:linear-gradient(#fffcf6f5,#f1e8d0eb) 50%,radial-gradient(circle at 100% 0,#cc35281f,#0000 30%) 100% 0,url(/japanese-paper.jpg) 50%/480px;border:2px solid #442b1533;transition:transform .35s,box-shadow .35s,border-color .35s;position:relative;overflow:hidden;box-shadow:0 8px 18px #3121161f,inset 0 0 0 1px #dcb3542e}.deadline-item:before{content:"";pointer-events:none;border:1px solid #82602c24;position:absolute;inset:10px}.deadline-item:hover{border-color:#cc352866;transform:translateY(-4px)rotate(-.6deg);box-shadow:0 12px 24px #3121162e,inset 0 0 0 1px #dcb3544d}.deadline-card-header{background:linear-gradient(180deg, var(--shu), #000000eb), radial-gradient(circle at top right, #cc35281f, transparent 30%), url(/japanese-paper.jpg);border-bottom:2px solid #442b151f;height:190px;transition:height .45s cubic-bezier(.22,1,.36,1);position:relative;overflow:hidden}.deadline-item:hover .deadline-card-header{height:112px}.deadline-card-image{object-fit:contain;object-position:center;filter:drop-shadow(0 14px 18px #120f0f47);background:0 0;width:100%;height:100%;padding:18px 22px 10px;transition:transform .45s cubic-bezier(.22,1,.36,1),filter .45s;display:block;transform:scale(1)}.deadline-item:hover .deadline-card-image{filter:drop-shadow(0 10px 14px #120f0f2e);transform:scale(.76)translateY(8px)}.deadline-card-crest{z-index:1;color:#fff7ea;background:#cc3528eb;border-radius:999px;place-items:center;width:62px;height:62px;font-size:1.1rem;font-weight:800;display:grid;position:absolute;top:12px;right:12px;box-shadow:0 0 0 3px #fff7e64d}.deadline-card-crest-image{background:linear-gradient(#fff9eefa,#f0e4c5eb),#cc3528eb;padding:3px;overflow:hidden}.deadline-card-crest-image img{object-fit:cover;filter:contrast(1.04)saturate(.94);border-radius:999px;width:100%;height:100%;display:block}.deadline-card-body{z-index:1;align-content:start;gap:4px;height:104px;padding:16px 18px 18px;transition:height .45s cubic-bezier(.22,1,.36,1);display:grid;position:relative}.deadline-item:hover .deadline-card-body{height:214px}.deadline-kicker{letter-spacing:.24em;color:#4f310cb3;margin:0;font-size:.72rem;font-weight:800}.deadline-date,.deadline-name,.deadline-meta,.sidebar-empty{margin:0}.deadline-date{color:var(--shu);margin-bottom:2px;font-size:1.15rem;font-weight:800}.deadline-name{color:var(--sumi);margin-bottom:6px;font-size:1.02rem;font-weight:800;line-height:1.4}.deadline-card-details{opacity:0;gap:6px;margin-top:10px;transition:opacity .28s,transform .4s cubic-bezier(.22,1,.36,1);display:grid;transform:translateY(12px)}.deadline-item:hover .deadline-card-details{opacity:1;transition-delay:.14s;transform:translateY(0)}.deadline-meta,.sidebar-empty{color:#4f4f4f;font-size:.9rem}.empty-state{color:var(--sumi);text-align:center;background:#dcb35414;border:2px dashed #dcb354e6;padding:30px 20px;font-weight:800}@media (width<=768px){.item-image{max-width:100px;margin-top:8px}.summary-strip{grid-template-columns:1fr}.calendar-controls{flex-wrap:wrap}.calendar-month{order:-1;width:100%}.month-button{flex:1}.calendar-grid{gap:6px}.calendar-cell{min-height:92px;padding:8px}.calendar-event,.calendar-more{font-size:.7rem}.calendar-yokai-events{grid-template-columns:repeat(1,minmax(0,1fr));gap:4px;max-width:5vh}@media (width<=480px){.calendar-yokai-events{width:3vh}}.calendar-yokai-button{padding:4px}.calendar-stamp{width:25px;height:25px;position:absolute;top:30px;right:0;transform:rotate(-12deg)}.calendar-modal{padding:16px}.calendar-overflow-item{grid-template-columns:56px minmax(0,1fr);gap:10px;padding:8px 10px}.calendar-modal-hero{align-items:flex-start}.calendar-modal-stamp{width:72px;height:72px}.calendar-sidebar{padding:14px}.deadline-card-header{height:150px}.deadline-item:hover .deadline-card-header{height:100px}.deadline-card-body{height:96px;padding:14px}.deadline-item:hover .deadline-card-body{height:198px}.deadline-date{font-size:1rem}.deadline-card-image{padding:14px 18px 8px}.deadline-card-crest{width:56px;height:56px}}@media (width<=980px){.calendar-layout{grid-template-columns:1fr}}
