@font-face{font-family:"LINE Seed KR";src:url('/fonts/line-seed-kr-regular.woff2') format('woff2');font-style:normal;font-weight:400;font-display:swap}
@font-face{font-family:"LINE Seed KR";src:url('/fonts/line-seed-kr-bold.woff2') format('woff2');font-style:normal;font-weight:700;font-display:swap}
@font-face{font-family:"LINE Seed JP";src:url('/fonts/line-seed-jp-regular.woff2') format('woff2');font-style:normal;font-weight:400;font-display:swap}
@font-face{font-family:"LINE Seed JP";src:url('/fonts/line-seed-jp-bold.woff2') format('woff2');font-style:normal;font-weight:700;font-display:swap}

/* Primitives: the developer's night and the two games' own palettes. */
:root{
  --night:#010101;
  --gold:#eac156;
  --cream:#f6efd8;
  --ink:#1b1712;
  --red:#d8452f;
  --paper:#f6efe2;
  --brown:#3b2a20;
  --navy:#0b1430;
  --alchemist-cream:#f6ecd2;
  --amber:#f0b25a;
  --teal:#234e4a;
  --t-small:1rem;
  --t-body:1.125rem;
  --t-feature:1.5rem;
  --t-title:2.5rem;
  --t-display:4.5rem;
  --space-1:8px;
  --space-2:16px;
  --space-3:24px;
  --space-4:32px;
  --space-6:48px;
  --space-8:64px;
  --space-12:96px;
  --section-padding:var(--space-12);
  --wrap-gutter:64px;
  --wrap-max:1200px;
  --ease-out:cubic-bezier(.16,1,.3,1);
  color-scheme:dark;
  scrollbar-color:var(--gold) var(--night);
  caret-color:var(--gold);
}

/* Section aliases are inherited by text, media and controls. */
body{
  --section-bg:var(--night);
  --section-text:var(--cream);
  --section-heading:var(--gold);
  --section-accent:var(--gold);
  --focus:var(--gold);
}
.express{
  --section-bg:var(--paper);
  --section-text:var(--brown);
  --section-heading:var(--brown);
  --section-accent:var(--brown);
  --focus:var(--brown);
  color-scheme:light;
}
.alchemist{
  --section-bg:var(--navy);
  --section-text:var(--alchemist-cream);
  --section-heading:var(--amber);
  --section-accent:var(--amber);
  --focus:var(--amber);
}
.reading-sheet{
  --section-bg:var(--cream);
  --section-text:var(--ink);
  --section-heading:var(--ink);
  --section-accent:var(--brown);
  --focus:var(--brown);
  color-scheme:light;
}

*{box-sizing:border-box;min-width:0}
html{scroll-behavior:auto}
body{margin:0;background:var(--section-bg);color:var(--section-text);font-family:"LINE Seed KR",sans-serif;font-size:var(--t-body);line-height:1.65;word-break:keep-all;overflow-wrap:break-word}
html:lang(ja) body,section[lang="ja"]{font-family:"LINE Seed JP","LINE Seed KR",sans-serif;word-break:normal;line-break:strict}
::selection{background:var(--gold);color:var(--ink)}
a{display:inline-flex;align-items:center;min-width:44px;min-height:44px;max-width:100%;color:inherit;text-underline-offset:.24em;text-decoration-thickness:.09em;touch-action:manipulation;transition:transform 160ms var(--ease-out)}
a:focus-visible{outline:3px solid var(--focus);outline-offset:4px}
a:active{transform:scale(.98);transition-duration:100ms}
@media(hover:hover) and (pointer:fine){a:hover{text-decoration-thickness:.16em}}
.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);clip-path:inset(50%);white-space:nowrap;border:0}
img{display:block;max-width:100%;height:auto}
h1,h2,h3,p,figure{margin:0}
h1,h2,h3{color:var(--section-heading);font-weight:700;line-height:1.2;text-wrap:balance}
h1,h2{font-size:var(--t-title)}
h3{font-size:var(--t-feature)}
p{max-width:68ch}
ul{padding-inline-start:1.5em;margin-block:var(--space-3)}
li+li{margin-top:var(--space-1)}
.wrap,.header-inner{width:min(100% - var(--wrap-gutter) * 2,var(--wrap-max));margin-inline:auto}
.skip-link{position:absolute;left:-10000px;top:var(--space-1);z-index:10;padding:var(--space-2) var(--space-3);background:var(--gold);color:var(--ink);font-size:var(--t-small);transition:none}
.skip-link:focus{left:var(--space-2);transform:none}

/* Shared navigation stays in the document flow. */
.site-header{padding-block:var(--space-2)}
.header-inner{display:flex;align-items:center;gap:var(--space-3)}
.brand{flex-shrink:0;gap:var(--space-1);color:var(--section-heading);font-size:var(--t-feature);font-weight:700;text-decoration:none}
.brand img{width:40px;height:40px;border:3px solid var(--gold);border-radius:50%;object-fit:cover;flex-shrink:0}
.main-nav,.languages{display:flex;align-items:center;flex-wrap:wrap;gap:0 var(--space-2)}
.main-nav a,.languages a,.footer-bottom>a{justify-content:center;font-size:var(--t-small)}
.main-nav a,.languages a{text-decoration:none}
.main-nav a[aria-current],.languages a[aria-current]{color:var(--section-heading);text-decoration:underline;text-decoration-thickness:3px}
.header-inner>.languages{margin-left:auto}

/* Compact authorship and direct links to both games. */
#intro{padding-block:var(--space-6) var(--space-8)}
.intro-layout{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);align-items:center;gap:var(--space-6)}
.intro-identity{display:flex;align-items:center;gap:var(--space-3)}
.profile-photo{width:72px;height:72px;border:3px solid var(--gold);border-radius:50%;object-fit:cover;flex-shrink:0}
.intro-identity h1{font-size:var(--t-display);line-height:1.05}
.intro-copy>p{font-size:var(--t-feature)}
.social-links{display:flex;align-items:center;flex-wrap:wrap;gap:0 var(--space-3);margin-top:var(--space-1)}
.social-link{gap:var(--space-1);min-height:44px;font-size:var(--t-small);text-decoration:none}
.social-link svg{width:22px;height:22px;flex-shrink:0}
.social-link:focus-visible span{text-decoration:underline}
@media(hover:hover) and (pointer:fine){.social-link:hover span{text-decoration:underline}}
.jump-links{display:grid;grid-template-columns:minmax(0,1fr);gap:var(--space-1);margin-top:var(--space-3)}
.jump-links>a{gap:var(--space-2);min-height:56px;text-decoration:none;font-size:var(--t-small)}
.jump-links .game-icon{width:48px;height:48px}
.jump-name{display:block;font-weight:700;text-underline-offset:.24em}
.phrase{display:inline-block;white-space:pre}
.jump-status{display:block;font-weight:400}
.jump-links a:focus-visible .jump-name{text-decoration:underline}
@media(hover:hover) and (pointer:fine){.jump-links a:hover .jump-name{text-decoration:underline;text-decoration-thickness:.16em}}

/* Each game is a complete introduction followed by three actual play screens. */
.game{padding-block:var(--section-padding);background:var(--section-bg);color:var(--section-text)}
.game-intro{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,5fr);gap:var(--space-8);align-items:center}
.game-heading{display:flex;align-items:center;gap:var(--space-3)}
.game-icon{width:72px;height:72px;flex-shrink:0;object-fit:contain}
.game-copy>.game-tagline{margin-top:var(--space-3);font-size:var(--t-feature)}
.game-copy>.game-tagline+p{margin-top:var(--space-2);max-width:42ch}
.game-availability{margin-top:var(--space-3)}
.release-status{font-size:var(--t-small);font-weight:700;color:var(--section-accent)}
.button{justify-content:center;min-height:52px;padding:var(--space-1) var(--space-3);background:var(--gold);color:var(--ink);border:2px solid var(--ink);border-radius:8px;font-size:var(--t-small);font-weight:700;text-align:center;text-decoration:none}
.button.play{margin-top:var(--space-1);background:var(--brown);color:var(--paper);border-color:var(--brown)}
.game-links{display:flex;flex-wrap:wrap;gap:var(--space-1) var(--space-3);margin-top:var(--space-3)}
.game-links a{font-size:var(--t-small)}
.express .game-links a[aria-current]{text-decoration-color:var(--red)}
.game-art{border:2px solid var(--ink);border-radius:12px;overflow:hidden}
.game-art img{width:100%}
.title-poster{width:100%;max-width:400px;aspect-ratio:780/1140;justify-self:end;align-self:start}
.alchemist .game-copy{grid-column:2;grid-row:1}
.alchemist .game-art{grid-column:1;grid-row:1}
.workshop-art{width:100%;aspect-ratio:3/2}
.screenshot-carousel{--screen-height:320px;--screen-gap:12px;--carousel-inset:max(var(--wrap-gutter),calc((100% - var(--wrap-max)) / 2));position:relative;margin-top:var(--space-6)}
.play-screens{display:flex;gap:var(--screen-gap);list-style:none;margin:0;padding-block:4px;padding-inline:var(--carousel-inset);overflow-x:auto;overscroll-behavior-x:contain;scroll-snap-type:x proximity;scroll-padding-inline:var(--carousel-inset);scrollbar-width:none}
.play-screens::-webkit-scrollbar{display:none}
.play-screens:focus-visible{outline:3px solid var(--focus);outline-offset:-3px}
.play-screens>li{flex:0 0 auto;margin:0;scroll-snap-align:start}
.play-screens img{width:auto;max-width:none;height:var(--screen-height);border:1px solid color-mix(in srgb,var(--section-text) 35%,transparent);border-radius:12px}
.carousel-button{display:none;position:absolute;top:50%;transform:translateY(-50%);align-items:center;justify-content:center;width:48px;height:48px;padding:0;border:1px solid var(--section-text);border-radius:50%;background:var(--section-bg);color:var(--section-text);cursor:pointer;touch-action:manipulation}
.carousel-button.prev{left:12px}
.carousel-button.next{right:12px}
.carousel-button svg{width:24px;height:24px}
.carousel-button:focus-visible{outline:3px solid var(--focus);outline-offset:4px}
.carousel-button:disabled{opacity:.35;cursor:default}
.carousel-button:active:not(:disabled){transform:translateY(-50%) scale(.97)}
@media(hover:hover) and (pointer:fine){
  .carousel-button:not([hidden]){display:flex}
  .carousel-button:hover:not(:disabled){background:var(--section-text);color:var(--section-bg)}
}

/* The same modest developer close appears on every page. */
.site-footer{padding-block:var(--section-padding) var(--space-4)}
.footer-inner{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,5fr);gap:var(--space-6) var(--space-8);align-items:start}
.contact-email{margin-block:var(--space-2);font-size:var(--t-feature);font-weight:700;overflow-wrap:anywhere}
.contact p{max-width:48ch}
.text-action{margin-top:var(--space-2);font-size:var(--t-small)}
.signature{gap:var(--space-2);justify-self:end;color:var(--section-heading);font-size:var(--t-title);font-weight:700;line-height:1.2;text-decoration:none}
.signature img{width:56px;height:56px;border:3px solid var(--gold);border-radius:50%;object-fit:cover;flex-shrink:0}
.footer-bottom{grid-column:1/-1;display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:var(--space-2) var(--space-3)}
.footer-bottom p{font-size:var(--t-small)}

/* Reading pages keep their existing content and accessible data tables. */
.reading-page{padding:var(--space-6) var(--space-3) var(--space-8);font-size:var(--t-small)}
.reading-sheet{max-width:820px;margin-inline:auto;padding:var(--space-8);background:var(--section-bg);color:var(--section-text);border:3px solid var(--ink)}
.reading-sheet h1{margin-bottom:var(--space-3)}
.reading-sheet p+p{margin-top:var(--space-2)}
.reading-sheet>section{margin-top:var(--space-6);scroll-margin-top:var(--space-3)}
.reading-sheet h2{font-size:var(--t-feature);line-height:1.2}
.reading-sheet h3{font-size:var(--t-body);margin-block:var(--space-3) var(--space-1)}
.reading-sheet section>h2{margin-bottom:var(--space-2)}
.reading-sheet .game-heading{gap:var(--space-2);margin-bottom:var(--space-2)}
.reading-sheet .game-icon{width:40px;height:40px}
.sheet-email{overflow-wrap:anywhere;font-weight:700;margin-block:var(--space-1)}
.policy-action{font-weight:700;margin-block:var(--space-1)}
.jump-list{display:flex;flex-wrap:wrap;gap:var(--space-1) var(--space-3);margin-block:var(--space-4)}
.reading-sheet .button{margin-top:var(--space-3)}
code{font-family:monospace;font-size:var(--t-small);overflow-wrap:anywhere;word-break:break-word}
.data-region{margin-top:var(--space-3);max-width:100%}
table{border-collapse:collapse;width:100%;table-layout:fixed;font-size:var(--t-small);font-variant-numeric:tabular-nums}
th,td{text-align:start;vertical-align:top;padding:var(--space-2);border:2px solid var(--ink);overflow-wrap:anywhere}
thead{background:var(--teal);color:var(--cream)}
th:first-child{width:31%}
.not-found>img{width:128px;height:128px;border:3px solid var(--ink);border-radius:50%;margin-bottom:var(--space-4)}
.not-found section+section{margin-top:var(--space-4)}

@media(min-width:1100px){
  #intro{padding-block:var(--space-4)}
  .express .game-copy{align-self:start}
}
@media(min-width:700px){
  .signature{align-self:end}
  .screenshot-carousel{--screen-height:420px;--screen-gap:16px}
}
@media(min-width:1100px){
  .screenshot-carousel{--screen-height:500px}
}
@media(min-width:700px) and (max-width:1099px){
  :root{--t-feature:1.375rem;--t-title:2rem;--t-display:3.5rem;--section-padding:var(--space-8);--wrap-gutter:32px}
  .intro-layout{grid-template-columns:minmax(0,1fr);gap:var(--space-3)}
  .jump-links{grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-3)}
  .game-intro{grid-template-columns:minmax(0,3fr) minmax(0,2fr);gap:var(--space-4)}
  .title-poster{max-width:280px}
  .alchemist .game-intro{grid-template-columns:minmax(0,1fr)}
  .alchemist .game-copy,.alchemist .game-art{grid-column:auto;grid-row:auto}
  .footer-inner{gap:var(--space-6) var(--space-4)}
}
@media(max-width:1099px){
  .header-inner{flex-wrap:wrap;gap:var(--space-1) var(--space-2)}
  .header-inner>.main-nav{flex-basis:100%}
}
@media(max-width:699px){
  :root{--t-feature:1.375rem;--t-title:1.75rem;--t-display:2.75rem;--section-padding:var(--space-6);--wrap-gutter:20px}
  .site-header{padding-block:var(--space-1)}
  .brand{font-size:var(--t-small)}
  .brand img{width:32px;height:32px}
  .header-inner{gap:0 var(--space-1)}
  .header-inner>.main-nav{gap:0 var(--space-2)}
  .languages{gap:0 var(--space-1)}
  #intro{padding-block:var(--space-2) var(--space-3)}
  .intro-layout{grid-template-columns:minmax(0,1fr);gap:var(--space-1)}
  .intro-identity{gap:var(--space-2)}
  .profile-photo{width:56px;height:56px}
  .intro-copy>p{font-size:var(--t-body)}
  .jump-links{margin-top:var(--space-1)}
  .jump-links .game-icon{width:40px;height:40px}
  .game-intro{grid-template-columns:minmax(0,1fr);gap:var(--space-4)}
  .game-heading{flex-direction:column;align-items:flex-start;gap:var(--space-2)}
  .game-icon{width:56px;height:56px}
  .game-copy>.game-tagline{margin-top:var(--space-2)}
  .game-links{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-1) var(--space-2)}
  .game-links a{justify-content:flex-start}
  .title-poster{max-width:320px;justify-self:center}
  .alchemist .game-copy,.alchemist .game-art{grid-column:auto;grid-row:auto}
  .screenshot-carousel{margin-top:40px}
  .footer-inner{grid-template-columns:minmax(0,1fr);gap:var(--space-4)}
  .signature{justify-self:start}
  .footer-bottom{grid-column:auto;justify-content:flex-start}
  .footer-bottom>.main-nav{flex-basis:100%}
  .reading-page{padding:var(--space-2) var(--space-2) var(--space-4)}
  .reading-sheet{padding:var(--space-3) var(--space-2)}
  .reading-sheet>section{margin-top:var(--space-4)}
  .reading-sheet .game-heading{flex-direction:row;align-items:flex-start}
  .reading-sheet .game-heading h2{overflow-wrap:anywhere}
  table,tbody,tr,th,td{display:block}
  thead{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);clip-path:inset(50%);white-space:nowrap;border:0}
  th:first-child{width:100%}
  tbody tr+tr{margin-top:var(--space-2)}
  tbody th{background:var(--teal);color:var(--cream)}
  tbody td{border-top:0}
  .data-region table{border:0}
  .jump-list{display:block}
  .jump-list a{display:flex}
  .not-found>img{width:96px;height:96px}
}
@media(max-width:360px){
  :root{--wrap-gutter:16px}
}
@media(prefers-reduced-motion:reduce){
  a{transition:none}
  a:active{transform:none}
  .carousel-button:active:not(:disabled){transform:translateY(-50%)}
}
