:root{--bg0: #f4f1ea;--bg1: #ebe6dc;--surface: #ffffff;--surface-soft: #faf8f4;--ink: #2a2824;--muted: #6b6560;--border: rgba(42, 40, 36, .1);--border-strong: rgba(42, 40, 36, .16);--joy: #c9920f;--anger: #b84a38;--sorrow: #4a6d8c;--ease: #4a8560;--card: #ffffff;--card-ink: #2a2824;--accent: #c9920f;--danger: #b84a38;--ok: #4a8560;--shadow: 0 12px 40px rgba(42, 40, 36, .08);--font: "Zen Kaku Gothic New", system-ui, sans-serif;--mono: "Space Grotesk", ui-monospace, monospace;--radius: 20px;--safe-b: env(safe-area-inset-bottom, 0px)}*{box-sizing:border-box}html,body{height:100%;margin:0}body{font-family:var(--font);color:var(--ink);background:radial-gradient(100% 70% at 0% 0%,rgba(201,146,15,.08) 0%,transparent 55%),radial-gradient(80% 60% at 100% 0%,rgba(74,109,140,.07) 0%,transparent 50%),var(--bg0);overflow:hidden}#app{height:100%}.screen{height:100%;display:flex;flex-direction:column;padding:20px 20px calc(20px + var(--safe-b));max-width:480px;margin:0 auto}.brand{display:flex;align-items:center;gap:12px}.brand img{width:40px;height:40px;border-radius:10px;box-shadow:var(--shadow)}.brand h1{font-size:1.35rem;font-weight:900;letter-spacing:.04em;margin:0}.brand p{margin:2px 0 0;color:var(--muted);font-size:.78rem}.hero{flex:1;display:flex;flex-direction:column;justify-content:center;gap:18px;animation:rise .7s ease both}.hero .lead{font-size:clamp(1.6rem,6vw,2.1rem);font-weight:900;line-height:1.35;margin:0}.hero .sub{color:var(--muted);line-height:1.6;margin:0;font-size:.95rem}.meta-row{display:flex;flex-wrap:wrap;gap:8px}.chip{border:1px solid var(--border-strong);background:var(--surface);border-radius:999px;padding:6px 12px;font-size:.75rem;color:var(--muted)}.btn-row{display:flex;flex-direction:column;gap:10px;margin-top:8px}button{font-family:inherit;border:0;cursor:pointer}.btn{border-radius:14px;padding:16px 18px;font-size:1rem;font-weight:700;transition:transform .15s ease,opacity .15s ease;box-shadow:0 2px 8px #2a28240f}.btn:active{transform:scale(.98)}.btn-primary{background:var(--ink);color:var(--bg0)}.btn-ghost{background:var(--surface);color:var(--ink);border:1px solid var(--border-strong)}.topbar{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:8px}.progress-wrap{flex:1}.progress-label{display:flex;justify-content:space-between;font-size:.75rem;color:var(--muted);margin-bottom:6px;font-family:var(--mono)}.progress-bar{height:4px;background:var(--border);border-radius:999px;overflow:hidden}.progress-bar>span{display:block;height:100%;background:linear-gradient(90deg,var(--joy),var(--ease));width:0%;transition:width .25s ease}.react-bar-wrap{margin-top:8px}.react-bar-label{display:flex;justify-content:space-between;font-size:.68rem;color:var(--muted);margin-bottom:4px;font-family:var(--mono)}.react-bar{height:4px;background:var(--border);border-radius:999px;overflow:hidden}.react-bar>span{display:block;height:100%;width:100%;background:linear-gradient(90deg,var(--sorrow),var(--joy));transform-origin:left center;transform:scaleX(1)}.combo{min-width:72px;text-align:right;font-family:var(--mono);font-weight:700;font-size:1.45rem;line-height:1;color:var(--joy);opacity:0;transform:translateY(4px);transition:opacity .2s ease,transform .2s ease}.combo.on{opacity:1;transform:translateY(0)}.stage{position:relative;flex:1;display:flex;align-items:center;justify-content:center;touch-action:none;-webkit-user-select:none;user-select:none}.yn-card{position:absolute;width:min(88vw,360px);min-height:280px;background:var(--card);color:var(--card-ink);border-radius:var(--radius);box-shadow:var(--shadow);border:1px solid var(--border);display:flex;flex-direction:column;justify-content:center;align-items:center;padding:36px 28px 28px;gap:28px;will-change:transform}.yn-card.tilt-no{box-shadow:-8px 16px 36px #4a6d8c26}.yn-card.tilt-yes{box-shadow:8px 16px 36px #c9920f2e}.card-prompt{margin:0;text-align:center;font-size:clamp(1.35rem,5.2vw,1.75rem);font-weight:900;line-height:1.45;letter-spacing:.02em}.card-hint{width:100%;display:flex;justify-content:space-between;font-family:var(--mono);font-size:.78rem;font-weight:700;letter-spacing:.06em;opacity:.45}.stamp{position:absolute;top:20px;padding:6px 14px;border:3px solid;border-radius:10px;font-family:var(--mono);font-weight:700;font-size:1.15rem;letter-spacing:.08em;opacity:0;pointer-events:none;background:#fffffff2}.stamp-no{left:18px;color:var(--sorrow);border-color:var(--sorrow);transform:rotate(-14deg)}.stamp-yes{right:18px;color:var(--joy);border-color:var(--joy);transform:rotate(14deg)}.yn-row-lite{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:8px}.yn{font-family:var(--mono);font-size:1.05rem;font-weight:700;letter-spacing:.08em;border:0;border-radius:14px;padding:14px 12px;cursor:pointer;transition:transform .12s ease,opacity .12s;box-shadow:0 2px 8px #2a28240f}.yn:active{transform:scale(.97)}.yn:disabled{opacity:.55;cursor:default}.yn-yes{background:var(--ink);color:var(--bg0)}.yn-no{background:var(--surface);color:var(--ink);border:1.5px solid var(--border-strong)}.quiz-back{display:block;width:100%;margin-top:10px;padding:8px;border:0;background:transparent;color:var(--muted);font-family:var(--mono);font-size:.78rem;letter-spacing:.04em;cursor:pointer;text-align:center}.quiz-back:hover{color:var(--ink)}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}.result{flex:1;overflow:auto;display:flex;flex-direction:column;gap:14px;padding-bottom:8px;animation:rise .55s ease both}.result .code{display:flex;flex-wrap:nowrap;align-items:flex-start;justify-content:flex-start;gap:.35em;font-family:var(--mono);font-size:clamp(2.4rem,10vw,3.2rem);font-weight:700;letter-spacing:0;margin:8px 0 0}.result .code-cell{display:inline-flex;flex-direction:column;align-items:center;gap:4px;line-height:1;min-width:1.05em}.result .code-cell b{display:block;font-weight:700;letter-spacing:0;line-height:1}.result .code-cell i{display:block;font-style:normal;font-family:var(--font);font-size:.28em;font-weight:700;letter-spacing:.06em;line-height:1.2;opacity:.92;white-space:nowrap}.result .code .c0,.result .code .c0 i{color:var(--joy)}.result .code .c1,.result .code .c1 i{color:var(--anger)}.result .code .c2,.result .code .c2 i{color:var(--sorrow)}.result .code .c3,.result .code .c3 i{color:var(--ease)}.result .code-sep{display:inline-flex;align-items:flex-start;justify-content:center;margin:0 -.02em;color:var(--muted);font-weight:700;font-size:1em;line-height:1;-webkit-user-select:none;user-select:none}.result .code .c-bonus{color:var(--muted);min-width:1.6em}.result .code .c-bonus b{letter-spacing:.04em;font-size:1em;font-weight:700}.result .code .c-bonus i{font-size:.28em;font-weight:700;letter-spacing:.04em;opacity:.85}.result .title{font-size:1.35rem;font-weight:900;line-height:1.45;margin:0;line-break:strict;word-break:auto-phrase}.result .tagline{color:var(--muted);line-height:1.7;margin:0;font-size:.92rem;line-break:strict;word-break:auto-phrase}.share-banner{margin:0;padding:10px 12px;border-radius:12px;font-size:.82rem;line-height:1.5;background:#4a85601a;border:1px solid rgba(74,133,96,.25);color:var(--ink)}.share-hero{display:flex;flex-direction:column;gap:10px;padding:14px;border-radius:var(--radius);background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow)}.share-hero-head{display:flex;justify-content:space-between;align-items:baseline;gap:8px}.share-hero-head h3{margin:0;font-size:.88rem;font-weight:800;letter-spacing:.04em}.share-char-count{font-family:var(--mono);font-size:.72rem;color:var(--muted)}.share-char-count.over{color:var(--danger);font-weight:700}.share-hook{margin:0;font-size:1rem;font-weight:800;line-height:1.55}.share-card{background:var(--surface-soft);border:1px solid var(--border);border-radius:14px;padding:12px 14px}.share-card-body{margin:0;font-family:var(--font);font-size:.88rem;line-height:1.65;white-space:pre-wrap;word-break:break-word}.share-hero-actions{display:flex;flex-direction:column;gap:8px}.report-block{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:14px 14px 12px;box-shadow:0 2px 12px #2a28240a}.report-block h3{margin:0 0 8px;font-size:.92rem;font-weight:800;letter-spacing:.02em}.report-block.free h3{color:var(--ink)}.reading{display:flex;flex-direction:column;gap:16px}.reading-block{padding-left:10px;border-left:3px solid var(--border)}.reading-block.emo-joy{border-left-color:var(--joy)}.reading-block.emo-anger{border-left-color:var(--anger)}.reading-block.emo-sorrow{border-left-color:var(--sorrow)}.reading-block.emo-ease{border-left-color:var(--ease)}.reading-block h4{display:flex;align-items:baseline;gap:6px;margin:0 0 4px;font-size:.82rem;font-weight:800;letter-spacing:.02em;color:var(--ink)}.reading-block .facet-letter{font-family:var(--mono);font-size:.78rem;font-weight:700;letter-spacing:.04em;color:var(--muted)}.reading-block.emo-joy .facet-heading{color:var(--joy)}.reading-block.emo-anger .facet-heading{color:var(--anger)}.reading-block.emo-sorrow .facet-heading{color:var(--sorrow)}.reading-block.emo-ease .facet-heading{color:var(--ease)}.reading-block p{margin:0;font-size:.95rem;line-height:1.85;line-break:strict;word-break:auto-phrase}.essay{margin:0 0 14px;font-size:.95rem;line-height:1.92;line-break:strict;word-break:auto-phrase;color:var(--ink)}.essay:last-child{margin-bottom:0}.block-lead{margin:0 0 10px;color:var(--muted);font-size:.82rem;line-height:1.55}.speed-style{margin:0 0 6px;font-weight:800;font-size:1rem}.speed-style .muted{margin-left:8px;font-weight:500;color:var(--muted);font-size:.8rem;font-family:var(--mono)}.muted-note{margin-top:12px;opacity:.9}.bipolar-row{margin:10px 0 14px}.bipolar-labels{display:flex;justify-content:space-between;gap:8px;font-size:.72rem;color:var(--muted);margin-bottom:6px}.bipolar-track{position:relative;height:8px;background:var(--border);border-radius:999px;overflow:visible}.bipolar-fill{position:absolute;top:0;height:100%;border-radius:999px;transition:width .6s ease}.bipolar-fill.from-left{left:0}.bipolar-fill.from-right{right:0}.bipolar-marker{position:absolute;top:50%;width:12px;height:12px;margin-left:-6px;margin-top:-6px;border-radius:50%;background:var(--ink);border:2px solid var(--surface);box-shadow:0 1px 4px #2a282440;pointer-events:none}.chart{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:14px;box-shadow:0 2px 12px #2a28240a}.chart.bare{background:transparent;border:0;box-shadow:none;padding:0}.chart h3{margin:0 0 10px;font-size:.85rem;color:var(--muted);font-weight:600}.chart-hint{margin-left:.4em;font-size:.72rem;font-weight:500;color:color-mix(in srgb,var(--muted) 75%,transparent)}.bar-row{display:grid;grid-template-columns:52px 1fr 36px;gap:8px;align-items:center;margin:5px 0;font-size:.72rem;font-family:var(--mono)}.bar-row.axis{grid-template-columns:minmax(7.5rem,42%) 1fr 36px;font-family:var(--font)}.bar-row .axis-label{display:flex;flex-direction:row;align-items:baseline;gap:6px;line-height:1.2;min-width:0}.bar-row .axis-label b{flex:0 0 auto;font-family:var(--mono);font-size:.78rem;font-weight:700;letter-spacing:.04em}.bar-row .axis-label i{flex:1 1 auto;font-style:normal;color:var(--muted);font-size:.72rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.bar-row .track{height:6px;background:var(--border);border-radius:999px;overflow:hidden}.bar-row .track>i{display:block;height:100%;background:var(--joy);width:0;transition:width .6s ease}.axis-detail{margin:0;border-bottom:1px solid color-mix(in srgb,var(--border) 70%,transparent)}.axis-detail:last-child{border-bottom:none}.axis-detail>summary.bar-row.axis{list-style:none;cursor:pointer;margin:0;padding:7px 0;-webkit-user-select:none;user-select:none}.axis-detail>summary.bar-row.axis::-webkit-details-marker{display:none}.axis-detail>summary.bar-row.axis::marker{content:""}.axis-detail>summary.bar-row.axis .axis-pct:after{content:" ›";color:var(--muted);font-weight:400;transition:transform .15s ease;display:inline-block}.axis-detail[open]>summary.bar-row.axis .axis-pct:after{transform:rotate(90deg)}.axis-detail>summary.bar-row.axis:hover .axis-label i{color:var(--ink)}.axis-panel{padding:0 0 12px;font-size:.82rem;line-height:1.65;color:color-mix(in srgb,var(--ink) 88%,var(--muted))}.axis-panel p{margin:0 0 .55em}.axis-panel p:last-child{margin-bottom:0}.axis-panel strong{font-weight:600;color:var(--ink)}.axis-core{display:grid;grid-template-columns:2.2em 1fr;gap:.5em;align-items:baseline}.axis-core span{font-size:.68rem;font-weight:700;letter-spacing:.06em;color:var(--muted)}.paywall{border:1px solid rgba(201,146,15,.35);background:linear-gradient(160deg,rgba(201,146,15,.08),var(--surface));border-radius:var(--radius);padding:16px;box-shadow:var(--shadow)}.paywall h3{margin:0 0 6px;font-size:1rem}.paywall p{margin:0 0 12px;color:var(--muted);font-size:.85rem;line-height:1.5}.price{font-family:var(--mono);font-weight:700;color:var(--joy)}.paywall.unlocked{border-color:#4a856066;background:linear-gradient(160deg,rgba(74,133,96,.08),var(--surface))}.pay-note{margin:8px 0 0;font-size:.75rem;color:var(--muted);text-align:center}.pay-note.is-error{color:var(--danger)}#checkout-form{margin-top:12px;min-height:120px}.deep-report{display:flex;flex-direction:column;gap:12px;margin-top:8px}.deep-preview{max-height:200px;overflow:hidden;margin-top:4px}.deep-report .report-block,.deep-preview .report-block{margin:0}.blurred{filter:blur(5px);opacity:.55;pointer-events:none;-webkit-user-select:none;user-select:none}.toast{position:fixed;left:50%;bottom:calc(24px + var(--safe-b));transform:translate(-50%) translateY(20px);background:var(--ink);color:var(--bg0);padding:12px 16px;border-radius:999px;font-size:.85rem;font-weight:700;opacity:0;transition:.25s ease;z-index:50;box-shadow:var(--shadow)}.toast.on{opacity:1;transform:translate(-50%) translateY(0)}@keyframes rise{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}.catalog-screen{padding-bottom:calc(12px + var(--safe-b))}.catalog{flex:1;overflow:auto;display:flex;flex-direction:column;gap:16px;margin-top:14px;padding-bottom:8px;scroll-behavior:smooth;animation:rise .55s ease both}.catalog-lead{margin:0;color:var(--muted);font-size:.9rem;line-height:1.6}.catalog-code{display:flex;gap:.35em;font-family:var(--mono);font-size:clamp(1.8rem,8vw,2.4rem);font-weight:700;margin:0}.catalog-code .code-cell{display:inline-flex;flex-direction:column;align-items:center;gap:4px;min-width:1.05em;line-height:1}.catalog-code .code-cell b{letter-spacing:0}.catalog-code .code-cell i{font-style:normal;font-family:var(--font);font-size:.32em;font-weight:700;letter-spacing:.06em}.catalog-code .c0,.catalog-code .c0 i{color:var(--joy)}.catalog-code .c1,.catalog-code .c1 i{color:var(--anger)}.catalog-code .c2,.catalog-code .c2 i{color:var(--sorrow)}.catalog-code .c3,.catalog-code .c3 i{color:var(--ease)}.catalog-section{scroll-margin-top:12px;padding:12px 0 4px;border-top:1px solid var(--border)}.catalog-section h2{display:flex;align-items:baseline;gap:6px;margin:0 0 10px;font-size:1.05rem;font-weight:900}.catalog-section h2 i{font-style:normal;font-size:1.25em}.catalog-section.emo-joy h2 i{color:var(--joy)}.catalog-section.emo-anger h2 i{color:var(--anger)}.catalog-section.emo-sorrow h2 i{color:var(--sorrow)}.catalog-section.emo-ease h2 i{color:var(--ease)}.catalog-section h2 span{color:var(--muted);font-size:.85em;font-weight:700}.facet-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}.facet-pick{display:flex;flex-direction:column;align-items:flex-start;gap:2px;min-height:64px;padding:12px;border-radius:14px;border:1.5px solid var(--border-strong);background:var(--surface);color:var(--ink);font-family:var(--font);text-align:left;cursor:pointer;transition:border-color .15s ease,background .15s ease,transform .12s ease;-webkit-tap-highlight-color:transparent}.facet-pick:active{transform:scale(.98)}.facet-pick b{font-family:var(--mono);font-size:1.15rem;font-weight:700;line-height:1}.facet-pick span{font-size:.82rem;font-weight:700;color:var(--muted);line-height:1.3}.facet-pick.on{border-color:var(--ink);background:var(--surface-soft);box-shadow:inset 0 0 0 1px var(--ink)}.catalog-section.emo-joy .facet-pick.on{border-color:var(--joy);box-shadow:inset 0 0 0 1px var(--joy)}.catalog-section.emo-anger .facet-pick.on{border-color:var(--anger);box-shadow:inset 0 0 0 1px var(--anger)}.catalog-section.emo-sorrow .facet-pick.on{border-color:var(--sorrow);box-shadow:inset 0 0 0 1px var(--sorrow)}.catalog-section.emo-ease .facet-pick.on{border-color:var(--ease);box-shadow:inset 0 0 0 1px var(--ease)}.catalog-actions{margin-top:4px}@media(min-width:720px){body{overflow:auto}#app{min-height:100%}.screen{min-height:100vh}}
