/* panXy-owned sky/paper asset and brand lockup, reused from teach-x with owner authorization.
   Native theme menus are replaced by visible buttons; decorative layers never contain controls. */
:root{color-scheme:light;--ink:#20334c;--muted:#66758a;--blue:#245ec8;--line:#dce5ed;--ease:cubic-bezier(.23,1,.32,1);font-family:-apple-system,BlinkMacSystemFont,"HarmonyOS Sans SC","Microsoft YaHei","Noto Sans CJK SC",sans-serif;color:var(--ink);background:#e9f1f4;font-synthesis:none}
*{box-sizing:border-box}body{margin:0}button,input{font:inherit}button,a,input{-webkit-tap-highlight-color:transparent}button{cursor:pointer}a{color:inherit;text-decoration:none}button:disabled{cursor:default}button:focus-visible,a:focus-visible,input:focus-visible{outline:3px solid #d18827;outline-offset:3px}[hidden]{display:none!important}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.portal-shell{position:relative;isolation:isolate;max-width:1320px;margin:16px auto;min-height:calc(100dvh - 32px);padding:22px 34px 20px;border:1px solid #c4dfe8;border-radius:30px;background:#c9e7f1;box-shadow:0 16px 48px -30px #436b8066}
.sky-paper{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center;border-radius:inherit;z-index:-2;pointer-events:none}
.topbar{display:flex;align-items:center;gap:16px;flex:none;min-height:56px;padding:8px 22px;border:1px solid #ffffffdb;border-radius:99px;background:#f3fbffad;box-shadow:inset 0 1px 0 #fff,0 8px 18px -16px #436d8499;backdrop-filter:blur(12px)}
.brand{display:flex;align-items:center;min-height:40px}.brand-logo{display:block;width:102px;height:auto;color:var(--blue)}.brand-divider{width:1px;height:16px;background:#b7cddd}.brand-label{font-size:13px;letter-spacing:.05em;color:#45647f}.edition{margin-left:auto;font-size:12px;letter-spacing:.06em;color:#42617b}.edition>span{color:var(--blue);margin-right:6px}
.intro{position:relative;flex:none;text-align:center;padding:24px 10px 26px}.eyebrow{margin:0 0 9px;font-size:10px;letter-spacing:.19em;color:#41667e}.intro h1{position:relative;margin:0;font-family:"Songti SC","STSong","Noto Serif CJK SC",Georgia,serif;font-weight:400;font-size:42px;line-height:1.35;letter-spacing:-.035em;color:#173c53;text-shadow:0 2px 12px #effbff}.intro-line{position:relative;margin:10px 0 0;color:#46667e;font-size:14px;line-height:1.6}.emboss{position:absolute;left:50%;top:50%;width:560px;max-width:85%;height:145px;transform:translate(-50%,-50%);pointer-events:none}.emboss text{font:220px Georgia,serif;letter-spacing:-8px;fill:#d5edf222;stroke:#f5fdff70;stroke-width:2.2;paint-order:stroke;filter:drop-shadow(0 1px 0 #477d8c33)}
.directory{position:relative;padding:22px 26px 14px;background:#f9fcffed;border:1px solid #fff;border-radius:22px;box-shadow:0 16px 30px -23px #4b759c99,inset 0 0 0 1px #eaf1f6;min-width:0}.directory::before{content:"";position:absolute;z-index:-1;inset:0 7px -6px;border-radius:22px;background:#e8f1f4;border:1px solid #fff;transform:rotate(-.35deg);pointer-events:none}
.controls{flex:none}.filter-row{display:flex;align-items:center;justify-content:space-between;gap:16px}.range-switch{display:flex;flex:none;align-items:center;gap:3px;padding:3px;background:#e7eef6;border:1px solid #dbe6f0;border-radius:99px}.range-switch button{display:flex;align-items:center;justify-content:center;gap:7px;min-height:42px;padding:0 21px;border:0;border-radius:99px;background:transparent;color:#61738a;font-size:14px;font-weight:600;transition:background-color 180ms var(--ease),color 180ms var(--ease),box-shadow 180ms var(--ease),transform 160ms var(--ease)}.range-switch button[aria-pressed="true"]{color:var(--blue);background:#fff;box-shadow:0 2px 6px #3d5e7d17,inset 0 1px 0 #fff}.range-switch button span{font-size:11px;font-weight:500;opacity:.8}
.search-field{display:flex;align-items:center;gap:9px;min-width:0;width:260px;min-height:46px;padding:0 12px;border:1px solid #dce6ef;border-radius:99px;background:#fff;box-shadow:inset 0 2px 4px #658cb305}.search-field:focus-within{border-color:#88a9df;box-shadow:0 0 0 3px #245ec815}.search-field>svg{width:17px;height:17px;flex:none;fill:none;stroke:#69829b;stroke-width:1.6}.search-field input{border:0;background:transparent;width:100%;min-width:0;height:44px;padding:0;outline:none;color:var(--ink);font-size:16px}.search-field input:focus-visible{outline:none}.search-field input::placeholder{color:#7b8b9f}.search-field input::-webkit-search-cancel-button{display:none}#clear-search{display:grid;place-items:center;width:44px;height:44px;flex:none;background:transparent;border:0;color:#60758b;font-size:24px}
.theme-options{display:flex;gap:8px;margin-top:13px}.theme-options button{position:relative;display:flex;align-items:center;justify-content:center;gap:6px;min-height:44px;padding:0 17px;border:1px solid #e1eaf3;border-radius:12px;background:#edf3fa;color:#4f6885;font-size:13px;white-space:nowrap;transition:background-color 180ms var(--ease),color 180ms var(--ease),border-color 180ms var(--ease),transform 160ms var(--ease)}.theme-options button[aria-pressed="true"]{background:var(--blue);border-color:var(--blue);color:#fff;box-shadow:inset 0 1px 0 #ffffff30,0 5px 11px -7px #245ec8a6}.theme-check{display:none;font-size:12px}.theme-options button[aria-pressed="true"] .theme-check{display:block}
.list-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:17px 0 11px;flex:none}.list-heading h2{margin:0;font-size:13px;line-height:20px;font-weight:500;letter-spacing:.06em;color:#4e6782}.list-heading h2::before{content:"";display:inline-block;vertical-align:1px;width:5px;height:5px;margin-right:8px;border-radius:50%;background:#82a2c5}.list-heading>span{font-size:12px;color:#61738a;font-variant-numeric:tabular-nums;white-space:nowrap}
.test-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;align-content:start;grid-auto-rows:max-content}.test-card{--accent:#6f91bc;--tint:#edf3fb;position:relative;display:flex;align-items:center;gap:14px;min-width:0;min-height:112px;padding:17px 16px;border:1px solid #e0e8f0;border-radius:15px;background:#fff;box-shadow:0 3px 7px -6px #3d62838c,inset 0 1px 0 #fff;transition:transform 200ms var(--ease),box-shadow 200ms var(--ease),border-color 200ms var(--ease)}.card-icon{display:grid;place-items:center;flex:none;width:45px;height:49px;border:1px solid color-mix(in srgb,var(--accent) 15%,white);border-radius:12px 12px 15px 5px;background:var(--tint);box-shadow:inset 0 1px 0 #fff;transform:rotate(-4deg);color:var(--accent)}.card-icon svg{width:25px;height:25px;fill:none;stroke:currentColor;stroke-width:1.25;stroke-linecap:round;stroke-linejoin:round}.card-body{display:flex;flex-direction:column;align-items:flex-start;gap:6px;min-width:0;flex:1}.card-heading{display:flex;align-items:center;gap:7px;line-height:1.45}.card-heading strong{font-size:17px;font-weight:600;letter-spacing:.005em}.new-badge{flex:none;border-radius:5px;padding:1px 5px;background:#eef4ff;color:#426fc1;font-size:10px;font-weight:500}.card-description{font-size:12px;line-height:1.6;color:#5e7085;word-break:normal;overflow-wrap:break-word}.card-meta{display:flex;flex-wrap:wrap;gap:4px 10px;font-size:11px;line-height:1.5;color:#64758b}.card-meta>span+span::before{content:"·";margin-right:9px;color:#a6b2bf}.card-meta .price{color:#94603b}.card-edge{display:flex;align-self:stretch;flex-direction:column;align-items:center;justify-content:space-between;flex:none;min-width:18px;padding:0 0 2px}.card-number{font-size:10px;color:#a4b3c2;font-variant-numeric:tabular-nums}.card-arrow{font-size:22px;color:#6a88af;line-height:1;transition:transform 180ms var(--ease)}
.pagination{display:flex;align-items:center;justify-content:space-between;gap:12px;flex:none;margin-top:14px}.pagination button,.empty-state button{display:flex;align-items:center;justify-content:center;gap:13px;min-height:44px;padding:0 18px;border:1px solid #d4e2f2;border-radius:99px;background:#eef4fc;color:var(--blue);font-size:13px;box-shadow:inset 0 1px 0 #fff;transition:transform 160ms var(--ease),background-color 160ms var(--ease)}.pagination #next:not(:disabled){background:var(--blue);border-color:var(--blue);color:#fff;box-shadow:inset 0 1px 0 #ffffff38,0 5px 9px -7px #245ec8b0}.pagination button:disabled{color:#a8b3c0;border-color:#e7edf3;background:#f3f6f9;box-shadow:none}.pagination>span{font-size:12px;font-variant-numeric:tabular-nums;letter-spacing:.08em;color:#61738a}.empty-state{display:flex;flex-direction:column;justify-content:center;align-items:center;min-height:160px;text-align:center;padding:12px}.empty-mark{color:#8eabc9;font:44px Georgia,serif;line-height:1}.empty-state h3{font-size:16px;line-height:1.4;margin:9px 0 0;font-weight:500}.empty-state p{font-size:12px;color:#718195;margin:8px 0 16px}.empty-state button{background:#fff}.fallback-note{font-size:13px;color:var(--muted)}
.enhanced .portal-shell{height:calc(100dvh - 32px);min-height:0;display:flex;flex-direction:column}.enhanced .directory{flex:1;min-height:0;display:flex;flex-direction:column}.enhanced .test-grid,.enhanced .empty-state{flex:1;min-height:0}
@media(hover:hover) and (pointer:fine){.test-card:hover{transform:translateY(-3px);border-color:#b1c6df;box-shadow:0 10px 18px -14px #2e6499a6}.test-card:hover .card-arrow{transform:translate(2px,-2px)}.theme-options button:not([aria-pressed="true"]):hover{background:#dfeafa;border-color:#b6ccee}.pagination button:not(:disabled):hover{filter:brightness(.97)}}
button:not(:disabled):active{transform:scale(.97)}.test-card:active{transform:scale(.985)}
@keyframes cover-enter{from{opacity:0;transform:translateY(9px)}to{opacity:1;transform:translateY(0)}}
@media(prefers-reduced-motion:no-preference){.intro h1{animation:cover-enter 500ms var(--ease) both}.intro-line{animation:cover-enter 500ms 70ms var(--ease) both}.directory{animation:cover-enter 500ms 120ms var(--ease) backwards}}
@media(min-width:1400px){.portal-shell{margin-top:24px;margin-bottom:24px}.enhanced .portal-shell{height:calc(100dvh - 48px)}}
@media(max-width:900px){.portal-shell{margin:10px;min-height:calc(100dvh - 20px);padding:16px 18px 16px;border-radius:25px}.enhanced .portal-shell{height:calc(100dvh - 20px)}.topbar{padding:5px 17px;min-height:52px}.intro{padding:22px 8px 24px}.intro h1{font-size:36px}.directory{padding:18px 20px 12px}.test-card{gap:10px;padding:13px 12px}.card-icon{width:35px;height:43px}.card-heading strong{font-size:16px}.card-description{font-size:12px}.theme-options button{flex:1;padding:0 10px;gap:4px}}
@media(max-width:620px){.portal-shell{margin:0;min-height:100dvh;padding:12px 12px max(12px,env(safe-area-inset-bottom));border:0;border-radius:0;background:#c9e7f1}.enhanced .portal-shell{height:100dvh}.sky-paper{object-position:51% top}.topbar{min-height:45px;padding:2px 15px;gap:11px}.brand-logo{width:85px}.brand{min-height:39px}.brand-label{font-size:11px;letter-spacing:.01em}.brand-divider{height:13px}.edition{font-size:10px;letter-spacing:0}.edition{font-size:0}.edition>span{font-size:18px;margin:0}.intro{padding:18px 0 21px}.eyebrow{font-size:8px;margin:0 0 8px;letter-spacing:.16em}.intro h1{font-size:30px;line-height:1.35}.intro-line{font-size:12px;margin-top:7px}.emboss{height:120px;width:430px;max-width:99%;opacity:.8}.directory{padding:14px 14px 10px;border-radius:20px}.directory::before{border-radius:20px;inset:0 7px -5px}.filter-row{gap:10px}.range-switch{gap:0;padding:2px}.range-switch button{min-height:40px;padding:0 12px;font-size:13px;gap:5px}.range-switch button span{font-size:10px}.search-field{flex:1;width:auto;min-height:46px;gap:6px;padding:0 10px}.search-field>svg{width:15px;height:15px}.search-field input{font-size:16px;width:0;flex:1}.theme-options{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:6px;margin-top:10px}.theme-options button{grid-column:span 2;min-height:44px;padding:0 5px;gap:4px;font-size:12px;border-radius:10px}.theme-options button:nth-child(n+4){grid-column:span 3}.theme-check{font-size:10px}.list-heading{margin:12px 0 9px}.list-heading h2{font-size:12px}.list-heading>span{font-size:11px}.test-grid{grid-template-columns:minmax(0,1fr);gap:9px}.test-card{min-height:105px;padding:12px 11px;gap:11px;border-radius:13px}.card-icon{width:35px;height:43px;border-radius:10px 10px 13px 4px}.card-icon svg{width:22px;height:22px}.card-body{gap:5px}.card-heading strong{font-size:16px}.card-description{font-size:11px;line-height:1.55}.card-meta{font-size:10px;gap:4px 8px}.card-meta>span+span::before{margin-right:7px}.card-edge{min-width:14px}.card-number{font-size:9px}.card-arrow{font-size:20px}.pagination{margin-top:12px}.pagination button{min-height:44px;padding:0 13px;font-size:12px;gap:8px}.pagination>span{font-size:11px}.empty-state{padding:8px}.empty-state h3{font-size:14px}.empty-state p{font-size:11px}.empty-mark{font-size:32px}}
@media(max-height:740px) and (min-width:621px){.portal-shell{padding-top:14px;padding-bottom:14px}.topbar{min-height:48px}.intro{padding:13px 0 15px}.intro h1{font-size:32px}.eyebrow{display:none}.intro-line{margin-top:6px}.directory{padding-top:15px;padding-bottom:10px}.theme-options{margin-top:8px}.list-heading{margin-top:10px;margin-bottom:8px}.pagination{margin-top:10px}}
@media(max-height:740px) and (max-width:620px){.portal-shell{padding:8px 10px max(9px,env(safe-area-inset-bottom))}.intro{padding:13px 0 16px}.eyebrow{display:none}.intro h1{font-size:28px}.intro-line{margin-top:5px;font-size:11px}.directory{padding:12px 12px 8px}.theme-options{margin-top:8px}.list-heading{margin-top:10px;margin-bottom:7px}.pagination{margin-top:10px}}
@media(max-width:350px){.topbar{padding-left:13px;padding-right:13px}.brand-label{font-size:10px}.intro h1{font-size:26px}.intro-line{font-size:10px}.directory{padding-left:11px;padding-right:11px}.range-switch button{padding:0 8px;font-size:12px;gap:3px}.filter-row{gap:7px}.search-field{padding:0 8px;gap:4px}.search-field>svg{width:13px;height:13px}.theme-options button{font-size:11px}.card-icon{width:29px;height:38px}.card-icon svg{width:21px;height:21px}.test-card{gap:8px;padding:10px 10px}.card-heading strong{font-size:14px}.card-description{font-size:11px}}
@media(max-height:500px){.enhanced .portal-shell{height:auto;min-height:100dvh}.enhanced .test-grid{flex:none}.intro{padding:12px 0}.intro-line,.eyebrow{display:none}.directory{flex:none!important}.empty-state{min-height:160px!important}.test-card{min-height:105px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important}.test-card:hover,.test-card:active,button:not(:disabled):active{transform:none}.card-arrow{transform:none!important}}
/* Keep supporting copy readable, including the small-phone layout. */
.card-heading strong{font-size:19px}.card-description{font-size:14px}.card-meta{font-size:12px}.list-heading h2{font-size:14px}.theme-options button{font-size:14px}
@media(max-width:900px){.card-heading strong{font-size:17px}.card-description{font-size:13px}.card-meta{font-size:11px}.theme-options button{font-size:13px}}
@media(max-width:620px){.card-heading strong{font-size:16px}.card-description{font-size:12px}.card-meta{font-size:11px}.card-edge{position:absolute;right:12px;bottom:13px;min-width:0;padding:0}.card-number{display:none}.card-body{padding-right:0}.card-meta{padding-right:22px}.card-icon{align-self:center}.list-heading h2{font-size:12px}.theme-options button{font-size:12px}.intro-line{font-size:12px}}
@media(max-height:740px) and (max-width:620px){.intro{padding:10px 0 12px}.intro-line{font-size:12px;margin-top:4px}.list-heading{margin-top:8px}}
@media(max-width:350px){.card-heading strong{font-size:16px}.card-description{font-size:12px}.card-meta{font-size:11px}.theme-options button{font-size:12px}.intro-line{font-size:11px}.brand-label{font-size:11px}.empty-state p{font-size:12px}.range-switch button span{font-size:10px}}

@media(max-height:740px){.empty-mark{display:none}}

/* Per-product marks: common paper material, individually drawn motifs, palettes and silhouettes. */
.test-card{background:linear-gradient(105deg,color-mix(in srgb,var(--tint) 55%,white),#fff 45%);border-color:color-mix(in srgb,var(--accent) 18%,white)}
.card-icon{width:49px;height:49px;border-radius:12px;transform:rotate(var(--icon-rotation,0deg));border:1px solid color-mix(in srgb,var(--accent) 20%,white);background:var(--tint);color:var(--accent)}
.card-icon svg{width:31px;height:31px;stroke-width:1.6}
.card-icon.shape-ticket{border-radius:5px 15px 5px 15px;border-style:dashed}
.card-icon.shape-stamp{border-radius:11px;outline:1px dashed color-mix(in srgb,var(--accent) 40%,white);outline-offset:-5px;border-color:transparent}
.card-icon.shape-round{border-radius:50%}
.card-icon.shape-diamond{width:43px;height:43px;margin:3px;transform:rotate(calc(45deg + var(--icon-rotation,0deg)));border-radius:9px}
.card-icon.shape-diamond svg{transform:rotate(-45deg)}
.card-icon.shape-arch{border-radius:23px 23px 9px 9px}
.card-icon.shape-tab{border-radius:5px 15px 15px 15px;box-shadow:inset 3px 0 0 color-mix(in srgb,var(--accent) 15%,transparent),inset 0 1px 0 #fff}
@media(max-width:900px){.card-icon{width:43px;height:43px}.card-icon.shape-diamond{width:37px;height:37px}.card-icon svg{width:28px;height:28px}}
@media(max-width:620px){.card-icon{width:40px;height:43px}.card-icon.shape-round{height:40px}.card-icon.shape-diamond{width:34px;height:34px}.card-icon svg{width:27px;height:27px}}

.visual-bftest{--accent:#A96062;--tint:#FAEEEE;--icon-rotation:-3deg}
.visual-gftest{--accent:#BB795A;--tint:#FCF0E5;--icon-rotation:4deg}
.visual-cptest{--accent:#8B679F;--tint:#F3EDF8;--icon-rotation:2deg}
.visual-mstest{--accent:#557DAE;--tint:#ECF2FB;--icon-rotation:-4deg}
.visual-lovetest{--accent:#C17B47;--tint:#FFF2DF;--icon-rotation:3deg}
.visual-shiptest{--accent:#548F84;--tint:#EBF5F0;--icon-rotation:-2deg}
.visual-ggtest{--accent:#A27A3E;--tint:#F9F2E4;--icon-rotation:4deg}
.visual-lswtest{--accent:#7A8D59;--tint:#F0F4E7;--icon-rotation:-3deg}
.visual-emotest{--accent:#6A79A3;--tint:#EFF0FA;--icon-rotation:2deg}
.visual-eletest{--accent:#448F73;--tint:#EAF5EC;--icon-rotation:-2deg}
.visual-citytest{--accent:#587F9A;--tint:#EBF3F7;--icon-rotation:-1deg}
.visual-lvtest{--accent:#AD7189;--tint:#F8EDF3;--icon-rotation:3deg}
.visual-trusttest{--accent:#8A8661;--tint:#F5F3E7;--icon-rotation:-4deg}
.visual-last8test{--accent:#B68E42;--tint:#FBF4DE;--icon-rotation:5deg}
.visual-restarttest{--accent:#668A88;--tint:#EAF3F2;--icon-rotation:-2deg}
.visual-triggertest{--accent:#BC8751;--tint:#FCF1E3;--icon-rotation:3deg}
.visual-clarifytest{--accent:#7387B3;--tint:#EEF2FC;--icon-rotation:-3deg}
.visual-boundarytest{--accent:#996D68;--tint:#F8EEEA;--icon-rotation:2deg}
.visual-helptest{--accent:#A96B53;--tint:#FAEEE7;--icon-rotation:-4deg}
.visual-needtest{--accent:#5B9692;--tint:#EAF6F3;--icon-rotation:3deg}
.visual-repairtest{--accent:#A77397;--tint:#F7EEF7;--icon-rotation:-2deg}
.visual-supporttest{--accent:#67896F;--tint:#EDF5EA;--icon-rotation:3deg}
.visual-circletest{--accent:#6487A2;--tint:#EDF4FA;--icon-rotation:-3deg}
.visual-expecttest{--accent:#978053;--tint:#F7F2E7;--icon-rotation:4deg}
.visual-teamtest{--accent:#7C819B;--tint:#F0F1F7;--icon-rotation:-3deg}
