:root {
  color-scheme:light;
  --paper:#f4f6f8;
  --white:#fff;
  --ink:#24303c;
  --muted:#65707e;
  --line:#dce1e7;
  --blue:#25529b;
  --sand:#f3af46
}
* {
  box-sizing:border-box
}
body {
  margin:0;
  background:var(--paper);
  color:var(--ink);
  font:15px/1.55 'Segoe UI',-apple-system,BlinkMacSystemFont,Arial,sans-serif
}
button,input {
  font:inherit
}
button,a,input {
  touch-action:manipulation
}
button {
  cursor:pointer
}
a {
  color:inherit;
  text-decoration:none
}
button:focus-visible,a:focus-visible,input:focus-visible,video:focus-visible {
  outline:3px solid var(--blue);
  outline-offset:4px
}
[hidden] {
  display:none!important
}
.visually-hidden,.skip:not(:focus) {
  position:absolute;
  width:1px;
  height:1px;
  padding:0;
  margin:-1px;
  overflow:hidden;
  clip:rect(0,0,0,0);
  white-space:nowrap;
  border:0
}
.skip:focus {
  display:block;
  padding:12px;
  background:var(--white)
}
.site-header {
  min-height:92px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:40px;
  padding:18px max(24px,calc((100vw - 1200px)/2));
  background:var(--white);
  border-bottom:1px solid var(--line)
}
.brand {
  min-height:44px;
  display:inline-flex;
  align-items:center;
  gap:10px;
  flex-shrink:0;
  font-size:25px;
  font-weight:750;
  letter-spacing:-1px;
  color:var(--blue)
}
.brand svg {
  width:36px;
  height:36px
}
.search {
  display:flex;
  align-items:center;
  gap:12px;
  width:100%;
  max-width:520px;
  min-width:0;
  background:var(--paper);
  border:1px solid var(--line);
  border-radius:9px;
  padding:0 4px 0 14px
}
.search svg {
  width:20px;
  height:20px;
  flex:none;
  fill:none;
  stroke:var(--muted);
  stroke-width:1.8
}
.search input {
  min-width:0;
  width:100%;
  height:44px;
  border:0;
  outline-offset:0;
  background:transparent;
  color:var(--ink);
  font-size:14px
}
.search button {
  min-height:44px;
  border:0;
  border-radius:6px;
  background:var(--blue);
  color:var(--white);
  padding:8px 17px;
  font-weight:600
}
.header-note {
  flex:none;
  font-size:12px;
  line-height:1.5;
  color:var(--muted)
}
main,footer {
  max-width:1248px;
  padding:0 24px;
  margin:auto
}
.intro {
  display:flex;
  justify-content:space-between;
  align-items:flex-end;
  gap:24px;
  margin:40px 0 28px
}
.intro-label {
  color:var(--blue);
  font-size:14px;
  font-weight:650;
  margin:0 0 8px
}
h1 {
  font-size:clamp(27px,3.3vw,39px);
  font-weight:700;
  letter-spacing:-1.3px;
  line-height:1.18;
  margin:0
}
.intro p:last-child {
  font-size:15px;
  color:var(--muted);
  margin:12px 0 0
}
.collection-note {
  flex:none;
  font-size:13px;
  line-height:1.65;
  text-align:right;
  color:var(--muted);
  padding-bottom:3px
}
.categories {
  display:flex;
  gap:8px;
  flex-wrap:wrap;
  padding-bottom:24px;
  border-bottom:1px solid var(--line)
}
.categories button {
  border:1px solid var(--line);
  color:var(--ink);
  background:var(--white);
  border-radius:7px;
  min-height:44px;
  padding:10px 17px;
  font-size:14px;
  font-weight:550
}
.categories button[aria-pressed=true] {
  background:var(--ink);
  color:var(--white);
  border-color:var(--ink)
}
.section-top {
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:20px;
  padding:24px 0 18px
}
.section-top h2 {
  font-size:20px;
  letter-spacing:-.4px;
  margin:0
}
.section-top p {
  margin:0;
  color:var(--muted);
  font-size:13px
}
.videos {
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:28px 24px
}
.video-card {
  min-width:0
}
.video-open {
  display:block;
  width:100%;
  border:0;
  padding:0;
  color:var(--ink);
  text-align:left;
  background:transparent
}
.thumbnail {
  position:relative;
  overflow:hidden;
  border-radius:11px;
  aspect-ratio:16/9;
  background:#dce3e8
}
.thumbnail img {
  display:block;
  width:100%;
  height:100%;
  object-fit:cover
}
.duration {
  position:absolute;
  right:9px;
  bottom:9px;
  background:#1c273ad9;
  color:white;
  font-size:12px;
  font-weight:600;
  border-radius:4px;
  padding:2px 6px
}
.play-indicator {
  position:absolute;
  left:12px;
  bottom:10px;
  border:1px solid #ffffffab;
  border-radius:50%;
  width:33px;
  height:33px;
  display:flex;
  align-items:center;
  justify-content:center;
  background:#ffffffc9;
  color:var(--ink)
}
.play-indicator svg {
  width:16px;
  height:16px;
  fill:currentColor
}
.video-card h3 {
  font-size:17px;
  font-weight:650;
  letter-spacing:-.3px;
  line-height:1.4;
  margin:12px 0 4px
}
.video-card p {
  font-size:13px;
  color:var(--muted);
  margin:0
}
.video-open:hover h3 {
  color:var(--blue)
}
.empty {
  padding:52px 0;
  text-align:center
}
.empty h2 {
  font-size:25px;
  margin:0
}
.empty p {
  max-width:440px;
  margin:12px auto 22px;
  color:var(--muted)
}
.empty button {
  background:var(--blue);
  color:var(--white);
  border:0;
  padding:12px 20px;
  min-height:44px;
  border-radius:7px
}
.collection-about {
  display:flex;
  align-items:center;
  gap:28px;
  margin:52px 0 38px;
  border:1px solid var(--line);
  border-radius:12px;
  background:var(--white);
  padding:28px 32px
}
.about-mark {
  display:flex;
  align-items:center;
  justify-content:center;
  flex:none;
  background:#f5e8ca;
  color:#896823;
  font-size:50px;
  font-weight:650;
  width:88px;
  height:88px;
  border-radius:20px;
  letter-spacing:-3px
}
.collection-about h2 {
  font-size:22px;
  margin:0 0 8px;
  letter-spacing:-.5px
}
.collection-about p {
  max-width:76ch;
  color:var(--muted);
  margin:0;
  font-size:14px
}
footer {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:18px;
  border-top:1px solid var(--line);
  padding-block:24px 32px;
  font-size:12px;
  color:var(--muted)
}
.small-brand {
  font-size:20px
}
dialog {
  padding:0;
  width:min(840px,calc(100% - 32px));
  max-height:calc(100dvh - 32px);
  overflow:auto;
  border:1px solid var(--line);
  border-radius:14px;
  background:var(--white);
  color:var(--ink)
}
dialog::backdrop {
  background:#162234bd
}
.viewer-top {
  display:flex;
  justify-content:space-between;
  align-items:center;
  padding:9px 16px 9px 24px;
  font-size:13px;
  color:var(--muted)
}
#close {
  display:flex;
  justify-content:center;
  align-items:center;
  border:0;
  background:transparent;
  border-radius:6px;
  min-width:44px;
  min-height:44px
}
#close svg {
  width:20px;
  height:20px;
  fill:none;
  stroke:var(--ink);
  stroke-width:1.8
}
video {
  width:100%;
  display:block;
  aspect-ratio:16/9;
  background:#17222d
}
.video-info {
  padding:22px 24px 14px
}
.category-label {
  color:var(--blue);
  font-size:13px;
  margin:0 0 5px
}
.video-info h2 {
  margin:0 0 10px;
  font-size:27px;
  letter-spacing:-.6px;
  line-height:1.3
}
.video-info p:not(.category-label) {
  color:var(--muted);
  font-size:14px;
  max-width:70ch;
  margin:0 0 10px
}
#player-status:empty {
  display:none
}
.viewer-bottom {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:20px;
  border-top:1px solid var(--line);
  padding:16px 24px;
  color:var(--muted);
  font-size:13px
}
.viewer-bottom button {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:30px;
  min-height:44px;
  background:var(--paper);
  border:1px solid var(--line);
  padding:10px 15px;
  border-radius:7px;
  color:var(--ink)
}
@media(max-width:1000px) {
  .header-note {
  display:none
}
.site-header {
  gap:30px
}
.videos {
  gap:24px 18px
}

}
@media(max-width:700px) {
  .site-header {
  flex-wrap:wrap;
  gap:16px;
  padding:18px 20px
}
.brand {
  font-size:24px
}
.search {
  max-width:none;
  flex-basis:100%;
  order:2
}
.intro {
  margin-top:28px;
  align-items:flex-start
}
.collection-note {
  display:none
}
.videos {
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:24px 16px
}
.video-card h3 {
  font-size:16px
}
.collection-about {
  padding:24px;
  gap:20px
}
.about-mark {
  width:64px;
  height:64px;
  font-size:39px
}
main,footer {
  padding-inline:20px
}
.categories {
  gap:7px
}
.categories button {
  padding:10px 12px
}
.viewer-bottom {
  flex-wrap:wrap
}
.viewer-bottom button {
  width:100%
}

}
@media(max-width:440px) {
  .videos {
  grid-template-columns:1fr;
  gap:25px
}
.intro {
  margin-bottom:24px
}
.intro p:last-child {
  font-size:14px
}
.collection-about {
  align-items:flex-start;
  gap:16px;
  padding:20px
}
.about-mark {
  width:43px;
  height:43px;
  font-size:29px;
  border-radius:11px
}
.collection-about h2 {
  font-size:19px
}
.collection-about p {
  font-size:13px
}
.section-top {
  padding-block:22px 16px
}
.video-card h3 {
  font-size:17px
}
footer {
  align-items:flex-start;
  flex-direction:column;
  gap:10px
}
dialog {
  width:calc(100% - 20px)
}
.video-info {
  padding:18px
}
.video-info h2 {
  font-size:23px
}
.viewer-bottom {
  padding:14px 18px
}
.viewer-top {
  padding-left:18px
}

}
@media(prefers-reduced-motion:no-preference) {
  .thumbnail img {
  transition:filter .15s
}
.video-open:hover img {
  filter:brightness(1.05)
}

}
