:root{font-size:15px;line-height:1.6}body{margin:0}a{color:var(--ui-accent);text-underline-offset:4px}button,.button{font:inherit;cursor:pointer;border:1px solid var(--ui-line);background:var(--ui-paper);color:var(--ui-ink);white-space:nowrap;border-radius:8px;justify-content:center;align-items:center;gap:8px;min-height:44px;padding:9px 16px;line-height:1.4;text-decoration:none;display:inline-flex}button:hover,.button:hover{background:var(--ui-soft)}button.primary,.button.primary{background:var(--ui-accent);border-color:var(--ui-accent);color:#fff}button.primary:hover,.button.primary:hover{background:#385944}button:disabled{cursor:not-allowed;opacity:.5}.text-link{border:0;min-height:36px;padding:6px 0;text-decoration:underline;background:0 0!important}.service-header{background:var(--ui-paper);border-bottom:1px solid var(--ui-line)}.service-header-inner{align-items:center;gap:24px;max-width:1440px;min-height:80px;margin:auto;padding:16px 32px;display:flex}.service-header .ui-brand{letter-spacing:-.6px;margin-right:auto;font-size:21px}.service-header nav{align-items:center;gap:4px;display:flex}.service-header nav a{white-space:nowrap;border-radius:8px;padding:10px 13px;font-size:14px;text-decoration:none}.service-header nav a:hover{background:#f1f3eb}.service-header nav a[aria-current=page]{background:var(--ui-soft);color:#35543e;font-weight:700}#account{overflow-wrap:anywhere;max-width:160px;font-size:13px}#account a{text-overflow:ellipsis;white-space:nowrap;max-width:160px;display:block;overflow:hidden}#nav-toggle{display:none}.skip-link{background:var(--ui-paper);z-index:100;padding:12px;position:fixed;top:-80px;left:16px}.skip-link:focus{top:12px}main{max-width:1240px;min-height:60vh;margin:40px auto 72px;padding:0 32px}h1{letter-spacing:-.8px;margin:0 0 12px;font-size:30px;line-height:1.3}h2{letter-spacing:-.3px;font-size:20px;line-height:1.4}p{overflow-wrap:anywhere}h1+p{margin-top:0}.page-heading{justify-content:space-between;align-items:center;gap:20px;margin-bottom:24px;display:flex}.page-heading h1{margin:0}.page-heading p{margin:6px 0 0}.grid{grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:20px;display:grid}.card,.panel{background:var(--ui-paper);border:1px solid var(--ui-line);border-radius:var(--ui-radius);min-width:0;padding:24px}.card h2{margin:10px 0}.card h2 a{color:var(--ui-ink);text-decoration:none}.card h2 a:hover{text-decoration:underline}.muted{color:var(--ui-muted)}.actions{flex-wrap:wrap;align-items:center;gap:8px;margin-top:16px;display:flex}.actions .ui-details{margin-left:auto}.card .actions{margin-top:auto;padding-top:20px}input,select,textarea{font:inherit;border:1px solid var(--ui-input);background:var(--ui-paper);width:100%;min-width:0;color:inherit;border-radius:7px;padding:10px 12px;line-height:1.5}textarea{resize:vertical;min-height:90px}label{margin:16px 0;display:block}input[type=radio],input[type=checkbox]{width:auto;accent-color:var(--ui-accent);margin-right:8px}input[type=radio]{width:17px;height:17px}.search{gap:12px;margin:24px 0;display:flex}.search button{flex-shrink:0}.search input{flex:1;min-width:0}.search-filters{background:var(--ui-paper);border:1px solid var(--ui-line);border-radius:10px;flex-wrap:wrap;align-items:end;margin:20px 0;padding:16px}.search-filters label{min-width:120px;color:var(--ui-muted);flex:1;margin:0;font-size:13px}.search-filters label:first-child{flex:2;min-width:220px}.search-filters input,.search-filters select{margin-top:6px;font-size:14px}.search-filters .text-link{padding:10px 4px}.error{color:var(--ui-danger);white-space:pre-wrap}.error:empty{display:none}#notice{background:var(--ui-ink);color:#fff;z-index:80;border-radius:10px;max-width:min(580px,90%);padding:12px 20px;position:fixed;bottom:16px;left:50%;transform:translate(-50%);box-shadow:0 4px 16px #30433622}#notice:empty{display:none}#notice[role=alert]{background:#813b2e}.form{max-width:760px;margin-top:24px}.form fieldset{border:0;border-bottom:1px solid var(--ui-line);min-width:0;margin:0 0 24px;padding:0 0 24px}.form legend{margin-bottom:4px;padding:0;font-size:18px;font-weight:700}.field-row{grid-template-columns:1fr 1fr;gap:16px;display:grid}.tag,.badge{color:var(--ui-muted);font-size:12px}.badge{background:var(--ui-soft);border-radius:5px;align-self:flex-start;align-items:center;padding:4px 9px;font-weight:600;display:inline-flex}.tags{flex-wrap:wrap;gap:6px;display:flex}.tags:empty{display:none}.tags span{background:#eef0e7;border-radius:5px;padding:3px 8px;font-size:12px}.empty-state{text-align:center;background:var(--ui-paper);border:1px dashed #bbc8b1;border-radius:10px;grid-column:1/-1;padding:40px 24px}.empty-state h2{margin:0 0 8px}.empty-state p{color:var(--ui-muted);margin:0}.empty-state .actions{justify-content:center}.filter-tabs{flex-wrap:wrap;gap:6px;margin:24px 0;display:flex}.filter-tabs a{background:0 0;border:0;padding:7px 12px;font-size:14px}.filter-tabs a[aria-current=page]{background:var(--ui-soft);font-weight:700}.new-map-form{gap:8px;margin:0;padding-top:16px;display:flex}.new-map-form input{flex:1;min-width:0}.new-map-disclosure{max-width:480px;margin-bottom:24px}.new-map-disclosure>summary{background:var(--ui-accent);color:#fffef9;width:max-content;min-height:44px;padding:10px 16px}.mine-card{flex-direction:column;display:flex}.mine-card h2{margin:16px 0 4px}.mine-card p{color:var(--ui-muted);margin:0;font-size:13px}.mine-card .ui-menu .button{display:block}.mine-grid{margin-top:20px}.map-card{flex-direction:column;padding:0;display:flex;overflow:hidden}.map-thumbnail{aspect-ratio:16/10;object-fit:cover;background:#e1e8dd;width:100%;display:block}.map-cover{text-decoration:none;display:block}.empty-thumbnail{color:var(--ui-muted);place-items:center;font-size:13px;display:grid}.card-copy{flex-direction:column;flex:1;align-items:flex-start;padding:20px;display:flex}.card-copy>p{margin:4px 0 12px}.card-description{-webkit-line-clamp:2;color:var(--ui-muted);-webkit-box-orient:vertical;font-size:14px;display:-webkit-box;overflow:hidden}.card-copy .creator-link{margin-top:auto;font-size:13px}.map-card .tags{margin:10px 0 0}.home-stage{border:1px solid var(--ui-line);background:var(--ui-paper);border-radius:10px;grid-template-columns:1.2fr 1fr;gap:0;margin-bottom:32px;display:grid;overflow:hidden}.home-stage .panel{border:0;border-radius:0;flex-direction:column;justify-content:center;align-items:flex-start;gap:10px;padding:32px;display:flex}.home-stage h1,.home-stage p{margin:0}.home-stage .character-preview{border-radius:0;height:320px}.home-intro{justify-content:space-between;align-items:center;gap:24px;margin:0 0 32px;display:flex}.home-intro p{color:var(--ui-muted);margin:8px 0 0}.section-heading{justify-content:space-between;align-items:center;gap:16px;margin:32px 0 16px;display:flex}.section-heading h2{margin:0}.resume-list{gap:0;display:grid}.resume-item{border-bottom:1px solid var(--ui-line);justify-content:space-between;align-items:center;gap:12px;padding:12px 0;display:flex}.resume-item:last-child{border:0}.resume-item small{color:var(--ui-muted);font-size:12px;display:block}.resume-more{margin-top:12px}.resume-more>summary{cursor:pointer;min-height:36px;color:var(--ui-accent)}.character-grid{margin-top:24px}.character-card{flex-direction:column;padding:0;display:flex;overflow:hidden}.character-card>a{color:inherit;text-decoration:none}.character-card h2{margin:0}.character-card .card-copy{width:100%}.character-portrait,.preset img{aspect-ratio:6/5;object-fit:contain;background:#e9ece4;width:100%;display:block}.character-detail{grid-template-columns:minmax(0,1.4fr) minmax(260px,1fr);gap:24px;margin-top:24px;display:grid}.character-preview{background:#e9ece4;border-radius:10px;height:460px;overflow:hidden}.character-preview canvas{touch-action:none;display:block}.preset{cursor:pointer;margin:0;padding:12px}.preset:has(input:checked){border-color:var(--ui-accent);box-shadow:0 0 0 1px var(--ui-accent);background:#edf1e6}.preset img{border-radius:6px}.preset span{align-items:center;margin-top:12px;display:flex}.character-name{max-width:440px}.map-detail{grid-template-columns:minmax(0,1.55fr) minmax(290px,1fr);gap:24px;margin:24px 0;display:grid}.map-detail>.panel{align-self:start}.map-preview{background:#e1e8dd;border-radius:10px;height:560px;overflow:hidden}.map-preview canvas,.entry-character canvas{touch-action:none;display:block}.entry-character{border-radius:8px;height:150px;overflow:hidden}.entry-character:empty{display:none}.space-switcher button[aria-pressed=true],[data-camera][aria-pressed=true]{background:var(--ui-soft);border-color:var(--ui-accent)}.creator-profile{margin-top:24px}.registration-preview{height:320px}.preview-thumbnail{border-radius:8px;width:180px}#registration-state{font-size:14px;font-weight:600}.registration-contents{margin:20px 0}.registration-contents summary{cursor:pointer;min-height:40px}.registration-contents p{color:var(--ui-muted);margin:6px 0;font-size:14px}.map-detail .tags{margin-bottom:24px}.login-page{background:var(--ui-paper);border:1px solid var(--ui-line);border-radius:12px;max-width:440px;min-height:0;margin:10vh auto;padding:32px}.login-page .ui-brand{margin-bottom:32px;font-size:21px}.login-page h1{font-size:26px}.login-page button{width:100%;margin-top:8px}.login-back{margin-top:24px;font-size:14px;display:inline-block}.login-page #error{color:var(--ui-danger);font-size:14px}@media (max-width:1020px){.service-header-inner{flex-wrap:wrap;gap:16px;padding:16px 24px}.service-header nav{order:3;justify-content:space-between;width:100%}.service-header nav a{text-align:center;flex:1}.service-header .ui-brand{margin-right:auto}main{padding:0 24px}.map-detail{grid-template-columns:minmax(0,1fr) 320px}}@media (max-width:760px){main{margin:28px auto 48px;padding:0 16px}h1{font-size:26px}.home-stage,.map-detail,.character-detail{grid-template-columns:1fr}.home-stage .panel{padding:24px}.map-preview,.character-preview{height:360px}.search-filters label:first-child{min-width:100%}.page-heading{align-items:flex-start}.home-intro{flex-direction:column;align-items:flex-start;gap:12px}.service-header-inner{gap:12px;padding:12px 16px}.service-header .ui-brand{font-size:19px}.service-header .ui-brand-mark{width:32px;height:32px;font-size:25px}.service-header nav{grid-template-columns:repeat(3,1fr);gap:4px;padding-top:8px;display:none}.service-header nav[data-open=true]{display:grid}.service-header nav a{padding:10px 6px;font-size:13px}#nav-toggle{order:2;min-height:40px;padding:8px 12px;font-size:13px;display:inline-flex}#account,#account a{max-width:110px}#account .button{min-height:40px;padding:8px 10px;font-size:13px}.grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.card-copy{padding:16px}.card h2{font-size:18px}.mine-grid,.history-grid{grid-template-columns:1fr}.character-grid .actions{width:100%}.character-grid .button,.character-grid button{width:100%;font-size:13px}.search{flex-wrap:wrap}.search input{min-width:180px}.field-row{gap:12px}.form{padding:20px}.new-map-form{flex-wrap:wrap}.new-map-form button{flex:1}.login-page{max-width:none;margin:8vh 16px;padding:24px}.resume-item .button{padding:8px 12px;font-size:13px}.map-detail>.panel{padding:20px}.home-stage .character-preview{height:260px}}@media (max-width:440px){.map-grid{grid-template-columns:1fr}.search-filters{padding:12px}.search-filters label{min-width:100px}.field-row{grid-template-columns:1fr;gap:0}}.new-map-disclosure>summary{border-radius:8px;list-style:none}.new-map-disclosure>summary::-webkit-details-marker{display:none}dialog{border:1px solid var(--line,#e3e6dc);border-radius:12px;max-width:420px;padding:24px;box-shadow:0 18px 48px #3043362e}dialog::backdrop{background:#30433652}dialog .dialog-heading{justify-content:space-between;align-items:flex-start;gap:20px;margin-bottom:14px;display:flex}dialog .dialog-heading h2{font-size:18px}dialog .dialog-close{color:#87967b;background:0 0;border:0;padding:0 6px;font-size:22px;line-height:1}dialog p{color:#5d6b5c;font-size:13px;line-height:1.7}dialog .actions{gap:8px;margin-top:20px;display:flex}.local-login{border-bottom:1px solid var(--ui-line);gap:10px;margin:24px 0;padding-bottom:24px;display:grid}.local-login-label{letter-spacing:.04em;color:var(--ui-muted);font-size:12px;font-weight:700}.local-login button{background:var(--ui-soft);border-color:var(--ui-accent);width:100%;color:var(--ui-accent);white-space:normal;font-weight:700}.local-login p{color:var(--ui-muted);margin:0;font-size:13px}
