/* Player terminal design layer: the redesign's sunset scenery, glass panel and pill tabs applied to the shared dashboard markup.
   Signed out, #onboarding carries .scenic-login; signed in, #dashboard carries .player-preview (both from concept.css). Functional
   ids and classes are unchanged; this file only restyles them. */
/* concept.css lifts every body child to position:relative for the scenery; the skip link must stay fixed and off-screen until focused. */
body:has(.scenic-login)>.skip-link,body:has(.player-preview)>.skip-link{position:fixed;z-index:30}
main:has(.scenic-login),main:has(.player-preview){max-width:none;padding:0}
main:has(.scenic-login) .notice-area,main:has(.player-preview) .notice-area{max-width:1120px;margin:16px auto 0;padding:0 24px}

/* Signed out: the sign-in widget sits inside the prototype's dark login card. */
.scenic-login .login-card h2{text-transform:none;font-size:26px;margin:0 0 8px}
.scenic-login .login-layout h1{text-transform:none;letter-spacing:-.01em}
.login-card .auth-form{margin:0}.login-card .auth-intro{color:var(--panel);font-size:14px;margin:0 0 4px}
.login-card .auth-form label{font-size:14px;color:var(--panel);margin-top:14px;font-family:var(--font);letter-spacing:0;text-transform:none}
.login-card .auth-form input{box-sizing:border-box;width:100%;padding:14px;margin:10px 0 6px;background:#ffffff12;border:1px solid #fff4;border-radius:6px;color:var(--panel);font:inherit}
.login-card .auth-form input::placeholder{color:#c4c9c1}
.login-card .auth-form :is(button[type=submit],.auth-submit){width:100%;margin-top:16px;padding:12px 22px;border:1px solid var(--copper);border-radius:6px;background:var(--copper);color:var(--ink);font:500 1rem/1.4 var(--font);letter-spacing:0;text-transform:none;justify-content:center}
.login-card .auth-form :is(button[type=submit],.auth-submit)::after{content:'→'}
.login-card .auth-form :is(button[type=submit],.auth-submit):hover:not(:disabled){background:#d9a072;border-color:#d9a072;color:var(--ink)}
.login-card .auth-form .quiet{color:var(--panel);border-color:#f8f3e755;background:transparent}
.login-card .auth-form .fine{color:#c4c9c1;text-transform:none;letter-spacing:0;font:400 12px/1.6 var(--font)}.login-card .auth-form .fine a{color:#ddb893}
.login-card .field-error{color:#f2b8a0}
.login-card>a{display:inline-block;margin-top:18px;font-size:14px}
.login-card [role=status]{color:#e3bd90;font-size:14px}
body:has(.scenic-login) .session-slot .session-hint{color:var(--panel);border-color:#f8f3e755}
body:has(.scenic-login) .site-footer{color:#f8f3e7aa}body:has(.scenic-login) .site-footer a{color:var(--panel)}

/* Signed in: one glass panel on the scenery. */
.player-preview{max-width:1120px}
.player-preview h1,.player-preview h2,.player-preview h3{text-transform:none;letter-spacing:.01em}
.player-preview .terminal-heading{display:flex;gap:22px;align-items:center;flex-wrap:wrap;margin:0 0 28px;padding:0;border:0}
.player-preview .terminal-heading>div{display:flex;flex-direction:column-reverse;gap:4px;min-width:0}
.player-preview #terminal-heading{font:400 12px var(--mono);letter-spacing:.12em;text-transform:uppercase;color:var(--copper);margin:0}
.player-preview #terminal-identity{display:block;margin:0;font:700 32px/1.1 var(--display);letter-spacing:0;text-transform:none;color:var(--text);overflow-wrap:anywhere}
.player-preview #terminal-identity:empty{display:none}
.player-preview .profile-avatar{width:76px;height:76px;display:grid;place-items:center;background:#89ac93;color:#172f23;font:700 25px var(--display);border-radius:10px;flex:none}
.player-preview .profile-avatar:empty{display:none}
.player-preview .terminal-heading .btn{margin-left:auto}.player-preview .terminal-heading .terminal-wallet-slot{margin-left:auto}
.player-preview .dashboard-layout{display:block}
/* Pill tabs; the selected one is filled and underlined in copper as in the prototype. */
.player-preview .dashboard-nav{position:static;display:flex;flex-direction:row;flex-wrap:wrap;gap:8px;border:0;border-bottom:1px solid var(--line);padding:0 0 24px;margin:0 0 28px}
.player-preview .dashboard-nav button{position:relative;display:inline-flex;justify-content:center;min-height:0;padding:12px 22px;border:1px solid var(--line);border-radius:6px;background:transparent;color:var(--text);font:500 1rem/1.4 var(--font);letter-spacing:0;text-transform:none;text-align:center}
.player-preview .dashboard-nav button::before{display:none}
.player-preview .dashboard-nav button:hover{background:var(--copper-soft)}
.player-preview .dashboard-nav button[aria-selected=true]{background:var(--text);color:var(--panel)}
.player-preview .dashboard-nav button[aria-selected=true]::after{content:'';position:absolute;bottom:-10px;left:20%;right:20%;height:3px;border-radius:3px;background:var(--copper)}
.player-preview .dashboard-nav button:focus-visible{outline:2px solid var(--copper);outline-offset:4px}
/* Cards become soft glass; the corner clip is gone. */
.player-preview .card{clip-path:none;border-radius:8px;border:1px solid #fff9;background:linear-gradient(120deg,#fffdf5d9,#faf4f1ad 65%,#ede3f4b0);box-shadow:inset 0 1px 0 #fff,0 4px 18px #36204309}
.player-preview .card .eyebrow{color:var(--copper);font-weight:400}
.player-preview .player-card-identity h2{font-size:28px}
/* Profile tiles take the prototype's glass stat treatment. */
.player-preview .profile-tiles{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:20px;border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:26px 0;margin:24px 0 0}
.player-preview .profile-tiles .tile{position:relative;overflow:hidden;padding:18px 16px;border-radius:16px;border:1px solid #ffffffb0;background:linear-gradient(125deg,#fffaf0d9,#f3e7dc88 45%,#dfd0ef99);box-shadow:inset 0 1px 0 #fff,inset 0 -1px 0 #ffffff80,0 5px 18px #3620430a;clip-path:none;gap:10px}
.player-preview .profile-tiles .tile::before{content:'';position:absolute;inset:-100%;pointer-events:none;background:linear-gradient(110deg,transparent 37%,#ffffff80 48%,transparent 59%);transform:translateX(-30%) rotate(-12deg);animation:player-glass-light 14s ease-in-out infinite alternate}
.player-preview .profile-tiles .tile:nth-child(2)::before{animation-delay:-4s}.player-preview .profile-tiles .tile:nth-child(3)::before{animation-delay:-8s}
.player-preview .profile-tiles .tile>*{position:relative;z-index:1}
.player-preview .tile-label{font:400 12px var(--font);letter-spacing:0;text-transform:none;color:var(--muted)}
.player-preview .tile-value{font:700 24px/1.1 var(--display);text-transform:none;letter-spacing:0}
.player-preview .tile-link .tile-value{color:var(--copper)}
/* Buttons take the prototype's plain rounded shape; primary ones stay copper. */
.player-preview .btn,.player-preview .finance-panel button:not(.quiet),.player-preview .wallet-panel button:not(.quiet){border-radius:6px;font:500 .95rem/1.4 var(--font);letter-spacing:0;text-transform:none;padding:10px 20px;min-height:0;background:var(--copper);border-color:var(--copper);color:var(--ink)}
.player-preview .btn:hover:not(:disabled),.player-preview .finance-panel button:not(.quiet):hover:not(:disabled){background:var(--copper);border-color:var(--copper);color:var(--ivory)}
.player-preview .btn-secondary,.player-preview .btn-quiet,.player-preview .quiet{background:transparent;border-color:var(--line);color:var(--text)}
.player-preview .btn-secondary:hover:not(:disabled),.player-preview .btn-quiet:hover:not(:disabled){background:var(--copper-soft);border-color:var(--line-strong);color:var(--text)}
.player-preview .btn-sm{padding:7px 12px;font-size:.8rem}
.player-preview .badge{border-radius:4px}
/* Task rows: each one a soft card. */
.player-preview .task-list{border:0;gap:18px}
.player-preview .task-card{border:1px solid var(--line);background:rgba(255,251,243,.72);border-radius:8px;transition:transform .2s ease,box-shadow .2s ease,border-color .2s ease}
.player-preview .task-card::before{display:none}
.player-preview .task-card.is-open{background:rgba(255,251,243,.92)}
.player-preview .task-card .task-title{font-size:19px;text-transform:none;letter-spacing:0}
.player-preview .task-summary{padding:22px 24px}
.player-preview .task-expansion{border-radius:0 0 8px 8px;background:rgba(255,251,243,.6)}
.player-preview .join-option{clip-path:none;border-radius:8px}
.player-preview .join-option strong{text-transform:none;letter-spacing:0}
/* Chat keeps its structure on the glass. */
.player-preview .conversation-feed{background:rgba(255,251,243,.5)}
.player-preview #world-form,.player-preview .conversation-note{background:transparent}
.player-preview .modal{clip-path:none;border-radius:8px}
@media(hover:hover){.player-preview .task-card:hover{transform:translateY(-3px);border-color:#a6533b70;box-shadow:0 8px 22px #36204314}}
@media(prefers-reduced-motion:reduce){.player-preview .profile-tiles .tile::before{animation:none}.player-preview .task-card{transition:none}}
@media(max-width:760px){.player-preview .dashboard-nav{gap:6px}.player-preview .dashboard-nav button{flex:1;padding:11px 14px;font-size:.9rem}.player-preview #terminal-identity{font-size:26px}.player-preview .profile-avatar{width:56px;height:56px;font-size:20px}}

/* A glass frame around calm, flat conversation surfaces. */
.player-preview .conversation-panel,.player-preview .roster-panel{border:1px solid #ffffffb0;border-radius:12px;background:linear-gradient(120deg,#fffdf5d9,#faf4f1ad 65%,#ede3f4b0);box-shadow:inset 0 1px 0 #fff,0 4px 18px #36204309}
.player-preview .conversation-heading,.player-preview .roster-head{background:var(--panel);border-bottom-color:#b9a8bb38;padding-top:22px;padding-bottom:18px}
.player-preview .conversation-heading h2,.player-preview .roster-head h2{font:600 22px/1.2 var(--display);letter-spacing:0}
.player-preview .conversation-subtitle,.player-preview .roster-count{color:var(--muted)}
.player-preview .governor-banner{margin:14px 16px 0;padding:16px;border:1px solid #ffffffb0;border-radius:10px;background:#f4eee3;box-shadow:none}
.player-preview .governor-banner-text strong{font-size:18px;text-transform:none;letter-spacing:0}.player-preview .governor-state{letter-spacing:0;line-height:1.6}
.player-preview .governor-avatar{border-radius:8px}
.player-preview .conversation-feed{background:#faf8f3;padding-top:24px;scrollbar-width:thin;scrollbar-color:#bdaec3 transparent}
.player-preview .conversation-day{color:#746a78;letter-spacing:.08em;font-size:10px}
.player-preview .conversation-name{font:600 12px/1.3 var(--font);letter-spacing:0}.player-preview .conversation-role{border-radius:4px;letter-spacing:.04em;font-size:9px}
.player-preview .conversation-bubble{border-radius:10px;background:var(--panel);box-shadow:none;padding:12px 15px;font-size:13px;line-height:1.65}
.player-preview .conversation-group.is-governor .conversation-bubble{background:#f5efe4}
.player-preview .conversation-group.is-own .conversation-bubble{background:#eee8ef;border-color:#d9cedb}
.player-preview .conversation-time,.player-preview .conversation-state{font-size:10px;letter-spacing:0;line-height:1.6}
.player-preview #world-form{background:#f6f2eb;border-top-color:#ffffffa0;padding-top:18px}
.player-preview #world-text{border-radius:9px;border:1px solid #d4c6d7;background:var(--panel);box-shadow:none;padding:12px 14px;font:13px/1.6 var(--font);color:var(--text)}
.player-preview #world-text:focus-visible{outline:2px solid var(--copper);outline-offset:2px}.player-preview #world-text::placeholder{color:#776d7c}
.player-preview .conversation-note{background:#f6f2eb;color:var(--muted);padding-bottom:18px}
.player-preview .world-composer-side input{accent-color:var(--copper)}
.player-preview .roster-list{padding:10px}.player-preview .roster-player{padding:13px 12px;margin:0 0 8px;border:1px solid #ffffffb0;border-radius:9px;background:var(--panel);box-shadow:none}
.player-preview .roster-name{font:600 12px/1.5 var(--font);letter-spacing:0}.player-preview .roster-state{font-size:9px;letter-spacing:.03em}.player-preview .roster-detail{color:var(--muted);font-size:11px;line-height:1.6}
.player-preview .roster-section{padding:12px 10px 8px;border:0;color:#746a78}.player-preview .roster-others{background:#f4f0e9;border-top-color:#ffffff90;color:var(--muted);padding:14px 18px}
@media(max-width:760px){.player-preview .conversation-heading,.player-preview .roster-head{padding:18px 16px}.player-preview .governor-banner{margin:12px 12px 0;padding:14px}.player-preview .conversation-feed{padding:20px 14px 8px}.player-preview #world-form{padding:16px 14px 8px}.player-preview .conversation-note{padding:8px 14px 16px}.player-preview .conversation-bubble{padding:11px 12px}.player-preview .conversation-author{flex-wrap:wrap;gap:4px 8px}}
.player-preview .conversation-state[data-state=seen]{color:var(--teal)}

/* Text-led messages: no avatar column, neon labels, or per-message effects. */
.player-preview .conversation-group{display:block;margin-bottom:22px}
.player-preview .conversation-author{line-height:1.5;margin-bottom:3px;gap:8px}
.player-preview .conversation-group.is-own .conversation-author{justify-content:flex-end}
.player-preview .conversation-group .conversation-role{background:transparent;border:0;padding:0;color:#76695e;text-transform:none;letter-spacing:0;font:400 11px/1.5 var(--font)}
.player-preview .conversation-group .conversation-bubble{border-color:#ded6ca}
.player-preview .conversation-group.is-governor .conversation-bubble{border-left-color:var(--copper)}
.player-preview .conversation-group.kind-alert .conversation-bubble,.player-preview .conversation-group.kind-enforcement .conversation-bubble{border-left-color:var(--error)}
.player-preview .conversation-time,.player-preview .conversation-state{color:var(--muted)}

/* Intent colors encode the published message type; labels remain readable without color. */
.player-preview .conversation-group{--intent-ink:#625e57;--intent-tint:#eeeae2}
.player-preview .conversation-group[data-intent=task],.player-preview .conversation-group[data-intent=offer]{--intent-ink:#82520f;--intent-tint:#fff2d6}
.player-preview .conversation-group[data-intent=alert]{--intent-ink:#aa302a;--intent-tint:#fde9e5}
.player-preview .conversation-group[data-intent=request]{--intent-ink:#345783;--intent-tint:#e8eef7}
.player-preview .conversation-group[data-intent=response]{--intent-ink:#356447;--intent-tint:#e6f0e8}
.player-preview .conversation-group[data-intent=decision]{--intent-ink:#684778;--intent-tint:#f0e9f4}
.player-preview .conversation-group[data-intent] .conversation-role{color:var(--intent-ink);background:var(--intent-tint);border:1px solid transparent;border-radius:4px;padding:2px 7px;font-weight:600;font-size:10px;line-height:1.4}
.player-preview .conversation-group[data-intent] .conversation-bubble{border-left:3px solid var(--intent-ink)}
.player-preview .conversation-group[data-intent=comment] .conversation-bubble{border-left:1px solid #ded6ca}

/* A calm profile summary; earnings have one home in the section below. */
.player-dashboard.player-preview{background:#f8f5eb;backdrop-filter:none;-webkit-backdrop-filter:none;border:1px solid #e1dbce;border-radius:16px;box-shadow:0 18px 64px #17222224;padding:30px 32px}
.player-preview .terminal-heading{gap:18px;margin-bottom:18px}
.player-preview .profile-avatar{width:62px;height:62px;border-radius:12px;background:#dbe5d9;color:#365c46;font-size:23px}
.player-preview .profile-avatar.is-founder{box-shadow:0 0 0 2px #cab575}
.player-preview #terminal-identity{font-size:30px}
.player-preview .founder-chip{background:#f3ead1;border-color:#dcc990;color:#70551e;font-size:10px}
.player-preview .profile-governor-strip{display:flex;width:fit-content;max-width:100%;align-items:center;gap:7px 10px;padding:0;margin:0 0 20px;border:0;background:none;border-radius:0;box-shadow:none}
.player-preview .profile-governor-strip::before{content:'';width:6px;height:6px;flex:none;border-radius:50%;background:#8c9488}
.player-preview .profile-governor-strip[data-activity=thinking]::before,.player-preview .profile-governor-strip[data-activity=checking]::before{background:#659278}
.player-preview .profile-governor-strip .tile-label{font:400 11px/1.5 var(--font);letter-spacing:0;text-transform:none;color:#78786e}
.player-preview .profile-governor-strip .tile-value{font:500 12px/1.5 var(--font);letter-spacing:0;text-transform:none;color:#454d44}
.player-preview .profile-governor-strip .tile-hint{font:400 11px/1.5 var(--font);color:#858477;margin-left:4px}
.player-preview #application-account{padding:0;margin-bottom:25px}
.player-dashboard.player-preview #application-account .profile-tiles{grid-template-columns:1fr 1fr;gap:16px;margin:0;padding:0;border:0}
.player-preview .profile-tiles .tile{padding:20px 22px;border:1px solid #dedbce;border-radius:10px;background:var(--panel);box-shadow:none;gap:8px;min-height:120px}
.player-preview .profile-tiles .tile::before{content:none;animation:none}
.player-preview .profile-tiles .tile-label{font:400 11px/1.5 var(--font);letter-spacing:0;text-transform:none;color:#7a7c70}
.player-preview .profile-tiles .tile-value{font-size:21px;letter-spacing:0;line-height:1.4;text-transform:none}
.player-preview .profile-tiles .tile-hint{font-size:11px;line-height:1.5;color:#7a7c70}
.player-preview #profile-faction-tile{justify-content:center;padding-right:48px}
.player-preview #profile-faction-tile::after{content:'↗';position:absolute;right:22px;top:50%;transform:translateY(-50%);font-size:21px;color:#8c9984}
.player-preview #profile-faction-tile:hover{border-color:#9aaa91;background:#fbfcf4}
.player-preview #profile-faction{color:#3d5846}
.player-preview .profile-tiles .minecraft-tile{display:grid;grid-template-columns:1fr auto;align-content:center;align-items:center;gap:14px}
.connection-heading{display:flex;align-items:center;gap:13px;grid-column:1/-1}
.connection-icon{width:32px;height:32px;flex:none;color:#688266}
.connection-heading>div{display:grid;gap:3px}
.connection-address{font:500 15px/1.4 var(--font);color:#343f35}
.player-preview #minecraft-verification{background:none;border:0;padding:0;color:#677361;font:500 11px/1.5 var(--font);text-transform:none;letter-spacing:0}
.player-preview #minecraft-verification::before{background:currentColor;width:5px;height:5px;box-shadow:none}
.player-preview #minecraft-verification.badge-wait{color:#98723d}
.player-preview .minecraft-tile .player-card-actions{margin:0;justify-content:flex-end;gap:8px}
.player-preview #connect-button{padding:7px 11px;border:1px solid #d9dece;background:#f2f5eb;color:#3e5540;font:500 11px/1.4 var(--font);border-radius:6px;box-shadow:none}
.player-preview #connect-button:hover{background:#e7eddf;border-color:#aab99d}
.player-preview .dashboard-nav{gap:6px;margin:0 0 24px;padding:0 0 12px;border-bottom:1px solid #dedbce}
.player-preview .dashboard-nav button{font-size:13px;padding:10px 16px;border:0;border-radius:6px;color:#6c7267}
.player-preview .dashboard-nav button[aria-selected=true]{background:#e6ebdf;color:#304735}
.player-preview .dashboard-nav button[aria-selected=true]::after{display:none}
.player-preview #tasks-earnings{background:var(--panel);border:1px solid #dedbce;border-radius:10px;box-shadow:none;padding:24px}
.player-preview #tasks-earnings>.card-head{padding:0 0 18px;margin:0 0 20px;border-bottom:1px solid #e4e1d6;background:none}
.player-preview #tasks-earnings h2{font-size:23px;letter-spacing:-.02em}
@media(max-width:640px){.player-dashboard.player-preview{padding:22px 18px}.player-dashboard.player-preview #application-account .profile-tiles{grid-template-columns:1fr}.player-preview .terminal-heading{gap:14px}.player-preview #terminal-identity{font-size:26px}.player-preview .profile-governor-strip{gap:5px 8px}.player-preview .profile-governor-strip .tile-hint{flex-basis:100%;margin-left:14px}.player-preview .profile-tiles .tile{min-height:100px;padding:17px}.player-preview .dashboard-nav{gap:2px}.player-preview .dashboard-nav button{padding:9px 12px}.player-preview #tasks-earnings{padding:18px}}

.player-preview #terminal-identity.is-placeholder{font-family:inherit;font-weight:400;font-size:clamp(1rem,2vw,1.2rem);line-height:1.4;color:var(--muted);letter-spacing:0}

.connection-version{font-size:.875rem;line-height:1.5;color:var(--muted)}

.faction-setup-progress{display:flex;align-items:flex-start;gap:18px;border-left:4px solid var(--accent,#a74f34)}
.faction-setup-progress[hidden]{display:none}
.faction-setup-progress h2{margin:0 0 10px}.faction-setup-progress .help{max-width:65ch;line-height:1.6}
.faction-setup-spinner{flex:none;width:24px;height:24px;margin-top:5px;border:3px solid #d9d2c2;border-top-color:var(--accent,#a74f34);border-radius:50%;animation:faction-setup-spin 1s linear infinite}
@keyframes faction-setup-spin{to{transform:rotate(360deg)}}
@media(prefers-reduced-motion:reduce){.faction-setup-spinner{animation:none}}

.notice-area #notice{background:#efe5cc;color:#292b25;border:1px solid #d5c5a3;border-left:4px solid #a65337;border-radius:6px;padding:14px 18px;font-weight:500;line-height:1.6;box-shadow:0 2px 8px #17243d1a}
