:root{--ink:#142821;--paper:#f5f6f2;--gold:#c6d88b;--line:#cdd3cb;font-family:"Yu Gothic","Hiragino Kaku Gothic ProN",Meiryo,sans-serif;color:var(--ink);background:var(--paper);font-synthesis:none;scroll-behavior:smooth}*{box-sizing:border-box}body{margin:0}a{color:inherit;text-decoration:none}button{font:inherit}header{height:64px;padding:0 20px;display:flex;align-items:center;justify-content:space-between;background:#14231e;color:#fff}header>a:first-child{font-size:20px;font-weight:800;display:flex;flex-direction:column;line-height:1.3}header>a:first-child span{font-size:10px;letter-spacing:.13em}header>a:last-child{font-size:14px}header>a:last-child span{margin-left:10px}.hero{height:calc(100svh - 64px);min-height:660px;max-height:900px;position:relative;isolation:isolate;overflow:hidden;color:#fff;background:#0b1713}.mosaic{position:absolute;inset:0;z-index:-2}.mosaic-base,.mosaic-letters{position:absolute;inset:0;background-image:url('assets/mosaic-mobile.webp');background-size:100% 100%;background-repeat:no-repeat}.mosaic-base{opacity:.2}.mosaic-letters{mask-image:url('letters-mobile.svg');mask-size:100% 100%;mask-repeat:no-repeat;filter:saturate(.92) brightness(1.16)}.hero:after{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(#08181265 0%,transparent 24%,transparent 60%,#081812ee 100%)}.hero-top{position:absolute;top:28px;left:24px;right:24px;display:flex;justify-content:space-between;align-items:flex-start}.hero-top>span{font-size:21px;font-weight:700;letter-spacing:.14em}.hero-top p{margin:0;line-height:1.8;font-size:14px;letter-spacing:.13em;font-weight:600}.hero-bottom{position:absolute;bottom:30px;left:24px;right:24px}.eyebrow{font-size:14px;letter-spacing:.13em;margin:0 0 13px}h1{font-size:16px;line-height:1.8;margin:0;font-weight:500;letter-spacing:.06em}h1 strong{font-size:32px;letter-spacing:.13em;font-weight:800}.view-awards{margin-top:23px;padding:16px 0;border-top:1px solid #ffffff80;display:flex;align-items:center;justify-content:space-between;font-size:15px;font-weight:600}.view-awards span{font-size:22px}.intro{padding:66px 20px 60px;text-align:center}.intro p{font-size:16px;line-height:2.2;margin:0}.intro-rule{display:block;width:1px;height:38px;background:#839582;margin:24px auto}.intro .thanks{font-size:14px}.awards{max-width:1140px;margin:auto;padding:0 20px 76px;scroll-margin-top:20px}.section-title{padding:30px 0 38px;border-top:1px solid var(--line)}.section-title p{font-size:12px;letter-spacing:.13em;margin:0 0 12px}.section-title h2{font-size:30px;letter-spacing:.05em;margin:0}.grand{background:#e8ecdf;padding:25px 18px 16px}.award-label{position:relative;padding-left:45px;margin-bottom:24px}.award-number{position:absolute;left:0;top:0;font-size:23px;color:#65794a;font-weight:600}.award-label h3{font-size:25px;margin:0;letter-spacing:.15em}.award-label p{font-size:11px;letter-spacing:.15em;margin:6px 0 0}figure{margin:0}.photo-open{width:100%;border:0;padding:0;background:transparent;cursor:zoom-in;display:block}.photo-open img{display:block;width:100%;height:auto;object-fit:contain}.grand img{max-height:690px}figcaption{font-size:13px;padding:16px 0 4px}figcaption strong{font-size:16px;font-weight:600;margin-left:10px}.award-group{margin-top:65px}.group-title{border-top:1px solid var(--line);padding-top:24px;margin-bottom:28px;display:flex;justify-content:space-between;align-items:center}.group-title h3{font-size:25px;margin:0;letter-spacing:.12em}.group-title span{font-size:11px;letter-spacing:.09em}.photo-list{display:grid;gap:38px}.photo-list img{max-height:540px}footer{background:#14231e;color:#fff;padding:35px 24px 42px;display:flex;flex-direction:column;gap:24px}footer p{font-weight:700;margin:0;font-size:16px}footer a{font-size:14px}footer small{font-size:12px;line-height:1.9;color:#c9d3cb}dialog{padding:24px;border:0;background:#111b17;color:#fff;max-width:96vw;max-height:96svh;width:1000px}dialog::backdrop{background:#000d}dialog img{display:block;max-width:100%;height:calc(85svh - 90px);object-fit:contain;margin:20px auto}dialog p{text-align:center;font-size:14px}.close{display:block;margin-left:auto;background:transparent;color:white;border:1px solid #718074;padding:10px 16px;min-height:44px;cursor:pointer}:focus-visible{outline:3px solid #e0af45;outline-offset:5px}@media(min-width:760px){header{height:76px;padding:0 5vw;flex-direction:row}header>a:first-child{flex-direction:row;align-items:center;gap:20px}header>a:first-child span{font-size:11px}.hero{height:calc(100svh - 76px);min-height:660px;max-height:1000px}.mosaic-base,.mosaic-letters{background-image:url('assets/mosaic-desktop.webp')}.mosaic-letters{mask-image:url('letters-desktop.svg')}.hero-top{left:5vw;right:5vw;top:36px}.hero-top>span{font-size:28px}.hero-top p{font-size:16px}.hero-bottom{left:5vw;right:5vw;bottom:32px}.hero-bottom h1{font-size:18px}h1 strong{font-size:44px}.view-awards{position:absolute;right:0;bottom:0;width:250px}.intro{padding:90px 20px}.intro p{font-size:18px}.awards{padding:0 40px 100px}.section-title h2{font-size:42px}.grand{display:grid;grid-template-columns:1fr 1.4fr;padding:48px;gap:40px}.award-label{padding-top:10px}.award-number{top:10px}.grand img{height:660px}.excellent,.selected{grid-template-columns:1fr 1fr;gap:48px 40px}.photo-list .photo-open{height:440px;display:flex;align-items:center;background:#e9ece5}.photo-list img{max-height:440px;height:100%;width:100%;object-fit:contain}footer{padding:45px 5vw;display:grid;grid-template-columns:1fr auto}footer small{grid-column:1/-1}}@media(prefers-reduced-motion:reduce){:root{scroll-behavior:auto}}
.closing-message{padding:0 24px 72px}.closing-inner{max-width:720px;margin:auto;border-top:1px solid var(--line);padding-top:40px}.closing-message h2{font-size:23px;line-height:1.6;margin:0 0 28px;letter-spacing:.04em}.closing-message p{font-size:16px;line-height:2.1;margin:0 0 22px}.closing-message .closing-signature{text-align:right;font-size:15px;font-weight:600;margin:32px 0 0}@media(min-width:760px){.closing-message{padding:0 40px 100px}.closing-inner{padding-top:54px}.closing-message h2{font-size:28px}}
/* Award celebration and scroll entrance */
.grand{position:relative;isolation:isolate;overflow:hidden;color:#fff8df;background:radial-gradient(ellipse at 50% 0,#685322 0,transparent 48%),linear-gradient(150deg,#102b23,#091b16 65%,#344125);border:1px solid #bd9645;box-shadow:0 16px 46px #13251c24;padding:36px 22px 26px}
.grand:before{content:"";position:absolute;inset:7px;border:1px solid #d9b86580;pointer-events:none;z-index:2}
.grand:after{content:"";position:absolute;inset:-40%;z-index:0;pointer-events:none;background:linear-gradient(110deg,transparent 43%,#fff0be18 48%,#fff5c747 50%,#fff0be18 52%,transparent 57%);transform:translateX(-70%) rotate(-9deg);opacity:0}
.grand>*{position:relative;z-index:1}.grand .award-label{padding:0;margin:0 0 28px;text-align:center}.grand .award-number{position:static;display:block;font-size:14px;letter-spacing:.2em;color:#e6c877;margin-bottom:16px}.grand .award-number:before,.grand .award-number:after{content:"";display:inline-block;width:48px;height:1px;background:linear-gradient(90deg,transparent,#e6c877);vertical-align:middle;margin:0 14px}.grand .award-number:after{transform:rotate(180deg)}.grand .award-label h3{color:#f5d480;font-size:34px;letter-spacing:.18em;line-height:1.4;text-shadow:0 2px 18px #e8bc4b40}.grand .award-label p{color:#dfc685;font-size:12px;letter-spacing:.24em;margin-top:10px}.grand figure{padding:10px 10px 14px;background:#0a1914;border:1px solid #947039;box-shadow:0 0 0 3px #d4b36b20,0 14px 35px #0006}.grand figcaption{color:#e9dfc7;text-align:center;padding-top:20px}.grand figcaption strong{color:#fff8e6}.grand .photo-open:focus-visible{outline-color:#f4cc66}
.reveal-pending{opacity:0;transform:translateY(30px);transition:opacity 1s ease,transform 1.15s cubic-bezier(.2,.65,.2,1);transition-delay:var(--entrance-delay,0ms)}.reveal-pending.is-visible{opacity:1;transform:translateY(0)}.grand.reveal-pending{transform:translateY(36px)}.grand.reveal-pending.is-visible{transform:translateY(0)}.grand.reveal-pending .award-label{opacity:0;transform:translateY(15px);transition:opacity .9s ease .25s,transform 1s ease .25s}.grand.reveal-pending figure{opacity:0;transform:translateY(24px);transition:opacity 1.1s ease .5s,transform 1.2s cubic-bezier(.2,.65,.2,1) .5s}.grand.is-visible .award-label,.grand.is-visible figure{opacity:1;transform:translateY(0)}.grand.is-visible:after{animation:award-light 2.4s ease .55s 1 both}@keyframes award-light{0%{opacity:0;transform:translateX(-70%) rotate(-9deg)}20%{opacity:1}80%{opacity:1}100%{opacity:0;transform:translateX(70%) rotate(-9deg)}}
@media(min-width:760px){.grand{padding:52px 44px;grid-template-columns:.85fr 1.4fr;align-items:center;gap:40px}.grand .award-label h3{font-size:clamp(34px,3.2vw,46px)}.grand .award-label{margin:0}.grand .award-number{margin-bottom:24px}.grand:before{inset:12px}.grand figure{padding:14px 14px 20px}}
@media(prefers-reduced-motion:reduce){.reveal-pending,.grand.reveal-pending,.grand.reveal-pending .award-label,.grand.reveal-pending figure{opacity:1!important;transform:none!important;transition:none!important}.grand.is-visible:after{animation:none!important;opacity:0}}

/* Show each photograph at a scale suited to its orientation. */
.photo-list{grid-template-columns:minmax(0,1fr);gap:48px}
.photo-list figure{min-width:0}
.photo-list .photo-open{height:auto;display:block;background:transparent}
.photo-list img{width:100%;height:auto;max-height:none;object-fit:contain}
.photo-list .portrait{width:min(300px,calc(100vw - 64px));justify-self:center}
.photo-list .landscape{width:calc(100% + 16px);margin-left:-8px}
.photo-list .landscape figcaption{padding-left:8px}
@media(min-width:760px){
 .photo-list{gap:64px}
 .photo-list .portrait{width:420px;max-width:100%}
 .photo-list .landscape{width:100%;margin-left:0}
 .photo-list .landscape figcaption{padding-left:0}
}
