*{box-sizing:border-box}html{font-family:Arial,Helvetica,sans-serif;color:#111;background:#f7f7f5}body{margin:0;font-size:15px}a{color:inherit;text-decoration:none}header{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;padding:14px 4vw;position:sticky;top:0;background:rgba(247,247,245,.95);backdrop-filter:blur(8px);z-index:5;border-bottom:1px solid #ddd}.wordmark{font-size:18px}.brand{width:54px;height:44px;display:flex;align-items:center;justify-content:center}.brand img{height:40px;width:auto}nav{display:flex;gap:28px;justify-self:end}nav a:hover{text-decoration:underline;text-underline-offset:5px}main{padding:0 4vw 100px}.section-head{display:flex;justify-content:space-between;align-items:baseline;border-top:1px solid #111;padding-top:14px;margin:28px 0 20px}.section-head h1{font-size:34px;font-weight:400;margin:0}.grid{display:grid;grid-template-columns:repeat(3,1fr);gap:42px 20px}.card .ph{aspect-ratio:4/3;margin-bottom:12px}.ph{background:#deded9;display:flex;align-items:center;justify-content:center;color:#999;letter-spacing:.15em;overflow:hidden}.ph img{width:100%;height:100%;object-fit:cover;display:block}.card h3{font-size:18px;font-weight:400;margin:0 0 4px}.card p{margin:0;color:#666}.detail{max-width:1200px;margin:50px auto}.detail .big{aspect-ratio:16/9}.detail h1{font-size:clamp(44px,7vw,90px);font-weight:400;letter-spacing:-.05em;line-height:.95}.meta{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin:30px 0}.meta div{border-top:1px solid #111;padding-top:8px}.description{max-width:760px;font-size:18px;line-height:1.5}.gallery{display:grid;grid-template-columns:repeat(2,1fr);gap:20px;margin-top:60px}.gallery img{width:100%;display:block}.office h1{font-size:80px;font-weight:400;letter-spacing:-.05em}.office h2{font-size:28px;font-weight:400;border-top:1px solid #111;padding-top:12px;margin-top:80px}.team{display:grid;grid-template-columns:repeat(3,1fr);gap:45px 20px}.person img,.person .ph{width:100%;aspect-ratio:3/4;object-fit:cover;margin-bottom:12px}.person h3{margin:0;font-size:18px;font-weight:400}.person p{color:#666;margin-top:5px}.history div{padding:20px 0;border-top:1px solid #ddd}.login{max-width:430px;margin:12vh auto;padding:30px}.login h1{font-weight:400;font-size:54px}.form,.panel{max-width:1100px}.form label{display:block;margin:18px 0}.form input,.form textarea,.form select,.login input,.pub-edit input,.pub-edit textarea{width:100%;padding:11px;border:1px solid #bbb;background:white;font:inherit;margin-top:6px}.two{display:grid;grid-template-columns:1fr 1fr;gap:20px}.button,button{display:inline-block;border:1px solid #aaa;background:transparent;padding:10px 14px;cursor:pointer;font:inherit}.dark{background:#111;color:white;border-color:#111}.thumb{display:block;max-width:180px;max-height:140px;margin-top:8px}.admin-head{display:flex;justify-content:space-between;align-items:baseline;margin:40px 0}.admin-grid{display:grid;grid-template-columns:2fr 1fr;gap:20px}.panel{border:1px solid #ddd;background:white;padding:22px;margin-bottom:20px}.panel h2{font-weight:400}.panel table{width:100%;border-collapse:collapse;margin-top:15px}.panel td,.panel th{border-bottom:1px solid #ddd;text-align:left;padding:10px 5px}.notice{padding:14px;background:#e8e8e3;margin:20px 0}.error{color:#a00}.muted{color:#666}.check{display:flex!important;gap:10px;align-items:center}.check input{width:auto!important}.pub-edit{display:grid;grid-template-columns:70px 1fr 1fr 2fr 1.5fr 60px;gap:8px;padding:10px 0;border-bottom:1px solid #ddd}.pub-edit input,.pub-edit textarea{margin:0}.pub-edit textarea{min-height:70px}footer{border-top:1px solid #ddd;padding:25px 4vw;display:flex;justify-content:space-between;color:#666;font-size:13px}@media(max-width:800px){header{grid-template-columns:1fr auto 1fr;gap:10px}nav{grid-column:1/-1;justify-self:start;flex-wrap:wrap;gap:16px}.grid,.team,.admin-grid{grid-template-columns:1fr 1fr}.meta,.two{grid-template-columns:1fr}.gallery{grid-template-columns:1fr}.pub-edit{grid-template-columns:1fr}.office h1{font-size:56px}footer{flex-direction:column;gap:10px}}@media(max-width:520px){.grid,.team{grid-template-columns:1fr}}
.pub-list{border-top:1px solid #111}.pub{display:grid;grid-template-columns:80px 240px 1fr;gap:20px;padding:18px 0;border-bottom:1px solid #ddd}.pub strong{font-weight:500}.pub-list+.x{display:none}@media(max-width:800px){.pub{grid-template-columns:65px 1fr}.pub>div:last-child{grid-column:2}}
