:root{--desk:#f0f2ee;--ink:#182b25;--muted:#697c70;--rule:#d7dfd5;--paper:#fafbf6;--cream:#f0f2ee;--moss:#587362;--coral:#ff6043;--accent:#708d7e;--ui:var(--brand-zh,'PingFang SC'),sans-serif;--display:var(--ui);--serif:'Songti SC','STSong',Georgia,serif;--ease:cubic-bezier(.22,.8,.24,1);--layout-ease:cubic-bezier(.25,1,.5,1);--gap:14px;--radius:24px;color-scheme:light}
*{box-sizing:border-box}html{height:100%;scroll-behavior:auto;overflow:hidden}body{margin:0;height:100dvh;min-height:0;overflow:hidden;background:var(--desk);color:var(--ink);font:14px/1.6 var(--ui)}button,input,a{font:inherit}button,a{-webkit-tap-highlight-color:transparent}button{cursor:pointer;color:inherit}a{color:inherit}button:focus-visible,a:focus-visible,input:focus-visible{outline:2px solid #568b79;outline-offset:-5px}[hidden]{display:none!important}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}.icon-definitions{position:absolute;width:0;height:0;overflow:hidden}
.collage-board{width:100%;height:100dvh;max-width:2000px;margin:0 auto;padding:18px;display:grid;grid-template-rows:minmax(0,1.05fr) minmax(0,1.65fr) minmax(0,.72fr);gap:var(--gap);transition:grid-template-rows 420ms var(--layout-ease)}.collage-board[data-archive-open=true]{grid-template-rows:minmax(0,.88fr) minmax(0,1.12fr) minmax(0,1.42fr)}.collage-row{display:flex;gap:var(--gap);min-height:0;min-width:0;isolation:isolate}.collage-tile{border:0;border-radius:var(--radius);background:var(--tile-bg,#fffefa);position:relative;overflow:hidden;color:var(--ink);text-decoration:none;min-height:0;min-width:0;box-shadow:none}.collage-row>[data-fluid-tile],.discovery-row>.desk-card{flex:var(--weight,1) 1 0%;transition:flex-grow 420ms var(--layout-ease)}.collage-row>.is-expanded{flex-grow:var(--expanded-weight,1.5)}.collage-row.is-frozen>*{transition:none!important}.tile-heading{display:flex;justify-content:space-between;align-items:center;font-size:13px;font-weight:550;gap:12px}.tile-caption{font-size:12px;color:#52695d;line-height:1.7}.tile-arrow{position:absolute;right:22px;bottom:22px;display:grid;place-items:center;width:36px;height:36px;border:0;border-radius:50%;font:24px/1 system-ui}.profile-group{--weight:2.2;--expanded-weight:2.7;display:flex;gap:var(--gap);min-width:360px!important;min-height:0}.portrait-tile{--tile-bg:#00bd7f;--tile-edge:#83ceba;flex:.76;min-width:115px;display:grid;place-items:center}.portrait-tile svg{width:100%;height:100%;max-height:270px}.profile-column{flex:1.4;display:flex;flex-direction:column;gap:var(--gap);min-width:215px}.social-strip{height:43px;flex:none;display:flex;align-items:center;justify-content:space-around;padding:0 12px;background:#fafbf6}.social-strip a{font-size:12px;text-decoration:none;white-space:nowrap}.social-strip a:hover{text-decoration:underline;text-underline-offset:4px}.social-strip button{border:0;background:none;padding:0 6px;font-size:24px;line-height:1}.intro-tile{--tile-bg:#00bd7f;--tile-edge:#83ceba;flex:1;padding:22px 25px;display:flex;flex-direction:column;justify-content:center}.intro-tile h1{margin:0 0 10px;font:650 clamp(27px,2.8vw,44px)/1.1 var(--ui);letter-spacing:-1.6px;white-space:nowrap}.intro-tile h1 span{font-size:.38em;font-weight:500;letter-spacing:0;margin-left:10px}.intro-tile p{font-size:clamp(12px,1.05vw,15px);line-height:1.75;margin:0;color:#3e6558}.intro-tile>a{font-size:11px;margin-top:15px;display:flex;justify-content:space-between;text-decoration:none}.process-tile{--tile-bg:#1764f6;--tile-edge:#d5de97;--weight:1;--expanded-weight:1.35;min-width:170px!important;padding:20px 24px;display:flex;flex-direction:column}.process-tile>svg{height:0;min-height:0;flex:1;width:100%}.making-tile{--tile-bg:#ffda22;--tile-edge:#f5b99c;--weight:.9;--expanded-weight:1.25;min-width:155px!important;padding:20px 24px;display:flex;flex-direction:column}.icon-sheet{flex:1;min-height:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-template-rows:repeat(2,minmax(0,1fr));gap:4px;align-items:center;justify-items:center}.icon-sheet svg{height:100%;max-height:75px;width:100%;max-width:88px}.making-title{font-size:19px;font-weight:550;line-height:1.5}
.discovery-row{--weight:1}.desk-card{--angle:0deg;--offset:0px;--weight:1;--expanded-weight:1.45;display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,1fr);padding:0;transform:none;min-width:260px!important;background:#fafbf6;--tile-edge:#c8d6bd}.desk-card:nth-child(2n){--weight:.88;--expanded-weight:1.32;--tile-edge:#e3d4b9;grid-template-columns:minmax(0,1fr) minmax(0,1.05fr)}.card-media{display:block;overflow:hidden;min-width:0;min-height:0;background:#e1e5dd}.card-media img{height:100%;width:100%;object-fit:cover;object-position:center;display:block;transition:object-position 420ms var(--layout-ease)}.card-copy{display:flex;flex-direction:column;justify-content:center;padding:28px 26px 65px;min-height:0;min-width:0}.card-topic{font-size:11px;color:#657762;display:block;margin-bottom:17px}.card-title{font:550 clamp(20px,2.05vw,30px)/1.45 var(--ui);letter-spacing:-.65px;overflow-wrap:break-word;text-wrap:pretty}.card-summary{font-size:12px;line-height:1.8;color:#637461;margin:14px 0 0;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;opacity:.72;transition:opacity 200ms ease}.desk-card.is-expanded .card-summary{opacity:1}.card-meta{font-size:10px;display:flex;gap:12px;color:#6b7b67;position:absolute;bottom:27px;left:calc(51% + 26px)}.card-word{font:72px/1 var(--serif);display:grid;place-items:center;height:100%;color:#70927d}.desk-card.is-source,.archive-entry.is-source,.process-tile.is-source{visibility:hidden}.reader-preview>*{width:var(--source-width);height:var(--source-height);margin:0!important;min-width:0!important;pointer-events:none}.reader-preview>.desk-card{display:grid;border-radius:inherit;transform:none;box-shadow:none}.reader-preview>.archive-entry{background:#ffda22;padding:10px}.reader-preview>.process-tile{display:flex}.reader-preview .card-title{font-size:26px}
.archive-tile{--tile-bg:#ffda22;--tile-edge:#f5b99c;--weight:1.65;--expanded-weight:2;min-width:290px!important;display:flex;flex-direction:column}.archive-toggle{padding:22px 26px;width:100%;border:0;background:none;display:flex;justify-content:space-between;align-items:center;text-align:left;flex:1;min-height:82px}.archive-toggle>span:first-child{display:flex;flex-direction:column;gap:3px}.archive-kicker{font-size:11px;color:#7c7663}#archive-title{font-size:clamp(24px,2.5vw,35px);font-weight:550;letter-spacing:-1px;line-height:1.2}.archive-toggle-icon{font:30px/1 system-ui;font-weight:300;transition:transform 420ms var(--layout-ease)}[aria-expanded=true] .archive-toggle-icon{transform:rotate(45deg)}.archive-content{min-height:0;height:0;opacity:0;visibility:hidden;display:flex;flex-direction:column;padding:0 25px;transition:opacity 180ms linear,visibility 0s 420ms}.collage-board[data-archive-open=true] .archive-toggle{flex:0;padding-top:17px;padding-bottom:12px}.collage-board[data-archive-open=true] .archive-content{height:auto;flex:1;opacity:1;visibility:visible;padding-bottom:16px;transition:opacity 220ms 90ms linear,visibility 0s}.archive-tools{display:flex;align-items:center;gap:12px;flex:none;flex-wrap:wrap;padding-bottom:8px}.desk-search{flex:1;min-width:120px}.desk-search input{border:0;border-radius:8px;background:#fff9;width:100%;padding:8px 11px;font-size:12px;color:var(--ink)}.desk-filters{display:flex;gap:3px;flex-wrap:wrap}.desk-filters button{border:0;background:none;font-size:10px;padding:5px 8px;border-radius:6px;color:#7d7a6b}.desk-filters button[aria-pressed=true]{background:#fff9;color:#405d4a}.archive-entries{overflow:auto;overscroll-behavior:contain;min-height:0;scrollbar-width:thin;scrollbar-color:#d1ad92 transparent;flex:1}.archive-entry{display:flex;align-items:center;gap:13px;min-height:62px;text-decoration:none;padding:8px 0;border-radius:9px}.archive-entry:hover{background:#fff5}.archive-thumb{width:55px;height:45px;flex:none;border-radius:6px;overflow:hidden;background:#f6d9b9}.archive-thumb img{width:100%;height:100%;object-fit:cover;display:block}.archive-entry>span:nth-child(2){flex:1;min-width:0}.archive-entry strong{font-size:13px;line-height:1.5;font-weight:550;display:block}.archive-entry small{display:block;font-size:10px;color:#837c68;margin-top:3px}.archive-entry>span:last-child{padding-right:9px}.desk-empty{font-size:12px;color:#7d7662}.note-tile{--weight:1.15;--expanded-weight:1.5;--tile-bg:#fafbf6;--tile-edge:#d9dec0;min-width:190px!important;padding:20px 25px;display:flex;flex-direction:column;justify-content:space-between}.note-tile p{font:400 clamp(15px,1.45vw,21px)/1.65 var(--serif);margin:10px 0;color:#4d5f46}.note-signature{font:italic 16px Georgia,serif;align-self:flex-end;color:#6a7c60}.contact-tile{--weight:.65;--expanded-weight:.95;--tile-bg:#00bd7f;--tile-edge:#83ceba;min-width:150px!important;padding:20px 23px}.contact-tile>a{height:100%;display:flex;flex-direction:column;text-decoration:none;font-size:18px;line-height:1.4}.contact-arrow{font:clamp(36px,4.5vw,65px)/1 system-ui;margin:auto 0;align-self:flex-end}.contact-tile small{font-size:11px;color:#4c6d5f}.contact-tile [data-resume]{position:absolute;bottom:16px;right:16px;border:0;border-radius:7px;background:#e5f1e8;padding:6px 9px;font-size:11px}.desk-preferences{border:0;border-radius:20px;padding:28px;max-width:420px;background:#fffefa;color:var(--ink);box-shadow:0 16px 80px #1e332e22}.desk-preferences::backdrop{background:#263c3430}.desk-preferences h2{font-size:20px;margin:0 0 16px}.desk-preferences label{display:flex;gap:25px;align-items:center;justify-content:space-between;margin:18px 0}.desk-preferences small{display:block;color:#7b8c7f;font-size:11px;margin-top:5px}.desk-preferences input{accent-color:#689c85}.desk-preferences>button{border:0;border-radius:9px;background:#e4ede2;padding:8px 18px;float:right}
@media(min-width:1500px){.collage-board{padding:24px;--gap:18px}.profile-group{--weight:2}.intro-tile{padding:28px 32px}.card-copy{padding-left:34px;padding-right:34px}.card-meta{left:calc(51% + 34px)}}
@media(max-width:1050px){:root{--gap:10px;--radius:18px}.collage-board{padding:12px;grid-template-rows:minmax(0,1fr) minmax(0,1.8fr) minmax(0,.8fr)}.profile-group{min-width:320px!important}.portrait-tile{display:none}.process-tile,.making-tile{padding:18px;min-width:140px!important}.profile-column{min-width:200px}.intro-tile{padding:20px}.desk-card,.desk-card:nth-child(2n){grid-template-columns:minmax(0,1fr);grid-template-rows:minmax(0,1fr) auto;min-width:240px!important}.card-copy{padding:17px 21px 52px}.card-title{font-size:22px}.card-topic{margin-bottom:8px}.card-summary{display:none}.card-meta{left:21px;bottom:20px}.tile-arrow{bottom:16px;right:18px;width:30px;height:30px;font-size:21px}.note-tile{padding:17px;min-width:160px!important}.note-tile p{font-size:16px}.contact-tile{padding:17px;min-width:115px!important}.archive-tile{min-width:255px!important}.archive-toggle{padding:20px}.archive-content{padding-left:18px;padding-right:18px}.collage-board[data-archive-open=true]{grid-template-rows:minmax(0,.8fr) minmax(0,1.1fr) minmax(0,1.7fr)}}
@media(max-height:720px) and (min-width:1051px){.card-summary{display:none}.card-title{font-size:24px}.intro-tile{padding:14px 22px}.intro-tile>a{margin-top:8px}.tile-caption{font-size:11px}.process-tile,.making-tile{padding:16px 22px}.note-tile p{font-size:17px}.card-copy{padding-top:20px}.note-signature{display:none}}
@media(max-width:620px){.collage-board{padding:8px;--gap:8px;grid-template-rows:minmax(0,1fr) minmax(0,1.6fr) minmax(0,1.05fr)}.identity-row{flex-wrap:wrap}.profile-group{min-width:0!important;flex-basis:100%!important;flex-grow:2!important}.profile-column{flex-direction:row;gap:8px}.social-strip{height:auto;flex:.55;flex-direction:column;min-width:72px}.intro-tile{padding:14px;flex:2}.intro-tile h1{font-size:26px}.intro-tile p{font-size:11px}.intro-tile>a{display:none}.making-tile,.process-tile{display:none}.discovery-row{flex-direction:column}.desk-card,.desk-card:nth-child(2n){min-width:0!important;grid-template-columns:minmax(0,.7fr) minmax(0,1fr);grid-template-rows:minmax(0,1fr)}.card-title{font-size:16px;letter-spacing:-.3px}.card-copy{padding:12px 13px 35px}.card-topic{font-size:9px;margin-bottom:5px}.card-meta{font-size:8px;left:calc(41% + 14px);bottom:13px;gap:8px}.tile-arrow{right:10px;bottom:9px;width:23px;height:23px;font-size:17px}.note-tile{display:none}.contact-tile{min-width:88px!important;--weight:.55;padding:15px}.contact-tile>a{font-size:14px}.archive-tile{min-width:0!important;--weight:1.8}.archive-toggle{padding:15px}#archive-title{font-size:24px}.archive-content{padding:0 12px}.desk-filters{display:none}.archive-entry strong{font-size:11px}.archive-thumb{width:37px;height:37px}.archive-entry{gap:8px}.archive-entry small{font-size:8px}.collage-board[data-archive-open=true]{grid-template-rows:minmax(0,.75fr) minmax(0,1fr) minmax(0,1.9fr)}}
@media(prefers-reduced-motion:reduce){.collage-board,.collage-row>*,.card-summary,.archive-toggle-icon,.archive-content{transition:none!important}}body.reduced-motion .collage-board,body.reduced-motion .collage-row>*,body.reduced-motion .archive-content,body.reduced-motion .archive-toggle-icon{transition:none!important}

.reader-window{--reader-radius:20px;position:fixed;inset:0;margin:auto;width:min(1040px,calc(100vw - 92px));height:calc(100dvh - 88px);max-width:none;max-height:none;border:0;padding:0;border-radius:var(--reader-radius);color:var(--ink);background:#fff;overflow:hidden;box-shadow:0 calc(8px + 16px * var(--reader-depth,1)) calc(28px + 72px * var(--reader-depth,1)) #1e332e26,0 2px 10px #223d2b08;transform-origin:center;display:flex;flex-direction:column;outline:none;contain:layout paint}.reader-window:not([open]){display:none}.reader-window::backdrop{background:transparent;backdrop-filter:none}.reader-scrim{position:fixed;inset:0;z-index:6;pointer-events:none;background:#e7ede760;backdrop-filter:blur(4px);opacity:0}.reader-surface{position:absolute;inset:0;display:flex;flex-direction:column;transform-origin:center;opacity:1}.reader-window.is-morphing{will-change:transform}.reader-window.is-morphing .reader-surface{pointer-events:none}.reader-window.is-wide{width:calc(100vw - 36px);height:calc(100dvh - 36px)}.reader-toolbar{height:51px;min-height:51px;display:flex;align-items:center;padding:0 22px;gap:24px;position:relative;z-index:3;background:#fffffff2}.traffic-lights{display:flex;gap:8px;flex:none;align-items:center}.traffic{border:0;width:12px;height:12px;display:grid;place-items:center;border-radius:50%;text-decoration:none;font:10px/1 system-ui;padding:0;color:transparent;box-shadow:inset 0 0 0 1px #0000000d}.traffic.close{background:#fa736b}.traffic.minimize{background:#f5c75f}.traffic.zoom{background:#72c981}.traffic-lights:hover .traffic,.traffic:focus-visible{color:#3338}#reader-title{font-size:11px;color:#a0a8a2;text-overflow:ellipsis;overflow:hidden;white-space:nowrap;text-align:center;flex:1}.reader-share{border:0;background:#f4f6f3;padding:5px 10px;border-radius:7px;font-size:10px;color:#8a978f;white-space:nowrap}.reader-progress{position:absolute;bottom:0;left:0;height:1px;width:100%;background:#8ca499;transform:scaleX(var(--read-progress,0));transform-origin:left}.reader-main{flex:1;min-height:0;overflow:auto;overscroll-behavior:contain;outline:none;scrollbar-width:thin;scrollbar-color:#cdd7cf transparent;position:relative;z-index:2}.reader-post{max-width:900px;margin:0 auto;padding:15px 65px 90px;background:#fff}.reader-post .post-head{border:0;margin-bottom:28px;padding:18px 0 15px}.post-topic{font-size:11px;color:#839d8a;margin:0 0 12px}.reader-post .post-head h1{font-family:var(--serif);font-size:clamp(30px,3.2vw,44px);line-height:1.45;letter-spacing:-1px;text-wrap:balance;margin:0 0 17px}.reader-post .post-head__summary{font-size:15px;line-height:1.95;color:#8d978f;margin-bottom:20px}.reader-post .post-meta{display:flex;gap:13px;flex-wrap:wrap;color:#acb3ad;font-size:10px}.reader-post .prose{font:16px/2.05 var(--ui);color:#47544b;max-width:none}.reader-post .prose p{margin:0 0 25px}.reader-post .prose h2{font:600 27px/1.5 var(--serif);letter-spacing:-.4px;margin:58px 0 22px;color:#34463a}.reader-post .prose h3{font-size:19px;margin:36px 0 18px}.reader-post .prose a{color:#658878;text-decoration-color:#bfcfc4;text-underline-offset:4px}.reader-post .prose strong{font-weight:600;color:#3a4c3e}.reader-post .prose pre{border:0;border-radius:11px;background:#f4f7f4!important;max-width:100%;padding:20px;overflow:auto;font-size:12px;line-height:1.9;box-shadow:none}.reader-post .prose code{font-family:var(--brand-mono,monospace);font-size:.85em}.reader-post .prose p>code,.reader-post .prose li>code{background:#f0f4f0;border-radius:4px;padding:2px 5px;color:#57705f}.reader-post .prose blockquote{border:0;background:none;color:#7b8b7e;margin:30px 0;padding:8px 24px}.reader-post .prose .table-wrap{border-radius:0;border:0;background:none;overflow:auto;margin:38px 0}.reader-post .prose table{font-size:13px;width:100%;border-collapse:collapse}.reader-post .prose th,.reader-post .prose td{padding:13px 18px;text-align:left;border:0}.reader-post .prose .callout{border:0;border-radius:10px;background:#f1f6f1;padding:20px 24px;margin:30px 0;color:#68806f}.reader-post .prose .callout p:last-child{margin-bottom:0}.reader-post .prose .callout--warning{background:#faf6ee;color:#897750}.reader-post .code-block{position:relative;border:0;border-radius:12px;background:#f4f7f5;margin:34px 0}.reader-post .code-block__head{border:0;padding:12px 20px 0;background:none}.reader-post .code-block__head button{background:transparent}.reader-post [data-copy-code]{font-size:10px;border:0;border-radius:6px;background:#e4ece6;color:#718575;padding:4px 8px}.reader-end{margin-top:70px;padding-top:24px;color:#a1b0a5;display:flex;justify-content:space-between;font-size:12px}.reader-end a{color:inherit;text-decoration:none}.reader-feedback{position:absolute;bottom:20px;left:50%;transform:translateX(-50%);z-index:9;border-radius:9px;background:#ebf1ec;color:#63816b;font-size:12px;margin:0;padding:0}.reader-feedback:not(:empty){padding:7px 13px}.reader-preview{position:absolute;inset:0;pointer-events:none;z-index:4;transform-origin:0 0;display:none}.reader-preview .desk-card{transform:none;box-shadow:none;width:var(--source-width);height:var(--source-height);margin:0;pointer-events:none}.reader-window.is-morphing .reader-preview{display:block}
/* Editorial controls are ours. The original iframe contents are not reskinned. */
.reader-post .prose .content-block{border:0;border-radius:0;background:transparent;box-shadow:none;margin:48px 0;--cb-ink:#47554a;--cb-muted:#8c9b90;--cb-line:#e6ece5;--cb-soft:#eef3ed;--cb-surface:#f9fbf8}.content-block__head{font-size:13px;font-weight:550;border:0;background:transparent;color:#52665a;padding:0 0 16px}.reader-post .content-block__caption{border:0;background:none;padding:16px 0 0;font-size:12px;line-height:1.9;color:#7c8980}.reader-post .block-source-kind{border:0;padding:0;background:none;color:#5f7868}.reader-post .block-actions{border:0;background:none;gap:10px;padding:16px 0 4px}.block-actions button,.block-code summary{font-size:11px;color:#6f8877}.reader-post .block-actions button{border:0;border-radius:8px;background:#f0f4f1;padding:8px 13px}.reader-post .block-code,.reader-post .block-transcript{border:0;padding:12px 0;background:none}.reader-post .block-code .code-block{border:0!important;border-radius:10px!important}.reader-post .block-code .code-block__head{border:0!important;background:transparent!important}.desk-preferences{border:0;border-radius:18px;padding:26px;width:355px;box-shadow:0 30px 90px #243e2e29;background:#fcfefb;color:#536c5a}.desk-preferences::backdrop{background:#dfe8df77;backdrop-filter:blur(5px)}.desk-preferences h2{font-size:18px;margin:0 0 15px}.desk-preferences label{display:flex;gap:20px;justify-content:space-between;align-items:center;padding:14px 0}.desk-preferences small{display:block;color:#99a89b;font-size:11px;margin-top:3px}.desk-preferences input{accent-color:#8ca992}.desk-preferences>button{display:block;margin:15px 0 0 auto;border:0;background:#e7efe3;color:#6f8c74;padding:8px 18px;border-radius:8px}.reduced-motion .desk-card,.reduced-motion .card-glint,.reduced-motion .content-dock svg{transition:none!important}@media(prefers-reduced-motion:reduce){.desk-card,.card-glint,.content-dock svg{transition:none!important}}

/* Space carries hierarchy. Tint denotes a working surface, never a nested frame. */
.reader-post .prose th{background:#f2f5f3;color:#53695b;font-weight:600}
.reader-post .prose tr:nth-child(even){background:#f8faf9}
.reader-post .prose hr{border:0;height:0;margin:56px 0}
.reader-post .prose .footnotes{border:0;padding-top:12px;margin-top:64px}
.reader-post .prose-columns{gap:32px;margin:42px 0}
.reader-post .prose-columns>blockquote{border:0;background:none;padding:12px 0}
.reader-post .block-frame,.reader-post .block-launch,.reader-post .block-image,.reader-post .content-block video{border-radius:12px;overflow:hidden}
.reader-post .block-gallery{gap:20px;background:none}
.reader-post .block-gallery figure{background:none}
.reader-post .block-gallery figcaption{padding:12px 0 0}
.reader-post .block-native-link{border:0;padding:10px 0 0;background:none}
.reader-post .block-resource{padding:20px 0;gap:24px}
.reader-post .block-resource:hover{background:transparent}
.reader-post .reader-preview .desk-card{outline:none}
/* Archive expansion gives room to the index, not to clipped article previews. */
.collage-board[data-archive-open=true] .card-summary{display:none}.collage-board[data-archive-open=true] .card-copy{padding:20px 24px 52px}.collage-board[data-archive-open=true] .card-title{font-size:clamp(18px,1.65vw,24px)}.collage-board[data-archive-open=true] .card-topic{margin-bottom:10px}
/* Bright flat blocks: color establishes grouping; no decorative frame or glow. */
:root{--block-blue:#1764f6;--block-yellow:#ffda22;--block-green:#00bd7f;--block-red:#ff6043}
.intro-tile{--tile-bg:var(--block-yellow);justify-content:space-between}.intro-tile h1{font-size:clamp(34px,4vw,62px);font-weight:650;letter-spacing:-2.4px;line-height:1.02;margin:0}.intro-tile h1 span{display:block;font-size:16px;letter-spacing:0;margin:10px 0 0}.intro-tile>a{margin-top:16px;font-size:13px;font-weight:550}
.social-strip{overflow:visible;background:#fafbf6;height:50px;padding:0 16px}.social-strip>a,.social-strip>button{position:relative;display:grid;place-items:center;width:44px;height:44px;padding:4px;border:0;background:none;border-radius:10px;text-decoration:none}.social-strip svg{display:block;width:32px;height:32px;transform-origin:50% 80%}.social-strip [data-tooltip]::after{content:attr(data-tooltip);position:absolute;left:50%;top:calc(100% + 8px);transform:translateX(-50%) translateY(-3px);background:#192b25;color:#fffdf7;border-radius:7px;padding:5px 8px;font-size:11px;line-height:1.4;white-space:nowrap;opacity:0;visibility:hidden;pointer-events:none;transition:opacity 140ms ease,transform 140ms ease;z-index:10}.social-strip [data-tooltip]:hover::after,.social-strip [data-tooltip]:focus-visible::after{opacity:1;visibility:visible;transform:translateX(-50%) translateY(0)}
.process-tile{--tile-bg:var(--block-blue);color:#fffdf7}.making-tile{--tile-bg:var(--block-red);color:#182b25}.process-tile .tile-heading,.making-tile .tile-heading{font-size:14px}.process-tile>svg{flex:1;max-height:240px;align-self:center}.making-title{font-size:23px;letter-spacing:-.6px}.icon-sheet{gap:4px 12px}.portrait-tile{--tile-bg:var(--block-green)}
.card-topic,.card-meta{color:#425441}.card-summary{color:#3d503e;opacity:1}.tile-arrow{background:#172b250b}.card-word{background:var(--block-green);color:#172b25}.archive-tile{--tile-bg:var(--block-yellow)}.archive-kicker,.archive-entry small{color:#5b5020}.desk-search input{background:#fffdf799;color:#172b25}.desk-filters button{color:#514b24}.desk-filters button[aria-pressed=true]{background:#172b25;color:#fffdf7}.archive-thumb{background:#eee6af}.archive-entries{scrollbar-color:#b69e24 transparent}.desk-empty{color:#514b24}
.topics-tile{--tile-bg:#fafbf6;justify-content:flex-start}.topic-shortcuts{display:flex;flex-direction:column;justify-content:center;gap:3px;flex:1;min-height:0}.topic-shortcuts>button{display:flex;align-items:center;justify-content:space-between;gap:15px;width:100%;padding:2px 0;border:0;background:none;font-size:clamp(17px,1.6vw,24px);font-weight:550;line-height:1.4;text-align:left}.topic-shortcuts>button>span{font-size:18px;color:#46594b}.topic-shortcuts>button:hover{color:#1764f6}
.contact-tile{--tile-bg:var(--block-blue);color:#fffdf7}.contact-mark{display:block;width:28px;height:28px}.contact-mark svg{display:block;width:100%;height:100%}.contact-mark svg use{filter:drop-shadow(0 0 0 transparent)}.contact-tile [data-resume]{background:#fffdf7;color:#172b25}.reader-preview>.archive-entry{background:var(--block-yellow)}
.social-strip>a:hover,.social-strip>button:hover{background:#172b2508}
@media(max-width:1050px){.intro-tile h1{font-size:clamp(32px,4.4vw,44px)}.social-strip{height:48px}.social-strip svg{width:30px;height:30px}.making-title{font-size:21px}.topic-shortcuts>button{font-size:20px}.contact-tile>a{font-size:17px}}
@media(max-height:720px){.intro-tile h1{font-size:38px}.intro-tile h1 span{font-size:13px;margin-top:6px}.topic-shortcuts>button{font-size:18px}}
@media(prefers-reduced-motion:reduce){.social-strip svg{animation:none!important}.social-strip [data-tooltip]::after{transition:none!important}}
/* Keep navigation targets stationary; the two creative blocks trade remaining space. */
.identity-row>.profile-group{flex:0 0 calc(50% - var(--gap)/2)}.social-strip{z-index:2}
/* Apple Motion UI glyphs; the hand-drawn project preview remains project content. */
.motion-slot{width:30px;height:30px;display:inline-flex;align-items:center;justify-content:center;color:inherit;line-height:0;flex:none}.motion-slot>.mi{width:100%;height:100%}.social-strip .motion-slot svg{width:100%;height:100%;filter:none}.social-strip .motion-slot{width:30px;height:30px;color:#202522}.motion-slot>svg{filter:grayscale(1)}.contact-mark .motion-slot{width:25px;height:25px;color:#fffdf7}.social-strip .mi{transition:color 140ms ease}.social-strip a:hover .mi,.social-strip a:focus-visible .mi,.social-strip button:hover .mi,.social-strip button:focus-visible .mi{color:#1764f6}
/* Inset rounded cover: a small image block inside, no longer a full-bleed half. */
.desk-card{padding:10px;gap:0}.desk-card>.card-media{border-radius:calc(var(--radius) - 8px);margin:0;overflow:hidden;min-height:0}.desk-card .card-media img{border-radius:inherit}.reader-preview>.desk-card{padding:10px}.card-copy{padding-left:24px;padding-right:24px}
@media(prefers-reduced-motion:reduce){.social-strip .mi{transition:none!important}}body.reduced-motion .social-strip .mi{transition:none!important}
/* Fixed author identity: real daily portrait, a single green name strip. */
.identity-row>.profile-group{gap:var(--gap)}.portrait-tile{display:block;flex:.85;min-width:0;overflow:hidden;background:#02bd7f}.portrait-tile>img{display:block;width:100%;height:100%;object-fit:cover;object-position:center}.profile-column{display:flex;flex:1.2;min-width:0;flex-direction:column;gap:var(--gap)}.intro-tile{--tile-bg:#02bd7f;order:-1;flex:0 0 50px;padding:0 20px;display:flex;justify-content:center;align-items:flex-start}.intro-tile h1{font-size:29px;letter-spacing:-1.2px;line-height:1;font-weight:650;margin:0}.social-strip{height:auto;min-height:0;flex:1;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-template-rows:repeat(2,minmax(0,1fr));place-items:center;padding:8px 12px}.social-strip>a,.social-strip>button{width:48px;height:44px}.social-strip .motion-slot{width:32px;height:32px}
.projects-tile{--tile-bg:#fafbf6;justify-content:flex-start}.projects-tile>.tile-heading>span{font-size:11px;color:#687866}.project-shortcuts{display:flex;flex-direction:column;justify-content:center;flex:1;min-height:0;gap:14px}.project-shortcuts a{display:flex;justify-content:space-between;align-items:center;gap:16px;font-size:clamp(15px,1.45vw,21px);font-weight:550;line-height:1.35;text-decoration:none}.project-shortcuts a:hover{color:#1764f6}.project-icon-preview{height:100%;width:100%;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-template-rows:repeat(2,minmax(0,1fr));align-items:center;justify-items:center;gap:14px;padding:24px;background:#ffcf25}.project-icon-preview svg{width:100%;height:100%;max-width:125px;max-height:125px}.project-card.project-drawing{background:#ff7657}.project-card.project-code{background:#dce6ff}
/* Only the middle band participates in rotation; no overlay on fixed cards. */
.discovery-shell{position:relative;min-height:0;min-width:0;overflow:hidden;border-radius:var(--radius);isolation:isolate}.discovery-shell>.discovery-row{width:100%;height:100%;perspective:1200px}.rotation-controls{position:absolute;z-index:4;right:14px;top:12px;display:flex;gap:6px;opacity:.6;transition:opacity 150ms linear}.discovery-shell:hover .rotation-controls,.rotation-controls:focus-within{opacity:1}.rotation-controls>button{border:0;padding:6px 9px;border-radius:7px;background:#fafbf6ed;color:#25372b;font-size:10px;line-height:1.4;box-shadow:none}.rotation-controls>button[aria-pressed=true]{background:#182b25;color:#fffdf7}.discovery-row.is-reallocating>.desk-card{min-width:0!important;transition:none!important;overflow:hidden;backface-visibility:hidden;will-change:flex-grow,transform,opacity}.discovery-row.is-reallocating .card-copy{min-width:190px}.discovery-row.is-reallocating .card-summary{display:none}.discovery-row.is-reallocating .card-media img{object-fit:cover}.project-card .card-title{font-size:clamp(23px,2.2vw,34px)}
@media(max-width:1050px){.portrait-tile{display:block;flex:1}.profile-column{flex:1}.intro-tile{flex-basis:45px;padding:0 16px}.intro-tile h1{font-size:26px}.social-strip{height:auto;padding:6px;grid-template-columns:repeat(2,minmax(0,1fr));gap:0}.social-strip>a,.social-strip>button{width:40px;height:40px}.social-strip .motion-slot{width:28px;height:28px}.project-shortcuts a{font-size:16px}.project-shortcuts{gap:17px}.project-icon-preview{padding:18px;gap:9px}.project-card .card-title{font-size:23px}.rotation-controls{top:9px;right:10px}.rotation-controls>button{font-size:9px;padding:5px 7px}}
@media(prefers-reduced-motion:reduce){.rotation-controls{transition:none}}
.discovery-shell .desk-card{--weight:1;--expanded-weight:1.4}
/* Filled, stationary social pills and inline detail space instead of hover popovers. */
.social-strip>a,.social-strip>button{width:100%;max-width:120px;height:46px;border-radius:22px;transition:background 160ms linear,color 160ms linear}.social-strip{gap:6px 8px}.social-strip [data-tooltip]::after{display:none}.social-strip>a:hover,.social-strip>button:hover,.social-strip>.is-active,.social-strip>a:focus-visible,.social-strip>button:focus-visible{background:#172b25;color:#fffdf7}.social-strip>a:hover .mi,.social-strip>a:focus-visible .mi,.social-strip>button:hover .mi,.social-strip>button:focus-visible .mi,.social-strip>.is-active .mi{color:#fffdf7}.social-strip .motion-slot{color:inherit}
.nav-details{min-height:0;flex:0 0 0px;overflow:hidden;opacity:0;border-radius:16px;background:#fafbf6;transition:flex-basis 380ms cubic-bezier(.22,1,.36,1),opacity 160ms linear}.nav-details-inner{padding:13px 15px}.nav-details [data-nav-pane]{display:flex;flex-direction:column;gap:8px;min-height:0}.nav-details strong{font-size:12px;font-weight:550;overflow-wrap:anywhere}.nav-details a{font-size:11px;line-height:1.5;text-decoration:none}.nav-details button{border:0;border-radius:8px;text-align:left;background:#edf1ea;padding:7px 10px;font-size:11px;line-height:1.4}.nav-details button[aria-pressed=true]{background:#172b25;color:#fffdf7}
.collage-board[data-nav-expanded=true]{grid-template-rows:minmax(0,1.38fr) minmax(0,1.32fr) minmax(0,.72fr)}.collage-board[data-nav-expanded=true] .nav-details{flex-basis:100px;opacity:1}.collage-board[data-nav-expanded=true][data-archive-open=true]{grid-template-rows:minmax(0,1.12fr) minmax(0,.95fr) minmax(0,1.35fr)}
/* Bubble space allocation is painted by one critically damped spring frame owner. */
.discovery-shell>.bubble-band{display:block;position:relative;overflow:hidden;perspective:1200px}.bubble-band>.desk-card{position:absolute;min-width:0!important;min-height:0;max-width:none;margin:0;flex:none!important;transition:none!important;backface-visibility:hidden;transform-origin:center;contain:layout paint}/* Inner geometry follows the same live rectangle continuously, never scaleXY. */
.bubble-band>.desk-card,.reader-preview>.bubble-card{display:block;padding:0}
.reader-preview>.bubble-card{left:0!important;top:0!important;opacity:1!important}
:is(.bubble-band,.reader-preview) .bubble-card .card-media,:is(.bubble-band,.reader-preview) .bubble-card .card-copy{position:absolute;min-width:0;min-height:0;transition:none!important}
:is(.bubble-band,.reader-preview) .bubble-card .card-media{left:var(--media-x,10px);top:var(--media-y,10px);width:var(--media-w);height:var(--media-h);border-radius:16px;opacity:var(--cover-presence,1)}
:is(.bubble-band,.reader-preview) .bubble-card .card-copy{left:var(--copy-x);top:var(--copy-y);width:var(--copy-w);height:var(--copy-h);padding:12px 14px 34px;display:flex;flex-direction:column;justify-content:flex-start}
:is(.bubble-band,.reader-preview) .bubble-card .card-title{font-size:var(--fit-title,22px);line-height:var(--card-title-leading,1.35);letter-spacing:-.4px;overflow-wrap:anywhere}
:is(.bubble-band,.reader-preview) .bubble-card .card-topic{font-size:10px;line-height:14px;margin-bottom:6px;flex:none}
:is(.bubble-band,.reader-preview) .bubble-card .card-summary{display:none}
:is(.bubble-band,.reader-preview) .bubble-card .card-meta{left:14px;bottom:8px;font-size:10px;gap:10px;line-height:16px;white-space:nowrap}
:is(.bubble-band,.reader-preview) .bubble-card .tile-arrow{right:14px;bottom:14px;width:28px;height:28px;font-size:21px}
:is(.bubble-band,.reader-preview) .bubble-card .project-icon-preview{padding:16px;gap:8px}
@media(max-width:1050px){.social-strip>a,.social-strip>button{height:40px}.social-strip{padding:6px;gap:3px}.nav-details-inner{padding:10px}.nav-details strong,.nav-details a,.nav-details button{font-size:10px}.collage-board[data-nav-expanded=true] .nav-details{flex-basis:92px}.bubble-band .is-compact .card-title{font-size:19px}.bubble-band .is-short .card-title{font-size:17px}.bubble-band .is-tall .card-meta{left:20px}}
@media(prefers-reduced-motion:reduce){.nav-details,.social-strip>a,.social-strip>button{transition:none!important}}body.reduced-motion .nav-details,body.reduced-motion .social-strip>a,body.reduced-motion .social-strip>button{transition:none!important}
/* One continuous morphing navigation card, never a second card below it. */
.nav-card{display:flex;flex-direction:column;flex:1;min-height:0;background:#fafbf6;overflow:hidden;border-radius:var(--radius);isolation:isolate}.nav-card>.social-strip{flex:1;min-height:0;background:transparent;border:0;border-radius:0;overflow:visible}.nav-card>.nav-details{flex:0 0 0px;background:transparent;border:0;border-radius:0;box-shadow:none;opacity:0}.collage-board[data-nav-expanded=true] .nav-card>.nav-details{flex-basis:112px;opacity:1}.nav-card .nav-details-inner{padding:3px 14px 13px}.profile-column>.intro-tile{order:0}.profile-column>.nav-card{order:1}
@media(max-width:1050px){.collage-board[data-nav-expanded=true] .nav-card>.nav-details{flex-basis:104px}.nav-card .nav-details-inner{padding:3px 10px 10px}}

/* Three balanced targets after removing the external home destination. */
.nav-card>.social-strip{grid-template-columns:repeat(3,minmax(0,1fr));grid-template-rows:minmax(44px,1fr);padding:12px;gap:6px;align-items:center}
.nav-card .social-strip>a,.nav-card .social-strip>button{height:48px;min-width:0;max-width:120px;border-radius:24px;text-decoration:none}
.nav-card .nav-details-inner{padding:4px 16px 16px}
.nav-details button{padding:10px 12px;border-radius:12px;font-size:12px;transition:background 140ms linear,color 140ms linear}
.nav-details button:hover{background:#dce5df}
.nav-details button[aria-pressed=true]:hover{background:#25463b}
.nav-card :focus-visible{outline:2px solid #1764f6;outline-offset:-3px}
.nav-card .social-strip>:active{background:#25463b;color:#fffdf7}
.portrait-tile{cursor:default}
@media(max-width:1050px){.nav-card>.social-strip{padding:7px;gap:2px}.nav-card .social-strip>a,.nav-card .social-strip>button{height:44px}.nav-card .nav-details-inner{padding:4px 10px 12px}}

/* Project records share one renderer, independent of a product-specific stylesheet. */
.project-card.tone-blue{--card-fill:var(--board-blue);--card-ink:var(--board-white)}.project-card.tone-red{--card-fill:var(--board-red);--card-ink:var(--board-white)}.project-card.tone-mist{--card-fill:var(--board-mist)}.project-card.tone-white{--card-fill:var(--board-white)}
.project-monogram{display:grid;place-items:center;width:100%;height:100%;background:#202727;color:#ffb54a;font:650 clamp(28px,5vw,66px)/1 var(--ui);letter-spacing:-.08em}
.projects-tile .project-shortcuts{overflow:auto;overscroll-behavior:contain;scrollbar-width:thin;gap:4px;padding:6px 0;justify-content:flex-start}
.projects-tile .project-shortcuts>a{font-size:clamp(14px,1.2vw,18px);min-height:22px;flex:none}

.featured-project-media{display:block;flex:1;min-height:0;overflow:hidden;border-radius:12px;margin:12px 0}.featured-project-media>img{width:100%;height:100%;object-fit:cover;display:block}

/* Persistent information rail + one large, two-dimensional content field. */
.collage-board.puzzle-board,.collage-board.puzzle-board[data-nav-expanded=true],.collage-board.puzzle-board[data-archive-open=true],.collage-board.puzzle-board[data-nav-expanded=true][data-archive-open=true]{display:grid;grid-template-columns:clamp(210px,23vw,310px) minmax(0,1fr);grid-template-rows:minmax(0,1fr);gap:var(--gap)}
.puzzle-sidebar{display:grid;grid-template-rows:minmax(0,1.25fr) minmax(0,.95fr) minmax(0,.6fr);gap:var(--gap);min-width:0;min-height:0;position:relative;transition:grid-template-rows 420ms var(--layout-ease)}
.puzzle-sidebar>.profile-group{min-width:0!important;display:flex;flex-direction:column;gap:var(--gap);min-height:0;grid-row:1}
.puzzle-sidebar .portrait-tile{flex:1;min-height:0;width:100%}.puzzle-sidebar .profile-column{flex:0 0 108px;gap:8px;min-height:0;transition:flex-basis 380ms var(--layout-ease)}
.puzzle-sidebar .intro-tile{flex-basis:40px;padding:0 16px}.puzzle-sidebar .intro-tile h1{font-size:27px}
.puzzle-sidebar>.projects-tile{grid-row:2;min-width:0!important;padding:17px}.puzzle-sidebar>.archive-tile{grid-row:3;min-width:0!important}
.puzzle-board[data-nav-expanded=true] .puzzle-sidebar{grid-template-rows:minmax(0,1.65fr) minmax(0,.7fr) minmax(0,.45fr)}
.puzzle-board[data-nav-expanded=true] .profile-column{flex-basis:218px}
.puzzle-board[data-archive-open=true] .puzzle-sidebar{grid-template-rows:minmax(0,1.1fr) minmax(0,.6fr) minmax(0,1.1fr)}
.puzzle-board[data-archive-open=true][data-nav-expanded=true] .puzzle-sidebar{grid-template-rows:minmax(0,1.4fr) minmax(0,.5fr) minmax(0,.9fr)}
.puzzle-sidebar #archive-title{font-size:25px}.puzzle-sidebar .archive-toggle{padding:17px;min-height:64px}.puzzle-sidebar .archive-content{padding-left:14px;padding-right:14px}.puzzle-sidebar .desk-filters{display:none}.puzzle-sidebar .archive-entry{gap:8px}.puzzle-sidebar .archive-entry strong{font-size:12px}.puzzle-sidebar .archive-thumb{width:38px;height:38px}.puzzle-sidebar .archive-entry small{font-size:9px}
.resume-pill{position:absolute;right:12px;bottom:12px;border:0;border-radius:10px;background:#172b25;color:#fffdf7;padding:7px 10px;font-size:11px;z-index:3}
.bubble-flip-slot{position:absolute;perspective:1200px;z-index:2;pointer-events:none}.bubble-turner{position:absolute;inset:0;transform-style:preserve-3d;transform-origin:50% 50%;will-change:transform}
.bubble-turner>.bubble-face{position:absolute!important;inset:0!important;opacity:1!important;backface-visibility:hidden!important;-webkit-backface-visibility:hidden!important;transform:rotateY(0deg)!important;contain:layout;overflow:hidden}
.bubble-turner>.bubble-face-back{transform:rotateY(180deg)!important}

.bubble-turner>.bubble-face{display:block;padding:0}
:is(.bubble-band,.reader-preview) .visual-card .card-media{left:0;top:0;width:100%;height:100%;opacity:1;border-radius:inherit}
.visual-card{border:0;text-align:left;padding:0;background:#e9eee9}
.visual-reader{position:fixed;inset:0;width:min(1200px,calc(100vw - 64px));height:min(820px,calc(100dvh - 64px));max-width:none;max-height:none;border:0;border-radius:22px;padding:20px;background:#fafbf8;color:#202727;overflow:hidden}
.visual-reader::backdrop{background:#14221b88;backdrop-filter:blur(5px)}
.visual-reader>header{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:16px}.visual-reader h2{font-size:18px;margin:0}.visual-reader h3{font-size:13px;margin:0 0 12px}.visual-reader button{border:0;border-radius:12px;background:#e7ede7;padding:8px 13px}.visual-reader-body{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(260px,1fr);gap:24px;height:calc(100% - 54px);min-height:0}.visual-reader figure{margin:0;display:flex;flex-direction:column;gap:12px;min-height:0}.visual-reader figure>img{width:100%;height:0;flex:1;min-height:0;object-fit:contain;border-radius:12px}.visual-reader figure>a{font-size:12px}.visual-prompt{min-height:0;overflow:auto;padding-right:8px}.visual-prompt-heading{display:flex;align-items:center;justify-content:space-between;gap:12px}.visual-prompt pre{white-space:pre-wrap;overflow-wrap:anywhere;font:14px/1.8 var(--ui);user-select:text;margin:14px 0 24px}.visual-prompt dl{font-size:12px;line-height:1.7}.visual-prompt dt{color:#60716a;margin-top:10px}.visual-prompt dd{margin:2px 0 0}.visual-prompt [role=status]{font-size:12px;color:#426451}

/* Board palette: stable content roles, never DOM order / recycled child index.
   Owned shell only: original photos, diagrams, covers and embedded works stay intact. */
:root{--board-blue:#165dff;--board-red:#cd3438;--board-mist:#dfe8fa;--board-white:#fafbfe;--board-ink:#172235;--desk:#eef1f6;--ink:var(--board-ink)}
.desk-card{--card-fill:var(--board-white);--card-ink:var(--board-ink);background:var(--card-fill);color:var(--card-ink)}
.desk-card.card-variant-0{--card-fill:var(--board-white)}
.desk-card.card-variant-1{--card-fill:var(--board-blue);--card-ink:var(--board-white)}
.desk-card.card-variant-2{--card-fill:var(--board-mist)}
.desk-card :is(.card-topic,.card-summary,.card-meta){color:inherit}
.desk-card :is(.card-topic,.card-meta){opacity:1}
.desk-card .tile-arrow{color:inherit;background:color-mix(in srgb,currentColor 9%,transparent)}
.project-card:is(.tone-blue,.tone-red,.tone-mist,.tone-white){background:var(--card-fill);color:var(--card-ink)}
.project-monogram{background:#e9edf5;color:var(--board-ink)}
.tone-red .project-monogram{background:#b62b30;color:var(--board-white)}
.tone-mist .project-monogram{background:var(--board-blue);color:var(--board-white)}
.tone-white .project-monogram{background:var(--board-ink);color:var(--board-white)}
.puzzle-sidebar :is(.nav-card,.projects-tile){background:var(--board-white);--tile-bg:var(--board-white)}
.puzzle-sidebar .intro-tile{--tile-bg:#02bd7f;color:#102d25}
.puzzle-sidebar .archive-tile{--tile-bg:var(--board-blue);color:var(--board-white)}
.puzzle-sidebar .archive-tile :is(.archive-kicker,#archive-title,.archive-entry small,.desk-empty){color:inherit}
.puzzle-sidebar .archive-tile .desk-filters button{color:var(--board-white)}
.puzzle-sidebar .archive-tile .desk-filters button[aria-pressed=true]{background:var(--board-white);color:var(--board-ink)}
.puzzle-sidebar .archive-tile .desk-search input{background:var(--board-white);color:var(--board-ink)}
.puzzle-sidebar .archive-tile .archive-entry:hover{background:#ffffff18}
.puzzle-sidebar .archive-tile .archive-entries{scrollbar-color:#ffffff70 transparent}
.puzzle-sidebar .projects-tile>.tile-heading>span{color:#59677e}
.reader-preview>.archive-entry{background:var(--board-blue);color:var(--board-white)}

/* Immersive image canvas; the original image and shared reader own the surface. */
.reader-window.is-visual{background:#172235}
.reader-window.is-visual .reader-main{overflow:hidden;height:100%}
.reader-window.is-visual .reader-toolbar{position:absolute;top:18px;left:18px;width:auto;height:34px;min-height:0;padding:0 12px;z-index:8;border-radius:18px;background:#fafbfeed}
.reader-window.is-visual :is(#reader-title,.reader-share,.reader-progress){display:none}
.reader-post.visual-collection{position:relative;isolation:isolate;max-width:none;height:100%;padding:0;display:block;color:var(--board-ink);background:#172235}
.reader-post.visual-collection[hidden]{display:none}
.visual-collection-layout,.visual-gallery{position:absolute;inset:0;min-height:0;min-width:0}
.visual-hero{margin:0;width:100%;height:100%}
.visual-hero>a{display:block;position:relative;overflow:hidden;width:100%;height:100%}
.visual-hero img{display:block;position:absolute;inset:0;width:100%;height:100%;object-fit:cover;border-radius:0}
.visual-copy-control{position:absolute;left:114px;top:18px;z-index:8;display:flex;align-items:center;gap:8px}
.visual-copy-control>button{display:grid;place-items:center;width:34px;height:34px;padding:0;border:0;border-radius:50%;background:#fafbfeed;color:var(--board-ink);cursor:pointer}
.visual-copy-control svg{width:17px;height:17px;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}
.visual-copy-control [role=status]:not(:empty){padding:7px 12px;border-radius:16px;background:#fafbfeed;color:var(--board-ink);font-size:12px}
.visual-copy-control>button:focus-visible,.visual-direction:focus-visible{outline:2px solid var(--board-blue);outline-offset:2px}
.visual-copy-control>button:hover,.visual-direction:hover{background:var(--board-white);color:var(--board-blue)}
.visual-gallery-footer{position:absolute;bottom:18px;left:50%;transform:translateX(-50%);display:flex;align-items:center;max-width:calc(100% - 36px);padding:8px 10px;border-radius:16px;background:#fafbfeed;z-index:5}
.visual-gallery-caption{display:none}
/* Selection ring is INSIDE each button: scrollports never clip its top/bottom. */
.visual-thumbnails{display:flex;gap:8px;min-width:0;overflow:auto;padding:2px;scrollbar-width:thin}
.visual-thumbnails button{width:64px;height:50px;flex:none;border:0;background:transparent;padding:3px;border-radius:10px;opacity:.65;cursor:pointer;outline:0}
.visual-thumbnails button[aria-pressed=true]{opacity:1;background:var(--board-blue)}
.visual-thumbnails button:focus-visible{box-shadow:inset 0 0 0 2px var(--board-ink);opacity:1}
.visual-thumbnails img{width:100%;height:100%;object-fit:cover;display:block;border-radius:7px}
.visual-direction{position:absolute;top:50%;transform:translateY(-50%);z-index:6;width:38px;height:54px;display:grid;place-items:center;border:0;border-radius:20px;background:#fafbfeed;color:var(--board-ink);cursor:pointer}
.visual-direction svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.visual-prev{left:18px}.visual-next{right:18px}

/* Admission-assigned tones override content defaults, never the artwork. */
.desk-card[data-board-tone=blue]{--card-fill:var(--board-blue);--card-ink:var(--board-white)}
.desk-card[data-board-tone=red]{--card-fill:var(--board-red);--card-ink:var(--board-white)}
.desk-card[data-board-tone=mist]{--card-fill:var(--board-mist);--card-ink:var(--board-ink)}
.desk-card[data-board-tone=white]{--card-fill:var(--board-white);--card-ink:var(--board-ink)}

/* Small factual media cues, not decorative category labels or autoplay. */
.media-facts{position:absolute;left:8px;bottom:8px;display:flex;align-items:center;gap:9px;padding:5px 8px;border-radius:12px;background:#fafbfeeb;color:var(--board-ink);font:550 10px/1 var(--ui);max-width:calc(100% - 16px);pointer-events:none;white-space:nowrap}
.media-facts>span{display:flex;align-items:center;gap:3px;flex:none}
.media-facts svg{display:block;width:13px;height:13px;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}
.visual-card>.media-facts{left:12px;bottom:12px}
.card-media{isolation:isolate}.card-media>.media-facts{z-index:1}

/* Real application captures retain their full content and native proportions. */
.native-cover .card-media{background:#e9edf5}
.native-cover .card-media>img{object-fit:contain}

/* Cover evidence must stay whole, regardless of the changing outer card shape.
   The frame follows the source aspect; inset protects UI edges from the mask. */
.desk-card.has-cover .card-media{padding:8px;display:flex;align-items:center;justify-content:center;background:#e9edf5}
.desk-card.has-cover .card-media>img{width:100%;height:100%;min-width:0;min-height:0;max-width:100%;max-height:100%;object-fit:contain;object-position:center;border-radius:0}
.desk-card.has-cover .card-media>.media-facts{left:12px;bottom:12px}

/* More than red/blue: saturated violet and amber, balanced by two neutrals. */
:root{--board-violet:#7048d4;--board-amber:#ffba49}
.desk-card[data-board-tone=violet],.project-card:where(.tone-violet){--card-fill:var(--board-violet);--card-ink:var(--board-white)}
.desk-card[data-board-tone=amber],.project-card:where(.tone-amber){--card-fill:var(--board-amber);--card-ink:var(--board-ink)}
/* An image-derived atmosphere is a separate presentation role, not an extra
   random solid color. The sharp source image remains intact in the foreground. */
.desk-card.has-image-atmosphere{--card-fill:#172235;--card-ink:var(--board-white);background:#172235;color:var(--board-white);isolation:isolate}
.card-image-atmosphere{position:absolute;inset:0;overflow:hidden;pointer-events:none;z-index:0}
.card-image-atmosphere>img{display:block;width:100%;height:100%;object-fit:cover;filter:blur(28px) saturate(.9);transform:scale(1.16);opacity:.72}
.card-image-atmosphere::after{content:'';position:absolute;inset:0;background:linear-gradient(135deg,#111a3280 0%,#17223540 40%,#101a30ed 100%)}
.has-image-atmosphere>:is(.card-copy,.card-media,.tile-arrow){z-index:1}
.desk-card.has-image-atmosphere .card-media{background:#ffffff0e}
.has-image-atmosphere :is(.card-topic,.card-title,.card-meta){color:var(--board-white)}

/* Direct picture surface: sharp image is the card, not a second thumbnail.
   Cover crop is intentional only for this decorative background role. */
.card-image-atmosphere{display:none}
.has-image-atmosphere>.card-image-atmosphere{display:block}
.card-image-atmosphere>img{object-position:var(--surface-position,50% 50%)}
.desk-card[data-surface-mode=image-cover]>.card-image-atmosphere>img{filter:none;transform:none;opacity:1}
.desk-card[data-surface-mode=image-cover]>.card-image-atmosphere::after{background:linear-gradient(180deg,#0b132800 25%,#0b13284d 45%,#0b1328eb 68%,#0b1328fa 100%)}
.desk-card[data-surface-mode=image-cover]>.card-media{display:none!important}
.desk-card[data-surface-mode=image-cover] .card-topic{display:none}
.desk-card[data-surface-mode=image-cover] .card-title{font-weight:600}

/* Push owns a bounded local clipping lane; other cards keep their world space. */
.bubble-conveyor{position:absolute;overflow:hidden;border-radius:var(--radius);z-index:2;pointer-events:none;isolation:isolate}
.bubble-conveyor>.desk-card{position:absolute;min-width:0!important;min-height:0;max-width:none;margin:0;flex:none!important;transition:none!important;backface-visibility:hidden;transform-origin:center;contain:layout paint;display:block;padding:0}

/* Compact project cells are the same linked records, not extra filler cards. */
.project-compact-mark{position:absolute;left:20px;top:12px;width:32px;height:32px;opacity:calc(var(--compact-progress,0)*var(--compact-mark-presence,1));pointer-events:none;z-index:2;display:grid;place-items:center}
.project-compact-mark>svg,.project-compact-mark>.motion-slot{width:100%;height:100%}
.bubble-card.project-card .card-media{opacity:calc(var(--cover-presence,1)*(1 - var(--compact-progress,0)))}
.bubble-card.project-card :is(.card-topic,.card-meta,.tile-arrow){opacity:calc(1 - var(--compact-progress,0))}
.bubble-card.project-card .card-copy{padding-top:calc(12px*(1 - var(--compact-progress,0)));padding-right:calc(14px - 10px*var(--compact-progress,0));padding-left:calc(14px - 10px*var(--compact-progress,0));padding-bottom:calc(34px*(1 - var(--compact-progress,0)))}
.bubble-card.project-card .card-topic{height:calc(14px*(1 - var(--compact-progress,0)));margin-bottom:calc(6px*(1 - var(--compact-progress,0)));overflow:hidden}

/* Pure image cards always fill their rectangle, including flips and reader clones. */
:is(.bubble-band,.bubble-turner,.bubble-conveyor,.reader-preview) .visual-card .card-media>img{object-fit:cover;object-position:center}
/* Reapple Now Playing: square artwork above names, scrubber, and a five-control rail.
   Geometry follows reapple/payload/stage.js rather than the former capsule demo. */
.music-card{color:#fff!important;background:#746c72!important;overflow:clip!important;padding:0!important;display:block!important;isolation:isolate;font-family:-apple-system,BlinkMacSystemFont,'SF Pro Text','PingFang SC',sans-serif;container-type:inline-size}
.music-wash{position:absolute;inset:0;z-index:-1;pointer-events:none;background:var(--music-a,#746c72);overflow:hidden}
.music-wash img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;filter:blur(38px) saturate(.65) brightness(.72);transform:scale(1.35);opacity:0;transition:opacity 650ms ease}
.music-wash img.is-current{opacity:.88}.music-wash:after{content:'';position:absolute;inset:0;background:linear-gradient(150deg,#e8d8ca30,#45374728 70%,#29263855)}
.music-art{position:absolute;left:var(--music-art-x);top:var(--music-art-y);width:var(--music-art-w);height:var(--music-art-h);border-radius:9px;overflow:hidden;isolation:isolate;box-shadow:0 8px 22px #1b162b30;transform:scale(.96);transition:transform 420ms cubic-bezier(.22,1,.36,1)}
.music-card.is-playing .music-art{transform:scale(1)}.music-art img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0;transition:opacity 420ms ease}.music-art img.is-current{opacity:1}
.music-info{position:absolute;left:var(--music-info-x);top:var(--music-info-y);width:var(--music-info-w);height:var(--music-info-h);display:flex;gap:10px;align-items:center;min-width:0}.music-names{flex:1;min-width:0}.music-info .card-title{font:600 calc(18.2px*var(--music-type,.85))/1.15 -apple-system,BlinkMacSystemFont,'SF Pro Text',sans-serif!important;letter-spacing:-.012em!important;color:inherit;display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.music-note{display:block;font-size:calc(15.4px*var(--music-type,.85));line-height:1.2;color:#ffffff94;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-top:2px}
/* Exact Reapple stage96 tool glyphs, 26pt circles / 34pt pitch scaled as one unit. */
.music-tools{display:flex;gap:calc(8px*var(--music-type,.85));flex:none}.music-tools button{border:0;border-radius:50%;padding:0;background:#ffffff29;color:#fff;width:calc(26px*var(--music-type,.85));height:calc(26px*var(--music-type,.85));display:grid;place-items:center;cursor:pointer}.music-tools [data-music-favorite] svg{width:calc(14.5px*var(--music-type,.85));height:auto}.music-tools [data-music-more] svg{width:calc(12.4px*var(--music-type,.85));height:auto}.music-tools span{display:grid;place-items:center}.music-tools [data-star-fill]{display:none}.music-tools [aria-pressed=true] [data-star]{display:none}.music-tools [aria-pressed=true] [data-star-fill]{display:grid}
.music-options{position:absolute;z-index:8;right:10px;bottom:10px;min-width:150px;padding:6px;border-radius:10px;background:#333139f5;box-shadow:0 6px 20px #0003}.music-options[hidden]{display:none}.music-options>a,.music-options>button{display:block;width:100%;padding:7px 10px;text-align:left;font:12px/1.4 -apple-system,sans-serif;background:none;color:#fff;border:0;text-decoration:none;border-radius:5px;cursor:pointer}.music-options>a:hover,.music-options>button:hover{background:#ffffff20}
.music-transport{position:absolute;left:var(--music-transport-x);top:var(--music-transport-y);width:var(--music-transport-w);height:var(--music-transport-h);margin:0}.music-transport button{position:absolute;top:50%;transform:translate(-50%,-50%);border:0;border-radius:6px;padding:0;background:transparent;color:#ffffffb5;display:grid;place-items:center;cursor:pointer;width:calc(48px*var(--music-type,.85));height:100%}.music-transport button:hover{background:#ffffff14}.music-transport svg{display:block;fill:currentColor}.music-transport [data-music-shuffle]{left:4.148%}.music-transport [data-music-prev]{left:26.28%}.music-transport [data-music-play]{left:50.069%;color:#fff}.music-transport [data-music-next]{left:73.858%}.music-transport [data-music-repeat]{left:95.851%}.music-transport :is([data-music-shuffle],[data-music-repeat]){width:calc(30px*var(--music-type,.85))}.music-transport [data-music-shuffle] svg{height:calc(13.7px*var(--music-type,.85));width:auto}.music-transport [data-music-repeat] svg{height:calc(13.2px*var(--music-type,.85));width:auto}.music-transport :is([data-music-prev],[data-music-next]) svg{height:calc(19px*var(--music-type,.85));width:calc(33px*var(--music-type,.85))}.music-transport [data-play] svg{width:calc(24px*var(--music-type,.85));height:calc(27px*var(--music-type,.85))}.music-transport [data-pause] svg{width:calc(21px*var(--music-type,.85));height:calc(27.5px*var(--music-type,.85))}.music-transport button[aria-pressed=true]:not([data-music-play]){background:#ffffff24;color:#fff}.music-transport [data-pause]{display:none}.music-card.is-playing [data-play]{display:none}.music-card.is-playing [data-pause]{display:block}
.music-timeline{position:absolute;left:var(--music-timeline-x);top:var(--music-timeline-y);width:var(--music-timeline-w);display:grid;grid-template-columns:1fr 1fr;align-items:center;gap:6px;font:500 10px/12px -apple-system,BlinkMacSystemFont,sans-serif;color:#ffffff80;font-variant-numeric:tabular-nums}.music-timeline input{grid-column:1/-1;width:100%;height:4px;appearance:none;-webkit-appearance:none;margin:3px 0 0;border:0;border-radius:8px;background:linear-gradient(to right,#ffffffb8 var(--music-progress,0%),#ffffff40 var(--music-progress,0%));cursor:pointer}.music-timeline input::-webkit-slider-thumb{appearance:none;-webkit-appearance:none;width:9px;height:9px;border-radius:50%;background:#fff;opacity:0}.music-timeline input:hover::-webkit-slider-thumb,.music-timeline input:focus-visible::-webkit-slider-thumb{opacity:1}.music-timeline input::-moz-range-thumb{width:9px;height:9px;border:0;background:#fff}.music-timeline [data-music-duration]{text-align:right}.music-card :is(a,button,input):focus-visible{outline:2px solid #fff;outline-offset:3px}
.music-calm .music-art,.music-calm .music-art img,.music-calm .music-wash img{transition:none!important;transform:none!important}
@media(prefers-reduced-motion:reduce){.music-art,.music-art img,.music-wash img{transition:none!important;transform:none!important}}

/* Duo-inspired composition: owned outer shell, original media left untouched. */
@font-face{font-family:Anton;src:url('/assets/fonts/Anton-Regular.ttf') format('truetype');font-style:normal;font-weight:400;font-display:swap}
@font-face{font-family:Knewave;src:url('/assets/fonts/Knewave-Regular.ttf') format('truetype');font-style:normal;font-weight:400;font-display:swap}
body[data-display-font=anton]{--display-font:Anton,"ZCOOL QingKe HuangYou",var(--ui)}body[data-display-font=knewave]{--display-font:Knewave,"ZCOOL KuaiLe",var(--ui)}body[data-display-font=original]{--display-font:var(--ui)}
.intro-tile h1,.project-card:not(.music-card) .card-title{font-family:var(--display-font,var(--ui));font-weight:400;letter-spacing:-.015em}
:is(.bubble-band,.reader-preview) .project-card:not(.music-card) .card-title{font-family:var(--display-font,var(--ui));font-weight:400;line-height:1.25}
:is(.bubble-band,.reader-preview) .bubble-card .card-copy{padding:0!important;justify-content:center;gap:0}
:is(.bubble-band,.reader-preview) .bubble-card .card-meta{position:static;flex:none;margin-top:9px;line-height:1.4;font-size:10px;opacity:.68}
:is(.bubble-band,.reader-preview) .bubble-card .card-topic{margin-bottom:7px;font-size:10px;line-height:1.2}
:is(.bubble-band,.reader-preview) .project-card[data-image-layout=image-top] .card-copy,:is(.bubble-band,.reader-preview) .project-card[data-image-layout=image-bottom] .card-copy{text-align:center;align-items:center}
:is(.bubble-band,.reader-preview) .desk-card.has-cover .card-media{padding:0;background:transparent;display:block;border-radius:12px}
:is(.bubble-band,.reader-preview) .desk-card.has-cover .card-media>img{object-fit:contain;border-radius:10px}
:is(.bubble-band,.reader-preview) .bubble-card .project-icon-preview{height:100%;padding:0;gap:10px;align-content:center;justify-content:center}
.project-monogram{background:transparent!important;border-radius:0!important;font-family:var(--display-font,var(--ui));font-weight:400}
.project-compact-mark{left:14px;top:12px}.project-compact-mark>strong{font-family:var(--display-font,var(--ui));font-weight:400}
/* Visual previews grow with the SAME physical rectangle, rather than a fixed-size clone. */
.reader-window.is-visual .reader-preview{z-index:1;background:transparent;overflow:hidden}
.reader-window.is-visual .reader-preview>.visual-card{position:absolute!important;inset:0;display:block;padding:0!important;border-radius:inherit}
.reader-window.is-visual .reader-preview .media-facts{display:none}
.reader-window.is-visual.is-morphing .visual-hero{visibility:hidden}
.reader-window.is-visual .reader-preview .card-media{inset:0!important;width:100%!important;height:100%!important;border-radius:inherit}
.reader-window.is-visual .reader-preview .card-media>img{display:block;width:100%;height:100%;object-fit:cover;transition:none!important}
/* Settings grow within the same cool-white nav surface; links have no disclosure. */
.nav-card .social-strip>a:hover{background:transparent}.nav-card .social-strip>a:active{background:transparent;color:inherit}
.puzzle-board[data-nav-expanded=true] .profile-column{flex-basis:326px}
.collage-board[data-nav-expanded=true] .nav-card>.nav-details{flex-basis:214px;opacity:1}
.nav-card .nav-details-inner{padding:4px 16px 16px}.nav-details [data-nav-pane]{gap:11px}
.settings-caption{font:550 11px/1.4 var(--ui);color:#6e7684;display:block}
.font-choices{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:5px}
.font-choices>button{display:flex;flex-direction:column;justify-content:center;align-items:center;gap:5px;padding:10px 3px!important;min-width:0;border:0!important;border-radius:10px!important;background:#edf0f7!important;color:#283143!important;cursor:pointer;line-height:1.2!important}
.font-choices>button[aria-pressed=true]{background:#165dff!important;color:#fafbfe!important}.font-choices .font-sample{font-size:17px;line-height:1.3;white-space:nowrap}.font-anton{font-family:Anton}.font-knewave{font-family:Knewave}.font-original{font:550 12px/1.3 var(--ui)!important}.font-choices small{font:10px/1.2 var(--ui);opacity:.75}
.nav-details button.settings-toggle{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:5px 0;background:none;color:#263143;font-size:12px;border-radius:0}
.settings-toggle i{width:28px;height:17px;border-radius:10px;background:#dbe0e9;position:relative;flex:none}.settings-toggle i:after{content:'';position:absolute;left:2px;top:2px;width:13px;height:13px;border-radius:50%;background:#fafbfe;transition:transform 180ms ease}.settings-toggle[aria-pressed=true] i{background:#165dff}.settings-toggle[aria-pressed=true] i:after{transform:translateX(11px)}
.nav-details button.settings-toggle:hover,.nav-details button.settings-toggle[aria-pressed=true]:hover{background:none;color:#165dff}
.nav-details button.settings-more{padding:0;background:none;color:#778191;font-size:11px;border-radius:0}
.desk-preferences{background:#fafbfe;color:#263143;box-shadow:0 20px 80px #14244320;border-radius:22px}.desk-preferences::backdrop{background:#25334b22;backdrop-filter:blur(4px)}.desk-preferences small{color:#788292}.desk-preferences input{accent-color:#165dff}.desk-preferences>button{background:#165dff;color:#fafbfe;border-radius:10px}.settings-fonts{display:grid;gap:9px;margin:18px 0}
@media(prefers-reduced-motion:reduce){.settings-toggle i:after{transition:none}}.reduced-motion .settings-toggle i:after{transition:none}

.project-card:not(.music-card) .card-media{background:transparent}
.bubble-card.project-card .project-monogram{font-size:clamp(40px,5vw,84px);color:inherit}

.reader-window.is-visual.is-morphing :is(.reader-post.visual-collection,.reader-main,.reader-surface){background:transparent}
.nav-card .social-strip>[data-settings-trigger].is-active{background:#165dff;color:#fafbfe}

/* The whole board is one spatial field. Utility cards stay available, not pinned to a rail. */
.collage-board.puzzle-board,.collage-board.puzzle-board[data-nav-expanded=true],.collage-board.puzzle-board[data-archive-open=true],.collage-board.puzzle-board[data-nav-expanded=true][data-archive-open=true]{display:block;position:relative}
.puzzle-board>.discovery-shell{height:100%;width:100%;border-radius:0;overflow:visible}
.bubble-band>.identity-card{padding:0;isolation:isolate;background:#02bd7f}
.identity-card>img{position:absolute;inset:0;display:block;width:100%;height:100%;object-fit:cover;object-position:center}
.identity-card:after{content:'';position:absolute;inset:50% 0 0;background:linear-gradient(transparent,#14202b88);pointer-events:none}
.identity-card>.card-title{position:absolute;z-index:1;left:22px;bottom:18px;margin:0;color:#fafbfe;font-family:var(--display-font,var(--ui));font-weight:400;font-size:var(--identity-name-size,40px)!important;line-height:1;letter-spacing:-.02em}
.identity-card:focus-visible{outline:3px solid #165dff;outline-offset:-3px}
.bubble-band>.utility-nav.profile-column{display:flex!important;flex-direction:column;flex:none;gap:0;margin:0;padding:0;background:#fafbfe;--tile-bg:#fafbfe}
.utility-nav>.social-strip{flex:0 0 72px;height:72px;display:grid;grid-template-columns:repeat(3,1fr);padding:10px 16px;gap:6px;grid-template-rows:1fr}
.utility-nav>.nav-details{flex:1;min-height:0;max-height:0;overflow:hidden;opacity:0}
.collage-board[data-nav-expanded=true] .utility-nav>.nav-details{max-height:260px;flex:1;opacity:1;overflow:auto}
.utility-nav .nav-details-inner{padding:0 18px 16px}.utility-nav .nav-details [data-nav-pane]{gap:11px}
.bubble-band>.utility-projects{padding:20px!important;background:#fafbfe;color:#182335;display:flex!important;flex-direction:column;gap:12px}
.utility-projects .project-shortcuts{min-height:0;overflow:auto;flex:1;justify-content:flex-start;gap:4px}.utility-projects .project-shortcuts>a{padding:4px 0;font-size:14px;line-height:1.4}
.bubble-band>.utility-archive{display:flex!important;flex-direction:column;background:#165dff;color:#fafbfe;padding:0}
.utility-archive .archive-toggle{flex:0 0 100px;min-height:100px;padding:22px}.utility-archive #archive-title{font-size:26px}.utility-archive .archive-content{flex:1;min-height:0;max-height:0;opacity:0;overflow:hidden;padding:0 18px}
.collage-board[data-archive-open=true] .utility-archive .archive-content{max-height:none;opacity:1;overflow:auto;padding-bottom:18px}.utility-archive .archive-entry{padding:9px 0}.utility-archive .archive-entry strong{font-size:12px}.utility-archive .archive-entry small{font-size:10px}
.project-card[data-content-id='project:world']{border:0;box-shadow:none}
.project-card[data-content-id='project:world'] .card-image-atmosphere>img{filter:none;transform:none;opacity:1;object-fit:cover}
.project-card[data-content-id='project:world'] .card-image-atmosphere:after{background:linear-gradient(transparent 55%,#2a211f66)}
.project-card[data-content-id='project:world'] .card-copy{color:#fafbfe;text-align:left!important;align-items:flex-start!important}
/* Native project HUD styling is preserved; these rules only localize its coordinate space. */
.hud-preview{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;overflow:visible!important;background:transparent!important}
.hud-case{border:0;padding:0;background:transparent;position:relative;width:100%;height:100%;min-height:0;cursor:pointer;container-type:size}
.hud-preview .mi-hud{position:absolute;z-index:1;--mi-hud-size:min(156px,calc(100cqw - 6px),calc(100cqh - 6px));left:50%;top:50%;opacity:1;transform:translate(-50%,-50%);pointer-events:none}
.hud-case:focus-visible{outline:2px solid #165dff;outline-offset:3px;border-radius:24px}.hud-card .card-title{text-decoration:none;color:inherit}

/* Social destinations remain visually still; settings alone reveals controls. */
.nav-card .social-strip>a:hover,.nav-card .social-strip>a:hover .mi{color:inherit;background:transparent;transform:none;transition:none}

/* Keynote-like project evidence: one subject, one short caption; no repeated link badges.
   Scoped to project cards only. The approved prompt/photo cards stay untouched. */
.bubble-card.project-card:not(.music-card) .tile-arrow{display:none}
.bubble-card.project-card:not(.music-card) .card-meta{font-size:12px;line-height:1.4;white-space:normal;display:-webkit-box;-webkit-line-clamp:1;-webkit-box-orient:vertical;overflow:hidden;opacity:calc(.72*(1 - var(--compact-progress,0)))}
.bubble-card.project-card:not(.music-card) .card-copy{gap:0}
.bubble-card.project-card.native-cover:not(.has-image-atmosphere) .card-media>img{filter:drop-shadow(0 8px 12px #15233b12)}
.hud-card .hud-preview{grid-template-columns:minmax(0,1fr)}
.bubble-card.hud-card .card-copy{align-items:center;text-align:center;justify-content:center}
.bubble-card.hud-card .card-title{font-family:var(--ui);font-weight:600;font-size:20px!important;line-height:1.2;letter-spacing:-.035em}

/* Utility controls have their own intrinsic geometry, independent of tile aspect.
   Works in-place, in a conveyor and after a grouped repartition. */
.bubble-card.utility-nav{display:flex!important;flex-direction:column;justify-content:center;align-items:stretch;padding:0!important}
.bubble-card.utility-nav>.social-strip{display:flex;flex:0 0 72px;width:100%;height:72px;min-height:72px;margin:auto 0;padding:12px;gap:16px;justify-content:center;align-items:center}
.bubble-card.utility-nav .social-strip>:is(a,button){display:grid;place-items:center;flex:0 0 44px;width:44px;height:44px;min-width:44px;max-width:44px;min-height:44px;max-height:44px;padding:8px;aspect-ratio:1;border-radius:14px}
.bubble-card.utility-nav .social-strip .motion-slot,.bubble-card.utility-nav .social-strip .mi,.bubble-card.utility-nav .social-strip svg{display:block;flex:0 0 28px;width:28px!important;height:28px!important;min-width:28px;max-width:28px;min-height:28px;max-height:28px;aspect-ratio:1;object-fit:contain}
.collage-board[data-nav-expanded=true] .bubble-card.utility-nav{justify-content:flex-start}
.collage-board[data-nav-expanded=true] .bubble-card.utility-nav>.social-strip{margin:0;flex-shrink:0}
.bubble-card.utility-nav>.nav-details{flex:0 1 auto}
.bubble-card.utility-projects{display:flex!important;flex-direction:column;padding:20px!important;gap:12px}
.bubble-card.utility-archive{display:flex!important;flex-direction:column;justify-content:center;padding:0!important}
.collage-board[data-archive-open=true] .bubble-card.utility-archive{justify-content:flex-start}

.bubble-card.utility-archive .archive-toggle{flex:0 0 96px;min-height:96px;height:96px}

/* Dense entrances, generous reading space on intent. One native scroll owner per list. */
.bubble-card.utility-projects{padding:0!important;gap:0;justify-content:center}
.bubble-card.utility-projects .directory-toggle,.bubble-card.utility-archive .archive-toggle{display:flex;align-items:center;justify-content:space-between;flex:0 0 88px;width:100%;height:88px;min-height:88px;padding:16px 20px;border:0;background:transparent;color:inherit;text-align:left;cursor:pointer}
.directory-toggle>span:first-child{display:flex;flex-direction:column;gap:4px}
.directory-toggle small,.utility-archive .archive-kicker{font:400 11px/1.3 var(--ui);color:inherit;opacity:.68}
.directory-toggle strong,.utility-archive #archive-title{font:600 21px/1.2 var(--ui);letter-spacing:-.5px}
.directory-toggle>span:last-child,.utility-archive .archive-toggle-icon{font:300 24px/1 var(--ui);flex:none;margin-left:10px}
.directory-toggle[aria-expanded=true]>span:last-child{transform:rotate(45deg)}
.bubble-card.utility-projects .project-shortcuts{flex:0 0 0;height:0;min-height:0;padding:0 18px;gap:0;visibility:hidden;overflow:hidden}
.collage-board[data-projects-open=true] .bubble-card.utility-projects{justify-content:flex-start}
.collage-board[data-projects-open=true] .utility-projects .project-shortcuts{flex:1;height:auto;visibility:visible;overflow:auto;margin-bottom:14px}
.utility-projects .project-shortcuts>a{padding:10px 2px;font-size:14px;line-height:1.35;min-height:38px;gap:12px}
.utility-projects .project-shortcuts>a>span:first-child{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.collage-board[data-archive-open=true] .utility-archive .archive-content{overflow:hidden;min-height:0;padding-bottom:14px}
.utility-archive .archive-entries,.utility-projects .project-shortcuts{overscroll-behavior:contain;scrollbar-gutter:stable;scrollbar-width:thin;scrollbar-color:#83909d70 transparent;padding-right:6px}
.utility-archive .archive-entries::-webkit-scrollbar,.utility-projects .project-shortcuts::-webkit-scrollbar{width:6px}
.utility-archive .archive-entries::-webkit-scrollbar-track,.utility-projects .project-shortcuts::-webkit-scrollbar-track{background:transparent}
.utility-archive .archive-entries::-webkit-scrollbar-thumb,.utility-projects .project-shortcuts::-webkit-scrollbar-thumb{background:#83909d70;border:1px solid transparent;background-clip:padding-box;border-radius:8px}
.utility-archive .archive-entries::-webkit-scrollbar-thumb:hover,.utility-projects .project-shortcuts::-webkit-scrollbar-thumb:hover{background:#83909da8}
.utility-archive .archive-entry{min-height:56px;gap:10px;padding:7px 0}
.utility-archive .archive-entry strong{font-size:13px;line-height:1.35}
.utility-archive .archive-entry small{color:inherit;opacity:.65}
.directory-toggle:focus-visible,.utility-archive .archive-toggle:focus-visible{outline:2px solid currentColor;outline-offset:-5px;border-radius:inherit}
/* Reparenting into a flip must not restore the base card's min-width or CSS
   transitions. Both faces share the slot's live dimensions, including its final frame. */
.bubble-turner>.bubble-face{min-width:0!important;min-height:0!important;max-width:none;margin:0;flex:none!important;transition:none!important;transform-origin:center}
/* Small projects read as compact signatures: mark + name + one concrete detail. */
.bubble-card.project-card .project-compact-mark{left:20px;top:calc(12px + (50% - 28px)*var(--compact-progress,0))}
.bubble-card.project-card:not(.music-card):not(.hud-card) .card-copy{align-items:flex-start!important;text-align:left!important}
.bubble-card.project-card:not(.music-card):not(.hud-card) .card-meta{opacity:calc(.72 - .1*var(--compact-progress,0));left:calc(14px*(1 - var(--compact-progress,0)));bottom:calc(8px*(1 - var(--compact-progress,0)));font-size:12px}

/* Intrinsic navigation: 3 × 44px targets + 2 × 16px gaps + 24px inset. */
.bubble-band>.bubble-card.utility-nav{border-radius:22px;justify-content:flex-start;align-items:flex-start;overflow:hidden}
.bubble-card.utility-nav>.social-strip{width:188px;min-width:188px;max-width:188px;flex:0 0 72px;margin:0;padding:14px 12px;gap:16px}
.bubble-card.utility-nav .nav-details-inner{padding:0 12px 12px}
.bubble-card.utility-nav .nav-details [data-nav-pane]{display:flex;flex-direction:column;gap:6px}
.utility-nav .settings-caption{font:500 10px/1.2 var(--ui);letter-spacing:.02em;color:#727c8b}
.utility-nav .font-choices{width:164px;gap:3px;padding:3px;background:#e9edf4;border-radius:11px}
.utility-nav .font-choices>button{min-width:0;min-height:30px;padding:4px 2px;border-radius:8px;background:transparent;color:#263143;box-shadow:none}
.utility-nav .font-choices>button[aria-pressed=true]{background:#fafbfe!important;color:#182335!important;box-shadow:0 1px 4px #18233514}
.utility-nav .font-choices .font-sample{font-size:14px;line-height:22px}
.utility-nav .font-choices .font-original{font-size:11px!important}
.utility-nav .font-choices>button:focus-visible{outline:2px solid #165dff;outline-offset:1px}
.collage-board[data-nav-expanded=true] .utility-nav[data-settings-direction=horizontal]{flex-direction:row;align-items:center}
.collage-board[data-nav-expanded=true] .utility-nav[data-settings-direction=horizontal]>.social-strip{margin:0;flex:0 0 188px}
.collage-board[data-nav-expanded=true] .utility-nav[data-settings-direction=horizontal]>.nav-details{flex:0 0 184px;max-height:72px;overflow:hidden}
.utility-nav[data-settings-direction=horizontal] .nav-details-inner{padding:8px 12px 8px 4px}
.collage-board[data-nav-expanded=true] .utility-nav[data-settings-direction=down]>.nav-details{width:188px;max-height:60px;overflow:hidden;flex:0 0 60px}
.utility-nav .font-choices{height:36px;min-height:36px;box-sizing:border-box;align-items:center}
.utility-nav .font-choices>button{height:30px;min-height:30px;max-height:30px;line-height:22px;display:flex;align-items:center;justify-content:center;padding:4px 2px;box-sizing:border-box}
.bubble-card.utility-nav[data-settings-direction=down] .nav-details-inner{padding-bottom:6px}

/* Card density is intentional: no miniature all-controls player. */
.music-card[data-music-tier=mini] :is(.music-timeline,.music-tools,[data-music-prev],[data-music-shuffle],[data-music-repeat]),
.music-card[data-music-tier=compact] :is(.music-timeline,.music-tools,[data-music-shuffle],[data-music-repeat]){display:none}
.music-card[data-music-tier=mini][data-music-next=false] [data-music-next]{display:none}
.music-card[data-music-tier=mini] .music-transport [data-music-play]{left:20px;width:40px}
.music-card[data-music-tier=mini] .music-transport [data-music-next]{left:60px;width:40px}
.music-card[data-music-tier=compact] .music-transport [data-music-prev]{left:22%}
.music-card[data-music-tier=compact] .music-transport [data-music-play]{left:50%}
.music-card[data-music-tier=compact] .music-transport [data-music-next]{left:78%}
.music-card:not([data-music-tier=full]) .music-info .card-title{font-size:14px!important;line-height:18px}
.music-card:not([data-music-tier=full]) .music-note{font-size:12px;line-height:16px}
.music-transport [data-music-play] svg[data-glyph]{position:absolute;left:50%;top:50%;display:block;transform-origin:center;pointer-events:none}
.music-transport [data-music-play] svg[data-glyph=play]{width:24px;height:27px}
.music-transport [data-music-play] svg[data-glyph=pause]{width:21px;height:27.5px}
.music-transport .skip-glyph{position:relative;display:block;width:33px;height:19px;opacity:.85;pointer-events:none}
.music-transport [data-music-prev] .skip-glyph{transform:scaleX(-1)}
.music-transport :is([data-music-prev],[data-music-next]) .skip-glyph svg{position:absolute;left:0;top:0;width:16.5px;height:19px;transform-origin:8.25px 9.5px}
.music-card [data-music-play]{min-width:40px;min-height:40px}

/* Album-first fit inside a 14px inset: vertical fills inner width; horizontal
   fills inner height. Cover radius stays stable while the card resizes. */
.bubble-card.music-card>.music-art{border-radius:12px;box-shadow:none;transform:none!important;transition:none}
.bubble-card.music-card>.music-art img{object-fit:cover;object-position:center}
.bubble-card.music-card[data-music-tier=mini] .music-transport :is([data-music-play],[data-music-next]){width:40px;height:40px;min-width:40px;min-height:40px}

/* A constant neutral host prevents the original translucent HUD sampling a red card. */
.bubble-card.hud-card{background:#d8e3fb!important;color:#252b36!important;isolation:isolate}
.hud-card .hud-preview{isolation:isolate}
.hud-card .mi-hud{--mi-hud-bg:rgb(250 251 254 / .96);--mi-hud-ink:#252b36;--mi-hud-muted:#687180;box-shadow:0 12px 26px #26324a12;backdrop-filter:none;-webkit-backdrop-filter:none}

/* A narrow project stacks its signature above its text, never squeezes a title into an icon-width column. */
.bubble-card.project-card .project-compact-mark{left:var(--compact-icon-x,20px);top:calc(12px*(1 - var(--compact-progress,0)) + var(--compact-icon-y,12px)*var(--compact-progress,0))}

/* Directory geometry is owned by the BSP: icon, compact label, or open list. */
.utility-symbol{display:none;width:34px;height:34px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;flex:none}
.bubble-card[data-utility-shape=icon] :is(.directory-toggle,.archive-toggle){height:100%;min-height:0;flex:1;padding:0;justify-content:center}
.bubble-card[data-utility-shape=icon] :is(.directory-toggle,.archive-toggle)>span{display:none}
.bubble-card[data-utility-shape=icon] .utility-symbol{display:block}
.bubble-card[data-utility-shape=stack] :is(.directory-toggle,.archive-toggle){height:100%;min-height:0;flex:1;padding:16px;justify-content:center;flex-direction:column;gap:10px;text-align:center}
.bubble-card[data-utility-shape=stack] .utility-symbol{display:block;width:28px;height:28px}
.bubble-card[data-utility-shape=stack] :is(.directory-toggle,.archive-toggle)>span:last-child{display:none}
.bubble-card[data-utility-shape=stack] :is(.directory-toggle strong,#archive-title){font-size:18px}
/* The original conversation recipe keeps its own SVG, proportions and motion. */
.bubble-card.cat-card{padding:0!important;display:block!important;background:var(--cat-paper)!important;color:var(--cat-ink)!important;--mi-cat-ear:var(--cat-ink)}
.cat-play{position:absolute;inset:0;display:grid;place-items:center;width:100%;height:100%;border:0;padding:0;background:transparent;color:inherit;cursor:pointer}
.cat-preview{display:block;width:var(--cat-size,140px);height:var(--cat-size,140px);aspect-ratio:1}
.cat-play:focus-visible{outline:2px solid currentColor;outline-offset:-7px;border-radius:inherit}

/* The desktop sidebar must not inherit the obsolete vertical social rail. */
.bubble-card.utility-nav>.social-strip{flex-direction:row!important;align-items:center;justify-content:flex-start}
.directory-toggle>span:nth-child(2){display:flex;flex-direction:column;gap:4px}
.bubble-card[data-utility-shape=stack] .archive-toggle>span:nth-child(2){display:flex;flex-direction:column;gap:4px}

/* Utility shells join the board palette; native controls and artwork do not. */
.bubble-band>.bubble-card:is(.utility-projects,.utility-archive)[data-board-tone]{background:var(--card-fill);color:var(--card-ink)}
.bubble-card:is(.utility-projects,.utility-archive)[data-board-tone] :is(.directory-toggle,.archive-toggle,.project-shortcuts>a,.archive-entry){color:inherit}

/* Article evidence and metadata have separate lanes, never badges over screenshots. */
:is(.bubble-band,.reader-preview) .bubble-card[data-content-kind=article] .card-copy{justify-content:flex-start;align-items:flex-start;text-align:left}
:is(.bubble-band,.reader-preview) .bubble-card[data-content-kind=article] .card-media{padding:0;background:transparent;overflow:hidden;border-radius:10px}
:is(.bubble-band,.reader-preview) .bubble-card[data-content-kind=article] .card-media>img{width:100%;height:100%;object-fit:contain;object-position:left top;border-radius:10px}
:is(.bubble-band,.reader-preview) .bubble-card[data-content-kind=article] .card-meta{display:flex;align-items:center;flex-wrap:wrap;gap:6px 12px;margin-top:10px;padding-right:28px;width:100%;opacity:.75;white-space:normal}
:is(.bubble-band,.reader-preview) .bubble-card[data-content-kind=article] .media-facts{position:static;max-width:none;flex:none;padding:0;border-radius:0;background:none;color:inherit;gap:8px;font-size:10px;line-height:20px}

/* Paired Chinese display fonts; the Latin face remains first in each stack. */
@font-face{font-family:"ZCOOL KuaiLe";src:url("/assets/fonts/ZCOOLKuaiLe-Regular-db3f47619d15.woff2") format("woff2");font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:"ZCOOL QingKe HuangYou";src:url("/assets/fonts/ZCOOLQingKeHuangYou-Regular-bf2252ca7a13.woff2") format("woff2");font-weight:400;font-style:normal;font-display:swap}
body:is([data-display-font=anton],[data-display-font=knewave]) :is(.bubble-band,.reader-preview) .desk-card[data-content-kind=article] .card-title,body:is([data-display-font=anton],[data-display-font=knewave]) .reader-post:not(.project-story):not(.visual-collection)>.post-head>h1{font-family:var(--display-font);font-weight:400;font-synthesis:none}
body:is([data-display-font=anton],[data-display-font=knewave]) .project-card:not(.music-card):not(.hud-card) .card-title{font-synthesis:none}

/* quiet-corner-marks: ink on artwork, not another yellow/white pill. */
:is(.bubble-band,.reader-preview) .bubble-card[data-content-kind=article] .card-media>.media-facts,.visual-card>.media-facts{position:absolute;left:10px;bottom:10px;max-width:calc(100% - 20px);padding:0;gap:10px;background:none;border-radius:0;color:#fff;font:550 11px/20px var(--ui);filter:drop-shadow(0 1px 2px #172235b3)}
:is(.bubble-band,.reader-preview) .bubble-card[data-content-kind=article] .card-media:has(.media-facts)::after,.visual-card::after{content:'';position:absolute;inset:55% 0 0;pointer-events:none;background:linear-gradient(transparent,#18223566);z-index:0;border-radius:inherit}
.media-facts{z-index:2}.media-facts svg{width:16px;height:16px;stroke-width:1.7}
:root[data-theme=dark] .desk-card[data-content-kind=article] .card-media>.media-facts,:root[data-theme=dark] .visual-card>.media-facts{color:#fff}
/* World / Chinese caption alternate; the original island never disappears. */
.bubble-card[data-card-presentation=word-scene]{background:#e2bfa6!important}
.bubble-card[data-card-presentation=word-scene] .card-media{display:none!important}
.bubble-card[data-card-presentation=word-scene] .card-copy{display:grid!important;place-content:center;align-items:center!important;text-align:center!important;padding:0!important;overflow:visible;color:#fff!important}
.bubble-card[data-card-presentation=word-scene] :is(.card-title,.world-caption){grid-area:1/1;font-family:var(--display-font,var(--ui));font-weight:400;line-height:1.3;filter:drop-shadow(0 2px 6px #31261766)}
.bubble-card[data-card-presentation=word-scene] .card-title{animation:world-word 7.2s cubic-bezier(.22,1,.36,1) infinite}
.bubble-card[data-card-presentation=word-scene] .world-caption{font-size:clamp(16px,calc(var(--fit-title)*.62),30px);animation:world-caption 7.2s cubic-bezier(.22,1,.36,1) infinite;white-space:nowrap}
.bubble-card[data-card-presentation=word-scene] :is(.card-summary,.card-meta){display:none!important}
.bubble-card[data-card-presentation=word-scene] .card-image-atmosphere>img{filter:none;transform:none;opacity:1;object-fit:cover}
.bubble-card[data-card-presentation=word-scene] .card-image-atmosphere::after{background:linear-gradient(transparent 40%,#35271f26)}
.bubble-card[data-card-presentation=word-scene][data-word-scene-size=small] .tile-arrow{display:none}
@keyframes world-word{0%,38%,100%{opacity:1;transform:translateY(0)}45%,92%{opacity:0;transform:translateY(-9px)}}
@keyframes world-caption{0%,38%,100%{opacity:0;transform:translateY(9px)}48%,88%{opacity:1;transform:translateY(0)}95%{opacity:0;transform:translateY(-9px)}}
.discovery-shell[data-scene-paused=true] [data-card-presentation=word-scene] :is(.card-title,.world-caption),[data-card-presentation=word-scene]:is(:hover,:focus-visible) :is(.card-title,.world-caption){animation-play-state:paused!important}
.reduced-motion [data-card-presentation=word-scene] :is(.card-title,.world-caption){animation:none!important;transform:none!important}
.reduced-motion [data-card-presentation=word-scene] .world-caption{display:none}
@media(prefers-reduced-motion:reduce){[data-card-presentation=word-scene] :is(.card-title,.world-caption){animation:none!important;transform:none!important}[data-card-presentation=word-scene] .world-caption{display:none}}
/* One camera around the identity. Outer detail cards retain their original assets. */
.discovery-shell{isolation:isolate}.discovery-row{transform-origin:50% 50%}.depth-ring{position:absolute;inset:0;pointer-events:none;z-index:1;overflow:hidden}
.depth-card{position:absolute;display:block!important;min-width:0!important;padding:0!important;border:0;border-radius:20px;overflow:hidden;background:var(--paper,#f5f3ee);transform-origin:0 0;pointer-events:auto;visibility:hidden;opacity:0;text-decoration:none;color:var(--ink,#172235)}
.depth-card>.card-media{position:absolute;inset:0;width:100%;height:100%;margin:0;border-radius:inherit;background:transparent}.depth-card>.card-media img{width:100%;height:100%;object-fit:contain}
.depth-caption{position:absolute;left:14px;right:14px;bottom:12px;font:550 14px/1.4 var(--ui);color:var(--ink,#172235);background:color-mix(in srgb,var(--paper,#f5f3ee) 92%,transparent);padding:5px 8px;border-radius:5px;opacity:0;transition:opacity .18s}
.depth-card:is(:hover,:focus-visible) .depth-caption{opacity:1}.depth-card:focus-visible{outline:3px solid #5388e8;outline-offset:-3px}
.depth-tools{position:fixed;bottom:8px;left:50%;transform:translateX(-50%);z-index:5;display:flex;align-items:center;gap:2px;padding:3px 6px;background:var(--paper,#f4f1eb);color:var(--ink,#172235);border-radius:30px;box-shadow:0 2px 12px #17223512}
.depth-tools button{border:0;background:transparent;color:inherit;min-width:32px;height:30px;padding:0 8px;font:500 15px/1 var(--ui);border-radius:20px;cursor:pointer}.depth-tools button:hover{background:color-mix(in srgb,currentColor 9%,transparent)}.depth-tools button:disabled{opacity:.3;cursor:default}.depth-tools output{font-size:11px;font-variant-numeric:tabular-nums}.depth-tools button:focus-visible{outline:2px solid #5388e8}
html[data-desk-boot] .discovery-row>.desk-card:not(.identity-card){animation:desk-boot-failsafe 1.4s both}
@keyframes desk-boot-failsafe{0%,60%{opacity:0}100%{opacity:1}}
@media(prefers-reduced-motion:reduce){html[data-desk-boot] .discovery-row>.desk-card{animation:none}}

.project-compact-mark>img{display:block;width:100%;height:100%;object-fit:contain}

/* Portal light is clipped to the real identity card, not a floating cursor. */
.identity-card::before{content:"";position:absolute;inset:0;z-index:2;pointer-events:none;border-radius:inherit;background:radial-gradient(ellipse at 50% 48%,transparent 35%,#e4f5ff55 80%,#b6d7ff99);box-shadow:inset 0 0 0 1px #eff7ff99,inset 0 0 26px #bdccff55;opacity:0;transition:opacity 500ms cubic-bezier(.22,1,.36,1)}
[data-portal=charging] .identity-card::before{opacity:.4}
[data-portal=travel] .identity-card::before{opacity:.85}
.desk-card[data-card-presentation=launcher-emblem]{background:#121a30!important;color:#edf5fc!important;--card-ink:#edf5fc}
.desk-card[data-card-presentation=launcher-emblem] .card-media{background:radial-gradient(ellipse at 50% 60%,#243452,transparent 70%)}
.desk-card[data-card-presentation=launcher-emblem] .card-media>img{object-fit:contain!important;width:100%!important;height:100%!important;padding:clamp(8px,2vw,26px);box-sizing:border-box}
.desk-card[data-card-presentation=launcher-emblem] .project-compact-mark img{width:100%;height:100%;object-fit:contain}
.desk-card[data-card-presentation=launcher-emblem] .card-summary,.desk-card[data-card-presentation=launcher-emblem] .card-meta{color:#c7d4e6}
.bubble-card.has-cover:not([data-surface-mode=image-cover]):not([data-card-presentation=word-scene]):not([data-card-presentation=launcher-emblem]) .card-media{border-radius:12px;overflow:hidden;background:color-mix(in srgb,var(--theme-surface) 10%,transparent)}
@media(prefers-reduced-motion:reduce){.identity-card::before{transition:none;display:none}}
body.reduced-motion .identity-card::before{display:none}

/* Camera stops and native square components. No textual zoom meter. */
.depth-tools .depth-stop{min-width:28px;padding:0;display:grid;place-items:center}
.depth-stop>span{width:6px;height:6px;border-radius:50%;background:currentColor;opacity:.3;transition:width .25s,opacity .25s}
.depth-stop[aria-pressed=true]>span{width:18px;border-radius:5px;opacity:1}
.depth-ring .depth-card{background:var(--theme-surface,#fafbfe);color:var(--theme-ink,#172235);border-radius:24px;box-shadow:none}
.depth-card>.card-media img{display:block;object-fit:cover;border-radius:0;object-position:center}
.depth-card>.motion-slot,.depth-card>svg{position:absolute;inset:22%;width:56%;height:56%;display:block}
.depth-card.depth-drawing{background:#ffda27;color:#192333}
.depth-card.depth-motion{background:var(--theme-surface,#fafbfe);color:var(--theme-ink,#172235)}
.depth-card[data-space-tone=moss]{background:#254b3c;color:#f5f6e8}
.depth-card[data-space-tone=acid]{background:#e3ed90;color:#233021}
.depth-card[data-space-tone=coral]{background:#d75c42;color:#fff7e9}
.depth-card[data-space-tone=blue]{background:#2352bf;color:#f7f9ff}
.space-mark{position:absolute;left:18px;top:18px;font:400 54px/1 var(--display-font,var(--ui));opacity:.88}
.space-name{position:absolute;left:18px;right:32px;bottom:20px;font:400 24px/1.1 var(--display-font,var(--ui));overflow-wrap:anywhere}
.space-arrow{position:absolute;right:15px;bottom:19px;font:400 20px/1 var(--ui)}
.bubble-card.identity-card{z-index:3;transform-origin:center;box-shadow:0 9px 28px rgb(20 30 40 / calc((1 - var(--camera-scale,1)) * .25))}
/* Photo windows use the outer clipping boundary. Original reader media stays complete. */
:is(.bubble-band,.reader-preview) .bubble-card[data-content-kind=article]>.card-media,
:is(.bubble-band,.reader-preview) .bubble-card.project-card.has-cover:not(.hud-card):not(.music-card):not([data-card-presentation])>.card-media{left:0!important;top:0!important;width:100%!important;height:100%!important;border-radius:0!important;background:transparent!important;opacity:1!important;transform:none!important;padding:0!important}
:is(.bubble-band,.reader-preview) .bubble-card[data-content-kind=article]>.card-media>img,
:is(.bubble-band,.reader-preview) .bubble-card.project-card.has-cover:not(.hud-card):not(.music-card):not([data-card-presentation])>.card-media>img{width:100%;height:100%;object-fit:cover!important;object-position:center!important;border-radius:0!important;max-width:none;max-height:none}
:is(.bubble-band,.reader-preview) .bubble-card[data-content-kind=article]>.card-media:after,
:is(.bubble-band,.reader-preview) .bubble-card.project-card.has-cover:not(.hud-card):not(.music-card):not([data-card-presentation])>.card-media:after{content:'';position:absolute;inset:25% 0 0;background:linear-gradient(transparent,rgba(14,22,32,.76));pointer-events:none}
:is(.bubble-band,.reader-preview) .bubble-card[data-content-kind=article]>.card-copy,
:is(.bubble-band,.reader-preview) .bubble-card.project-card.has-cover:not(.hud-card):not(.music-card):not([data-card-presentation])>.card-copy{z-index:2;color:#fff!important;text-shadow:0 1px 6px #0002}
:is(.bubble-band,.reader-preview) .bubble-card.project-card.has-cover:not(.hud-card):not(.music-card):not([data-card-presentation])>.card-copy{left:18px!important;top:auto!important;right:18px;bottom:18px;width:auto!important;height:auto!important;transform:none!important}
:is(.bubble-band,.reader-preview) .bubble-card.project-card.has-cover:not(.hud-card):not(.music-card):not([data-card-presentation])>.project-compact-mark{display:none}
:is(.bubble-band,.reader-preview) .bubble-card.project-card.has-cover:not(.hud-card):not(.music-card):not([data-card-presentation]) .card-summary{display:none}
:is(.bubble-band,.reader-preview) .bubble-card[data-content-kind=article] :is(.card-title,.card-topic,.card-meta,.tile-arrow),
:is(.bubble-band,.reader-preview) .bubble-card.project-card.has-cover:not(.hud-card):not(.music-card):not([data-card-presentation]) :is(.card-title,.card-meta,.tile-arrow){color:#fff!important}
:is(.bubble-band,.reader-preview) .bubble-card[data-content-kind=article] .media-facts{position:absolute;z-index:3;top:16px;left:16px;bottom:auto;color:#fff;text-shadow:0 1px 4px #0009}
.bubble-card.project-drawing{background:#ffda27!important;color:#172235!important}
.bubble-card.project-drawing>.card-media{inset:0!important;width:100%!important;height:100%!important;border-radius:0!important;padding:0!important}
.bubble-card.project-drawing .project-icon-preview{position:absolute;inset:12%;width:76%;height:76%;border-radius:0;padding:0;background:transparent}
.bubble-card.project-drawing :is(.card-copy,.project-compact-mark,.tile-arrow){display:none!important}
.bubble-card.hud-card{background:#fafbfe!important}
.bubble-card.hud-card>.card-copy{display:none}
.hud-card .mi-hud{background:transparent!important;box-shadow:none!important}
:is(.bubble-band,.reader-preview) .bubble-card[data-content-kind=article]>.card-media:after{z-index:1;background:linear-gradient(transparent 10%,rgba(10,17,24,.75))!important;display:block!important;opacity:1!important}
.discovery-shell>.discovery-row{overflow:visible!important}
.depth-card .space-name{font-size:clamp(24px,calc(14px / var(--camera-scale,1)),34px)}
/* Keep overlay copy readable against even the lightest imported screenshot. */
:is(.bubble-band,.reader-preview) .bubble-card[data-content-kind=article]>.card-copy{padding-top:14px;background:transparent}

/* Software is an entry, not a screenshot billboard. Photos remain borderless. */
.bubble-card:is([data-card-presentation="product-entry"],[data-card-presentation="launcher-emblem"])>.card-media,
.bubble-card:is([data-card-presentation="product-entry"],[data-card-presentation="launcher-emblem"])>.card-image-atmosphere{display:none!important}
.bubble-card:is([data-card-presentation="product-entry"],[data-card-presentation="launcher-emblem"])>.project-compact-mark{display:grid;left:var(--compact-icon-x,24px);top:var(--compact-icon-y);width:36px;height:36px;opacity:var(--compact-mark-presence,1)}
.bubble-card:is([data-card-presentation="product-entry"],[data-card-presentation="launcher-emblem"])>.card-copy{padding:0!important;justify-content:center;gap:7px;text-shadow:none}
.bubble-card:is([data-card-presentation="product-entry"],[data-card-presentation="launcher-emblem"]) .card-title{line-height:1.12;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.bubble-card:is([data-card-presentation="product-entry"],[data-card-presentation="launcher-emblem"]) .card-meta{position:static;display:block;opacity:.65;font-size:12px;line-height:1.3;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}

/* Contextual camera controls; keyboard focus and bottom-edge pointer reveal. */
.depth-tools{opacity:0;pointer-events:none;translate:0 10px;transition:opacity 220ms ease,translate 360ms cubic-bezier(.22,1,.36,1)}
.depth-tools[data-visible=true],.depth-tools:has(:focus-visible){opacity:1;pointer-events:auto;translate:0 0}
.identity-card>img{scale:var(--identity-focus,1)}
.depth-card .space-name{font-size:clamp(20px,2vw,28px)}
@media(prefers-reduced-motion:reduce){.depth-tools{transition:none}}
/* Labels must fit the actual packed band, including the shallow third tier. */
.depth-card[data-space-tone]{container-type:size}
.depth-card .space-mark{top:14px;left:18px;font-size:clamp(22px,28cqh,46px);line-height:1}
.depth-card .space-name{bottom:14px;font-size:clamp(18px,24cqh,26px);line-height:1.1}

[data-depth-unified=true] .project-drawing>.card-media{opacity:1!important}

/* Narrow peripheral entries keep one mark, not broken vertical titles. */
.depth-card .space-name{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;overflow-wrap:normal}
.depth-card[data-space-compact=true] .space-name{display:none}
.depth-card[data-space-compact=true] .space-mark{left:50%;top:50%;transform:translate(-50%,-50%);font-size:36px}
/* Size is physical after camera projection; content is reduced by importance. */
.bubble-card:is([data-card-presentation=product-entry],[data-card-presentation=launcher-emblem]) .project-compact-mark{width:var(--product-mark-size,36px);height:var(--product-mark-size,36px)}
.bubble-card[data-product-shape=portrait] .card-copy{text-align:center}
.bubble-card[data-product-summary=false] .card-summary{display:none!important}
.bubble-card[data-product-shape] .card-summary{font-size:var(--product-note-size,12px)!important;line-height:1.5}
.bubble-card[data-product-shape] .card-title{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.music-card[data-music-info=false] .music-info,.music-card[data-music-note=false] .music-note{display:none!important}
.music-card[data-music-next=false] [data-music-next]{display:none!important}
.music-card[data-music-tier=compact][data-music-next=false] [data-music-prev]{display:none!important}
.music-card:not([data-music-tier=full]) .music-info .card-title{font-size:calc(14px * var(--music-readable,1))!important;line-height:1.25}
.music-card:not([data-music-tier=full]) .music-note{font-size:calc(11px * var(--music-readable,1))!important;line-height:1.4}
.music-card[data-music-tier=mini] .music-transport [data-music-play]{left:calc(var(--music-button,40px) / 2)}
.music-card[data-music-tier=mini] .music-transport [data-music-next]{left:calc(var(--music-button,40px) * 1.5)}
.bubble-card.music-card[data-music-tier=mini] .music-transport :is([data-music-play],[data-music-next]){width:var(--music-button,40px);height:var(--music-button,40px);min-width:0;min-height:0}
/* One palette for owned shells in every ring. Original artwork is not tinted. */
[data-field-tone=paper]{--field-fill:var(--theme-surface);--field-ink:var(--theme-ink)}
[data-field-tone=mist]{--field-fill:#dfe8f6;--field-ink:#24344c}
[data-field-tone=sand]{--field-fill:#efe3cc;--field-ink:#4a3926}
[data-field-tone=sage]{--field-fill:oklch(71.0105% 0.188928 151.2116);--field-ink:#083c2b}
[data-field-tone=lilac]{--field-fill:#7852c5;--field-ink:#faf7ff}
[data-field-tone=coral]{--field-fill:#bd5b48;--field-ink:#fff8ef}
[data-field-tone=blue]{--field-fill:#3459a2;--field-ink:#f6f8ff}
[data-field-tone=moss]{--field-fill:oklch(74.7585% 0.139048 171.3817);--field-ink:#083c2b}
:root[data-theme=dark] [data-field-tone=mist]{--field-fill:#303f56;--field-ink:#dce7f8}
:root[data-theme=dark] [data-field-tone=sand]{--field-fill:#514738;--field-ink:#eee0c9}
:root[data-theme=dark] [data-field-tone=sage]{--field-fill:#354b3e;--field-ink:#dbe8d4}
:root[data-theme=dark] [data-field-tone=moss]{--field-fill:#315446;--field-ink:#f2f5e6}
:root[data-theme=dark] [data-field-tone=lilac]{--field-fill:#463d56;--field-ink:#eadff6}
:is(.bubble-card,.depth-card)[data-field-tone]{background:var(--field-fill)!important;color:var(--field-ink)!important;--card-fill:var(--field-fill);--card-ink:var(--field-ink)}
:is(.bubble-card,.depth-card)[data-field-tone] :is(.card-title,.card-summary,.space-name,.space-mark){color:var(--field-ink)!important}
:root:not([data-theme=dark]) :is(.bubble-card,.depth-card):is([data-field-tone=sage],[data-field-tone=moss],[data-field-tone=lilac]) :is(.card-meta,.card-summary){color:var(--field-ink)!important;opacity:1}
.bubble-card[data-article-density=small] :is(.card-topic,.card-meta){display:none!important}
.bubble-card[data-article-density=small] .card-title{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.bubble-card[data-utility-shape=label] :is(.directory-toggle,.archive-toggle)>span:not(.utility-symbol){display:flex;flex-direction:column;gap:4px}
.bubble-card[data-utility-shape]:not([data-utility-shape=icon]) :is(.directory-toggle strong,#archive-title){font-size:calc(17px * var(--utility-readable,1));line-height:1.2}
.bubble-card[data-utility-shape]:not([data-utility-shape=icon]) :is(.directory-toggle small,.archive-toggle small){font-size:calc(10px * var(--utility-readable,1));line-height:1.2}

.music-card[data-music-shape=tile] .music-transport{background:#1119;backdrop-filter:blur(8px);border-radius:50%}
.depth-card[data-local-hover=true] :is(.motion-slot,.space-mark,.memory-logo){filter:drop-shadow(0 3px 5px #10182020);translate:0 -2px}
.depth-card :is(.motion-slot,.space-mark,.memory-logo){transition:translate .32s cubic-bezier(.2,.9,.25,1),filter .32s}
.depth-memory{border:0;cursor:pointer;font:inherit;display:grid!important;place-content:center;gap:10px;text-align:center}
.memory-logo{display:block;width:min(84px,60%);height:48px;object-fit:contain;margin:auto}
.depth-memory[data-memory-open=xiaomi] .memory-logo{width:48px}
.memory-name{font:600 16px/1.2 var(--ui)}
.memory-dialog{border:0;border-radius:24px;padding:28px;width:min(720px,80vw);min-height:300px;background:var(--theme-surface);color:var(--theme-ink);box-shadow:0 20px 80px #0004}
.memory-dialog::backdrop{background:#13192566;backdrop-filter:blur(10px)}
.memory-dialog header{display:flex;align-items:center;gap:16px}.memory-dialog header img{max-width:100px;height:44px;object-fit:contain}.memory-dialog h2{font:600 25px/1.2 var(--ui);margin:0}
.memory-dialog [data-memory-close]{float:right;border:0;border-radius:50%;width:32px;height:32px;background:var(--theme-soft);color:inherit;font:24px/1 var(--ui);cursor:pointer}
.memory-empty{margin:64px 0;text-align:center;font:14px/1.5 var(--ui);color:var(--theme-muted)}
.memory-images{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin-top:28px}.memory-images figure{margin:0}.memory-images img{width:100%;border-radius:12px}.memory-images figcaption{font:13px/1.5 var(--ui)}
@media(prefers-reduced-motion:reduce){.depth-card :is(.motion-slot,.space-mark,.memory-logo){transition:none;translate:none!important}}
.bubble-card[data-product-shape] .card-title{flex:none;line-height:1.15!important;margin:0}
.bubble-card[data-product-shape] .card-summary{display:none!important}
.bubble-card[data-product-shape] .card-meta{flex:none;font-size:var(--product-note-size,12px)!important;line-height:1.3}
.bubble-card[data-product-summary=false] .card-meta{display:none!important}
.hud-card[data-field-tone] :is(.mi-hud,.mi-hud svg,.mi-hud__label){color:var(--field-ink)!important}
.depth-memory{grid-template-columns:1fr!important;grid-auto-flow:row!important;align-content:center;justify-items:center;padding:10px!important;gap:6px}
.depth-memory .memory-logo{height:32px;width:64px;max-width:100%;margin:0}
.depth-memory[data-memory-open=xiaomi] .memory-logo{width:32px}
.depth-memory .memory-name{font-size:12px}
.memory-logo--dark{display:none!important}:root[data-theme=dark] .memory-logo--dark{display:block!important}:root[data-theme=dark] .memory-logo--light{display:none!important}

.bubble-card[data-article-density=small] .tile-arrow{display:none!important}

/* A complete authored name belongs to the artwork, not a second text overlay. */
.identity-card[data-name-embedded=true]{background:linear-gradient(125deg,#4e8e2d,#a6bd43)}
.identity-card[data-name-embedded=true]>img{object-fit:contain;scale:1}
.identity-card[data-name-embedded=true]:after{display:none}
.identity-card[data-name-embedded=true]>.card-title{left:0;bottom:auto;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}

/* Level zero: the original artwork remains the center; generated pixels only
   supply the surrounding landscape. No duplicate lettering or stretched image. */
.identity-card[data-name-embedded=true]>.identity-landscape{inset:auto;left:50%;top:50%;translate:-50% -50%;width:calc(var(--portrait-art-width,100%) / .34);height:auto;max-width:none;object-fit:contain;opacity:1;scale:1;pointer-events:none}
.identity-card[data-name-embedded=true]>[data-daily-avatar]{inset:auto;left:50%;top:50%;translate:-50% -50%;width:var(--portrait-art-width,100%);height:auto;max-width:none;--art-edge:3%;mask-image:linear-gradient(to right,transparent,#000 var(--art-edge),#000 calc(100% - var(--art-edge)),transparent),linear-gradient(to bottom,transparent,#000 var(--art-edge),#000 calc(100% - var(--art-edge)),transparent);mask-composite:intersect}
[data-portrait-active=true] .bubble-band>.desk-card:not(.identity-card),[data-portrait-active=true] .bubble-band>.bubble-flip-shell,[data-portrait-active=true] .depth-ring{pointer-events:none!important}

/* Gesture release has a quiet, clipped surface wave, never a glowing border. */
.pinch-ripple{position:absolute;inset:-12%;z-index:4;pointer-events:none;opacity:0;background:radial-gradient(ellipse,transparent 44%,rgb(255 255 245 / .65) 54%,transparent 66%);transform-origin:center;mix-blend-mode:soft-light}
[data-gesture-state=tracking] .identity-card::before,[data-gesture-state=settling] .identity-card::before{opacity:0!important;transition:none}
@media(prefers-reduced-motion:reduce){.pinch-ripple{display:none}}
body.reduced-motion .pinch-ripple{display:none}

/* Inverted lilac shells keep small utility labels as legible as their titles. */
:root:not([data-theme=dark]) :is(.bubble-card,.depth-card)[data-field-tone=lilac] :is(.directory-toggle small,.archive-kicker,.card-topic){color:var(--field-ink)!important;opacity:1}
