:root{--blue:#2979ff;--blue-dark:#1b51aa;--ink:#2f2e2e;--muted:#605e5e;--pale:#f3f7ff;--line:#dbe5f7;--white:#fff}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;color:var(--ink);font-family:"Yu Gothic","Hiragino Kaku Gothic ProN",Meiryo,sans-serif;font-size:16px;line-height:1.8;background:#fff}a{color:inherit;text-decoration:none}h1,h2,h3,p{margin-top:0}h2{font-size:clamp(30px,4.1vw,40px);line-height:1.35;margin-bottom:28px;letter-spacing:.04em}h2 span{font-size:.72em;font-weight:400}p{color:var(--muted)}
.site-header{height:83px;background:#fff;position:sticky;top:0;z-index:10;border-bottom:1px solid #eee}.header-inner{max-width:1180px;height:100%;padding:0 28px;margin:auto;display:flex;align-items:center;justify-content:space-between;gap:28px}.mini-logo{width:68px;height:68px;display:flex;align-items:center;justify-content:center;flex:0 0 auto}.mini-logo img{display:block;width:100%;height:100%;object-fit:contain}.header-inner nav{display:flex;align-items:center;gap:clamp(13px,2vw,28px);font-size:13px}.header-inner nav a{padding:28px 0;position:relative}.header-inner nav a:after{content:"";position:absolute;left:0;right:100%;bottom:19px;height:2px;background:var(--blue);transition:.25s}.header-inner nav a:hover:after{right:0}
.hero{max-width:1180px;margin:auto;padding:32px 28px 58px}.hero-art{height:535px;position:relative;overflow:hidden;border-radius:2px;background:radial-gradient(circle at 72% 34%,#87b6ff 0 8%,transparent 8.4%),linear-gradient(130deg,#101b3a 0%,#163e86 47%,#70a9ff 100%)}.hero-art:before,.hero-art:after{content:"";position:absolute;width:460px;height:460px;border:1px solid #ffffff3b;border-radius:50%;right:-80px;bottom:-200px}.hero-art:after{width:300px;height:300px;right:85px;bottom:-210px}.moon{position:absolute;right:16%;top:17%;width:130px;height:130px;border-radius:50%;background:#e8f3ff;box-shadow:0 0 60px #bfd9ff}.hero-copy{position:absolute;left:8%;top:50%;transform:translateY(-50%);color:#fff;text-shadow:0 2px 16px #07132d}.hero-kicker{color:#fff;font-size:12px;letter-spacing:.42em}.hero-copy h1{font-size:clamp(47px,7vw,82px);line-height:1.06;margin:12px 0;font-weight:800;letter-spacing:-.07em}.hero-copy h1 span{display:block;font-size:.45em;letter-spacing:.2em}.hero-copy h1 b{color:#91bcff;font-size:.75em}.hero-en{color:#fff;letter-spacing:.28em;font-size:13px}.hero-info{display:flex;justify-content:center;align-items:center;gap:48px;margin-top:30px}.date{margin:0;font-size:28px;letter-spacing:.1em;color:var(--ink);font-weight:600}.date small{font-weight:400;color:#888}
.hero-logo{background:var(--pale);display:flex;align-items:center;justify-content:center}.hero-logo:before,.hero-logo:after{display:none}.hero-logo img{display:block;width:100%;height:100%;object-fit:contain}
.button{display:inline-flex;justify-content:center;align-items:center;min-width:175px;padding:12px 26px;background:var(--blue);border:2px solid var(--blue);color:#fff;font-weight:700;letter-spacing:.08em;line-height:1.2;transition:.22s}.button:hover{background:var(--blue-dark);border-color:var(--blue-dark);transform:translateY(-2px)}.button.outline{background:transparent;color:var(--blue)}.button.outline:hover{background:var(--blue);color:#fff}.button.white{background:#fff;border-color:#fff;color:var(--blue)}.button.white:hover{background:transparent;color:#fff}
.section{max-width:980px;margin:auto;padding:95px 28px}.split{display:grid;grid-template-columns:1.05fr .95fr;gap:75px;align-items:center}.eyebrow{margin-bottom:9px;color:var(--blue);font-size:11px;font-weight:800;letter-spacing:.34em}.eyebrow.light{color:#d7e7ff}.lead{font-size:19px;line-height:2}.section-copy .button{margin-top:15px}.photo-placeholder{height:390px;background:linear-gradient(145deg,#d9e8ff,#7aaeff);position:relative;box-shadow:24px 24px 0 var(--pale)}.dummy-image span{letter-spacing:.2em;font-size:11px;color:#fff}.photo-placeholder span{position:absolute;inset:auto 20px 18px auto}.center-heading{text-align:center;max-width:720px;margin:0 auto 45px}.wide-placeholder{height:300px;background:linear-gradient(120deg,#112b5c,#548fe9);display:grid;place-items:center;margin-bottom:50px}.booth-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--line)}.booth-grid article{background:#fff;padding:34px 30px}.booth-no{color:#a9c8fb;font-size:13px;font-weight:800}.booth-grid h3{font-size:22px;margin:8px 0 15px}.booth-grid p{font-size:14px;margin:0}.center{text-align:center;margin:45px 0 0}.tinted{max-width:none;background:var(--pale);padding-left:max(28px,calc((100% - 924px)/2));padding-right:max(28px,calc((100% - 924px)/2))}.staff-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:15px}.staff-grid div{background:#fff;text-align:center;padding:28px 12px;border-top:3px solid var(--blue)}.staff-grid span,.staff-grid strong{display:block}.staff-grid span{font-size:12px;color:#888;margin-bottom:8px}.archive-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:22px}.archive-card{height:300px;padding:10px;background:var(--pale);display:flex;align-items:center;justify-content:center;overflow:hidden}.archive-card img{display:block;width:100%;height:100%;object-fit:contain}.archive-card[href]{transition:transform .22s,box-shadow .22s}.archive-card[href]:hover{transform:translateY(-3px);box-shadow:0 10px 24px #173c7a24}
.photo-placeholder{overflow:hidden}.photo-placeholder img{display:block;width:100%;height:100%;object-fit:cover}
.lead a{color:var(--blue);text-decoration:underline;text-underline-offset:4px}
.feature{background:#1b51aa;color:#fff}.feature-inner{max-width:980px;margin:auto;padding:90px 28px;display:grid;grid-template-columns:1fr 1fr;gap:70px;align-items:center}.feature-visual{height:420px;background:linear-gradient(140deg,#8ebcff,#326bbb);display:grid;place-items:center;text-align:center}.feature-copy p{color:#e5efff}.feature-copy h2{font-size:38px}.sponsor-columns{display:grid;grid-template-columns:1fr 1fr;gap:80px}.sponsor-columns h3{font-size:23px;border-left:4px solid var(--blue);padding-left:15px}.media ul{list-style:none;padding:0;margin:0;max-width:780px;margin:auto}.media li{padding:22px 0;border-bottom:1px solid #ccd9ed;display:grid;grid-template-columns:210px 1fr;gap:24px}.media li span{font-size:13px;color:#777}.media li a{color:var(--blue);text-decoration:underline;text-underline-offset:4px}.contact{text-align:center;padding:100px 28px;background:#173c7a;color:#fff}.contact h2{font-size:40px}.contact p{color:#dce9ff}.contact-links{display:flex;justify-content:center;gap:16px;margin-top:34px}.contact-links a{border:1px solid #8eb5f0;padding:12px 22px;min-width:250px}.contact-links a:hover{background:#fff;color:#173c7a}footer{text-align:center;padding:30px;position:relative}footer p{margin:0;font-size:11px}.back-top{position:absolute;right:32px;top:22px;width:36px;height:36px;border:1px solid #bbb;display:grid;place-items:center}
.feature-visual{overflow:hidden}.feature-visual img{display:block;width:100%;height:100%;object-fit:cover}.feature-copy p a{color:#fff;text-decoration:underline;text-underline-offset:4px}
@media (max-width:800px){.site-header{height:auto;position:relative}.header-inner{padding:15px 20px;align-items:flex-start}.header-inner nav{justify-content:flex-end;flex-wrap:wrap;gap:4px 16px;line-height:1.2}.header-inner nav a{padding:4px 0}.header-inner nav a:after{bottom:0}.hero{padding:16px 16px 45px}.hero-art{height:65vw;min-height:360px}.hero-info{gap:18px;flex-wrap:wrap}.date{font-size:21px}.section,.feature-inner{padding:70px 22px}.split,.feature-inner{grid-template-columns:1fr;gap:40px}.split .photo-placeholder{grid-row:1}.photo-placeholder{height:300px}.booth-grid{grid-template-columns:1fr}.staff-grid{grid-template-columns:repeat(2,1fr)}.archive-grid{grid-template-columns:1fr}.archive-card{height:min(78vw,360px)}.sponsor-columns{grid-template-columns:1fr;gap:55px}.media li{grid-template-columns:1fr;gap:2px}.contact-links{flex-direction:column;align-items:center}}
@media (max-width:480px){body{font-size:14px}.mini-logo{width:58px;height:58px}.header-inner nav{font-size:11px}.header-inner nav a:nth-last-child(-n+2){display:none}.hero-art{min-height:330px}.moon{width:80px;height:80px;right:10%}.hero-copy{left:7%}.hero-copy h1{font-size:43px}.hero-en{font-size:9px}.hero-info{flex-direction:column}.wide-placeholder{height:190px}.staff-grid{grid-template-columns:1fr}.feature-visual{height:300px}.contact-links a{min-width:min(100%,290px)}h2{font-size:29px}.back-top{display:none}}

/* バーチャル魔法市3 */
.market-three{min-height:100vh;background:#fff}.market-three-hero{padding:75px 24px 83px;text-align:center}.market-three-logo{width:min(640px,100%);height:640px;margin:0 auto 28px;display:flex;align-items:center;justify-content:center;overflow:hidden}.market-three-logo img{display:block;width:100%;height:100%;object-fit:contain}.venue-link{display:inline-block;color:var(--ink);font-family:Georgia,"Yu Mincho",serif;font-size:41px;line-height:1.4;text-decoration:underline;text-underline-offset:6px;transition:.2s}.venue-link:hover{color:var(--blue)}.participants{width:min(900px,calc(100% - 40px));margin:auto;padding-bottom:130px;text-align:center}.participants>h2{margin:0;padding:70px 10px;border-top:1px solid #999;border-bottom:1px solid #999;font-size:60px;line-height:1.5;letter-spacing:.05em}.name-group{padding:58px 20px 72px;border-bottom:1px solid #999}.name-group h3{margin:0 0 42px;font-size:50px;line-height:1.5;letter-spacing:.05em}.name-group ul{list-style:none;margin:0;padding:0}.name-group li{margin:0 0 13px;color:var(--ink);font-size:30px;line-height:1.55}.name-group li:last-child{margin-bottom:0}.sponsor-group{border-bottom:0}.subpage-footer{display:flex;justify-content:center;align-items:center;gap:38px;border-top:1px solid #ddd}.subpage-footer>a{font-size:12px;color:var(--blue)}
.archive-logo-hero{min-height:calc(100vh - 83px);display:flex;align-items:center;justify-content:center}.archive-logo-hero .market-three-logo{margin-bottom:0}

/* フォトコンテスト受賞作品 */
.photo-winners-page{background:#f3f7ff}.photo-winners-hero{text-align:center;padding:95px 24px 80px;background:#173c7a;color:#fff}.photo-winners-hero .eyebrow{color:#b9d2ff}.photo-winners-hero h1{margin:0 0 18px;font-size:clamp(38px,6vw,64px);letter-spacing:.08em}.photo-winners-hero p:last-child{margin:0;color:#dce9ff}.winner-section{max-width:1040px;margin:auto;padding:95px 28px}.winner-heading{text-align:center;margin-bottom:48px}.winner-heading p{margin-bottom:5px;color:var(--blue);font-size:11px;font-weight:800;letter-spacing:.3em}.winner-heading h2{margin:0}.winner-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:28px}.winner-card{margin:0;background:#fff;box-shadow:0 12px 32px #173c7a14;overflow:hidden}.winner-card>img{display:block;width:100%;height:520px;object-fit:cover}.winner-card>div:not(.winner-gallery){position:relative;z-index:1;padding:22px 24px 25px;background:#fff}.winner-card span{color:var(--blue);font-size:12px;font-weight:700;letter-spacing:.14em}.winner-card h3{margin:5px 0 0;font-size:23px}.winner-card-text{min-height:150px;display:flex;align-items:center;justify-content:center;text-align:center}.market2-winners{max-width:none;padding-left:max(28px,calc((100% - 984px)/2));padding-right:max(28px,calc((100% - 984px)/2));background:#fff}.winner-grid-two{grid-template-columns:repeat(2,1fr);align-items:start}.winner-gallery-card{display:grid;grid-template-rows:minmax(0,auto) auto}.winner-gallery{position:relative;z-index:0;display:grid;gap:3px;background:#dce5f4;overflow:hidden}.winner-gallery img{display:block;width:100%;height:100%;min-height:0;object-fit:cover}.winner-gallery-vertical{grid-template-columns:repeat(2,1fr);height:660px}.winner-gallery-horizontal{grid-template-columns:1fr;height:660px}.photo-entry-guide{max-width:800px;margin:auto;padding:100px 28px;text-align:center}.photo-entry-guide a{color:var(--blue);text-decoration:underline;text-underline-offset:4px}.photo-entry-guide p{line-height:2}
@media (max-width:800px){.winner-grid,.winner-grid-two{grid-template-columns:1fr}.winner-card{max-width:540px;width:100%;margin:auto}.winner-card img{height:auto;max-height:720px;object-fit:contain;background:#e8eef9}.winner-card.landscape img{height:auto}.winner-section{padding:70px 20px}.photo-entry-guide{padding:75px 22px}}
@media (max-width:800px){.market-three-hero{padding-top:45px}.market-three-logo{height:min(92vw,640px)}.venue-link{font-size:clamp(28px,6vw,41px)}.participants>h2{padding:50px 10px;font-size:clamp(32px,7vw,60px)}.name-group{padding:48px 10px 58px}.name-group h3{font-size:clamp(30px,6vw,50px)}.name-group li{font-size:clamp(18px,4vw,30px)}.subpage-footer{flex-direction:column;gap:4px}}
