/* Independent implementation of the 0917 artboards: PC 1920 / mobile 750. */
:root {
  --sky:#4aa9d0;
  --yellow:#f5ec46;
  --blue:#2f96cd;
  --navy:#2c5daa;
  --green:#3eb64f;
  --red:#f32329;
  --orange:#fa772b;
  --purple:#984ead;
  --s:min(.0520833333vw,1px);
  --cut:polygon(0 28px,7px 28px,7px 21px,14px 21px,14px 14px,21px 14px,21px 7px,28px 7px,28px 0,100% 0,100% calc(100% - 28px),calc(100% - 7px) calc(100% - 28px),calc(100% - 7px) calc(100% - 21px),calc(100% - 14px) calc(100% - 21px),calc(100% - 14px) calc(100% - 14px),calc(100% - 21px) calc(100% - 14px),calc(100% - 21px) calc(100% - 7px),calc(100% - 28px) calc(100% - 7px),calc(100% - 28px) 100%,0 100%)
}

* {
  box-sizing:border-box
}

html {
  scroll-behavior:smooth;
  scroll-padding-top:calc(125 * var(--s))
}

body {
  margin:0;
  background:var(--sky);
  color:#080808;
  font-family:'Noto Sans JP',sans-serif;
  font-size:calc(24 * var(--s));
  font-weight:700;
  line-height:1.85
}

a {
  color:inherit;
  text-decoration:none
}

button {
  font:inherit
}

img {
  display:block;
  max-width:100%;
  height:auto
}

picture {
  display:block
}

p,h1,h2,h3,h4,figure,ul {
  margin:0
}

ul {
  padding:0;
  list-style:none
}

a,button {
  -webkit-tap-highlight-color:transparent
}

a:focus-visible,button:focus-visible {
  outline:4px solid #ffdf00;
  outline-offset:5px
}

a:hover {
  filter:brightness(1.08)
}

.site-shell {
  max-width:1920px;
  margin:auto;
  overflow:clip
}

.content {
  width:66.666667%;
  margin-inline:auto
}

.visually-hidden,.skip-link: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-link:focus {
  position:fixed;
  top:10px;
  left:10px;
  z-index:1000;
  background:#fff;
  padding:12px;
  color:#000
}

.red {
  --tone:var(--red)
}

.orange {
  --tone:var(--orange)
}

.blue {
  --tone:var(--blue)
}

.green {
  --tone:var(--green)
}

.purple {
  --tone:var(--purple)
}

.red-text {
  color:var(--red)
}

.orange-text {
  color:var(--orange)
}

.center {
  text-align:center
}

.sp-break {
  display:none
}

.fine-print {
  font-size:calc(17 * var(--s));
  font-weight:500;
  line-height:1.7
}

.intro {
  color:#fff;
  text-align:center;
  font-size:calc(34 * var(--s));
  line-height:1.95;
  font-weight:400
}

.site-header {
  height:calc(104 * var(--s));
  background:#306caf
}

.navigation {
  position:fixed;
  top:0;
  left:50%;
  transform:translateX(-50%);
  width:100%;
  max-width:1920px;
  height:calc(104 * var(--s));
  z-index:50;
  background:rgba(45,98,165,.9);
  display:flex;
  justify-content:flex-end;
  align-items:center;
  padding-right:calc(315 * var(--s))
}

.nav-links {
  display:flex;
  align-items:center;
  gap:calc(46 * var(--s));
  color:#fff;
  font-size:calc(20 * var(--s));
  letter-spacing:.05em
}

.nav-links>a {
  padding:12px 0
}

.nav-links>a:hover {
  text-decoration:underline;
  text-underline-offset:5px
}

.social-links {
  display:flex;
  align-items:center;
  gap:calc(16 * var(--s));
  margin-left:calc(10 * var(--s))
}

.social-icon {
  width:calc(34 * var(--s));
  height:calc(34 * var(--s));
  display:flex;
  align-items:center;
  justify-content:center
}

.social-icon svg {
  width:100%;
  fill:none;
  stroke:currentColor;
  stroke-width:2
}

.facebook {
  font:900 calc(34 * var(--s))/1 Arial;
  background:#fff;
  border-radius:50%;
  color:#3168a9;
  padding-top:calc(8 * var(--s))
}

.menu-toggle {
  display:none
}

.hero {
  position:relative
}

.hero-art {
  width:100%
}

.hero-entry {
  position:absolute;
  left:79%;
  top:24%;
  width:12%;
  height:26%;
  border-radius:20%
}

.hero-entry:hover {
  background:#fff2
}

.floating-entry {
  position:fixed!important;
  z-index:45;
  right:max(calc((100vw - 1920px)/2 + 90px),calc(90 * var(--s)));
  top:calc(350 * var(--s));
  width:calc(220 * var(--s));
  min-height:calc(200 * var(--s));
  font-size:calc(30 * var(--s))!important;
  line-height:1.6!important;
  visibility:hidden;
  opacity:0;
  transform:translateY(12px);
  transition:opacity .2s,transform .2s
}

.floating-entry.is-visible {
  visibility:visible;
  opacity:1;
  transform:none
}

.concept {
  position:relative;
  background:url('../index2/sky-pattern.webp') repeat-x top/ calc(240 * var(--s)) calc(1200 * var(--s));
  padding:calc(75 * var(--s)) 0 calc(95 * var(--s))
}

.concept-content {
  position:relative
}

.concept h2 {
  font-size:calc(82 * var(--s));
  line-height:1.38;
  color:var(--yellow);
  text-align:center;
  letter-spacing:.02em;
  margin-bottom:calc(62 * var(--s));
  font-weight:900
}

.concept .intro {
  font-size:calc(33 * var(--s));
  line-height:1.9
}

.concept-badge {
  position:absolute;
  right:calc(-175 * var(--s));
  top:calc(27 * var(--s));
  width:calc(355 * var(--s))
}

.overview-steps {
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:calc(110 * var(--s));
  margin-top:calc(85 * var(--s));
  position:relative
}

.overview-step {
  position:relative;
  padding:calc(14 * var(--s));
  background:#000;
  --oct:polygon(0 10%,5% 10%,5% 5%,10% 5%,10% 0,90% 0,90% 5%,95% 5%,95% 10%,100% 10%,100% 90%,95% 90%,95% 95%,90% 95%,90% 100%,10% 100%,10% 95%,5% 95%,5% 90%,0 90%);
  clip-path:var(--oct)
}

.overview-inner {
  height:100%;
  min-height:calc(335 * var(--s));
  background:#fff;
  clip-path:var(--oct);
  padding:calc(18 * var(--s));
  text-align:center
}

.overview-step h3 {
  font:400 calc(43 * var(--s))/1.2 DotGothic16,sans-serif;
  color:var(--red);
  margin-bottom:calc(18 * var(--s))
}

.overview-step h3 b {
  font-size:1.4em;
  font-weight:400
}

.step-2 h3 {
  color:var(--blue)
}

.step-3 h3 {
  color:var(--green)
}

.overview-body p {
  font-size:calc(25 * var(--s));
  line-height:1.7
}

.overview-icons {
  display:flex;
  align-items:end;
  justify-content:center;
  gap:calc(16 * var(--s));
  height:calc(115 * var(--s));
  margin-top:calc(8 * var(--s))
}

.overview-icons img {
  height:100%;
  width:auto;
  image-rendering:pixelated
}

.overview-icons img:first-child:not(:last-child) {
  height:75%
}

.step-2 .overview-body {
  position:relative;
  text-align:left
}

.step-2 .overview-icons {
  position:absolute;
  right:0;
  bottom:0;
  height:calc(95 * var(--s))
}

.step-note {
  font-size:calc(17 * var(--s));
  color:var(--orange);
  line-height:1.6;
  margin-top:calc(16 * var(--s))
}

.overview-steps:before,.overview-steps:after {
  content:'';
  position:absolute;
  width:calc(35 * var(--s));
  height:calc(56 * var(--s));
  background:#000;
  top:45%;
  clip-path:polygon(0 0,40% 0,40% 20%,70% 20%,70% 35%,100% 35%,100% 65%,70% 65%,70% 80%,40% 80%,40% 100%,0 100%)
}

.overview-steps:before {
  left:31%
}

.overview-steps:after {
  right:31%
}

.section-heading {
  width:100%;
  font-size:0;
  line-height:0
}

.section-heading img {
  width:100%
}

.section {
  padding-bottom:calc(80 * var(--s))
}

.section>.content>.intro {
  margin:calc(12 * var(--s)) calc(-40 * var(--s)) calc(70 * var(--s))
}

.stage-dates {
  margin:calc(20 * var(--s)) 0 calc(84 * var(--s));
  display:grid;
  gap:calc(40 * var(--s))
}

.stage-date {
  display:flex;
  align-items:center;
  gap:calc(28 * var(--s));
  font-family:DotGothic16,sans-serif;
  white-space:nowrap;
  line-height:1.2
}

.date-label {
  color:#fff;
  background:var(--tone);
  font-family:'Noto Sans JP',sans-serif;
  font-size:calc(25 * var(--s));
  padding:calc(5 * var(--s)) calc(18 * var(--s));
  box-shadow:calc(5 * var(--s)) 0 #000,calc(-5 * var(--s)) 0 #000,0 calc(5 * var(--s)) #000,0 calc(-5 * var(--s)) #000;
  flex-shrink:0
}

.date {
  display:flex;
  align-items:center;
  font-size:calc(38 * var(--s));
  font-weight:400;
  letter-spacing:-.03em
}

.date b {
  font-size:calc(64 * var(--s));
  font-weight:400
}

.date small {
  font-size:.85em
}

.date i {
  display:block;
  width:calc(18 * var(--s));
  height:calc(30 * var(--s));
  margin:0 calc(18 * var(--s));
  background:#000;
  clip-path:polygon(0 0,40% 0,40% 20%,70% 20%,70% 35%,100% 35%,100% 65%,70% 65%,70% 80%,40% 80%,40% 100%,0 100%)
}

.pixel-panel {
  padding:calc(14 * var(--s));
  background:#000;
  clip-path:var(--cut)
}

.panel-inner {
  background:#fff;
  clip-path:var(--cut);
  padding:calc(38 * var(--s)) calc(50 * var(--s)) calc(40 * var(--s))
}

.panel-wrap {
  position:relative;
  margin-top:calc(88 * var(--s))
}

.panel-tag {
  position:absolute;
  z-index:2;
  right:calc(44 * var(--s));
  top:calc(-58 * var(--s));
  font:400 calc(34 * var(--s))/1.2 DotGothic16,sans-serif;
  background:var(--tone);
  color:#fff;
  padding:calc(12 * var(--s)) calc(32 * var(--s));
  box-shadow:calc(6 * var(--s)) 0 #000,calc(-6 * var(--s)) 0 #000,0 calc(6 * var(--s)) #000,0 calc(-6 * var(--s)) #000
}

.panel-tag:after {
  content:'';
  position:absolute;
  bottom:calc(-20 * var(--s));
  left:25%;
  border-top:calc(20 * var(--s)) solid var(--tone);
  border-left:calc(20 * var(--s)) solid transparent;
  filter:drop-shadow(0 3px #000)
}

.ribbon {
  --tone:var(--blue);
  font-size:calc(36 * var(--s));
  line-height:1.45;
  text-align:center;
  color:#fff;
  background:var(--tone);
  padding:calc(8 * var(--s)) calc(22 * var(--s));
  clip-path:polygon(0 12%,1.5% 12%,1.5% 0,98.5% 0,98.5% 12%,100% 12%,100% 88%,98.5% 88%,98.5% 100%,1.5% 100%,1.5% 88%,0 88%);
  margin-bottom:calc(38 * var(--s));
  font-weight:900
}

.ribbon.orange {
  --tone:var(--orange)
}

.ribbon.red {
  --tone:var(--red)
}

.ribbon.green {
  --tone:var(--green)
}

.group-description {
  font-size:calc(24 * var(--s));
  line-height:1.9
}

.group-description .orange-text {
  font-size:1.2em
}

.rank-chart {
  width:100%;
  margin-top:calc(36 * var(--s))
}

.personal-description {
  line-height:1.8
}

.personal-panel .ribbon:not(:first-child) {
  margin-top:calc(55 * var(--s))
}

.points-row {
  display:flex;
  align-items:center;
  gap:calc(55 * var(--s));
  margin-top:calc(50 * var(--s))
}

.points-art {
  width:42%
}

.points-table {
  flex:1;
  min-width:0
}

.points-table>p:first-child {
  font-size:calc(25 * var(--s));
  margin-bottom:calc(10 * var(--s))
}

.points-table li {
  font-size:calc(36 * var(--s));
  line-height:1.7;
  white-space:nowrap;
  margin-bottom:calc(15 * var(--s));
  background:linear-gradient(transparent 76%,#f0dd36 76%,#f0dd36 92%,transparent 92%);
  letter-spacing:-.05em
}

.points-table b,.points-table strong {
  font-size:calc(64 * var(--s));
  line-height:1.2
}

.points-table strong {
  color:var(--red)
}

.points-table .fine-print {
  font-size:calc(15 * var(--s));
  text-align:right;
  white-space:nowrap;
  margin-top:calc(16 * var(--s))
}

.activity {
  display:flex;
  align-items:center;
  gap:calc(40 * var(--s));
  padding:0 calc(40 * var(--s));
  line-height:1.8
}

.activity p {
  flex:1
}

.virtual-walk p,.survey p {
  order:2
}

.virtual-art {
  display:flex;
  align-items:center;
  gap:calc(30 * var(--s));
  width:62%
}

.walk-map {
  width:26%
}

.coins {
  display:flex;
  gap:calc(50 * var(--s));
  align-items:center
}

.coin {
  flex-shrink:0;
  width:calc(180 * var(--s));
  height:calc(180 * var(--s));
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  line-height:1.2;
  color:var(--tone);
  background:color-mix(in srgb,var(--tone) 18%,white);
  border:calc(10 * var(--s)) solid var(--tone);
  clip-path:polygon(0 22%,8% 22%,8% 14%,14% 14%,14% 8%,22% 8%,22% 0,78% 0,78% 8%,86% 8%,86% 14%,92% 14%,92% 22%,100% 22%,100% 78%,92% 78%,92% 86%,86% 86%,86% 92%,78% 92%,78% 100%,22% 100%,22% 92%,14% 92%,14% 86%,8% 86%,8% 78%,0 78%)
}

.coin span {
  font-size:calc(23 * var(--s))
}

.coin strong {
  font:400 calc(58 * var(--s))/1.25 DotGothic16,sans-serif
}

.coin small {
  font:400 .45em 'Noto Sans JP',sans-serif
}

.survey-art {
  width:42%
}

.stamp-rally .coins {
  gap:calc(45 * var(--s))
}

.prizes .intro {
  margin-bottom:calc(72 * var(--s))!important
}

.prize-panel .panel-inner {
  padding-bottom:calc(60 * var(--s))
}

.prize-row {
  display:grid;
  grid-template-columns:calc(230 * var(--s)) repeat(3,1fr);
  gap:calc(70 * var(--s));
  margin-top:calc(55 * var(--s));
  align-items:start
}

.prize-rank {
  text-align:center;
  align-self:center
}

.medal {
  width:calc(145 * var(--s));
  height:calc(180 * var(--s));
  object-fit:contain;
  margin:auto;
  image-rendering:pixelated
}

.rank-label {
  font:400 calc(50 * var(--s))/1.5 DotGothic16,sans-serif;
  white-space:nowrap;
  margin-top:calc(12 * var(--s))
}

.rank-label small {
  font:700 .5em 'Noto Sans JP',sans-serif
}

.prize-image {
  aspect-ratio:1.07;
  background:#b5c6ce;
  display:flex;
  align-items:center;
  justify-content:center;
  position:relative;
  color:white
}

.prize-image>span {
  font-size:calc(13 * var(--s));
  font-weight:400
}

.prize-image>b {
  position:absolute;
  bottom:0;
  font:900 calc(30 * var(--s))/1.5 Arial,sans-serif;
  color:#d0dbe0;
  white-space:nowrap
}

.prize figcaption {
  text-align:center;
  font-size:calc(17 * var(--s));
  line-height:1.8;
  margin-top:calc(20 * var(--s))
}

.prize figcaption span {
  font-size:calc(17 * var(--s));
  font-weight:400
}

.prize-row:last-child>.prize:not(.wide) {
  display:none
}

.prize.wide {
  grid-column:2/-1
}

.prize.wide .prize-image {
  aspect-ratio:4.05
}

.prize-rank .coin {
  width:calc(200 * var(--s));
  height:calc(200 * var(--s));
  margin:auto
}

.more {
  text-align:center;
  margin:calc(65 * var(--s)) 0;
  color:white;
  font-weight:400
}

.more h3 {
  font:400 calc(76 * var(--s))/1.5 DotGothic16,sans-serif;
  color:var(--yellow);
  margin-bottom:calc(10 * var(--s))
}

.more h3 span {
  margin:0 calc(35 * var(--s))
}

.more p {
  font-size:calc(34 * var(--s))
}

.prize-panel.individual .prize-row {
  margin-top:calc(70 * var(--s))
}

.entry-date {
  display:flex;
  align-items:stretch;
  background:#fff;
  border:calc(6 * var(--s)) solid #000;
  margin-bottom:calc(66 * var(--s));
  line-height:1.4
}

.entry-date>span {
  background:var(--navy);
  color:white;
  display:flex;
  align-items:center;
  justify-content:center;
  width:22%;
  font-size:calc(38 * var(--s))
}

.entry-date>strong {
  font:400 calc(47 * var(--s))/1.4 DotGothic16,sans-serif;
  flex:1;
  text-align:center;
  padding:calc(10 * var(--s)) 0
}

.entry-date b {
  font-size:1.45em;
  font-weight:400
}

.entry-date small {
  font-size:.8em
}

.entry .stage-dates {
  margin-bottom:calc(95 * var(--s))
}

.group-entry {
  display:flex;
  align-items:center;
  gap:calc(38 * var(--s))
}

.group-entry>div {
  width:49%
}

.group-entry p {
  line-height:1.8
}

.group-entry .fine-print {
  margin-top:calc(8 * var(--s))
}

.entry-man {
  width:14%;
  max-height:calc(230 * var(--s));
  object-fit:contain
}

.pixel-button {
  display:flex;
  align-items:center;
  justify-content:center;
  text-align:center;
  background:var(--tone);
  border:calc(7 * var(--s)) solid #000;
  color:#fff;
  line-height:1.5;
  padding:calc(18 * var(--s)) calc(25 * var(--s));
  font-size:calc(32 * var(--s));
  font-family:DotGothic16,sans-serif;
  position:relative;
  clip-path:polygon(0 15%,3% 15%,3% 7%,6% 7%,6% 0,94% 0,94% 7%,97% 7%,97% 15%,100% 15%,100% 85%,97% 85%,97% 93%,94% 93%,94% 100%,6% 100%,6% 93%,3% 93%,3% 85%,0 85%)
}

.entry-button {
  font-family:'Noto Sans JP',sans-serif;
  white-space:nowrap;
  flex-direction:column;
  font-size:calc(29 * var(--s));
  padding:calc(30 * var(--s)) calc(35 * var(--s));
  letter-spacing:.08em
}

.entry-button small {
  font-size:.75em;
  margin-top:.25em
}

.registration-panel {
  margin-top:calc(75 * var(--s))
}

.registration-panel .panel-inner {
  padding:calc(40 * var(--s)) calc(55 * var(--s)) calc(55 * var(--s))
}

.registration-title {
  display:flex;
  align-items:end;
  border-bottom:calc(4 * var(--s)) solid var(--navy);
  color:var(--navy);
  margin-bottom:calc(30 * var(--s));
  line-height:1.4;
  gap:calc(28 * var(--s))
}

.registration-title>span {
  font-size:calc(24 * var(--s));
  background:var(--navy);
  color:#fff;
  padding:0 calc(32 * var(--s)) calc(8 * var(--s));
  border-radius:100px 100px 0 0;
  white-space:nowrap
}

.registration-title b {
  font-size:calc(72 * var(--s));
  font-weight:700
}

.registration-title>strong {
  font-size:calc(45 * var(--s));
  font-weight:900;
  padding-bottom:calc(7 * var(--s));
  letter-spacing:-.05em
}

.registration-steps {
  display:grid;
  grid-template-columns:1fr 1fr 1.1fr;
  gap:calc(44 * var(--s))
}

.registration-copy {
  display:flex;
  align-items:start;
  gap:calc(16 * var(--s))
}

.registration-copy p {
  font-size:calc(23 * var(--s));
  line-height:1.8
}

.step-circle {
  font:400 calc(47 * var(--s))/.9 DotGothic16,sans-serif;
  color:var(--navy);
  border:calc(2 * var(--s)) solid currentColor;
  border-radius:50%;
  width:calc(80 * var(--s));
  height:calc(80 * var(--s));
  display:flex;
  align-items:center;
  justify-content:center;
  flex-direction:column;
  flex-shrink:0
}

.step-circle small {
  font:400 calc(23 * var(--s))/1.1 'Noto Sans JP',sans-serif
}

.download-row {
  display:flex;
  align-items:center;
  gap:calc(22 * var(--s));
  margin-top:calc(35 * var(--s))
}

.app-logo {
  width:calc(140 * var(--s))
}

.store-links {
  display:flex;
  gap:calc(16 * var(--s));
  align-items:center
}

.store-links a {
  display:block
}

.store-links img {
  width:calc(240 * var(--s));
  height:auto
}

.download-row .store-links {
  flex-direction:column;
  gap:calc(10 * var(--s))
}

.download-row .store-links img {
  width:calc(165 * var(--s))
}

.registration-art {
  width:100%;
  margin-top:calc(30 * var(--s))
}

.registration-step>.fine-print {
  margin-left:calc(96 * var(--s));
  margin-top:calc(20 * var(--s))
}

.guide {
  margin:calc(42 * var(--s)) calc(14 * var(--s)) calc(36 * var(--s));
  font-size:calc(38 * var(--s));
  line-height:1.2
}

.mobile-guide {
  display:none
}

.registration-complete {
  font-size:calc(44 * var(--s));
  font-weight:900;
  line-height:1.6;
  text-align:center;
  letter-spacing:-.04em;
  margin-bottom:calc(45 * var(--s))
}

.registration-complete span {
  background:linear-gradient(transparent 80%,var(--yellow) 80%,var(--yellow) 98%,transparent 98%)
}

.notice {
  display:flex;
  align-items:center;
  background:#fae0d4;
  padding:calc(12 * var(--s));
  gap:calc(28 * var(--s));
  font-size:calc(17 * var(--s));
  font-weight:500;
  line-height:1.6;
  margin-top:calc(30 * var(--s))
}

.notice>strong {
  display:flex;
  align-items:center;
  justify-content:center;
  background:var(--red);
  color:#fff;
  min-width:calc(180 * var(--s));
  align-self:stretch;
  white-space:nowrap;
  padding:calc(20 * var(--s)) calc(10 * var(--s));
  font-size:calc(20 * var(--s))
}

.stage-two {
  margin-top:calc(55 * var(--s))
}

.stage-two .registration-title {
  border-color:var(--green);
  color:var(--green)
}

.stage-two .registration-title>span {
  background:var(--green)
}

.stage-two .step-circle {
  color:var(--green)
}

.event-steps {
  display:grid;
  grid-template-columns:1fr 1fr 1.4fr;
  gap:calc(48 * var(--s));
  margin-top:calc(50 * var(--s))
}

.event-step {
  position:relative;
  padding-left:calc(82 * var(--s));
  display:flex;
  flex-direction:column;
  align-items:center
}

.event-step>.step-circle {
  position:absolute;
  left:0;
  top:0
}

.event-step>img {
  height:calc(310 * var(--s));
  width:100%;
  object-fit:contain;
  order:0
}

.event-step>p {
  order:1;
  text-align:center;
  line-height:1.7;
  font-size:calc(23 * var(--s));
  margin-top:calc(20 * var(--s))
}

.event-step:not(:last-child):after {
  content:'';
  position:absolute;
  right:calc(-35 * var(--s));
  top:calc(135 * var(--s));
  border-left:calc(26 * var(--s)) solid var(--green);
  border-top:calc(24 * var(--s)) solid transparent;
  border-bottom:calc(24 * var(--s)) solid transparent
}

.team-intro {
  display:flex;
  gap:calc(26 * var(--s));
  margin-top:calc(48 * var(--s));
  font-size:calc(22 * var(--s))
}

.team-row {
  display:flex;
  gap:calc(40 * var(--s));
  margin-top:calc(30 * var(--s));
  align-items:center
}

.regional-teams {
  width:52%;
  flex-shrink:0
}

.regional-teams h4 {
  color:var(--green);
  font-size:calc(25 * var(--s));
  display:flex;
  align-items:center;
  gap:calc(15 * var(--s));
  margin-bottom:calc(20 * var(--s))
}

.regional-teams h4:after {
  content:'';
  height:2px;
  flex:1;
  background:var(--green)
}

.regional-teams ul {
  display:grid;
  grid-template-columns:repeat(2,1fr);
  gap:calc(14 * var(--s))
}

.regional-teams li {
  color:#fff;
  background:var(--green);
  border-radius:40px;
  white-space:nowrap;
  text-align:center;
  font-size:calc(19 * var(--s));
  padding:calc(5 * var(--s)) calc(8 * var(--s))
}

.team-check {
  display:flex;
  align-items:center;
  gap:calc(15 * var(--s))
}

.team-check img {
  width:46%
}

.team-check p {
  background:var(--green);
  border-radius:calc(20 * var(--s));
  color:#fff;
  font-size:calc(20 * var(--s));
  padding:calc(18 * var(--s));
  line-height:1.6
}

.team-check strong {
  font-size:calc(25 * var(--s));
  white-space:nowrap
}

.faq .content {
  margin-top:calc(32 * var(--s))
}

.faq-panel .panel-inner {
  padding:calc(62 * var(--s)) calc(74 * var(--s)) calc(55 * var(--s))
}

.faq-item+.faq-item {
  margin-top:calc(55 * var(--s))
}

.faq-item .ribbon {
  display:flex;
  text-align:left;
  align-items:center;
  gap:calc(36 * var(--s));
  font-size:calc(28 * var(--s));
  font-weight:400;
  padding:calc(12 * var(--s)) calc(40 * var(--s));
  margin-bottom:calc(35 * var(--s))
}

.faq-item .ribbon>span {
  font:400 calc(62 * var(--s))/1 DotGothic16,sans-serif
}

.faq-item>p {
  font-size:calc(19 * var(--s));
  font-weight:500;
  line-height:1.85;
  margin-left:calc(116 * var(--s));
  margin-right:calc(25 * var(--s))
}

.faq {
  padding-bottom:calc(100 * var(--s))
}

.app-banner {
  background:var(--orange);
  padding:calc(45 * var(--s)) 0;
  color:#fff
}

.app-banner>div {
  display:flex;
  align-items:center;
  justify-content:center;
  gap:calc(55 * var(--s))
}

.app-banner .app-logo {
  width:calc(235 * var(--s))
}

.app-banner p {
  font-size:calc(25 * var(--s));
  line-height:1.6;
  font-weight:400;
  margin-bottom:calc(20 * var(--s))
}

.app-banner p strong {
  font-size:calc(34 * var(--s));
  font-weight:500
}

.organizers {
  background:#fff;
  padding:calc(70 * var(--s)) 0 calc(90 * var(--s));
  text-align:center
}

.organizers h2 {
  font:400 calc(26 * var(--s))/1.5 DotGothic16,sans-serif;
  margin-bottom:calc(20 * var(--s))
}

.organizers>div {
  display:flex;
  align-items:center;
  justify-content:center;
  gap:calc(10 * var(--s))
}

.organizers img {
  height:calc(85 * var(--s));
  width:auto
}

.site-footer {
  text-align:center;
  padding:calc(75 * var(--s)) 0 calc(100 * var(--s));
  background:url('../index2/sky-pattern.webp') repeat-x top/ calc(240 * var(--s)) calc(700 * var(--s))
}

.site-footer>p:first-child {
  color:#fff;
  font-size:calc(20 * var(--s));
  font-weight:500;
  line-height:1.7;
  margin-bottom:calc(45 * var(--s))
}

.contact-card {
  background:#fff;
  width:calc(700 * var(--s));
  margin:auto;
  padding:calc(32 * var(--s)) calc(25 * var(--s));
  clip-path:polygon(0 3%,2% 3%,2% 0,98% 0,98% 3%,100% 3%,100% 97%,98% 97%,98% 100%,2% 100%,2% 97%,0 97%);
  font-size:calc(23 * var(--s));
  font-weight:500;
  line-height:1.6
}

.contact-card h2 {
  font-size:calc(20 * var(--s));
  margin-bottom:calc(18 * var(--s))
}

.contact-card p+p {
  margin-top:calc(20 * var(--s))
}

.contact-card small {
  font-size:calc(18 * var(--s))
}

.contact-button {
  margin:calc(25 * var(--s)) auto 0;
  padding:calc(4 * var(--s)) calc(25 * var(--s));
  width:calc(280 * var(--s));
  font-size:calc(23 * var(--s));
  font-family:'Noto Sans JP',sans-serif
}

.copyright {
  font:400 calc(19 * var(--s))/1.5 DotGothic16,sans-serif;
  margin-top:calc(50 * var(--s))
}

@media(max-width:767px) {
  :root {
    --s:.1333333333vw
  }

  body {
    font-size:calc(28 * var(--s));
    line-height:1.85
  }

  html {
    scroll-padding-top:80px
  }

  .content {
    width:86.666667%
  }

  .sp-break {
    display:block
  }

  .pc-only {
    display:none
  }

  .fine-print {
    font-size:calc(22 * var(--s))
  }

  .intro {
    font-size:calc(28 * var(--s));
    line-height:1.95
  }

  .site-header {
    height:0;
    background:none
  }

  .navigation {
    height:0;
    padding:0;
    background:none;
    display:block
  }

  .menu-toggle {
    position:absolute;
    display:flex;
    flex-direction:column;
    align-items:center;
    justify-content:center;
    gap:calc(9 * var(--s));
    top:calc(35 * var(--s));
    right:calc(30 * var(--s));
    width:calc(80 * var(--s));
    height:calc(80 * var(--s));
    background:#ffffff80;
    border:0;
    border-radius:calc(8 * var(--s));
    cursor:pointer;
    z-index:52
  }

  .menu-toggle span {
    display:block;
    width:calc(44 * var(--s));
    height:calc(5 * var(--s));
    background:#4c7485;
    transition:transform .2s,opacity .2s
  }

  .menu-toggle[aria-expanded=true] span:nth-child(1) {
    transform:translateY(calc(14 * var(--s))) rotate(45deg)
  }

  .menu-toggle[aria-expanded=true] span:nth-child(2) {
    opacity:0
  }

  .menu-toggle[aria-expanded=true] span:nth-child(3) {
    transform:translateY(calc(-14 * var(--s))) rotate(-45deg)
  }

  .nav-links {
    display:none;
    position:absolute;
    top:calc(130 * var(--s));
    right:calc(30 * var(--s));
    width:calc(570 * var(--s));
    padding:calc(40 * var(--s));
    background:#245c92;
    box-shadow:6px 6px #000;
    gap:0;
    font-size:calc(30 * var(--s))
  }

  .nav-links.is-open {
    display:flex;
    flex-direction:column;
    align-items:stretch
  }

  .nav-links>a {
    padding:calc(20 * var(--s));
    border-bottom:1px solid #ffffff40
  }

  .social-links {
    margin-top:calc(25 * var(--s));
    gap:calc(30 * var(--s));
    padding:calc(10 * var(--s)) calc(20 * var(--s))
  }

  .social-icon {
    width:calc(42 * var(--s));
    height:calc(42 * var(--s))
  }

  .facebook {
    font-size:calc(40 * var(--s))
  }

  .hero-entry {
    left:70%;
    top:74%;
    width:26%;
    height:15%
  }

  .floating-entry {
    right:calc(30 * var(--s));
    top:auto;
    bottom:calc(28 * var(--s));
    width:calc(165 * var(--s));
    min-height:calc(145 * var(--s));
    font-size:calc(25 * var(--s))!important;
    padding:calc(15 * var(--s))
  }

  .concept {
    padding:calc(80 * var(--s)) 0 calc(65 * var(--s));
    background-size:calc(170 * var(--s)) calc(850 * var(--s))
  }

  .concept h2 {
    font-size:calc(53 * var(--s));
    line-height:1.65;
    letter-spacing:-.02em;
    margin-bottom:calc(40 * var(--s));
    white-space:nowrap
  }

  .concept .intro {
    font-size:calc(28 * var(--s));
    line-height:1.95;
    letter-spacing:-.045em
  }

  .concept-badge {
    position:static;
    width:calc(355 * var(--s));
    margin:calc(48 * var(--s)) auto calc(50 * var(--s))
  }

  .overview-steps {
    grid-template-columns:1fr;
    gap:calc(108 * var(--s));
    margin-top:0
  }

  .overview-step {
    padding:calc(14 * var(--s))
  }

  .overview-inner {
    min-height:calc(285 * var(--s));
    padding:calc(22 * var(--s)) calc(40 * var(--s));
    text-align:left
  }

  .overview-step h3 {
    text-align:center;
    font-size:calc(42 * var(--s));
    margin-bottom:calc(13 * var(--s))
  }

  .overview-step h3 b {
    font-size:1.1em
  }

  .overview-body {
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:calc(25 * var(--s))
  }

  .overview-body p {
    font-size:calc(28 * var(--s));
    line-height:1.65
  }

  .overview-icons {
    height:calc(170 * var(--s));
    margin-top:0;
    gap:calc(10 * var(--s));
    flex-shrink:0
  }

  .step-2 .overview-icons {
    position:static;
    height:calc(150 * var(--s))
  }

  .step-note {
    font-size:calc(22 * var(--s));
    line-height:1.5;
    margin-top:calc(8 * var(--s));
    width:75%
  }

  .step-3 .overview-body p {
    letter-spacing:-.07em
  }

  .step-3 .overview-icons {
    height:calc(150 * var(--s));
    gap:calc(4 * var(--s))
  }

  .step-3 .overview-icons img:first-child {
    height:50%
  }

  .overview-steps:before,.overview-steps:after {
    left:calc(50% - 16 * var(--s));
    right:auto;
    transform:rotate(90deg);
    width:calc(32 * var(--s));
    height:calc(56 * var(--s))
  }

  .overview-steps:before {
    top:30.2%
  }

  .overview-steps:after {
    top:64.5%
  }

  .section {
    padding-bottom:calc(65 * var(--s))
  }

  .section>.content>.intro {
    margin:calc(20 * var(--s)) calc(-12 * var(--s)) calc(70 * var(--s))
  }

  .stage-dates {
    gap:calc(85 * var(--s));
    margin:calc(40 * var(--s)) 0 calc(100 * var(--s))
  }

  .stage-date {
    flex-direction:column;
    gap:calc(45 * var(--s))
  }

  .date-label {
    font-family:DotGothic16,sans-serif;
    font-size:calc(39 * var(--s));
    padding:calc(15 * var(--s)) calc(35 * var(--s));
    min-width:calc(450 * var(--s));
    text-align:center
  }

  .date {
    flex-direction:column;
    font-size:calc(43 * var(--s));
    line-height:1.35;
    gap:calc(28 * var(--s));
    letter-spacing:-.025em
  }

  .date b {
    font-size:calc(72 * var(--s))
  }

  .date i {
    transform:rotate(90deg);
    width:calc(27 * var(--s));
    height:calc(43 * var(--s));
    margin:calc(-5 * var(--s)) 0
  }

  .date small {
    font-size:.8em
  }

  .panel-inner {
    padding:calc(44 * var(--s)) calc(32 * var(--s)) calc(40 * var(--s))
  }

  .panel-wrap {
    margin-top:calc(95 * var(--s))
  }

  .panel-tag {
    right:calc(35 * var(--s));
    top:calc(-48 * var(--s));
    font-size:calc(31 * var(--s));
    padding:calc(10 * var(--s)) calc(25 * var(--s))
  }

  .ribbon {
    font-size:calc(35 * var(--s));
    line-height:1.5;
    margin-bottom:calc(34 * var(--s));
    padding:calc(8 * var(--s)) calc(14 * var(--s));
    letter-spacing:-.055em
  }

  .group-description {
    text-align:left;
    font-size:calc(27 * var(--s));
    line-height:1.8
  }

  .group-description br {
    display:none
  }

  .rank-chart {
    margin-top:calc(32 * var(--s))
  }

  .personal-description {
    text-align:left;
    font-size:calc(27 * var(--s));
    line-height:1.9
  }

  .points-row {
    flex-direction:column;
    gap:calc(30 * var(--s));
    margin-top:calc(40 * var(--s))
  }

  .points-art {
    width:100%
  }

  .points-table {
    width:100%
  }

  .points-table>p:first-child {
    font-size:calc(27 * var(--s));
    margin-bottom:calc(15 * var(--s))
  }

  .points-table li {
    font-size:calc(31 * var(--s));
    line-height:1.8;
    margin-bottom:calc(15 * var(--s));
    letter-spacing:-.06em
  }

  .points-table b,.points-table strong {
    font-size:calc(53 * var(--s))
  }

  .points-table .fine-print {
    font-size:calc(14 * var(--s));
    margin-top:calc(18 * var(--s));
    text-align:center
  }

  .personal-panel .ribbon:not(:first-child) {
    margin-top:calc(58 * var(--s))
  }

  .activity {
    flex-direction:column;
    gap:calc(30 * var(--s));
    padding:0;
    align-items:stretch
  }

  .activity p {
    font-size:calc(27 * var(--s));
    line-height:1.9
  }

  .virtual-walk p,.survey p {
    order:0
  }

  .virtual-art {
    width:100%;
    justify-content:center;
    gap:calc(50 * var(--s));
    order:1
  }

  .walk-map {
    width:45%
  }

  .virtual-art .coins {
    flex-direction:column;
    gap:calc(24 * var(--s))
  }

  .coin {
    width:calc(183 * var(--s));
    height:calc(183 * var(--s))
  }

  .coin span {
    font-size:calc(22 * var(--s))
  }

  .coin strong {
    font-size:calc(57 * var(--s))
  }

  .stamp-rally .coins {
    justify-content:center;
    gap:calc(45 * var(--s))
  }

  .survey-art {
    order:1;
    width:100%;
    margin:0 auto
  }

  .prizes .intro {
    margin-bottom:calc(70 * var(--s))!important
  }

  .prize-panel .panel-inner {
    padding:calc(38 * var(--s)) calc(36 * var(--s)) calc(55 * var(--s))
  }

  .prize-panel .ribbon {
    font-size:calc(33 * var(--s));
    white-space:nowrap;
    margin-inline:calc(-9 * var(--s));
    padding-inline:calc(12 * var(--s));
    letter-spacing:-.06em
  }

  .prize-row {
    grid-template-columns:1fr 1fr;
    gap:calc(35 * var(--s)) calc(60 * var(--s));
    margin-top:calc(40 * var(--s));
    position:relative
  }

  .prize-row+.prize-row {
    margin-top:calc(125 * var(--s))
  }

  .prize-row+.prize-row:before {
    content:'✦ ✧ ✦ ✧ ✦ ✧ ✦';
    color:var(--orange);
    font-size:calc(39 * var(--s));
    letter-spacing:.09em;
    position:absolute;
    left:0;
    right:0;
    text-align:center;
    top:calc(-92 * var(--s));
    white-space:nowrap
  }

  .individual .prize-row+.prize-row:before {
    color:var(--blue)
  }

  .medal {
    width:calc(153 * var(--s));
    height:calc(180 * var(--s))
  }

  .rank-label {
    font-size:calc(49 * var(--s));
    line-height:1.4;
    margin-top:calc(8 * var(--s))
  }

  .prize-image>span {
    font-size:calc(12 * var(--s))
  }

  .prize-image>b {
    font-size:calc(29 * var(--s))
  }

  .prize figcaption {
    font-size:calc(20 * var(--s));
    line-height:1.7;
    margin-top:calc(18 * var(--s));
    white-space:nowrap;
    letter-spacing:-.07em
  }

  .prize figcaption span {
    font-size:calc(20 * var(--s))
  }

  .prize-row:last-child>.prize:not(.wide) {
    display:block
  }

  .prize-row:last-child>.prize:not(.wide) figcaption {
    display:none
  }

  .prize.wide {
    grid-column:1/-1
  }

  .prize.wide .prize-image {
    aspect-ratio:2.5
  }

  .prize-rank .coin {
    width:calc(220 * var(--s));
    height:calc(220 * var(--s))
  }

  .prize-rank .coin strong {
    font-size:calc(65 * var(--s))
  }

  .prize-rank .coin span {
    font-size:calc(26 * var(--s))
  }

  .prize-panel.individual .prize-row {
    margin-top:calc(45 * var(--s))
  }

  .prize-panel.individual .prize-row+.prize-row {
    margin-top:calc(130 * var(--s))
  }

  .more {
    margin:calc(70 * var(--s)) 0
  }

  .more h3 {
    font-size:calc(64 * var(--s));
    margin-bottom:calc(28 * var(--s))
  }

  .more h3 span {
    margin:0 calc(20 * var(--s))
  }

  .more p {
    font-size:calc(28 * var(--s));
    line-height:1.9
  }

  .entry-date {
    flex-direction:column;
    margin-top:calc(50 * var(--s));
    margin-bottom:calc(80 * var(--s))
  }

  .entry-date>span {
    width:100%;
    font-size:calc(36 * var(--s));
    padding:calc(5 * var(--s))
  }

  .entry-date>strong {
    font-size:calc(43 * var(--s));
    line-height:1.5;
    padding:calc(12 * var(--s)) 0 calc(20 * var(--s));
    letter-spacing:-.05em
  }

  .entry-date>strong>span {
    display:block;
    font-family:'Noto Sans JP',sans-serif;
    font-size:calc(38 * var(--s));
    font-weight:500
  }

  .entry-date b {
    font-size:calc(72 * var(--s))
  }

  .group-entry {
    flex-wrap:wrap;
    gap:calc(30 * var(--s))
  }

  .group-entry>div {
    width:100%
  }

  .group-entry p {
    font-size:calc(27 * var(--s));
    line-height:1.9
  }

  .group-entry .fine-print {
    font-size:calc(22 * var(--s))
  }

  .entry-man {
    width:calc(130 * var(--s));
    height:calc(190 * var(--s));
    margin-left:auto;
    margin-right:calc(25 * var(--s));
    order:1
  }

  .entry-button {
    order:2;
    width:100%;
    font-size:calc(34 * var(--s));
    padding:calc(22 * var(--s));
    margin-top:calc(-30 * var(--s))
  }

  .entry-button small {
    font-size:calc(24 * var(--s))
  }

  .group-entry-panel .ribbon {
    font-size:calc(30 * var(--s));
    white-space:nowrap
  }

  .registration-panel {
    margin-top:calc(85 * var(--s))
  }

  .registration-panel .panel-inner {
    padding:calc(45 * var(--s)) calc(30 * var(--s)) calc(48 * var(--s))
  }

  .registration-title {
    display:block;
    border:0;
    margin-bottom:calc(36 * var(--s));
    text-align:center
  }

  .registration-title>span {
    display:block;
    border-radius:0;
    font-size:calc(38 * var(--s));
    padding:calc(5 * var(--s));
    line-height:1.2
  }

  .registration-title b {
    font-size:calc(65 * var(--s))
  }

  .registration-title>strong {
    display:block;
    font-size:calc(41 * var(--s));
    line-height:1.5;
    padding:calc(28 * var(--s)) calc(5 * var(--s)) 0;
    letter-spacing:-.035em
  }

  .registration-steps {
    display:block
  }

  .registration-copy {
    gap:calc(22 * var(--s))
  }

  .registration-copy p {
    font-size:calc(28 * var(--s));
    line-height:1.75;
    flex:1
  }

  .step-circle {
    width:calc(115 * var(--s));
    height:calc(115 * var(--s));
    font-size:calc(68 * var(--s));
    border-width:calc(3 * var(--s))
  }

  .step-circle small {
    font-size:calc(31 * var(--s))
  }

  .download-row {
    margin:calc(28 * var(--s)) calc(14 * var(--s));
    gap:calc(30 * var(--s));
    justify-content:center
  }

  .download-row .app-logo {
    width:calc(210 * var(--s))
  }

  .download-row .store-links {
    gap:calc(16 * var(--s))
  }

  .download-row .store-links img {
    width:calc(305 * var(--s))
  }

  .registration-step+.registration-step {
    border-top:calc(3 * var(--s)) dashed #888;
    margin-top:calc(50 * var(--s));
    padding-top:calc(40 * var(--s))
  }

  .registration-art {
    margin-top:calc(22 * var(--s))
  }

  .registration-step>.fine-print {
    margin-left:0;
    font-size:calc(22 * var(--s));
    margin-top:calc(28 * var(--s))
  }

  .desktop-guide {
    display:none
  }

  .mobile-guide {
    display:flex;
    font-size:calc(37 * var(--s));
    padding:calc(20 * var(--s));
    line-height:1.5;
    margin:calc(25 * var(--s)) calc(15 * var(--s)) 0
  }

  .registration-complete {
    font-size:calc(38 * var(--s));
    line-height:1.8;
    letter-spacing:-.055em;
    text-align:left;
    margin:calc(30 * var(--s)) 0 calc(40 * var(--s))
  }

  .notice {
    display:block;
    padding:calc(22 * var(--s));
    margin-top:calc(30 * var(--s));
    font-size:calc(22 * var(--s));
    line-height:1.7
  }

  .notice>strong {
    font-size:calc(27 * var(--s));
    padding:calc(6 * var(--s));
    margin-bottom:calc(16 * var(--s))
  }

  .stage-two {
    margin-top:calc(110 * var(--s));
    position:relative
  }

  .stage-two:before {
    content:'✦ ✧ ✦ ✧ ✦ ✧ ✦';
    position:absolute;
    top:calc(-95 * var(--s));
    width:100%;
    text-align:center;
    white-space:nowrap;
    letter-spacing:.1em;
    font-size:calc(40 * var(--s));
    color:#171717
  }

  .stage-two .registration-title>strong {
    font-size:calc(41 * var(--s));
    max-width:calc(490 * var(--s));
    margin:auto
  }

  .event-steps {
    display:block;
    margin-top:calc(35 * var(--s))
  }

  .event-step {
    display:grid;
    grid-template-columns:calc(115 * var(--s)) 1fr;
    padding-left:0;
    column-gap:calc(22 * var(--s));
    align-items:start
  }

  .event-step>.step-circle {
    position:static;
    grid-column:1;
    grid-row:1
  }

  .event-step>p {
    grid-column:2;
    grid-row:1;
    text-align:left;
    font-size:calc(28 * var(--s));
    margin:0;
    line-height:1.7
  }

  .event-step>p br {
    display:none
  }

  .event-step>img {
    grid-column:1/-1;
    grid-row:2;
    height:auto;
    width:calc(365 * var(--s));
    max-height:none;
    margin:calc(35 * var(--s)) auto 0
  }

  .event-step-3>img {
    width:100%
  }

  .event-step:not(:last-child):after {
    display:none
  }

  .event-step+.event-step {
    border-top:calc(3 * var(--s)) dashed #888;
    margin-top:calc(48 * var(--s));
    padding-top:calc(38 * var(--s))
  }

  .team-intro {
    border-top:calc(3 * var(--s)) dashed #888;
    padding-top:calc(40 * var(--s));
    margin-top:calc(48 * var(--s));
    gap:calc(22 * var(--s));
    font-size:calc(28 * var(--s));
    align-items:start;
    display:block
  }

  .team-intro>.step-circle {
    float:left;
    margin-right:calc(22 * var(--s));
    margin-bottom:calc(16 * var(--s))
  }

  .team-intro p+p {
    clear:both;
    margin-top:calc(20 * var(--s))
  }

  .team-row {
    display:block;
    margin-top:calc(30 * var(--s))
  }

  .regional-teams {
    width:100%
  }

  .regional-teams h4 {
    font-size:calc(24 * var(--s));
    margin-bottom:calc(15 * var(--s))
  }

  .regional-teams ul {
    gap:calc(12 * var(--s))
  }

  .regional-teams li {
    font-size:calc(19 * var(--s));
    padding:calc(5 * var(--s)) calc(7 * var(--s));
    letter-spacing:-.07em
  }

  .team-check {
    margin-top:calc(20 * var(--s));
    gap:calc(22 * var(--s))
  }

  .team-check img {
    width:45%
  }

  .team-check p {
    font-size:calc(23 * var(--s));
    padding:calc(17 * var(--s));
    flex:1;
    line-height:1.65
  }

  .team-check strong {
    font-size:calc(25 * var(--s));
    letter-spacing:-.03em
  }

  .faq .content {
    margin-top:0
  }

  .faq-panel .panel-inner {
    padding:calc(42 * var(--s)) calc(32 * var(--s)) calc(50 * var(--s))
  }

  .faq-item .ribbon {
    gap:calc(22 * var(--s));
    font-size:calc(28 * var(--s));
    line-height:1.9;
    padding:calc(13 * var(--s)) calc(26 * var(--s));
    margin-bottom:calc(30 * var(--s));
    letter-spacing:0;
    align-items:flex-start
  }

  .faq-item .ribbon>span {
    font-size:calc(47 * var(--s));
    padding-top:calc(9 * var(--s))
  }

  .faq-item>p {
    font-size:calc(23 * var(--s));
    line-height:1.9;
    margin:0 calc(10 * var(--s))
  }

  .faq-item+.faq-item {
    margin-top:calc(55 * var(--s))
  }

  .faq {
    padding-bottom:calc(75 * var(--s))
  }

  .app-banner {
    padding:calc(70 * var(--s)) calc(65 * var(--s))
  }

  .app-banner>div {
    gap:calc(40 * var(--s));
    justify-content:flex-start
  }

  .app-banner .app-logo {
    width:calc(250 * var(--s))
  }

  .app-banner p {
    font-size:calc(25 * var(--s));
    margin-bottom:calc(20 * var(--s));
    white-space:nowrap
  }

  .app-banner p strong {
    font-size:calc(30 * var(--s))
  }

  .app-banner .store-links {
    flex-direction:column;
    align-items:flex-start;
    gap:calc(20 * var(--s))
  }

  .app-banner .store-links img {
    width:calc(245 * var(--s))
  }

  .organizers {
    padding:calc(48 * var(--s)) 0 calc(52 * var(--s))
  }

  .organizers h2 {
    font-size:calc(27 * var(--s));
    margin-bottom:calc(20 * var(--s))
  }

  .organizers img {
    height:calc(84 * var(--s))
  }

  .organizers>div {
    gap:calc(8 * var(--s))
  }

  .site-footer {
    padding:calc(75 * var(--s)) 0 calc(80 * var(--s));
    background-size:calc(160 * var(--s)) calc(550 * var(--s))
  }

  .site-footer>p:first-child {
    font-size:calc(22 * var(--s));
    line-height:1.8;
    margin-bottom:calc(50 * var(--s))
  }

  .contact-card {
    width:82%;
    padding:calc(40 * var(--s)) calc(15 * var(--s));
    font-size:calc(25 * var(--s));
    line-height:1.7
  }

  .contact-card h2 {
    font-size:calc(22 * var(--s));
    margin-bottom:calc(20 * var(--s))
  }

  .contact-card small {
    font-size:calc(20 * var(--s));
    white-space:nowrap
  }

  .contact-card p+p {
    margin-top:calc(25 * var(--s))
  }

  .contact-button {
    font-size:calc(29 * var(--s));
    width:calc(370 * var(--s));
    padding:calc(9 * var(--s)) calc(20 * var(--s));
    margin-top:calc(30 * var(--s))
  }

  .copyright {
    font-size:calc(22 * var(--s));
    margin-top:calc(55 * var(--s))
  }

}

@media(prefers-reduced-motion:reduce) {
  html {
    scroll-behavior:auto
  }

  *,*:before,*:after {
    transition:none!important
  }

}

/* Final artwork details. */
.concept {
  background-size:calc(80 * var(--s)) calc(1200 * var(--s))
}

.site-footer {
  background-size:calc(80 * var(--s)) calc(700 * var(--s))
}

.coin {
  position:relative;
  border:0;
  background:var(--tone)
}

.coin:before {
  content:'';
  position:absolute;
  inset:calc(10 * var(--s));
  background:color-mix(in srgb,var(--tone) 18%,white);
  clip-path:inherit
}

.coin>* {
  position:relative
}

@media(max-width:767px) {
  .concept {
    background-size:calc(80 * var(--s)) calc(850 * var(--s))
  }

  .site-footer {
    background-size:calc(80 * var(--s)) calc(550 * var(--s))
  }

  .overview-icons {
    max-width:40%
  }

  .overview-icons img {
    flex-shrink:0;
    max-width:100%;
    object-fit:contain
  }

  .overview-body p {
    flex-shrink:0
  }

  .step-3 .overview-icons {
    max-width:39%
  }

  .step-3 .overview-icons img {
    max-width:70%
  }

  .step-3 .overview-icons img:first-child {
    max-width:30%
  }

}

:root {
  --sky:#4aabd7
}

.section {
  background-image:url('../index2/cloud.webp'),url('../index2/cloud.webp');
  background-position:3% 35%,96% 78%;
  background-repeat:no-repeat;
  background-size:calc(220 * var(--s)) auto,calc(185 * var(--s)) auto
}

.concept-content:before {
  content:'';
  position:absolute;
  left:calc(-120 * var(--s));
  top:calc(120 * var(--s));
  width:calc(230 * var(--s));
  height:calc(125 * var(--s));
  background:url('../index2/cloud.webp') center/contain no-repeat;
  pointer-events:none
}

.prize-panel {
  position:relative;
  overflow:visible
}

.prizes .content {
  position:relative
}

.prize-panel .ribbon:after {
  content:'';
  position:absolute;
  right:calc(24 * var(--s));
  top:calc(-45 * var(--s));
  width:calc(130 * var(--s));
  height:calc(175 * var(--s));
  background:url('../index2/prize-man.webp') center/contain no-repeat
}

.faq .content {
  position:relative
}

.faq .content:after {
  content:'';
  position:absolute;
  right:calc(65 * var(--s));
  top:calc(-35 * var(--s));
  width:calc(210 * var(--s));
  height:calc(230 * var(--s));
  background:url('../index2/faq-boy.webp') center/contain no-repeat;
  pointer-events:none
}

@media(max-width:767px) {
  .section {
    background-size:calc(150 * var(--s)) auto;
    background-position:0 25%,100% 78%
  }

  .concept-content:before {
    left:calc(-50 * var(--s));
    top:calc(80 * var(--s));
    width:calc(135 * var(--s));
    height:calc(80 * var(--s))
  }

  .faq .section-heading {
    padding-bottom:calc(90 * var(--s))
  }

  .faq .content:after {
    right:calc(5 * var(--s));
    top:calc(-90 * var(--s));
    width:calc(175 * var(--s));
    height:calc(195 * var(--s))
  }

  .faq-item:first-child .ribbon {
    padding-right:calc(110 * var(--s))
  }

  .faq-item:first-child .ribbon {
    font-size:calc(26 * var(--s))
  }

}

.prize-panel .ribbon:after {
  display:none
}

.prize-shell {
  position:relative
}

.prize-character {
  position:absolute;
  z-index:2;
  right:calc(40 * var(--s));
  top:calc(-48 * var(--s));
  width:calc(155 * var(--s));
  height:calc(175 * var(--s));
  object-fit:contain;
  object-position:top;
  pointer-events:none
}

@media(max-width:767px) {
  .prize-character {
    right:calc(35 * var(--s));
    top:calc(-85 * var(--s));
    width:calc(140 * var(--s));
    height:calc(155 * var(--s))
  }

  .prize-shell {
    margin-top:calc(100 * var(--s))
  }

  .prize-panel .ribbon {
    padding-top:calc(16 * var(--s))
  }

}

.stage-dates-art {
  margin:calc(20 * var(--s)) 0 calc(85 * var(--s))
}

.stage-dates-art img {
  width:100%
}

.stage-dates-art .stage-dates {
  margin:0
}

.entry .stage-dates-art {
  margin-bottom:calc(95 * var(--s))
}

@media(max-width:767px) {
  .stage-dates-art {
    margin:calc(20 * var(--s)) 0 calc(90 * var(--s))
  }

  .step-1 .overview-icons {
    height:calc(165 * var(--s));
    width:calc(180 * var(--s))
  }

}

