:root{--paper:#f6f8f6;--white:#fff;--grid:#2e6a7312;--ink:#1d2a31;--ink-2:#47565f;--ink-3:#8b979d;--line:#dde5e3;--marker:#ffe45c;--marker-soft:#fff4b8;--lab:#2e6a73;--lab-soft:#e4eeef;--stamp:#d6543e;--stamp-soft:#f9e8e4;--note:#b98a00;--radius:14px;--radius-s:10px;--shadow:0 1px 2px #1d2a310f, 0 8px 24px #1d2a3112;--shadow-lift:0 2px 4px #1d2a3114, 0 14px 32px #1d2a311f;--f-display:"Shippori Mincho", "Hiragino Mincho ProN", serif;--f-body:"Zen Kaku Gothic New", "Hiragino Kaku Gothic ProN", sans-serif;--f-mono:"IBM Plex Mono", monospace}*{box-sizing:border-box;margin:0;padding:0}html{-webkit-text-size-adjust:100%}body{font-family:var(--f-body);color:var(--ink);background-color:var(--paper);background-image:linear-gradient(var(--grid) 1px, transparent 1px), linear-gradient(90deg, var(--grid) 1px, transparent 1px);background-size:28px 28px;font-size:16px;line-height:1.9}img{max-width:100%;display:block}a{color:var(--lab);text-decoration:none}a:hover{text-decoration:underline}button{cursor:pointer;font-family:inherit}:focus-visible{outline:3px solid var(--lab);outline-offset:2px}.wrap{max-width:1080px;margin:0 auto;padding:0 20px}.wrap-narrow{max-width:720px;margin:0 auto;padding:0 20px}.hl{background-image:linear-gradient(transparent 55%, var(--marker) 55%, var(--marker) 94%, transparent 94%);background-repeat:no-repeat;background-size:100% 100%;padding:0 .08em}.header{z-index:50;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-bottom:1px solid var(--line);background:#f6f8f6eb;position:sticky;top:0}.header-in{align-items:center;gap:28px;height:64px;display:flex}.logo{color:var(--ink);letter-spacing:.02em;align-items:center;gap:9px;font-size:17px;font-weight:700;display:flex}.logo:hover{text-decoration:none}.logo svg{flex:none}.logo .beta{font-family:var(--f-mono);color:var(--lab);letter-spacing:.08em;border:1px solid;border-radius:4px;padding:0 5px;font-size:10px}.gnav{align-items:center;gap:22px;margin-left:auto;display:flex}.gnav a{color:var(--ink-2);font-size:14px;font-weight:500}.gnav a.active{color:var(--ink);border-bottom:3px solid var(--marker);padding-bottom:2px;font-weight:700}.gnav a:hover{color:var(--ink);text-decoration:none}.gnav a.btn-primary,.gnav a.btn-primary:hover,.gnav a.btn-lab,.gnav a.btn-lab:hover{color:#fff}.avatar{background:var(--lab);color:#fff;border-radius:50%;place-items:center;width:34px;height:34px;font-size:13px;font-weight:700;display:grid}.btn{white-space:nowrap;border:none;border-radius:12px;justify-content:center;align-items:center;gap:8px;padding:13px 26px;font-size:15px;font-weight:700;text-decoration:none;transition:transform .12s,box-shadow .12s;display:inline-flex}.btn:hover{box-shadow:var(--shadow-lift);text-decoration:none;transform:translateY(-1px)}.btn-primary{background:var(--ink);color:#fff}.btn-primary:hover{color:#fff}.btn-ghost{color:var(--ink);border:1.5px solid var(--ink);background:0 0}.btn-lab{background:var(--lab);color:#fff}.btn-lab:hover{color:#fff}.btn-sm{border-radius:10px;padding:8px 16px;font-size:13px}.btn-block{width:100%}.btn[disabled]{opacity:.45;cursor:not-allowed;box-shadow:none;transform:none}.eyebrow{font-family:var(--f-mono);letter-spacing:.18em;color:var(--lab);text-transform:uppercase;font-size:12px;font-weight:500}.tag{letter-spacing:.04em;white-space:nowrap;border-radius:6px;align-items:center;padding:2px 8px;font-size:11.5px;font-weight:700;display:inline-flex}.tag-live{background:var(--lab-soft);color:var(--lab)}.tag-review{background:var(--stamp-soft);color:var(--stamp)}.tag-theme{background:var(--marker-soft);color:var(--note)}.tag-file{color:#5b5b9e;background:#e9e9f4}.tag-new{background:var(--stamp);color:#fff}.chip{border:1.5px solid var(--line);background:var(--white);color:var(--ink-2);border-radius:999px;align-items:center;gap:6px;padding:7px 16px;font-size:13.5px;font-weight:500;display:inline-flex}.chip:hover{border-color:var(--ink-3);text-decoration:none}.chip.active{background:var(--ink);border-color:var(--ink);color:#fff;font-weight:700}.stamp{border:2.5px solid var(--stamp);width:38px;height:38px;color:var(--stamp);font-family:var(--f-display);background:#ffffffd9;border-radius:50%;place-items:center;font-size:17px;font-weight:700;display:grid;transform:rotate(-12deg)}.stamp-inline{border-width:2px;flex:none;width:30px;height:30px;font-size:13px}.card{background:var(--white);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow)}.record-grid{grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:18px;display:grid}.record{background:var(--white);border:1px solid var(--line);border-left:4px solid var(--lab);border-radius:var(--radius-s);box-shadow:var(--shadow);color:var(--ink);transition:transform .12s,box-shadow .12s;display:block;position:relative;overflow:hidden}.record:hover{box-shadow:var(--shadow-lift);text-decoration:none;transform:translateY(-2px)}.record.is-review{border-left-color:var(--stamp)}.record.is-theme{border-left-color:var(--note)}.record.is-file{border-left-color:#5b5b9e}.record .thumb{aspect-ratio:16/9;background:linear-gradient(135deg,#22333d 0%,#2e6a73 100%);position:relative}.record .thumb .dur{color:#fff;font-family:var(--f-mono);background:#1d2a31d9;border-radius:5px;padding:2px 7px;font-size:11px;position:absolute;bottom:8px;right:8px}.record .thumb .stamp{position:absolute;top:8px;right:8px}.record .thumb .play{width:46px;height:46px;color:var(--ink);background:#ffffffeb;border-radius:50%;place-items:center;margin:auto;font-size:15px;display:grid;position:absolute;inset:0}.record .thumb .progress{background:#ffffff4d;height:4px;position:absolute;bottom:0;left:0;right:0}.record .thumb .progress i{background:var(--marker);height:100%;display:block}.record .body{padding:13px 15px 15px}.record .no{font-family:var(--f-mono);color:var(--ink-3);letter-spacing:.06em;font-size:11px}.record h3{margin:4px 0 8px;font-size:14.5px;font-weight:700;line-height:1.55}.record .meta{color:var(--ink-3);align-items:center;gap:10px;font-size:12px;display:flex}.section{padding:72px 0}.section-white{background:var(--white);border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.section-head{margin-bottom:36px}.section-head h2{font-family:var(--f-display);margin-top:8px;font-size:clamp(24px,3.4vw,32px);font-weight:700;line-height:1.5}.section-head p{color:var(--ink-2);max-width:640px;margin-top:10px}.field{margin-bottom:18px}.field label{margin-bottom:7px;font-size:13.5px;font-weight:700;display:block}.field label .req{color:var(--stamp);margin-left:6px;font-size:11px}.field input[type=text],.field input[type=email],.field select,.field textarea{border:1.5px solid var(--line);border-radius:var(--radius-s);background:var(--white);width:100%;color:var(--ink);padding:12px 14px;font-family:inherit;font-size:15px}.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--lab);box-shadow:0 0 0 3px var(--lab-soft);outline:none}.hint{color:var(--ink-3);margin-top:6px;font-size:12.5px;line-height:1.7}.table-scroll{overflow-x:auto}.table-scroll .table{min-width:620px}.table{border-collapse:collapse;width:100%;font-size:14px}.table th{text-align:left;color:var(--ink-3);letter-spacing:.05em;border-bottom:2px solid var(--line);white-space:nowrap;padding:10px 14px;font-size:12px;font-weight:700}.table td{border-bottom:1px solid var(--line);vertical-align:middle;padding:13px 14px}.table tr:last-child td{border-bottom:none}.mono{font-family:var(--f-mono);letter-spacing:.02em;font-size:.92em}.st{align-items:center;gap:7px;font-size:13px;font-weight:500;display:inline-flex}.st:before{content:"";background:var(--ink-3);border-radius:50%;width:8px;height:8px}.st-active:before{background:#3a9b6e}.st-pastdue:before{background:var(--note)}.st-canceled:before{background:var(--ink-3)}.footer{border-top:1px solid var(--line);background:var(--white);margin-top:80px;padding:40px 0 48px}.footer-in{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:18px 32px;display:flex}.footer nav{flex-wrap:wrap;gap:8px 24px;display:flex}.footer a{color:var(--ink-3);font-size:13px}.footer .copy{color:var(--ink-3);font-size:12px;font-family:var(--f-mono)}.admin-body{background:#f2f4f4}.admin-layout{grid-template-columns:216px 1fr;min-height:100vh;display:grid}.admin-side{background:var(--ink);color:#b9c4c9;height:100vh;padding:20px 14px;position:sticky;top:0}.admin-side .logo{color:#fff;padding:4px 10px 18px;font-size:15px}.admin-side nav a{color:#b9c4c9;border-radius:8px;align-items:center;gap:10px;margin-bottom:2px;padding:9px 10px;font-size:13.5px;font-weight:500;display:flex}.admin-side nav a:hover{background:#ffffff12;text-decoration:none}.admin-side nav a.active{color:var(--marker);background:#ffe45c24;font-weight:700}.admin-side .side-label{font-family:var(--f-mono);letter-spacing:.15em;color:#6b7a82;padding:16px 10px 6px;font-size:10px}.admin-main{min-width:0;padding:28px 32px 60px}.admin-head{align-items:center;gap:16px;margin-bottom:22px;display:flex}.admin-head h1{font-size:21px;font-weight:700}.admin-head .actions{gap:10px;margin-left:auto;display:flex}.stat-row{grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:14px;margin-bottom:22px;display:grid}.stat{background:var(--white);border:1px solid var(--line);border-radius:var(--radius-s);padding:16px 18px}.stat .k{color:var(--ink-3);font-size:12px;font-weight:700}.stat .v{font-family:var(--f-mono);margin-top:2px;font-size:26px;font-weight:700}.stat .d{color:var(--ink-3);margin-top:2px;font-size:12px}.stat .d.up{color:#2e7d5b}.stat .d.down{color:var(--stamp)}@media (max-width:760px){.section{padding:52px 0}.gnav{gap:14px}.gnav a:not(.active):not(.btn){display:none}.record-grid{grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:12px}.admin-layout{grid-template-columns:1fr}.admin-side{flex-wrap:wrap;align-items:center;gap:2px 6px;height:auto;padding:10px 12px;display:flex;position:static}.admin-side .logo{padding:4px 8px}.admin-side nav{flex-wrap:wrap;gap:2px 4px;display:flex}.admin-side .side-label{display:none}.admin-main{padding:18px 16px 48px}}@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}.tape{background:repeating-linear-gradient(-45deg, var(--marker) 0 12px, var(--ink) 12px 24px);border-radius:2px;width:100%;height:10px;display:inline-block}.tape-label{background:var(--marker);color:var(--ink);font-family:var(--f-mono);letter-spacing:.14em;border:1.5px solid var(--ink);box-shadow:2px 2px 0 var(--ink);align-items:center;gap:10px;padding:5px 12px;font-size:11px;font-weight:700;display:inline-flex;transform:rotate(-1.5deg)}.bldg-sign{background:var(--ink);color:#fff;border-radius:6px;align-items:baseline;gap:12px;padding:10px 20px 11px;display:inline-flex;box-shadow:3px 3px #2e6a7359}.bldg-sign .jp{font-family:var(--f-display);font-size:24px;font-weight:800}.bldg-sign .en{font-family:var(--f-mono);letter-spacing:.22em;color:var(--marker);font-size:10.5px}.bldg-sub{color:var(--ink-2);margin-top:12px;font-size:13.5px}.facility{background:var(--white);border:1.5px solid var(--ink);border-radius:var(--radius-s);padding:22px;position:relative;box-shadow:4px 4px #1d2a311f}.facility .fno{background:var(--white);border:1.5px solid var(--ink);font-family:var(--f-mono);letter-spacing:.12em;border-radius:4px;padding:2px 8px;font-size:10px;position:absolute;top:-11px;left:16px}.facility .fname{font-family:var(--f-display);font-size:20px;font-weight:800}.facility .fen{font-family:var(--f-mono);letter-spacing:.2em;color:var(--lab);margin-top:1px;font-size:9.5px;display:block}.facility h3{color:var(--lab);margin:10px 0 4px;font-size:14px}.facility p{color:var(--ink-2);font-size:13.5px;line-height:1.8}.regmark{border:1.5px solid var(--lab);opacity:.5;width:18px;height:18px;position:absolute}.regmark:after{content:"";border:1.5px solid var(--lab);border-radius:50%;position:absolute;inset:4px}.regmark.tl{border-bottom:none;border-right:none;top:10px;left:10px}.regmark.tr{border-bottom:none;border-left:none;top:10px;right:10px}.regmark.bl{border-top:none;border-right:none;bottom:10px;left:10px}.regmark.br{border-top:none;border-left:none;bottom:10px;right:10px}.ruler{background-image:repeating-linear-gradient(90deg, var(--ink-3) 0 1px, transparent 1px 8px), repeating-linear-gradient(90deg, var(--ink-2) 0 1.5px, transparent 1.5px 40px);opacity:.5;height:9px;margin:6px 0 0}.stamp-sq{border:2.5px solid var(--stamp);width:52px;height:52px;color:var(--stamp);font-family:var(--f-display);opacity:.85;text-align:center;background:#ffffffb3;border-radius:4px;place-items:center;font-size:15px;font-weight:800;line-height:1.25;display:inline-grid;transform:rotate(6deg)}.avatar-photo{object-fit:cover;border:2px solid var(--ink);border-radius:50%}.lab-panel{background:var(--white);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);overflow:hidden}.lab-panel .head{border-bottom:1px solid var(--line);align-items:center;gap:10px;padding:14px 20px;font-size:14.5px;font-weight:700;display:flex}.lab-panel .head .en{font-family:var(--f-mono);letter-spacing:.18em;color:var(--lab);font-size:9.5px}.lab-panel .head .right{margin-left:auto;font-size:12.5px;font-weight:500}.blueprint{color:#d8e4e8;background-color:#152430}.blueprint .bp-eyebrow{font-family:var(--f-mono);letter-spacing:.24em;color:var(--marker);font-size:11px;font-weight:700}.blueprint h2{font-family:var(--f-display);color:#fff;margin:10px 0 12px;font-size:clamp(24px,3.4vw,32px);line-height:1.5}.blueprint .bp-lead{color:#9db3bc;max-width:32em;font-size:14.5px}.bp-doc{background:var(--paper);color:var(--ink);border-radius:10px;padding:26px 28px 22px;position:relative;transform:rotate(-.8deg);box-shadow:0 24px 48px #00000073}.bp-doc .dochead{font-family:var(--f-mono);letter-spacing:.14em;color:var(--ink-3);border-bottom:1.5px solid var(--ink);justify-content:space-between;gap:12px;margin-bottom:6px;padding-bottom:8px;font-size:10px;display:flex}.bp-row{border-bottom:1px dashed var(--line);align-items:baseline;gap:12px;padding:10px 0;font-size:13.5px;display:flex}.bp-row:last-of-type{border-bottom:none}.bp-row .no{font-family:var(--f-mono);color:var(--ink-3);flex:none;width:52px;font-size:10.5px}.bp-doc .docfoot{font-family:var(--f-mono);color:var(--ink-3);letter-spacing:.1em;margin-top:8px;font-size:10px}.bp-doc .stamp-sq{position:absolute;top:-16px;right:20px}.redact{background:var(--ink);color:#0000;-webkit-user-select:none;user-select:none;-webkit-box-decoration-break:clone;box-decoration-break:clone;border-radius:2px;padding:1px 3px;display:inline}.gate{text-align:center;margin-bottom:26px}.gate .tape{max-width:460px}.gate .plate{border:2px solid var(--ink);background:var(--marker);color:var(--ink);font-family:var(--f-mono);letter-spacing:.14em;margin-top:-6px;padding:11px 26px;font-size:13.5px;font-weight:700;display:inline-block;box-shadow:4px 4px #00000073}.gate .plate b{color:var(--stamp)}.btn-marker{background:var(--marker);color:var(--ink)}.btn-marker:hover{color:var(--ink)}.idstack{height:380px;position:relative}.idcard{background:var(--white);border:1.5px solid var(--ink);border-radius:12px;width:264px;padding:16px 18px 14px;position:absolute;box-shadow:4px 4px #1d2a311f}.idcard .h{border-bottom:1.5px solid var(--ink);font-family:var(--f-display);justify-content:space-between;align-items:center;margin-bottom:10px;padding-bottom:8px;font-size:13px;font-weight:800;display:flex}.idcard .seat{font-family:var(--f-mono);color:var(--lab);letter-spacing:.12em;font-size:10px}.idcard .nm{font-family:var(--f-display);font-size:19px;font-weight:800}.idcard .rl{color:var(--ink-3);font-size:11.5px}.idcard .ft{color:var(--ink-2);justify-content:space-between;margin-top:10px;font-size:11px;display:flex}.section-tint{background:var(--lab-soft);border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.ficon{border-radius:13px;place-items:center;width:46px;height:46px;margin-bottom:12px;display:grid}.ficon.f-teal{background:var(--lab-soft)}.ficon.f-red{background:var(--stamp-soft)}.ficon.f-yellow{background:var(--marker-soft)}.ficon.f-purple{background:#e9e9f4}.deco{pointer-events:none;-webkit-user-select:none;user-select:none;position:absolute}@media (max-width:860px){.deco{display:none}}.last-cta-dark{color:#d8e4e8;text-align:center;background:#152430;padding:84px 0 90px;position:relative;overflow:hidden}.last-cta-dark h2{font-family:var(--f-display);color:#fff;font-size:clamp(26px,4vw,40px);font-weight:800;line-height:1.55}.last-cta-dark p{color:#9db3bc;margin:14px 0 28px}.last-cta-dark .gate .plate{box-shadow:4px 4px #0006}.btn-pop{border:2px solid var(--ink);box-shadow:4px 4px #1d2a31d9}.btn-pop:hover{transform:translate(-1px,-1px);box-shadow:6px 6px #1d2a31d9}.section-head h2:after{content:"";background:var(--marker);border-radius:2px;width:76px;height:9px;margin-top:12px;display:block;transform:skew(-20deg)rotate(-1deg)}@keyframes twinkle{0%,to{opacity:1;transform:scale(1)}50%{opacity:.35;transform:scale(.6)}}@keyframes bob{0%,to{transform:translateY(0)rotate(3deg)}50%{transform:translateY(-9px)rotate(5deg)}}.tw{transform-origin:50%;animation:2.6s ease-in-out infinite twinkle}.tw2{transform-origin:50%;animation:3.4s ease-in-out .9s infinite twinkle}.bob{animation:4.2s ease-in-out infinite bob}.blueprint{position:relative;overflow:hidden}.blueprint>.wrap,.last-cta-dark>.wrap{z-index:1;position:relative}.deco-dark{pointer-events:none;opacity:.6;position:absolute}@media (max-width:860px){.deco-dark{display:none}}
