:root{--forest:#183a31;--forest-light:#2f5846;--gold:#ae8e4b;--paper:#f5f2e9;--ink:#28362f;--muted:#66716a;--line:#dedbcd;--white:#fffefb;--red:#923c35;--radius:16px;font-family:"Noto Sans JP","Hiragino Kaku Gothic ProN","Yu Gothic",Meiryo,sans-serif;color:var(--ink);background:var(--paper);font-size:17px;line-height:1.75}
.audio-methods{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin:24px 0}.audio-method{border:2px solid var(--line);border-radius:12px;background:var(--white);text-align:left;padding:18px;min-width:0;color:var(--ink)}.audio-method strong,.audio-method span{display:block;overflow-wrap:anywhere}.audio-method span{font-size:.85rem;color:var(--muted);margin-top:6px}.audio-method[aria-pressed=true]{border-color:var(--forest);background:#edf3ec;box-shadow:0 0 0 1px var(--forest)}.recording-box{border:1px solid var(--line);border-radius:12px;padding:22px;min-width:0}.recording-help{color:var(--muted);font-size:.9rem}.record-timer{font-size:1.7rem;font-variant-numeric:tabular-nums;font-weight:700;color:var(--forest);margin:18px 0}.recording-box .button-row{flex-wrap:wrap}.upload-preview{display:block;width:100%;max-width:100%;margin:18px 0}.upload-preview[hidden]{display:none}.recording-box .inline-status{min-height:2em;overflow-wrap:anywhere;color:var(--forest)}.file-box input[type=file]{max-width:100%}.upload-step .muted{overflow-wrap:anywhere}@media(max-width:650px){.audio-methods{grid-template-columns:1fr;gap:10px}.audio-method{padding:16px;min-height:86px}.recording-box{padding:16px}.recording-box .button-row>.button{flex:1 1 130px;white-space:nowrap}}
*{box-sizing:border-box}body{margin:0}button,input,textarea,select{font:inherit}button,a,input,select,textarea{-webkit-tap-highlight-color:transparent}button{cursor:pointer}a{color:inherit;text-decoration:none}a:hover{text-decoration:underline}button:disabled{cursor:default;opacity:.65}button:focus-visible,a:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible{outline:3px solid var(--gold);outline-offset:4px}h1,h2,h3,p{margin:0}h1{font-size:clamp(1.7rem,2.4vw,2.3rem);line-height:1.4}h2{font-size:1.4rem;line-height:1.5}h3{font-size:1.14rem}small,.muted{font-size:.88rem;color:var(--muted)}img{display:block;max-width:100%}svg{width:1.5em;height:1.5em;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round;flex:none}.skip-link{position:absolute;top:-100px;background:white;padding:12px;z-index:20}.skip-link:focus{top:0}
.site-header{min-height:90px;background:var(--forest);color:#fff8e6;padding:16px clamp(18px,4vw,64px);display:flex;align-items:center;gap:28px;border-bottom:3px solid var(--gold)}.brand{display:flex;align-items:center;gap:10px;font-size:1.7rem;font-weight:800;white-space:nowrap;line-height:1.2;letter-spacing:.04em}.brand-mark{color:#d6bf82;font-size:2rem}.brand small{display:block;color:#d6bf82;font-size:.65rem;letter-spacing:.2em;margin-top:4px}.site-header nav{margin-left:auto;display:flex;align-items:center;gap:24px;font-size:.94rem}.site-header nav a[aria-current=page]{color:#edd499}.header-post{padding:9px 15px;border:1px solid #d6bf82;border-radius:7px}.account-button{border:1px solid #547063;background:transparent;color:inherit;border-radius:30px;padding:8px 18px;white-space:nowrap;font-size:.88rem}
.page-layout{max-width:1600px;margin:0 auto;display:grid;grid-template-columns:228px minmax(0,1fr);gap:36px;padding:34px clamp(18px,3vw,50px) 60px}.sidebar{padding-top:10px}.eyebrow{font-size:.72rem;letter-spacing:.17em;font-weight:700;color:var(--gold);margin-bottom:12px}.sidebar nav{display:grid;gap:12px}.menu-card{position:relative;display:flex;align-items:center;gap:14px;padding:18px;border:1px solid var(--line);border-radius:10px;background:linear-gradient(115deg,#fffdf7,#e8e8d8);overflow:hidden;min-height:82px}.menu-card svg{color:var(--forest-light)}.menu-card span{z-index:1}.menu-card small{display:block;letter-spacing:.12em;font-size:.63rem}.menu-card .navigation-icon{position:static;width:1.5em;height:1.5em;object-fit:contain;flex:none}.menu-card[aria-current=page]{background:var(--forest);border-color:var(--gold);color:#fff8e6;box-shadow:0 3px 8px #183a3115}.menu-card[aria-current=page] small,.menu-card[aria-current=page] svg{color:#dcc58b}.sidebar-note{font-size:.76rem;color:var(--muted);margin-top:25px}main{min-width:0}main>section+section,main>.page-heading+section{margin-top:30px}.page-heading{display:flex;align-items:end;justify-content:space-between;gap:20px;margin-bottom:28px}.page-heading p{margin-top:8px;color:var(--muted)}.hero{border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;background:#fffdf7}.hero img{width:100%;height:auto;object-fit:contain}.hero-unset{min-height:150px;display:grid;place-content:center;text-align:center;padding:25px;color:var(--muted)}.hero-unset .eyebrow{margin-bottom:5px}.section-heading{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:18px}.section-heading .eyebrow{margin-bottom:4px}.section-heading a{font-size:.9rem;color:var(--forest-light)}.panel{background:var(--white);border:1px solid var(--line);border-radius:var(--radius);padding:28px}.adventure-panel{position:relative;overflow:hidden;border-top:3px solid var(--gold)}.adventure-meta{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin-bottom:20px}.badge{display:inline-flex;align-items:center;font-size:.77rem;font-weight:600;padding:3px 10px;border:1px solid var(--line);border-radius:5px;background:#f3f0e4}.monster-layout{display:grid;grid-template-columns:230px minmax(0,1fr);align-items:center;gap:30px}.art-placeholder{background:#efeee5;border:1px dashed #c9c7b9;display:flex;align-items:center;justify-content:center;text-align:center;color:var(--muted);min-height:180px;border-radius:10px;padding:16px;aspect-ratio:1;flex-direction:column;gap:8px;font-size:.83rem}.art-placeholder svg{width:42px;height:42px;color:#919985}.monster-art,.character-art{width:100%;border-radius:10px;object-fit:contain}.monster-image-wrap{position:relative}.defeated{position:absolute;inset:40% 10% auto;transform:rotate(-12deg);border:4px solid var(--red);color:var(--red);background:#fff8;font-size:2.5rem;text-align:center;font-weight:800;letter-spacing:.2em}.monster-info h3{font-size:1.5rem;margin:8px 0 14px}.hp-heading{display:flex;justify-content:flex-start;gap:12px;align-items:baseline;font-size:.85rem;margin-bottom:7px}.hp-heading strong{font-size:1.05rem}progress{width:100%;height:14px;border:none;border-radius:10px;overflow:hidden;background:#e9e6da;accent-color:var(--forest-light)}progress::-webkit-progress-bar{background:#e9e6da}progress::-webkit-progress-value{background:var(--forest-light);border-radius:10px}progress::-moz-progress-bar{background:var(--forest-light)}.adventure-help{margin-top:18px;font-size:.88rem;color:var(--muted)}.voice-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}.voice-card{border:1px solid var(--line);background:var(--white);border-radius:12px;overflow:hidden;transition:transform .15s,box-shadow .15s}.voice-card:hover{transform:translateY(-3px);box-shadow:0 8px 20px #183a3110}.voice-card>a{display:block;height:100%}.voice-card>a:hover{text-decoration:none}.voice-card .art-placeholder{border:0;border-bottom:1px solid var(--line);border-radius:0;aspect-ratio:4/3;min-height:0}.voice-card img{aspect-ratio:4/3;width:100%;object-fit:contain;background:#efeee5}.card-body{padding:18px}.card-title{font-weight:700;margin-bottom:5px}.card-author{font-size:.88rem}.card-title-small{font-size:.82rem;color:var(--muted)}.tags{display:flex;gap:6px;flex-wrap:wrap;margin:12px 0}.tag{font-size:.77rem;border-radius:4px;padding:2px 8px;background:#eff1e7;color:var(--forest-light)}.card-meta{display:flex;justify-content:space-between;gap:10px;font-size:.77rem;color:var(--muted);border-top:1px solid var(--line);padding-top:12px}.card-link{display:block;font-size:.88rem;color:var(--forest);margin-top:12px;font-weight:600}.empty{padding:35px 24px;text-align:center;background:#fff9;border:1px dashed var(--line);border-radius:12px;color:var(--muted)}.empty .button{margin-top:18px}.button{display:inline-flex;align-items:center;justify-content:center;gap:8px;border:1px solid transparent;border-radius:7px;padding:10px 20px;line-height:1.55;font-weight:600;min-height:46px;text-align:center}.button:hover{text-decoration:none}.primary{background:var(--forest);color:#fff9e9}.secondary{background:var(--white);border-color:var(--line);color:var(--forest)}.danger{background:#fff;border-color:#d9b2ac;color:var(--red)}.button-row{display:flex;gap:12px;flex-wrap:wrap;margin-top:22px}.loading{padding:50px;text-align:center;color:var(--muted)}.error-panel{border-left:4px solid var(--red)}.error-panel p{margin:14px 0}.profile-layout{display:grid;grid-template-columns:310px minmax(0,1fr);gap:26px}.profile-layout .voice-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.profile-summary{text-align:center}.avatar{width:86px;height:86px;margin:0 auto 16px;border-radius:50%;background:#e7ebdf;display:grid;place-items:center;color:var(--forest-light)}.avatar svg{width:40px;height:40px}.profile-title{margin:5px 0;color:var(--gold);font-size:.91rem}.rank{font-size:1.2rem;color:var(--forest-light);font-weight:700}.stat-grid{display:grid;grid-template-columns:1fr 1fr;margin:22px 0;padding:18px 0;border-block:1px solid var(--line)}.stat-grid strong{font-size:1.5rem;display:block}.stat-grid span{font-size:.8rem;color:var(--muted)}.facts{text-align:left}.facts div{display:grid;grid-template-columns:88px 1fr;gap:10px;margin:12px 0;font-size:.9rem}.facts dt{color:var(--muted)}.facts dd{margin:0;overflow-wrap:anywhere}.profile-section{margin-top:20px;text-align:left;border-top:1px solid var(--line);padding-top:18px}.profile-section h3{font-size:1rem;margin-bottom:8px}.profile-section p{white-space:pre-wrap;overflow-wrap:anywhere;font-size:.91rem}.achievements{list-style:none;padding:0;margin:0}.achievements li{padding:12px 0;border-bottom:1px solid var(--line);font-size:.9rem}.voice-detail{display:grid;grid-template-columns:minmax(240px,.85fr) minmax(0,1fr);gap:32px}.voice-detail .art-placeholder{min-height:280px}.voice-detail audio{display:block;width:100%;margin:24px 0}.voice-author{display:flex;align-items:center;gap:12px;margin:18px 0}.voice-author .avatar{width:46px;height:46px;margin:0}.voice-author .avatar svg{width:24px;height:24px}.like-button{background:var(--forest);color:#fff9e9}.like-button:disabled{opacity:1;background:#dfe7d5;color:var(--forest);border-color:#adbea6}.steps{display:flex;gap:0;list-style:none;padding:0;margin:0 0 30px;border:1px solid var(--line);border-radius:10px;overflow:hidden;background:var(--white)}.steps li{flex:1;padding:14px 12px;border-right:1px solid var(--line);font-size:.86rem}.steps li:last-child{border:0}.steps li[aria-current=step]{background:var(--forest);color:#fff8e8}.step-number{font-size:.72rem;margin-right:6px;opacity:.75}.character-grid{display:grid;grid-template-columns:repeat(8,minmax(0,1fr));gap:12px}.character-choice{padding:0;border:2px solid var(--line);border-radius:8px;background:#efeee5;overflow:hidden;position:relative}.character-choice[aria-pressed=true]{border-color:var(--gold);box-shadow:0 0 0 2px var(--gold)}.character-choice[aria-pressed=true]::after{content:'✓';position:absolute;top:3px;right:5px;color:var(--forest);background:#f9e5a8;border-radius:50%;width:26px;height:26px}.character-choice img{width:100%;aspect-ratio:3/4;object-fit:contain}.character-choice .art-placeholder{min-height:0;border:none;border-radius:0;aspect-ratio:3/4;font-size:.7rem;padding:8px}.character-choice .art-placeholder svg{width:24px;height:24px}.tag-picker{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.tag-choice{border:1px solid var(--line);background:var(--white);padding:13px;border-radius:8px}.tag-choice[aria-pressed=true]{background:var(--forest);color:white;border-color:var(--gold)}.upload-step h2{margin-bottom:8px}.upload-step>p{margin-bottom:22px}.upload-step label{display:block;margin-top:16px}.file-box{padding:30px;background:#f2f2e8;border:1px dashed #b9c2b3;border-radius:10px}.file-box input{width:100%;margin-top:15px}.consent{display:flex!important;align-items:start;gap:10px}.consent input{width:20px;height:20px;margin-top:5px;flex:none}.rules-list{font-size:.9rem;color:var(--muted);margin-top:20px}.inline-status{margin-top:14px;color:var(--red);overflow-wrap:anywhere}.guild-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:22px}.guild-card h3{margin:15px 0 8px}.guild-card .art-placeholder{aspect-ratio:3/1;min-height:90px}.guild-card img{max-height:150px;margin:auto;object-fit:contain}.site-footer{border-top:1px solid var(--line);padding:25px clamp(20px,4vw,60px);display:flex;justify-content:space-between;gap:15px;color:var(--muted);font-size:.76rem}.notice{position:fixed;bottom:22px;left:50%;transform:translateX(-50%);background:var(--forest);color:#fff9e9;box-shadow:0 8px 24px #0002;border-radius:10px;padding:14px 22px;max-width:min(600px,90vw);width:max-content;z-index:50}.notice[hidden]{display:none}dialog{width:min(530px,calc(100vw - 28px));max-height:90dvh;border:1px solid var(--line);border-radius:18px;padding:30px;color:var(--ink);background:var(--white)}dialog::backdrop{background:#102d26aa}.dialog-heading{display:flex;justify-content:space-between;align-items:start;gap:20px;margin-bottom:15px}.dialog-heading h2{font-size:1.3rem}.dialog-heading .eyebrow{margin-bottom:6px}.icon-button{background:transparent;border:0;font-size:1.8rem;line-height:1;padding:5px;color:var(--muted)}dialog label,.edit-form label{display:block;font-size:.9rem;font-weight:600;margin:18px 0}input:not([type=checkbox]),textarea,select{display:block;border:1px solid #c7cbbc;background:#fff;border-radius:7px;padding:11px 12px;width:100%;color:var(--ink);margin-top:7px}textarea{resize:vertical;min-height:100px}dialog .muted{margin-top:20px;font-size:.78rem}#auth-status{color:var(--red);font-size:.87rem;margin-top:15px}
.sidebar-access{display:none;margin-top:20px;padding:14px 10px;border:1px solid var(--line);border-radius:10px;background:#fffdf7;text-align:center;color:var(--muted)}.sidebar-access h2{font-size:.86rem;color:var(--forest);line-height:1.6;margin-bottom:12px}.sidebar-access a{display:block;width:148px;max-width:100%;margin:0 auto 12px}.sidebar-access img{display:block;width:100%;height:auto}.sidebar-access p{font-size:.73rem;line-height:1.7}.sidebar-access .sidebar-access-hint{margin-top:8px;font-size:.7rem}@media(min-width:821px){body:has(#main[data-route="/"]) .sidebar-access{display:block}}
@media(min-width:1700px){:root{font-size:18px}}
@media(max-width:1150px){.page-layout{grid-template-columns:190px minmax(0,1fr);gap:24px;padding-inline:24px}.site-header nav{gap:14px}.site-header{gap:18px;padding-inline:24px}.voice-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.monster-layout{grid-template-columns:180px minmax(0,1fr);gap:22px}.profile-layout{grid-template-columns:260px minmax(0,1fr);gap:20px}.profile-layout .voice-grid{grid-template-columns:1fr}.character-grid{grid-template-columns:repeat(6,minmax(0,1fr))}}
@media(max-width:820px){.site-header nav{display:none}.site-header{min-height:76px;justify-content:space-between}.brand{font-size:1.45rem}.page-layout{display:block;padding:20px 18px 40px}.sidebar{padding:0 0 24px}.sidebar .eyebrow{margin-bottom:10px}.sidebar nav{grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}.menu-card{min-height:70px;padding:10px 6px;flex-direction:column;gap:4px;justify-content:center;text-align:center;font-size:.73rem}.menu-card svg{width:23px;height:23px}.menu-card small,.sidebar-note{display:none}.profile-layout{grid-template-columns:1fr}.profile-layout .voice-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.profile-summary{text-align:left}.profile-summary>.avatar{margin:0 0 16px}.profile-summary .button-row{justify-content:start}.character-grid{grid-template-columns:repeat(6,minmax(0,1fr))}.voice-detail{grid-template-columns:minmax(180px,.8fr) minmax(0,1fr);gap:22px}.site-footer{flex-direction:column}.panel{padding:22px}.hero-unset{min-height:110px}.steps li{padding:12px 8px;font-size:.78rem}.step-number{display:block}}
@media(max-width:540px){:root{font-size:16px}.site-header{padding:14px 18px;gap:12px}.account-button{padding:8px 12px}.page-heading{align-items:start;flex-direction:column;gap:12px}.page-heading h1{font-size:1.75rem}.monster-layout,.voice-detail{grid-template-columns:1fr}.monster-image-wrap{max-width:240px;width:100%;margin:0 auto}.monster-layout{gap:20px}.voice-grid,.profile-layout .voice-grid,.guild-grid{grid-template-columns:1fr}.voice-card>a{display:grid;grid-template-columns:115px minmax(0,1fr)}.voice-card .art-placeholder,.voice-card img{height:100%;aspect-ratio:auto;border-bottom:0;min-height:165px}.card-body{padding:15px}.card-title{font-size:.94rem}.card-meta{font-size:.72rem}.voice-detail .art-placeholder,.voice-detail>.character-art{max-width:280px;min-height:220px;margin:auto}.character-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:9px}.tag-picker{grid-template-columns:repeat(2,minmax(0,1fr))}.panel{padding:18px}.button-row>.button{flex:1}.section-heading{gap:10px}.section-heading h2{font-size:1.3rem}.section-heading>a{font-size:.8rem;white-space:nowrap}.adventure-meta{font-size:.88rem}.sidebar nav{gap:5px}.menu-card{font-size:.67rem;min-height:66px}.steps li{font-size:.72rem;padding:10px 5px}.file-box{padding:20px}.notice{font-size:.86rem}.hp-heading strong{font-size:1rem}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}
.avatar img{width:100%;height:100%;object-fit:cover;border-radius:50%}.avatar-picker{border:1px solid var(--line);border-radius:10px;padding:20px;margin-top:20px;min-width:0}.avatar-picker legend{padding:0 8px}.member-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.member-card{display:flex;align-items:center;gap:15px;border:1px solid var(--line);border-radius:10px;padding:18px;min-width:0}.member-card .avatar{width:50px;height:50px;flex:none;margin:0}.member-card strong{display:block;overflow-wrap:anywhere}.member-card small{display:block}.member-card>span:last-child{margin-left:auto;color:var(--gold)}@media(max-width:650px){.member-grid{grid-template-columns:1fr}.avatar-picker{padding:12px}}
.profile-summary .button-row>.button{width:100%}.voice-card .card-author{overflow-wrap:anywhere}.character-art.art-placeholder{height:auto}.profile-summary,.voice-detail{overflow-wrap:anywhere}.hero-unset p{font-size:.9rem}
.account-button{min-width:0;max-width:240px;white-space:normal;overflow-wrap:anywhere;line-height:1.5}.site-header .brand{flex-shrink:0}@media(max-width:820px){.account-button{max-width:44%}}
.guild-card{min-width:0;overflow-wrap:anywhere}.guild-card .art-placeholder{width:100%;min-width:0;aspect-ratio:auto}.art-placeholder{min-width:0}
/* Reserve scroll space so the last character row can move above the fixed controls. */
.character-step{padding-bottom:130px}.character-action-bar{position:fixed;inset:auto 0 0;z-index:30;background:var(--white);border-top:1px solid var(--line);box-shadow:0 -4px 16px #183a3112;padding:12px 24px calc(12px + env(safe-area-inset-bottom,0px))}.character-action-inner{max-width:1160px;margin:auto;display:flex;align-items:center;justify-content:space-between;gap:16px;min-height:46px}.character-action-inner>span{font-size:.94rem;font-weight:600;min-width:0}.character-action-inner>.button{flex:none;min-width:110px}.character-step .character-choice{scroll-margin-bottom:120px}@media(max-width:540px){.character-action-bar{padding-inline:18px}.character-action-inner{gap:10px}.character-action-inner>span{font-size:.85rem}.character-action-inner>.button{min-width:82px;padding-inline:16px}}
/* Existing standing artwork: equal viewport, preserved aspect and alpha, no zoom/crop. */
.character-portrait{position:relative;width:100%;aspect-ratio:4/5;display:flex;align-items:center;justify-content:center;overflow:hidden;background:var(--paper);min-width:0}
.character-portrait img{position:static;display:block;width:auto;height:auto;max-width:100%;max-height:100%;min-height:0;aspect-ratio:auto;object-fit:contain;object-position:center;transform:none;background:transparent}
.voice-card .character-portrait{align-self:start}.character-choice .character-portrait{border-radius:0}
.voice-detail>.character-portrait{width:100%;max-width:320px;min-height:0;margin:0 auto;align-self:start}
@media(max-width:540px){.voice-detail>.character-portrait{max-width:280px;min-height:0}}
/* Uploaded user icons are separate from character portraits. */
.avatar-picker #avatar-file[hidden],.avatar-picker #avatar-remove[hidden]{display:none}.avatar-picker #avatar-preview .avatar{margin:0 0 14px}.avatar img{object-fit:cover;object-position:center}.voice-card .card-author{display:flex;align-items:center;gap:8px}.voice-card .card-author .avatar{width:32px;height:32px;margin:0;flex:none}.voice-card .card-author .avatar img{width:100%;height:100%;min-height:0;aspect-ratio:1;object-fit:cover;background:transparent}.voice-card .card-author .avatar svg{width:20px;height:20px}.voice-card .card-author>span{min-width:0}

/* Shared guild symbols preserve the entire transparent emblem. */
.guild-symbol{display:flex;align-items:center;justify-content:center;width:100%;height:150px}.guild-symbol img,.guild-card .guild-symbol img{display:block;width:150px;height:150px;max-width:100%;max-height:150px;object-fit:contain;object-position:center;margin:0;background:transparent;transform:none}.guild-detail-symbol{height:auto;margin-bottom:24px}.guild-detail-symbol img{width:min(260px,100%);height:auto;max-height:none}

/* Compact posted voices only within profiles. */
.profile-layout .voice-grid{grid-template-columns:repeat(auto-fill,minmax(min(100%,220px),260px));gap:16px;align-items:start}
.profile-layout .voice-card>a{display:block}
.profile-layout .voice-card .card-body{padding:12px;min-width:0;overflow-wrap:anywhere}
.profile-layout .voice-card .card-meta{flex-wrap:wrap;gap:4px 10px}
.profile-layout .voice-card .card-author{flex-wrap:wrap}
@media(max-width:540px){.profile-layout .voice-grid{grid-template-columns:repeat(auto-fit,minmax(min(100%,160px),1fr));gap:12px}.profile-layout .voice-card .card-body{padding:10px}.profile-layout .voice-card .card-title{font-size:.88rem}.profile-layout .voice-card .card-author{font-size:.8rem}}

/* My profile history: a separate face thumbnail, never the portrait zoom. */
.profile-layout .profile-history{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.profile-layout .profile-history .voice-card>a{display:grid;grid-template-columns:72px minmax(0,1fr);gap:10px;padding:12px;align-items:start}
.profile-layout .profile-history .card-body{padding:0}
.profile-history .history-face{position:relative;width:72px;aspect-ratio:1;overflow:hidden;border-radius:8px;background:#fff}
.profile-history .history-face img{position:static;width:100%;height:100%;min-height:0;aspect-ratio:auto;object-fit:contain;object-position:center;transform:none;background:transparent}
.profile-history .card-title{font-size:.9rem}.profile-history .tags{margin:6px 0}.profile-history .card-link{margin-top:6px}.profile-history .card-meta{padding-top:6px}.profile-history .card-author .avatar{width:26px;height:26px}.profile-history .card-author{font-size:.8rem}
@media(min-width:541px) and (max-width:820px){.profile-layout .profile-history{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:540px){.profile-layout .profile-history{grid-template-columns:1fr}}

/* Membership selection reuses the guild symbol assets without changing guild pages. */
.guild-picker{border:1px solid var(--line);border-radius:10px;padding:18px;margin:22px 0}.guild-picker legend{font-weight:700}.guild-choices{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-top:16px}.edit-form .guild-choice{position:relative;display:flex;flex-direction:column;align-items:center;gap:8px;margin:0;padding:16px 12px;border:2px solid var(--line);border-radius:10px;text-align:center;cursor:pointer}.guild-choice:has(input:checked){border-color:var(--gold);background:#f8f5e8}.guild-choice:focus-within{outline:2px solid var(--forest-light);outline-offset:2px}.guild-choice input[type=radio]{position:absolute;top:10px;right:10px;width:20px;height:20px;margin:0;padding:0;accent-color:var(--forest)}.guild-choice .muted{font-size:.82rem}.guild-choice strong{font-size:1rem}
@media(max-width:820px){.guild-choices{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:540px){.guild-picker{padding:12px}.guild-choices{grid-template-columns:1fr}.edit-form .guild-choice{display:grid;grid-template-columns:90px minmax(0,1fr);text-align:left;padding:12px 30px 12px 8px}.guild-choice .guild-symbol{grid-row:span 2;height:90px}.guild-choice .guild-symbol img{width:90px;height:90px}.guild-choice input[type=radio]{right:5px}}

/* Prelaunch guidance, comments and accessible rank stars. */
.rank-stars{display:inline-block;white-space:nowrap;font-size:.85em;letter-spacing:.01em;vertical-align:baseline}.voice-author>span,.member-card>span{min-width:0;overflow-wrap:anywhere}.voice-comment{margin:16px 0;padding:16px;background:#f5f3e9;border-radius:8px}.voice-comment h2{font-size:1rem;margin-bottom:8px}.voice-comment p{white-space:pre-wrap;overflow-wrap:anywhere}.home-guide{text-align:right;font-size:.85rem;margin:0 0 12px}.more-voices{text-align:right;margin-top:16px;font-size:.9rem}.about-intro p,.about-steps p,.about-faq p{margin-top:12px;line-height:1.8}.about-steps{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.about-steps h2{font-size:1.2rem}.about-faq details{padding:14px 0;border-bottom:1px solid var(--line)}.about-faq summary{cursor:pointer;font-weight:600}.achievement-category h2{font-size:1.2rem}
@media(max-width:540px){.about-steps{grid-template-columns:1fr}.home-guide{text-align:left}}

/* Detail-only identity fields; list cards keep their compact presentation. */
.user-details{margin:0;min-width:0;text-align:left;font-size:.9rem}.user-details>div{display:flex;align-items:baseline;gap:4px;margin:4px 0}.user-details dt{flex:none;font-weight:600}.user-details dd{margin:0;min-width:0;overflow-wrap:anywhere}.profile-summary>.user-details{margin:12px 0 18px}.voice-author .user-details{flex:1}
@media(max-width:820px){.menu-card .navigation-icon{width:23px;height:23px}}

.adventure-banner{width:100%;height:auto;object-fit:contain;border-radius:10px;margin-bottom:22px}.notice-list{list-style:none;margin:0;padding:0}.notice-list li+li{border-top:1px solid var(--line)}.notice-list a,.notice-heading{display:flex;align-items:baseline;gap:12px;padding:12px 0;flex-wrap:wrap;font-size:.88rem}.notice-list time,.notice-heading time{color:var(--muted)}.notice-title{min-width:0;overflow-wrap:anywhere}.board-entries{display:grid;gap:18px}.board-entry .notice-title{font-weight:700}.notice-body{white-space:pre-wrap;overflow-wrap:anywhere;margin-top:12px}.board-preview{border:1px solid var(--line);border-radius:var(--radius);padding:20px;background:var(--white)}
@media(min-width:821px) and (max-width:1100px){.site-header{flex-wrap:wrap}.site-header nav{order:3;flex-basis:100%;justify-content:center}}
@media(max-width:820px){.site-header{flex-wrap:wrap;gap:12px}.site-header #header-nav{display:flex;order:3;flex-basis:100%;margin-left:0}.site-header #header-nav a{display:none}.site-header #header-nav .header-about{display:block;font-size:.85rem}.notice-list a,.notice-heading{gap:6px 10px}.notice-title{flex-basis:100%}}
@media(max-width:540px){.sidebar nav{grid-template-columns:repeat(3,minmax(0,1fr))}}

.monster-book>section+section{margin-top:30px}.monster-book-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}.monster-book-card{min-width:0;padding:20px;overflow-wrap:anywhere}.monster-book-card img{width:100%;aspect-ratio:1;object-fit:contain;margin:10px 0 16px}.monster-book-card h3{margin-bottom:12px}.monster-feature{font-size:.88rem;margin-bottom:12px}.monster-book-card>.badge{margin-top:14px}
@media(max-width:1100px){.monster-book-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:540px){.monster-book-grid{grid-template-columns:1fr}}

/* Compact plaza history, independent of large voice/detail cards. */
.plaza-history .profile-history{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.plaza-history .profile-history .voice-card>a{display:grid;grid-template-columns:72px minmax(0,1fr);gap:10px;padding:12px;align-items:start}
.plaza-history .profile-history .card-body{padding:0;min-width:0}
.pagination{display:flex;justify-content:center;align-items:center;gap:16px;margin-top:22px}.pagination [aria-disabled=true]{opacity:.5;pointer-events:none}
.defeat-log{max-height:172px;overflow-y:auto;margin-top:12px}.defeat-log ul{list-style:none;margin:0;padding:0}.defeat-log li{display:grid;grid-template-columns:5ch 3.5em minmax(0,1fr);align-items:center;gap:6px 10px;border-bottom:1px solid var(--line);padding:10px 0}.defeat-log time{font-size:inherit;color:var(--muted);white-space:nowrap}.battle-message{min-width:0;overflow-wrap:anywhere}.battle-kind{display:inline-flex;align-items:center;justify-content:center;box-sizing:border-box;min-height:24px;padding:2px 5px;border:1px solid;border-radius:4px;font-size:.75rem;line-height:1.4;white-space:nowrap}.battle-kind-normal{background:#edf4ef;border-color:#b4c9bb;color:#254d3b}.battle-kind-rare{background:#f3edf8;border-color:#cbb8dc;color:#684184}.battle-kind-boss{background:#fbf4df;border-color:#d9c68c;color:#715615}
.facts small{display:block}
@media(max-width:820px){.site-header #header-nav .header-post{display:block}}
@media(max-width:540px){.plaza-history .profile-history{grid-template-columns:1fr}.hp-heading{flex-wrap:wrap;gap:4px 12px}.pagination{gap:10px}}

.rank-guide p{margin:14px 0}.rank-guide table{width:100%;border-collapse:collapse;table-layout:fixed;font-size:.9rem}.rank-guide caption{text-align:left;margin:18px 0 10px;font-weight:600}.rank-guide th,.rank-guide td{padding:10px 8px;border-bottom:1px solid var(--line);text-align:left;overflow-wrap:anywhere}.rank-guide th:first-child{width:42%}.rank-guide .rank-stars{white-space:nowrap}
@media(max-width:540px){.rank-guide table{font-size:.8rem}.rank-guide th:first-child{width:54%}.rank-guide th,.rank-guide td{padding:8px 4px}}

.profile-content{min-width:0}.profile-content>section+section{margin-top:22px}.profile-introduction h2{font-size:1.2rem}.profile-layout .profile-history .card-body{min-width:0}
@media(min-width:821px) and (max-width:1000px){.profile-layout{grid-template-columns:1fr}}

.monster-book-categories{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:24px}.monster-book-categories .button{flex:1;min-width:0;padding-inline:8px;white-space:nowrap}

/* Dialogue is separate from voice cards and character art. */
.script-list{display:grid;gap:16px;margin:20px 0}.script-card{min-width:0}.script-body{white-space:pre-wrap;overflow-wrap:anywhere;font-size:1.05rem;line-height:1.8}.script-meta{display:flex;flex-wrap:wrap;gap:8px 16px;align-items:center;margin:14px 0;color:var(--muted);font-size:.85rem}.script-meta a{overflow-wrap:anywhere}.script-tags{border:1px solid var(--line);border-radius:8px;padding:12px;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}.script-tags label{margin:0;font-weight:400}.script-consent{display:flex!important;gap:8px;align-items:flex-start}.script-consent input{margin-top:5px;flex:none}.script-permission{font-size:.8rem}.profile-scripts{margin-top:24px}#turnstile-container{max-width:100%;overflow:hidden}.script-card .button-row{flex-wrap:wrap}@media(max-width:540px){.script-tags{grid-template-columns:repeat(2,minmax(0,1fr))}.script-card .button-row>.button{min-width:0}.script-card{padding:16px}}

.ranking-list{list-style:none;padding:0;display:grid;gap:12px}.ranking-row{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.ranking-profile{display:flex;align-items:center;gap:8px;min-width:0}.ranking-profile img{width:48px;height:48px;object-fit:cover}.crown.gold{color:#8c6500}.crown.silver{color:#666}.crown.bronze{color:#965629}.rights-fields{border:1px solid var(--line);border-radius:8px;padding:12px;margin:16px 0}.rights-fields input[type=checkbox]{width:auto}#purpose-dialog{max-width:min(620px,90vw)}

@media(max-width:820px){.site-header #header-nav .header-purpose{display:block;font-size:.85rem}.site-header #header-nav{gap:10px;flex-wrap:wrap}.site-header #header-nav .header-post{margin-left:auto}}

/* Receipt/inbox and mobile presentation reuse the forest, gold and paper primitives. */
.asset-unavailable{display:block;padding:14px;font-size:.82rem;color:var(--muted);overflow-wrap:anywhere;text-align:center}
.character-choice{min-width:0}.character-choice .character-portrait{height:100%;min-height:0}.character-portrait .asset-unavailable{margin:auto}
.ranking-profile .avatar{flex:none;width:48px;height:48px;margin:0}.ranking-profile>span{overflow-wrap:anywhere}.ranking-row>strong{margin-left:auto}
#moderation-reports{list-style:none;padding:0;margin:20px 0}#moderation-reports li{padding:16px 0;border-bottom:1px solid var(--line);overflow-wrap:anywhere}#moderation-reports .button{margin:8px 0}
#purpose-dialog{padding:28px;border:1px solid var(--gold);border-radius:var(--radius);color:var(--ink);background:var(--white);max-height:calc(100dvh - 36px);overflow:auto}
#purpose-dialog::backdrop{background:#10271fbb}#purpose-dialog p{margin-top:16px}
@media(max-width:540px){.ranking-row{gap:10px;padding:18px}.ranking-profile{flex:1 1 60%}.ranking-row>strong{margin-left:auto}.ranking-profile .avatar{width:40px;height:40px}.ranking-profile .avatar svg{width:24px;height:24px}#purpose-dialog{padding:20px}.edit-form input,.edit-form textarea{max-width:100%}}

.contact-trap{position:absolute;left:-10000px;width:1px;height:1px;overflow:hidden}.contact-message{white-space:pre-wrap;overflow-wrap:anywhere}#contact-form textarea{width:100%;box-sizing:border-box}

/* Restoration: source PNGs stay byte-identical; only selection/confirmation viewports are cropped. */
.character-choice .character-bust,.upload-step .character-bust{display:block;position:relative;height:auto;aspect-ratio:4/5;overflow:hidden}
.character-bust img{position:absolute;left:var(--bust-left);top:var(--bust-top);width:var(--bust-width);max-width:none;max-height:none;height:auto;aspect-ratio:auto;object-fit:contain;transform:none}
.village-scene{position:relative;overflow:hidden;border:1px solid var(--gold);border-radius:var(--radius);isolation:isolate;background:#536c56}
.plaza-backdrop{display:block;width:100%;height:auto;aspect-ratio:3/2;object-fit:cover}
.plaza-date{font-size:.85rem;color:var(--muted);margin-bottom:14px}
.plaza-residents{position:absolute;inset:30% 10% 6%;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-template-rows:minmax(0,1fr);gap:5%;align-items:end}
.plaza-resident{height:100%;min-height:0;min-width:0;display:grid;grid-template-rows:minmax(0,1fr) auto;justify-items:center;position:relative}
.plaza-standing{display:block;width:100%;height:100%;min-height:0;max-width:none;object-fit:contain;object-position:center bottom;filter:drop-shadow(0 3px 3px #14271955)}
.plaza-name{position:relative;z-index:1;flex:none;width:100%;min-height:50px;border:2px solid #c6a44d;border-radius:7px;color:#fff8dc;background:linear-gradient(#245344,#153a30);box-shadow:0 3px 7px #10271955;padding:7px 4px;font-family:inherit;font-weight:700;font-size:clamp(.73rem,1.1vw,.95rem);line-height:1.3;cursor:pointer}
.plaza-name small{display:block;font-size:.68rem;font-weight:400;color:#e4ce99;margin-top:4px}.plaza-name:hover{background:#315f4a}.plaza-name:focus-visible{outline:3px solid white;outline-offset:3px}
.plaza-help{margin-top:12px}
#npc-dialog{width:min(920px,calc(100vw - 36px));padding:32px 24px 24px;max-height:calc(100dvh - 30px);overflow:auto;background:#f7f0db;border:2px solid var(--gold);border-radius:14px;color:var(--ink)}
#npc-dialog::backdrop{background:#10271fc7}.npc-close{position:absolute;right:10px;top:6px;z-index:2}
.npc-conversation{display:grid;grid-template-columns:minmax(0,38%) minmax(0,1fr);gap:20px;align-items:center}
#npc-portrait{height:min(480px,65dvh);min-width:0;display:flex;align-items:center;justify-content:center}
.npc-speaking-standing{height:100%;width:100%;object-fit:contain;object-position:center bottom}
.npc-parchment{min-width:0;align-self:stretch;display:flex;flex-direction:column;justify-content:center;border:1px solid #c6a44d;border-radius:8px;padding:26px;background:radial-gradient(ellipse at center,#fff6df,#ead6a3);box-shadow:inset 0 0 22px #9a6d2730}
.npc-parchment h2{font-size:1.15rem;line-height:1.5;padding:9px 12px;color:#fff6d5;background:#183e32;border:2px solid #c6a44d;border-radius:5px;align-self:flex-start}
.npc-parchment p{font-size:1.12rem;line-height:1.9;margin:24px 0;overflow-wrap:anywhere}.npc-parchment .button{align-self:flex-start}
@media(max-width:600px){.plaza-backdrop{aspect-ratio:4/5;object-position:center}.plaza-residents{inset:27% 2% 5%;gap:3%}.plaza-name{min-height:60px;font-size:.73rem}.plaza-name small{font-size:.62rem}
#npc-dialog{width:calc(100vw - 20px);padding:40px 10px 16px}.npc-conversation{grid-template-columns:minmax(0,37%) minmax(0,1fr);gap:8px}#npc-portrait{height:320px;max-height:62dvh}.npc-parchment{padding:14px 10px}.npc-parchment h2{font-size:.9rem;padding:6px}.npc-parchment p{font-size:1rem;line-height:1.8;margin:18px 0}.npc-parchment .button{padding:8px;font-size:.8rem;width:100%}}

/* UI correction batch 13: supplied conversation frames and compact village sprites. */
.plaza-residents{inset:49% 18% 15%;gap:10%;grid-template-rows:minmax(0,1fr)}
.plaza-resident{grid-template-rows:minmax(0,1fr) auto;gap:0;align-content:end;}
.plaza-sprite{display:block;max-width:100%;width:auto;height:clamp(50px,6vw,88px);max-height:100%;object-fit:contain;image-rendering:auto;justify-self:center;align-self:end}
.plaza-name{min-height:36px;padding:4px 8px;font-size:clamp(.65rem,.85vw,.82rem);z-index:2;white-space:normal}
.plaza-name small{display:block;font-size:.6rem;line-height:1.2}
.facility{position:absolute;z-index:3;display:grid;place-items:center;gap:1px;padding:6px 16px;min-height:44px;border:2px solid #c8a858;border-radius:6px;background:#173e32ed;color:#fff5ce;text-shadow:0 1px #000;font-weight:bold;font-size:clamp(.75rem,1.1vw,1rem);box-shadow:0 2px 7px #0005;text-decoration:none}
.facility small{font-size:.62rem;font-weight:normal}.facility:hover{color:#fff;text-decoration:none}.facility[aria-disabled=true]{cursor:default;background:#294838ed}
.facility-weapons{left:8%;top:34%}.facility-books{right:6%;top:35%}.facility-guild{left:50%;top:8%;transform:translateX(-50%)}
#npc-dialog{width:min(1120px,calc(100vw - 24px));max-width:none;padding:0;border:0;border-radius:0;background:transparent;overflow:visible;max-height:94dvh}
.npc-conversation{display:block;position:relative;width:100%;aspect-ratio:2/1;background:none}
.npc-window{position:absolute;inset:0;pointer-events:none;z-index:2}.npc-window img{display:block;width:100%;height:100%;object-fit:contain}
#npc-portrait{position:absolute;left:5.9%;top:20%;width:22.7%;height:54%;max-height:none;overflow:hidden;border-radius:33% 33% 8% 8%;display:block;z-index:1;background:radial-gradient(ellipse,#ced6bd,#708b66)}
.npc-bust{display:block;position:relative;width:100%;height:100%;aspect-ratio:4/5;overflow:hidden}
.npc-bust img{position:absolute;left:var(--bust-left);top:var(--bust-top);width:var(--bust-width);height:auto;max-width:none;max-height:none}
.npc-parchment{position:absolute;inset:0;background:none;border:0;box-shadow:none;padding:0;display:block;z-index:3}
.npc-parchment h2{position:absolute;left:32%;top:21.3%;height:9%;width:22%;margin:0;padding:0;display:flex;align-items:center;justify-content:center;background:none;border:0;white-space:nowrap;font-size:clamp(.7rem,1.35vw,1.15rem);color:#fff7d6}
.npc-parchment p{position:absolute;left:37%;right:9%;top:39%;margin:0;font-size:clamp(.84rem,1.65vw,1.23rem);line-height:1.9;color:#30271c}
.npc-parchment .button{position:absolute;bottom:23%;right:8%;width:auto;min-height:32px;padding:5px 12px;font-size:.8rem;background:#fff7e3d9}
.npc-close{position:absolute;z-index:5;right:3%;top:13%;background:#183d32;color:#fff6d5;border:1px solid #d8bc76;border-radius:50%;width:38px;height:38px;display:grid;place-items:center;font-size:1.6rem}
#purpose-dialog{width:min(1200px,calc(100vw - 24px));max-width:none;padding:0;border:0;border-radius:0;background:transparent;overflow:visible}
#purpose-zoom{display:block;width:100%;max-height:85dvh;overflow:auto;padding:0;border:0;background:transparent;text-align:left;cursor:zoom-in}
#purpose-zoom>img{display:block;width:100%;height:auto;max-height:85dvh;object-fit:contain}
#purpose-zoom[aria-pressed="true"]{cursor:zoom-out}
#purpose-zoom[aria-pressed="true"]>img{width:200%;max-width:none;max-height:none}
#purpose-close{position:absolute;top:8px;right:8px;z-index:3;background:#173e32;color:#fff6d4;border:1px solid #c8a858;border-radius:50%;width:40px;height:40px}
.crown{display:inline-grid;width:52px;height:44px;place-items:center}.crown img{max-width:100%;max-height:100%;width:auto;height:auto}
.voice-detail>.character-bust{display:block;position:relative;aspect-ratio:4/5;width:100%;height:auto;align-self:start;overflow:hidden;background:#eeeee2;border-radius:12px}
@media(max-width:600px){
 .plaza-residents{inset:52% 10% 14%;gap:3%}.plaza-sprite{height:58px}.plaza-name{font-size:.61rem;padding:3px 4px;min-height:35px}.plaza-name small{font-size:.55rem}
 .facility{padding:4px 8px;font-size:.73rem;min-height:42px}.facility-weapons{left:2%;top:32%}.facility-books{right:2%;top:32%}.facility-guild{top:7%}
 #npc-dialog{width:min(480px,calc((94dvh)*2/3),calc(100vw - 14px));max-height:94dvh}
 .npc-conversation{aspect-ratio:2/3}
 #npc-portrait{left:19%;top:10.5%;width:62%;height:44%;border-radius:22% 22% 4% 4%}
 .npc-parchment h2{left:27%;top:58%;width:46%;height:3.6%;font-size:clamp(.76rem,2.9vw,1.05rem)}
 .npc-parchment p{left:10%;right:10%;top:68%;font-size:clamp(.78rem,3.8vw,1.03rem);line-height:1.75}
 .npc-parchment .button{bottom:14%;right:10%;font-size:.72rem;padding:4px 9px;min-height:30px}
 .npc-close{top:5%;right:8%;width:34px;height:34px}
 .crown{width:42px;height:38px}.voice-detail>.character-bust{max-width:360px;justify-self:center}
}

.economy-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,220px),1fr));gap:20px}.economy-card{display:flex;flex-direction:column;align-items:center;text-align:center;gap:10px}.economy-art{width:160px;height:160px;object-fit:contain}.economy-card h2{font-size:1.2rem}.gem-balance{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin:16px 0}.gem-balance img{width:42px;height:42px;object-fit:contain}.official-qr{display:flex;gap:24px;align-items:center;flex-wrap:wrap}.official-qr img{image-rendering:pixelated;background:white;padding:8px;object-fit:contain}.official-url{overflow-wrap:anywhere}.book-lines section{border-bottom:1px solid #c6a44d;padding:16px 0}@media(max-width:480px){.economy-art{width:130px;height:130px}.official-qr{justify-content:center}.economy-grid{gap:12px}}

/* UI wave 2: stable face centers, restored board, sidebar QR, NPC floor slots. */
.voice-card>a>.character-bust{display:block;position:relative;aspect-ratio:4/5;overflow:hidden;width:100%;height:auto;background:#eeeee2}.voice-card>a>.character-bust img{height:auto;max-width:none;object-fit:contain}
.sidebar-access{display:block}.sidebar-access img{image-rendering:pixelated;background:#fff}.sidebar-access a{width:148px}
.plaza-backdrop{aspect-ratio:3/2;object-fit:contain}.plaza-residents{inset:0;display:block;pointer-events:none}.plaza-resident{position:absolute;left:20%;bottom:40%;width:26%;height:auto;display:block;transform:translateX(-50%);pointer-events:auto}.plaza-resident[data-slot=center]{left:50%;bottom:22%}.plaza-resident[data-slot=right]{left:80%}.npc-talk{position:relative;display:block;width:100%;border:0;padding:0;background:transparent;cursor:pointer;color:inherit}.npc-talk:focus-visible{outline:3px solid #a97e20;outline-offset:3px;border-radius:8px}.plaza-sprite{margin:0 auto;height:clamp(52px,6vw,88px);width:auto;max-height:none}.plaza-name{position:absolute;top:100%;left:50%;transform:translateX(-50%);width:min(100%,150px);min-height:32px;padding:3px 5px;display:block;font-size:.7rem}.plaza-name small{display:block;font-size:.6rem}#npc-dialog{cursor:pointer}.npc-parchment{pointer-events:auto}.npc-close{pointer-events:auto}.npc-parchment .button{display:none}
.encounter-countdown{position:relative;width:min(100%,540px);aspect-ratio:2/1;margin:12px 0 0;padding:0;background:none;border:0;display:block}.countdown-frame{display:block;width:100%;height:100%;object-fit:contain}.countdown-values{position:absolute;left:20%;right:20%;top:35%;height:25%;display:flex;align-items:center;justify-content:space-evenly;gap:4px;background:#18202b;color:#fff3cc}.countdown-part{display:flex;flex-direction:column;align-items:center;line-height:1.1;min-width:0}.countdown-part strong{font-size:clamp(.75rem,1.65vw,1.35rem);font-variant-numeric:tabular-nums}.countdown-part small{font-size:clamp(.5rem,.9vw,.7rem);margin-top:3px}.countdown-message{font-size:.65rem;text-align:center}.preview-timer-note{font-size:.65rem;color:var(--muted);margin-top:0}
@media(max-width:820px){.sidebar-access{display:grid;grid-template-columns:111px minmax(0,1fr);gap:6px 12px;align-items:center;max-width:420px;margin:16px auto 0}.sidebar-access a{grid-column:1;grid-row:1/4;width:111px;margin:0}.sidebar-access h2,.sidebar-access p{grid-column:2;margin:0}.sidebar-access h2{font-size:.78rem}.sidebar-access p{font-size:.66rem}.sidebar-access .sidebar-access-hint{font-size:.62rem;margin:0}}
@media(max-width:600px){.plaza-backdrop{aspect-ratio:3/2;object-position:center}.plaza-sprite{height:52px}.plaza-name{font-size:.6rem;min-height:27px;padding:2px 3px}.plaza-name small{font-size:.5rem}.facility-weapons{left:3%;top:15%}.facility-books{right:3%;top:15%}.facility{min-height:30px;padding:3px 6px;font-size:.65rem}.facility small{font-size:.5rem}.facility-guild{top:3%}.countdown-part strong{font-size:clamp(.7rem,3vw,.95rem)}.countdown-part small{font-size:.5rem;margin-top:1px}}
@media(max-width:600px){.facility-weapons,.facility-books{top:4%}.facility{min-height:44px}}
.countdown-part small{color:#f4e4bd;opacity:1}
.encounter-countdown .countdown-values{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));container-type:inline-size;gap:8px;--timer-font-max:1.35rem}
.encounter-countdown .countdown-part{position:relative;justify-content:center;width:100%;min-width:0}
.encounter-countdown .countdown-part strong{white-space:nowrap;font-size:min(var(--timer-font-max),calc(46cqw / var(--countdown-digits,2)))}
.encounter-countdown .countdown-part:not(:last-child)::after{content:':';position:absolute;right:-6px;top:0;color:#f4e4bd}
.countdown-warning{position:absolute;left:12%;right:12%;top:62%;font-size:clamp(.5rem,1.7vw,.75rem);text-align:center;color:#f4e4bd;font-weight:700}
@media(max-width:600px){.encounter-countdown .countdown-values{--timer-font-max:.95rem;gap:6px}.encounter-countdown .countdown-part:not(:last-child)::after{right:-5px}}

.collection-tabs{flex-wrap:wrap}.collection-tabs .button{min-height:44px}.collection-card time{overflow-wrap:anywhere}.collection-card p{max-width:100%}@media(max-width:480px){.collection-tabs .button{flex:1 1 40%;text-align:center}}

/* Additional approved presentation rules. Encounter calculations are unchanged. */
.brand{width:320px;max-width:48%;background:transparent;border-radius:0;padding:0}
.header-logo{display:block;width:100%;height:auto;max-height:120px;object-fit:contain}
.monster-layout{display:grid;grid-template-columns:minmax(180px,35%) minmax(0,1fr);align-items:center;gap:20px}
.monster-image-wrap{width:100%;height:280px;display:flex;align-items:center;justify-content:center;min-width:0}
.monster-image-wrap .monster-art{width:70%;height:72%;max-width:100%;max-height:100%;object-fit:contain}
.monster-layout[data-kind="boss"] .monster-image-wrap{height:350px}
.monster-layout[data-kind="boss"] .monster-art{width:100%;height:100%}
.monster-info{min-width:0}.monster-info progress{width:100%;max-width:100%}
.monster-layout>.encounter-countdown{grid-column:1/-1;justify-self:center;margin-top:0}
.monster-layout>.preview-timer-note{grid-column:1/-1;margin-top:-15px;text-align:center}
@media(max-width:600px){.monster-layout{grid-template-columns:minmax(0,1fr)}.monster-image-wrap{height:220px}.monster-layout[data-kind="boss"] .monster-image-wrap{height:300px}.monster-info{width:100%}.monster-layout>.encounter-countdown{width:100%;max-width:430px}}

.derived-bust img{width:100%;height:100%;left:0;top:0;object-fit:contain}

/* Selection copies have one fixed viewport; no source-dependent CSS enlargement. */
.character-choice .normalized-choice{display:block;position:relative;width:100%;height:auto;aspect-ratio:4/5;overflow:hidden}
.character-choice .normalized-choice>img{display:block;position:static;left:auto;top:auto;width:100%;height:auto;max-width:100%;max-height:none;aspect-ratio:4/5;object-fit:contain;transform:none}

@media(max-width:820px){.site-header .brand{width:230px;max-width:calc(100% - 116px);padding:0}}

/* Dialogue support is independent of voice support. */
.script-support{display:flex;align-items:center;flex-wrap:wrap;gap:10px;margin:14px 0}
.script-support button{min-height:44px}
.script-support [role=status]{flex-basis:100%;color:#78402a}
.script-support [hidden]{display:none}
.encounter-countdown .countdown-warning{top:100%;left:8%;right:8%;padding:4px 6px;border-radius:4px;background:#18202b;color:#fff3cc;font-size:clamp(.7rem,1.7vw,.82rem);line-height:1.4}
.encounter-countdown .countdown-warning:empty{display:none}
.encounter-countdown[data-warning=true],.encounter-countdown[data-expired=true]{margin-bottom:34px}

/* Selection only: equal visible face area relative to character 3. */
.character-choice .face-calibrated>img{position:absolute;left:var(--choice-face-left);top:var(--choice-face-top);width:var(--choice-face-width);height:auto;max-width:none;max-height:none;aspect-ratio:auto;transform:none;object-fit:contain}


/* 2026-10-21 additional integration. Existing portraits and menus retain their art. */
.ornament-heading{background:url('/frontend/assets/ui/heading-frame-r001.webp') center/100% 100% no-repeat;display:flex;align-items:center;justify-content:center;min-height:100px;width:fit-content;min-width:min(100%,320px);max-width:100%;padding:24px 54px;text-align:center;line-height:1.5;overflow-wrap:anywhere;font-size:clamp(1.4rem,2.5vw,2.25rem)}
.ornament-heading span{display:block}.page-heading>div{min-width:0;max-width:100%}
.registration-total{display:flex;gap:16px;align-items:center;flex-wrap:wrap;background:var(--forest);color:#fff8df;border:1px solid var(--gold);border-radius:12px;padding:14px 22px;margin-block:18px}.registration-total strong{font-size:1.5rem;color:#f2d28c}.registration-total small{font-size:.75rem}
.script-author{display:inline-flex;align-items:center;gap:10px;max-width:100%;overflow-wrap:anywhere}.script-author .avatar,.guest-avatar{width:42px;height:42px;min-width:42px;border-radius:50%;object-fit:contain;margin:0}.script-meta{align-items:center;flex-wrap:wrap}.script-use{margin-block:10px}.script-body{white-space:pre-wrap;overflow-wrap:anywhere}.selected-script{margin-bottom:20px}.voice-script-credit{padding:12px 0;border-bottom:1px solid var(--line)}
.occupation-picker label{display:grid;grid-template-columns:auto 1fr;align-items:center;gap:8px 12px}.occupation-picker label span{grid-column:2;font-size:.82rem;font-weight:400}.occupation-picker input{width:20px;height:20px;margin:0}.occupation-badges{display:flex;gap:8px;flex-wrap:wrap}.x-handle-input{display:flex;align-items:center;gap:8px;max-width:380px}.x-handle-input>span{font-size:1.5rem}.x-handle-input input{margin:0;min-width:0}#adventurer-search button{margin-top:18px}
.facility-voices{left:50%;top:57%;transform:translate(-50%,-50%);z-index:4;white-space:nowrap;background:#183a31ee;color:#fff8df;border:1px solid #e8c975;min-height:38px;text-shadow:0 1px #000;font-size:clamp(10px,1.2vw,18px);padding:7px 14px;pointer-events:auto}.facility-voices small{color:#f7dfaa}.facility-voices:focus-visible{outline:3px solid #fff;outline-offset:3px}
.header-spacer{height:0;pointer-events:none}.header-sentinel{height:0}.site-header.is-compact{position:fixed;inset:0 0 auto;z-index:40;min-height:72px;height:72px;padding-block:6px;box-shadow:0 3px 12px #0003}.site-header.is-compact .brand{height:58px;min-height:0;width:180px;flex:0 0 180px}.site-header.is-compact .header-logo{max-height:58px;width:100%;height:100%;object-fit:contain}.site-header.is-compact .account-button,.site-header.is-compact .button{padding:8px 16px}.header-menu-toggle{display:none}html{scroll-padding-top:calc(var(--fixed-header-offset,0px) + 14px)}[id]{scroll-margin-top:calc(var(--fixed-header-offset,0px) + 14px)}dialog{z-index:100}
@media(max-width:820px){.ornament-heading{min-height:76px;padding:20px 28px;font-size:1.35rem;min-width:min(100%,250px)}.site-header .header-menu-toggle{display:block;background:transparent;color:#fff8df;border:1px solid #c4a45b;border-radius:7px;padding:8px 10px;margin-left:auto}.site-header.menu-expanded #header-nav{display:flex;position:absolute;top:100%;left:0;right:0;background:var(--forest);padding:12px;flex-direction:column;gap:10px;z-index:41;box-shadow:0 4px 8px #0003}.site-header{position:relative}.site-header.is-compact{height:64px;min-height:64px;gap:10px;padding-inline:14px}.site-header.is-compact .brand{width:118px;flex-basis:118px;height:48px}.site-header.is-compact .account-button{font-size:.75rem;padding:8px}.registration-total{gap:8px}.registration-total small{width:100%}.facility-voices{top:57%;font-size:10px;padding:5px 9px;min-height:28px}.facility-voices small{display:none}}
@media(prefers-reduced-motion:reduce){.site-header,.site-header *{transition:none!important}}

@media(max-width:600px){.facility-voices{top:44%}}

.character-step .character-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
.character-pagination{align-items:center;justify-content:center;margin-block:12px}

@media(max-width:360px){.facility-voices{top:40%}}

@media(max-width:820px){.site-header{display:grid;grid-template-columns:minmax(0,1fr) auto auto;align-items:center;padding:12px 14px;gap:8px}.site-header .brand{width:180px;max-width:100%}.site-header #header-nav{display:none}.site-header.menu-expanded #header-nav{display:flex;max-height:70dvh;overflow:auto}.site-header.menu-expanded #header-nav a{display:block}.site-header .account-button{font-size:.75rem;padding:8px 10px;white-space:nowrap}.site-header .header-menu-toggle{font-size:.75rem;padding:8px;white-space:nowrap}.site-header.is-compact{display:grid;grid-template-columns:minmax(0,1fr) auto auto}}
.auth-help-links{display:flex;gap:10px;flex-wrap:wrap;margin-top:16px}.auth-help-links .button{white-space:normal}#auth-help-dialog,#password-reset-dialog{width:min(560px,calc(100% - 24px));max-height:90dvh;overflow:auto}#auth-help-status,#reset-status{overflow-wrap:anywhere;white-space:pre-wrap}@media(max-width:600px){.auth-help-links{flex-direction:column;align-items:stretch}#auth-help-dialog .dialog-heading,#password-reset-dialog .dialog-heading{align-items:flex-start}#auth-help-dialog h2,#password-reset-dialog h2{font-size:1.3rem}#auth-help-send{white-space:normal;max-width:100%}}
/* Voice summaries share the individually reviewed selection face alignment. */
.voice-summary-card{display:grid;grid-template-columns:clamp(64px,8vw,88px) minmax(0,1fr);gap:14px;padding:16px;align-items:start}
.voice-card.voice-summary-card>a.voice-face-link{display:block;width:100%;height:auto;padding:0}
.voice-face-crop{display:block;position:relative;width:100%;aspect-ratio:1;overflow:hidden;border-radius:9px;background:#f3f1e7;border:1px solid var(--line)}
.voice-face-crop>.character-portrait{display:block;position:absolute;width:200%;height:auto;aspect-ratio:4/5;left:-50%;top:-40%;overflow:hidden}
.voice-face-crop>.normalized-choice>img{display:block;position:static;width:100%;height:auto;min-height:0;max-width:100%;max-height:none;aspect-ratio:4/5;object-fit:contain;transform:none;background:transparent}
.voice-face-crop>.face-calibrated>img{position:absolute;left:var(--choice-face-left);top:var(--choice-face-top);width:var(--choice-face-width);height:auto;min-height:0;max-width:none;max-height:none;aspect-ratio:auto;transform:none;object-fit:contain;background:transparent}
.voice-summary-card .card-body,.profile-layout .voice-summary-card .card-body,.plaza-history .voice-summary-card .card-body{padding:0;min-width:0;overflow-wrap:anywhere}
.voice-summary-card .card-title{font-size:1.05rem;line-height:1.5;margin:0 0 10px}
.voice-summary-card .card-author{display:flex;align-items:center;gap:8px;flex-wrap:nowrap}
.voice-summary-card .card-author .avatar{width:36px;height:36px;margin:0}
.voice-summary-card .card-profile-link{display:block;flex:none;border-radius:50%}
.voice-summary-card .card-author .rank-stars{min-width:0;white-space:normal;overflow-wrap:anywhere;line-height:1.5}
.voice-summary-card .card-title-small{margin:10px 0}
.voice-summary-card .card-meta{display:flex;flex-wrap:wrap;gap:4px 10px;margin:12px 0}
.voice-summary-card .card-link{display:inline-block;padding:8px 0;line-height:1.5}
.voice-summary-card a:focus-visible{outline:3px solid #a98335;outline-offset:3px}
.script-card>.script-meta{margin:0 0 14px}
.script-card>.script-body{background:#f8f6ed;border:1px solid #ded9c9;border-radius:8px;padding:18px;margin:0 0 16px;white-space:pre-wrap;overflow-wrap:anywhere;max-height:none;overflow:visible;display:block}
.script-card>.script-actions{border-top:1px solid var(--line);margin-top:16px;padding-top:4px}
.script-actions>.script-use{margin:0 0 14px}
@media(max-width:600px){.voice-summary-card{gap:12px;padding:12px}.script-card>.script-body{padding:14px}.script-actions>.script-use{white-space:normal}}
/* Early campaign: local display preview, no reward activation. */
.early-campaign{margin-top:24px;border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;background:#fffaf0}
.early-campaign picture,.early-campaign img{display:block;width:100%;height:auto}
.campaign-preview-note{font-size:.8rem;font-weight:700;color:#795522;background:#fff1cb;padding:9px 14px;margin:0}
.campaign-conditions{font-size:.83rem;line-height:1.6;padding:11px 16px;margin:0;color:var(--ink)}
@media(max-width:600px){.early-campaign{margin-top:20px}.campaign-preview-note,.campaign-conditions{font-size:.8rem;padding:10px 12px}}

.script-license-options{border:1px solid var(--border,#dedacc);border-radius:12px;padding:1rem;display:grid;gap:1rem}.script-license-options label{display:flex;align-items:flex-start;gap:.6rem;line-height:1.7}.script-license-options input{flex:0 0 auto;margin-top:.45rem}.voice-script-credit{overflow-wrap:anywhere}

.management-key{display:block;overflow-wrap:anywhere;white-space:normal;padding:1rem;background:#fff3cd;border:1px solid #b39042;margin:1rem 0}#script-management-form input:not([type=checkbox]){max-width:100%;box-sizing:border-box}

/* Local governance: native fields and existing notice art. */
#signup-age,.terms-registration fieldset{border:1px solid #d9d5c7;border-radius:10px;padding:12px;min-width:0} .terms-registration{width:min(94vw,640px);max-height:92vh;overflow:auto}.terms-registration input[type=radio],#signup-age input[type=radio]{width:auto}.terms-registration p,.terms-bulletin p,.reward-notice-message{white-space:pre-wrap;overflow-wrap:anywhere}#terms-release input,#terms-release textarea{max-width:100%;min-width:0}.reward-notice-card label{position:relative;z-index:2;display:block;padding:8px}.reward-notice-card label[hidden]{display:none}.reward-notice-card label input{width:auto}
/* Page sharing keeps the complete URL available when Clipboard access is denied. */
.voice-sharing{margin:22px 0;padding-top:18px;border-top:1px solid var(--line)}.voice-sharing label{font-size:.85rem;font-weight:600}.voice-sharing .button-row{margin-top:12px;flex-wrap:wrap}
