@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@500;600;700;800&family=Noto+Sans+JP:wght@400;500;700;900&display=swap');
:root{font-family:'Noto Sans JP',sans-serif;color:#172a3b;background:#172a3b;font-synthesis:none;scroll-behavior:smooth}
*{box-sizing:border-box}body{margin:0}a{color:inherit}button,a{-webkit-tap-highlight-color:transparent}a:focus-visible{outline:3px solid #f5ac29;outline-offset:5px}
.top-stripe{height:12px;background:repeating-linear-gradient(90deg,#ed4c2f 0 48px,#f5ac29 48px 96px,#f8efd8 96px 144px,#172a3b 144px 192px)}
.page-shell{max-width:1400px;min-height:100vh;margin:auto;background:#f8efd8;box-shadow:0 0 0 1px rgba(255,255,255,.15),0 20px 90px #0a1627;overflow:hidden}.masthead{display:flex;justify-content:space-between;align-items:center;gap:1rem;padding:22px clamp(24px,5vw,72px);border-bottom:3px solid #172a3b}.brand{text-decoration:none;font:800 clamp(17px,2vw,24px)/1 'DM Sans',sans-serif;letter-spacing:.08em}.brand span{color:#ed4c2f;padding:0 .13em}.issue{font-size:14px;font-weight:700;letter-spacing:.14em}
.hero{display:grid;grid-template-columns:1.12fr .88fr;min-height:570px;position:relative}.hero-copy{padding:clamp(42px,7vw,98px) 10px 74px clamp(24px,5vw,72px);position:relative;z-index:2}.eyebrow{display:flex;align-items:center;gap:12px;color:#ed4c2f;font-size:16px;font-weight:900;letter-spacing:.14em;margin:0 0 26px}.eyebrow-line{display:inline-block;width:29px;height:3px;background:currentColor}.hero h1{font-size:clamp(42px,5.8vw,84px);line-height:1.27;letter-spacing:-.075em;margin:0;font-weight:900;white-space:nowrap}.hero h1>span{display:block}.title-dot{color:#ed4c2f}.hero-intro{font-size:clamp(16px,1.4vw,19px);line-height:1.9;font-weight:500;margin:28px 0 27px}.jump-link{display:inline-flex;align-items:center;gap:38px;border:2px solid #172a3b;background:#172a3b;color:#fff8e5;padding:14px 18px;text-decoration:none;font-size:15px;font-weight:900;box-shadow:5px 5px 0 #ed4c2f;transition:transform .2s,box-shadow .2s}.jump-link:hover{transform:translate(3px,3px);box-shadow:2px 2px 0 #ed4c2f}.jump-link span{font-size:23px;line-height:1}
.portrait-wrap{position:relative;display:flex;align-items:center;justify-content:center;padding:30px 40px 62px 10px}.portrait-frame{width:min(100%,500px);aspect-ratio:1;transform:rotate(4deg);border:8px solid #172a3b;box-shadow:16px 16px 0 #ed4c2f;background:#f5ac29;overflow:hidden;animation:arrive .8s both}.portrait-frame img{display:block;width:100%;height:100%;object-fit:cover;filter:saturate(.95)}.portrait-label{position:absolute;bottom:45px;left:6%;transform:rotate(-8deg);background:#f8efd8;border:3px solid #172a3b;padding:11px 18px;font-size:16px;font-weight:700;line-height:1.35;box-shadow:5px 5px 0 #172a3b}.portrait-label strong{font-size:25px}.burst{position:absolute;top:7%;right:5%;background:#ed4c2f;color:#fff8e5;width:108px;height:108px;clip-path:polygon(50% 0,59% 15%,75% 6%,79% 23%,97% 21%,91% 39%,100% 50%,89% 61%,97% 79%,79% 77%,75% 94%,59% 85%,50% 100%,41% 85%,25% 94%,21% 77%,3% 79%,9% 61%,0 50%,9% 39%,3% 21%,21% 23%,25% 6%,41% 15%);display:grid;place-items:center;font-size:16px;font-weight:900;transform:rotate(13deg);animation:wiggle 5s ease-in-out infinite}
.ticker{background:#ed4c2f;color:#fff8e5;border-top:3px solid #172a3b;border-bottom:3px solid #172a3b;overflow:hidden;white-space:nowrap;font-weight:900;letter-spacing:.2em;font-size:15px}.ticker-track{display:flex;width:max-content;animation:marquee 24s linear infinite}.ticker-track span{padding:11px 18px}
.works{padding:66px clamp(24px,5vw,72px) 98px}.section-heading{display:flex;align-items:baseline;gap:20px;border-bottom:3px solid #172a3b;padding-bottom:13px;margin-bottom:30px}.section-number{font:800 14px 'DM Sans',sans-serif;color:#ed4c2f;letter-spacing:.06em}.section-heading h2{font-size:clamp(28px,3vw,40px);margin:0;font-weight:900;letter-spacing:-.04em}.heading-star{margin-left:auto;color:#ed4c2f;font-size:34px;line-height:1;animation:spin 16s linear infinite}.work-card{display:grid;grid-template-columns:minmax(280px,.85fr) 1.15fr;background:#fff8e5;text-decoration:none;border:3px solid #172a3b;box-shadow:10px 10px 0 #172a3b;min-height:290px;transition:transform .25s,box-shadow .25s}.work-card:hover{transform:translate(5px,5px);box-shadow:5px 5px 0 #172a3b}.card-art{background:#f3ad2e;position:relative;overflow:hidden;border-right:3px solid #172a3b;isolation:isolate}.card-art:before{content:'';position:absolute;inset:0;background:repeating-linear-gradient(0deg,transparent 0 9px,rgba(23,42,59,.08) 10px 11px);z-index:2}.ball{position:absolute;width:96px;height:96px;border:4px solid #172a3b;border-radius:50%;right:17%;top:17%;background:#fff8e5;box-shadow:8px 8px 0 #ed4c2f;color:transparent;transform:rotate(-13deg);transition:transform .5s}.ball:before,.ball:after{content:'';position:absolute;top:20px;bottom:20px;width:20px;border:3px dashed #ed4c2f;border-radius:50%}.ball:before{left:15px}.ball:after{right:15px}.work-card:hover .ball{transform:translate(-12px,-10px) rotate(18deg)}.field-line{position:absolute;border:3px solid rgba(23,42,59,.48);transform:rotate(-31deg)}.field-one{width:320px;height:320px;left:-230px;top:40px}.field-two{width:320px;height:320px;left:-160px;top:40px}.field-three{width:320px;height:320px;left:-90px;top:40px}.card-art-text{position:absolute;bottom:20px;left:27px;z-index:3;color:#172a3b;font:800 clamp(46px,6vw,78px)/.85 'DM Sans',sans-serif;letter-spacing:-.09em;transform:rotate(-5deg);text-shadow:3px 3px #fff8e5}.card-content{padding:35px clamp(24px,4vw,56px);display:flex;flex-direction:column;align-items:flex-start}.card-kicker{font:800 13px 'DM Sans',sans-serif;letter-spacing:.13em;color:#ed4c2f}.new-label{margin-left:10px;background:#ed4c2f;color:#fff;padding:3px 6px}.card-content h3{font-size:clamp(26px,3vw,38px);line-height:1.3;letter-spacing:-.05em;margin:22px 0 10px}.card-content p{font-size:16px;line-height:1.8;margin:0 0 26px}.card-cta{margin-top:auto;font-weight:900;border-bottom:3px solid #ed4c2f;padding-bottom:4px}.card-cta span{margin-left:18px;font-size:20px}.footer{background:#172a3b;color:#f8efd8;padding:21px clamp(24px,5vw,72px);display:flex;gap:20px;align-items:center;font-size:13px;font-weight:700;letter-spacing:.08em}.footer a{margin-left:auto;text-decoration:none;border-bottom:1px solid currentColor}
@keyframes marquee{to{transform:translateX(-50%)}}@keyframes spin{to{transform:rotate(360deg)}}@keyframes wiggle{50%{transform:rotate(-2deg) scale(1.06)}}@keyframes arrive{from{opacity:0;transform:translateY(20px) rotate(-2deg)}to{opacity:1;transform:translateY(0) rotate(4deg)}}
@media(max-width:850px){.hero{grid-template-columns:1fr}.hero-copy{padding-right:24px;padding-bottom:24px}.portrait-wrap{padding:15px 50px 90px;max-width:620px;margin:auto;width:100%}.portrait-frame{max-width:420px}.portrait-label{left:8%;bottom:42px}.burst{right:5%}.hero h1{font-size:clamp(43px,9vw,75px)}}
@media(max-width:600px){.masthead{padding-top:18px;padding-bottom:18px}.issue{font-size:11px;max-width:105px;text-align:right}.hero h1{font-size:clamp(38px,10.5vw,58px)}.hero-copy{padding-top:46px}.hero-intro{margin-top:20px}.desktop-only{display:none}.portrait-wrap{padding:8px 40px 75px 20px}.portrait-frame{border-width:6px;box-shadow:10px 10px 0 #ed4c2f}.portrait-label{font-size:13px;padding:7px 10px;bottom:27px;left:3%}.portrait-label strong{font-size:19px}.burst{width:81px;height:81px;font-size:13px;top:0}.works{padding-top:44px;padding-bottom:70px}.section-heading{gap:9px;flex-wrap:wrap}.section-number{width:100%}.work-card{grid-template-columns:1fr}.card-art{height:230px;border-right:0;border-bottom:3px solid #172a3b}.card-content{padding:26px}.card-content h3{margin-top:17px}.footer{flex-wrap:wrap;font-size:12px}.footer a{margin-left:0;width:100%;width:max-content}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;scroll-behavior:auto!important;transition-duration:.01ms!important}}

/* The construction page deliberately recalls a late-1990s personal homepage. */
.construction{min-height:100vh;background:#060073;color:#fff;font-family:'MS Gothic','Osaka-Mono',monospace;background-image:radial-gradient(#2c2caa 1px,transparent 1px);background-size:16px 16px;padding:clamp(18px,5vw,60px) 14px}.old-web-window{max-width:760px;margin:auto;border:4px ridge #ddd;background:#00006a;box-shadow:10px 10px 0 #030343}.window-bar{display:flex;justify-content:space-between;padding:6px 10px;background:linear-gradient(90deg,#aaa,#eee);color:#111;font-size:14px;font-weight:bold;letter-spacing:.04em}.old-web-body{text-align:center;padding:22px clamp(15px,5vw,46px) 35px}.rainbow-rule{height:8px;margin:0 0 24px;background:linear-gradient(90deg,red,orange,yellow,lime,cyan,blue,magenta,red)}.sparkles{color:#ffeb32;font-size:clamp(17px,3vw,25px);letter-spacing:.13em;margin:0 0 10px;text-shadow:2px 2px #f0f}.construction h1{font-size:clamp(25px,5vw,42px);color:#00ffff;text-shadow:3px 3px #f500f5;margin:12px 0 4px;letter-spacing:.03em}.under-construction{font-family:system-ui,sans-serif;font-size:clamp(90px,17vw,160px);line-height:1.2;filter:drop-shadow(5px 5px #000);animation:bob 2s ease-in-out infinite}.construction-message{margin:5px auto 15px}.construction-message span{font-size:clamp(30px,6vw,54px);font-weight:900;color:#ffff00;text-shadow:3px 3px #f400ed;animation:blink 1.2s steps(2,start) infinite}.old-web-note{font-size:clamp(15px,2.6vw,21px);line-height:1.6;margin:18px 0 25px}.bottom-sparkles{margin:0 0 20px}.classic-rule{border:0;height:4px;background:#fff;box-shadow:0 4px #999;margin:15px 0 28px}.back-home{display:inline-block;background:#f2f2f2;color:#0000ee;border:3px outset #fff;padding:10px 18px;font-size:clamp(14px,2.5vw,18px);font-weight:bold;text-decoration:underline;transition:transform .15s}.back-home:hover{transform:translateY(-3px)}.last-updated{color:#aaa;font-size:12px;margin:30px 0 0;letter-spacing:.1em}@keyframes blink{50%{color:#ff55ff}}@keyframes bob{50%{transform:translateY(-7px)}}
