:root{--night: #191726;--night2: #25223a;--night3: #332f4d;--washi: #f3ead7;--washi2: #e8dcc2;--ink: #1f1a17;--ink-soft: #5a524a;--blue: #3d5a80;--red: #b23a48;--gold: #d9a441;--ghost: #a8f0c6;--tsunagi: #6fe3d4;--ghost-dim: rgba(168, 240, 198, .35);--radius: 16px;--jp: "Zen Maru Gothic", "Hiragino Maru Gothic ProN", "Hiragino Sans", system-ui, sans-serif;--jp-title: "Zen Antique", "Hiragino Mincho ProN", serif;--fr: "Libre Bodoni", "Bodoni 72", Georgia, serif;font-family:var(--jp);color-scheme:dark}*{box-sizing:border-box}html,body{margin:0;height:100%;background:var(--night);background-image:radial-gradient(ellipse at 50% -10%,#34305a 0%,var(--night) 60%);color:var(--washi);overflow:hidden;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;touch-action:manipulation}#app{height:100%;display:flex;flex-direction:column;padding:env(safe-area-inset-top) env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left)}.screen{flex:1;min-height:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px;padding:20px 16px;text-align:center;overflow-y:auto;width:100%;max-width:640px;margin:0 auto}.screen>*{flex-shrink:0}.screen.title,.screen.menu,.screen.appear,.screen.result,.screen.stamp-screen{justify-content:flex-start}.screen.title>:first-child,.screen.menu>:first-child,.screen.appear>:first-child,.screen.result>:first-child,.screen.stamp-screen>:first-child{margin-top:auto}.screen.title>:last-child,.screen.menu>:last-child,.screen.appear>:last-child,.screen.result>:last-child,.screen.stamp-screen>:last-child{margin-bottom:auto}h1,h2{font-family:var(--jp-title);font-weight:400;margin:0}h2{font-size:clamp(1.5rem,6vw,2rem);color:var(--ghost)}p{margin:0}.subtitle,.tagline{opacity:.8}.hint{font-size:1.05rem;color:var(--ghost);min-height:1.5em}.hint.small{font-size:.85rem;color:var(--washi);opacity:.6}.btn{font:700 1.05rem var(--jp);border:0;border-radius:999px;padding:12px 26px;cursor:pointer;transition:transform .08s}.btn:active{transform:scale(.96)}.btn.primary{background:var(--washi);color:var(--ink);box-shadow:0 4px 0 var(--washi2),0 0 24px #f3ead733}.btn.secondary{background:var(--night3);color:var(--washi)}.btn.big{font-size:1.3rem;padding:16px 44px}.btn.ghost-btn{background:transparent;color:var(--ghost);border:2px dashed var(--ghost-dim)}.link{background:none;border:0;color:var(--washi);opacity:.55;font:500 .9rem var(--jp);text-decoration:underline;cursor:pointer}.actions{display:flex;gap:12px;justify-content:center;flex-wrap:wrap;min-height:52px}.yokai{width:100%;height:auto;overflow:visible}.yokai-letter{font:700 34px var(--fr);fill:var(--ink)}.madame{width:100%;height:auto}.title{gap:22px;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 400 170'%3E%3Cpath fill='%2326223f' d='M0 170V112l22-6V92h26v12l18-8 20 8V84h34v18l14-6V80h28l12-10 12 10v18l22-8 24 8V86h40v14l16-6 18 6V90h30v14l20-6V170Z'/%3E%3Cpath fill='%233b2a3e' d='M0 132h400v2H0z' opacity='.5'/%3E%3Cg fill='%2315121f'%3E%3Cpath d='M-6 170v-52l14-14h76l14 14v52z'/%3E%3Cpath d='M-10 120l20-22h72l20 22z'/%3E%3Cpath d='M4 98h70l-6-8H10z'/%3E%3Cpath d='M104 170v-66h48v66z'/%3E%3Cpath d='M100 106h56v-6h-56z'/%3E%3Cpath d='M168 170v-44l10-12h64l10 12v44z'/%3E%3Cpath d='M162 128l18-20h60l18 20z'/%3E%3Cpath d='M276 170v-74h52v74z'/%3E%3Cpath d='M270 98h64v-7h-64z'/%3E%3Cpath d='M336 170v-50l12-12h50l12 12v50z'/%3E%3Cpath d='M330 122l20-20h48l12 14v6z'/%3E%3Cpath d='M94 170V40h3v130z'/%3E%3Cpath d='M86 50h19v3H86z'/%3E%3Cpath d='M158 170V96h2.4v74z'/%3E%3Cpath d='M150 96h18a9 9 0 0 1-18 0z'/%3E%3C/g%3E%3Cpath d='M0 58Q96 74 200 62T400 56' fill='none' stroke='%2315121f' stroke-width='1.4'/%3E%3Cpath d='M0 44Q96 60 200 48T400 42' fill='none' stroke='%2315121f' stroke-width='1.2'/%3E%3Cg fill='%234a2230' stroke='%2315121f' stroke-width='1.2'%3E%3Cellipse cx='30' cy='63' rx='6' ry='8'/%3E%3Cellipse cx='70' cy='68' rx='6' ry='8'/%3E%3Cellipse cx='130' cy='68' rx='6' ry='8'/%3E%3Cellipse cx='190' cy='64' rx='6' ry='8'/%3E%3Cellipse cx='250' cy='62' rx='6' ry='8'/%3E%3Cellipse cx='310' cy='62' rx='6' ry='8'/%3E%3Cellipse cx='370' cy='60' rx='6' ry='8'/%3E%3C/g%3E%3Cg fill='%232a2440'%3E%3Crect x='14' y='130' width='14' height='18'/%3E%3Crect x='44' y='130' width='14' height='18'/%3E%3Crect x='184' y='136' width='12' height='16'/%3E%3Crect x='214' y='136' width='12' height='16'/%3E%3Crect x='288' y='112' width='12' height='16'/%3E%3Crect x='306' y='112' width='12' height='16'/%3E%3Crect x='352' y='132' width='14' height='18'/%3E%3C/g%3E%3C/svg%3E") center bottom / 100% auto no-repeat}.logo{display:flex;flex-direction:column;align-items:center;gap:6px}.logo h1{font-size:clamp(2.6rem,13vw,4.6rem);line-height:1.12;color:var(--washi);letter-spacing:.06em;text-shadow:0 2px 0 rgba(16,12,30,.6),0 0 26px rgba(243,234,215,.22)}.logo h1 .logo-place{display:flex;align-items:center;justify-content:center;gap:.5em;margin-bottom:.1em;font-size:.46em;letter-spacing:.45em;text-indent:.45em;color:var(--gold);text-shadow:0 2px 0 rgba(16,12,30,.6)}.logo h1 .logo-place:before,.logo h1 .logo-place:after{content:"";width:1.7em;height:2px;border-radius:1px;background:currentColor;opacity:.75}.logo-fr{font:italic 500 clamp(1.05rem,4.8vw,1.45rem) var(--fr);color:var(--ghost);letter-spacing:.03em;text-shadow:0 0 10px var(--ghost-dim),0 0 24px rgba(168,240,198,.3)}.title-ghosts{display:flex;gap:10px}.title-ghosts .yokai{width:76px;animation:float 3.2s ease-in-out infinite}.title-ghosts .yokai:nth-child(2){animation-delay:-1s}.title-ghosts .yokai:nth-child(3){animation-delay:-2.1s}@keyframes float{50%{transform:translateY(-10px) rotate(-3deg)}}.intro{justify-content:flex-end}.portrait{width:min(46vw,200px);animation:float 4s ease-in-out infinite}.dialog{width:100%;background:var(--washi);color:var(--ink);border-radius:var(--radius);padding:18px 18px 16px;text-align:left;display:flex;flex-direction:column;gap:12px;border:3px solid var(--ink)}.portrait>.madame,.appear-art>.madame{max-height:44vh}:is(.mission-art,.portrait.small,.carnet-ghost-art):has(>.madame){aspect-ratio:1;overflow:hidden}:is(.mission-art,.portrait.small,.carnet-ghost-art)>.madame{display:block;width:134.6%;max-width:none;margin:-5.8% 0 0 -11.5%}.dialog-name{font-weight:900;color:var(--red);font-size:.9rem}.dialog-line{font-size:1.1rem;line-height:1.6;min-height:5em}.dialog .btn.primary{align-self:flex-end;background:var(--ink);color:var(--washi);box-shadow:none}.madame-line{font-size:1.05rem;line-height:1.5}.missions{display:flex;flex-direction:column;gap:12px;width:100%}.mission-card{display:flex;align-items:center;gap:14px;background:var(--washi);color:var(--ink);border:3px solid var(--ink);border-radius:var(--radius);padding:10px 14px;text-align:left;font-family:var(--jp);cursor:pointer}.mission-card:active{transform:scale(.98)}.mission-art{width:58px;flex:none}.mission-text{display:flex;flex-direction:column;gap:2px}.mission-text strong{font:400 1.2rem var(--jp-title)}.stars{color:var(--gold);letter-spacing:.1em}.appear-label{color:var(--red);font-weight:900;letter-spacing:.2em;animation:blink .8s steps(2) 3}@keyframes blink{50%{opacity:0}}.appear-art{width:min(44vw,180px);animation:appear .9s cubic-bezier(.2,1.6,.4,1) both,float 3s .9s ease-in-out infinite;filter:drop-shadow(0 0 22px var(--ghost-dim))}@keyframes appear{0%{transform:scale(.2) translateY(60px);opacity:0}}.yokai-quote{font-size:1.05rem;color:var(--washi)}.rule{background:var(--night3);border-radius:12px;padding:10px 14px;line-height:1.5;font-size:.95rem}.decurse{justify-content:flex-start;padding-top:12px;position:relative;isolation:isolate}.scene-bg{position:absolute;inset:0;z-index:-1;pointer-events:none;overflow:hidden}.scene-bg svg{width:100%;height:100%;display:block}.round-title{flex:1;text-align:center;font:400 1.4rem var(--jp-title);color:var(--washi);padding-right:4.5em}.scene-cast{width:100%;display:flex;align-items:flex-end;justify-content:flex-start;margin-top:auto;min-height:0}.hero-figure{width:min(40vw,200px)}.hero-figure svg{width:100%;height:auto;display:block;filter:drop-shadow(0 6px 10px rgba(0,0,0,.45))}.decurse.talking .scene-cast,.decurse.revealed .scene-cast{display:none}.decurse.talking :is(.hint,.actions,.word-stage>:not(.word-row)){visibility:hidden}.decurse .actions{width:100%;padding-bottom:6px}.decurse .actions .btn{flex:1 1 10em;max-width:260px;font-size:1.25rem;padding:16px 20px;border-radius:999px}.decurse .actions .btn.choice{flex:0 1 auto}.decurse .actions .btn.kana-key{flex:0 1 auto;padding:12px 16px}.decurse.revealed .actions .btn{font-size:1.05rem;padding:12px 18px}.round-header{display:flex;align-items:center;gap:12px;width:100%}.round-quit{margin-left:auto;min-height:32px;padding:4px 12px;border-radius:999px;border:1.5px solid rgba(243,234,216,.5);background:transparent;color:var(--washi);font:700 .8rem var(--jp);cursor:pointer;white-space:nowrap;opacity:.85}.round-quit.armed{background:var(--washi);color:var(--ink);opacity:1}.decurse.talking .round-quit{visibility:hidden}.round-header:has(.round-quit) .round-title{white-space:nowrap;min-width:0;overflow:hidden;text-overflow:clip}.round-label{font-weight:700;white-space:nowrap;opacity:.8}.timer{flex:1;height:8px;background:var(--night3);border-radius:99px;overflow:hidden}.timer-fill{height:100%;background:var(--ghost);transform-origin:left;transition:background .3s}.timer.hurry .timer-fill{background:var(--red)}.word-stage{position:relative;width:100%;min-height:170px;display:flex;flex-direction:column;gap:10px;align-items:center;justify-content:center;margin-top:28px}.decurse.revealed .word-stage{margin-top:8px;min-height:0;padding-bottom:44px}.decurse.revealed .word-stage:has(.reading){padding-bottom:0}.letters.reading{justify-content:flex-start}.tile.vowel{border-bottom:5px solid var(--vowel)}.reading{align-items:flex-start}.read-cell{flex:none;min-height:34px;display:flex;flex-direction:column;align-items:center;gap:2px;padding:4px 0;border:0;border-top:2px solid var(--night3);background:none;color:var(--washi);cursor:pointer;font:inherit}.read-cell:disabled{cursor:default}.read-cell.vowel{border-top-color:var(--vowel)}.read-cell.mute{border-top-style:dashed;border-top-color:var(--ghost-dim)}.read-cell .kana{font:900 1rem/1.5rem var(--jp);height:1.5rem;color:var(--vowel, var(--washi));white-space:nowrap}.read-cell .kana.possessed{color:var(--ghost)}.read-cell .ipa{display:none}.ipa-line{display:flex;gap:4px;justify-content:flex-start;min-height:1.3rem}.ipa-cell{flex:none;height:1.3rem;text-align:center;white-space:nowrap;font:500 .9rem/1.3rem Noto Sans,Segoe UI,Lucida Sans Unicode,sans-serif;color:var(--washi);opacity:.85}.word-col:has(.reading.presolved) .ipa-cell{opacity:.45}.word-col:has(.ghost-resident)>.ipa-line{margin-bottom:calc(var(--tile) * .55)}.reading.presolved .read-cell{border-top-color:var(--night3)}.reading.presolved .read-cell .kana{color:var(--washi);opacity:.45}.reading.presolved .read-cell.pending{border-top:2px solid var(--ghost)}.reading.presolved .read-cell.pending .kana{color:var(--ghost);opacity:1;animation:pending-pulse 1.4s ease-in-out infinite}@keyframes pending-pulse{50%{opacity:.4}}@media(prefers-reduced-motion:reduce){.reading.presolved .read-cell.pending .kana{animation:none}}.read-cell:focus-visible{outline:2px solid var(--ghost);outline-offset:2px}.word-ipa{font:500 1.15rem Noto Sans,Segoe UI,Lucida Sans Unicode,sans-serif;color:var(--blue);letter-spacing:.02em}.word-row{--tile: clamp(28px, calc(min(92vw, 560px) / var(--n) - 4px), 64px);display:flex;flex-wrap:wrap;justify-content:center;column-gap:calc(var(--tile) * .5);row-gap:16px;max-width:100%}.word-col{display:flex;flex-direction:column;gap:10px}.letters{display:flex;gap:4px;justify-content:center}.tile{position:relative;width:var(--tile);height:calc(var(--tile) * 1.45);font:700 calc(var(--tile) * .95) var(--fr);line-height:1;border:0;border-bottom:3px solid var(--washi2);border-radius:10px 10px 4px 4px;background:var(--washi);color:var(--ink);padding:0;cursor:pointer;animation:drop .45s cubic-bezier(.3,1.5,.5,1) both;animation-delay:calc(var(--i) * 40ms)}.tile.space{width:calc(var(--tile) * .4);background:none;border:0}.tile.punct{background:none;border:0;color:var(--washi);cursor:default}@keyframes drop{0%{transform:translateY(-60px) rotate(-12deg);opacity:0}}.tile.shake{animation:shake .4s;background:#f6c9cd}@keyframes shake{20%,60%{transform:translate(-6px) rotate(-4deg)}40%,80%{transform:translate(6px) rotate(4deg)}}.tile.silent{background:transparent;color:var(--ghost);border:2px dashed var(--ghost-dim)}.tile.escaped{color:var(--red);border-color:#b23a4899}.tile.possessed{box-shadow:0 0 0 2px var(--ghost),0 0 16px var(--ghost-dim);animation:possessed .6s ease-out both}.tile.possessed.vowel,.tile.possessed.grouped{background:#e3dcf7}@keyframes possessed{30%{transform:translateY(-6px) rotate(-3deg)}}.decurse.pairing .tile.possessed:not(.picking),.decurse.pairing .tile.silent.grouped:not(.picking){box-shadow:none}.decurse.pairing .tile:is(.built,.grouped,.possessed):not(.picking){background:var(--washi)}.decurse.pairing .tile.silent:is(.built,.possessed):not(.grouped):not(.nasal-n):not(.picking){background:transparent}.tile[data-sound]:after{content:attr(data-sound);position:absolute;top:calc(100% + 10px);left:0;width:calc(var(--span, 1) * var(--tile) + (var(--span, 1) - 1) * 4px);font:900 calc(var(--tile) * .5) var(--jp);color:var(--ghost);text-align:center;white-space:nowrap}.ghost-pop{position:absolute;left:50%;bottom:55%;width:calc(var(--tile) * 1.5);min-width:48px;pointer-events:none;z-index:3}.ghost-pop.caught{animation:caught 1.3s ease-out forwards}.ghost-pop.escape{animation:escape 1.5s ease-in forwards}.ghost-pop.peek{pointer-events:auto;cursor:pointer;bottom:92%;width:calc(var(--tile) * 1.7);animation:peek 1.4s cubic-bezier(.2,1.2,.4,1) both,peek-float 2.4s 1.4s ease-in-out infinite alternate}@keyframes peek{0%{transform:translate(-50%,60%) scale(.2);opacity:0}to{transform:translate(-50%) scale(1);opacity:1}}@keyframes peek-float{0%{transform:translate(-50%) scale(1)}to{transform:translate(-50%,-8%) scale(1)}}@keyframes caught{0%{transform:translate(-50%,30%) scale(.3);opacity:0}25%{transform:translate(-50%,-20%) scale(1.1);opacity:1}60%{transform:translate(-50%,-40%) scale(1) rotate(8deg);opacity:1;filter:brightness(1.4)}to{transform:translate(-50%,-60%) scale(1.8);opacity:0;filter:blur(6px) brightness(2)}}@keyframes escape{0%{transform:translate(-50%,30%) scale(.3);opacity:0}20%{transform:translate(-50%,-20%) scale(1);opacity:1}40%{transform:translate(-80%,-60%) rotate(-12deg)}60%{transform:translate(-20%,-100%) rotate(12deg)}to{transform:translate(60%,-260%) rotate(-20deg) scale(.8);opacity:0}}.bubble{position:absolute;transform:translate(-50%,-100%);background:var(--washi);color:var(--ink);border:2px solid var(--ink);border-radius:14px;padding:8px 12px;font-size:.9rem;font-weight:700;width:max-content;max-width:180px;line-height:1.4;z-index:5;animation:bubble 1.8s ease both;pointer-events:none}.bubble.complaint{background:#fde2e4}.bubble.yokai-talk{background:#e5fbef}@keyframes bubble{0%{opacity:0;transform:translate(-50%,-80%) scale(.7)}12%,80%{opacity:1;transform:translate(-50%,-100%) scale(1)}to{opacity:0}}.reveal{background:var(--washi);color:var(--ink);border-radius:var(--radius);border:3px solid var(--ink);padding:14px 16px;width:100%;display:flex;flex-direction:column;gap:8px;align-items:center;animation:appear .4s ease-out both}.reveal .madame-line{font-weight:700;color:var(--red)}.reveal .reveal-note{font-size:.92rem;opacity:.85;margin-top:.2rem}.breath-note{margin:6px 0 0;padding:8px 12px;border-radius:12px;background:#4cc9f01f;color:var(--ink);font:700 .95rem/1.6 var(--jp);text-align:left}.known-reveal{display:flex;flex-wrap:wrap;gap:6px 10px;align-items:baseline;justify-content:center}.known-label{font-size:.95rem;opacity:.75}.known-kata{font:900 1.6rem var(--jp);color:var(--red)}.meaning{display:flex;gap:10px;align-items:baseline;font-size:1.1rem}.meaning-kata{opacity:.6}.meaning-ja{font-weight:900}.badge{background:var(--red);color:var(--washi);border-radius:99px;padding:2px 10px;font-size:.8rem;font-weight:700}.note{font-size:.95rem;line-height:1.55;text-align:left}.power{width:100%;background:#e3dcf7;border-radius:12px;padding:10px 12px;text-align:left;display:flex;flex-direction:column;gap:4px}.power strong{font-size:.8rem;color:var(--blue);letter-spacing:.1em}.power p{font-size:.95rem;line-height:1.55}.btn.choice{background:var(--washi);color:var(--ink);font-size:1.3rem;min-width:7em;box-shadow:0 4px 0 var(--washi2)}.btn.choice.right{background:var(--ghost);box-shadow:0 0 20px var(--ghost-dim)}.btn.choice.wrong{background:#f6c9cd;animation:shake .4s;text-decoration:line-through}.btn.choice:disabled{cursor:default}.btn.choice:disabled:not(.right):not(.wrong){opacity:.45}.row-break{flex-basis:100%;height:0}.stats{font-size:.85rem;color:var(--ink-soft)}.report{width:100%;background:var(--washi);color:var(--ink);border-radius:var(--radius);border:3px solid var(--ink);padding:10px 16px}.report-row{display:flex;justify-content:space-between;padding:6px 0;border-bottom:1px dashed var(--washi2)}.report-row:last-child{border:0;font-size:1.1rem}.big-stars{font-size:2.6rem;color:var(--gold);letter-spacing:.15em}.capture{display:flex;flex-direction:column;align-items:center;gap:4px}.capture-art{width:110px}.capture.ok .capture-art{animation:appear .9s cubic-bezier(.2,1.6,.4,1) both;filter:drop-shadow(0 0 18px var(--ghost-dim))}.capture.ko .capture-art{animation:escape 1.6s .6s ease-in forwards}.bestiary{justify-content:flex-start}.bestiary-grid{display:flex;flex-direction:column;gap:12px;width:100%}.yokai-card{display:flex;gap:14px;background:var(--washi);color:var(--ink);border-radius:var(--radius);border:3px solid var(--ink);padding:12px;text-align:left}.yokai-card.unknown{background:var(--night2);color:var(--washi);border-color:var(--night3)}.card-art{width:76px;flex:none}.card-body{display:flex;flex-direction:column;gap:6px}.card-title{font:400 1.2rem var(--jp-title)}.card-covers{font-size:.8rem;color:var(--red);font-weight:700}.card-profile{font-size:.9rem;line-height:1.5}.yokai-card .rule{background:var(--washi2)}.yokai-card .yokai-quote{color:var(--ink-soft);font-size:.9rem}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important}}.settings{width:100%;border:2px solid var(--night3);border-radius:var(--radius);padding:8px 14px 12px;display:flex;flex-direction:column;gap:10px;text-align:left}.settings legend{padding:0 6px;font-weight:700;opacity:.8}.toggle{display:flex;gap:12px;align-items:center;cursor:pointer}.toggle input{width:22px;height:22px;accent-color:var(--ghost);flex:none}.toggle-text{display:flex;flex-direction:column}.toggle-text span{font-size:.8rem;opacity:.7}.notebook-overlay{position:fixed;inset:0;z-index:20;background:#0a0912b8;display:flex;justify-content:center;align-items:flex-end;padding:env(safe-area-inset-top) 12px 0}.notebook{position:relative;width:100%;max-width:600px;max-height:88%;overflow-y:auto;background:var(--washi);color:var(--ink);border:3px solid var(--ink);border-bottom:0;border-radius:20px 20px 0 0;padding:18px 16px calc(24px + env(safe-area-inset-bottom));display:flex;flex-direction:column;gap:10px;text-align:left;animation:sheet .25s ease-out both;-webkit-user-select:text;user-select:text}@keyframes sheet{0%{transform:translateY(40px);opacity:0}}.notebook h2{color:var(--ink)}.notebook h3{margin:8px 0 0;font:400 1.1rem var(--jp-title);color:var(--red)}.notebook-close{position:absolute;top:8px;right:12px;background:none;border:0;font-size:1.8rem;color:var(--ink);cursor:pointer}.notebook-empty{opacity:.7}.nb-card{background:var(--washi2);border-radius:12px;padding:10px 12px;display:flex;flex-direction:column;gap:6px;line-height:1.55;font-size:.95rem}.nb-card.focus{box-shadow:0 0 0 3px var(--blue)}.nb-head{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap}.nb-ipa{font:700 1.3rem Noto Sans,Segoe UI,Lucida Sans Unicode,sans-serif;border-bottom:4px solid var(--vowel, var(--ink-soft))}.nb-kana{font-weight:900}.nb-spellings{display:flex;gap:6px}.nb-spellings b{font:700 1.1rem var(--fr);background:var(--washi);border-radius:6px;padding:0 6px}.nb-rule{font-weight:900}.nb-examples{font:italic 500 .95rem var(--fr);color:var(--ink-soft)}.btn.mic{background:var(--red);color:var(--washi);min-width:8em;box-shadow:0 4px #7d2733}.btn.mic:before{content:"";display:inline-block;width:.6em;height:.6em;margin-right:.5em;border-radius:50%;background:var(--washi);vertical-align:.05em}.btn.mic.listening{animation:listening 1s ease-in-out infinite}.btn.mic.listening:before{background:var(--ghost)}.btn.mic.preparing{opacity:.75}@keyframes listening{50%{box-shadow:0 4px #7d2733,0 0 0 10px #b23a4840}}.btn.mic:disabled{cursor:default}.speech-result{min-height:1.5em;font-size:.95rem;line-height:1.5;max-width:32em}.speech-result.good{color:var(--ghost);font-weight:700}.speech-result.bad{color:#f6c9cd}.settings-note{font-size:.8rem;opacity:.7;line-height:1.5}.settings .link{align-self:flex-start;padding:0}.bench{justify-content:flex-start}.bench-fr{font:italic 500 .95rem var(--fr);opacity:.7}.bench-help{font-size:.9rem;line-height:1.6;opacity:.85;text-align:left}.bench-label{align-self:flex-start;font-size:.8rem;opacity:.7}.bench-name{width:100%;font:500 1rem var(--jp);padding:10px 12px;border-radius:10px;border:2px solid var(--night3);background:var(--night2);color:var(--washi)}.bench-card{width:100%;background:var(--washi);color:var(--ink);border:3px solid var(--ink);border-radius:var(--radius);padding:14px;display:flex;flex-direction:column;gap:10px;align-items:center}.bench-progress{font-size:.8rem;color:var(--ink-soft)}.bench-instruction{font-weight:700;color:var(--red)}.bench-word{font:700 clamp(2rem,10vw,3rem) var(--fr)}.bench-heard{min-height:1.5em;font-size:.9rem;line-height:1.5}.bench-heard.ok{color:#1f7a4d;font-weight:700}.bench-heard.error,.bench-heard.unclear{color:var(--red);font-weight:700}.bench-card .btn.secondary{background:var(--washi2);color:var(--ink)}.bench-summary{width:100%;text-align:left}.bench-summary h3{font:400 1.1rem var(--jp-title);color:var(--ghost);margin:0 0 8px}.table-wrap{overflow-x:auto}.bench-table{border-collapse:collapse;width:100%;font-size:.85rem;font-variant-numeric:tabular-nums}.bench-table th,.bench-table td{padding:6px 8px;border-bottom:1px solid var(--night3);text-align:left}.bench-table td{white-space:nowrap}.bench-export{width:100%;min-height:8em;font:.75rem ui-monospace,monospace;background:var(--night2);color:var(--washi);border-radius:10px;border:2px solid var(--night3);padding:8px;-webkit-user-select:text;user-select:text}.daily-card{display:flex;align-items:center;gap:14px;width:100%;background:linear-gradient(135deg,#3a2f5c,#25223a);color:var(--washi);border:3px solid var(--ghost);border-radius:var(--radius);padding:12px 14px;text-align:left;font-family:var(--jp);cursor:pointer;box-shadow:0 0 22px var(--ghost-dim)}.daily-card:active{transform:scale(.98)}.daily-card.done{border-color:var(--night3);box-shadow:none}.daily-card .mission-text strong{color:var(--ghost)}.daily-card .mission-text span{font-size:.9rem}.daily-art{width:58px;flex:none}.streak-small{color:var(--gold);font-weight:700}.stamp{width:100%;height:auto}.stamp-kanji{font:400 36px var(--jp-title);fill:#c0392b}.stamp-date{font:700 11px var(--jp);fill:#c0392b;letter-spacing:.05em}.stamp-top{font:400 9px var(--jp-title);fill:#c0392b;letter-spacing:.1em}.stamp.fresh{animation:stamp-in .7s cubic-bezier(.2,1.8,.4,1) both}@keyframes stamp-in{0%{transform:scale(2.4) rotate(-12deg);opacity:0}60%{opacity:1}to{transform:scale(1) rotate(0)}}.stamp-screen .stamp-big{width:min(56vw,220px);background:var(--washi);border-radius:12px;padding:14px;border:3px solid var(--ink)}.streak{font:700 1.3rem var(--jp);color:var(--gold)}.stamp-book{justify-content:flex-start}.stamp-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(84px,1fr));gap:10px;width:100%;background:var(--washi);border:3px solid var(--ink);border-radius:var(--radius);padding:12px}.stamp-cell{aspect-ratio:1;max-width:100%}.daily-card .daily-art .stamp{background:var(--washi);border-radius:8px;padding:4px}.boss-card{width:100%;border-color:var(--gold);box-shadow:0 0 18px #d9a44159}.boss-card.locked,.mission-card.locked{opacity:.6;box-shadow:none;border-color:var(--ink);cursor:default}.boss-fight{justify-content:flex-start}.boss-hud{display:flex;align-items:center;gap:10px;width:100%;padding:6px 16px;border-bottom:1px solid var(--night3)}.boss-mini{width:40px;flex:none}.boss-mini.taunt .yokai{animation:boss-laugh .5s ease-in-out}.boss-hud-main{flex:1;min-width:0;display:flex;flex-direction:column;gap:4px}.boss-hud .boss-title{font-size:.85rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.boss-hud .boss-hp{width:100%}.boss-hud .boss-hp .hp{height:8px}.boss-hud .boss-lives{flex:none}.boss-scene{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;width:100%;padding:16px;text-align:center}.boss-scene .boss-art{width:min(55vw,220px)}.boss-name{font:400 1.2rem var(--jp-title);color:var(--gold);letter-spacing:.08em}.boss-name.renamed{animation:renamed .9s ease-out}.boss-scene .boss-speech{font-size:1.05rem}.boss-scene-more{display:flex;flex-direction:column;align-items:center;gap:8px;width:100%}.boss-scene-more .madame-line,.boss-scene-more .note,.boss-scene-more .stats{width:100%;background:var(--washi);color:var(--ink);border-radius:12px;padding:8px 12px}.boss-next{color:var(--washi);opacity:.8;font-size:.95rem}.boss-toast{position:fixed;top:10px;left:50%;z-index:30;display:flex;align-items:center;gap:8px;width:min(92vw,420px);padding:0;opacity:0;transform:translate(-50%,-16px);pointer-events:none;transition:opacity .25s,transform .25s}.boss-toast.show{opacity:1;transform:translate(-50%);pointer-events:auto}.boss-toast-art{width:56px;flex:none;filter:drop-shadow(0 0 10px rgba(255,226,154,.35))}.boss-toast-art.taunt .yokai{animation:boss-laugh .5s ease-in-out}.boss-toast-art.hurt .yokai{animation:boss-hurt .6s ease-in-out}.boss-toast .boss-speech{min-height:0;margin:0;font-size:.95rem;box-shadow:0 6px 18px #00000073}.boss-stage{flex:1;min-height:0;display:flex;flex-direction:column;width:100%}.boss-stage>.screen{min-height:0}.boss-stage>.screen,.screen.decurse.phrase{justify-content:flex-start}.boss-stage .word-stage,.decurse.phrase .word-stage{margin-top:24px;min-height:0}.boss-header{display:flex;flex-direction:column;align-items:center;gap:6px;width:100%}.boss-title{font:400 1.1rem var(--jp-title);color:var(--gold);letter-spacing:.08em}.boss-title.renamed{animation:renamed .9s ease-out}@keyframes renamed{0%{opacity:0;transform:scale(1.4);filter:blur(4px)}to{opacity:1;transform:none;filter:none}}.boss-hp{display:flex;gap:4px;width:min(100%,320px)}.boss-lives{display:flex;gap:6px;align-items:center;font-size:.8rem;color:var(--ink-soft)}.life{width:14px;height:18px;border-radius:45% 45% 50% 50%;background:#f4a261;box-shadow:0 0 8px #f4a261b3;transition:background .4s,box-shadow .4s}.life.out{background:var(--night3);box-shadow:none}.hp{flex:1;height:10px;border-radius:99px;background:var(--night3);transition:background .4s}.hp.full{background:var(--red);box-shadow:0 0 8px #b23a4899}.boss-art{width:min(40vw,150px);animation:float 3s ease-in-out infinite;filter:drop-shadow(0 0 20px rgba(255,226,154,.35))}.boss-art.taunt .yokai{animation:boss-laugh .5s ease-in-out}.boss-art.hurt .yokai{animation:boss-hurt .6s ease-in-out}.boss-art.defeated{animation:none}.boss-art .yokai.flying{animation:fly-away 1.8s ease-in forwards}@keyframes fly-away{20%{transform:translateY(8px) rotate(-6deg)}to{transform:translate(120px,-220px) rotate(20deg) scale(.5);opacity:0}}@keyframes boss-laugh{25%,75%{transform:rotate(-6deg) scale(1.05)}50%{transform:rotate(6deg) scale(1.05)}}@keyframes boss-hurt{20%,60%{transform:translate(-8px);filter:brightness(2) saturate(0)}40%,80%{transform:translate(8px)}}.boss-speech{min-height:3em;max-width:30em;background:var(--washi);color:var(--ink);border:2px solid var(--ink);border-radius:14px;padding:8px 14px;font-weight:700;line-height:1.5}.boss-speech.pop{animation:appear .3s ease-out both}.boss-speech.taunt{background:#fde2e4}.boss-speech.hurt{background:#e5fbef}.boss-target{min-height:64px;display:flex;align-items:baseline;justify-content:center;gap:10px}.boss-sound{font:900 2.6rem var(--jp);color:var(--ghost);text-shadow:0 0 16px var(--ghost-dim);animation:appear .3s ease-out both}.boss-sound-ipa{font:500 1.3rem Noto Sans,Segoe UI,sans-serif;color:var(--washi);opacity:.8}.read-cell.unformed{visibility:hidden}.read-cell.veiled{opacity:.6}.reading.challenge .read-cell:not(.pending):not(.solved) .kana,.reading.challenge .read-cell:not(.pending):not(.solved) .ipa{visibility:hidden}.reading.challenge .read-cell.mute:not(.pending):not(.solved){border-top-style:solid;border-top-color:var(--night3)}.mouth-icon{width:1.1rem;height:.85rem;vertical-align:middle;color:var(--vowel, var(--washi))}.read-cell .mouth{display:flex;align-items:center;justify-content:center;gap:2px;height:1.5rem;line-height:1}.read-cell .mouth .mouth-icon{width:1.9rem;height:1.45rem}.mouth-word{font-size:.75rem;font-weight:700;color:var(--vowel, var(--washi))}.nb-mouth{display:inline-flex;align-items:center;gap:4px;font-size:.8rem;color:var(--ink-soft)}.nb-mouth .mouth-icon{color:var(--vowel, var(--ink-soft))}.tile.picking{background:#e3dcf7;transform:translateY(-6px);transition:transform .15s}.tile.cursor{outline:3px solid var(--gold);outline-offset:2px}.tile.cursor:before{content:"▸";position:absolute;left:3px;top:1px;font:900 calc(var(--tile) * .38) var(--jp);line-height:1;color:var(--gold)}.tile.cursor:after{content:"ここから";position:absolute;left:50%;top:calc(100% + 6px);transform:translate(-50%);font:700 .7rem var(--jp);color:var(--gold);white-space:nowrap}.btn.pulse{animation:pulse .9s ease-in-out infinite alternate}.finger{position:absolute;z-index:6;font-size:2.4rem;line-height:1;transform:translate(-30%,-10%);transition:left .5s ease,top .5s ease;filter:drop-shadow(0 2px 4px rgba(0,0,0,.5));pointer-events:none}.finger.tap{transform:translate(-30%,-10%) scale(.85)}.tile.tapped,.btn.tapped{transform:scale(.94);filter:brightness(.9)}@keyframes pulse{0%{transform:scale(1)}to{transform:scale(1.08);box-shadow:0 0 18px var(--gold)}}.tile.blink,.btn.choice.blink{animation:blink .6s ease-in-out infinite alternate}@keyframes blink{0%{background:var(--washi)}to{background:#ffe9a8}}.tile.built{background:#e3dcf7}.decurse.pairing .actions{position:sticky;bottom:0;z-index:5;padding:18px 0 12px;background:linear-gradient(to bottom,transparent,var(--night) 22px)}.decurse.pairing .actions .hint{margin:0;width:100%}.tile.maybe{background:linear-gradient(to bottom,var(--washi) 55%,#fff4d6);outline:2px dashed var(--gold);outline-offset:-5px}.fresh-banner{width:100%;display:flex;justify-content:space-between;align-items:center;gap:8px;padding:8px 12px;border-radius:var(--radius);background:var(--gold);color:var(--ink);font-weight:700;font-size:.85rem}.fresh-banner .link{color:var(--ink);opacity:.8;font-size:.8rem}.tile.silent.power-link{border-bottom:5px solid var(--vowel)}.read-cell.linked{border-top-style:solid}.small-n{font-size:.62em;vertical-align:.05em;margin-left:.02em;opacity:.9}.small-c{font-size:.58em;vertical-align:baseline;margin-left:.04em}.sound-label{position:absolute;top:calc(100% + 10px);left:0;width:calc(var(--span, 1) * var(--tile) + (var(--span, 1) - 1) * 4px);font:900 calc(var(--tile) * .5) var(--jp);color:var(--ghost);text-align:center;white-space:nowrap;pointer-events:none}.nb-disclaimer{font-size:.8rem;opacity:.75;line-height:1.6;margin:0 0 8px}.ghost-resident{position:absolute;left:calc(var(--tile) * .1);top:-48%;width:calc(var(--tile) * .8);opacity:.6;z-index:2;cursor:pointer;animation:resident-in .6s ease-out both,resident-float 2.6s ease-in-out .6s infinite alternate}.ghost-resident svg{width:100%;display:block}.ghost-resident:hover,.ghost-resident:focus-visible{opacity:.9}@keyframes resident-in{0%{opacity:0;transform:translateY(-30%) scale(.6)}}@keyframes resident-float{to{transform:translateY(-6%)}}.tile.liaison{box-shadow:0 0 0 2px var(--tsunagi)}.tile.liaison:before,.tile.liaison-to:before{content:"";position:absolute;top:calc(100% + 1px);width:calc(var(--tile) * .75);height:9px;border-bottom:3px solid var(--tsunagi);box-sizing:border-box;pointer-events:none}.tile.liaison:before{left:50%;border-left:3px solid var(--tsunagi);border-bottom-left-radius:100%}.tile.liaison-to:before{right:50%;border-right:3px solid var(--tsunagi);border-bottom-right-radius:100%}.tile.liaison.hyphen:before,.tile.liaison-to.hyphen:before{width:calc(var(--tile) + 4px)}.read-cell .kana.liaison{color:var(--tsunagi)}.soramimi{justify-content:flex-start;gap:18px}.ear-listen{align-self:center}.ear-cards{display:flex;flex-wrap:wrap;justify-content:center;gap:14px;width:100%}.ear-card{flex:1 1 140px;max-width:240px;min-height:120px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;padding:16px 10px;background:var(--washi);color:var(--ink);border:3px solid var(--ink);border-radius:var(--radius);cursor:pointer}.ear-card:active{transform:scale(.97)}.ear-word{font:700 clamp(1.8rem,9vw,2.6rem) var(--fr);line-height:1.1;white-space:nowrap}.ear-word mark{background:none;color:inherit;border-radius:4px}.ear-meaning{font:500 .85rem var(--jp);opacity:0;transition:opacity .3s}.ear-card.revealed .ear-meaning{opacity:.8}.ear-card.revealed mark,.ear-card.wrong mark{background:var(--ghost);padding:0 2px}.ear-card.right{box-shadow:0 0 0 4px var(--ghost),0 0 22px var(--ghost-dim)}.ear-card.wrong{background:#f6c9cd;opacity:.85}.ear-card:disabled{cursor:default}.ear-hint{color:var(--washi);max-width:34em;text-align:center}.ear-check{justify-content:flex-start}.ear-check-row{display:flex;flex-wrap:wrap;align-items:center;gap:8px;width:100%}.ear-check-after{width:2.5em;color:var(--muted, var(--washi));opacity:.7}.ear-mute{opacity:1;color:var(--gold);font-size:.95rem;text-align:center;max-width:30em}.tile.grouped{background:#e3dcf7}.tile.grouped.vowel{border-bottom:5px solid var(--vowel)}.tile.silent.grouped{border:0;border-bottom:5px solid var(--vowel);color:var(--ghost);box-shadow:0 0 0 2px var(--ghost),0 0 16px var(--ghost-dim)}.tile.silent.grouped.escaped{color:var(--red)}.tile.silent.nasal-n{color:var(--ink)}.tile.silent.built.nasal-n{background:#e3dcf7}.screen.basics{justify-content:flex-start;gap:14px}.basics-madame{display:flex;gap:10px;align-items:flex-start;width:100%;max-width:460px}.basics-madame .portrait.small{width:64px;flex:none;animation:none}.basics-madame .dialog-line{min-height:0;font-size:.98rem;background:var(--night3);border-radius:12px;padding:10px 12px;flex:1}.vowel-card{display:flex;flex-direction:column;align-items:center;gap:8px;width:100%;max-width:460px;background:var(--washi);color:var(--ink);border-radius:18px;padding:18px 16px;box-shadow:0 6px 0 var(--washi2)}.vowel-letter{font:700 clamp(3.2rem,18vw,5rem) var(--fr);line-height:1}.vowel-kana{font:700 clamp(1.8rem,9vw,2.6rem) var(--jp);color:var(--red)}.vowel-mouth{display:flex;align-items:center;gap:8px;color:var(--ink-soft);font-size:.95rem}.vowel-mouth .mouth-icon{width:40px;height:30px;color:var(--red)}.vowel-note{margin:0;font-size:.95rem;color:var(--ink-soft);text-align:center}.vowel-card.quiz .question{margin:0;font-weight:700}.vowel-card .btn.choice{font-size:1.3rem;min-width:0;padding:10px 16px}.vowel-card .choices{width:100%}.btn.speak{background:var(--night3);color:var(--washi)}.sound-table-wrap{width:100%;max-width:460px;display:flex;flex-direction:column;gap:10px;align-items:center}.sound-big{width:100%;min-height:3.6em;background:var(--washi);color:var(--ink);border-radius:14px;display:flex;align-items:center;justify-content:center;box-shadow:0 4px 0 var(--washi2)}.sound-big-text{display:flex;align-items:baseline;gap:10px;font-size:1rem;color:var(--ink-soft)}.sound-big-fr{font:700 2.2rem var(--fr);color:var(--ink)}.sound-big-arrow{font-size:1.4rem}.sound-big-kana{font:700 2rem var(--jp);color:var(--red)}.sound-table{border-collapse:separate;border-spacing:3px;width:100%;table-layout:fixed}.sound-table th{font:700 1rem var(--fr);color:var(--ghost);padding:2px 0}.sound-table th:first-child{width:1.6em}.sound-cell{width:100%;padding:6px 0;border:0;border-radius:8px;background:var(--night3);color:var(--washi);font:600 1rem var(--fr);cursor:pointer}.sound-cell.lit{background:var(--ghost);color:var(--ink);box-shadow:0 0 12px var(--ghost-dim)}.sound-cell:active{transform:scale(.94)}.basics-card .mission-art{width:50px}.demo-stage{position:relative}.demo-stage button{pointer-events:none}.demo-hand{position:absolute;left:50%;top:100%;font-size:2.6rem;line-height:1;transform:translate(-35%,-15%);transition:left .55s ease-in-out,top .55s ease-in-out,opacity .3s;opacity:0;pointer-events:none;z-index:2;filter:drop-shadow(0 3px 4px rgba(0,0,0,.35))}.demo-hand.shown{opacity:1}.demo-hand.tap{animation:demo-tap .22s ease-out}@keyframes demo-tap{50%{transform:translate(-35%,-15%) scale(.75)}}.demo-tapped{filter:brightness(.88)}.demo-caption{min-height:1.6em;font-size:1.05rem;color:var(--ghost);text-align:center;margin:0}.demo-word{display:flex;flex-direction:column;align-items:center;gap:14px;width:100%;max-width:460px;padding:18px 12px;border-radius:18px;background:#ffffff0d}.demo-word .word-row{--tile: 56px}.demo-kana{height:2rem;font:700 1.7rem var(--jp);color:#ff8a80}.demo .choices.hidden{visibility:hidden}.demo-word .btn.choice{min-width:0;padding:10px 22px}.kana-keys{display:flex;flex-direction:column;gap:6px;width:min(100%,330px)}.kana-row{display:grid;grid-template-columns:repeat(5,1fr);gap:6px 8px}.btn.choice.kana-key{min-width:0;padding:8px 0;font-size:1.3rem;width:100%}.kana-gap{display:block}.btn.choice.kana-key.wrong{text-decoration:none}.wake-tie{position:absolute;left:calc(-1 * (var(--n) - 1) * (var(--tile) + 4px));bottom:-13px;width:calc(var(--n) * var(--tile) + (var(--n) - 1) * 4px);height:12px;color:var(--ghost);pointer-events:none}.wake-tie svg{width:100%;height:100%;display:block;filter:drop-shadow(0 0 3px var(--ghost-dim))}.close-tie{position:absolute;left:0;bottom:-13px;width:calc(var(--n) * var(--tile) + (var(--n) - 1) * 4px);height:12px;color:var(--vowel, var(--ghost));pointer-events:none;z-index:1}.close-tie svg{width:100%;height:100%;display:block}.read-cell.pending .mouth{visibility:hidden}.voice-tie{position:absolute;left:0;bottom:-18px;width:calc(var(--n) * var(--tile) + (var(--n) - 1) * 4px);height:17px;color:var(--gold);pointer-events:none;z-index:1}.voice-tie svg{width:100%;height:100%;display:block;filter:drop-shadow(0 0 3px rgba(217,164,65,.5))}.letters:has(.wake-tie,.close-tie,.voice-tie){margin-bottom:12px}.tile.silent.built{background:transparent}.btn.choice.kana-key.wide{grid-column:span 2}.kana-keys.loose .kana-row{display:flex;flex-wrap:wrap;justify-content:center}.kana-keys.loose .btn.choice.kana-key{width:auto;min-width:4.4em;padding:8px 14px}.kana-keys.dense,.kana-keys.dense .kana-row{gap:4px 8px}.kana-keys.dense .btn.choice.kana-key{padding:3px 0;font-size:1.15rem;box-shadow:0 3px 0 var(--washi2)}.btn.unsure{background:transparent;color:var(--washi);border:1px solid rgba(243,234,215,.35);font-size:.95rem;padding:7px 22px;opacity:.8}.btn.unsure:disabled{opacity:.3;cursor:default}details.power.other{opacity:.85}details.power.other summary{cursor:pointer;font-weight:700;color:var(--ink-soft)}details.power.other p{margin-top:6px}.twin-row{display:flex;gap:8px}.twin{flex:1;display:flex;flex-direction:column;align-items:center;gap:2px;background:var(--washi);color:var(--ink);border:2px solid var(--vowel, var(--ghost));border-radius:12px;padding:8px 4px;font:inherit;cursor:pointer}.twin:active{transform:scale(.97)}.twin-mouth{display:flex;align-items:center;gap:4px}.twin-mouth .mouth-icon{width:2.6rem;height:2rem;color:var(--vowel, var(--ghost))}.twin-mouth .mouth-icon>:first-child{stroke:var(--ink);stroke-width:1.2}.twin .mouth-word{font-size:1rem;color:var(--ink)}.twin-word{font-weight:700;font-size:1.1rem}.twin-meaning{font-size:.85rem;color:var(--ink-soft)}.ear-offer{width:100%;background:var(--night3);color:var(--washi);border-radius:12px;padding:12px 14px;display:flex;flex-direction:column;align-items:center;gap:6px;text-align:center}.ear-offer strong{color:var(--ghost)}.ear-offer p{font-size:.95rem;line-height:1.5}.ear-offer-score{color:var(--gold)}.dialogue{position:absolute;inset:0;z-index:40;display:flex;flex-direction:column;align-items:center;justify-content:flex-end;gap:10px;padding:16px 12px 24px;background:#100c1e99;cursor:pointer}.dialogue.enter .dialogue-box:last-child{animation:dialogue-in .35s cubic-bezier(.2,1.4,.4,1) both}.dialogue-cast{position:absolute;left:0;right:0;bottom:140px;z-index:0;width:100%;max-width:560px;margin:0 auto;display:flex;align-items:flex-end;justify-content:space-between;padding:0 4px;pointer-events:none}.dialogue-portrait.other.arrive{animation:portrait-in .45s ease-out both}@keyframes portrait-in{0%{opacity:0}}.dialogue-portrait.player{width:min(38vw,190px)}.dialogue-portrait.other{width:min(42vw,200px);visibility:hidden;filter:drop-shadow(0 0 28px var(--glow, rgba(255, 255, 255, .25)))}.dialogue-portrait.other.shown{visibility:visible}.dialogue-portrait.other:has(>.madame){width:min(36vw,180px)}.dialogue-portrait svg{width:100%;height:auto;display:block}.dialogue-cast.hero-speaks .dialogue-portrait.other{opacity:.8}@keyframes dialogue-in{0%{transform:translateY(24px) scale(.85);opacity:0}}.dialogue-boxes{position:relative;z-index:1;width:100%;max-width:520px;display:flex;flex-direction:column;gap:22px}.dialogue-box{position:relative;width:92%;background:var(--washi);color:var(--ink);border:3px solid var(--ink);border-radius:18px;padding:16px 18px 22px;box-shadow:0 10px 30px #00000073;text-align:left}.dialogue-box.player{align-self:flex-start}.dialogue-box.yokai,.dialogue-box.madame{align-self:flex-end}.dialogue-name{position:absolute;top:-18px;left:14px;background:var(--ink);color:var(--washi);font:900 .9rem var(--jp);padding:5px 14px;border-radius:999px}.dialogue-box.yokai .dialogue-name,.dialogue-box.madame .dialogue-name{left:auto;right:14px}.dialogue-text{margin:6px 0 0;font:700 1.15rem/1.6 var(--jp);min-height:1.6em}.dialogue-more{position:absolute;right:14px;bottom:6px;font-size:.8rem;color:var(--ink-soft);animation:bob .9s ease-in-out infinite alternate}@keyframes bob{0%{transform:translateY(0)}to{transform:translateY(4px)}}.dialogue-apparition{position:absolute;left:50%;top:max(48px,6vh);z-index:0;width:min(60vw,280px,25vh);transform:translate(-50%);visibility:hidden;pointer-events:none}.dialogue-apparition:has(>.yokai){width:min(62vw,280px,36vh)}.dialogue-apparition:before{content:"";position:absolute;inset:-18% -30%;border-radius:50%;background:radial-gradient(closest-side,var(--glow, var(--ghost-dim)),transparent 72%);opacity:.55}.dialogue-apparition>svg{position:relative;width:100%;height:auto;display:block;filter:drop-shadow(0 0 22px var(--glow, var(--ghost-dim)))}.dialogue-apparition.shown,.dialogue-apparition.gone{visibility:visible}.dialogue-apparition.shown>svg{animation:apparition 1.6s ease-out both}.dialogue-apparition.shown:before{animation:apparition-halo 1.6s ease-out both}.dialogue-apparition.gone{animation:apparition-out .45s ease-in both}@keyframes apparition{0%{opacity:0;transform:translateY(14px) scale(.94);filter:blur(8px) brightness(2.2) drop-shadow(0 0 40px var(--glow, var(--ghost-dim)))}55%{opacity:1;filter:blur(0) brightness(1.35) drop-shadow(0 0 34px var(--glow, var(--ghost-dim)))}}@keyframes apparition-halo{0%{opacity:0;transform:scale(.6)}50%{opacity:1}}@keyframes apparition-out{to{opacity:0;visibility:hidden}}.dialogue-log-open{position:absolute;top:max(12px,env(safe-area-inset-top));right:12px;z-index:2;min-width:64px;min-height:44px;padding:0 16px;border-radius:999px;border:1.5px solid rgba(243,234,215,.55);background:#191726b8;color:var(--washi);font:900 .9rem var(--jp);letter-spacing:.1em;cursor:pointer;box-shadow:0 4px 12px #00000059}.dialogue-log-open:active{transform:scale(.96)}.dialogue-log{position:absolute;inset:0;z-index:50;display:flex;flex-direction:column;padding:max(14px,env(safe-area-inset-top)) 14px max(18px,env(safe-area-inset-bottom));background:#100c1ef0;animation:portrait-in .2s ease-out both}.dialogue-log-head{width:100%;max-width:560px;margin:0 auto 10px;padding-bottom:10px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid rgba(243,234,215,.18);color:var(--washi)}.dialogue-log-head h3{margin:0;font:400 1.35rem var(--jp-title);letter-spacing:.15em}.dialogue-log-close{min-height:44px;padding:0 22px;background:var(--washi);color:var(--ink);font-size:.95rem;box-shadow:0 3px 0 var(--washi2)}.dialogue-log-list{flex:1;min-height:0;overflow-y:auto;width:100%;max-width:560px;margin:0 auto;display:flex;flex-direction:column;gap:18px;padding:14px 2px 8px;-webkit-user-select:text;user-select:text}.dialogue-log-line{position:relative;max-width:86%;padding:14px 14px 10px;border:2px solid var(--ink);border-radius:14px;background:var(--washi);color:var(--ink);text-align:left}.dialogue-log-line.player{align-self:flex-start}.dialogue-log-line.madame,.dialogue-log-line.yokai{align-self:flex-end}.dialogue-log-name{position:absolute;top:-11px;left:12px;padding:2px 10px;border-radius:999px;background:var(--ink);color:var(--washi);font:900 .72rem var(--jp)}.dialogue-log-line.madame .dialogue-log-name,.dialogue-log-line.yokai .dialogue-log-name{left:auto;right:12px}.dialogue-log-line.madame .dialogue-log-name{background:#4b3f78}.dialogue-log-line.yokai .dialogue-log-name{background:#2f5a48}.dialogue-log-text{margin:0;font:700 1rem/1.55 var(--jp)}.dialogue-log-break{width:100%;height:14px;margin:2px 0;border:0;background:radial-gradient(circle,rgba(243,234,215,.45) 2px,transparent 2.5px) center / 14px 14px repeat-x;opacity:.8}@media(prefers-reduced-motion:reduce){.dialogue-apparition.shown>svg,.dialogue-apparition.shown:before{animation-duration:.01s}.dialogue-portrait.other.arrive,.dialogue-log{animation:none}}.scene .scene-day{opacity:0;transition:opacity 1.1s ease}:is(.dawn,.daylight) .scene .scene-day{opacity:1}.scene-bg svg.pano{position:absolute;bottom:0;height:100%;width:auto;min-width:100%;left:calc(var(--cam-x, .5) * 100%);transform:translate(calc(var(--cam-x, .5) * -100%));transition:left .8s ease,transform .8s ease}.cam-left{--cam-x: 0}.cam-right{--cam-x: 1}@media(prefers-reduced-motion:reduce){.scene-bg svg.pano{transition:none}}:is(.dawn,.daylight) :is(.round-label,.round-title,.hint){text-shadow:0 1px 2px rgba(25,23,38,.7),0 0 10px rgba(25,23,38,.55)}.scene .scene-fr{font-family:var(--fr);font-weight:700}.scene .scene-fr.it{font-style:italic;font-weight:500}.scene .scene-jp{font-family:var(--jp-title)}.scene .scene-ja{font-family:var(--jp);font-weight:700}.night-end .word-stage{min-height:120px}.carnet{justify-content:flex-start;gap:12px}.carnet-page{width:100%;background:var(--washi);color:var(--ink);border:3px solid var(--ink);border-radius:var(--radius);padding:14px 16px;display:flex;flex-direction:column;gap:10px;text-align:left;background-image:repeating-linear-gradient(transparent 0 27px,#1f1a1712 27px 28px)}.carnet-head{display:flex;justify-content:space-between;align-items:flex-start;gap:10px}.carnet-date{font:700 .95rem var(--jp);color:var(--ink-soft)}.carnet-place{font:400 1.5rem var(--jp-title)}.carnet-sub{font-size:.92rem;color:var(--ink-soft)}.carnet-seal{width:84px;flex:none}.carnet-line{font-weight:700;font-size:.95rem}.carnet-line.small{font-weight:500;color:var(--ink-soft)}.carnet-words{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:2px}.carnet-words li{display:grid;grid-template-columns:1.4em 1fr auto;column-gap:8px;align-items:baseline;font-size:1rem;line-height:1.7}.carnet-words li .carnet-ja{grid-column:2 / 4;font-size:.82rem;color:var(--ink-soft);line-height:1.2;margin-top:-4px}.carnet-mark{color:var(--red);font-weight:900}.carnet-words li.clean .carnet-mark{color:#3a8a5c}.carnet-fr{font:700 1.15rem var(--fr)}.carnet-kana{font-weight:700;color:var(--red)}.carnet-ghost{display:flex;align-items:center;gap:12px;border-top:1px dashed var(--ink-soft);padding-top:10px}.carnet-ghost-art{width:72px;flex:none}.carnet-ghost.ok .carnet-ghost-art{filter:drop-shadow(0 0 12px var(--ghost-dim))}.carnet-ghost.ko .carnet-ghost-art{opacity:.55}.carnet-ghost-text{display:flex;flex-direction:column;gap:2px;font-size:.9rem}.carnet-ghost-text strong{font-size:1.05rem}.carnet-covers{color:var(--ink-soft)}.lens .scene .scene-day{opacity:0!important;transition:none!important}.no-fade .scene .scene-day{transition:none!important}.lens-ring{position:absolute;left:50%;top:42%;z-index:-1;pointer-events:none;transform:translate(-50%,-50%);border-radius:50%;border:7px solid var(--gold);box-shadow:0 0 0 2px var(--ink),inset 0 0 0 2px var(--ink),inset 0 0 0 4px #fff0c873,0 0 28px 6px var(--ghost-dim),inset 0 0 46px 10px var(--ghost-dim)}.lens-ring:before{content:"";position:absolute;inset:9%;border-radius:50%;border:3px solid transparent;border-top-color:#fff6;transform:rotate(-38deg)}.lens-ring:after{content:"";position:absolute;left:14.6%;top:85.4%;width:max(9px,5.5%);height:80%;border:2px solid var(--ink);border-top:0;border-radius:0 0 8px 8px;background:linear-gradient(90deg,#8a6420,var(--gold) 35%,#f6dc96 50%,var(--gold) 65%,#8a6420);transform-origin:50% 0;transform:translate(-50%) rotate(45deg)}.closeup-view .scene-cast,.closeup-view .dialogue-portrait.player{visibility:hidden}#backdrop{position:fixed;inset:0;z-index:0;overflow:hidden}#backdrop>svg{filter:blur(1.5px)}#backdrop~#app{position:relative;z-index:1}#backdrop:after{content:"";position:absolute;inset:0;background:radial-gradient(ellipse at 50% 40%,#100c1e73,#100c1eb8)}.opening .round-header,.opening .word-stage{visibility:hidden}.opening .actions{flex-wrap:wrap;justify-content:center;gap:8px}.daylight .dialogue{background:linear-gradient(#100c1e0d,#100c1e52)}.opening .actions:has(>:nth-child(3)){display:grid;grid-template-columns:repeat(2,minmax(0,1fr));width:100%;max-width:460px}.opening .actions:has(>:nth-child(3)) .btn{width:100%;min-width:0;padding-inline:8px}.opening .actions .btn.primary{grid-column:1 / -1}.opening .btn.seen{opacity:.7}.opening .btn.seen:after{content:" ✓";color:var(--ghost)}.object-tags{position:absolute;inset:0;z-index:3;pointer-events:none;visibility:hidden}.object-tags.placed{visibility:visible}.object-tag{position:absolute;pointer-events:auto;min-height:36px;padding:4px 12px;border-radius:10px;border:2px solid var(--ink);background-color:var(--washi);background-repeat:no-repeat;color:var(--ink);font:900 .82rem var(--jp);letter-spacing:.04em;white-space:nowrap;box-shadow:0 3px 10px #00000059;cursor:pointer}.object-tag.above{transform:translate(-50%,calc(-100% - 9px))}.object-tag.below{transform:translate(-50%,9px)}.object-tag:before,.object-tag:after{content:"";position:absolute;left:50%;transform:translate(-50%);border:0 solid transparent}.object-tag.above:before{top:100%;border-width:10px 8px 0;border-top-color:var(--ink)}.object-tag.above:after{top:100%;margin-top:-1px;border-width:7px 6px 0;border-top-color:var(--washi)}.object-tag.below:before{bottom:100%;border-width:0 8px 10px;border-bottom-color:var(--ink)}.object-tag.below:after{bottom:100%;margin-bottom:-1px;border-width:0 6px 7px;border-bottom-color:var(--washi)}.object-tag.edge-left:before,.object-tag.edge-left:after,.object-tag.edge-right:before,.object-tag.edge-right:after{content:none}.object-tag.seen{background-color:#d9d0bd;color:var(--ink-soft);padding-right:28px;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 14 14'%3E%3Cpath d='M2 7.5l3.2 3.2L12 3.6' fill='none' stroke='%232f8f5b' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");background-position:right 9px center;background-size:13px}.object-tag.seen.above:after{border-top-color:#d9d0bd}.object-tag.seen.below:after{border-bottom-color:#d9d0bd}.object-tag.edge-right{padding-right:26px;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 10 12'%3E%3Cpath d='M2 1l7 5-7 5z' fill='%236b5a4a'/%3E%3C/svg%3E");background-position:right 10px center;background-size:9px 11px}.object-tag.edge-left{padding-left:26px;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 10 12'%3E%3Cpath d='M8 1L1 6l7 5z' fill='%236b5a4a'/%3E%3C/svg%3E");background-position:left 10px center;background-size:9px 11px}.object-tag.seen.edge-right{padding-right:44px;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 14 14'%3E%3Cpath d='M2 7.5l3.2 3.2L12 3.6' fill='none' stroke='%232f8f5b' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E"),url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 10 12'%3E%3Cpath d='M2 1l7 5-7 5z' fill='%236b5a4a'/%3E%3C/svg%3E");background-position:right 26px center,right 10px center;background-size:13px,9px 11px}.object-tag.seen.edge-left{padding-left:26px;padding-right:28px;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 10 12'%3E%3Cpath d='M8 1L1 6l7 5z' fill='%236b5a4a'/%3E%3C/svg%3E"),url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 14 14'%3E%3Cpath d='M2 7.5l3.2 3.2L12 3.6' fill='none' stroke='%232f8f5b' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");background-position:left 10px center,right 9px center;background-size:9px 11px,13px}.screen.map-screen{position:relative;padding:0;gap:0;overflow:hidden;justify-content:flex-start}.map-scroll{position:absolute;inset:0;overflow-y:auto;overscroll-behavior:contain;padding-bottom:110px;scrollbar-width:none}.map-scroll::-webkit-scrollbar{display:none}.map{display:block;width:100%;height:auto}.map-stack{position:relative}.map-stack>.map-magic,.map-stack>.map-hits{position:absolute;left:0;top:0}.map-magic{clip-path:circle(var(--lens-r, 206px) at 50% var(--lens-cy, 376px))}.map .map-place{cursor:pointer}.map .map-place.light-closed:not(.home){cursor:default}.map .map-place:focus{outline:none}.map .map-place:focus-visible .map-hit{stroke:var(--ghost);stroke-width:2;stroke-dasharray:4 3}.map .map-wisp{animation:map-wisp 2.8s ease-in-out infinite}.map .map-art:nth-child(3n) .map-wisp{animation-delay:-1.1s}@keyframes map-wisp{50%{transform:translateY(-3px);opacity:.8}}.map-lens{position:absolute;inset:0;z-index:5;overflow:hidden;pointer-events:none}.map-lens:before{content:"";position:absolute;left:50%;top:var(--lens-y, 376px);width:calc(2 * var(--lens-r, 206px));height:calc(2 * var(--lens-r, 206px));transform:translate(-50%,-50%);border-radius:50%;border:7px solid var(--gold);background:radial-gradient(circle at 32% 24%,rgba(255,255,255,.1),transparent 26%);box-shadow:0 0 0 2px var(--ink),inset 0 0 0 2px var(--ink),inset 0 0 0 4px #fff0c866,inset 0 0 36px 8px #a8f0c633,0 0 22px 4px #a8f0c64d,0 0 0 100vmax #1914262e}.map-lens:after{content:"";position:absolute;left:calc(50% - .7071 * var(--lens-r, 206px));top:calc(var(--lens-y, 376px) + .7071 * var(--lens-r, 206px));width:12px;height:60%;border:2px solid var(--ink);border-top:0;border-radius:0 0 8px 8px;background:linear-gradient(90deg,#8a6420,var(--gold) 35%,#f6dc96 50%,var(--gold) 65%,#8a6420);transform-origin:50% 0;transform:translate(-50%) rotate(40deg)}.map-lens-spark{position:absolute;left:0;top:0;width:0;height:0;display:none}.map-lens-spark.shown{display:block}.map-lens-spark:before{content:"";position:absolute;left:-9px;top:-9px;width:18px;height:18px;border-radius:50% 50% 50% 0;transform:rotate(135deg);background:radial-gradient(circle at 40% 60%,#fff 0 18%,var(--ghost) 40%,rgba(168,240,198,.4) 70%);box-shadow:0 0 10px 3px #a8f0c6a6,0 0 0 1.5px var(--ink);animation:lens-spark 1.6s ease-in-out infinite}@keyframes lens-spark{50%{opacity:.55;box-shadow:0 0 18px 6px #a8f0c673,0 0 0 1.5px var(--ink)}}@media(prefers-reduced-motion:reduce){.map .map-wisp,.map-lens-spark:before{animation:none}}.map-bar{position:absolute;left:0;right:0;bottom:0;z-index:6;display:flex;flex-direction:column;align-items:center;gap:6px;padding:18px 16px calc(18px + env(safe-area-inset-bottom));background:linear-gradient(#0a081400,#0a0814d9 45%)}.map-bar-buttons{display:flex;gap:10px;justify-content:center;flex-wrap:wrap}.map-sheet-back{position:absolute;inset:0;z-index:20;display:flex;align-items:flex-end;justify-content:center;background:#0a08148c}.map-sheet{width:100%;max-height:82%;display:flex;flex-direction:column;padding:14px 14px calc(16px + env(safe-area-inset-bottom));border-radius:22px 22px 0 0;border-top:3px solid var(--gold);background:#17132b;box-shadow:0 -10px 30px #00000080;animation:sheet-up .25s ease-out both}@keyframes sheet-up{0%{transform:translateY(30px);opacity:0}}@media(prefers-reduced-motion:reduce){.map-sheet{animation:none}}.map-sheet-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:10px}.map-sheet-names{display:flex;flex-direction:column;align-items:flex-start;text-align:left}.map-sheet-names h3{margin:0;font:900 1.2rem var(--jp);color:var(--washi)}.map-sheet-sign{font:700 .9rem var(--fr, serif);color:var(--ghost);letter-spacing:.06em}.map-sheet-body{min-height:0;overflow-y:auto;display:flex;flex-direction:column;gap:14px;align-items:stretch;text-align:center}.map-sheet-body>*{flex-shrink:0}.map-sheet-body .missions{width:100%}.clap-board{position:absolute;z-index:45;top:64px;left:50%;transform:translate(-50%);width:min(94vw,460px);display:flex;flex-direction:column;gap:10px;padding:12px 10px;border-radius:14px;background:var(--washi);color:var(--ink);box-shadow:0 8px 28px #00000073;pointer-events:none}.clap-row{display:grid;grid-template-columns:4.6em 1fr 2.4em;align-items:center;gap:6px;transition:opacity .3s}.clap-row.waiting{opacity:.15}.clap-label{font:900 .72rem/1.25 var(--jp);color:var(--ink-soft)}.clap-beats{display:flex;gap:6px;justify-content:center;flex-wrap:wrap}.clap-beat{display:flex;flex-direction:column;align-items:center;min-width:3em;padding:4px 8px 2px;border-radius:10px;border:2px solid var(--ink-soft);background:#fff}.clap-row.fr .clap-beat{border-color:var(--blue)}.clap-letters{font:700 1rem var(--fr, serif)}.clap-kana{font:900 1.2rem var(--jp)}.clap-hand{font-size:.85rem;line-height:1.2;opacity:0}.clap-beat.hit{animation:clap-hit .32s ease-out;border-color:var(--gold)}.clap-beat.hit .clap-hand{opacity:1}@keyframes clap-hit{40%{transform:scale(1.15)}}.clap-count{font:900 1rem var(--jp);color:var(--red);text-align:right}.clap-note{margin:6px 0 0;padding:8px 12px;border-radius:12px;background:#4cc9f01f;color:var(--ink);text-align:left;display:flex;flex-direction:column;gap:6px}.clap-line{margin:0;display:flex;flex-wrap:wrap;align-items:center;gap:2px 6px;font:700 .95rem/1.4 var(--jp)}.clap-line .clap-label{margin-right:4px}.clap-syl{display:inline-flex;flex-direction:column;align-items:center;line-height:1.2}.clap-syl .clap-letters,.clap-syl .clap-kana{font-size:.95rem}.clap-line .clap-count{margin-left:auto;font-size:.85rem}.clap-line.jp{color:var(--ink-soft)}.clap-line.jp .clap-kana{font-size:.95rem}.clap-again{align-self:flex-start;padding:6px 14px;font-size:.85rem}.tile.clap-hit{transform:translateY(-6px) scale(1.08);box-shadow:0 0 0 3px var(--gold);transition:transform .12s}
