.visual-screen{position:relative;width:100%;min-height:100dvh;background-image:var(--screen-image);background-position:center;background-size:cover;background-repeat:no-repeat;overflow:hidden}.visual-hit-area{position:absolute;inset:0}.image-hit{position:absolute;border:0;background:transparent;color:transparent;touch-action:manipulation}.image-hit:focus-visible{outline:4px solid #fff;outline-offset:2px;border-radius:26px}.cover-start{left:15.5%;top:76%;width:69%;height:10%}.cover-settings{right:2.5%;top:1.5%;width:11%;height:8%}.king-next{left:18%;top:83.5%;width:64%;height:10%}.mode-back{left:3%;top:2%;width:12%;height:8%}.mode-solo{left:3.2%;top:27.8%;width:45.7%;height:58%}.mode-group{right:3.2%;top:27.8%;width:45.7%;height:58%}
.setup-page{position:relative;min-height:100dvh;color:#fff;background:linear-gradient(180deg,rgba(8,83,135,.28),rgba(2,55,96,.62)),url('assets/kingdom.webp') center/cover no-repeat;padding:calc(18px + env(safe-area-inset-top)) 18px calc(28px + env(safe-area-inset-bottom));overflow:hidden}.setup-page:before{content:"";position:absolute;inset:0;max-width:540px;margin:auto;background:linear-gradient(180deg,rgba(51,178,238,.2),rgba(3,46,84,.38));backdrop-filter:blur(3px);pointer-events:none}.setup-page>*{position:relative;z-index:1}.flow-header{display:grid;grid-template-columns:60px 1fr 92px;align-items:start;gap:8px;margin-bottom:14px}.flow-back{width:48px;height:48px;border-radius:50%;border:1.5px solid rgba(255,255,255,.8);background:rgba(28,116,177,.24);color:white;font-size:2.4rem;line-height:1}.flow-logo{text-align:center;color:#063473;text-shadow:0 2px 8px rgba(255,255,255,.8)}.flow-logo span{display:block;color:#0ec9c2;font-weight:950;font-size:1.25rem;line-height:.65}.flow-logo b{font-family:"Yu Mincho","Hiragino Mincho ProN",serif;font-size:1.55rem;letter-spacing:.04em}.flow-header>p{margin:2px 0 0;text-align:right;font-family:"Yu Mincho",serif;font-size:.72rem;line-height:1.7;letter-spacing:.12em;text-shadow:0 2px 8px #16649b}.flow-header nav{grid-column:1/-1;display:flex;justify-content:center;margin-top:8px}.flow-header nav span{position:relative;width:24%;text-align:center;font-weight:800;font-size:.79rem;text-shadow:0 2px 8px #145b92}.flow-header nav span:not(:last-child):after{content:"";position:absolute;top:17px;left:67%;width:66%;height:1px;background:rgba(255,255,255,.78)}.flow-header nav i{display:grid;place-items:center;width:35px;height:35px;margin:0 auto 4px;border:2px solid rgba(255,255,255,.8);border-radius:50%;font-style:normal;background:rgba(26,113,178,.35)}.flow-header nav .current i,.flow-header nav .done i{border-color:#5ff9ed;background:#08afb1;box-shadow:0 0 18px rgba(29,245,235,.9)}
.setup-content{padding-bottom:4px}.setup-heading{text-align:center;margin:12px 0 14px;text-shadow:0 2px 10px rgba(4,56,94,.9)}.setup-heading h1{font-family:"Yu Mincho","Hiragino Mincho ProN",serif;font-size:2rem;line-height:1.2;margin:0 0 6px;letter-spacing:.05em}.setup-heading p{margin:0;font-size:.9rem;letter-spacing:.05em}.setup-heading.compact{margin-top:4px}.setup-heading.compact h1{font-size:2.2rem}.setup-heading.ready h1{font-size:2.1rem}.citizen-pass,.citizen-bar,.flow-plan,.flow-vaccine,.finance-status,.ready-citizen,.ready-roster,.ready-choice,.chapter-preview,.history-row{background:linear-gradient(150deg,rgba(255,255,255,.98),rgba(235,250,255,.96));color:#073476;border:2px solid rgba(183,229,249,.94);box-shadow:0 7px 22px rgba(3,44,81,.24)}
.citizen-pass{border-radius:22px;padding:18px;margin-bottom:12px;overflow:hidden}.pass-title{display:flex;justify-content:space-between;gap:8px;align-items:start}.pass-title b,.pass-title small{display:block}.pass-title b{font-family:"Yu Mincho",serif;font-size:1.25rem}.pass-title small{font-size:.58rem;letter-spacing:.18em;color:#1583b1}.pass-title>span{font-size:.58rem;font-weight:800;margin-top:6px}.pass-main{display:grid;grid-template-columns:37% 1fr;gap:14px;margin-top:16px}.citizen-photo{display:block;object-fit:cover;object-position:center 12%;background:#d9f3fb}.pass-photo{width:100%;aspect-ratio:1/1;border-radius:12px}.pass-main dl,.pass-finance dl{margin:0}.pass-main dl div,.pass-finance dl div{display:grid;grid-template-columns:40% 1fr;align-items:center;margin-bottom:7px}.pass-main dt,.pass-finance dt{background:#ddecf8;padding:6px 8px;font-size:.7rem;font-weight:800}.pass-main dd,.pass-finance dd{margin:0;padding-left:10px;font-size:.83rem;font-weight:900}.pass-finance{display:grid;grid-template-columns:40% 1fr;gap:8px;margin:12px 0 0 39%;padding-top:10px;border-top:1px solid #7399bd}.pass-finance>span{font-size:3rem;color:#0596c5;text-align:center}
.trait-panel{border:1px solid rgba(255,255,255,.45);border-radius:20px;background:rgba(8,64,109,.48);padding:14px;margin-bottom:16px;backdrop-filter:blur(10px)}.trait-panel h2{text-align:center;font-family:"Yu Mincho",serif;font-size:1rem;margin:0 0 12px}.trait-panel>div{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.trait-panel>div>div{display:grid;grid-template-columns:36px 1fr;align-items:center;gap:6px;background:rgba(255,255,255,.9);color:#083d78;border-radius:12px;padding:9px 7px}.trait-panel span{font-size:1.25rem}.trait-panel b{font-size:.69rem;line-height:1.35}.glow-button{width:92%;min-height:64px;margin:10px 4% 0;border:2px solid #fff;border-radius:999px;color:#fff;background:linear-gradient(135deg,#24d8cd,#039cce);box-shadow:0 0 18px rgba(58,255,244,.95),inset 0 2px 8px rgba(255,255,255,.35);font-weight:900;font-size:1.3rem;letter-spacing:.04em}.glow-button span{float:right;margin-right:7%;font-size:2rem;line-height:1rem}.setup-footnote{text-align:center;margin:12px 0 0;font-size:.69rem;letter-spacing:.08em;text-shadow:0 2px 8px #064879}
.citizen-bar{display:grid;grid-template-columns:70px 1fr auto;align-items:center;gap:10px;border-radius:17px;padding:8px 12px;margin:6px 0 12px}.citizen-bar .citizen-photo{width:64px;height:64px;border-radius:10px}.citizen-bar b,.citizen-bar span{display:block}.citizen-bar b{font-size:.92rem}.citizen-bar span{font-size:.77rem;margin-top:6px}.citizen-bar button,.ready-citizen button{border:0;border-left:1px solid #76a1c2;background:transparent;color:#087aaf;padding:12px 0 12px 12px;font-size:.7rem;font-weight:900}.flow-plan-list,.flow-vaccine-list{display:grid;gap:8px}.flow-plan{position:relative;width:100%;display:grid;grid-template-columns:32px 64px 1fr 45%;align-items:center;gap:8px;border-radius:17px;padding:12px 10px;text-align:left}.flow-plan.selected,.flow-vaccine.selected{border-color:#20f5e6;box-shadow:0 0 18px rgba(27,246,230,.9),0 7px 22px rgba(3,44,81,.28)}.flow-radio{width:27px;height:27px;border-radius:50%;border:2px solid #7b97ad;display:grid;place-items:center;color:white;font-weight:950}.selected .flow-radio{border-color:#00c8bf;background:#06b5b4;box-shadow:0 0 13px #22e7de}.plan-symbol,.vaccine-symbol{width:58px;height:58px;border-radius:50%;display:grid;place-items:center;background:#e4f5fb;color:#0879ad;font-size:1.75rem}.plan-copy b,.plan-copy small,.plan-numbers small,.plan-numbers b,.vaccine-copy b,.vaccine-copy strong,.vaccine-copy small,.vaccine-effects small,.vaccine-effects b{display:block}.plan-copy b{font-size:1.06rem}.plan-copy small{font-size:.68rem;line-height:1.45;margin-top:4px}.plan-numbers{display:grid;grid-template-columns:47% 1fr;gap:4px;align-items:center;border-left:1px solid #8cacc5;padding-left:8px}.plan-numbers small,.vaccine-effects small{background:#deecf7;padding:4px;font-size:.62rem;font-weight:800}.plan-numbers b,.vaccine-effects b{font-size:.72rem}.finance-status{display:grid;grid-template-columns:48px 1fr 1.6fr;align-items:center;gap:10px;border-radius:17px;padding:14px;margin:12px 0}.finance-status>span{font-size:1.6rem}.finance-status b{font-size:.82rem}.finance-status strong{color:#03bbb4;font-size:1.15rem}.finance-status small{font-size:.66rem;line-height:1.45;border-left:1px solid #8daac0;padding-left:10px}
.history-row{width:100%;display:flex;align-items:center;gap:8px;border-radius:13px;padding:12px 14px;text-align:left;font-size:.76rem}.history-row b{margin-right:auto}.history-row span{background:#ddecfb;border-radius:99px;padding:7px 9px}.vaccine-tabs{display:flex;margin:10px 0 8px;border:1px solid rgba(255,255,255,.65);border-radius:999px;overflow:hidden}.vaccine-tabs>*{flex:1;text-align:center;padding:10px}.vaccine-tabs b{background:#0cc1bf;border-radius:999px;box-shadow:0 0 14px #2bf5e9}.flow-vaccine{width:100%;display:grid;grid-template-columns:32px 58px 1fr 39%;align-items:center;gap:7px;border-radius:15px;padding:10px;text-align:left}.no-vaccine{margin-bottom:8px}.vaccine-symbol{position:relative;font-size:1.45rem}.vaccine-symbol small{position:absolute;right:5px;bottom:4px;font-size:.7rem}.vaccine-copy b{font-size:.93rem}.vaccine-copy strong{font-size:.8rem;margin-top:2px}.vaccine-copy small{font-size:.61rem;margin-top:3px}.vaccine-effects{display:grid;grid-template-columns:48% 1fr;gap:4px}.vaccine-effects b{font-size:.78rem}.vaccine-total{position:sticky;bottom:88px;z-index:4;margin:10px 0 2px;padding:11px 15px;border-radius:17px;color:#fff;background:rgba(3,60,105,.91);box-shadow:0 4px 18px rgba(3,36,65,.3);backdrop-filter:blur(10px)}.vaccine-total span{display:block;font-size:.78rem}.vaccine-total span+span{margin-top:5px}.vaccine-total b{font-size:1.2rem}.vaccine-total strong{color:#2cf0df;font-size:1rem}
.ready-citizen{display:grid;grid-template-columns:76px 1fr auto;align-items:center;gap:10px;border-radius:17px;padding:9px 12px}.ready-citizen .citizen-photo{width:70px;height:70px;border-radius:10px}.ready-citizen b,.ready-citizen span{display:block}.ready-citizen b{font-size:.96rem;line-height:1.35}.ready-citizen span{font-size:.75rem;margin-top:5px}.ready-roster{border-radius:17px;padding:12px;margin:9px 0}.ready-roster h2,.ready-roster p{margin:0}.ready-roster h2{font-size:1.15rem}.ready-roster p{font-size:.72rem;margin-left:32px}.ready-roster>div{display:flex;justify-content:center;gap:12px;margin:8px 0}.roster-face{text-align:center}.roster-face .citizen-photo{width:62px;height:62px;border-radius:50%;border:2px solid #c4ecf7}.roster-face:first-child .citizen-photo{border-color:#28ece0;box-shadow:0 0 13px #24e8df}.roster-face b{display:block;margin-top:-8px;padding:2px 8px;border-radius:99px;background:#778da9;color:#fff;font-size:.62rem}.roster-face:first-child b{background:#0bb9b7}.ready-roster>small{display:block;text-align:center;border-top:1px solid #8fb1cc;padding-top:7px;font-size:.63rem}.ready-choice{border-radius:17px;margin-bottom:9px;padding:3px 14px}.ready-choice>div{display:grid;grid-template-columns:42px 60px 1fr auto;align-items:center;gap:8px;padding:9px 0}.ready-choice>div+div{border-top:1px solid #9ab6cc}.ready-choice>div>span{font-size:1.6rem}.ready-choice>div>b{font-size:.8rem}.ready-choice strong,.ready-choice small{display:block}.ready-choice strong{font-size:.87rem}.ready-choice small{font-size:.67rem;margin-top:2px}.ready-choice button{border:0;border-radius:8px;background:#ddecf7;color:#075b9c;padding:8px;font-weight:900;font-size:.7rem}.chapter-preview{display:grid;grid-template-columns:44px 1fr;gap:10px;border-radius:17px;padding:11px 14px}.chapter-preview>span{font-size:1.8rem}.chapter-preview small,.chapter-preview b{display:block}.chapter-preview small{font-size:.65rem}.chapter-preview b{font-family:"Yu Mincho",serif;font-size:1.05rem}.chapter-preview p{margin:3px 0 0;font-size:.68rem;line-height:1.45}.settings-review{display:block;margin:9px auto 0;border:0;background:rgba(4,55,96,.65);color:white;border-radius:999px;padding:8px 24px;font-weight:800}
@media(max-width:390px){.setup-page{padding-left:12px;padding-right:12px}.flow-header{grid-template-columns:52px 1fr 76px}.flow-logo b{font-size:1.35rem}.setup-heading h1{font-size:1.75rem}.pass-main{gap:9px}.pass-main dd,.pass-finance dd{font-size:.74rem}.trait-panel>div>div{grid-template-columns:1fr;text-align:center}.flow-plan{grid-template-columns:28px 48px 1fr 42%}.plan-symbol,.vaccine-symbol{width:46px;height:46px}.plan-copy b{font-size:.9rem}.flow-vaccine{grid-template-columns:28px 48px 1fr 38%}.citizen-bar,.ready-citizen{grid-template-columns:58px 1fr}.citizen-bar .citizen-photo,.ready-citizen .citizen-photo{width:54px;height:54px}.citizen-bar button,.ready-citizen button{grid-column:1/-1;border-left:0;border-top:1px solid #9bb6ca;padding:7px}.glow-button{font-size:1.05rem}.roster-face .citizen-photo{width:54px;height:54px}}
