lism-css 0.12.0 → 0.13.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (73) hide show
  1. package/README.ja.md +5 -5
  2. package/README.md +6 -6
  3. package/config/default-config.ts +2 -2
  4. package/config/defaults/{states.ts → traits.ts} +2 -1
  5. package/config/index.ts +3 -3
  6. package/dist/components/index.d.ts +1 -1
  7. package/dist/components/index.js +38 -38
  8. package/dist/components/state/BoxLink/BoxLink.d.ts +5 -0
  9. package/dist/components/state/{LinkBox/LinkBox.stories.d.ts → BoxLink/BoxLink.stories.d.ts} +3 -3
  10. package/dist/components/state/BoxLink/index.d.ts +1 -0
  11. package/dist/components/state/{LinkBox → BoxLink}/index.js +1 -1
  12. package/dist/components/state/BoxLink/script.d.ts +4 -0
  13. package/dist/components/state/Container/Container.d.ts +1 -5
  14. package/dist/components/state/Container/Container.stories.d.ts +2 -2
  15. package/dist/components/state/Container/index.js +4 -4
  16. package/dist/config/default-config.d.ts +3 -2
  17. package/dist/config/default-config.js +4 -4
  18. package/dist/config/defaults/{states.d.ts → traits.d.ts} +2 -1
  19. package/dist/config/defaults/{states.js → traits.js} +4 -3
  20. package/dist/config/index.d.ts +6 -4
  21. package/dist/config/index.js +5 -5
  22. package/dist/css/main.css +1 -1
  23. package/dist/css/main_no_layer.css +1 -1
  24. package/dist/css/primitives/trait.css +1 -0
  25. package/dist/css/utility.css +1 -1
  26. package/dist/lib/getLismProps.d.ts +8 -6
  27. package/dist/lib/getLismProps.js +65 -55
  28. package/dist/lib/helper/mergeSet.d.ts +8 -3
  29. package/dist/lib/helper/mergeSet.js +10 -10
  30. package/dist/lib/types/TraitProps.d.ts +47 -0
  31. package/package.json +1 -1
  32. package/packages/astro/index.ts +1 -1
  33. package/packages/astro/state/{LinkBox/LinkBox.astro → BoxLink/BoxLink.astro} +2 -2
  34. package/packages/astro/state/BoxLink/index.ts +1 -0
  35. package/packages/astro/state/Container/Container.astro +3 -6
  36. package/src/scss/_with_layer.scss +12 -5
  37. package/src/scss/base/tokens/_tokens.scss +1 -1
  38. package/src/scss/main_no_layer.scss +4 -4
  39. package/src/scss/{modules → primitives}/layout/index.scss +1 -1
  40. package/src/scss/{modules/state/_linkbox.scss → primitives/trait/_boxLink.scss} +4 -4
  41. package/src/scss/{utility/_linkExpand.scss → primitives/trait/_coverLink.scss} +1 -1
  42. package/src/scss/primitives/trait/index.scss +7 -0
  43. package/src/scss/utility/index.scss +0 -1
  44. package/dist/components/state/LinkBox/LinkBox.d.ts +0 -5
  45. package/dist/components/state/LinkBox/index.d.ts +0 -1
  46. package/dist/components/state/LinkBox/script.d.ts +0 -4
  47. package/dist/css/modules/state.css +0 -1
  48. package/dist/lib/types/StateProps.d.ts +0 -29
  49. package/packages/astro/state/LinkBox/index.ts +0 -1
  50. package/src/scss/modules/state/index.scss +0 -6
  51. /package/dist/css/{modules → primitives}/atomic.css +0 -0
  52. /package/dist/css/{modules → primitives}/layout.css +0 -0
  53. /package/dist/lib/types/{StateProps.spec-d.d.ts → TraitProps.spec-d.d.ts} +0 -0
  54. /package/src/scss/{modules → primitives}/atomic/_divider.scss +0 -0
  55. /package/src/scss/{modules → primitives}/atomic/_icon.scss +0 -0
  56. /package/src/scss/{modules → primitives}/atomic/_spacer.scss +0 -0
  57. /package/src/scss/{modules → primitives}/atomic/index.scss +0 -0
  58. /package/src/scss/{modules → primitives}/layout/_center.scss +0 -0
  59. /package/src/scss/{modules → primitives}/layout/_cluster.scss +0 -0
  60. /package/src/scss/{modules → primitives}/layout/_columns.scss +0 -0
  61. /package/src/scss/{modules → primitives}/layout/_flex.scss +0 -0
  62. /package/src/scss/{modules → primitives}/layout/_flow.scss +0 -0
  63. /package/src/scss/{modules → primitives}/layout/_fluidCols.scss +0 -0
  64. /package/src/scss/{modules → primitives}/layout/_frame.scss +0 -0
  65. /package/src/scss/{modules → primitives}/layout/_grid.scss +0 -0
  66. /package/src/scss/{modules → primitives}/layout/_sideMain.scss +0 -0
  67. /package/src/scss/{modules → primitives}/layout/_stack.scss +0 -0
  68. /package/src/scss/{modules → primitives}/layout/_switchCols.scss +0 -0
  69. /package/src/scss/{modules → primitives}/layout/_tileGrid.scss +0 -0
  70. /package/src/scss/{modules/state → primitives/trait}/_container.scss +0 -0
  71. /package/src/scss/{modules/state → primitives/trait}/_layer.scss +0 -0
  72. /package/src/scss/{modules/state → primitives/trait}/_vertical.scss +0 -0
  73. /package/src/scss/{modules/state → primitives/trait}/_wrapper.scss +0 -0
@@ -1 +1 @@
1
- @layer reset{*,:after,:before{box-sizing:border-box}:not(dialog){margin:0}html{-webkit-text-size-adjust:none;-moz-text-size-adjust:none;text-size-adjust:none;line-break:strict;overflow-wrap:anywhere;overflow-x:clip;-moz-tab-size:4;-o-tab-size:4;tab-size:4;word-break:normal}html:has(:modal[open]){overflow:clip}body{min-height:100dvh;overflow:inherit}abbr[title]{text-decoration:underline;text-decoration-style:dotted}pre{overflow-x:auto}:is(ul,ol)[class],menu{list-style:none;padding:0}audio,canvas,iframe,img,object,svg,video{max-inline-size:100%;vertical-align:middle}img,video{block-size:auto}iframe{border:none}::file-selector-button,button,input,select,textarea{color:inherit;font:inherit;font-size:max(16px,1em)}fieldset{min-inline-size:0}textarea{max-inline-size:100%;resize:block}[type=checkbox],[type=radio],label[for],select,summary{cursor:pointer}::file-selector-button,[role=button],[role=option],[role=tab],[type=button],[type=reset],[type=submit],button{cursor:pointer;touch-action:manipulation}:disabled{cursor:not-allowed}[hidden=until-found]{z-index:-1}}@property --sz--container{syntax:"<length-percentage>";initial-value:100cqi;inherits:true}:root{--sz--xl:1600px;--sz--l:1280px;--sz--m:56rem;--sz--s:42rem;--sz--xs:32rem;--sz--min:18rem;--black:#000;--white:#fff;--L:60%;--C:0.22;--red:oklch(var(--L) var(--C) 20);--orange:oklch(calc(var(--L) + 4%) calc(var(--C) - 0.01) 52);--yellow:oklch(calc(var(--L) + 12%) calc(var(--C) - 0.025) 84);--green:oklch(calc(var(--L) + 4%) calc(var(--C) - 0.02) 152);--blue:oklch(calc(var(--L) - 2%) calc(var(--C) + 0.01) 260);--purple:oklch(calc(var(--L) - 4%) calc(var(--C) + 0.02) 292);--pink:oklch(calc(var(--L) + 2%) calc(var(--C) + 0.02) 348);--gray:oklch(calc(var(--L) - 4%) 0.04 256);--brand:#1e5f8c;--accent:#d94a6a;--base:#fcfcfd;--base-2:#f1f2f3;--text:#141415;--text-2:#4d4f56;--link:oklch(50% 0.3 240);--divider:#dedfe3;--o--n10:0.75;--o--n20:0.5;--o--n30:0.25;--bdrs--10:0.25rem;--bdrs--20:0.5rem;--bdrs--30:1rem;--bdrs--40:1.5rem;--bdrs--99:99rem;--shc:rgba(20,20,21,.05);--shsz--5:0px 1px 3px;--shsz--10:0px 2px 6px;--shsz--20:0px 4px 12px;--shsz--30:0px 8px 24px;--shsz--40:0px 16px 48px;--ar--og:1.91/1;--gutter-size:var(--s30);--vertical-mode:vertical-rl;--REM:clamp(0.95rem,0.915rem + 0.15vw,1.05rem);--fz--base:var(--REM);--fz-mol:8;--fz--5xl:calc(1em*var(--fz-mol)/(var(--fz-mol) - 6));--fz--4xl:calc(1em*var(--fz-mol)/(var(--fz-mol) - 5));--fz--3xl:calc(1em*var(--fz-mol)/(var(--fz-mol) - 4));--fz--2xl:calc(1em*var(--fz-mol)/(var(--fz-mol) - 3));--fz--xl:calc(1em*var(--fz-mol)/(var(--fz-mol) - 2));--fz--l:calc(1em*var(--fz-mol)/(var(--fz-mol) - 1));--fz--m:1em;--fz--s:calc(1em*var(--fz-mol)/(var(--fz-mol) + 1));--fz--xs:calc(1em*var(--fz-mol)/(var(--fz-mol) + 2));--fz--2xs:calc(1em*var(--fz-mol)/(var(--fz-mol) + 3));--ff--base:-apple-system,"BlinkMacSystemFont","Hiragino Sans",sans-serif,"Segoe UI Emoji";--ff--mono:ui-monospace,"SFMono-Regular",Menlo,Consolas,monospace;--ff--accent:"Garamond","Baskerville","Times New Roman",serif;--fw--light:300;--fw--normal:400;--fw--bold:600;--lts--base:normal;--lts--s:-0.05em;--lts--l:0.05em;--hl-unit:calc(var(--REM)*0.125);--hl--xs:var(--hl-unit);--hl--s:calc(var(--hl-unit)*2);--hl--base:calc(var(--hl-unit)*3);--hl--l:calc(var(--hl-unit)*4);--s-unit:calc(var(--REM)*0.5);--s5:calc(var(--s-unit)*0.5);--s10:var(--s-unit);--s15:calc(var(--s-unit)*1.5);--s20:calc(var(--s-unit)*2);--s30:calc(var(--s-unit)*3);--s40:calc(var(--s-unit)*5);--s50:calc(var(--s-unit)*8);--s60:calc(var(--s-unit)*13);--s70:calc(var(--s-unit)*21);--s80:calc(var(--s-unit)*34)}@property --hl{syntax:"<length>";inherits:true;initial-value:.25rem}.set--shadow,:root{--sh--5:var(--shsz--5) var(--shc);--sh--10:var(--shsz--10) var(--shc);--sh--20:var(--shsz--20) var(--shc);--sh--30:var(--shsz--30) var(--shc);--sh--40:var(--shsz--40) var(--shc);--bxsh--10:var(--sh--5),var(--sh--10);--bxsh--20:var(--sh--10),var(--sh--20);--bxsh--30:var(--sh--20),var(--sh--30);--bxsh--40:var(--sh--30),var(--sh--40)}body{--hl:var(--hl--base);background-color:var(--base);color:var(--text);font-family:var(--ff--base);font-size:var(--fz--base);letter-spacing:var(--lts--base);text-underline-offset:var(--under-offset,.125em)}*{line-height:calc(1em + var(--hl)*2)}:is(h1,h2,h3,h4,h5,h6){font-family:var(--headings-ff,inherit);font-weight:var(--headings-fw,var(--fw--bold))}h1{font-size:var(--fz--3xl)}h2{font-size:var(--fz--2xl)}h3{font-size:var(--fz--xl)}h4{font-size:var(--fz--l)}h5,h6{font-size:var(--fz--m)}a{color:var(--link-c,var(--link));-webkit-text-decoration:var(--link-td,underline);text-decoration:var(--link-td,underline);text-decoration-color:var(--link-td-color,currentColor);text-decoration-thickness:var(--link-td-thickness,auto)}small{--hl:var(--hl--s);font-size:var(--fz--xs)}b,strong{font-weight:var(--fw--bold)}sub,sup{--hl:var(--hl--xs);font-size:80%}code,kbd,samp,var{font-family:var(--ff--mono)}blockquote{background-color:var(--base-2);padding:var(--s30)}caption,figcaption,legend{font-size:var(--fz--s)}hr{block-size:0;border:none;border-block-start:1px solid var(--divider)}:is(ul,ol):where(:not([class])),:is(ul,ol):where([class^="-"]){list-style:revert;padding-inline-start:var(--list-px-s,var(--s30))}dt{font-weight:var(--fw--bold)}dd+dt{margin-block-start:var(--s20)}table{--td-c:inherit;--td-bgc:transparent;--td-p:var(--s10);--td-min-sz:initial}td{background-color:var(--td-bgc);color:var(--td-c);min-inline-size:var(--td-min-sz);padding:var(--td-p)}th{background-color:var(--th-bgc,var(--td-bgc));color:var(--th-c,var(--td-c));min-inline-size:var(--th-min-sz,var(--td-min-sz));padding:var(--th-p,var(--td-p))}::file-selector-button,button,input,select,textarea{background-color:var(--controls-bgc,var(--base-2));border:1px solid var(--controls-bdc,var(--divider));border-radius:var(--controls-bdrs,var(--bdrs--10));padding:var(--controls-p,var(--s5) var(--s10))}:disabled{opacity:var(--o--n20)}:focus-visible{outline-offset:var(--focus-offset,0)}:root{--_is_sm:unset;--_is_md:unset}@container (min-width: 480px){.set--bp{--_is_sm: }}@container (min-width: 800px){.set--bp{--_is_md: }}@media (any-hover:hover){.set--hov:hover{--_notHov: }.set--hov:not(:is(:hover,:focus-within)){--_isHov: }}@media (any-hover:none){.set--hov{--_isHov: }}.set--hov:is(:focus-visible,:focus-within){--_notHov: }.set--transition{transition:var(--hov-duration,.25s) var(--hov-ease,linear) var(--hov-delay,0s);transition-property:var(--hov-prop,all)}.set--innerRs{--bdrs--inner:calc(var(--bdrs, 0px) - var(--p, 0px))}.set--plain{background:none;border:none;border-radius:0;color:inherit;font:inherit;height:auto;line-height:calc(1em + var(--hl)*2);margin:0;max-height:none;max-width:none;min-height:0;min-width:0;padding:0;text-decoration:none;width:auto}.set--gutter{padding-inline:var(--gutter-size)}.is--container{container-type:inline-size}.is--container>*{--sz--container:100cqi}.is--container.set--gutter>*{--sz--container:calc(100cqi + var(--gutter-size)*2)}.is--wrapper{--contentSize:var(--sz--m,100%)}.is--wrapper>*{margin-inline:auto;max-inline-size:min(100%,var(--contentSize))}.-contentSize\:s{--contentSize:var(--sz--s)}.-contentSize\:l{--contentSize:var(--sz--l)}.is--linkBox{color:inherit;cursor:pointer;display:block;isolation:isolate;pointer-events:auto;position:relative;text-decoration:none}.is--linkBox a{position:relative;z-index:2}.is--layer{inset:0;overflow:hidden;position:absolute}.is--vertical{writing-mode:var(--vertical-mode)}.is--vertical\@sm{writing-mode:var(--_is_sm) var(--vertical-mode)}.is--vertical\@md{writing-mode:var(--_is_md) var(--vertical-mode)}.l--flow{--flow--base:var(--s30);--flow--s:var(--s20);display:flow-root}.l--flow>*+*{--flow:var(--flow--base);margin-block-start:var(--flow)}.l--flow>:where(img,video,iframe){display:block}.-flow\:s>*{--flow:var(--flow--s)}.-flow\:>*{--flow:inherit}.l--flow>:where(h1,h2,h3,h4,h5,h6){margin-block-start:calc(var(--flow)*var(--flow-hScale, 2))}.is--skipFlow+*,.l--flow>:first-child{--flow:0px}.l--flex{display:flex}.l--flex>*{min-width:0}.l--cluster{align-items:center;display:flex;flex-wrap:wrap}.l--stack{display:flex;flex-direction:column}.l--grid{display:grid}.l--grid>*{min-width:0}.l--center{display:grid;place-content:center;place-items:center}.l--fluidCols{--cols:var(--sz--min);--autoMode:auto-fit;display:grid;grid-template-columns:repeat(var(--autoMode),minmax(min(var(--cols),100%),1fr))}.l--columns{--cols:2;display:grid;grid-template-columns:repeat(var(--cols),minmax(0,1fr))}.l--sideMain{--sideW:auto;--mainW:max(var(--sz--min),50%);display:flex;flex-wrap:wrap}.l--sideMain>.is--side{flex-basis:var(--sideW);flex-grow:1}.l--sideMain>:not(.is--side){flex-basis:min(100%,var(--mainW));flex-grow:9999999}.l--switchCols{--breakSize:var(--sz--xs);display:flex;flex-wrap:wrap}.l--switchCols>*{flex-basis:calc((var(--breakSize) - 100%)*9999);flex-grow:1}.l--tileGrid{display:grid;grid-template:repeat(var(--rows,1),minmax(0,1fr))/repeat(var(--cols,1),minmax(0,1fr))}.l--frame{overflow:hidden}.l--frame>:where(img,video,iframe){display:block;height:100%;-o-object-fit:cover;object-fit:cover;width:100%}.a--divider{--bdc:var(--divider);--bds:solid;--bdw:1px;border-block-start:var(--bdw) var(--bds) var(--bdc)}.a--icon{flex-shrink:0}.a--icon:where(:not([fill])){fill:currentcolor}.a--icon:where(:not([width])){height:1em;width:1em}.a--spacer{min-height:1px;min-width:1px}.u--trim{margin-block:calc(var(--hl)*-1)}.u--trimChildren>*{--my:calc(var(--hl)*-1);margin-block:var(--my)}.u--trimChildren>:where(figure,img,button){--my:0px}.u--cbox{--c:color-mix(in srgb,var(--text),var(--keycolor) var(--cbox-cPct,32%));--bgc:color-mix(in srgb,var(--base),var(--keycolor) var(--cbox-bgPct,4%));--bdc:color-mix(in srgb,transparent,var(--keycolor) var(--cbox-bdPct,64%));--link-c:var(--keycolor);background-color:var(--bgc);color:var(--c)}@supports (color:oklch(from red l c h)){.u--cbox{--shc:oklch(from var(--keycolor) calc(l / 1.5) calc(c / 1.5) h/0.1)}}.u--collapseGrid{--bdw:1px;--bdc:var(--divider);gap:var(--bdw);padding:var(--bdw)}.u--collapseGrid>*{box-shadow:0 0 0 var(--bdw) var(--bdc)}.u--expandedLink{color:inherit;position:static;text-decoration:none}.u--expandedLink:before{content:"";inset:0;position:absolute;z-index:1}.u--srOnly:not(#_){border:0;clip-path:inset(50%);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;white-space:nowrap;width:1px}.u--snap{scroll-snap-type:var(--snapType,both mandatory)}.u--snap>*{scroll-snap-align:var(--snapAlign,start);scroll-snap-stop:var(--snapStop,normal)}.u--clipText{-webkit-background-clip:text!important;background-clip:text!important;color:transparent!important}.-lh\:1{--hl:0px}.-lh\:base{--hl:var(--hl--base)}.-lh\:xs{--hl:var(--hl--xs)}.-lh\:s{--hl:var(--hl--s)}.-lh\:l{--hl:var(--hl--l)}:where(.-bd,[class*=" -bd-"],[class^=-bd-]){--bds:solid;--bdw:1px;--bdc:var(--divider);border-color:var(--bdc);border-width:var(--bdw)}.-bd{border-style:var(--bds)}.-bd-x{border-inline-style:var(--bds)}.-bd-y{border-block-style:var(--bds)}.-bd-x-s{border-inline-start-style:var(--bds)}.-bd-x-e{border-inline-end-style:var(--bds)}.-bd-t{border-top-style:var(--bds)}.-bd-b{border-bottom-style:var(--bds)}.-bd-l{border-left-style:var(--bds)}.-bd-r{border-right-style:var(--bds)}.-bd-y-s{border-block-start-style:var(--bds)}.-bd-y-e{border-block-end-style:var(--bds)}.-max-sz\:full{max-inline-size:100%}:where(.set--gutter)>.-max-sz\:full{margin-inline:calc(var(--gutter-size)*-1);max-inline-size:calc(100% + var(--gutter-size)*2)}.-max-sz\:container{margin-inline:calc(50% - var(--sz--container)/2);max-inline-size:var(--sz--container,100cqi)}.-f\:inherit{font:inherit}.-fz,[class*="-fz:"]{font-size:var(--fz)}.-fz\:root{--fz:var(--fz--root)}.-fz\:base{--fz:var(--fz--base)}.-fz\:5xl{--fz:var(--fz--5xl)}.-fz\:4xl{--fz:var(--fz--4xl)}.-fz\:3xl{--fz:var(--fz--3xl)}.-fz\:2xl{--fz:var(--fz--2xl)}.-fz\:xl{--fz:var(--fz--xl)}.-fz\:l{--fz:var(--fz--l)}.-fz\:m{--fz:var(--fz--m)}.-fz\:s{--fz:var(--fz--s)}.-fz\:xs{--fz:var(--fz--xs)}.-fz\:2xs{--fz:var(--fz--2xs)}.-fw\:100{font-weight:100}.-fw\:200{font-weight:200}.-fw\:300{font-weight:300}.-fw\:400{font-weight:400}.-fw\:500{font-weight:500}.-fw\:600{font-weight:600}.-fw\:700{font-weight:700}.-fw\:800{font-weight:800}.-fw\:900{font-weight:900}.-fw\:light{font-weight:var(--fw--light)}.-fw\:normal{font-weight:var(--fw--normal)}.-fw\:bold{font-weight:var(--fw--bold)}.-ff\:base{font-family:var(--ff--base)}.-ff\:accent{font-family:var(--ff--accent)}.-ff\:mono{font-family:var(--ff--mono)}.-fs\:italic{font-style:italic}.-lts\:base{letter-spacing:var(--lts--base)}.-lts\:s{letter-spacing:var(--lts--s)}.-lts\:l{letter-spacing:var(--lts--l)}.-ta\:center{text-align:center}.-ta\:left{text-align:left}.-ta\:right{text-align:right}.-td\:none{text-decoration:none}.-tt\:upper{text-transform:uppercase}.-tt\:lower{text-transform:lowercase}.-d{display:var(--d)}.-d\:none{display:none}.-d\:block{display:block}.-d\:flex{display:flex}.-d\:inline-flex{display:inline-flex}.-d\:grid{display:grid}.-d\:inline-grid{display:inline-grid}.-d\:inline{display:inline}.-d\:inline-block{display:inline-block}.-o\:0{opacity:0}.-o\:-10{opacity:var(--o--n10)}.-o\:-20{opacity:var(--o--n20)}.-o\:-30{opacity:var(--o--n30)}.-v\:hidden{visibility:hidden}.-ov\:hidden{overflow:hidden}.-ov\:auto{overflow:auto}.-ov\:clip{overflow:clip}.-ov-x\:clip{overflow-x:clip}.-ov-x\:auto{overflow-x:auto}.-ov-x\:scroll{overflow-x:scroll}.-ov-y\:clip{overflow-y:clip}.-ov-y\:auto{overflow-y:auto}.-ov-y\:scroll{overflow-y:scroll}.-ar{aspect-ratio:var(--ar)}.-ar\:21\/9{aspect-ratio:21/9}.-ar\:16\/9{aspect-ratio:16/9}.-ar\:3\/2{aspect-ratio:3/2}.-ar\:1\/1{aspect-ratio:1/1}.-ar\:og{aspect-ratio:var(--ar--og)}.-w{width:var(--w)}.-w\:100\%{width:100%}.-w\:fit{width:-moz-fit-content;width:fit-content}.-h{height:var(--h)}.-h\:100\%{height:100%}.-h\:fit{height:-moz-fit-content;height:fit-content}.-min-w{min-width:var(--min-w)}.-min-w\:100\%{min-width:100%}.-max-w{max-width:var(--max-w)}.-max-w\:100\%{max-width:100%}.-min-h{min-height:var(--min-h)}.-min-h\:100\%{min-height:100%}.-max-h{max-height:var(--max-h)}.-max-h\:100\%{max-height:100%}.-max-sz\:xs{max-inline-size:var(--sz--xs)}.-max-sz\:s{max-inline-size:var(--sz--s)}.-max-sz\:m{max-inline-size:var(--sz--m)}.-max-sz\:l{max-inline-size:var(--sz--l)}.-max-sz\:xl{max-inline-size:var(--sz--xl)}.-bg{background:var(--bg)}.-bgr\:no-repeat{background-repeat:no-repeat}.-bgp\:center{background-position:50%}.-bgsz\:cover{background-size:cover}.-bgsz\:contain{background-size:contain}.-bgc,[class*="-bgc:"]{background-color:var(--bgc)}.-bgc\:base{--bgc:var(--base)}.-bgc\:base-2{--bgc:var(--base-2)}.-bgc\:text{--bgc:var(--text)}.-bgc\:brand{--bgc:var(--brand)}.-bgc\:accent{--bgc:var(--accent)}.-bgc\:transparent{--bgc:transparent}.-bgc\:inherit{background-color:inherit}.-c,[class*="-c:"]{color:var(--c)}.-c\:base{--c:var(--base)}.-c\:text{--c:var(--text)}.-c\:text-2{--c:var(--text-2)}.-c\:brand{--c:var(--brand)}.-c\:accent{--c:var(--accent)}.-c\:inherit{color:inherit}.-bd\:none{border:none}.-bds\:dashed{--bds:dashed}.-bds\:dotted{--bds:dotted}.-bds\:double{--bds:double}.-bdc\:brand{--bdc:var(--brand)}.-bdc\:accent{--bdc:var(--accent)}.-bdc\:divider{--bdc:var(--divider)}.-bdc\:inherit{--bdc:inherit}.-bdc\:transparent{--bdc:transparent}.-bdc\:current{--bdc:currentColor}.-bdrs,[class*="-bdrs:"]{border-radius:var(--bdrs)}.-bdrs\:0{--bdrs:0}.-bdrs\:10{--bdrs:var(--bdrs--10)}.-bdrs\:20{--bdrs:var(--bdrs--20)}.-bdrs\:30{--bdrs:var(--bdrs--30)}.-bdrs\:40{--bdrs:var(--bdrs--40)}.-bdrs\:99{--bdrs:var(--bdrs--99)}.-bdrs\:inner{--bdrs:var(--bdrs--inner)}.-bxsh,[class*="-bxsh:"]{box-shadow:var(--bxsh)}.-bxsh\:0{--bxsh:none}.-bxsh\:10{--bxsh:var(--bxsh--10)}.-bxsh\:20{--bxsh:var(--bxsh--20)}.-bxsh\:30{--bxsh:var(--bxsh--30)}.-bxsh\:40{--bxsh:var(--bxsh--40)}.-pos\:static{position:static}.-pos\:fixed{position:fixed}.-pos\:sticky{position:sticky}.-pos\:relative{position:relative}.-pos\:absolute{position:absolute}.-z\:0{z-index:0}.-z\:1{z-index:1}.-z\:99{z-index:99}.-z\:-1{z-index:-1}.-t\:0{top:0}.-t\:50\%{top:50%}.-t\:100\%{top:100%}.-l\:0{left:0}.-l\:50\%{left:50%}.-l\:100\%{left:100%}.-r\:0{right:0}.-r\:50\%{right:50%}.-r\:100\%{right:100%}.-b\:0{bottom:0}.-b\:50\%{bottom:50%}.-b\:100\%{bottom:100%}.-i\:0{inset:0}.-p,[class*="-p:"]{padding:var(--p)}.-p\:0{--p:0}.-p\:5{--p:var(--s5)}.-p\:10{--p:var(--s10)}.-p\:15{--p:var(--s15)}.-p\:20{--p:var(--s20)}.-p\:30{--p:var(--s30)}.-p\:40{--p:var(--s40)}.-p\:50{--p:var(--s50)}.-p\:60{--p:var(--s60)}.-p\:70{--p:var(--s70)}.-p\:80{--p:var(--s80)}.-px,[class*="-px:"]{padding-inline:var(--px)}.-px\:0{--px:0}.-px\:5{--px:var(--s5)}.-px\:10{--px:var(--s10)}.-px\:15{--px:var(--s15)}.-px\:20{--px:var(--s20)}.-px\:30{--px:var(--s30)}.-px\:40{--px:var(--s40)}.-px\:50{--px:var(--s50)}.-px\:60{--px:var(--s60)}.-px\:70{--px:var(--s70)}.-px\:80{--px:var(--s80)}.-py,[class*="-py:"]{padding-block:var(--py)}.-py\:0{--py:0}.-py\:5{--py:var(--s5)}.-py\:10{--py:var(--s10)}.-py\:15{--py:var(--s15)}.-py\:20{--py:var(--s20)}.-py\:30{--py:var(--s30)}.-py\:40{--py:var(--s40)}.-py\:50{--py:var(--s50)}.-py\:60{--py:var(--s60)}.-py\:70{--py:var(--s70)}.-py\:80{--py:var(--s80)}.-px-s{padding-inline-start:var(--px-s)}.-px-e{padding-inline-end:var(--px-e)}.-py-s{padding-block-start:var(--py-s)}.-py-e{padding-block-end:var(--py-e)}.-pl{padding-left:var(--pl)}.-pr{padding-right:var(--pr)}.-pt{padding-top:var(--pt)}.-pb{padding-bottom:var(--pb)}.-m,[class*="-m:"]{margin:var(--m)}.-m\:0{--m:0}.-m\:5{--m:var(--s5)}.-m\:10{--m:var(--s10)}.-m\:15{--m:var(--s15)}.-m\:20{--m:var(--s20)}.-m\:30{--m:var(--s30)}.-m\:40{--m:var(--s40)}.-m\:50{--m:var(--s50)}.-m\:60{--m:var(--s60)}.-m\:70{--m:var(--s70)}.-m\:80{--m:var(--s80)}.-m\:auto{--m:auto}.-mx,[class*="-mx:"]{margin-inline:var(--mx)}.-mx\:0{--mx:0}.-mx\:5{--mx:var(--s5)}.-mx\:10{--mx:var(--s10)}.-mx\:15{--mx:var(--s15)}.-mx\:20{--mx:var(--s20)}.-mx\:30{--mx:var(--s30)}.-mx\:40{--mx:var(--s40)}.-mx\:50{--mx:var(--s50)}.-mx\:60{--mx:var(--s60)}.-mx\:70{--mx:var(--s70)}.-mx\:80{--mx:var(--s80)}.-mx\:auto{--mx:auto}.-my,[class*="-my:"]{margin-block:var(--my)}.-my\:0{--my:0}.-my\:5{--my:var(--s5)}.-my\:10{--my:var(--s10)}.-my\:15{--my:var(--s15)}.-my\:20{--my:var(--s20)}.-my\:30{--my:var(--s30)}.-my\:40{--my:var(--s40)}.-my\:50{--my:var(--s50)}.-my\:60{--my:var(--s60)}.-my\:70{--my:var(--s70)}.-my\:80{--my:var(--s80)}.-my\:auto{--my:auto}.-mx-s{margin-inline-start:var(--mx-s)}.-mx-s\:auto{margin-inline-start:auto}.-mx-e{margin-inline-end:var(--mx-e)}.-mx-e\:auto{margin-inline-end:auto}.-my-s{margin-block-start:var(--my-s)}.-my-s\:0{margin-block-start:0}.-my-s\:5{margin-block-start:var(--s5)}.-my-s\:10{margin-block-start:var(--s10)}.-my-s\:15{margin-block-start:var(--s15)}.-my-s\:20{margin-block-start:var(--s20)}.-my-s\:30{margin-block-start:var(--s30)}.-my-s\:40{margin-block-start:var(--s40)}.-my-s\:50{margin-block-start:var(--s50)}.-my-s\:60{margin-block-start:var(--s60)}.-my-s\:70{margin-block-start:var(--s70)}.-my-s\:80{margin-block-start:var(--s80)}.-my-s\:auto{margin-block-start:auto}.-my-e{margin-block-end:var(--my-e)}.-my-e\:auto{margin-block-end:auto}.-ml{margin-left:var(--ml)}.-mr{margin-right:var(--mr)}.-mt{margin-top:var(--mt)}.-mb{margin-bottom:var(--mb)}.-g,[class*="-g:"]{gap:var(--g)}.-g\:0{--g:0}.-g\:5{--g:var(--s5)}.-g\:10{--g:var(--s10)}.-g\:15{--g:var(--s15)}.-g\:20{--g:var(--s20)}.-g\:30{--g:var(--s30)}.-g\:40{--g:var(--s40)}.-g\:50{--g:var(--s50)}.-g\:60{--g:var(--s60)}.-g\:70{--g:var(--s70)}.-g\:80{--g:var(--s80)}.-g\:inherit{gap:inherit}.-cg{-moz-column-gap:var(--cg);column-gap:var(--cg)}.-rg{row-gap:var(--rg)}.-fxw{flex-wrap:var(--fxw)}.-fxw\:wrap{flex-wrap:wrap}.-fxd{flex-direction:var(--fxd)}.-fxd\:column{flex-direction:column}.-fxd\:column-reverse{flex-direction:column-reverse}.-fxd\:row-reverse{flex-direction:row-reverse}.-fx{flex:var(--fx)}.-fx\:1{flex:1}.-fxg\:1{flex-grow:1}.-fxsh\:0{flex-shrink:0}.-fxb{flex-basis:var(--fxb)}.-gt{grid-template:var(--gt)}.-gta{grid-template-areas:var(--gta)}.-gtc{grid-template-columns:var(--gtc)}.-gtc\:subgrid{grid-template-columns:subgrid}.-gtr{grid-template-rows:var(--gtr)}.-gtr\:subgrid{grid-template-rows:subgrid}.-gaf{grid-auto-flow:var(--gaf)}.-gaf\:row{grid-auto-flow:row}.-gaf\:column{grid-auto-flow:column}.-ga{grid-area:var(--ga)}.-ga\:1\/1{grid-area:1/1}.-gc{grid-column:var(--gc)}.-gc\:1\/-1{grid-column:1/-1}.-gr{grid-row:var(--gr)}.-gr\:1\/-1{grid-row:1/-1}.-ai{align-items:var(--ai)}.-ai\:start{align-items:start}.-ai\:center{align-items:center}.-ai\:end{align-items:end}.-ai\:stretch{align-items:stretch}.-ai\:flex-start{align-items:flex-start}.-ai\:flex-end{align-items:flex-end}.-ac{align-content:var(--ac)}.-ac\:start{align-content:start}.-ac\:center{align-content:center}.-ac\:end{align-content:end}.-ac\:flex-start{align-content:flex-start}.-ac\:flex-end{align-content:flex-end}.-ac\:between{align-content:space-between}.-ji{justify-items:var(--ji)}.-ji\:start{justify-items:start}.-ji\:center{justify-items:center}.-ji\:end{justify-items:end}.-ji\:stretch{justify-items:stretch}.-ji\:flex-start{justify-items:flex-start}.-ji\:flex-end{justify-items:flex-end}.-jc{justify-content:var(--jc)}.-jc\:start{justify-content:start}.-jc\:center{justify-content:center}.-jc\:end{justify-content:end}.-jc\:flex-start{justify-content:flex-start}.-jc\:flex-end{justify-content:flex-end}.-jc\:between{justify-content:space-between}.-pi\:start{place-items:start}.-pi\:center{place-items:center}.-pi\:end{place-items:end}.-pc\:start{place-content:start}.-pc\:center{place-content:center}.-pc\:end{place-content:end}.-aslf\:start{align-self:start}.-aslf\:center{align-self:center}.-aslf\:end{align-self:end}.-aslf\:stretch{align-self:stretch}.-jslf\:start{justify-self:start}.-jslf\:center{justify-self:center}.-jslf\:end{justify-self:end}.-jslf\:stretch{justify-self:stretch}.-pslf\:start{place-self:start}.-pslf\:center{place-self:center}.-pslf\:end{place-self:end}.-order\:0{order:0}.-order\:1{order:1}.-order\:-1{order:-1}.-ovwrap\:anywhere{overflow-wrap:anywhere}.-whspace\:nowrap{white-space:nowrap}.-float\:left{float:left}.-float\:right{float:right}.-clear\:both{clear:both}.-isolation\:isolate{isolation:isolate}@container (min-width: 480px){.-fz_sm{font-size:var(--fz_sm)}.-hl_sm{--hl:var(--hl_sm)!important}.-d_sm{display:var(--d_sm)}.-ar_sm{aspect-ratio:var(--ar_sm)}.-w_sm{width:var(--w_sm)}.-h_sm{height:var(--h_sm)}.-min-w_sm{min-width:var(--min-w_sm)}.-max-w_sm{max-width:var(--max-w_sm)}.-min-h_sm{min-height:var(--min-h_sm)}.-max-h_sm{max-height:var(--max-h_sm)}.-bg_sm{background:var(--bg_sm)}.-bdw_sm{--bdw:var(--bdw_sm)!important}.-bdrs_sm{border-radius:var(--bdrs_sm);--bdrs:var(--bdrs_sm)!important}.-bxsh_sm{box-shadow:var(--bxsh_sm)}.-p_sm{padding:var(--p_sm);--p:var(--p_sm)!important}.-px_sm{padding-inline:var(--px_sm)}.-py_sm{padding-block:var(--py_sm)}.-px-s_sm{padding-inline-start:var(--px-s_sm)}.-px-e_sm{padding-inline-end:var(--px-e_sm)}.-py-s_sm{padding-block-start:var(--py-s_sm)}.-py-e_sm{padding-block-end:var(--py-e_sm)}.-pl_sm{padding-left:var(--pl_sm)}.-pr_sm{padding-right:var(--pr_sm)}.-pt_sm{padding-top:var(--pt_sm)}.-pb_sm{padding-bottom:var(--pb_sm)}.-m_sm{margin:var(--m_sm);--m:var(--m_sm)!important}.-mx_sm{margin-inline:var(--mx_sm)}.-my_sm{margin-block:var(--my_sm)}.-mx-s_sm{margin-inline-start:var(--mx-s_sm)}.-mx-e_sm{margin-inline-end:var(--mx-e_sm)}.-my-s_sm{margin-block-start:var(--my-s_sm)}.-my-e_sm{margin-block-end:var(--my-e_sm)}.-ml_sm{margin-left:var(--ml_sm)}.-mr_sm{margin-right:var(--mr_sm)}.-mt_sm{margin-top:var(--mt_sm)}.-mb_sm{margin-bottom:var(--mb_sm)}.-g_sm{gap:var(--g_sm);--g:var(--g_sm)!important}.-cg_sm{-moz-column-gap:var(--cg_sm);column-gap:var(--cg_sm)}.-rg_sm{row-gap:var(--rg_sm)}.-cols_sm{--cols:var(--cols_sm)!important}.-rows_sm{--rows:var(--rows_sm)!important}.-fxw_sm{flex-wrap:var(--fxw_sm)}.-fxd_sm{flex-direction:var(--fxd_sm)}.-fx_sm{flex:var(--fx_sm)}.-fxb_sm{flex-basis:var(--fxb_sm)}.-gt_sm{grid-template:var(--gt_sm)}.-gta_sm{grid-template-areas:var(--gta_sm)}.-gtc_sm{grid-template-columns:var(--gtc_sm)}.-gtr_sm{grid-template-rows:var(--gtr_sm)}.-gaf_sm{grid-auto-flow:var(--gaf_sm)}.-ga_sm{grid-area:var(--ga_sm)}.-gc_sm{grid-column:var(--gc_sm)}.-gr_sm{grid-row:var(--gr_sm)}.-ai_sm{align-items:var(--ai_sm)}.-ac_sm{align-content:var(--ac_sm)}.-ji_sm{justify-items:var(--ji_sm)}.-jc_sm{justify-content:var(--jc_sm)}}@container (min-width: 800px){.-fz_md{font-size:var(--fz_md)}.-hl_md{--hl:var(--hl_md)!important}.-d_md{display:var(--d_md)}.-ar_md{aspect-ratio:var(--ar_md)}.-w_md{width:var(--w_md)}.-h_md{height:var(--h_md)}.-min-w_md{min-width:var(--min-w_md)}.-max-w_md{max-width:var(--max-w_md)}.-min-h_md{min-height:var(--min-h_md)}.-max-h_md{max-height:var(--max-h_md)}.-bg_md{background:var(--bg_md)}.-bdw_md{--bdw:var(--bdw_md)!important}.-bdrs_md{border-radius:var(--bdrs_md);--bdrs:var(--bdrs_md)!important}.-bxsh_md{box-shadow:var(--bxsh_md)}.-p_md{padding:var(--p_md);--p:var(--p_md)!important}.-px_md{padding-inline:var(--px_md)}.-py_md{padding-block:var(--py_md)}.-px-s_md{padding-inline-start:var(--px-s_md)}.-px-e_md{padding-inline-end:var(--px-e_md)}.-py-s_md{padding-block-start:var(--py-s_md)}.-py-e_md{padding-block-end:var(--py-e_md)}.-pl_md{padding-left:var(--pl_md)}.-pr_md{padding-right:var(--pr_md)}.-pt_md{padding-top:var(--pt_md)}.-pb_md{padding-bottom:var(--pb_md)}.-m_md{margin:var(--m_md);--m:var(--m_md)!important}.-mx_md{margin-inline:var(--mx_md)}.-my_md{margin-block:var(--my_md)}.-mx-s_md{margin-inline-start:var(--mx-s_md)}.-mx-e_md{margin-inline-end:var(--mx-e_md)}.-my-s_md{margin-block-start:var(--my-s_md)}.-my-e_md{margin-block-end:var(--my-e_md)}.-ml_md{margin-left:var(--ml_md)}.-mr_md{margin-right:var(--mr_md)}.-mt_md{margin-top:var(--mt_md)}.-mb_md{margin-bottom:var(--mb_md)}.-g_md{gap:var(--g_md);--g:var(--g_md)!important}.-cg_md{-moz-column-gap:var(--cg_md);column-gap:var(--cg_md)}.-rg_md{row-gap:var(--rg_md)}.-cols_md{--cols:var(--cols_md)!important}.-rows_md{--rows:var(--rows_md)!important}.-fxw_md{flex-wrap:var(--fxw_md)}.-fxd_md{flex-direction:var(--fxd_md)}.-fx_md{flex:var(--fx_md)}.-fxb_md{flex-basis:var(--fxb_md)}.-gt_md{grid-template:var(--gt_md)}.-gta_md{grid-template-areas:var(--gta_md)}.-gtc_md{grid-template-columns:var(--gtc_md)}.-gtr_md{grid-template-rows:var(--gtr_md)}.-gaf_md{grid-auto-flow:var(--gaf_md)}.-ga_md{grid-area:var(--ga_md)}.-gc_md{grid-column:var(--gc_md)}.-gr_md{grid-row:var(--gr_md)}.-ai_md{align-items:var(--ai_md)}.-ac_md{align-content:var(--ac_md)}.-ji_md{justify-items:var(--ji_md)}.-jc_md{justify-content:var(--jc_md)}}@media (any-hover:hover){.-hov\:c:hover{color:var(--hov-c,var(--link))}.-hov\:bdc:hover{border-color:var(--hov-bdc,currentColor)}.-hov\:bgc:hover{background-color:var(--hov-bgc,var(--base-2))}.-hov\:o:hover{opacity:var(--hov-o,.7)}.-hov\:bxsh:hover{box-shadow:var(--hov-bxsh,var(--bxsh--40))}.-hov\:neutral:hover{background-color:color-mix(in srgb,var(--bgc,var(--base)),#bcbec2 25%)}}.-hov\:to\:hide{--transProp:opacity;opacity:var(--_isHov,0)}.-hov\:to\:show{--transProp:opacity,visibility;opacity:var(--_notHov,0);visibility:var(--_notHov,hidden)}.-hov\:to\:zoom{--transProp:scale;scale:var(--_isHov,1.1)}
1
+ @layer reset{*,:after,:before{box-sizing:border-box}:not(dialog){margin:0}html{-webkit-text-size-adjust:none;-moz-text-size-adjust:none;text-size-adjust:none;line-break:strict;overflow-wrap:anywhere;overflow-x:clip;-moz-tab-size:4;-o-tab-size:4;tab-size:4;word-break:normal}html:has(:modal[open]){overflow:clip}body{min-height:100dvh;overflow:inherit}abbr[title]{text-decoration:underline;text-decoration-style:dotted}pre{overflow-x:auto}:is(ul,ol)[class],menu{list-style:none;padding:0}audio,canvas,iframe,img,object,svg,video{max-inline-size:100%;vertical-align:middle}img,video{block-size:auto}iframe{border:none}::file-selector-button,button,input,select,textarea{color:inherit;font:inherit;font-size:max(16px,1em)}fieldset{min-inline-size:0}textarea{max-inline-size:100%;resize:block}[type=checkbox],[type=radio],label[for],select,summary{cursor:pointer}::file-selector-button,[role=button],[role=option],[role=tab],[type=button],[type=reset],[type=submit],button{cursor:pointer;touch-action:manipulation}:disabled{cursor:not-allowed}[hidden=until-found]{z-index:-1}}@property --sz--container{syntax:"<length-percentage>";initial-value:100cqi;inherits:true}:root{--sz--xl:1600px;--sz--l:1280px;--sz--m:56rem;--sz--s:42rem;--sz--xs:32rem;--sz--min:18rem;--black:#000;--white:#fff;--L:60%;--C:0.22;--red:oklch(var(--L) var(--C) 20);--orange:oklch(calc(var(--L) + 4%) calc(var(--C) - 0.01) 52);--yellow:oklch(calc(var(--L) + 12%) calc(var(--C) - 0.025) 84);--green:oklch(calc(var(--L) + 4%) calc(var(--C) - 0.02) 152);--blue:oklch(calc(var(--L) - 2%) calc(var(--C) + 0.01) 260);--purple:oklch(calc(var(--L) - 4%) calc(var(--C) + 0.02) 292);--pink:oklch(calc(var(--L) + 2%) calc(var(--C) + 0.02) 348);--gray:oklch(calc(var(--L) - 4%) 0.04 256);--brand:#1e5f8c;--accent:#d94a6a;--base:#fcfcfd;--base-2:#f1f2f3;--text:#141415;--text-2:#4d4f56;--link:oklch(50% 0.3 240);--divider:#dedfe3;--o--n10:0.75;--o--n20:0.5;--o--n30:0.25;--bdrs--10:0.25rem;--bdrs--20:0.5rem;--bdrs--30:1rem;--bdrs--40:1.5rem;--bdrs--99:99rem;--shc:rgba(20,20,21,.05);--shsz--5:0px 1px 3px;--shsz--10:0px 2px 6px;--shsz--20:0px 4px 12px;--shsz--30:0px 8px 24px;--shsz--40:0px 16px 48px;--ar--og:1.91/1;--gutter-size:var(--s30);--vertical-mode:vertical-rl;--REM:clamp(0.95rem,0.915rem + 0.15vw,1.05rem);--fz--base:var(--REM);--fz-mol:8;--fz--5xl:calc(1em*var(--fz-mol)/(var(--fz-mol) - 6));--fz--4xl:calc(1em*var(--fz-mol)/(var(--fz-mol) - 5));--fz--3xl:calc(1em*var(--fz-mol)/(var(--fz-mol) - 4));--fz--2xl:calc(1em*var(--fz-mol)/(var(--fz-mol) - 3));--fz--xl:calc(1em*var(--fz-mol)/(var(--fz-mol) - 2));--fz--l:calc(1em*var(--fz-mol)/(var(--fz-mol) - 1));--fz--m:1em;--fz--s:calc(1em*var(--fz-mol)/(var(--fz-mol) + 1));--fz--xs:calc(1em*var(--fz-mol)/(var(--fz-mol) + 2));--fz--2xs:calc(1em*var(--fz-mol)/(var(--fz-mol) + 3));--ff--base:-apple-system,"BlinkMacSystemFont","Hiragino Sans",sans-serif,"Segoe UI Emoji";--ff--mono:ui-monospace,"SFMono-Regular",Menlo,Consolas,monospace;--ff--accent:"Garamond","Baskerville","Times New Roman",serif;--fw--light:300;--fw--normal:400;--fw--bold:600;--lts--base:normal;--lts--s:-0.05em;--lts--l:0.05em;--hl-unit:calc(var(--REM)*0.125);--hl--xs:var(--hl-unit);--hl--s:calc(var(--hl-unit)*2);--hl--base:calc(var(--hl-unit)*3);--hl--l:calc(var(--hl-unit)*4);--s-unit:calc(var(--REM)*0.5);--s5:calc(var(--s-unit)*0.5);--s10:var(--s-unit);--s15:calc(var(--s-unit)*1.5);--s20:calc(var(--s-unit)*2);--s30:calc(var(--s-unit)*3);--s40:calc(var(--s-unit)*5);--s50:calc(var(--s-unit)*8);--s60:calc(var(--s-unit)*13);--s70:calc(var(--s-unit)*21);--s80:calc(var(--s-unit)*34)}@property --hl{syntax:"<length>";inherits:true;initial-value:.25rem}.set--shadow,:root{--sh--5:var(--shsz--5) var(--shc);--sh--10:var(--shsz--10) var(--shc);--sh--20:var(--shsz--20) var(--shc);--sh--30:var(--shsz--30) var(--shc);--sh--40:var(--shsz--40) var(--shc);--bxsh--10:var(--sh--5),var(--sh--10);--bxsh--20:var(--sh--10),var(--sh--20);--bxsh--30:var(--sh--20),var(--sh--30);--bxsh--40:var(--sh--30),var(--sh--40)}body{--hl:var(--hl--base);background-color:var(--base);color:var(--text);font-family:var(--ff--base);font-size:var(--fz--base);letter-spacing:var(--lts--base);text-underline-offset:var(--under-offset,.125em)}*{line-height:calc(1em + var(--hl)*2)}:is(h1,h2,h3,h4,h5,h6){font-family:var(--headings-ff,inherit);font-weight:var(--headings-fw,var(--fw--bold))}h1{font-size:var(--fz--3xl)}h2{font-size:var(--fz--2xl)}h3{font-size:var(--fz--xl)}h4{font-size:var(--fz--l)}h5,h6{font-size:var(--fz--m)}a{color:var(--link-c,var(--link));-webkit-text-decoration:var(--link-td,underline);text-decoration:var(--link-td,underline);text-decoration-color:var(--link-td-color,currentColor);text-decoration-thickness:var(--link-td-thickness,auto)}small{--hl:var(--hl--s);font-size:var(--fz--xs)}b,strong{font-weight:var(--fw--bold)}sub,sup{--hl:var(--hl--xs);font-size:80%}code,kbd,samp,var{font-family:var(--ff--mono)}blockquote{background-color:var(--base-2);padding:var(--s30)}caption,figcaption,legend{font-size:var(--fz--s)}hr{block-size:0;border:none;border-block-start:1px solid var(--divider)}:is(ul,ol):where(:not([class])),:is(ul,ol):where([class^="-"]){list-style:revert;padding-inline-start:var(--list-px-s,var(--s30))}dt{font-weight:var(--fw--bold)}dd+dt{margin-block-start:var(--s20)}table{--td-c:inherit;--td-bgc:transparent;--td-p:var(--s10);--td-min-sz:initial}td{background-color:var(--td-bgc);color:var(--td-c);min-inline-size:var(--td-min-sz);padding:var(--td-p)}th{background-color:var(--th-bgc,var(--td-bgc));color:var(--th-c,var(--td-c));min-inline-size:var(--th-min-sz,var(--td-min-sz));padding:var(--th-p,var(--td-p))}::file-selector-button,button,input,select,textarea{background-color:var(--controls-bgc,var(--base-2));border:1px solid var(--controls-bdc,var(--divider));border-radius:var(--controls-bdrs,var(--bdrs--10));padding:var(--controls-p,var(--s5) var(--s10))}:disabled{opacity:var(--o--n20)}:focus-visible{outline-offset:var(--focus-offset,0)}:root{--_is_sm:unset;--_is_md:unset}@container (min-width: 480px){.set--bp{--_is_sm: }}@container (min-width: 800px){.set--bp{--_is_md: }}@media (any-hover:hover){.set--hov:hover{--_notHov: }.set--hov:not(:is(:hover,:focus-within)){--_isHov: }}@media (any-hover:none){.set--hov{--_isHov: }}.set--hov:is(:focus-visible,:focus-within){--_notHov: }.set--transition{transition:var(--hov-duration,.25s) var(--hov-ease,linear) var(--hov-delay,0s);transition-property:var(--hov-prop,all)}.set--innerRs{--bdrs--inner:calc(var(--bdrs, 0px) - var(--p, 0px))}.set--plain{background:none;border:none;border-radius:0;color:inherit;font:inherit;height:auto;line-height:calc(1em + var(--hl)*2);margin:0;max-height:none;max-width:none;min-height:0;min-width:0;padding:0;text-decoration:none;width:auto}.set--gutter{padding-inline:var(--gutter-size)}.is--container{container-type:inline-size}.is--container>*{--sz--container:100cqi}.is--container.set--gutter>*{--sz--container:calc(100cqi + var(--gutter-size)*2)}.is--wrapper{--contentSize:var(--sz--m,100%)}.is--wrapper>*{margin-inline:auto;max-inline-size:min(100%,var(--contentSize))}.-contentSize\:s{--contentSize:var(--sz--s)}.-contentSize\:l{--contentSize:var(--sz--l)}.is--boxLink{color:inherit;cursor:pointer;display:block;isolation:isolate;pointer-events:auto;position:relative;text-decoration:none}.is--boxLink a{position:relative;z-index:2}.is--coverLink{color:inherit;position:static;text-decoration:none}.is--coverLink:before{content:"";inset:0;position:absolute;z-index:1}.is--layer{inset:0;overflow:hidden;position:absolute}.is--vertical{writing-mode:var(--vertical-mode)}.is--vertical\@sm{writing-mode:var(--_is_sm) var(--vertical-mode)}.is--vertical\@md{writing-mode:var(--_is_md) var(--vertical-mode)}.l--flow{--flow--base:var(--s30);--flow--s:var(--s20);display:flow-root}.l--flow>*+*{--flow:var(--flow--base);margin-block-start:var(--flow)}.l--flow>:where(img,video,iframe){display:block}.-flow\:s>*{--flow:var(--flow--s)}.-flow\:>*{--flow:inherit}.l--flow>:where(h1,h2,h3,h4,h5,h6){margin-block-start:calc(var(--flow)*var(--flow-hScale, 2))}.is--skipFlow+*,.l--flow>:first-child{--flow:0px}.l--flex{display:flex}.l--flex>*{min-width:0}.l--cluster{align-items:center;display:flex;flex-wrap:wrap}.l--stack{display:flex;flex-direction:column}.l--grid{display:grid}.l--grid>*{min-width:0}.l--center{display:grid;place-content:center;place-items:center}.l--fluidCols{--cols:var(--sz--min);--autoMode:auto-fit;display:grid;grid-template-columns:repeat(var(--autoMode),minmax(min(var(--cols),100%),1fr))}.l--columns{--cols:2;display:grid;grid-template-columns:repeat(var(--cols),minmax(0,1fr))}.l--sideMain{--sideW:auto;--mainW:max(var(--sz--min),50%);display:flex;flex-wrap:wrap}.l--sideMain>.is--side{flex-basis:var(--sideW);flex-grow:1}.l--sideMain>:not(.is--side){flex-basis:min(100%,var(--mainW));flex-grow:9999999}.l--switchCols{--breakSize:var(--sz--xs);display:flex;flex-wrap:wrap}.l--switchCols>*{flex-basis:calc((var(--breakSize) - 100%)*9999);flex-grow:1}.l--tileGrid{display:grid;grid-template:repeat(var(--rows,1),minmax(0,1fr))/repeat(var(--cols,1),minmax(0,1fr))}.l--frame{overflow:hidden}.l--frame>:where(img,video,iframe){display:block;height:100%;-o-object-fit:cover;object-fit:cover;width:100%}.a--divider{--bdc:var(--divider);--bds:solid;--bdw:1px;border-block-start:var(--bdw) var(--bds) var(--bdc)}.a--icon{flex-shrink:0}.a--icon:where(:not([fill])){fill:currentcolor}.a--icon:where(:not([width])){height:1em;width:1em}.a--spacer{min-height:1px;min-width:1px}.u--trim{margin-block:calc(var(--hl)*-1)}.u--trimChildren>*{--my:calc(var(--hl)*-1);margin-block:var(--my)}.u--trimChildren>:where(figure,img,button){--my:0px}.u--cbox{--c:color-mix(in srgb,var(--text),var(--keycolor) var(--cbox-cPct,32%));--bgc:color-mix(in srgb,var(--base),var(--keycolor) var(--cbox-bgPct,4%));--bdc:color-mix(in srgb,transparent,var(--keycolor) var(--cbox-bdPct,64%));--link-c:var(--keycolor);background-color:var(--bgc);color:var(--c)}@supports (color:oklch(from red l c h)){.u--cbox{--shc:oklch(from var(--keycolor) calc(l / 1.5) calc(c / 1.5) h/0.1)}}.u--collapseGrid{--bdw:1px;--bdc:var(--divider);gap:var(--bdw);padding:var(--bdw)}.u--collapseGrid>*{box-shadow:0 0 0 var(--bdw) var(--bdc)}.u--srOnly:not(#_){border:0;clip-path:inset(50%);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;white-space:nowrap;width:1px}.u--snap{scroll-snap-type:var(--snapType,both mandatory)}.u--snap>*{scroll-snap-align:var(--snapAlign,start);scroll-snap-stop:var(--snapStop,normal)}.u--clipText{-webkit-background-clip:text!important;background-clip:text!important;color:transparent!important}.-lh\:1{--hl:0px}.-lh\:base{--hl:var(--hl--base)}.-lh\:xs{--hl:var(--hl--xs)}.-lh\:s{--hl:var(--hl--s)}.-lh\:l{--hl:var(--hl--l)}:where(.-bd,[class*=" -bd-"],[class^=-bd-]){--bds:solid;--bdw:1px;--bdc:var(--divider);border-color:var(--bdc);border-width:var(--bdw)}.-bd{border-style:var(--bds)}.-bd-x{border-inline-style:var(--bds)}.-bd-y{border-block-style:var(--bds)}.-bd-x-s{border-inline-start-style:var(--bds)}.-bd-x-e{border-inline-end-style:var(--bds)}.-bd-t{border-top-style:var(--bds)}.-bd-b{border-bottom-style:var(--bds)}.-bd-l{border-left-style:var(--bds)}.-bd-r{border-right-style:var(--bds)}.-bd-y-s{border-block-start-style:var(--bds)}.-bd-y-e{border-block-end-style:var(--bds)}.-max-sz\:full{max-inline-size:100%}:where(.set--gutter)>.-max-sz\:full{margin-inline:calc(var(--gutter-size)*-1);max-inline-size:calc(100% + var(--gutter-size)*2)}.-max-sz\:container{margin-inline:calc(50% - var(--sz--container)/2);max-inline-size:var(--sz--container,100cqi)}.-f\:inherit{font:inherit}.-fz,[class*="-fz:"]{font-size:var(--fz)}.-fz\:root{--fz:var(--fz--root)}.-fz\:base{--fz:var(--fz--base)}.-fz\:5xl{--fz:var(--fz--5xl)}.-fz\:4xl{--fz:var(--fz--4xl)}.-fz\:3xl{--fz:var(--fz--3xl)}.-fz\:2xl{--fz:var(--fz--2xl)}.-fz\:xl{--fz:var(--fz--xl)}.-fz\:l{--fz:var(--fz--l)}.-fz\:m{--fz:var(--fz--m)}.-fz\:s{--fz:var(--fz--s)}.-fz\:xs{--fz:var(--fz--xs)}.-fz\:2xs{--fz:var(--fz--2xs)}.-fw\:100{font-weight:100}.-fw\:200{font-weight:200}.-fw\:300{font-weight:300}.-fw\:400{font-weight:400}.-fw\:500{font-weight:500}.-fw\:600{font-weight:600}.-fw\:700{font-weight:700}.-fw\:800{font-weight:800}.-fw\:900{font-weight:900}.-fw\:light{font-weight:var(--fw--light)}.-fw\:normal{font-weight:var(--fw--normal)}.-fw\:bold{font-weight:var(--fw--bold)}.-ff\:base{font-family:var(--ff--base)}.-ff\:accent{font-family:var(--ff--accent)}.-ff\:mono{font-family:var(--ff--mono)}.-fs\:italic{font-style:italic}.-lts\:base{letter-spacing:var(--lts--base)}.-lts\:s{letter-spacing:var(--lts--s)}.-lts\:l{letter-spacing:var(--lts--l)}.-ta\:center{text-align:center}.-ta\:left{text-align:left}.-ta\:right{text-align:right}.-td\:none{text-decoration:none}.-tt\:upper{text-transform:uppercase}.-tt\:lower{text-transform:lowercase}.-d{display:var(--d)}.-d\:none{display:none}.-d\:block{display:block}.-d\:flex{display:flex}.-d\:inline-flex{display:inline-flex}.-d\:grid{display:grid}.-d\:inline-grid{display:inline-grid}.-d\:inline{display:inline}.-d\:inline-block{display:inline-block}.-o\:0{opacity:0}.-o\:-10{opacity:var(--o--n10)}.-o\:-20{opacity:var(--o--n20)}.-o\:-30{opacity:var(--o--n30)}.-v\:hidden{visibility:hidden}.-ov\:hidden{overflow:hidden}.-ov\:auto{overflow:auto}.-ov\:clip{overflow:clip}.-ov-x\:clip{overflow-x:clip}.-ov-x\:auto{overflow-x:auto}.-ov-x\:scroll{overflow-x:scroll}.-ov-y\:clip{overflow-y:clip}.-ov-y\:auto{overflow-y:auto}.-ov-y\:scroll{overflow-y:scroll}.-ar{aspect-ratio:var(--ar)}.-ar\:21\/9{aspect-ratio:21/9}.-ar\:16\/9{aspect-ratio:16/9}.-ar\:3\/2{aspect-ratio:3/2}.-ar\:1\/1{aspect-ratio:1/1}.-ar\:og{aspect-ratio:var(--ar--og)}.-w{width:var(--w)}.-w\:100\%{width:100%}.-w\:fit{width:-moz-fit-content;width:fit-content}.-h{height:var(--h)}.-h\:100\%{height:100%}.-h\:fit{height:-moz-fit-content;height:fit-content}.-min-w{min-width:var(--min-w)}.-min-w\:100\%{min-width:100%}.-max-w{max-width:var(--max-w)}.-max-w\:100\%{max-width:100%}.-min-h{min-height:var(--min-h)}.-min-h\:100\%{min-height:100%}.-max-h{max-height:var(--max-h)}.-max-h\:100\%{max-height:100%}.-max-sz\:xs{max-inline-size:var(--sz--xs)}.-max-sz\:s{max-inline-size:var(--sz--s)}.-max-sz\:m{max-inline-size:var(--sz--m)}.-max-sz\:l{max-inline-size:var(--sz--l)}.-max-sz\:xl{max-inline-size:var(--sz--xl)}.-bg{background:var(--bg)}.-bgr\:no-repeat{background-repeat:no-repeat}.-bgp\:center{background-position:50%}.-bgsz\:cover{background-size:cover}.-bgsz\:contain{background-size:contain}.-bgc,[class*="-bgc:"]{background-color:var(--bgc)}.-bgc\:base{--bgc:var(--base)}.-bgc\:base-2{--bgc:var(--base-2)}.-bgc\:text{--bgc:var(--text)}.-bgc\:brand{--bgc:var(--brand)}.-bgc\:accent{--bgc:var(--accent)}.-bgc\:transparent{--bgc:transparent}.-bgc\:inherit{background-color:inherit}.-c,[class*="-c:"]{color:var(--c)}.-c\:base{--c:var(--base)}.-c\:text{--c:var(--text)}.-c\:text-2{--c:var(--text-2)}.-c\:brand{--c:var(--brand)}.-c\:accent{--c:var(--accent)}.-c\:inherit{color:inherit}.-bd\:none{border:none}.-bds\:dashed{--bds:dashed}.-bds\:dotted{--bds:dotted}.-bds\:double{--bds:double}.-bdc\:brand{--bdc:var(--brand)}.-bdc\:accent{--bdc:var(--accent)}.-bdc\:divider{--bdc:var(--divider)}.-bdc\:inherit{--bdc:inherit}.-bdc\:transparent{--bdc:transparent}.-bdc\:current{--bdc:currentColor}.-bdrs,[class*="-bdrs:"]{border-radius:var(--bdrs)}.-bdrs\:0{--bdrs:0}.-bdrs\:10{--bdrs:var(--bdrs--10)}.-bdrs\:20{--bdrs:var(--bdrs--20)}.-bdrs\:30{--bdrs:var(--bdrs--30)}.-bdrs\:40{--bdrs:var(--bdrs--40)}.-bdrs\:99{--bdrs:var(--bdrs--99)}.-bdrs\:inner{--bdrs:var(--bdrs--inner)}.-bxsh,[class*="-bxsh:"]{box-shadow:var(--bxsh)}.-bxsh\:0{--bxsh:none}.-bxsh\:10{--bxsh:var(--bxsh--10)}.-bxsh\:20{--bxsh:var(--bxsh--20)}.-bxsh\:30{--bxsh:var(--bxsh--30)}.-bxsh\:40{--bxsh:var(--bxsh--40)}.-pos\:static{position:static}.-pos\:fixed{position:fixed}.-pos\:sticky{position:sticky}.-pos\:relative{position:relative}.-pos\:absolute{position:absolute}.-z\:0{z-index:0}.-z\:1{z-index:1}.-z\:99{z-index:99}.-z\:-1{z-index:-1}.-t\:0{top:0}.-t\:50\%{top:50%}.-t\:100\%{top:100%}.-l\:0{left:0}.-l\:50\%{left:50%}.-l\:100\%{left:100%}.-r\:0{right:0}.-r\:50\%{right:50%}.-r\:100\%{right:100%}.-b\:0{bottom:0}.-b\:50\%{bottom:50%}.-b\:100\%{bottom:100%}.-i\:0{inset:0}.-p,[class*="-p:"]{padding:var(--p)}.-p\:0{--p:0}.-p\:5{--p:var(--s5)}.-p\:10{--p:var(--s10)}.-p\:15{--p:var(--s15)}.-p\:20{--p:var(--s20)}.-p\:30{--p:var(--s30)}.-p\:40{--p:var(--s40)}.-p\:50{--p:var(--s50)}.-p\:60{--p:var(--s60)}.-p\:70{--p:var(--s70)}.-p\:80{--p:var(--s80)}.-px,[class*="-px:"]{padding-inline:var(--px)}.-px\:0{--px:0}.-px\:5{--px:var(--s5)}.-px\:10{--px:var(--s10)}.-px\:15{--px:var(--s15)}.-px\:20{--px:var(--s20)}.-px\:30{--px:var(--s30)}.-px\:40{--px:var(--s40)}.-px\:50{--px:var(--s50)}.-px\:60{--px:var(--s60)}.-px\:70{--px:var(--s70)}.-px\:80{--px:var(--s80)}.-py,[class*="-py:"]{padding-block:var(--py)}.-py\:0{--py:0}.-py\:5{--py:var(--s5)}.-py\:10{--py:var(--s10)}.-py\:15{--py:var(--s15)}.-py\:20{--py:var(--s20)}.-py\:30{--py:var(--s30)}.-py\:40{--py:var(--s40)}.-py\:50{--py:var(--s50)}.-py\:60{--py:var(--s60)}.-py\:70{--py:var(--s70)}.-py\:80{--py:var(--s80)}.-px-s{padding-inline-start:var(--px-s)}.-px-e{padding-inline-end:var(--px-e)}.-py-s{padding-block-start:var(--py-s)}.-py-e{padding-block-end:var(--py-e)}.-pl{padding-left:var(--pl)}.-pr{padding-right:var(--pr)}.-pt{padding-top:var(--pt)}.-pb{padding-bottom:var(--pb)}.-m,[class*="-m:"]{margin:var(--m)}.-m\:0{--m:0}.-m\:5{--m:var(--s5)}.-m\:10{--m:var(--s10)}.-m\:15{--m:var(--s15)}.-m\:20{--m:var(--s20)}.-m\:30{--m:var(--s30)}.-m\:40{--m:var(--s40)}.-m\:50{--m:var(--s50)}.-m\:60{--m:var(--s60)}.-m\:70{--m:var(--s70)}.-m\:80{--m:var(--s80)}.-m\:auto{--m:auto}.-mx,[class*="-mx:"]{margin-inline:var(--mx)}.-mx\:0{--mx:0}.-mx\:5{--mx:var(--s5)}.-mx\:10{--mx:var(--s10)}.-mx\:15{--mx:var(--s15)}.-mx\:20{--mx:var(--s20)}.-mx\:30{--mx:var(--s30)}.-mx\:40{--mx:var(--s40)}.-mx\:50{--mx:var(--s50)}.-mx\:60{--mx:var(--s60)}.-mx\:70{--mx:var(--s70)}.-mx\:80{--mx:var(--s80)}.-mx\:auto{--mx:auto}.-my,[class*="-my:"]{margin-block:var(--my)}.-my\:0{--my:0}.-my\:5{--my:var(--s5)}.-my\:10{--my:var(--s10)}.-my\:15{--my:var(--s15)}.-my\:20{--my:var(--s20)}.-my\:30{--my:var(--s30)}.-my\:40{--my:var(--s40)}.-my\:50{--my:var(--s50)}.-my\:60{--my:var(--s60)}.-my\:70{--my:var(--s70)}.-my\:80{--my:var(--s80)}.-my\:auto{--my:auto}.-mx-s{margin-inline-start:var(--mx-s)}.-mx-s\:auto{margin-inline-start:auto}.-mx-e{margin-inline-end:var(--mx-e)}.-mx-e\:auto{margin-inline-end:auto}.-my-s{margin-block-start:var(--my-s)}.-my-s\:0{margin-block-start:0}.-my-s\:5{margin-block-start:var(--s5)}.-my-s\:10{margin-block-start:var(--s10)}.-my-s\:15{margin-block-start:var(--s15)}.-my-s\:20{margin-block-start:var(--s20)}.-my-s\:30{margin-block-start:var(--s30)}.-my-s\:40{margin-block-start:var(--s40)}.-my-s\:50{margin-block-start:var(--s50)}.-my-s\:60{margin-block-start:var(--s60)}.-my-s\:70{margin-block-start:var(--s70)}.-my-s\:80{margin-block-start:var(--s80)}.-my-s\:auto{margin-block-start:auto}.-my-e{margin-block-end:var(--my-e)}.-my-e\:auto{margin-block-end:auto}.-ml{margin-left:var(--ml)}.-mr{margin-right:var(--mr)}.-mt{margin-top:var(--mt)}.-mb{margin-bottom:var(--mb)}.-g,[class*="-g:"]{gap:var(--g)}.-g\:0{--g:0}.-g\:5{--g:var(--s5)}.-g\:10{--g:var(--s10)}.-g\:15{--g:var(--s15)}.-g\:20{--g:var(--s20)}.-g\:30{--g:var(--s30)}.-g\:40{--g:var(--s40)}.-g\:50{--g:var(--s50)}.-g\:60{--g:var(--s60)}.-g\:70{--g:var(--s70)}.-g\:80{--g:var(--s80)}.-g\:inherit{gap:inherit}.-cg{-moz-column-gap:var(--cg);column-gap:var(--cg)}.-rg{row-gap:var(--rg)}.-fxw{flex-wrap:var(--fxw)}.-fxw\:wrap{flex-wrap:wrap}.-fxd{flex-direction:var(--fxd)}.-fxd\:column{flex-direction:column}.-fxd\:column-reverse{flex-direction:column-reverse}.-fxd\:row-reverse{flex-direction:row-reverse}.-fx{flex:var(--fx)}.-fx\:1{flex:1}.-fxg\:1{flex-grow:1}.-fxsh\:0{flex-shrink:0}.-fxb{flex-basis:var(--fxb)}.-gt{grid-template:var(--gt)}.-gta{grid-template-areas:var(--gta)}.-gtc{grid-template-columns:var(--gtc)}.-gtc\:subgrid{grid-template-columns:subgrid}.-gtr{grid-template-rows:var(--gtr)}.-gtr\:subgrid{grid-template-rows:subgrid}.-gaf{grid-auto-flow:var(--gaf)}.-gaf\:row{grid-auto-flow:row}.-gaf\:column{grid-auto-flow:column}.-ga{grid-area:var(--ga)}.-ga\:1\/1{grid-area:1/1}.-gc{grid-column:var(--gc)}.-gc\:1\/-1{grid-column:1/-1}.-gr{grid-row:var(--gr)}.-gr\:1\/-1{grid-row:1/-1}.-ai{align-items:var(--ai)}.-ai\:start{align-items:start}.-ai\:center{align-items:center}.-ai\:end{align-items:end}.-ai\:stretch{align-items:stretch}.-ai\:flex-start{align-items:flex-start}.-ai\:flex-end{align-items:flex-end}.-ac{align-content:var(--ac)}.-ac\:start{align-content:start}.-ac\:center{align-content:center}.-ac\:end{align-content:end}.-ac\:flex-start{align-content:flex-start}.-ac\:flex-end{align-content:flex-end}.-ac\:between{align-content:space-between}.-ji{justify-items:var(--ji)}.-ji\:start{justify-items:start}.-ji\:center{justify-items:center}.-ji\:end{justify-items:end}.-ji\:stretch{justify-items:stretch}.-ji\:flex-start{justify-items:flex-start}.-ji\:flex-end{justify-items:flex-end}.-jc{justify-content:var(--jc)}.-jc\:start{justify-content:start}.-jc\:center{justify-content:center}.-jc\:end{justify-content:end}.-jc\:flex-start{justify-content:flex-start}.-jc\:flex-end{justify-content:flex-end}.-jc\:between{justify-content:space-between}.-pi\:start{place-items:start}.-pi\:center{place-items:center}.-pi\:end{place-items:end}.-pc\:start{place-content:start}.-pc\:center{place-content:center}.-pc\:end{place-content:end}.-aslf\:start{align-self:start}.-aslf\:center{align-self:center}.-aslf\:end{align-self:end}.-aslf\:stretch{align-self:stretch}.-jslf\:start{justify-self:start}.-jslf\:center{justify-self:center}.-jslf\:end{justify-self:end}.-jslf\:stretch{justify-self:stretch}.-pslf\:start{place-self:start}.-pslf\:center{place-self:center}.-pslf\:end{place-self:end}.-order\:0{order:0}.-order\:1{order:1}.-order\:-1{order:-1}.-ovwrap\:anywhere{overflow-wrap:anywhere}.-whspace\:nowrap{white-space:nowrap}.-float\:left{float:left}.-float\:right{float:right}.-clear\:both{clear:both}.-isolation\:isolate{isolation:isolate}@container (min-width: 480px){.-fz_sm{font-size:var(--fz_sm)}.-hl_sm{--hl:var(--hl_sm)!important}.-d_sm{display:var(--d_sm)}.-ar_sm{aspect-ratio:var(--ar_sm)}.-w_sm{width:var(--w_sm)}.-h_sm{height:var(--h_sm)}.-min-w_sm{min-width:var(--min-w_sm)}.-max-w_sm{max-width:var(--max-w_sm)}.-min-h_sm{min-height:var(--min-h_sm)}.-max-h_sm{max-height:var(--max-h_sm)}.-bg_sm{background:var(--bg_sm)}.-bdw_sm{--bdw:var(--bdw_sm)!important}.-bdrs_sm{border-radius:var(--bdrs_sm);--bdrs:var(--bdrs_sm)!important}.-bxsh_sm{box-shadow:var(--bxsh_sm)}.-p_sm{padding:var(--p_sm);--p:var(--p_sm)!important}.-px_sm{padding-inline:var(--px_sm)}.-py_sm{padding-block:var(--py_sm)}.-px-s_sm{padding-inline-start:var(--px-s_sm)}.-px-e_sm{padding-inline-end:var(--px-e_sm)}.-py-s_sm{padding-block-start:var(--py-s_sm)}.-py-e_sm{padding-block-end:var(--py-e_sm)}.-pl_sm{padding-left:var(--pl_sm)}.-pr_sm{padding-right:var(--pr_sm)}.-pt_sm{padding-top:var(--pt_sm)}.-pb_sm{padding-bottom:var(--pb_sm)}.-m_sm{margin:var(--m_sm);--m:var(--m_sm)!important}.-mx_sm{margin-inline:var(--mx_sm)}.-my_sm{margin-block:var(--my_sm)}.-mx-s_sm{margin-inline-start:var(--mx-s_sm)}.-mx-e_sm{margin-inline-end:var(--mx-e_sm)}.-my-s_sm{margin-block-start:var(--my-s_sm)}.-my-e_sm{margin-block-end:var(--my-e_sm)}.-ml_sm{margin-left:var(--ml_sm)}.-mr_sm{margin-right:var(--mr_sm)}.-mt_sm{margin-top:var(--mt_sm)}.-mb_sm{margin-bottom:var(--mb_sm)}.-g_sm{gap:var(--g_sm);--g:var(--g_sm)!important}.-cg_sm{-moz-column-gap:var(--cg_sm);column-gap:var(--cg_sm)}.-rg_sm{row-gap:var(--rg_sm)}.-cols_sm{--cols:var(--cols_sm)!important}.-rows_sm{--rows:var(--rows_sm)!important}.-fxw_sm{flex-wrap:var(--fxw_sm)}.-fxd_sm{flex-direction:var(--fxd_sm)}.-fx_sm{flex:var(--fx_sm)}.-fxb_sm{flex-basis:var(--fxb_sm)}.-gt_sm{grid-template:var(--gt_sm)}.-gta_sm{grid-template-areas:var(--gta_sm)}.-gtc_sm{grid-template-columns:var(--gtc_sm)}.-gtr_sm{grid-template-rows:var(--gtr_sm)}.-gaf_sm{grid-auto-flow:var(--gaf_sm)}.-ga_sm{grid-area:var(--ga_sm)}.-gc_sm{grid-column:var(--gc_sm)}.-gr_sm{grid-row:var(--gr_sm)}.-ai_sm{align-items:var(--ai_sm)}.-ac_sm{align-content:var(--ac_sm)}.-ji_sm{justify-items:var(--ji_sm)}.-jc_sm{justify-content:var(--jc_sm)}}@container (min-width: 800px){.-fz_md{font-size:var(--fz_md)}.-hl_md{--hl:var(--hl_md)!important}.-d_md{display:var(--d_md)}.-ar_md{aspect-ratio:var(--ar_md)}.-w_md{width:var(--w_md)}.-h_md{height:var(--h_md)}.-min-w_md{min-width:var(--min-w_md)}.-max-w_md{max-width:var(--max-w_md)}.-min-h_md{min-height:var(--min-h_md)}.-max-h_md{max-height:var(--max-h_md)}.-bg_md{background:var(--bg_md)}.-bdw_md{--bdw:var(--bdw_md)!important}.-bdrs_md{border-radius:var(--bdrs_md);--bdrs:var(--bdrs_md)!important}.-bxsh_md{box-shadow:var(--bxsh_md)}.-p_md{padding:var(--p_md);--p:var(--p_md)!important}.-px_md{padding-inline:var(--px_md)}.-py_md{padding-block:var(--py_md)}.-px-s_md{padding-inline-start:var(--px-s_md)}.-px-e_md{padding-inline-end:var(--px-e_md)}.-py-s_md{padding-block-start:var(--py-s_md)}.-py-e_md{padding-block-end:var(--py-e_md)}.-pl_md{padding-left:var(--pl_md)}.-pr_md{padding-right:var(--pr_md)}.-pt_md{padding-top:var(--pt_md)}.-pb_md{padding-bottom:var(--pb_md)}.-m_md{margin:var(--m_md);--m:var(--m_md)!important}.-mx_md{margin-inline:var(--mx_md)}.-my_md{margin-block:var(--my_md)}.-mx-s_md{margin-inline-start:var(--mx-s_md)}.-mx-e_md{margin-inline-end:var(--mx-e_md)}.-my-s_md{margin-block-start:var(--my-s_md)}.-my-e_md{margin-block-end:var(--my-e_md)}.-ml_md{margin-left:var(--ml_md)}.-mr_md{margin-right:var(--mr_md)}.-mt_md{margin-top:var(--mt_md)}.-mb_md{margin-bottom:var(--mb_md)}.-g_md{gap:var(--g_md);--g:var(--g_md)!important}.-cg_md{-moz-column-gap:var(--cg_md);column-gap:var(--cg_md)}.-rg_md{row-gap:var(--rg_md)}.-cols_md{--cols:var(--cols_md)!important}.-rows_md{--rows:var(--rows_md)!important}.-fxw_md{flex-wrap:var(--fxw_md)}.-fxd_md{flex-direction:var(--fxd_md)}.-fx_md{flex:var(--fx_md)}.-fxb_md{flex-basis:var(--fxb_md)}.-gt_md{grid-template:var(--gt_md)}.-gta_md{grid-template-areas:var(--gta_md)}.-gtc_md{grid-template-columns:var(--gtc_md)}.-gtr_md{grid-template-rows:var(--gtr_md)}.-gaf_md{grid-auto-flow:var(--gaf_md)}.-ga_md{grid-area:var(--ga_md)}.-gc_md{grid-column:var(--gc_md)}.-gr_md{grid-row:var(--gr_md)}.-ai_md{align-items:var(--ai_md)}.-ac_md{align-content:var(--ac_md)}.-ji_md{justify-items:var(--ji_md)}.-jc_md{justify-content:var(--jc_md)}}@media (any-hover:hover){.-hov\:c:hover{color:var(--hov-c,var(--link))}.-hov\:bdc:hover{border-color:var(--hov-bdc,currentColor)}.-hov\:bgc:hover{background-color:var(--hov-bgc,var(--base-2))}.-hov\:o:hover{opacity:var(--hov-o,.7)}.-hov\:bxsh:hover{box-shadow:var(--hov-bxsh,var(--bxsh--40))}.-hov\:neutral:hover{background-color:color-mix(in srgb,var(--bgc,var(--base)),#bcbec2 25%)}}.-hov\:to\:hide{--transProp:opacity;opacity:var(--_isHov,0)}.-hov\:to\:show{--transProp:opacity,visibility;opacity:var(--_notHov,0);visibility:var(--_notHov,hidden)}.-hov\:to\:zoom{--transProp:scale;scale:var(--_isHov,1.1)}
@@ -0,0 +1 @@
1
+ .is--container{container-type:inline-size}.is--container>*{--sz--container:100cqi}.is--container.set--gutter>*{--sz--container:calc(100cqi + var(--gutter-size)*2)}.is--wrapper{--contentSize:var(--sz--m,100%)}.is--wrapper>*{margin-inline:auto;max-inline-size:min(100%,var(--contentSize))}.-contentSize\:s{--contentSize:var(--sz--s)}.-contentSize\:l{--contentSize:var(--sz--l)}.is--boxLink{color:inherit;cursor:pointer;display:block;isolation:isolate;pointer-events:auto;position:relative;text-decoration:none}.is--boxLink a{position:relative;z-index:2}.is--coverLink{color:inherit;position:static;text-decoration:none}.is--coverLink:before{content:"";inset:0;position:absolute;z-index:1}.is--layer{inset:0;overflow:hidden;position:absolute}.is--vertical{writing-mode:var(--vertical-mode)}.is--vertical\@sm{writing-mode:var(--_is_sm) var(--vertical-mode)}.is--vertical\@md{writing-mode:var(--_is_md) var(--vertical-mode)}
@@ -1 +1 @@
1
- .u--trim{margin-block:calc(var(--hl)*-1)}.u--trimChildren>*{--my:calc(var(--hl)*-1);margin-block:var(--my)}.u--trimChildren>:where(figure,img,button){--my:0px}.u--cbox{--c:color-mix(in srgb,var(--text),var(--keycolor) var(--cbox-cPct,32%));--bgc:color-mix(in srgb,var(--base),var(--keycolor) var(--cbox-bgPct,4%));--bdc:color-mix(in srgb,transparent,var(--keycolor) var(--cbox-bdPct,64%));--link-c:var(--keycolor);background-color:var(--bgc);color:var(--c)}@supports (color:oklch(from red l c h)){.u--cbox{--shc:oklch(from var(--keycolor) calc(l / 1.5) calc(c / 1.5) h/0.1)}}.u--collapseGrid{--bdw:1px;--bdc:var(--divider);gap:var(--bdw);padding:var(--bdw)}.u--collapseGrid>*{box-shadow:0 0 0 var(--bdw) var(--bdc)}.u--expandedLink{color:inherit;position:static;text-decoration:none}.u--expandedLink:before{content:"";inset:0;position:absolute;z-index:1}.u--srOnly:not(#_){border:0;clip-path:inset(50%);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;white-space:nowrap;width:1px}.u--snap{scroll-snap-type:var(--snapType,both mandatory)}.u--snap>*{scroll-snap-align:var(--snapAlign,start);scroll-snap-stop:var(--snapStop,normal)}.u--clipText{-webkit-background-clip:text!important;background-clip:text!important;color:transparent!important}
1
+ .u--trim{margin-block:calc(var(--hl)*-1)}.u--trimChildren>*{--my:calc(var(--hl)*-1);margin-block:var(--my)}.u--trimChildren>:where(figure,img,button){--my:0px}.u--cbox{--c:color-mix(in srgb,var(--text),var(--keycolor) var(--cbox-cPct,32%));--bgc:color-mix(in srgb,var(--base),var(--keycolor) var(--cbox-bgPct,4%));--bdc:color-mix(in srgb,transparent,var(--keycolor) var(--cbox-bdPct,64%));--link-c:var(--keycolor);background-color:var(--bgc);color:var(--c)}@supports (color:oklch(from red l c h)){.u--cbox{--shc:oklch(from var(--keycolor) calc(l / 1.5) calc(c / 1.5) h/0.1)}}.u--collapseGrid{--bdw:1px;--bdc:var(--divider);gap:var(--bdw);padding:var(--bdw)}.u--collapseGrid>*{box-shadow:0 0 0 var(--bdw) var(--bdc)}.u--srOnly:not(#_){border:0;clip-path:inset(50%);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;white-space:nowrap;width:1px}.u--snap{scroll-snap-type:var(--snapType,both mandatory)}.u--snap>*{scroll-snap-align:var(--snapAlign,start);scroll-snap-stop:var(--snapStop,normal)}.u--clipText{-webkit-background-clip:text!important;background-clip:text!important;color:transparent!important}
@@ -1,5 +1,5 @@
1
1
  import { StyleWithCustomProps } from './types';
2
- import { StateProps, SetPropValue } from './types/StateProps';
2
+ import { TraitProps, SetPropValue, UtilPropValue } from './types/TraitProps';
3
3
  import { PropValueTypes } from './types/PropValueTypes';
4
4
  import { LayoutType, LayoutProps } from './types/LayoutProps';
5
5
  export { type LayoutType };
@@ -23,14 +23,14 @@ interface PropConfig {
23
23
  utilKey?: string;
24
24
  [key: string]: unknown;
25
25
  }
26
- interface StatePropDataObject {
26
+ interface TraitPropDataObject {
27
27
  className: string;
28
28
  preset?: string[] | readonly string[];
29
29
  presetClass?: string;
30
30
  customVar?: string;
31
31
  tokenKey?: string;
32
32
  }
33
- export interface LismPropsBase extends StateProps, PropValueTypes {
33
+ export interface LismPropsBase extends TraitProps, PropValueTypes {
34
34
  forwardedRef?: React.Ref<any>;
35
35
  class?: string;
36
36
  className?: string;
@@ -39,7 +39,7 @@ export interface LismPropsBase extends StateProps, PropValueTypes {
39
39
  style?: StyleWithCustomProps;
40
40
  _propConfig?: Record<string, PropConfig>;
41
41
  set?: SetPropValue;
42
- unset?: SetPropValue;
42
+ util?: UtilPropValue;
43
43
  hov?: boolean | string | Record<string, unknown>;
44
44
  css?: Record<string, string | number | undefined>;
45
45
  [key: `aria-${string}`]: unknown;
@@ -47,13 +47,15 @@ export interface LismPropsBase extends StateProps, PropValueTypes {
47
47
  }
48
48
  export declare class LismPropsData {
49
49
  className: string;
50
+ lismClass: string;
51
+ lismTrait: string[];
50
52
  uClasses: string[];
51
- lismState: string[];
52
53
  styles: StyleWithCustomProps;
53
54
  attrs: Record<string, unknown>;
54
55
  _propConfig?: Record<string, PropConfig>;
55
56
  constructor(allProps: LismPropsBase & Record<string, unknown>);
56
- analyzeState(statePropData: StatePropDataObject, propVal: unknown): void;
57
+ buildClassName(userClassName?: string, astroClassName?: string): string;
58
+ analyzeTrait(traitPropData: TraitPropDataObject, propVal: unknown): void;
57
59
  analyzeProps(): void;
58
60
  analyzeLismProp(propName: string, propVal: unknown): void;
59
61
  addUtil(util: string): void;
@@ -1,49 +1,59 @@
1
- import { STATES as b, PROPS as g } from "../config/index.js";
1
+ import { TRAITS as P, PROPS as y } from "../config/index.js";
2
2
  import p from "./getLayoutProps.js";
3
- import U from "./isPresetValue.js";
3
+ import S from "./isPresetValue.js";
4
4
  import E from "./isTokenValue.js";
5
5
  import C from "./getUtilKey.js";
6
- import S from "./getMaybeCssVar.js";
6
+ import c from "./getMaybeCssVar.js";
7
7
  import V from "./getBpData.js";
8
8
  import x from "./helper/atts.js";
9
- import _ from "./helper/isEmptyObj.js";
10
- import O from "./helper/filterEmptyObj.js";
11
- import w from "./helper/mergeSet.js";
9
+ import w from "./helper/isEmptyObj.js";
10
+ import U from "./helper/filterEmptyObj.js";
11
+ import O from "./helper/mergeSet.js";
12
12
  import j from "./helper/splitWithComma.js";
13
- const A = (f) => {
14
- const i = g[f];
13
+ const _ = (n) => {
14
+ const i = y[n];
15
15
  return i && i?.token || "";
16
16
  };
17
- class z {
18
- // propList = {};
17
+ function z(n, i) {
18
+ if (!n) return "";
19
+ if (!i) return n;
20
+ const t = n.split(" "), s = t[0];
21
+ return [s, `${s}--${i}`, ...t.slice(1)].join(" ");
22
+ }
23
+ class L {
24
+ // 最終出力 className
19
25
  className = "";
26
+ // 出力順のためのクラスバケット: [lismClass] [lismTrait] [uClasses]
27
+ // - lismClass : コンポーネント基底クラス + variant + l--{layout}(getLayoutProps 側で付与済み)
28
+ // - lismTrait : is--* 等の trait クラス
29
+ // - uClasses : set--* → u--* → -property の順で push される utility クラス
30
+ lismClass = "";
31
+ lismTrait = [];
20
32
  uClasses = [];
21
- lismState = [];
22
33
  styles = {};
23
34
  attrs = {};
24
35
  _propConfig;
25
36
  constructor(i) {
26
- const { forwardedRef: t, class: s, className: e, lismClass: l, variant: r, style: o = {}, _propConfig: m = {}, ...u } = i;
27
- this.styles = { ...o }, this._propConfig = { ...m };
28
- let a = l || "";
29
- if (r && l) {
30
- const d = l.split(" "), n = d[0], y = `${n}--${r}`;
31
- a = [n, y, ...d.slice(1)].join(" ");
32
- }
33
- _(u) || (this.attrs = { ...u }, this.analyzeProps()), t && (this.attrs.ref = t), this.className = x(e || s, a, this.lismState, this.uClasses);
37
+ const { forwardedRef: t, class: s, className: e, lismClass: l, variant: r, style: o = {}, _propConfig: d = {}, ...u } = i;
38
+ this.styles = { ...o }, this._propConfig = { ...d }, this.lismClass = z(l, r), w(u) || (this.attrs = { ...u }, this.analyzeProps()), t && (this.attrs.ref = t), this.className = this.buildClassName(e, s);
34
39
  }
35
- analyzeState(i, t) {
40
+ // 最終クラス文字列の組み立て(出力順の唯一の確定地点)
41
+ // 出力順: [user/astro className] [lismClass] [lismTrait] [uClasses]
42
+ buildClassName(i, t) {
43
+ return x(i || t, this.lismClass, this.lismTrait, this.uClasses);
44
+ }
45
+ analyzeTrait(i, t) {
36
46
  const { className: s, preset: e, presetClass: l, customVar: r, tokenKey: o } = i;
37
- t === !0 ? this.lismState.push(s) : e && U(e, t) ? this.lismState.push(`${s} ${l}:${String(t)}`) : t && (this.lismState.push(s), o && r && this.addStyle(r, S(t, o)));
47
+ t === !0 ? this.lismTrait.push(s) : e && S(e, t) ? this.lismTrait.push(`${s} ${l}:${String(t)}`) : t && (this.lismTrait.push(s), o && r && this.addStyle(r, c(t, o)));
38
48
  }
39
49
  // prop解析
40
50
  analyzeProps() {
41
- const i = this.extractProp("set"), t = this.extractProp("unset");
42
- Object.keys(this.attrs).forEach((s) => {
43
- if (Object.hasOwn(b, s)) {
44
- const e = this.extractProp(s), l = b[s];
45
- typeof l == "string" ? e && this.lismState.push(l) : this.analyzeState(l, e);
46
- } else if (Object.hasOwn(g, s)) {
51
+ const i = this.extractProp("set"), t = this.extractProp("util");
52
+ O(void 0, i).forEach((s) => this.addUtil(`set--${s}`)), O(void 0, t).forEach((s) => this.addUtil(`u--${s}`)), Object.keys(this.attrs).forEach((s) => {
53
+ if (Object.hasOwn(P, s)) {
54
+ const e = this.extractProp(s), l = P[s];
55
+ typeof l == "string" ? e && this.lismTrait.push(l) : this.analyzeTrait(l, e);
56
+ } else if (Object.hasOwn(y, s)) {
47
57
  const e = this.attrs[s];
48
58
  delete this.attrs[s], this.analyzeLismProp(s, e);
49
59
  } else if (s === "hov") {
@@ -53,12 +63,12 @@ class z {
53
63
  const e = this.extractProp("css");
54
64
  this.addStyles(e);
55
65
  }
56
- }), w(void 0, i, t).forEach((s) => this.lismState.push(`set--${s}`));
66
+ });
57
67
  }
58
68
  // Lism Prop 解析
59
69
  analyzeLismProp(i, t) {
60
70
  if (t == null) return;
61
- let s = g[i] || null;
71
+ let s = y[i] || null;
62
72
  if (s === null) return;
63
73
  this._propConfig?.[i] && (s = Object.assign({}, s, this._propConfig[i]));
64
74
  const { base: e, ...l } = V(t);
@@ -104,20 +114,20 @@ class z {
104
114
  return;
105
115
  }
106
116
  if (!e) {
107
- const { presets: y, tokenClass: k, utils: $, shorthands: P } = s;
108
- if (y && U(y, t)) {
109
- const c = typeof t == "string" || typeof t == "number" ? String(t) : "";
110
- c && this.addUtil(`${r}:${c}`);
117
+ const { presets: g, tokenClass: T, utils: $, shorthands: b } = s;
118
+ if (g && S(g, t)) {
119
+ const h = typeof t == "string" || typeof t == "number" ? String(t) : "";
120
+ h && this.addUtil(`${r}:${h}`);
111
121
  return;
112
122
  }
113
- if (k && s.token && E(s.token, t)) {
114
- const c = typeof t == "string" || typeof t == "number" ? String(t) : "";
115
- c && this.addUtil(`${r}:${c}`);
123
+ if (T && s.token && E(s.token, t)) {
124
+ const h = typeof t == "string" || typeof t == "number" ? String(t) : "";
125
+ h && this.addUtil(`${r}:${h}`);
116
126
  return;
117
127
  }
118
- let h = "";
119
- if ($ && typeof t == "string" && (h = C($, t)), !h && P && typeof t == "string" && (h = C(P, t, !0)), h) {
120
- this.addUtil(`${r}:${h}`);
128
+ let a = "";
129
+ if ($ && typeof t == "string" && (a = C($, t)), !a && b && typeof t == "string" && (a = C(b, t, !0)), a) {
130
+ this.addUtil(`${r}:${a}`);
121
131
  return;
122
132
  }
123
133
  }
@@ -125,18 +135,18 @@ class z {
125
135
  this.addUtil(r);
126
136
  return;
127
137
  }
128
- const { prop: o, isVar: m, alwaysVar: u, token: a, bp: d } = s;
129
- let n;
130
- if (a && (typeof t == "string" || typeof t == "number") ? n = S(t, a) : typeof t == "string" || typeof t == "number" ? n = t : n = JSON.stringify(t), !e) {
131
- if (m) {
132
- this.addStyle(`--${i}`, n);
138
+ const { prop: o, isVar: d, alwaysVar: u, token: m, bp: k } = s;
139
+ let f;
140
+ if (m && (typeof t == "string" || typeof t == "number") ? f = c(t, m) : typeof t == "string" || typeof t == "number" ? f = t : f = JSON.stringify(t), !e) {
141
+ if (d) {
142
+ this.addStyle(`--${i}`, f);
133
143
  return;
134
- } else if (!d && !u) {
135
- this.addStyle(o, n);
144
+ } else if (!k && !u) {
145
+ this.addStyle(o, f);
136
146
  return;
137
147
  }
138
148
  }
139
- this.addUtil(r), this.addStyle(l, n);
149
+ this.addUtil(r), this.addStyle(l, f);
140
150
  }
141
151
  // setPassProps(passVars) {
142
152
  // let dataList = [];
@@ -164,27 +174,27 @@ class z {
164
174
  this.addUtil(`-hov:${e}`);
165
175
  });
166
176
  else if (typeof s == "string" || typeof s == "number") {
167
- const e = S(s, A(t));
177
+ const e = c(s, _(t));
168
178
  this.addUtil(`-hov:${t}`), this.addStyle(`--hov-${t}`, e);
169
179
  }
170
180
  }
171
181
  }));
172
182
  }
173
183
  }
174
- function Q(f) {
175
- if (Object.keys(f).length === 0)
184
+ function X(n) {
185
+ if (Object.keys(n).length === 0)
176
186
  return {};
177
- const { layout: i, ...t } = f, s = new z(p(i, t));
187
+ const { layout: i, ...t } = n, s = new L(p(i, t));
178
188
  return {
179
- ...O({
189
+ ...U({
180
190
  className: s.className,
181
- style: O(s.styles)
191
+ style: U(s.styles)
182
192
  }),
183
193
  ...s.attrs
184
194
  // data-* などHTMLの標準属性はそのまま渡す
185
195
  };
186
196
  }
187
197
  export {
188
- z as LismPropsData,
189
- Q as default
198
+ L as LismPropsData,
199
+ X as default
190
200
  };
@@ -1,5 +1,10 @@
1
1
  /**
2
- * base / set / unset を合成し、最終的な set 値の配列を返す。
3
- * unset に含まれる値は base + set から除外される。
2
+ * base / value を合成し、最終的なクラス識別子の配列を返す。
3
+ * 値内の `-` prefix は除外マーカーとして扱われ、その識別子は base + value から除外される。
4
+ *
5
+ * `set` / `util` のいずれの prop でも共用できる汎用処理。
6
+ *
7
+ * 入力は空白区切りを基本とし、カンマ区切りも互換のため受け付ける。
8
+ * 内部 API 用途として文字列配列も受け付けるが、配列形式はユーザー向けドキュメントでは紹介していない。
4
9
  */
5
- export default function mergeSet(base: unknown, set: unknown, unset: unknown): string[];
10
+ export default function mergeSet(base: unknown, value: unknown): string[];
@@ -1,14 +1,14 @@
1
- function r(t) {
2
- return t ? Array.isArray(t) ? t.flatMap((e) => r(e)) : typeof t == "string" ? t.split(/[,\s]+/).map((e) => e.trim()).filter(Boolean) : [] : [];
1
+ function i(t) {
2
+ return t ? Array.isArray(t) ? t.flatMap((e) => i(e)) : typeof t != "string" ? [] : t.split(/[,\s]+/).map((e) => e.trim()).filter(Boolean) : [];
3
3
  }
4
- function u(t, e, f) {
5
- const n = [.../* @__PURE__ */ new Set([...r(t), ...r(e)])];
6
- if (n.length === 0) return [];
7
- const i = r(f);
8
- if (i.length === 0) return n;
9
- const s = new Set(i);
10
- return n.filter((o) => !s.has(o));
4
+ function o(t, e) {
5
+ const s = [...i(t), ...i(e)];
6
+ if (s.length === 0) return [];
7
+ const n = [], f = /* @__PURE__ */ new Set();
8
+ for (const r of s)
9
+ r.startsWith("-") ? f.add(r.slice(1)) : n.includes(r) || n.push(r);
10
+ return n.filter((r) => !f.has(r));
11
11
  }
12
12
  export {
13
- u as default
13
+ o as default
14
14
  };
@@ -0,0 +1,47 @@
1
+ import { TRAITS } from '../../../config/index';
2
+ import { WithArbitraryString, ArrayElement } from './utils';
3
+ /**
4
+ * config/index.ts から TRAITS の型を取得
5
+ * objDeepMerge の DeepMergeResult 型により literal types が保持される
6
+ */
7
+ type TraitsConfig = typeof TRAITS;
8
+ /** preset を持つ Trait の値の型を抽出 */
9
+ type PresetElement<T> = T extends {
10
+ preset: readonly unknown[];
11
+ } ? ArrayElement<T['preset']> : never;
12
+ /**
13
+ * Trait 設定から Props の値の型を抽出するユーティリティ型
14
+ */
15
+ type ExtractTraitValue<T> = T extends string ? boolean : T extends {
16
+ preset: readonly unknown[];
17
+ } ? WithArbitraryString<PresetElement<T>> | boolean : never;
18
+ /**
19
+ * config/index.ts の TRAITS から自動生成される Trait Props の型
20
+ * config/index.ts の TRAITS に新しいトレイトを追加すると自動的に反映される
21
+ */
22
+ export type TraitProps = {
23
+ [K in keyof TraitsConfig]?: ExtractTraitValue<TraitsConfig[K]>;
24
+ };
25
+ /** set prop で使われるプリセット値(エディタ補完用) */
26
+ type SetPreset = 'gutter' | 'shadow' | 'hov' | 'transition' | 'mask' | 'plain' | 'innerRs' | 'bp';
27
+ /**
28
+ * set prop の値の型。プリセット値がサジェストされつつ、任意の文字列も受け付ける。
29
+ *
30
+ * - 値はスペース区切りで複数指定可能
31
+ * - 先頭に `-` を付けると、その識別子を除外する(例: `set="card -bd"`)
32
+ * - 文字列配列も受け付けるが、これは内部 API 用途(lism-ui など)であり、
33
+ * ユーザー向けドキュメントでは紹介していない
34
+ */
35
+ export type SetPropValue = WithArbitraryString<SetPreset> | WithArbitraryString<SetPreset>[];
36
+ /** util prop で使われるプリセット値(既知の `u--` クラス名・エディタ補完用) */
37
+ type UtilPreset = 'cbox' | 'trim' | 'trimChildren' | 'srOnly' | 'clipText' | 'collapseGrid' | 'snap';
38
+ /**
39
+ * util prop の値の型。既知の `u--` クラス名がサジェストされつつ、任意の文字列も受け付ける。
40
+ *
41
+ * - 値はスペース区切りで複数指定可能
42
+ * - 先頭に `-` を付けると、その識別子を除外する(例: `util="cbox -trim"`)
43
+ * - 文字列配列も受け付けるが、これは内部 API 用途であり、
44
+ * ユーザー向けドキュメントでは紹介していない
45
+ */
46
+ export type UtilPropValue = WithArbitraryString<UtilPreset> | WithArbitraryString<UtilPreset>[];
47
+ export {};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "lism-css",
3
- "version": "0.12.0",
3
+ "version": "0.13.0",
4
4
  "description": "Lism CSS is a layout-first CSS framework for websites.",
5
5
  "author": {
6
6
  "name": "ddryo",
@@ -33,7 +33,7 @@ export * from './layout/TileGrid';
33
33
  // state (is--)
34
34
  export * from './state/Container';
35
35
  export * from './state/Layer';
36
- export * from './state/LinkBox';
36
+ export * from './state/BoxLink';
37
37
  export * from './state/Wrapper';
38
38
 
39
39
  // atomic (a--)
@@ -8,9 +8,9 @@ type Props<Tag extends HTMLTag = 'a'> = Polymorphic<{ as: Tag }> & AstroLismBase
8
8
  const { as, exProps, ...props } = Astro.props;
9
9
 
10
10
  const hasHref = !!props.href;
11
- // LinkBoxは基本的にリンク要素(aタグ)として機能するため、
11
+ // BoxLinkは基本的にリンク要素(aタグ)として機能するため、
12
12
  // hrefがないかつ、aタグとしてレンダリングする場合はdivタグに置き換える
13
13
  const tag: HTMLTag = !hasHref && (as ?? 'a') === 'a' ? 'div' : (as ?? 'a');
14
14
  ---
15
15
 
16
- <Lism isLinkBox as={tag} {...props} {...exProps}><slot /></Lism>
16
+ <Lism isBoxLink as={tag} {...props} {...exProps}><slot /></Lism>
@@ -0,0 +1 @@
1
+ export { default as BoxLink } from './BoxLink.astro';
@@ -3,12 +3,9 @@ import type { HTMLTag, Polymorphic } from 'astro/types';
3
3
  import type { AstroLismBaseProps } from '../../types';
4
4
  import { Lism } from '../../Lism';
5
5
 
6
- type Props<Tag extends HTMLTag = 'div'> = Polymorphic<{ as: Tag }> &
7
- AstroLismBaseProps & {
8
- size?: string;
9
- };
6
+ type Props<Tag extends HTMLTag = 'div'> = Polymorphic<{ as: Tag }> & AstroLismBaseProps;
10
7
 
11
- const { size, ...props } = Astro.props;
8
+ const props = Astro.props;
12
9
  ---
13
10
 
14
- <Lism isContainer isWrapper={size} {...props}><slot /></Lism>
11
+ <Lism isContainer {...props}><slot /></Lism>
@@ -3,6 +3,9 @@
3
3
  */
4
4
  @use 'sass:meta';
5
5
 
6
+ // レイヤー順序を明示的に宣言(詳細度: 上ほど弱い)
7
+ @layer lism-base, lism-primitive, lism-component, lism-custom, lism-utility;
8
+
6
9
  @layer lism-base {
7
10
  // resetは中でも layer定義済み。 lism-base.reset となる
8
11
  @include meta.load-css('reset');
@@ -10,18 +13,22 @@
10
13
  @include meta.load-css('base');
11
14
  }
12
15
 
13
- @layer lism-modules {
14
- @layer state {
15
- @include meta.load-css('modules/state');
16
+ @layer lism-primitive {
17
+ @layer trait {
18
+ @include meta.load-css('primitives/trait');
16
19
  }
17
20
  @layer layout {
18
- @include meta.load-css('modules/layout');
21
+ @include meta.load-css('primitives/layout');
19
22
  }
20
23
  @layer atomic {
21
- @include meta.load-css('modules/atomic');
24
+ @include meta.load-css('primitives/atomic');
22
25
  }
23
26
  }
24
27
 
28
+ /* stylelint-disable-next-line block-no-empty -- BEM 構造を持つ UI コンポーネント(c--)用レイヤー。コアでは空、@lism-css/ui やユーザー定義クラスがここに配置される。 */
29
+ @layer lism-component {
30
+ }
31
+
25
32
  /* stylelint-disable-next-line block-no-empty -- ユーザーの独自分類クラス用レイヤー */
26
33
  @layer lism-custom {
27
34
  }
@@ -95,7 +95,7 @@
95
95
  --ar--og: 1.91/1;
96
96
 
97
97
  /**
98
- * State Module用の初期値
98
+ * Trait Primitive用の初期値
99
99
  */
100
100
  --gutter-size: var(--s30); // サイトコンテンツの左右につける余白
101
101
  --vertical-mode: vertical-rl; // 縦書きモード
@@ -11,10 +11,10 @@
11
11
  // base
12
12
  @use './base/index' as base;
13
13
 
14
- // Modules
15
- @use './modules/state/index' as state;
16
- @use './modules/layout/index' as layout;
17
- @use './modules/atomic/index' as atomic;
14
+ // Primitives
15
+ @use './primitives/trait/index' as trait;
16
+ @use './primitives/layout/index' as layout;
17
+ @use './primitives/atomic/index' as atomic;
18
18
 
19
19
  // @use './component/index' as component;
20
20
 
@@ -1,4 +1,4 @@
1
- // modules
1
+ // layout primitives
2
2
  @forward './flow';
3
3
  @forward './flex';
4
4
  @forward './cluster';
@@ -1,6 +1,6 @@
1
1
  @use '../../_mixin' as mixin;
2
2
 
3
- .is--linkBox {
3
+ .is--boxLink {
4
4
  position: relative;
5
5
  display: block;
6
6
  color: inherit;
@@ -11,12 +11,12 @@
11
11
  }
12
12
 
13
13
  // リンクをクリック可能にするためにz-indexあげる
14
- .is--linkBox a {
14
+ .is--boxLink a {
15
15
  position: relative;
16
- z-index: 2; // .u-linkExpand::before + 1
16
+ z-index: 2; // .is--coverLink::before + 1
17
17
  }
18
18
 
19
19
  /* これをしてしまうと z-index 関係がややこしくなる。リンク以外のz-indexはデフォのままにする。 */
20
- // .is--linkBox > * {
20
+ // .is--boxLink > * {
21
21
  // z-index: 0;
22
22
  // }
@@ -1,4 +1,4 @@
1
- .u--expandedLink {
1
+ .is--coverLink {
2
2
  position: static;
3
3
  text-decoration: none;
4
4
  color: inherit;