@charset "UTF-8";
/* r5: paper-gray application with berry, lavender and coral accents. */
:root{--paper:#ececeb;--surface:#f6f5f4;--ink:#222222;--muted:#686267;--line:#d5cfd2;--soft:#e9dfe3;--accent:#ad314d;--button:#ad314d;--header:78px;--gutter:44px;--gap:20px;--display:"Inter",-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,"PingFang SC",sans-serif;color-scheme:light}

*{box-sizing:border-box}html{scroll-padding-top:calc(var(--header) + 22px)}body{margin:0;background:var(--paper);color:var(--ink);font:14px var(--display);-webkit-font-smoothing:antialiased}button,input,select{font:inherit;color:inherit}button,a{touch-action:manipulation;-webkit-tap-highlight-color:transparent}button{cursor:pointer;background:none;border:0}button:disabled{cursor:default;opacity:.38}button:active:not(:disabled){transform:translateY(1px)}a{color:inherit;text-decoration:none}button,a,input,select,summary{outline-offset:4px}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,summary:focus-visible{outline:2px solid var(--accent)}img{max-width:100%;display:block}svg{flex-shrink:0}h1,h2,h3,p{margin:0}[hidden]{display:none!important}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}.skip{position:fixed;top:-100px;left:18px;z-index:20;background:var(--accent);color:#e5dce0;padding:13px}.skip:focus{top:10px}
.masthead{height:var(--header);position:sticky;top:0;z-index:5;display:flex;align-items:center;gap:30px;padding:0 var(--gutter);background:var(--paper);border-bottom:1px solid var(--line)}.brand{display:flex;align-items:center;gap:10px;white-space:nowrap}.brand img{width:34px;height:34px}.brand span{font-size:19px;letter-spacing:-.8px;font-weight:750}.brand img,.foot-brand img{filter:none}:root[data-theme=light] .brand img,:root[data-theme=light] .foot-brand img{filter:none}.nav{display:flex;gap:27px;align-self:stretch;align-items:center;white-space:nowrap}.nav a{display:flex;height:100%;align-items:center;position:relative;color:var(--muted);font-size:13px}.nav a:hover{color:var(--ink)}.nav a[aria-current=page]{color:var(--ink)}.nav a[aria-current=page]:after{content:"";position:absolute;bottom:16px;height:2px;left:0;right:0;background:var(--accent)}.search{height:39px;display:flex;align-items:center;gap:9px;border:1px solid var(--line);border-radius:7px;padding:0 12px;flex:1;min-width:100px;max-width:330px;margin-left:auto;background:var(--surface)}.search:focus-within{border-color:var(--accent)}.search input{width:100%;min-width:0;background:none;border:0;outline:none;font-size:12px}.search input:focus-visible{outline:none}.search input::placeholder{color:var(--muted)}.search input::-webkit-search-cancel-button{display:none}.search button{padding:0 3px;font-size:20px}.search svg,.search kbd{color:var(--muted)}.search kbd{font-size:10px;border:1px solid var(--line);padding:2px 5px;border-radius:3px}.saved-link{display:flex;align-items:center;gap:8px;white-space:nowrap;font-size:12px}.saved-link[aria-current=page]{color:var(--accent)}.saved-link b{font:10px ui-monospace,monospace;color:var(--muted)}
#main{max-width:1760px;margin:auto;padding:0 var(--gutter)}
.micro{font:10px ui-monospace,monospace;letter-spacing:1.8px;color:var(--muted)}.board-shelf{padding:35px 0 33px;border-bottom:1px solid var(--line)}.shelf-label{display:flex;align-items:end;justify-content:space-between;margin-bottom:22px}.shelf-label h2{font-size:23px;font-weight:500;margin-top:9px;letter-spacing:-.7px}.shelf-arrows{display:flex;gap:8px}.shelf-arrows button{border:1px solid var(--line);border-radius:50%;width:35px;height:35px;font-size:16px}.shelf-arrows button:hover:not(:disabled){border-color:var(--accent);color:var(--accent)}.boards{display:flex;gap:18px;overflow-x:auto;scrollbar-width:none;overscroll-behavior-x:contain;scroll-snap-type:x proximity;padding:2px 1px 6px}.boards::-webkit-scrollbar{display:none}.board{position:relative;padding:0;flex:0 0 calc((100% - 54px)/4);min-width:240px;text-align:left;scroll-snap-align:start;overflow:hidden;border-radius:6px;background:var(--surface);border:1px solid var(--line);transition:border-color .25s}.board:hover{border-color:var(--accent)}.board-images{height:135px;display:grid;grid-template-columns:1.6fr 1fr;grid-template-rows:1fr 1fr;gap:2px;overflow:hidden}.board-images img{height:100%;width:100%;object-fit:cover;min-height:0;transition:transform .35s}.board-images img:first-child{grid-row:1/3}.board:hover img{transform:scale(1.04)}.board-bottom{display:flex;justify-content:space-between;align-items:center;padding:13px 13px 14px;gap:10px}.board-title{font-size:13px;font-weight:500}.board-kicker{font:10px ui-monospace,monospace;color:var(--muted);white-space:nowrap}.board[aria-pressed=true]{border-color:var(--accent)}
.section-intro{padding:48px 0 35px;display:flex;align-items:end;justify-content:space-between;gap:35px;border-bottom:1px solid var(--line)}.section-intro h1{font-size:clamp(30px,4vw,54px);font-weight:550;letter-spacing:-1.5px;margin:14px 0}.section-intro p{color:var(--muted);font-size:13px;line-height:1.9;max-width:620px}.intro-aside{display:flex;flex-direction:column;gap:20px;align-items:end}.intro-mark{font:11px ui-monospace,monospace;text-transform:uppercase;color:var(--accent);letter-spacing:1px}.intro-actions{display:flex;gap:20px}.text-link{padding:7px 0;font-size:12px;border-bottom:1px solid var(--line);color:var(--ink)}.text-link:hover{color:var(--accent);border-color:var(--accent)}
.library{display:grid;grid-template-columns:154px minmax(0,1fr);gap:30px;padding:30px 0 0}.index{position:sticky;align-self:start;top:calc(var(--header) + 25px)}.index-top{display:flex;justify-content:space-between;align-items:center;padding:12px 0 20px}.index-top h2{font-size:12px;font-weight:500}.index-top>span{font-size:9px;color:var(--muted)}.index nav{display:grid;gap:5px}.use-button{display:flex;align-items:center;justify-content:space-between;gap:5px;text-align:left;padding:11px 11px;font-size:12px;min-height:41px;border-left:2px solid transparent;border-radius:0 4px 4px 0;color:var(--muted)}.use-button b{font:10px ui-monospace,monospace;font-weight:400}.use-button:hover{background:var(--surface);color:var(--ink)}.use-button[aria-pressed=true]{background:var(--soft);border-left-color:var(--accent);color:var(--ink)}.index-note{font-size:11px;line-height:1.9;color:var(--muted);border-top:1px solid var(--line);padding:22px 11px;margin-top:24px}.collection{min-width:0}.collection-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:4px 0 22px;min-height:55px}.collection-heading{display:flex;align-items:baseline;gap:11px;min-width:0}.collection-heading h2{font-size:17px;font-weight:500;white-space:nowrap}.collection-heading>span{font:10px ui-monospace,monospace;color:var(--muted);white-space:nowrap}.mobile-purpose{display:none}.view-tools{display:flex;align-items:center;gap:14px}.style-select{display:flex;align-items:center;gap:9px;font-size:11px;color:var(--muted)}select{background:var(--surface);border:1px solid var(--line);border-radius:4px;padding:7px 9px;font-size:11px;max-width:180px}select:hover{border-color:var(--muted)}.density{padding:7px;display:grid;place-items:center;min-height:32px}.density[aria-pressed=true]{color:var(--accent)}.playable{display:flex;align-items:center;white-space:nowrap;font-size:11px;gap:6px}.playable input{accent-color:var(--button)}.active-filters{display:flex;align-items:center;gap:8px;flex-wrap:wrap;padding:0 0 19px}.active-filters button{padding:6px 9px;border:1px solid var(--line);border-radius:4px;font-size:11px}.active-filters button:hover{border-color:var(--accent)}.active-filters .clear-all{border:0;color:var(--muted)}
.grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));grid-auto-rows:1px;column-gap:var(--gap);row-gap:0;align-items:start}.grid.is-dense{grid-template-columns:repeat(5,minmax(0,1fr))}.grid.is-motion{grid-template-columns:repeat(3,minmax(0,1fr))}.grid.is-motion.is-dense{grid-template-columns:repeat(4,minmax(0,1fr))}.work{min-width:0;align-self:start;display:flex;flex-direction:column}.work-media{position:relative;overflow:hidden;border-radius:5px;background:var(--soft);flex:none}.work-open{display:block;position:relative;z-index:0;padding:0;width:100%;overflow:hidden}.work-open img{width:100%;height:100%;object-fit:cover;transition:transform .45s cubic-bezier(.2,.65,.2,1)}.work:hover .work-open>img{transform:scale(1.035)}.work-media>video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;pointer-events:none;z-index:1}.work-actions{position:absolute;top:10px;right:10px;left:10px;z-index:3;display:flex;justify-content:space-between;gap:5px;opacity:0;transform:translateY(-3px);transition:opacity .16s,transform .16s;pointer-events:none}.work-actions button{pointer-events:auto;display:flex;align-items:center;justify-content:center;gap:5px;color:#3e2932;background:#fff7f9ed;border:1px solid #ffffffb8;border-radius:4px;padding:8px 9px;font-size:10px;min-height:32px}.work:hover .work-actions,.work:focus-within .work-actions{opacity:1;transform:none}.work-actions button:hover{background:#f5dce4}.save-button[aria-pressed=true]{color:#ad314d}.saved-marker{position:absolute;bottom:8px;right:8px;color:#fff;pointer-events:none;padding:5px;background:#ad314de0;border-radius:3px;z-index:2}.motion-badge{position:absolute;bottom:8px;left:8px;background:#fff7f9eb;color:#542839;border:1px solid #ffffff99;padding:5px 7px;border-radius:3px;font-size:9px;z-index:2;pointer-events:none}.work-caption{padding:10px 1px 7px;min-width:0;flex:none}.work-caption>button{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;font-size:12px;line-height:1.6;padding:0;text-align:left;width:100%;font-weight:450}.work-caption>button:hover{color:var(--accent)}.work-byline{display:flex;justify-content:space-between;gap:9px;color:var(--muted);font-size:10px;margin-top:6px;line-height:1.4}.work-byline>span:first-child{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.work-byline>span:last-child{white-space:nowrap;opacity:.8}.broken-label{display:grid;place-items:center;width:100%;height:100%;position:absolute;inset:0;padding:18px;color:var(--muted);font-size:12px}.feed-end{display:flex;flex-direction:column;align-items:center;gap:18px;padding:28px 0 40px}.feed-end>span{font:10px ui-monospace,monospace;color:var(--muted)}.pager{display:flex;align-items:center;justify-content:center;gap:8px;flex-wrap:wrap;padding:2px 0 16px}.feed-end .pager{padding:4px 0 0}.pager-pages{display:flex;align-items:center;gap:4px;flex-wrap:wrap;justify-content:center}.pager>button,.pager-pages button{min-height:36px;min-width:36px;padding:8px 12px;border:1px solid var(--line);border-radius:8px;font-size:12px;background:rgba(255,255,255,.58)}.pager>button:hover:not(:disabled),.pager-pages button:hover{border-color:var(--accent);color:var(--accent)}.pager-pages button[aria-current=page]{border-color:var(--accent);color:var(--accent);background:#fff}.pager-gap{color:var(--muted);padding:0 4px;font-size:12px}.empty{padding:60px 0 80px}.empty h3{font-size:25px;font-weight:500}.empty p{font-size:13px;color:var(--muted);line-height:1.9;margin:15px 0 22px;max-width:540px}.empty button{background:var(--button);padding:12px 20px;color:white;border-radius:5px}.loading-lines{height:220px;background:var(--surface);grid-column:1/-1}
.tool-list{display:block}.tool-row{display:grid;grid-template-columns:54px minmax(0,1fr) 90px;gap:20px;align-items:start;padding:28px 0;border-bottom:1px solid var(--line)}.tool-monogram{font-size:27px;font-weight:500;color:var(--accent);height:43px;display:flex;align-items:center;justify-content:center;overflow:hidden}.tool-monogram img{width:100%;height:100%;object-fit:contain;display:block}.tool-monogram b{display:none;font-weight:500}.tool-monogram.is-letter b{display:block}.tool-row h3{font-size:22px;font-weight:550;letter-spacing:-.5px;margin:0 0 10px}.tool-row h3 small{font-size:10px;font-weight:400;color:var(--muted);margin-left:15px;letter-spacing:0}.tool-row p{font-size:13px;line-height:1.9;max-width:710px}.tool-row .tool-why{color:var(--muted);font-size:11px;margin-top:8px}.tool-row>a{font-size:12px;padding:8px 0;text-align:right;color:var(--accent)}.tool-row>a:hover{text-decoration:underline}.site-foot{border-top:1px solid var(--line);margin:15px var(--gutter) 0;padding:42px 0 54px}.foot-brand{display:inline-flex;align-items:center;gap:12px}.foot-brand span{font-size:33px;letter-spacing:-1.8px;font-weight:750}.foot-brand img{height:45px;width:45px}
.viewer{width:min(1270px,calc(100vw - 64px));max-width:none;max-height:calc(100dvh - 48px);padding:0;border:1px solid var(--line);margin:auto;border-radius:9px;background:var(--paper);color:var(--ink);overscroll-behavior:contain}.viewer::backdrop{background:#64585f70}.viewer[open]{animation:viewer-in .22s ease-out}@keyframes viewer-in{from{opacity:0;transform:translateY(9px) scale(.988)}to{opacity:1;transform:none}}.viewer-bar{position:sticky;top:0;z-index:4;display:flex;align-items:center;justify-content:space-between;background:var(--paper);height:58px;padding:0 23px;border-bottom:1px solid var(--line);font-size:11px}.viewer-bar>span{color:var(--muted);font:10px ui-monospace,monospace}.viewer-bar button{min-width:36px;min-height:36px}.viewer-bar>button{padding:0}.viewer-bar>button>span{margin-right:8px}.viewer-bar>div{display:flex;gap:8px}.viewer-body{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr)}.viewer-stage{background:var(--surface);padding:28px;display:flex;align-items:center;justify-content:center;min-height:480px;position:sticky;top:58px;align-self:start}.viewer-stage>img,.viewer-stage>video{width:100%;height:auto;max-height:calc(100dvh - 174px);object-fit:contain}.viewer-stage>video{background:#e5dce0}.viewer-info{padding:28px 31px 32px;min-width:0}.viewer-eyebrow{font-size:10px;line-height:1.7;color:var(--accent);margin-bottom:15px}.viewer-info h2{font-size:26px;line-height:1.45;letter-spacing:-.5px;font-weight:550;margin:0 0 13px}.byline{font-size:12px;line-height:1.7;color:var(--muted)}.byline a{color:var(--ink);text-decoration:underline;text-underline-offset:4px}.detail-actions{display:flex;gap:9px;margin:23px 0}.primary-button{background:var(--button);color:#fff;flex:1;padding:13px 18px;border:1px solid #b75067;border-radius:5px;font-size:12px}.primary-button:hover{filter:brightness(1.12)}.detail-save{display:flex;gap:7px;align-items:center;border:1px solid var(--line);padding:10px 15px;border-radius:5px;font-size:12px}.detail-save[aria-pressed=true]{border-color:var(--accent);color:var(--accent)}.prompt-heading{display:flex;justify-content:space-between;font:10px ui-monospace,monospace;color:var(--muted);gap:15px;padding:7px 0 12px}.v-prompt{white-space:pre-wrap;overflow-wrap:anywhere;margin:0;background:var(--surface);padding:17px 18px;border:1px solid var(--line);border-radius:5px;font:12px/1.95 ui-monospace,"PingFang SC",monospace;max-height:250px;overflow:hidden}.v-prompt.is-expanded{max-height:none}.prompt-expand{font-size:11px;color:var(--accent);padding:12px 0 0}.secondary-actions{display:flex;flex-wrap:wrap;gap:15px;margin:19px 0 23px;align-items:center}.secondary-actions>a,.secondary-actions>button{font-size:11px;padding:6px 0;border-bottom:1px solid var(--line)}.secondary-actions>a:hover,.secondary-actions>button:hover{color:var(--accent)}.related{padding:30px;border-top:1px solid var(--line)}.related-heading{display:flex;align-items:center;justify-content:space-between;gap:15px;margin-bottom:20px}.related-heading h3{font-size:18px;font-weight:500}.related-heading small{font-size:10px;color:var(--muted)}.related-list{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:18px}.related-work{padding:0;text-align:left;min-width:0}.related-work img{width:100%;height:130px;object-fit:cover;border-radius:4px}.related-work span{font-size:11px;display:block;margin-top:9px;white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.related-work:hover{color:var(--accent)}
.toast{position:fixed;bottom:25px;left:50%;transform:translate(-50%,10px);background:var(--ink);color:var(--paper);font-size:12px;padding:14px 19px;border-radius:5px;display:flex;gap:20px;align-items:center;z-index:10;max-width:calc(100vw - 30px);width:max-content;opacity:0;visibility:hidden;transition:opacity .2s,transform .2s}.toast.is-visible{opacity:1;visibility:visible;transform:translate(-50%,0)}.toast button{text-decoration:underline;padding:0;color:inherit;min-height:26px}.viewer .toast{position:sticky;bottom:16px;left:0;margin:0 auto 16px;transform:none}
@media(min-width:1600px){.grid{grid-template-columns:repeat(5,minmax(0,1fr))}.grid.is-dense{grid-template-columns:repeat(6,minmax(0,1fr))}}
@media(max-width:1150px){:root{--gutter:28px;--gap:17px}.masthead{gap:21px}.nav{gap:19px}.saved-link>span{display:none}.board{flex-basis:calc((100% - 36px)/3);min-width:225px}.library{grid-template-columns:137px minmax(0,1fr);gap:24px}.grid{grid-template-columns:repeat(3,minmax(0,1fr))}.grid.is-dense{grid-template-columns:repeat(4,minmax(0,1fr))}.grid.is-motion{grid-template-columns:repeat(2,minmax(0,1fr))}.grid.is-motion.is-dense{grid-template-columns:repeat(3,minmax(0,1fr))}.viewer-info{padding:24px}.viewer-stage{padding:20px}}
@media(max-width:780px){:root{--gutter:22px;--header:119px;--gap:16px}.masthead{height:119px;display:grid;grid-template-columns:auto 1fr auto auto;grid-template-rows:40px 37px;gap:9px 16px;padding:12px var(--gutter)}.brand span{font-size:17px}.brand img{width:29px;height:29px}.brand{gap:7px}.nav{justify-self:end;gap:17px}.nav a{font-size:12px}.nav a[aria-current=page]:after{bottom:1px}.saved-link{grid-column:3;gap:5px}.search{grid-column:1/-1;grid-row:2;width:100%;max-width:none;height:37px}.search kbd{display:none}.library{display:block;padding-top:22px}.index{display:none}.mobile-purpose{display:block}.mobile-purpose select{padding:6px 8px;max-width:140px;font-size:12px}.collection-heading h2{display:none}.collection-heading{gap:9px}.collection-toolbar{gap:10px;padding-bottom:19px}.style-select>span{display:none}.view-tools{gap:7px}.grid,.grid.is-dense{grid-template-columns:repeat(3,minmax(0,1fr))}.grid.is-motion,.grid.is-motion.is-dense{grid-template-columns:repeat(2,minmax(0,1fr))}.work-actions{opacity:1;transform:none;left:auto;top:7px;right:7px}.work-actions .card-copy{display:none}.work-actions .save-word{display:none}.work-actions button{width:32px;height:32px;padding:7px}.saved-marker{display:none}.board{min-width:230px;flex-basis:230px}.board-images{height:118px}.shelf-label h2{font-size:21px}.micro{font-size:9px}.board-shelf{padding-top:27px;padding-bottom:25px}.boards{margin-right:calc(-1 * var(--gutter));padding-right:var(--gutter)}.section-intro{padding:32px 0 27px}.section-intro h1{font-size:32px}.intro-mark{display:none}.section-intro p{font-size:12px}.viewer{width:calc(100vw - 24px);max-height:calc(100dvh - 24px)}.viewer-body{grid-template-columns:1fr}.viewer-stage{position:static;min-height:0;padding:18px}.viewer-stage>img,.viewer-stage>video{max-height:50dvh;width:100%;height:auto}.viewer-info{padding:24px}.viewer-info h2{font-size:24px}.related{padding:24px}.related-work img{height:110px}.related-list{gap:12px}.related-heading small{display:none}.tool-row{grid-template-columns:40px minmax(0,1fr) 65px;gap:14px}.tool-monogram{width:40px;height:40px}.tool-row h3 small{display:block;margin:7px 0 0}.tool-row h3{font-size:20px}}
@media(max-width:480px){:root{--gutter:18px;--gap:13px}.masthead{grid-template-columns:auto 1fr auto;column-gap:12px}.nav{gap:14px}.nav a{font-size:11px}.saved-link b{display:none}.brand span{font-size:16px}.brand img{width:26px;height:26px}.shelf-label h2{font-size:19px;margin-top:8px}.shelf-label{margin-bottom:17px}.shelf-arrows button{width:32px;height:32px}.shelf-arrows{gap:6px}.micro{font-size:8px;letter-spacing:1.4px}.board{flex-basis:228px;min-width:228px}.board-images{height:115px}.board-title{font-size:12px}.board-kicker{font-size:9px}.board-bottom{padding:12px}.grid,.grid.is-dense,.grid.is-motion,.grid.is-motion.is-dense{grid-template-columns:repeat(2,minmax(0,1fr))}.work-caption>button{font-size:11px}.work-byline{font-size:9px}.work-byline>span:last-child{display:none}.work-caption{padding-top:8px}.motion-badge{font-size:8px;bottom:6px;left:6px;padding:4px 5px}.collection-toolbar{flex-wrap:wrap}.collection-heading{gap:7px}.mobile-purpose select{max-width:122px;font-size:11px}.style-select select{max-width:119px;font-size:10px}.collection-heading>span{font-size:9px}.view-tools{margin-left:auto}.density{display:none}.playable{font-size:9px;gap:3px}.section-intro{display:block}.intro-aside{margin-top:18px;align-items:start}.section-intro h1{font-size:29px;letter-spacing:-.6px}.viewer{width:100%;max-height:100dvh;height:100dvh;border:0;border-radius:0;margin:0}.viewer-bar{height:55px;padding:0 17px}.viewer-info{padding:23px 19px 27px}.viewer-stage{padding:17px;top:55px}.viewer-stage>img,.viewer-stage>video{max-height:44dvh}.viewer-info h2{font-size:23px}.detail-actions{gap:7px}.detail-save{padding:10px 13px}.primary-button{padding:12px 15px}.v-prompt{font-size:12px;padding:14px;line-height:1.9}.related{padding:24px 19px}.related-list{grid-template-columns:repeat(2,minmax(0,1fr));gap:20px 13px}.related-work img{height:135px}.related-heading h3{font-size:16px}.tool-row{grid-template-columns:36px minmax(0,1fr);gap:14px;padding:25px 0}.tool-row>a{grid-column:2;text-align:left;padding:0}.tool-monogram{font-size:22px;width:36px;height:36px;border-radius:9px;padding:4px}.tool-row h3{font-size:21px}.tool-row p{font-size:12px}.tool-row .tool-why{font-size:11px}.site-foot{padding:30px 0 45px}.foot-brand span{font-size:29px}.foot-brand img{width:37px;height:37px}.toast{font-size:11px;gap:13px;padding:11px 15px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}.work:hover .work-open>img,.board:hover img{transform:none}}

/* Material continuity: pale surfaces, berry/lavender/coral section accents. */
.tool-row h3{flex-wrap:wrap}.resource-byline,.catalog-note{font-size:11px;color:var(--muted);line-height:1.7}.course-directory{margin-top:16px}.course-directory summary{cursor:pointer;font-size:13px;font-weight:500;line-height:1.6;padding:4px 0;color:var(--ink)}.course-group{margin-top:18px}.course-group h4{display:flex;flex-wrap:wrap;align-items:baseline;gap:8px;font-size:12px;font-weight:600;line-height:1.6;letter-spacing:.04em;color:var(--ink)}.course-group h4 span{font-size:11px;font-weight:400;color:var(--muted)}.course-group .catalog-note{margin-top:4px}.course-directory ol{margin:10px 0 0;padding-left:20px;display:grid;gap:10px}.course-directory li i{font-style:normal;color:var(--muted)}.course-directory li span{color:var(--ink)}.course-directory li{font-size:13px;line-height:1.7;padding-left:3px;overflow-wrap:anywhere}.course-directory a:hover{text-decoration:underline;text-underline-offset:3px}.course-directory a:focus-visible{outline:2px solid var(--accent);outline-offset:3px}
.source-links{display:flex;flex-wrap:wrap;gap:10px 20px;border-top:1px solid var(--line);padding-top:18px;margin-top:22px;font-size:12px;color:var(--muted)}.source-links a{padding:5px 0}.source-links a:hover{color:var(--accent)}.media-note{font-size:11px;color:var(--muted);line-height:1.6}
.media-error{max-width:100%;padding:28px;text-align:center;color:var(--ink)}.media-error h3{font-size:18px;font-weight:600;line-height:1.45}.media-error p{font-size:14px;line-height:1.75;color:var(--muted)}.media-error .primary-button{display:inline-flex;justify-content:center;min-height:44px;margin-top:12px}
body{font-optical-sizing:auto;text-rendering:geometricPrecision}.masthead{background:rgba(236,236,235,.91);backdrop-filter:blur(18px)}html[data-page=motion]{--accent:#815498;--button:#815498;--soft:#e6ddec}html[data-page=stash]{--accent:#aa4937;--button:#aa4937;--soft:#efdfd7}.section-intro{position:relative;padding-top:38px}.section-intro:before{content:"";position:absolute;inset:0;z-index:-1;background:radial-gradient(ellipse at 94% 20%,#e6ced9b0,transparent 55%)}html[data-page=motion] .section-intro:before{background:radial-gradient(ellipse at 94% 20%,#ddd0ecb0,transparent 55%)}html[data-page=stash] .section-intro:before{background:radial-gradient(ellipse at 94% 20%,#efcebfaf,transparent 55%)}.board{border-radius:12px;border-color:#ffffff90;box-shadow:0 2px 5px #3d283c12}.work-media{border-radius:10px}.work-actions button{backdrop-filter:blur(12px)}.viewer{border-radius:17px;background:#f3f0f1;box-shadow:0 22px 90px #503a4929}.viewer::backdrop{backdrop-filter:blur(7px)}.primary-button{border-color:var(--button);border-radius:999px}.detail-save{border-radius:999px}.use-button{border-radius:8px;border-left:0}.use-button[aria-pressed=true]{box-shadow:inset 0 0 0 1px #ad314d1c}.search,select{border-radius:999px}.search{padding-inline:14px}.tool-monogram{width:44px;height:44px;border-radius:11px;background:#fff;box-shadow:inset 0 0 0 1px #00000010;padding:5px}.tool-monogram.is-letter{background:#ecdad1;padding:0}.masthead .brand img{filter:none}.dot-number .dot-svg{height:auto}

/* ── r5.7 interior material: portal's paper + glass language carried inside ── */

/* 1. Paper base. Same #ececeb ground as the portal, now with real grain. */
.paper-grain{position:fixed;inset:0;z-index:0;pointer-events:none;opacity:.42;mix-blend-mode:soft-light;
  background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.54' numOctaves='3' seed='27' stitchTiles='stitch'/%3E%3CfeColorMatrix type='saturate' values='0'/%3E%3C/filter%3E%3Crect width='180' height='180' filter='url(%23n)' opacity='.58'/%3E%3C/svg%3E")}
html[data-page=home] .paper-grain{display:none}
body{background:radial-gradient(118% 86% at 16% 0%,#f3f2f0 0%,#ececeb 46%,#e4e2e0 100%) fixed,var(--paper)}
#main,.site-foot{position:relative;z-index:1}

/* 2. Section hero — generated imagery, pre-softened and blended into glass. */
.section-intro{align-items:stretch;gap:0;padding:0;margin:26px 0 0;border-bottom:0;border-radius:20px;
  --section-banner-image:url("banners/section-gallery.webp");--section-banner-position:center 51%;
  --section-banner-tint:rgba(112,24,48,.56);--section-banner-depth:rgba(50,16,27,.36);--section-banner-light:rgba(255,221,229,.24);
  overflow:hidden;isolation:isolate;color:#fff;border:1px solid rgba(255,255,255,.36);
  background:linear-gradient(90deg,rgba(42,13,25,.66) 0%,rgba(82,25,42,.40) 43%,rgba(48,15,32,.36) 100%),radial-gradient(ellipse 52% 92% at 90% 58%,var(--section-banner-light),transparent 68%),linear-gradient(180deg,var(--section-banner-tint),var(--section-banner-depth)),var(--section-banner-image) var(--section-banner-position)/cover no-repeat,#a84562;
  box-shadow:0 2px 4px rgba(50,28,39,.28),0 18px 40px rgba(60,30,45,.13),inset 0 1px 0 rgba(255,255,255,.24)}
html[data-page=motion] .section-intro{--section-banner-image:url("banners/section-motion.webp");--section-banner-position:center 48%;--section-banner-tint:rgba(80,54,132,.54);--section-banner-depth:rgba(38,24,63,.40);--section-banner-light:rgba(221,205,255,.22)}
html[data-page=stash] .section-intro{--section-banner-image:url("banners/section-stash.webp");--section-banner-position:center 54%;--section-banner-tint:rgba(188,68,44,.50);--section-banner-depth:rgba(99,35,26,.38);--section-banner-light:rgba(255,207,178,.24)}
html[data-page=saved] .section-intro{--section-banner-image:url("banners/section-gallery.webp");--section-banner-position:center 38%;--section-banner-tint:rgba(113,79,146,.54);--section-banner-depth:rgba(56,36,74,.40);--section-banner-light:rgba(231,207,255,.22)}
/* specular sheen + grain, exactly the portal card recipe */
.section-intro:before{content:"";position:absolute;inset:0;z-index:1;pointer-events:none;mix-blend-mode:screen;background:
  linear-gradient(102deg,rgba(255,255,255,.10),transparent 28%,rgba(255,255,255,.08) 62%,transparent 88%),
  radial-gradient(ellipse 85% 46% at 54% 2%,rgba(255,255,255,.24),transparent 72%)}
.section-intro:after{content:"";position:absolute;inset:-8%;z-index:2;pointer-events:none;opacity:.46;mix-blend-mode:soft-light;
  background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='200' height='200'%3E%3Cfilter id='g'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.54' numOctaves='3' seed='27' stitchTiles='stitch'/%3E%3CfeColorMatrix type='saturate' values='0'/%3E%3C/filter%3E%3Crect width='200' height='200' filter='url(%23g)'/%3E%3C/svg%3E")}
.section-intro>*{position:relative;z-index:3}
.section-intro>div:first-child{padding:40px 40px 38px;max-width:min(100%,720px)}
.section-intro .micro{color:rgba(255,255,255,.72)}
.section-intro h1{color:#fff;font-weight:600;letter-spacing:-.6px;line-height:1.24;margin:13px 0 0;
  text-shadow:0 1px 2px rgba(72,28,48,.16)}
.section-intro p{color:rgba(255,255,255,.86);font-size:13.5px;line-height:1.85;margin:14px 0 0;max-width:46ch;text-wrap:balance;
  text-shadow:0 1px 2px rgba(60,21,35,.14)}
.intro-aside{justify-content:flex-end;gap:14px;padding:40px 40px 38px;flex:0 0 auto}
.intro-mark{color:rgba(255,255,255,.82);letter-spacing:1.1px}
/* count in the portal's bitmap type */
.intro-count{display:flex;align-items:flex-end;gap:8px;color:#fff;filter:drop-shadow(0 1px 1px rgba(104,27,54,.12))}
.intro-count .dot-number{display:block;height:38px}
.intro-count .dot-svg{display:block;width:auto;height:100%;overflow:visible;color:inherit}
.intro-count small{font-size:13px;color:rgba(255,255,255,.8);line-height:1;padding-bottom:2px}
/* white pill, same atom as the portal's 了解更多 */
.section-intro .text-link{border:0;border-radius:999px;background:rgba(255,255,255,.97);color:#2d2d2d;
  padding:0 20px;height:40px;display:inline-flex;align-items:center;gap:7px;font-size:12.5px;white-space:nowrap;
  box-shadow:0 1px 0 rgba(255,255,255,.5) inset,0 1px 3px rgba(58,25,39,.10);transition:transform .18s ease,box-shadow .18s ease}
.section-intro .text-link:hover{color:#2d2d2d;transform:translateY(-2px);box-shadow:0 8px 20px rgba(58,25,39,.18)}
.intro-actions{gap:10px}

/* 3. Filter rail and cards lift onto frosted glass instead of bare hairlines. */
.use-button{border-left:0;border-radius:10px;transition:background .2s,color .2s}
.use-button[aria-pressed=true]{background:rgba(255,255,255,.78);color:var(--ink);
  box-shadow:0 1px 2px rgba(60,40,52,.07),inset 0 0 0 1px rgba(255,255,255,.9)}
.use-button b{opacity:.72}
.index-note{border-top:1px solid rgba(255,255,255,.7);padding-top:20px}
.board,.tool-row,.collection-toolbar,select,.search,.active-filters button,.shelf-arrows button{
  -webkit-backdrop-filter:blur(14px) saturate(1.04);backdrop-filter:blur(14px) saturate(1.04)}
.board{background:rgba(255,255,255,.66);border:1px solid rgba(255,255,255,.72);border-radius:14px;
  box-shadow:0 1px 2px rgba(60,40,52,.05),0 8px 22px rgba(60,40,52,.07)}
.board:hover{border-color:rgba(255,255,255,.95);box-shadow:0 3px 6px rgba(60,40,52,.07),0 14px 30px rgba(60,40,52,.11)}
.board[aria-pressed=true]{border-color:var(--accent)}
.shelf-arrows button{border-color:rgba(255,255,255,.8);background:rgba(255,255,255,.62);border-radius:999px}
select,.active-filters button{border-color:rgba(255,255,255,.78);background:rgba(255,255,255,.66)}

/* 4. Stash rows become glass cards — the portal's object language, one size down. */
.tool-row{padding:22px;margin-bottom:12px;border-bottom:0;border-radius:16px;align-items:center;
  background:rgba(255,255,255,.62);border:1px solid rgba(255,255,255,.72);
  box-shadow:0 1px 2px rgba(60,40,52,.05),0 8px 22px rgba(60,40,52,.06);
  transition:transform .2s ease,box-shadow .2s ease,border-color .2s ease}
.tool-row:hover{transform:translateY(-2px);border-color:rgba(255,255,255,.96);
  box-shadow:0 3px 6px rgba(60,40,52,.07),0 16px 34px rgba(60,40,52,.11)}
.tool-row:last-child{margin-bottom:0}
.tool-monogram{align-self:start}
.tool-row h3 small{display:inline-flex;align-items:center;margin-left:12px;padding:3px 9px;border-radius:999px;
  background:var(--soft);color:var(--accent);font-size:10px;letter-spacing:.2px}
.tool-row>a{align-self:start;display:inline-flex;align-items:center;justify-content:center;gap:6px;
  height:36px;padding:0 15px;border-radius:999px;background:rgba(255,255,255,.95);color:#2d2d2d;
  box-shadow:0 1px 0 rgba(255,255,255,.5) inset,0 1px 3px rgba(58,25,39,.09);
  transition:transform .18s ease,box-shadow .18s ease}
.tool-row>a:hover{text-decoration:none;transform:translateY(-2px);box-shadow:0 8px 18px rgba(58,25,39,.16)}
.course-directory summary{border-radius:9px}

/* 5. Sticky header sits on the same paper, frosted rather than opaque. */
.masthead{background:rgba(238,238,236,.78);-webkit-backdrop-filter:blur(20px) saturate(1.06);
  backdrop-filter:blur(20px) saturate(1.06);border-bottom-color:rgba(255,255,255,.62)}
.search{background:rgba(255,255,255,.6);border-color:rgba(255,255,255,.78)}

@media(max-width:780px){
  .section-intro{display:flex;flex-direction:column;margin-top:18px;border-radius:16px}
  .section-intro>div:first-child{padding:26px 22px 20px;max-width:100%}
  .intro-aside{flex-direction:row;align-items:center;justify-content:space-between;
    margin-top:0;padding:0 22px 24px;width:100%}
  .intro-mark{display:none}
  .intro-count .dot-number{height:27px}
  .tool-row{padding:18px}
}
@media(max-width:480px){
  .section-intro>div:first-child{padding:22px 18px 16px}
  .intro-aside{padding:0 18px 20px;flex-wrap:wrap;gap:12px}
  .tool-row{padding:16px;border-radius:14px}
  .tool-row>a{width:100%}
}
@media(prefers-reduced-motion:reduce){.tool-row:hover,.section-intro .text-link:hover,.tool-row>a:hover{transform:none}}
.ad-slot{margin:18px 0 0;padding:10px 0 0;border-top:1px solid var(--line);min-height:0}
.ad-slot ins{display:block;max-width:100%;overflow:hidden;background:transparent}
.ad-home-foot{display:none;margin:0 0 22px;padding:0 0 18px;border-top:0;border-bottom:1px solid var(--line)}
html[data-page=home] .ad-home-foot{display:block}
.ad-rail{margin-top:18px;padding-top:16px}
.ad-mobile-rail{display:none;margin:0 0 16px;padding:0 0 12px;border-top:0;border-bottom:1px solid var(--line)}
.ad-detail{margin:18px 0 4px;padding-top:14px}
@media(max-width:780px){.ad-rail{display:none}.ad-mobile-rail{display:block}}
