@import url('https://fonts.googleapis.com/css2?family=Noto+Sans+JP:wght@400;500;600;700;800&display=swap');
:root{color-scheme:light;--ink:#252733;--blue:#5065d7;--line:#e2e5ee;--muted:#646978;--soft:#f5f6fb}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:24px}
body{margin:0;background:#fff;color:var(--ink);font-family:'Noto Sans JP',sans-serif;font-size:17px;line-height:1.8;letter-spacing:0}
body{position:relative;isolation:isolate}body::before{content:'';position:absolute;z-index:-1;inset:0;background:url('page-grid.svg') center top/1200px 900px repeat-y;opacity:.22;pointer-events:none}
a{color:inherit;text-decoration:none}button,input,textarea{font:inherit}button,a,input,textarea,summary{-webkit-tap-highlight-color:transparent}button,a,summary{touch-action:manipulation}
a:focus-visible,button:focus-visible,summary:focus-visible{outline:3px solid var(--blue);outline-offset:4px}[hidden]{display:none!important}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
main{max-width:1160px;margin:auto;padding:0 40px}.intro{text-align:center;position:relative;isolation:isolate;overflow:hidden;margin:24px 0 36px;padding:48px 12px}
.title-grid{position:absolute;z-index:-1;inset:0;width:100%;height:100%;object-fit:cover;pointer-events:none}
h1{position:relative;font-size:46px;line-height:1.4;margin:0;font-weight:800;color:#30363c}h1>span{display:block;font-size:21px;font-weight:600;margin-top:12px;color:#555c63}
.representative-tabs{display:none}
.contest-deadline{margin:6px 0 0;font-size:16px;font-weight:500}
.entry-heading p{margin:4px 0 0;font-size:15px;font-weight:400;color:var(--muted)}
.representative-tabs button small{display:block;font-size:13px;font-weight:400;margin-top:4px}
.intro h1{display:inline-block;background:#fff;padding:4px 12px}
.vote-button{width:100%;font-family:inherit;cursor:pointer}.vote-button:disabled{background:#e6e8eb;color:#757b83;cursor:not-allowed;border:1px solid #d3d7db;box-shadow:none;font-size:16px;font-weight:600}.vote-button:disabled:hover{background:#e6e8eb}.share-area{margin:22px auto 36px;text-align:center}.share-area .share-event{margin:0 auto}.submissions{position:relative;background:transparent}.submissions::before{content:'';position:absolute;inset:0;z-index:-1;background:#f8f9fd99;pointer-events:none}
@media(max-width:760px){body::before{background-size:760px 720px;opacity:.17}.vote-button:disabled{font-size:16px;white-space:normal}.share-area{margin-top:20px;margin-bottom:36px}}
.about-link{color:var(--blue);text-decoration:underline;text-underline-offset:4px}
.arena{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:64px;position:relative}.entry{min-width:0}
.entry-heading{padding:0 0 16px;text-align:center}.entry h2{font-size:24px;margin:0;font-weight:700}
.artwork{aspect-ratio:4/5;background:var(--soft);position:relative;border-radius:6px}.photo-placeholder{height:100%;width:100%;flex:none;background:#f3f4f8}
.media-slides{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;overscroll-behavior-x:contain}.media-slides::-webkit-scrollbar{display:none}
.media-slide{width:100%;height:100%;flex:none;scroll-snap-align:start;scroll-snap-stop:always;min-width:0}.media-slide>video{width:100%;height:100%;object-fit:contain;display:block;background:#f3f4f8}
.media-open{border:0;background:none;padding:0;cursor:zoom-in;width:100%;height:100%;display:block;color:inherit}.media-open img{width:100%;height:100%;object-fit:contain;display:block}
.media-thumbnails{display:flex;overflow-x:auto;gap:10px;padding:12px 2px 4px;scrollbar-width:thin}.media-thumbnails>button,.empty-thumbnails>span{position:relative;width:68px;height:68px;flex:none;border:2px solid transparent;background:#f1f2f7;border-radius:4px;padding:0;cursor:pointer;overflow:hidden}.media-thumbnails>button[aria-pressed=true]{border-color:var(--blue)}.media-thumbnails img{width:100%;height:100%;object-fit:cover;display:block}.empty-thumbnails>span{cursor:default}.video-symbol{position:absolute;inset:0;display:grid;place-items:center;color:var(--blue);background:#ffffff88;font-size:22px}
.versus{position:absolute;z-index:1;left:50%;top:40%;transform:translate(-50%,-50%);color:#8b91a6;font-weight:600;font-size:20px}
.entry-info{padding-top:16px}.entry-info h3{font-size:19px;margin:0;font-weight:600}.entry-info p{margin:3px 0 0;color:var(--muted);font-size:16px}
.vote-button{display:flex;align-items:center;justify-content:center;min-height:58px;background:var(--blue);color:#fff;border-radius:5px;font-size:18px;font-weight:700;text-align:center;padding:12px 10px;margin-top:18px}.vote-button:hover,.primary:hover{background:#4256c4}
.support{min-height:48px;padding:8px 12px;display:flex;align-items:center;justify-content:center;gap:10px;font-size:17px;font-weight:500;margin-top:6px;color:var(--blue);background:#fff}.support:hover{text-decoration:underline}.support>span:last-child{font-size:20px}.x-icon{font-size:23px}.support-name{display:none}
.voting{max-width:600px;margin:28px auto 40px;text-align:center}.voting-panel{min-width:0}.voting-panel h3{font-size:24px;line-height:1.6;margin:12px 0}.voting-panel p{font-size:17px;color:var(--muted)}#event-status{font-size:18px;margin:0 0 16px}
.share-event{display:flex;justify-content:center;align-items:center;min-height:54px;color:var(--blue);padding:10px 18px;border:1px solid #cbd1ed;border-radius:5px;font-size:17px;font-weight:600;max-width:320px;margin:20px auto 0}.share-event:hover{background:#f3f5ff}.secondary-share{margin-top:12px}
.voting-panel form{text-align:left}label,legend{font-size:17px;font-weight:600}label small{font-size:15px;font-weight:400}input[type=email],textarea{display:block;width:100%;border:1px solid #a7aec5;border-radius:5px;background:#fff;color:var(--ink);padding:14px;margin-top:10px;font-size:17px}input:focus,textarea:focus{outline:2px solid var(--blue);outline-offset:2px}
.primary{width:100%;border:0;background:var(--blue);color:#fff;border-radius:5px;min-height:58px;padding:14px 20px;font-size:18px;font-weight:700;margin-top:22px;cursor:pointer;display:flex;justify-content:space-between;align-items:center}.primary:disabled{opacity:.6;cursor:wait}.voting-panel .form-note{font-size:15px;line-height:1.8}.honeypot{position:absolute;left:-10000px}
.choices{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:14px 0 24px}.choices label{cursor:pointer}.choices label span{display:block;border:1px solid #b6bdd4;border-radius:5px;text-align:center;padding:15px 5px;font-size:17px}.choices input{position:absolute;opacity:0}.choices input:checked+span{border:2px solid var(--blue);background:#eef0ff;padding:14px 4px;color:var(--blue)}.choices input:focus-visible+span{outline:2px solid var(--blue);outline-offset:3px}fieldset{border:0;padding:0;margin:0;min-width:0}#message{margin-bottom:0;overflow-wrap:anywhere}#message:empty{display:none}
.about{max-width:760px;margin:0 auto 44px}.about h2,.submissions h2{font-size:26px;margin:0 0 20px;font-weight:700}.about p{font-size:17px;color:#525867;margin:0 0 14px}
.rules{padding:14px 0 0;color:var(--muted);font-size:16px}.rules summary{cursor:pointer;list-style:none;display:flex;justify-content:space-between;gap:20px}.rules summary::-webkit-details-marker{display:none}.rules>div{padding-top:14px}.rules>div p{font-size:16px}
.submissions{margin:0 calc(50% - 50vw);padding:36px max(40px,calc((100vw - 1080px)/2)) 44px;background:#f8f9fd}.submissions-heading{margin:0 0 24px}.submissions h2{margin:0}
.submission-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:30px 24px}.gallery-item{margin:0;min-width:0}.gallery-item .media-open,.gallery-placeholder{aspect-ratio:1/1;border-radius:5px;overflow:hidden;background:#eceef5}.gallery-item img{object-fit:contain}.gallery-item figcaption{font-size:17px;margin-top:10px}.gallery-item figcaption span{display:block;font-size:16px;color:var(--muted)}
footer{text-align:center;border-top:1px solid var(--line);padding:30px 20px}footer>a{font-weight:700;font-size:23px;color:var(--blue)}footer small{display:block;font-size:13px;color:var(--muted);margin-top:10px}
dialog{background:#fff;border:0;border-radius:6px;padding:50px 52px 18px;max-width:96vw;max-height:95dvh}dialog::backdrop{background:#20233299}.dialog-content{display:flex;align-items:center;justify-content:center;min-width:120px;min-height:120px}.dialog-content img,.dialog-content video{max-width:calc(96vw - 104px);max-height:80dvh;object-fit:contain;display:block}dialog button{position:absolute;border:0;background:#fff;color:var(--ink);cursor:pointer;width:44px;height:44px;border-radius:4px}.dialog-close{right:6px;top:3px;font-size:30px}.dialog-prev,.dialog-next{top:50%;transform:translateY(-50%);font-size:36px}.dialog-prev{left:3px}.dialog-next{right:3px}
@media(min-width:1400px){.artwork{max-height:580px;aspect-ratio:auto;height:580px}}
@media(max-width:1000px) and (min-width:761px){.submission-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:760px){main{padding:0 20px}.intro{padding:30px 0 28px}h1{font-size:34px}h1>span{font-size:18px;margin-top:10px}.arena{gap:22px}.entry-heading{padding-bottom:12px}.entry h2{font-size:20px}.versus{font-size:14px;top:35%;background:#fff;padding:4px 0}.artwork{aspect-ratio:3/4;border-radius:4px}.entry-info h3{font-size:17px}.entry-info p{font-size:16px}.media-thumbnails{gap:7px;padding-top:9px}.media-thumbnails>button,.empty-thumbnails>span{width:46px;height:46px}.vote-button{min-height:54px;font-size:16px;padding:11px 6px;margin-top:12px}.support{min-height:46px;padding:8px 5px;gap:7px;font-size:16px}.support>span:last-child{display:none}.x-icon{font-size:21px}.voting{margin:24px auto 32px}.voting-panel h3{font-size:22px}.share-event{font-size:17px;min-height:52px;margin-top:14px;max-width:100%}#event-status{font-size:17px;margin-bottom:12px}.choices{gap:8px}.choices label span{font-size:16px}.about{margin-bottom:32px}.about h2,.submissions h2{font-size:23px}.about p{font-size:16px}.submissions{padding:28px 20px 32px}.submissions-heading{margin-bottom:20px}.submission-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:22px 16px}.gallery-item figcaption,.gallery-item figcaption span{font-size:16px}.rules{font-size:16px}.dialog-content img,.dialog-content video{max-width:calc(96vw - 80px)}dialog{padding-left:40px;padding-right:40px}.dialog-prev,.dialog-next{width:36px}}
@media(max-width:360px){.entry h2{font-size:18px}.vote-button{font-size:15px}.support{font-size:16px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
.intro{padding-top:64px;padding-bottom:64px}
.intro::before{content:'';position:absolute;z-index:-1;width:240px;height:240px;left:50%;top:50%;border:1px solid #c8cdd1;border-radius:50%;transform:translate(-50%,-50%);box-shadow:0 0 0 12px #fff,0 0 0 13px #e1e4e7;pointer-events:none;animation:console-ring 1.3s ease-out both}
.intro h1{animation:final-title 1.2s ease-out both;background:#fffffff0;font-size:40px}
.title-grid{animation:console-lines 1.4s ease-out both}
.arena,.representative-tabs{animation:final-artworks .9s ease-out 1.25s both}
.entry{position:relative;padding:16px 0 0;border-top:1px solid #bec5ca}
.entry::before,.entry::after{content:'';position:absolute;top:-3px;width:28px;height:5px;background:#9ba5ad;pointer-events:none}.entry::before{left:0}.entry::after{right:0}
.about,.submissions{position:relative;border-top:1px solid #d5dade}
.about::before,.submissions::after{content:'';position:absolute;top:-1px;left:0;width:64px;height:3px;background:#aab4bc;pointer-events:none}
@keyframes final-title{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}
@keyframes final-artworks{from{opacity:0;transform:translateY(18px)}to{opacity:1;transform:translateY(0)}}
@keyframes console-lines{from{opacity:0;clip-path:inset(0 50%)}to{opacity:1;clip-path:inset(0)}}
@keyframes console-ring{from{opacity:0;transform:translate(-50%,-50%) scale(.85) rotate(-25deg)}to{opacity:1;transform:translate(-50%,-50%) scale(1) rotate(0)}}
@media(max-width:760px){.intro h1{font-size:27px}.intro::before{width:190px;height:190px}.entry{padding-top:12px}}
@media(prefers-reduced-motion:reduce){.intro h1,.intro::before,.title-grid,.arena,.representative-tabs{animation:none}}
.opening-screen{position:fixed;inset:0;z-index:1000;background:#fff;display:grid;place-items:center;pointer-events:none;animation:opening-dismiss .85s cubic-bezier(.7,0,.25,1) 1.6s both}
.opening-screen>img{position:absolute;width:100%;height:100%;object-fit:cover;opacity:.65;animation:console-lines 1.1s ease-out both}
.opening-screen>div{position:relative;text-align:center;font-size:48px;font-weight:700;line-height:1.6;background:#fffffff0;padding:12px 24px;animation:final-title 1s ease-out both}
.opening-screen span{display:block;font-size:72px;font-weight:600}
.intro{padding:8px 12px;margin:4px 0 12px;overflow:visible}
.intro::before,.intro .title-grid,.intro h1>span{display:none}
.intro h1{font-size:24px;padding:0;animation:final-title .6s ease-out 2s both}
.arena,.representative-tabs{animation-delay:2.1s}
@keyframes opening-dismiss{from{clip-path:inset(0);visibility:visible}to{clip-path:inset(0 0 100%);visibility:hidden}}
@media(max-width:760px){.opening-screen>div{font-size:28px;padding:12px}.opening-screen span{font-size:56px}.intro{margin:4px 0 6px;padding:6px 0}.intro h1{font-size:21px}.representative-tabs:not([hidden]){margin-bottom:12px}.representative-tabs button{padding-top:8px;padding-bottom:10px}}
@media(prefers-reduced-motion:reduce){.opening-screen{display:none}.intro h1,.arena,.representative-tabs{animation:none}}
@media(max-width:760px){
main{padding:0 16px}.intro{margin:0 0 4px;padding:6px 0}.title-grid{width:760px;max-width:none;left:50%;transform:translateX(-50%);object-fit:fill}h1{font-size:34px}h1>span{font-size:18px}
.representative-tabs:not([hidden]){display:grid;grid-template-columns:1fr 1fr;margin:0 0 18px;border-bottom:1px solid #d2d5da;gap:16px}.representative-tabs button{position:relative;border:0;background:#fff;color:#777e85;padding:12px 4px 16px;font-size:20px;font-weight:700;cursor:pointer}.representative-tabs button[aria-selected=true]{color:#252b32}.representative-tabs button[aria-selected=true]::after{content:'';position:absolute;bottom:-1px;left:0;right:0;height:3px;background:#555e67}
.arena{display:block}.arena[data-switch-ready] .entry:not(.is-active){display:none}.entry-heading{display:none}.versus{display:none}.arena:not([data-switch-ready]) .entry{margin-bottom:40px}.arena:not([data-switch-ready]) .entry-heading{display:block}
.artwork{aspect-ratio:auto;height:auto;min-height:0;border-radius:0;background:#f6f6f6}.media-slide{height:auto;align-self:center}.media-slides{align-items:center}.media-open img{height:auto;width:100%;max-height:none;object-fit:contain}.media-slide>video{height:auto;aspect-ratio:3/4}.media-thumbnails{gap:10px;padding-top:13px}.media-thumbnails>button,.empty-thumbnails>span{width:64px;height:64px}.media-thumbnails img{object-fit:contain}.vote-button{font-size:18px;min-height:58px}.support{font-size:17px;min-height:50px}
.gallery-item .media-open img{height:100%}
}
