:root{--wt-ink:#1d1b24;--wt-ink-soft:#3c3946;--wt-muted:#55515f;--wt-cobalt:#2a6be0;--wt-cobalt-deep:#1f4fb8;--wt-cream:#f6ead0;--wt-cream-hi:#fff3d6;--wt-paper:#fffdf7;--wt-yellow:#ffd23a;--wt-yellow-soft:#fff1b8;--wt-pink:#ff6fae;--wt-pink-soft:#ffe2ef;--wt-orange:#ff8a24;--wt-red:#f2483a;--wt-red-soft:#ffe9e6;--wt-red-text:#b3261a;--wt-green:#3cc96b;--wt-green-soft:#d9f7e3;--wt-green-text:#176b35;--wt-cyan:#4fd6ff;--wt-lilac:#b592ff;--wt-soft-line:rgba(29,27,36,.2);--wt-line:3px solid #1d1b24;--wt-shadow-sm:3px 3px 0 #1d1b24;--wt-shadow:5px 5px 0 #1d1b24;--wt-shadow-lg:8px 8px 0 #1d1b24;--wt-radius:14px;--wt-radius-lg:20px;--wt-radius-xl:28px;--wt-font-display:"Huninn","Noto Sans TC","PingFang TC",system-ui,sans-serif;--wt-font-body:system-ui,-apple-system,"PingFang TC","Noto Sans TC",sans-serif;--wt-font-pixel:"WT Pixel",ui-monospace,monospace}
:root{font-family:var(--wt-font-body);color:var(--wt-ink);background:var(--wt-cobalt);font-synthesis:none;font-size:16px}*{box-sizing:border-box}body{margin:0}a{color:inherit}header{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:24px 6%;border-bottom:var(--wt-line);background:var(--wt-cream)}.brand{display:flex;gap:12px;align-items:center;text-decoration:none;font-weight:750}.mark{background:var(--wt-yellow);color:var(--wt-ink);border:var(--wt-line);box-shadow:var(--wt-shadow-sm);border-radius:16px;padding:17px 12px;white-space:nowrap}.brand small{display:block;font-size:10px;letter-spacing:2px;margin-top:6px}main{max-width:1120px;margin:0 auto;padding:64px 28px;min-height:74vh}.hero{display:grid;grid-template-columns:1.2fr 1fr;gap:70px;align-items:center}.eyebrow{display:inline-block;font-family:var(--wt-font-pixel);font-size:11px;line-height:1.6;letter-spacing:.06em;color:var(--wt-ink);background:var(--wt-yellow);border:2px solid var(--wt-ink);padding:4px 8px;font-weight:400}h1{font-family:var(--wt-font-display);font-weight:400;font-size:clamp(32px,4vw,52px);line-height:1.3;letter-spacing:0;margin:18px 0}h2{font-size:24px;line-height:1.5;margin:8px 0 20px}p{line-height:1.85;color:var(--wt-muted)}.card{background:#fff;border:var(--wt-line);border-radius:var(--wt-radius-lg);padding:34px;box-shadow:var(--wt-shadow)}.login-card{padding:44px 34px}.login-card h2{margin-top:0}.button,button{cursor:pointer;font:inherit;background:var(--wt-yellow);color:var(--wt-ink);border:var(--wt-line);border-radius:var(--wt-radius);padding:13px 20px;display:inline-flex;align-items:center;justify-content:center;text-decoration:none;gap:10px;font-weight:800;min-height:48px}.button:hover,button:hover{background:#ffdc5e}.button:focus-visible,button:focus-visible,a:focus-visible{outline:3px solid var(--wt-ink);outline-offset:3px}.secondary{background:white;color:var(--wt-ink);border-color:var(--wt-ink)}.secondary:hover{background:var(--wt-cream-hi)}.google{background:#fff;color:#343434;border:1px solid #747775;width:100%;font-weight:500}.google:hover{background:#f4f7fa}.google svg{width:20px;height:20px}.hint{font-size:13px;line-height:1.8;color:var(--wt-muted)}.notice{padding:16px;border-radius:12px;border:2px dashed var(--wt-ink);background:var(--wt-cream-hi);color:var(--wt-ink);font-size:14px;line-height:1.8}.error{color:var(--wt-red-text);background:var(--wt-red-soft);border:2px solid var(--wt-red);padding:12px 16px;border-radius:10px;line-height:1.6}.error:empty{display:none}.good{background:var(--wt-green-soft);border:2px solid var(--wt-ink);padding:14px;border-radius:10px}.list{padding-left:20px;line-height:2.4;color:var(--wt-muted)}.flow{max-width:700px;margin:auto}.flow h1{font-size:34px}.steps{display:flex;list-style:none;padding:0;gap:12px;margin:26px 0}.steps li{flex:1;border-top:3px solid var(--wt-soft-line);padding-top:12px;color:var(--wt-muted);font-size:13px}.steps li.active{border-color:var(--wt-ink-soft);color:var(--wt-ink-soft);font-weight:750}label{display:block;font-weight:650;margin-bottom:8px}.field{margin:20px 0}.field small{display:block;margin-top:8px;color:var(--wt-muted);line-height:1.6}input,select,textarea{width:100%;padding:13px;border:2px solid var(--wt-ink);border-radius:12px;background:#fff;color:var(--wt-ink);font:inherit;min-height:48px}textarea{resize:vertical;min-height:115px}input:focus,select:focus,textarea:focus{outline:2px solid var(--wt-ink);outline-offset:1px}.check{display:flex;align-items:flex-start;gap:12px;font-weight:450;line-height:1.7}.check input{width:20px;min-height:20px;margin-top:4px;accent-color:var(--wt-ink)}.actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:30px;justify-content:flex-end}.actions .save{margin-right:auto}button:disabled{opacity:.55;cursor:wait}.badge{display:inline-block;background:var(--wt-yellow-soft);color:var(--wt-ink);border:2px solid var(--wt-ink);font-weight:700;border-radius:99px;padding:6px 12px;font-size:13px}.dashboard{display:grid;grid-template-columns:1.5fr 1fr;gap:24px}.dashboard h1{font-size:36px}.profile-line{display:grid;grid-template-columns:100px 1fr;gap:18px;padding:15px 0;border-bottom:1px solid var(--wt-soft-line)}.profile-line dt{color:var(--wt-muted)}.profile-line dd{margin:0;overflow-wrap:anywhere;white-space:pre-wrap}.next{display:grid;gap:16px}.next .card{padding:24px}.next h2{font-size:19px;margin:0 0 8px}footer{padding:25px 6%;display:flex;justify-content:space-between;gap:20px;border-top:0;color:#fff;font-size:12px}.account-name{margin-right:16px}.loading{text-align:center;padding:80px 0}@media(max-width:720px){header{padding:16px 20px}.brand{font-size:14px}.mark{padding:13px 9px}.account-name{display:none}main{padding:35px 20px}.hero,.dashboard{grid-template-columns:1fr;gap:28px}.card,.login-card{padding:25px}.hero h1{font-size:36px}.steps{gap:7px}.steps li{font-size:12px}footer{flex-direction:column;gap:6px}.actions button{flex:1}.actions .save{width:100%;flex:auto}.profile-line{grid-template-columns:75px 1fr;gap:12px}}

#account{display:flex;align-items:center;gap:16px}.member-nav{display:flex;gap:16px;font-size:14px}.member-nav a{text-decoration:none;font-weight:650}.talent-search{display:flex;align-items:end;gap:16px;flex-wrap:wrap;margin:26px 0}.talent-search .field{margin:0;flex:1;min-width:200px}.talent-search>a{padding-bottom:15px}.talent-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px}.talent-card{display:flex;flex-direction:column;align-items:flex-start;padding:26px}.talent-card h2{margin:14px 0 0;overflow-wrap:anywhere}.talent-avatar{display:grid;place-items:center;width:60px;height:60px;background:var(--wt-cream);color:var(--wt-ink-soft);border-radius:20px;font-size:23px;font-weight:700}.profession{font-weight:600;overflow-wrap:anywhere}.bio{white-space:pre-wrap;overflow-wrap:anywhere}.talent-card .bio{display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.talent-card .skills{margin-bottom:24px}.talent-card .button{margin-top:auto;width:100%;font-size:14px}.skills{display:flex;flex-wrap:wrap;gap:7px}.talent-detail{max-width:720px;margin:24px auto}.talent-detail .talent-avatar{margin-top:22px}.talent-detail h2{margin-top:28px}.back-link{display:inline-block;margin-bottom:10px}.empty-state{grid-column:1/-1;text-align:center;padding:44px}@media(max-width:950px){.talent-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:720px){#account{flex-wrap:wrap;justify-content:flex-end;gap:8px}.member-nav{font-size:12px;gap:9px}.talent-grid{grid-template-columns:1fr}.talent-search{align-items:stretch}.talent-search button{flex:1}.talent-detail{padding:24px}.talent-search>a{align-self:center;padding:0}}

.room-tabs{display:flex;gap:12px;flex-wrap:wrap;margin:26px 0}.room-tabs .active{background:var(--wt-ink);color:white}.workspace-layout{display:grid;grid-template-columns:minmax(0,2fr) minmax(260px,1fr);gap:24px;align-items:start}.workspace-members{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin:25px 0}.workspace-member{border:1px solid var(--wt-soft-line);border-radius:18px;padding:20px;overflow-wrap:anywhere}.workspace-member h3{font-size:17px}.workspace-member p{font-size:14px}.workspace-member a{font-size:13px}.workspace-layout .notice{margin-top:24px}.workspace-layout .actions{justify-content:flex-start}@media(max-width:1000px){.workspace-members{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:720px){.workspace-layout{grid-template-columns:1fr}.workspace-members{grid-template-columns:1fr}.member-nav{flex-wrap:wrap}.workspace-layout>.card{padding:24px}}

.jobs-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px;margin-top:28px}.job-detail{margin-top:25px}.job-detail h1,.cooperation-card h2{overflow-wrap:anywhere}.job-details dd,.private-message{white-space:pre-wrap;overflow-wrap:anywhere}.job-details{margin:25px 0}.cooperation-card{margin-top:25px}.cooperation-card summary{cursor:pointer;padding:18px 0;color:var(--wt-ink-soft)}.member-nav{flex-wrap:wrap}.confirm-state{font-weight:650}@media(max-width:720px){.jobs-grid{grid-template-columns:1fr}.member-nav{max-width:190px}.job-details .profile-line{grid-template-columns:1fr;gap:4px}}

.conversation{max-width:850px;margin:24px auto}.message{padding:18px;margin:18px 0;border:1px solid var(--wt-soft-line);border-radius:14px;background:var(--wt-paper)}.message.mine{margin-left:8%;background:var(--wt-cream-hi)}.message small{display:block;color:var(--wt-muted);font-size:12px;margin-top:5px}.message p{white-space:pre-wrap;overflow-wrap:anywhere}.notice-list{display:grid;gap:20px}.notice-list .unread{border-left:4px solid var(--wt-ink)}.support-card{margin-top:20px}.policy{max-width:800px;margin:auto;line-height:1.9}.policy h2{margin-top:35px}.policy li{margin:12px 0}.member-nav{max-width:700px;gap:10px}.member-nav a{white-space:nowrap}footer nav{line-height:1.9}#message-body{min-height:120px}@media(max-width:720px){.member-nav{max-width:200px;font-size:11px}.message.mine{margin-left:4%}.conversation{padding:22px}.policy h1{font-size:30px}}

.profile-avatar{display:inline-grid;grid-template-areas:"portrait";place-items:center;width:60px;height:60px;flex-shrink:0;overflow:hidden;border-radius:20px;background:var(--wt-cream);color:var(--wt-ink-soft);font-size:23px;font-weight:700;vertical-align:middle}.profile-avatar>span,.profile-avatar>img{grid-area:portrait}.profile-avatar>img{display:block;width:100%;height:100%;object-fit:cover;z-index:1}.avatar-small{width:36px;height:36px;border-radius:50%;font-size:15px}.avatar-large{width:84px;height:84px;border-radius:26px;font-size:32px}.profile-heading,.avatar-setting{display:flex;gap:20px;align-items:center;margin:20px 0}.profile-heading h2{margin-bottom:4px}.avatar-setting>div{flex:1}.avatar-setting .hint{margin:8px 0;font-size:12px}@media(max-width:720px){.avatar-setting{align-items:flex-start;gap:14px}#account .avatar-small{width:30px;height:30px}.avatar-large{width:64px;height:64px;border-radius:20px}}

/* Personal links live behind the avatar; shared spaces stay in the header. */
#account{flex-wrap:nowrap;gap:24px}.member-nav{max-width:none;font-size:14px;gap:20px}.account-menu{position:relative;flex-shrink:0}.account-trigger{position:relative;display:flex;align-items:center;gap:6px;min-width:48px;min-height:48px;padding:4px;border:1px solid transparent;border-radius:999px;cursor:pointer;list-style:none}.account-trigger::-webkit-details-marker{display:none}.account-trigger:hover,.account-menu[open]>.account-trigger{background:var(--wt-cream-hi);border-color:var(--wt-soft-line)}.account-trigger:focus-visible{outline:3px solid var(--wt-ink);outline-offset:3px}.account-chevron{font-size:16px;color:var(--wt-muted);margin-right:4px}.account-menu[open] .account-chevron{transform:rotate(180deg)}.account-unread{position:absolute;top:4px;right:21px;width:9px;height:9px;border:2px solid white;border-radius:50%;background:var(--wt-red);z-index:2}.account-unread[hidden]{display:none}.account-panel{position:absolute;right:0;top:calc(100% + 10px);z-index:40;width:min(248px,calc(100vw - 40px));padding:10px;background:#fff;border:1px solid var(--wt-soft-line);border-radius:18px;box-shadow:0 14px 40px rgba(29,27,36,.14)}.account-greeting{margin:0 6px 6px;padding:12px 6px 16px;border-bottom:1px solid var(--wt-soft-line);overflow-wrap:anywhere;font-weight:700;color:var(--wt-ink);line-height:1.5}.account-greeting small{display:block;margin-top:4px;font-size:12px;font-weight:400;color:var(--wt-muted)}.account-panel nav{display:grid;gap:3px}.account-panel a,.account-panel button{display:flex;align-items:center;width:100%;min-height:46px;padding:12px;border:0;border-radius:10px;background:transparent;text-decoration:none;color:var(--wt-ink);font-size:15px;font-weight:550;justify-content:flex-start}.account-panel a:hover,.account-panel button:hover{background:var(--wt-cream-hi)}.account-panel #logout{margin-top:8px;border-top:1px solid var(--wt-soft-line);border-radius:0 0 10px 10px;color:var(--wt-muted)}#account .avatar-small{width:36px;height:36px}@media(max-width:720px){#account{gap:12px}.member-nav{font-size:13px;gap:12px}.brand small{letter-spacing:1.5px}}@media(max-width:520px){header{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:16px;padding:16px 20px}.brand{grid-column:1;grid-row:1}#account{display:contents}.account-menu{grid-column:2;grid-row:1;justify-self:end}.member-nav{grid-column:1/-1;grid-row:2;width:100%;justify-content:space-between;gap:12px;font-size:14px}.account-panel{top:calc(100% + 8px)}}

/* Mobile app navigation: one shared DOM keeps links, auth and unread state in sync. */
.tab-icon,.mobile-account-label,.account-panel .mobile-policy-links{display:none}.member-nav a[aria-current="page"]{color:var(--wt-ink);text-decoration:underline;text-underline-offset:7px}
@media(max-width:720px){
 body.has-mobile-tabs{--mobile-bar-height:68px;padding-bottom:calc(var(--mobile-bar-height) + env(safe-area-inset-bottom,0px));scroll-padding-bottom:calc(var(--mobile-bar-height) + env(safe-area-inset-bottom,0px) + 20px)}
 .has-mobile-tabs>header{position:sticky;top:0;z-index:30;display:flex;justify-content:flex-start;gap:0;padding:calc(12px + env(safe-area-inset-top,0px)) 20px 12px;background:#fff}
 .has-mobile-tabs>header .brand{font-size:14px;gap:10px}.has-mobile-tabs>header .mark{padding:10px 9px;border-radius:13px}.has-mobile-tabs>header .brand small{font-size:9px;letter-spacing:1.5px}
 .has-mobile-tabs #account{position:fixed;inset:auto 0 0;z-index:50;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));align-items:stretch;gap:0;min-height:calc(var(--mobile-bar-height) + env(safe-area-inset-bottom,0px));padding:5px max(8px,env(safe-area-inset-right,0px)) calc(5px + env(safe-area-inset-bottom,0px)) max(8px,env(safe-area-inset-left,0px));background:#fffffff5;border-top:1px solid var(--wt-soft-line);box-shadow:0 -4px 24px rgba(29,27,36,.03);backdrop-filter:blur(16px)}
 .has-mobile-tabs .member-nav{display:contents}
 .has-mobile-tabs .member-nav a,.has-mobile-tabs .account-trigger{display:flex;flex-direction:column;justify-content:center;align-items:center;gap:4px;min-width:0;min-height:58px;width:100%;padding:6px 2px;border:0;border-radius:12px;text-align:center;text-decoration:none;font-size:11px;line-height:1.3;font-weight:600;color:var(--wt-muted);background:transparent;white-space:nowrap}
 .has-mobile-tabs .tab-icon{display:block;width:24px;height:24px}
 .has-mobile-tabs .member-nav a[aria-current="page"],.has-mobile-tabs .account-menu[data-active="true"]>.account-trigger,.has-mobile-tabs .account-menu[open]>.account-trigger{background:var(--wt-cream-hi);color:var(--wt-ink)}
 .has-mobile-tabs .member-nav a:hover,.has-mobile-tabs .account-trigger:hover{background:var(--wt-cream-hi)}
 .has-mobile-tabs .account-menu{position:relative;grid-column:4;grid-row:1;justify-self:stretch}
 .has-mobile-tabs .mobile-account-label{display:block}.has-mobile-tabs .account-chevron{display:none}.has-mobile-tabs #account .avatar-small{width:24px;height:24px;font-size:12px}
 .has-mobile-tabs .account-unread{top:5px;right:calc(50% - 17px)}
 .has-mobile-tabs .account-panel{position:fixed;left:12px;right:12px;top:auto;bottom:calc(var(--mobile-bar-height) + env(safe-area-inset-bottom,0px) + 10px);width:auto;max-width:420px;margin-left:auto;max-height:calc(100vh - var(--mobile-bar-height) - env(safe-area-inset-bottom,0px) - env(safe-area-inset-top,0px) - 100px);max-height:calc(100dvh - var(--mobile-bar-height) - env(safe-area-inset-bottom,0px) - env(safe-area-inset-top,0px) - 100px);overflow-y:auto;overscroll-behavior:contain;padding:12px;border-radius:22px;box-shadow:0 -8px 40px rgba(29,27,36,.13)}
 .has-mobile-tabs .account-panel .mobile-policy-links{display:grid;grid-template-columns:1fr 1fr;border-top:1px solid var(--wt-soft-line);margin-top:6px;padding-top:8px}.has-mobile-tabs .mobile-policy-links a{min-height:42px;font-size:12px;color:var(--wt-muted)}
 .has-mobile-tabs>main{padding-top:28px;padding-bottom:32px;min-height:calc(100dvh - 160px);scroll-margin-bottom:90px}.has-mobile-tabs>footer{display:none}
 .has-mobile-tabs :is(input,textarea,select,button,a){scroll-margin-bottom:calc(var(--mobile-bar-height) + env(safe-area-inset-bottom,0px) + 24px)}
}

/* Mobile Me is a real page; the desktop disclosure remains separate. */
.mobile-me-link{display:none}.personal-center{max-width:640px;margin:auto}.personal-center>h1{font-size:30px;margin-bottom:24px}.personal-identity{display:flex;gap:18px;align-items:center;margin:0 0 28px}.personal-identity>div{min-width:0}.personal-identity h2{margin:0;font-size:24px;overflow-wrap:anywhere}.personal-identity p{margin:4px 0;overflow-wrap:anywhere}.personal-links.card{padding:4px 20px}.personal-links a{display:flex;justify-content:space-between;align-items:center;gap:16px;min-height:82px;padding:16px 0;text-decoration:none;border-bottom:1px solid var(--wt-soft-line)}.personal-links a:last-child{border-bottom:0}.personal-links strong{display:block;font-size:17px}.personal-links small{display:block;margin-top:5px;font-size:13px;color:var(--wt-muted)}.personal-links a>span:last-child{font-size:24px;color:var(--wt-muted)}.personal-links a:hover{color:var(--wt-ink-soft)}.personal-help.card{display:grid;grid-template-columns:1fr 1fr;gap:4px;padding:10px 16px;margin:18px 0}.personal-help a{padding:12px 4px;min-height:44px;text-decoration:none;font-size:14px;color:var(--wt-muted)}.personal-help a:hover{text-decoration:underline}.personal-logout{width:100%;margin-bottom:8px}
@media(max-width:720px){.has-mobile-tabs .account-menu{display:none}.has-mobile-tabs .mobile-me-link{position:relative;grid-column:4;grid-row:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;min-height:58px;padding:6px 2px;border-radius:12px;text-decoration:none;font-size:11px;line-height:1.3;font-weight:600;color:var(--wt-muted)}.has-mobile-tabs .mobile-me-link[aria-current="page"]{background:var(--wt-cream-hi);color:var(--wt-ink)}.has-mobile-tabs .mobile-me-link:hover{background:var(--wt-cream-hi)}.personal-center>h1{font-size:28px}.personal-links.card{padding:4px 18px}.personal-identity h2{font-size:22px}}

/* Mobile reading mode: no top header, scroll-responsive bottom navigation. */
@media(max-width:720px){
 .has-mobile-tabs>header{display:contents;position:static;padding:0;border:0;background:none}
 .has-mobile-tabs>header .brand{display:none}
 .has-mobile-tabs>main{padding-top:calc(24px + env(safe-area-inset-top,0px));min-height:calc(100dvh - var(--mobile-bar-height) - env(safe-area-inset-bottom,0px))}
 .has-mobile-tabs #account{transform:translateY(0);transition:transform 180ms ease-out}
 .has-mobile-tabs.mobile-nav-hidden #account{transform:translateY(calc(100% + 12px));pointer-events:none}
}
@media(prefers-reduced-motion:reduce){.has-mobile-tabs #account{transition:none}}

/* Workspace status controls move into a native mobile bottom sheet. */
.rhythm-trigger,.rhythm-close,.rhythm-handle{display:none}.rhythm-heading{display:flex;align-items:center;justify-content:space-between;gap:16px}.rhythm-heading h2{margin:0}.rhythm-feedback{font-size:13px;color:var(--wt-ink-soft);line-height:1.6}.rhythm-feedback:empty,#rhythm-presence-note:empty{display:none}.rhythm-dialog{padding:0;border:0;background:#fff;color:var(--wt-ink)}.rhythm-dialog:not([open]){display:none}.rhythm-dialog::backdrop{background:rgba(13,31,77,.55)}.rhythm-sheet-open,.rhythm-sheet-open body{overflow:hidden}
@media(max-width:720px){
 .rhythm-trigger{display:flex;align-items:center;justify-content:space-between;gap:16px;width:100%;margin:-8px 0 20px;padding:14px 18px;text-align:left;border-radius:16px;background:var(--wt-cream-hi);border-color:var(--wt-soft-line)}.rhythm-trigger>span:first-child{min-width:0}.rhythm-trigger strong{display:block;font-size:15px}.rhythm-trigger small{display:block;margin-top:4px;color:var(--wt-muted);font-size:12px;font-weight:400;line-height:1.6;white-space:normal}.rhythm-trigger>span:last-child{font-size:24px}
 .rhythm-dialog[open]{position:fixed;inset:auto 0 0;margin:0;width:100%;max-width:none;max-height:85vh;max-height:85dvh;overflow-y:auto;overscroll-behavior:contain;border-radius:24px 24px 0 0;box-shadow:0 -12px 48px rgba(29,27,36,.14);animation:rhythm-rise 200ms ease-out}
 .rhythm-dialog .rhythm-panel{border:0;border-radius:0;padding:12px 24px calc(24px + env(safe-area-inset-bottom,0px));box-shadow:none}
 .rhythm-handle{display:block;width:36px;height:4px;margin:0 auto 14px;border-radius:99px;background:var(--wt-cream)}.rhythm-heading h2{font-size:23px}.rhythm-close{display:flex;flex-shrink:0;width:44px;height:44px;padding:0;border:0;border-radius:50%;font-size:26px;background:var(--wt-cream-hi);color:var(--wt-muted)}
 .rhythm-sheet-open #account{visibility:hidden}
}
@keyframes rhythm-rise{from{transform:translateY(100%)}to{transform:translateY(0)}}
@media(prefers-reduced-motion:reduce){.rhythm-dialog[open]{animation:none}}

/* Space chat keeps the mobile navigation and shared status sheet intact. */
.space-chat{border-top:1px solid var(--wt-soft-line);margin-top:24px;padding-top:24px;min-width:0}.chat-heading{display:flex;justify-content:space-between;gap:12px;align-items:center}.chat-heading h2{font-size:23px;margin:8px 0}.chat-heading .badge:empty{display:none}.chat-options{border:1px solid var(--wt-soft-line);border-radius:12px;padding:14px 16px;margin:18px 0}.chat-options summary,.chat-presence-details>summary{cursor:pointer;font-weight:650;min-height:32px}.chat-options .field{margin:12px 0}.chat-history-actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin:16px 0}.chat-history-actions button{font-size:13px;padding:8px 12px;min-height:40px}.chat-messages{height:340px;overflow-y:auto;overscroll-behavior:contain;border:1px solid var(--wt-soft-line);border-radius:16px;padding:14px;background:var(--wt-paper);scrollbar-gutter:stable}.chat-message{padding:14px;border:1px solid var(--wt-soft-line);border-radius:14px;background:white;margin:0 20px 12px 0;overflow-wrap:anywhere}.chat-message.mine{margin:0 0 12px 20px;background:var(--wt-cream-hi)}.chat-message>div{display:flex;align-items:baseline;gap:8px;flex-wrap:wrap}.chat-message time{font-size:11px;color:var(--wt-muted)}.chat-message p{margin:8px 0;white-space:pre-wrap;line-height:1.7;font-size:15px}.chat-message .chat-mentions{font-weight:650;color:var(--wt-ink-soft)}.chat-empty{text-align:center;padding:48px 12px}.chat-membership{display:flex;align-items:center;gap:12px;margin:16px 0}.chat-membership p{margin:0;flex:1}.chat-membership button{font-size:13px;flex-shrink:0;padding:8px 12px;min-height:42px}.chat-compose-actions{display:flex;justify-content:space-between;gap:10px;margin:12px 0}.chat-compose-actions button{font-size:14px}.chat-tags{display:flex;gap:6px;flex-wrap:wrap;margin-top:8px}.chat-tags button{font-size:12px;min-height:36px;padding:6px 10px}.chat-presence-details{margin-top:28px;border-top:1px solid var(--wt-soft-line);padding-top:20px}.chat-toast{position:fixed;right:24px;bottom:24px;z-index:35;width:min(360px,calc(100vw - 32px));padding:18px;background:white;border:1px solid var(--wt-soft-line);border-radius:18px;box-shadow:0 8px 32px rgba(29,27,36,.15)}.chat-toast p{margin:0}.chat-toast .actions{margin-top:12px}.chat-toast button,.chat-toast .button{min-height:40px;padding:8px 12px;font-size:13px}.space-chat [hidden],.chat-toast[hidden]{display:none!important}
@media(max-width:720px){.chat-messages{height:310px;padding:10px}.chat-heading h2{font-size:21px}.chat-membership{align-items:flex-start}.chat-toast{right:16px;bottom:calc(var(--mobile-bar-height,76px) + env(safe-area-inset-bottom,0px) + 14px)}.space-chat textarea{font-size:16px;scroll-margin-bottom:160px}.chat-presence-details .workspace-members{grid-template-columns:1fr}}

/* Shared controls below the banner; people left, conversation right. */
.workspace-banner h1{margin-top:12px}.workspace-controls{display:flex;align-items:flex-start;gap:16px;margin:24px 0}.workspace-controls>.rhythm-trigger{display:flex;align-items:center;justify-content:space-between;gap:16px;width:auto;flex:1;margin:0;padding:14px 18px;text-align:left;background:var(--wt-cream-hi);border-color:var(--wt-soft-line);border-radius:16px}.workspace-controls .rhythm-trigger strong,.workspace-controls .rhythm-trigger small{display:block}.workspace-controls .rhythm-trigger small{margin-top:4px;font-size:12px;font-weight:400;color:var(--wt-muted);white-space:normal}.workspace-controls>#chat-settings-host{flex:1;min-width:0}.workspace-controls .chat-options{margin:0;background:white;border-radius:16px;padding:16px 18px}.workspace-controls .chat-options summary{display:list-item;min-height:24px;line-height:1.7}.workspace-controls .chat-options[open]{padding-bottom:20px}.workspace-chat-layout{grid-template-columns:minmax(0,.9fr) minmax(0,1.25fr);gap:24px}.workspace-chat-layout .room-tabs{margin:0 0 24px;gap:8px}.workspace-chat-layout .room-tabs button{padding:10px 12px;font-size:13px}.workspace-chat-layout .workspace-members{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.workspace-chat-layout .workspace-member{padding:16px}.workspace-chat-layout .card{padding:26px}.chat-panel .space-chat{border:0;margin:0;padding:0}.chat-panel .chat-messages{height:clamp(320px,42vh,520px)}.chat-panel .chat-heading h2{margin-top:8px}.chat-open-trigger,.chat-sheet-toolbar{display:none}.rhythm-dialog{border-radius:24px;width:min(520px,calc(100vw - 32px));max-height:85dvh;overflow-y:auto}.rhythm-dialog .rhythm-panel{border:0;box-shadow:none}.rhythm-close{display:flex;align-items:center;justify-content:center;width:44px;height:44px;padding:0;border:0;border-radius:50%;font-size:26px;background:var(--wt-cream-hi)}.chat-dialog{padding:0;border:0;color:var(--wt-ink);background:white}.chat-dialog:not([open]){display:none}.chat-dialog::backdrop{background:rgba(13,31,77,.55)}#chat-open-unread:empty{display:none}
@media(min-width:721px) and (max-width:1000px){.workspace-chat-layout .workspace-members{grid-template-columns:1fr}.workspace-chat-layout{grid-template-columns:minmax(0,.85fr) minmax(0,1.2fr);gap:18px}.workspace-chat-layout .card{padding:20px}}
@media(max-width:720px){
 .workspace-controls{flex-direction:column;gap:12px;margin:20px 0}.workspace-controls>.rhythm-trigger,.workspace-controls>#chat-settings-host{width:100%;flex:auto}.workspace-chat-layout{display:block}.workspace-chat-layout .workspace-members{grid-template-columns:1fr}.workspace-chat-layout .card{padding:24px}#chat-desktop-slot{display:none}
 .chat-open-trigger{display:flex;align-items:center;justify-content:space-between;gap:10px;width:100%;margin:20px 0 28px;text-align:left;padding:16px 18px;border-radius:16px}.chat-open-trigger>span:first-child{min-width:0}.chat-open-trigger strong,.chat-open-trigger small{display:block}.chat-open-trigger small{font-size:12px;font-weight:400;color:var(--wt-cream);margin-top:5px}.chat-open-trigger .badge{flex-shrink:0;font-size:11px}
 .chat-dialog[open]{position:fixed;inset:auto 0 0;margin:0;width:100%;max-width:none;max-height:92vh;max-height:92dvh;overflow-y:auto;overscroll-behavior:contain;border-radius:24px 24px 0 0;box-shadow:0 -12px 48px rgba(29,27,36,.14);animation:rhythm-rise 200ms ease-out}.chat-dialog .chat-panel{border:0;border-radius:0;padding:8px 20px calc(20px + env(safe-area-inset-bottom,0px));box-shadow:none}.chat-sheet-toolbar{display:flex;align-items:center;justify-content:flex-end;position:sticky;top:0;z-index:1;background:white;padding:5px 0}.chat-sheet-handle{position:absolute;top:7px;left:calc(50% - 18px);width:36px;height:4px;border-radius:99px;background:var(--wt-cream)}.chat-sheet-toolbar button{width:42px;height:42px;min-height:42px;padding:0;border:0;border-radius:50%;font-size:26px;background:var(--wt-cream-hi)}.chat-dialog .chat-messages{height:clamp(160px,32dvh,320px)}.chat-dialog textarea{min-height:86px;scroll-margin-bottom:20px}.chat-dialog :is(button,a,input,select){scroll-margin-bottom:20px}.chat-dialog .chat-heading h2{font-size:22px}.chat-dialog .chat-membership{margin:12px 0}
}
@media(prefers-reduced-motion:reduce){.chat-dialog[open]{animation:none}}
@media(max-width:480px){.brand .slogan{display:none}}
/* v2 M1.3: character portrait inside the text-avatar shell; the initial stays underneath until the image is ready */
.profile-avatar[data-portrait=ready]>span{visibility:hidden}

/* v2 M1.4: character maker (world/maker.mjs) as a modal dialog; turntable left/top, part tray right/bottom, fixed action row. */
.sr-only,.maker-sr{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}
.maker-open,.maker-open body{overflow:hidden}
.maker-dialog{--mk-ink:var(--wt-ink);--mk-soft:var(--wt-ink-soft);--mk-muted:var(--wt-muted);--mk-paper:var(--wt-paper);--mk-cream:var(--wt-cream);--mk-sun:var(--wt-yellow);--mk-line:var(--wt-soft-line);--mk-focus:var(--wt-ink);padding:0;border:1px solid var(--wt-soft-line);border-radius:24px;width:min(1080px,calc(100vw - 32px));height:min(720px,calc(100vh - 32px));height:min(720px,calc(100dvh - 32px));max-width:none;max-height:none;overflow:hidden;color:var(--mk-ink);background:radial-gradient(120% 90% at 32% 42%,var(--wt-yellow-soft),var(--wt-yellow-soft));box-shadow:0 12px 36px rgba(29,27,36,.18)}
.maker-dialog:not([open]){display:none}
.maker-dialog::backdrop{background:rgba(13,31,77,.55)}
.maker-dialog [hidden]{display:none!important}
.maker-dialog :focus-visible{outline:3px solid var(--mk-focus);outline-offset:2px}
.maker-shell{display:grid;grid-template-columns:minmax(0,1fr) minmax(340px,440px);grid-template-rows:auto minmax(0,1fr);height:100%}
.maker-head{grid-column:1;grid-row:1;display:flex;align-items:flex-start;justify-content:space-between;gap:16px;padding:22px 20px 0 28px}
.maker-head h2{margin:0 0 6px;font-size:clamp(24px,2.6vw,32px);line-height:1.3;font-weight:700;color:var(--mk-ink)}
.maker-desc{margin:0;max-width:420px;color:var(--mk-soft);font-size:14px;line-height:1.7}
.maker-dialog .maker-x{flex-shrink:0;display:grid;place-items:center;width:44px;height:44px;min-height:44px;padding:0;border:1.5px solid var(--mk-ink);border-radius:50%;background:var(--mk-paper);color:var(--mk-ink);font-size:26px;line-height:1;font-weight:400}
.maker-dialog .maker-x:hover{background:var(--wt-yellow-soft)}
.maker-stage{grid-column:1;grid-row:2;position:relative;min-height:0;overflow:hidden}
.maker-canvas{position:absolute;inset:0;width:100%;height:100%;display:block;touch-action:none;cursor:grab;outline-offset:-3px}
.maker-canvas:active{cursor:grabbing}
.maker-note{position:absolute;left:50%;top:44%;transform:translate(-50%,-50%);width:max-content;max-width:min(420px,84%);margin:0;padding:14px 18px;border-radius:16px;background:rgba(255,253,247,.9);color:var(--mk-ink);text-align:center;font-size:15px;line-height:1.7}
.maker-stage-tools{position:absolute;left:20px;bottom:16px;display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.maker-seg{display:inline-flex;padding:3px;border:1.5px solid var(--mk-ink);border-radius:999px;background:var(--mk-paper)}
.maker-dialog .maker-seg button{min-width:64px;min-height:44px;padding:4px 16px;border:0;border-radius:999px;background:transparent;color:var(--mk-ink);font-weight:500}
.maker-dialog .maker-seg button:hover{background:var(--mk-cream)}
.maker-dialog .maker-seg button[aria-pressed=true]{background:var(--mk-ink);color:var(--mk-paper);font-weight:700}
.maker-drag-hint{padding:4px 10px;border-radius:999px;background:rgba(255,253,247,.75);color:var(--mk-soft);font-size:13px}
.maker-panel{grid-column:2;grid-row:1/3;display:flex;flex-direction:column;min-height:0;margin:16px 16px 16px 0;overflow:hidden;background:var(--mk-paper);border:1px solid var(--wt-soft-line);border-radius:22px;box-shadow:0 6px 18px rgba(29,27,36,.1)}
.maker-tabs{display:flex;flex-shrink:0;gap:6px;padding:10px 10px 8px;overflow-x:auto;border-bottom:2px solid var(--mk-line);scrollbar-width:thin}
.maker-dialog .mk-tab{flex-shrink:0;min-width:56px;min-height:44px;padding:6px 12px;border:2px solid transparent;border-radius:14px;background:transparent;color:var(--mk-soft);font-size:14px;font-weight:500}
.maker-dialog .mk-tab:hover{background:var(--mk-cream)}
.maker-dialog .mk-tab[aria-selected=true]{border-color:var(--mk-ink);background:var(--mk-sun);color:var(--mk-ink);font-weight:700;box-shadow:0 3px 0 var(--mk-ink)}
.maker-body{display:flex;flex:1;flex-direction:column;gap:18px;min-height:0;padding:14px 16px 18px;overflow-y:auto;overscroll-behavior:contain}
.maker-sec h3{margin:0 0 8px;font-size:14px;letter-spacing:.06em;color:var(--mk-muted)}
.maker-tiles{display:grid;grid-template-columns:repeat(auto-fill,minmax(76px,1fr));gap:8px}
.maker-dialog .mk-tile{display:flex;flex-direction:column;align-items:center;gap:2px;min-height:44px;padding:4px 4px 6px;border:2px solid var(--mk-line);border-radius:14px;background:#fff;color:var(--mk-soft);font-size:12px;font-weight:500}
.maker-dialog .mk-tile:hover{background:var(--wt-paper)}
.maker-dialog .mk-tile[aria-pressed=true]{border-color:var(--mk-ink);background:var(--wt-yellow-soft);color:var(--mk-ink);box-shadow:0 3px 0 var(--mk-ink)}
.mk-tile-art{display:block;width:100%;aspect-ratio:1/1;overflow:hidden;border-radius:10px;background:var(--mk-cream)}
.mk-tile-art.wide{aspect-ratio:4/3}
.mk-tile-art canvas,.mk-tile-art img{display:block;width:100%;height:100%;object-fit:contain}
.mk-tile-art img{opacity:0}.mk-tile-art.is-ready img{opacity:1}
.maker-swatches{display:flex;flex-wrap:wrap;gap:8px}
.maker-dialog .mk-swatch{width:44px;height:44px;min-height:44px;padding:0;border:3px solid #fff;border-radius:50%;box-shadow:0 0 0 2px var(--mk-line)}
.maker-dialog .mk-swatch:hover{filter:brightness(1.06)}
.maker-dialog .mk-swatch[aria-pressed=true]{box-shadow:0 0 0 3px var(--mk-ink),0 3px 0 3px var(--mk-ink)}
.mk-range{display:grid;grid-template-columns:44px minmax(0,1fr) 48px;align-items:center;gap:10px;margin:0;font-size:14px;font-weight:500}
.mk-range-val{text-align:right;font-variant-numeric:tabular-nums;color:var(--mk-soft)}
.maker-dialog input[type=range]{width:100%;min-height:44px;padding:0;border:0;background:transparent;accent-color:var(--mk-ink)}
.mk-toggle{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:48px;margin:0;padding:10px 12px;border-radius:14px;background:var(--mk-cream);font-size:14px;font-weight:500;cursor:pointer}
.maker-dialog .mk-switch{position:relative;flex-shrink:0;width:48px;min-height:0;height:28px;padding:0;appearance:none;-webkit-appearance:none;border:2px solid var(--mk-ink);border-radius:14px;background:var(--wt-cream);cursor:pointer}
.mk-switch::after{content:"";position:absolute;top:2px;left:2px;width:20px;height:20px;border:2px solid var(--mk-ink);border-radius:50%;background:#fff}
.mk-switch:checked{background:var(--wt-green)}.mk-switch:checked::after{transform:translateX(20px)}
.maker-error{margin:0 14px 10px;padding:10px 14px;border-radius:12px;background:var(--wt-red-soft);color:var(--wt-red-text);font-size:14px;line-height:1.6}.maker-error:empty{display:none}
.maker-actions{display:flex;flex-shrink:0;flex-wrap:wrap;align-items:center;gap:10px;padding:12px 14px;border-top:2px solid var(--mk-line);background:var(--mk-cream)}
.maker-grow{flex:1;min-width:0}
.maker-dialog .mk-btn{min-height:44px;padding:8px 16px;border:1.5px solid var(--mk-ink);border-radius:999px;background:var(--mk-paper);color:var(--mk-ink);font-size:15px;font-weight:500;white-space:nowrap}
.maker-dialog .mk-btn:hover:not(:disabled){background:var(--wt-yellow-soft)}
.maker-dialog .mk-btn.mk-text{padding:8px 10px;border-color:transparent;background:transparent;text-decoration:underline;text-underline-offset:3px}
.maker-dialog .mk-btn.mk-primary{border-width:2px;background:var(--mk-sun);font-weight:700;box-shadow:0 2px 0 var(--mk-ink)}
.maker-dialog .mk-btn.mk-primary:hover:not(:disabled){background:var(--wt-yellow)}
.maker-dialog .mk-btn:disabled{opacity:.55;cursor:wait}
.maker-dialog.is-degraded{height:fit-content;max-height:calc(100vh - 32px)}
.maker-dialog.is-degraded .maker-shell{display:flex;flex-direction:column;height:auto}
.maker-dialog.is-degraded .maker-head{padding-bottom:8px}
.maker-dialog.is-degraded .maker-stage{flex:1 1 auto;min-height:0;padding:12px 24px 20px;overflow:visible}
.maker-dialog.is-degraded .maker-note{position:static;transform:none;width:auto;max-width:none;margin:0;background:rgba(255,253,247,.9)}
.maker-dialog.is-degraded .maker-panel{margin:0 16px 16px}
@media(max-width:720px){
 .maker-dialog,.maker-dialog.is-degraded{width:100%;height:100vh;height:100dvh;max-height:none;border:0;border-radius:0}
 .maker-shell{grid-template-columns:minmax(0,1fr);grid-template-rows:auto minmax(0,1fr) 54vh;grid-template-rows:auto minmax(0,1fr) 54dvh}
 .maker-dialog.is-degraded .maker-shell{height:100%}
 .maker-dialog.is-degraded .maker-stage{padding-top:16px}
 .maker-head{align-items:center;padding:calc(10px + env(safe-area-inset-top,0px)) 12px 0 18px}
 .maker-head h2{margin:0;font-size:22px}
 .maker-desc{position:absolute;width:1px;height:1px;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
 .maker-panel{grid-column:1;grid-row:3;margin:0;border-width:1px 0 0;border-radius:22px 22px 0 0;box-shadow:0 -8px 24px rgba(29,27,36,.14)}
 .maker-stage-tools{left:12px;bottom:12px}
 .maker-drag-hint{display:none}
 .maker-actions{padding-bottom:calc(12px + env(safe-area-inset-bottom,0px))}
 .maker-dialog.is-degraded .maker-panel{grid-row:auto;margin:0 12px calc(12px + env(safe-area-inset-bottom,0px));border-width:1px;border-radius:22px}
}

/* v2 M1.4: /me character block, card-avatar choice and the one-time question after the first confirmation. */
.me-section{margin:18px 0;padding:26px}
.me-section>h2{margin:0 0 14px;font-size:20px}
.me-prompt{margin:0 0 18px;padding:22px 24px;background:var(--wt-yellow-soft);border-color:var(--wt-ink)}
.me-prompt h2{margin:0 0 6px;font-size:19px}.me-prompt p{margin:0 0 14px}
.me-character-row{display:flex;align-items:center;gap:18px;margin:8px 0 22px}
.me-character-row>div{min-width:0}.me-character-row p{margin:0 0 12px}
.me-card-avatar{padding-top:20px;border-top:1px solid var(--wt-soft-line)}
.me-card-avatar h3{margin:0 0 4px;font-size:17px}.me-card-avatar>.hint{margin:0 0 4px}
.me-radios{display:grid;gap:8px;min-width:0;margin:14px 0 0;padding:0;border:0}
.me-radio{display:flex;align-items:flex-start;gap:12px;min-height:52px;margin:0;padding:12px 14px;border:1px solid var(--wt-soft-line);border-radius:14px;font-weight:450;cursor:pointer}
.me-radio input{flex-shrink:0;width:22px;min-height:22px;margin:2px 0 0;padding:0;accent-color:var(--wt-ink)}
.me-radio strong{display:block}.me-radio small{display:block;margin-top:2px;color:var(--wt-muted);font-size:13px;line-height:1.6}
.me-radio:hover{background:var(--wt-paper)}
.me-card-avatar .error:empty,.me-card-avatar .rhythm-feedback:empty{display:none}
.avatar-setting-link{margin:0 0 8px}
.ask-dialog{padding:0;border:0;border-radius:24px;width:min(460px,calc(100vw - 32px));max-height:calc(100dvh - 32px);overflow-y:auto;background:#fff;color:var(--wt-ink);box-shadow:0 12px 36px rgba(29,27,36,.18)}
.ask-dialog:not([open]){display:none}
.ask-dialog::backdrop{background:rgba(13,31,77,.55)}
.ask-panel{padding:26px 24px 24px}
.ask-panel h2{margin:0 0 8px;font-size:22px}.ask-panel p{margin:0 0 10px}
.ask-options{display:grid;gap:10px;margin-top:14px}
.ask-option{justify-content:flex-start;gap:14px;min-height:64px;padding:12px 16px;border-radius:16px;text-align:left}
.ask-option strong,.ask-option small{display:block}.ask-option small{margin-top:2px;font-size:13px;font-weight:400}
.ask-option .avatar-large{width:52px;height:52px;border-radius:16px;font-size:22px}
@media(max-width:720px){
 .me-section{padding:22px 18px}.me-character-row{align-items:flex-start;gap:14px}
 .ask-dialog[open]{position:fixed;inset:auto 0 0;margin:0;width:100%;max-width:none;border-radius:24px 24px 0 0;box-shadow:0 -12px 48px rgba(29,27,36,.24)}
 .ask-panel{padding:24px 20px calc(20px + env(safe-area-inset-bottom,0px))}
}

/* v2 M2.2b: the 3D workspace page is one full-screen stage (no page scroll); the list mode keeps the normal page and only adds a mode bar.
   Desktop hides the site header and footer (the HUD carries the brand, entries and the avatar menu). Phones keep the header element as is,
   because the fixed bottom navigation lives inside it: it stays visible on this page and never collapses (mobile-navigation.mjs skips it). */
body.world-page{overflow:hidden}
body.world-page>main{max-width:none;margin:0;padding:0;min-height:0;height:100vh;height:100dvh;position:relative;overflow:hidden}
@media(min-width:721px){body.world-page>header,body.world-page>footer{display:none}}
@media(max-width:720px){body.world-page.has-mobile-tabs>main{padding:0;min-height:0;height:calc(100vh - var(--mobile-bar-height) - env(safe-area-inset-bottom,0px));height:calc(100dvh - var(--mobile-bar-height) - env(safe-area-inset-bottom,0px))}body.world-page.has-mobile-tabs #account,body.world-page.has-mobile-tabs.mobile-nav-hidden #account{transform:none;pointer-events:auto}}
.world-mode-bar{display:flex;align-items:center;justify-content:flex-end;gap:14px;flex-wrap:wrap;margin:0 0 24px;padding:12px 18px;border:1px solid var(--wt-soft-line);border-radius:16px;background:var(--wt-cream-hi)}
.world-mode-bar p{flex:1;min-width:200px;margin:0;line-height:1.6;color:var(--wt-ink-soft);font-weight:600}.world-mode-bar .world-mode-hint{font-weight:400}

/* v2 M2.3A: the chat of the 3D page (world/chat-dock.mjs). The dock is a sibling of the HUD stage, so the site's own button / card / chat styles
   keep applying; only placement is defined here. Desktop: fixed 340px column on the right (collapsed = title bar only). Phones: round chat button
   plus a bottom modal 72% high; the v1 .chat-dialog rules above give the sheet look. */
.world-chat[hidden],.world-chat-fab[hidden],.world-chat [hidden],.world-chat-dialog [hidden]{display:none!important}
.world-chat{position:absolute;z-index:12;top:calc(env(safe-area-inset-top,0px) + 76px);right:16px;bottom:16px;width:340px;display:flex;flex-direction:column;background:var(--wt-paper);border:1px solid var(--wt-soft-line);border-radius:20px;box-shadow:0 6px 18px rgba(29,27,36,.14);overflow:hidden;color:var(--wt-ink)}
.world-chat.collapsed{bottom:auto}
.world-chat-head{flex-shrink:0}
.world-chat .world-chat-toggle{width:100%;min-height:48px;padding:8px 14px;justify-content:flex-start;gap:10px;background:transparent;color:var(--wt-ink);border:0;border-radius:0;font-size:15px;font-weight:700;text-align:left}
.world-chat .world-chat-toggle:hover{background:var(--wt-cream)}
.world-chat .world-chat-toggle:focus-visible{outline:3px solid var(--wt-ink);outline-offset:-3px}
.world-chat-name{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.world-chat-unread,.world-chat-fab-badge{min-width:22px;height:22px;padding:0 6px;border-radius:11px;background:var(--wt-red);color:#fff;font-size:12px;font-weight:700;line-height:22px;text-align:center;font-variant-numeric:tabular-nums}
.world-chat-chevron{display:grid;place-items:center;width:24px;height:24px}
.world-chat-icon{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.world-chat:not(.collapsed) .world-chat-chevron .world-chat-icon{transform:rotate(180deg)}
.world-chat-body{flex:1;min-height:0;display:flex;flex-direction:column;border-top:1px solid var(--wt-soft-line)}
.world-chat-content{flex:1;min-height:0;display:flex;flex-direction:column}
.world-chat-content .chat-panel{flex:1;min-height:0;overflow-y:auto;overscroll-behavior:contain;border:0;border-radius:0;box-shadow:none;padding:12px 14px 16px;background:transparent}
.world-chat-content .space-chat{border:0;margin:0;padding:0;display:flex;flex-direction:column;min-height:100%}
.world-chat-content .chat-heading .eyebrow{display:none}
.world-chat-content .chat-heading h2{font-size:18px;margin:2px 0}
.world-chat-content .space-chat>.hint{margin:4px 0;font-size:12px;line-height:1.6}
.world-chat-content .chat-options{margin:8px 0;padding:8px 12px}
.world-chat-content .chat-history-actions{margin:8px 0}
.world-chat-content .chat-messages{flex:1 1 200px;height:auto;min-height:96px}
.world-chat-content .chat-membership{margin:10px 0}
.world-chat-content :is(button,select),.world-chat-dialog :is(button,select){min-height:44px}
.world-chat-content textarea{min-height:60px;height:64px}
.world-chat-content #chat-form .hint{margin:6px 0 0;font-size:12px;line-height:1.5}
.world-chat-content .chat-compose-actions{margin:8px 0}
.world-chat-content[data-membership=none] .chat-membership,.world-chat-content[data-membership=none] #chat-form,.world-chat-content[data-membership=out] #chat-form{display:none}
.world-chat-ask{margin:12px 14px 0;padding:12px 14px;background:var(--wt-yellow-soft);border-radius:14px}
.world-chat-ask p{margin:0}
.world-chat-ask .world-chat-ask-text{margin:0 0 10px;font-size:14px;line-height:1.6;color:var(--wt-ink)}
.world-chat-ask .world-chat-ask-error{margin:0 0 10px}
.world-chat-ask-actions{display:flex;gap:8px;flex-wrap:wrap}
.world-chat-ask-actions button{min-height:44px;padding:8px 18px;font-size:14px}
.world-chat-hall{margin:0;padding:28px 18px;text-align:center;font-size:15px;line-height:1.7;color:var(--wt-ink-soft)}
.world-chat-content .chat-sheet-toolbar{display:none}
.world-chat-fab{display:none}
@media(max-width:720px){
 .world-chat{display:none}
 .world-chat-fab{position:absolute;z-index:12;right:14px;bottom:14px;display:inline-grid;place-items:center;width:56px;height:56px;min-height:56px;padding:0;border-radius:50%;background:var(--wt-paper);color:var(--wt-ink);border:2px solid var(--wt-ink);box-shadow:0 4px 0 var(--wt-ink)}
 .world-chat-fab:hover{background:var(--wt-cream)}
 .world-chat-fab-badge{position:absolute;top:-6px;right:-6px;border:2px solid var(--wt-paper)}
 .world-chat-dialog[open]{display:flex;flex-direction:column;height:72vh;height:72dvh;max-height:72vh;max-height:72dvh;overflow:hidden;padding:0;border:0;background:#fff}
 .world-chat-dialog .world-chat-content .chat-sheet-toolbar{display:flex;flex-shrink:0}
 .world-chat-dialog .chat-sheet-toolbar{padding:6px 12px 0}
 .world-chat-dialog .chat-sheet-toolbar button{width:44px;height:44px;min-height:44px}
 .world-chat-dialog .space-chat>.hint,.world-chat-dialog .chat-heading .eyebrow{display:none}
 .world-chat-dialog .chat-heading h2{font-size:18px;margin:0 0 6px}
 .world-chat-dialog .chat-options{margin:6px 0;padding:6px 12px}
 .world-chat-dialog .chat-history-actions{margin:6px 0}
 .world-chat-dialog .chat-membership{margin:8px 0}
 .world-chat-dialog #chat-form label{font-size:14px}
 .world-chat-dialog #chat-form .hint{margin:4px 0 0;font-size:12px;line-height:1.5}
 .world-chat-dialog .chat-compose-actions{margin:8px 0}
 .world-chat-dialog .world-chat-content .chat-panel{padding:4px 16px calc(14px + env(safe-area-inset-bottom,0px))}
 .world-chat-dialog .chat-messages{flex:1 1 160px;height:auto;min-height:120px}
 .world-chat-dialog .world-chat-ask{margin:4px 16px 0}
 .world-chat-dialog .world-chat-ask-actions button{flex:1}
 .world-chat-dialog textarea{min-height:60px;height:64px}
}

/* v2 M2.3B: 3D 設定 (/me#world, docs/08 5) */
.me-legend{padding:0;margin:0 0 6px;font-weight:700;font-size:15px}
.me-setting{margin:18px 0 0}.me-setting .check{align-items:center;min-height:44px;margin:0}.me-setting .check input{width:22px;min-height:22px;margin:0}.me-setting .hint{margin:2px 0 0}
#world-settings .error:empty,#world-settings .rhythm-feedback:empty{display:none}

/* v2 M2.3B: 44 px touch targets for the v1 chat pieces that live in the 3D page's chat column and phone modal (docs/08 12); the v1 list page is unchanged */
.world-chat .chat-options>summary,.world-chat-dialog .chat-options>summary{display:flex;align-items:center;min-height:44px}
.world-chat .chat-options .check,.world-chat-dialog .chat-options .check{align-items:center;min-height:44px}
.world-chat .chat-options .check input,.world-chat-dialog .chat-options .check input{margin-top:0}
.world-chat .chat-message a.hint,.world-chat-dialog .chat-message a.hint{display:inline-flex;align-items:center;min-height:44px;min-width:44px}

/* M4.2b D2: a heading that receives the focus by script after a mode switch (tabindex -1) is not a control: no ring around it */
h1[tabindex="-1"]:focus{outline:none}

/* N1a.7 (docs/12): the visitor home page and list view (server-rendered by server/home.mjs). Only added selectors; nothing above is changed. */
.guest-home .eyebrow{display:block}
.guest-home>p:not(.view-links):not(.boot-recovery){max-width:34em}
.view-links{margin:22px 0 4px}
.view-links a{display:inline-flex;align-items:center;min-height:48px;padding:10px 20px;border:1px solid var(--wt-soft-line);border-radius:10px;background:#fff;color:var(--wt-ink);font-weight:650;text-decoration:none}
.view-links a:hover{background:var(--wt-cream-hi)}
.boot-recovery{margin:14px 0 0;font-size:13px;line-height:1.8;color:var(--wt-muted)}
.boot-recovery a{display:inline-flex;align-items:center;min-height:44px;font-weight:650}
#boot-recovery{margin-top:14px;padding:14px 16px;border-radius:12px;background:var(--wt-yellow-soft);border:1px solid var(--wt-ink)}
#boot-recovery p{margin:0;color:var(--wt-ink)}
#boot-recovery[hidden]{display:none}
#boot-recovery a{display:inline-flex;align-items:center;min-height:44px;font-weight:650}
.guest-spaces{margin:26px 0 8px}
.guest-spaces h2{font-size:18px;margin:0 0 10px}
.space-list{list-style:none;margin:0;padding:0;display:grid;gap:10px}
.space-list li{display:grid;gap:2px;padding:14px 16px;border:1px solid var(--wt-soft-line);border-radius:14px;background:#fff}
.space-list strong{font-size:16px;color:var(--wt-ink)}
.space-list span{font-size:14px;line-height:1.7;color:var(--wt-muted)}
.login-card .wp-signed-in{display:flex;flex-wrap:wrap;align-items:center;gap:8px 12px;margin:0 0 18px;padding:10px 14px;border-radius:12px;background:var(--wt-green-soft);border:1.5px solid var(--wt-green);color:var(--wt-ink);font-weight:600}
.login-card .wp-signed-in button{min-height:44px;padding:6px 16px;border-radius:999px}
[data-list-note]{margin:0 0 22px}
@media(max-width:720px){
 .view-links a{width:100%;justify-content:center}
 .space-list{gap:0;border:1px solid var(--wt-soft-line);border-radius:14px;background:#fff;overflow:hidden}
 .space-list li{padding:10px 14px;border:0;border-radius:0;background:transparent}
 .space-list li+li{border-top:1px solid var(--wt-soft-line)}
}

/* N1a.8 (docs/12): the load-failure notice of the visitor entry, and the out-of-date notice of the list page. Added selectors only. */
[data-entry-failure]{margin:0 0 22px}
.wp-load-failure{display:grid;gap:8px;justify-items:start;padding:14px 16px;border-radius:12px;background:var(--wt-yellow-soft);border:1px solid var(--wt-ink);color:var(--wt-ink)}
.wp-load-failure h2{margin:0;font-size:16px}
.wp-load-failure p{margin:0;color:inherit}
.wp-load-failure button{min-height:44px}
[data-list-update]:empty{display:none}
.wp-update{display:flex;flex-wrap:wrap;align-items:center;gap:8px 12px;margin:0 0 22px;padding:10px 14px;border-radius:12px;background:var(--wt-yellow-soft);border:1.5px solid var(--wt-ink);color:var(--wt-ink);font-weight:600}
.wp-update button{min-height:44px;padding:6px 16px;border-radius:999px}
:where(html){background:var(--wt-cobalt)}
:where(body){background:var(--wt-cobalt);min-height:100vh}
:where(h2,h3){color:var(--wt-ink)}
:where(footer) a{color:#fff}
:where(footer) a:hover{color:#fff;text-decoration-thickness:3px}
:where(footer) a:focus-visible{outline-color:var(--wt-yellow)}
/* the page body is one cream "machine" panel on the cobalt stage (never on the 3D pages) */
:where(body:not(.world-page))>main{background:var(--wt-cream);border:var(--wt-line);border-radius:var(--wt-radius-xl);box-shadow:var(--wt-shadow-lg);margin-top:32px;margin-bottom:32px}
@media(max-width:720px){:where(body:not(.world-page))>main{margin:14px 10px;border-radius:var(--wt-radius-lg)}}
/* key-cap buttons outside the 3D pages: hard shadow and a press */
:where(body:not(.world-page)) :where(.button,button){box-shadow:var(--wt-shadow-sm)}
:where(body:not(.world-page)) :where(.button,button):active{box-shadow:none;transform:translate(3px,3px)}
:where(body:not(.world-page)) :where(button:disabled,.google){box-shadow:none}
:where(input,select,textarea):focus{box-shadow:0 0 0 5px var(--wt-yellow)}
@media(prefers-reduced-motion:reduce){:where(body:not(.world-page)) :where(.button,button):active{transform:none}}
.brand-mark{display:block;width:56px;height:56px;flex:none;background:url(/brand/mark.svg) center/contain no-repeat}
.brand-text{display:flex;flex-direction:column;gap:4px}
.brand-word{display:block;width:150px;height:51px;background:url(/brand/wordmark.svg) left center/contain no-repeat}
.brand-name{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap}
.brand small{font-family:var(--wt-font-pixel);font-size:10px;letter-spacing:.08em;margin-top:0;font-weight:400}
@media(max-width:720px){.brand-mark{width:44px;height:44px}.brand-word{width:112px;height:38px}.brand small{display:none}}
.world-chat{background:var(--wt-cream);border:var(--wt-line);border-radius:22px;box-shadow:var(--wt-shadow)}
.world-chat-head{background:var(--wt-yellow);border-bottom:3px solid var(--wt-ink);border-radius:19px 19px 0 0}
.world-chat.collapsed .world-chat-head{border-bottom:0;border-radius:19px}
.world-chat .world-chat-toggle{font-family:var(--wt-font-display);font-weight:400;font-size:17px}
.world-chat .world-chat-toggle:hover{background:#ffdc5e}
.world-chat-body{border-top:0}
.world-chat-unread,.world-chat-fab-badge{background:var(--wt-pink);color:var(--wt-ink);border:2px solid var(--wt-ink)}
.world-chat-ask{border:2px dashed var(--wt-ink)}
.world-chat-hall{color:var(--wt-ink)}
.chat-messages{border:2px solid var(--wt-ink);background:var(--wt-paper)}
.chat-message{border:2px solid var(--wt-ink);border-radius:4px 14px 14px 14px}
.chat-message.mine{background:var(--wt-yellow-soft);border-radius:14px 4px 14px 14px}
.chat-options{border:2px solid var(--wt-ink);background:#fff}
.chat-toast{border:var(--wt-line);box-shadow:var(--wt-shadow)}
.world-chat-fab{background:var(--wt-pink);border:3px solid var(--wt-ink);box-shadow:3px 3px 0 var(--wt-ink)}
.world-chat-fab:hover{background:#ff8cbf}
.me-radio{border:2px solid var(--wt-ink);background:#fff}
.me-radio:has(input:checked){background:var(--wt-yellow-soft)}
@media(max-width:720px){
 .has-mobile-tabs>header{background:var(--wt-cream);border-bottom:var(--wt-line)}
 .has-mobile-tabs #account{background:var(--wt-cream);border-top:var(--wt-line);box-shadow:none;backdrop-filter:none}
 .has-mobile-tabs .member-nav a,.has-mobile-tabs .account-trigger{border:2px solid transparent;font-weight:700}
 .has-mobile-tabs .member-nav a[aria-current="page"],.has-mobile-tabs .account-menu[data-active="true"]>.account-trigger,.has-mobile-tabs .account-menu[open]>.account-trigger{background:var(--wt-yellow);border-color:var(--wt-ink);box-shadow:2px 2px 0 var(--wt-ink)}
 .has-mobile-tabs .member-nav a:hover,.has-mobile-tabs .account-trigger:hover{background:var(--wt-paper)}
 .has-mobile-tabs .mobile-me-link{border:2px solid transparent;font-weight:700;color:var(--wt-ink)}
 .has-mobile-tabs .mobile-me-link[aria-current="page"]{background:var(--wt-yellow);border-color:var(--wt-ink);box-shadow:2px 2px 0 var(--wt-ink)}
 .has-mobile-tabs .mobile-me-link:hover{background:var(--wt-paper)}
}
@media(min-width:721px){.world-chat.collapsed{top:auto;bottom:16px}}
@media(min-width:721px){
 .member-nav{gap:8px}
 .member-nav a{display:inline-flex;align-items:center;min-height:44px;padding:6px 14px;border:2px solid transparent;border-radius:12px;font-weight:800}
 .member-nav a:hover{background:var(--wt-paper);border-color:var(--wt-ink)}
 .member-nav a[aria-current="page"]{background:var(--wt-yellow);border-color:var(--wt-ink);box-shadow:2px 2px 0 var(--wt-ink);text-decoration:none}
 .account-trigger{border:2px solid var(--wt-ink);border-radius:14px;background:#fff;box-shadow:2px 2px 0 var(--wt-ink)}
 .account-trigger:hover,.account-menu[open]>.account-trigger{background:var(--wt-yellow);border-color:var(--wt-ink)}
}
.account-panel{background:var(--wt-cream);border:var(--wt-line);box-shadow:var(--wt-shadow)}
.account-panel a:hover,.account-panel button:hover{background:var(--wt-yellow)}
.account-panel #logout{border-top:2px solid var(--wt-ink)}
.view-links a{border:var(--wt-line);border-radius:var(--wt-radius);font-weight:800;box-shadow:var(--wt-shadow-sm)}
.view-links a:hover{background:var(--wt-yellow)}
.space-list li{border:2px solid var(--wt-ink)}
@media(max-width:720px){.space-list{border:2px solid var(--wt-ink)}.space-list li+li{border-top:2px solid var(--wt-ink)}}
.room-tabs .active{background:var(--wt-yellow);color:var(--wt-ink);border-color:var(--wt-ink)}
.workspace-member,.message{border:2px solid var(--wt-ink)}
.workspace-controls>.rhythm-trigger,.rhythm-trigger{border:2px solid var(--wt-ink)}
.world-mode-bar{border:2px dashed var(--wt-ink)}
.maker-panel{border:var(--wt-line)}
.chat-history-actions button{border-color:var(--wt-ink)}
.sr-only,.maker-sr,.brand-name{font-family:var(--wt-font-body)}
.hero :is(h1,h2),.loading h1{font-family:var(--wt-font-body);font-weight:800}
