@charset "utf-8";
:root{color-scheme:light;--paper:#e6e3d9;--ink:#151913;--red:#942b32;--serif:"Yu Mincho","Hiragino Mincho ProN","MS Mincho",serif;--sans:"Yu Gothic","Hiragino Kaku Gothic ProN",sans-serif}
*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font:16px/1.7 var(--serif);min-height:100dvh}body:before{content:"";position:fixed;inset:0;pointer-events:none;background:url('./grain.png') repeat;background-size:320px;mix-blend-mode:multiply;opacity:.07;z-index:4}.sheet{width:min(100%,1120px);min-height:100dvh;margin:auto;position:relative;padding:35px 60px 30px;display:flex;flex-direction:column;border-left:1px solid #b8b8ac;border-right:1px solid #b8b8ac}header{display:flex;justify-content:space-between;letter-spacing:.18em;font:12px var(--sans);padding-bottom:22px;border-bottom:3px solid var(--ink)}#input-panel,#success{position:relative;flex:1;display:grid;grid-template-columns:1fr 1.14fr;align-content:center;column-gap:65px;padding:60px 0}.serial{position:absolute;top:30px;left:0;margin:0;font:12px var(--sans);letter-spacing:.2em;color:#656c5e}h1{font-size:clamp(72px,8vw,104px);line-height:1.24;letter-spacing:-.04em;font-weight:600;margin:14px 0 50px;position:relative}.title-rule{display:block;width:100px;border-bottom:10px solid var(--ink);margin-top:38px}form{align-self:center;padding-top:20px}label{display:block;font:17px var(--serif);letter-spacing:.15em;border-bottom:1px solid #a5aa9a;padding-bottom:14px}label small{display:block;font:11px var(--sans);letter-spacing:.04em;color:#59614e;margin-top:5px}.key-line{display:flex;align-items:center;gap:20px;padding:18px 0 8px}input{width:3.15ch;min-width:0;background:none;border:0;border-bottom:2px solid var(--ink);border-radius:0;outline-offset:5px;font:104px/1.25 "Courier New",monospace;letter-spacing:.08em;color:var(--ink);padding:0 0 0 .08em;text-transform:uppercase;appearance:none}input::placeholder{color:#a9ad9d}.key-hint{font:11px/1.9 var(--sans);color:#696f61;white-space:nowrap}.key-line:focus-within{color:var(--red)}#status{font:12px/1.7 var(--sans);color:var(--red);min-height:44px;margin:10px 0 16px}button{background:var(--ink);color:var(--paper);width:100%;min-height:84px;padding:16px 22px;text-align:left;position:relative;border:0;border-radius:0;cursor:pointer;font-family:var(--serif);touch-action:manipulation}button>span:first-child{display:block;font-size:10px;letter-spacing:.15em}button strong{font-size:26px;letter-spacing:.16em;font-weight:500}.button-mark{position:absolute;right:24px;top:22px;width:39px;height:39px;border:1px solid #aaa998;display:grid;place-items:center;font-size:19px;rotate:-7deg}button:hover{background:#2c3226}button:active{transform:translateY(2px)}:focus-visible{outline:3px solid var(--red);outline-offset:5px}footer{display:flex;justify-content:space-between;font-size:11px;letter-spacing:.08em;border-top:1px solid var(--ink);padding-top:18px;color:#5c6353}[hidden]{display:none!important}#success h1{grid-column:1/-1;margin:55px 0 30px}#success .accepted{grid-column:1/-1;font-size:17px;margin:0 0 20px}.stamp{position:absolute;right:30px;top:28%;width:120px;height:120px;display:grid;place-items:center;border:5px double var(--red);color:var(--red);font-size:44px;letter-spacing:.1em;rotate:-11deg;animation:stamp-in .22s ease-out both}.ending-link{color:var(--ink);font-size:16px;text-decoration:none;border-bottom:1px solid var(--ink);grid-column:1/-1;max-width:290px;padding:16px 0;display:flex;justify-content:space-between}.ending-link:hover{color:var(--red)}@keyframes stamp-in{from{transform:scale(1.7);opacity:0}to{transform:scale(1);opacity:1}}
@media(max-width:720px){.sheet{padding:24px 26px 23px;border:0}header{font-size:10px;padding-bottom:17px}#input-panel,#success{display:block;padding:50px 0 30px}.serial{top:22px;font-size:10px}h1{font-size:65px;line-height:1.12;margin:6px 0 27px;letter-spacing:0}h1 br{display:none}.title-rule{width:50px;border-bottom-width:6px;margin-top:20px}form{padding:0}label{font-size:15px}label small{font-size:10px}.key-line{padding-top:10px;gap:25px}input{font-size:91px}.key-hint{font-size:10px}#status{margin:8px 0 10px;min-height:36px}button{min-height:76px}button strong{font-size:24px}.button-mark{top:18px}footer{font-size:10px}#success h1{font-size:68px;line-height:1.3;margin-top:24px}#success h1 br{display:block}.stamp{right:2px;top:45px;width:84px;height:84px;font-size:31px}#success .accepted{font-size:15px}}
@media(max-width:370px){.sheet{padding-left:20px;padding-right:20px}h1{font-size:50px}}
@media(prefers-reduced-motion:reduce){.stamp{animation:none}button:active{transform:none}}
