:root{color:#1f211d;font-synthesis:none;--paper:#f8f4ea;--paper-deep:#e9e0cf;--ink:#1f211d;--ink-soft:#65675f;--red:#b64838;--red-dark:#87362c;--moss:#73806c;--line:#1f211d2b;background:#f3eee3;font-family:Hiragino Kaku Gothic ProN,Yu Gothic,YuGothic,sans-serif}*{box-sizing:border-box}html{background:#f3eee3;min-width:320px}body{min-width:320px;min-height:100vh;margin:0;overflow-x:hidden}button,input{font:inherit}button{color:inherit}button:focus-visible,input:focus-visible{outline-offset:3px;outline:3px solid #b6483859}body:before{content:"";pointer-events:none;opacity:.28;z-index:10;mix-blend-mode:multiply;background-image:radial-gradient(circle at 10% 20%,#7c5c3614 0 1px,#0000 1.5px),radial-gradient(circle at 80% 70%,#7c5c360f 0 1px,#0000 1.5px);background-size:17px 17px,23px 23px;position:fixed;inset:0}#root{min-height:100vh}.landing{grid-template-columns:minmax(520px,1.15fr) minmax(360px,.85fr);align-items:center;gap:clamp(2.5rem,5vw,5.5rem);max-width:1320px;min-height:100vh;margin:0 auto;padding:clamp(2.75rem,4vw,5rem);display:grid}.eyebrow,.step-label,.mini-label,.card-index{letter-spacing:.18em;color:var(--red);font-size:.68rem;font-weight:700}.landing h1,.section-intro h1{letter-spacing:-.04em;margin:1rem 0 1.5rem;font-family:Yu Mincho,Hiragino Mincho ProN,serif;font-weight:500;line-height:1.28}.landing h1{font-size:clamp(2.65rem,4.4vw,4.8rem)}.landing h1 span,.landing h1 em{white-space:nowrap;display:block}.landing h1 em{color:var(--red);font-style:normal}.lead{color:#555850;font-size:1.04rem;line-height:2}.keep{white-space:nowrap}.primary-button{background:var(--ink);color:#fffdf7;letter-spacing:.04em;cursor:pointer;min-height:58px;box-shadow:4px 4px 0 var(--red);border:0;border-radius:2px;padding:.9rem 1.25rem;font-weight:700;transition:transform .18s,box-shadow .18s}.primary-button:hover{box-shadow:2px 2px 0 var(--red);transform:translate(1px,1px)}.primary-button:disabled{opacity:.55;cursor:wait}.landing-cta{min-width:250px;margin-top:1.4rem}.landing-cta span{float:right;font-size:1.3rem}.privacy-note{color:#5f625b;margin-top:1.35rem;font-size:.74rem}.landing-art{min-height:570px;position:relative}.name-sheet{aspect-ratio:.72;background:var(--paper);border:1px solid #2d271b24;flex-direction:column;justify-content:center;align-items:center;width:min(330px,68%);display:flex;position:absolute;box-shadow:0 32px 70px #483a2529}.name-sheet:after{content:"";border:1px solid #332d2312;position:absolute;inset:14px}.name-sheet span{writing-mode:vertical-rl;letter-spacing:.3em;color:var(--ink-soft);position:absolute;top:2.4rem;right:2rem}.name-sheet strong{font-family:Yu Mincho,Hiragino Mincho ProN,serif;font-size:7.5rem;font-weight:400}.name-sheet small{color:var(--ink-soft);letter-spacing:.1em;margin-top:2.2rem}.sheet-back{background:#e8e0d0;top:0;right:-2%;transform:rotate(7deg)}.sheet-back strong{transform:translate(12%)}.sheet-front{bottom:0;left:0;transform:rotate(-4deg)}.seal{border:3px double var(--red);width:74px;height:74px;color:var(--red);border-radius:50%;place-items:center;font-family:serif;font-size:2rem;display:grid;position:absolute;bottom:8%;right:4%;transform:rotate(10deg)}.app-shell{width:min(100%,520px);min-height:100vh;margin:0 auto;padding:0 18px 104px;position:relative}.app-header{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;height:78px;display:flex}.wordmark{letter-spacing:.02em;cursor:pointer;background:0 0;border:0;padding:0;font-family:Georgia,serif;font-size:1.45rem}.wordmark span{color:var(--red);font-size:1.8rem;font-style:italic}.app-header p{color:var(--ink-soft);letter-spacing:.08em;margin:0;font-size:.72rem}.section-intro{padding:3.3rem 2px 2.3rem}.section-intro h1{font-size:clamp(2.15rem,9vw,3.4rem)}.section-intro>p:last-child{color:var(--ink-soft);line-height:1.75}.compact-intro{padding-bottom:1.4rem}.setup-form{gap:2.4rem;display:grid}fieldset{border:0;margin:0;padding:0}legend{align-items:center;gap:.8rem;margin-bottom:1rem;font-weight:700;display:flex}legend span{border:1px solid var(--red);width:28px;height:28px;color:var(--red);border-radius:50%;place-items:center;font-size:.68rem;display:grid}.chip-grid{flex-wrap:wrap;gap:.65rem;display:flex}.chip-grid.compact .chip{min-width:120px}.chip{border:1px solid var(--line);cursor:pointer;min-height:44px;color:var(--ink-soft);background:#fffdf794;border-radius:999px;padding:.65rem 1rem}.chip[aria-pressed=true]{border-color:var(--ink);background:var(--ink);color:#fff}.chip span{color:#eec8bf}.text-fields{gap:1rem;display:grid}label{gap:.5rem;font-size:.86rem;font-weight:700;display:grid}input{border:1px solid var(--line);background:#fffdf7b8;border-radius:2px;width:100%;min-width:0;min-height:50px;padding:.85rem .9rem}label small{color:var(--ink-soft);font-size:.7rem;font-weight:400}.field-row{grid-template-columns:1fr 1fr;gap:.8rem;display:grid}.setup-submit{width:100%;margin:.5rem 0 2rem}.invite-bar{border-left:3px solid var(--moss);background:#e6e9df;justify-content:space-between;align-items:center;gap:.8rem;margin:1.2rem 0;padding:1rem;display:flex}.invite-bar div{gap:.25rem;display:grid}.invite-bar .mini-label{color:var(--moss)}.invite-bar strong{font-size:.82rem}.invite-bar button{border:1px solid var(--moss);color:#3f4a3c;cursor:pointer;white-space:nowrap;background:0 0;min-height:40px;padding:.5rem .7rem;font-weight:700}.progress-line{color:var(--ink-soft);grid-template-columns:auto 1fr auto;align-items:center;gap:.7rem;margin:1.1rem 0 .9rem;font-size:.7rem;display:grid}.progress-line>div{background:var(--paper-deep);height:2px;overflow:hidden}.progress-line i{background:var(--red);height:100%;transition:width .3s;display:block}.candidate-card{border:1px solid var(--line);background:#faf7eff0;min-height:510px;padding:1.25rem 1.35rem 1.5rem;animation:.36s both card-in;position:relative;overflow:hidden;box-shadow:0 18px 45px #3e33231f}.candidate-card:before{content:"";background:var(--red);height:5px;position:absolute;top:0;left:0;right:38%}.card-index{text-align:right;color:var(--ink-soft)}.candidate-name{text-align:center;padding:1.5rem 0 1.15rem}.candidate-name>span{color:var(--ink-soft);letter-spacing:.32em;margin-left:.32em;font-size:.82rem;display:block}.candidate-name h2{letter-spacing:.02em;margin:.2rem 0 .1rem;font-family:Yu Mincho,Hiragino Mincho ProN,serif;font-size:clamp(5.7rem,24vw,8.4rem);font-weight:400;line-height:1.12}.candidate-name p{color:var(--red);letter-spacing:.08em;margin:0;font-family:Georgia,serif;font-style:italic}.meaning{border-top:1px solid var(--line);border-bottom:1px solid var(--line);text-align:center;margin:0;padding:1rem 0;font-family:Yu Mincho,Hiragino Mincho ProN,serif;line-height:1.8}.candidate-meta{flex-wrap:wrap;justify-content:center;gap:.35rem;padding:.8rem 0;display:flex}.candidate-meta span{border:1px solid var(--line);color:var(--ink-soft);border-radius:999px;padding:.25rem .55rem;font-size:.62rem}.why{background:#ede7db;padding:.8rem .95rem}.why .mini-label{color:var(--moss)}.why ul{color:#52564e;margin:.5rem 0 0;padding-left:1.1rem;font-size:.75rem;line-height:1.7}.swipe-actions{grid-template-columns:1fr 1fr;gap:.9rem;margin-top:1rem;display:grid}.swipe-actions button{cursor:pointer;border-radius:2px;justify-content:center;align-items:center;gap:.65rem;min-height:62px;font-weight:700;display:flex}.swipe-actions button:disabled{opacity:.55;cursor:wait}.swipe-actions span{font-size:1.5rem;line-height:1}.swipe-actions small{font-size:.8rem}.skip-button{border:1px solid var(--line);background:0 0}.like-button{border:1px solid var(--red);background:var(--red);color:#fff;box-shadow:4px 4px 0 var(--red-dark)}.reference-note{color:#5f625b;text-align:center;font-size:.68rem;line-height:1.5}.bottom-nav{z-index:5;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);border-top:1px solid var(--line);width:min(100%,520px);padding:.55rem 18px calc(.55rem + env(safe-area-inset-bottom));background:#f3eee3f0;grid-template-columns:1fr 1fr;display:grid;position:fixed;bottom:0;left:50%;transform:translate(-50%)}.bottom-nav button{min-height:50px;color:var(--ink-soft);cursor:pointer;background:0 0;border:0;font-size:.76rem;font-weight:700}.bottom-nav button.active{color:var(--red);background:#b6483812}.bottom-nav b{background:var(--red);color:#fff;border-radius:50%;place-items:center;min-width:20px;height:20px;margin-left:.2rem;font-size:.65rem;display:inline-grid}.match-list{gap:.85rem;display:grid}.match-card{border:1px solid var(--line);background:#faf7efe6;grid-template-columns:42px 82px 1fr;align-items:center;gap:.9rem;padding:1rem;display:grid}.match-number{color:var(--red);font-family:Georgia,serif;font-style:italic}.match-card>div{text-align:center;display:grid}.match-card small{letter-spacing:.15em;color:var(--ink-soft)}.match-card strong{font-family:Yu Mincho,serif;font-size:2.2rem;font-weight:500}.match-card em{color:var(--red);font-family:Georgia,serif;font-size:.72rem}.match-card p{color:var(--ink-soft);margin:0;font-size:.72rem;line-height:1.6}.empty-state{text-align:center;min-height:300px;color:var(--ink-soft);border:1px dashed var(--line);flex-direction:column;justify-content:center;align-items:center;padding:2rem;display:flex}.empty-state>span{border:1px solid var(--red);width:58px;height:58px;color:var(--red);border-radius:50%;place-items:center;margin-bottom:1rem;font-size:1.5rem;display:grid}.empty-state strong{color:var(--ink)}.empty-state p{font-size:.78rem;line-height:1.7}.finished{margin-top:3rem}.loading{min-height:65vh;color:var(--ink-soft);place-content:center;justify-items:center;display:grid}.loading span{border:2px solid var(--paper-deep);border-top-color:var(--red);border-radius:50%;width:38px;height:38px;animation:.8s linear infinite spin}.error-panel{border-left:3px solid var(--red);background:#f1ddd6;margin:1rem 0;padding:1rem;font-size:.8rem}.error-panel p{margin-top:0}.error-panel button{background:var(--red);color:#fff;cursor:pointer;border:0;padding:.55rem .8rem}.toast{z-index:20;color:#fff;background:var(--ink);overflow-wrap:anywhere;width:min(100% - 36px,440px);padding:.85rem 1rem;font-size:.78rem;position:fixed;top:18px;left:50%;transform:translate(-50%);box-shadow:0 12px 35px #0000002e}@keyframes card-in{0%{opacity:0;transform:translateY(10px)rotate(.8deg)}to{opacity:1;transform:none}}@keyframes spin{to{transform:rotate(360deg)}}@media (width<=760px){.landing{flex-direction:column;justify-content:center;gap:2.2rem;padding:3.2rem 22px;display:flex}.landing h1{font-size:7.8vw}.lead{font-size:.92rem}.landing-art{order:-1;width:100%;min-height:280px}.name-sheet{width:185px}.name-sheet strong{font-size:4.2rem}.name-sheet span{font-size:.65rem;top:1rem;right:1rem}.name-sheet small{display:none}.sheet-back{right:10%}.sheet-front{left:12%}.seal{width:50px;height:50px;font-size:1.3rem;bottom:2%;right:8%}.landing-cta{width:calc(100% - 7px)}}@media (width<=390px){.app-shell{padding-left:14px;padding-right:14px}.app-header p{display:none}.candidate-card{min-height:490px;padding-left:1rem;padding-right:1rem}.candidate-name h2{font-size:5.7rem}.field-row{grid-template-columns:1fr}.match-card{grid-template-columns:32px 70px 1fr;gap:.65rem;padding:.75rem}.invite-bar{flex-direction:column;align-items:stretch}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important}}
